Posts tagged with “whm”
Mejorando la seguridad de WHM/Cpanel con Suhosin
Suhosin es un sistema de protección para PHP que se encarga de, entre otras cosas, comprobar la seguridad de las funciones ejecutadas, localizar los fallos de seguridad típicos en la programación y evitar que puedan ser explotados. En la misma web indican que instalando Suhosin te puedes evitar tener que pensar en la programación segura, Suhosin se encargaría de todo. No se si será para tanto... ;) En este post veremos una de sus utilidades, bloquear funciones peligrosas que no queremos que se puedan ejecutar en nuestro hosting compartido.
Al tratarse de una extensión de PHP tendremos que usar EasyApache para compilarlo para disponer de el en nuestros WHM. Daré por supuesto que esta parte ya está hecha. Una vez con el soporte habilitado y Apache reiniciado procedemos a bloquear funciones. Para ello debemos editar el php.ini y añadir una línea como la siguiente:
suhosin.executor.func.blacklist = "exec,shell_exec,system,passthru,proc_open,popen,proc_terminate, show_source"
De esta forma, dichas funciones quedarán prohibidas y no se podrán llamar desde las páginas web que nuestros clientes suban.
Esto, en un mundo feliz e ideal, se dejaría configurado y no nos preocuparíamos más. Pero claro, en un mundo ideal el cliente no te crearía un centenar de incidencias y tus compañeros developers no te llamarían constantemente preguntando porque no pueden hacer un exec desde PHP.
Si por ejemplo tenemos un dominio el cual no queremos limitar, se tendrá que modificar el virtualhost siguiendo el método de WHM http://docs.cpanel.net/twiki/bin/view/EasyApache3/InsideVHost que se resume en:
Tenemos las carpetas:
/usr/local/apache/conf/userdata/std/2/
/usr/local/apache/conf/userdata/ssl/2/
/usr/local/apache/conf/userdata/std/1/
/usr/local/apache/conf/userdata/ssl/1/
2 indica que la versión de Apache que se está utilizando es 2, 1… pues Apache1.
ssl se aplicará al virtualhost con ssl, std sin ssl.
Imaginemos entonces que tenemos apache2, y el usuario se llama Google, la web que alojamos google.es y solo nos interesa http, sin ssl.
Entonces creamos la siguiente carpeta:
/usr/local/apache/conf/userdata/std/2/google/google.es/
Y dentro un fichero loquequieras.conf con el siguiente contenido:
php_admin_value suhosin.executor.func.blacklist "show_source"
Esta configuración añadirá dicha línea al VirtualHost de google. De forma que todos los demás tienen las restricciones arriba indicadas, mientras que google solamente show_source. Es necesario indicar al menos una función, no vale dejarlo vacio.
Una vez hecho, le decimos a whm que regenere el httpd.conf
/scripts/verify_vhost_includes /usr/local/cpanel/bin/apache_conf_distiller --update /scripts/rebuildhttpdconf







