26.7. Cómo evitar problemas de seguridad

Un servidor Web expuesto al público en Internet requiere un esfuerzo de administración constante. Es inevitable que aparezcan problemas de seguridad, relacionados tanto con el software como con errores de configuración accidentales. A continuación se ofrecen algunos consejos sobre cómo actuar al respecto.

26.7.1. Software actualizado

Cuando se detecten vulnerabilidades en el software Apache, SUSE emitirá un comunicado de seguridad. En él se incluirán instrucciones para reparar las vulnerabilidades, que deberán aplicarse lo antes posible. Los avisos de seguridad de SUSE están disponibles en las siguientes ubicaciones:

26.7.2. Permisos de DocumentRoot

En SUSE Linux, los directorios DocumentRoot (/srv/www/htdocs) y CGI (/srv/www/cgi-bin) pertenecen por defecto al usuario y al grupo root. No debe modificar estos permisos. Si estos directorios conceden permiso de escritura a cualquier usuario, cualquiera podría colocar archivos en ellos. Si se diera el caso, esos archivos podrían ejecutarse en Apache con los permisos de wwwrun, lo que podría proporcionar acceso a los recursos del sistema de archivos a usuarios que no deberían tenerlo. Utilice subdirectorios /srv/www para colocar los directorios DocumentRoot y CGI para los hosts virtuales y asegúrese de que los directorios y los archivos pertenezcan al usuario y al grupo Root.

26.7.3. Acceso al sistema de archivos

Por defecto, el acceso a todo el sistema de archivos se deniega mediante /etc/apache2/httpd.conf. No debe sobrescribir estas directivas en ningún momento, sino habilitar específicamente el acceso a todos los directorios que Apache debe poder leer (consulte Sección 26.2.1.2.3, “Configuración básica de host virtual” para obtener información detallada). Cuando lo haga, asegúrese de que no se puedan leer desde el exterior archivos importantes, como archivos de contraseñas o de configuración del sistema.

26.7.4. Guiones CGI

Los guiones interactivos de Perl, PHP, SSI o cualquier otro lenguaje de programación pueden ejecutar comandos arbitrarios, por lo que presentan un problema general para la seguridad. Los guiones que se deban ejecutar desde el servidor sólo se deben instalar a partir de fuentes en las que confíe el administrador del servidor. Por lo general no es aconsejable permitir que los usuarios ejecuten sus propios guiones. También se recomienda realizar auditorías de seguridad de todos los guiones.

Para que la administración de los guiones resulte lo más fácil posible, se suele limitar la ejecución de guiones CGI a directorios específicos, en lugar de permitirlos de forma global. Las directivas ScriptAlias (Alias de guión) y Option ExecCGI (Opción ExecCGI) se utilizan en la configuración. Con la configuración por defecto de SUSE Linux no se permite la ejecución de guiones CGI desde cualquier lugar.

Todos los guiones CGI se ejecutan desde el mismo usuario, por lo que los distintos guiones pueden entrar en conflicto entre sí. El módulo suEXEC permite ejecutar guiones CGI con un usuario y un grupo distintos.

26.7.5. Directorios de usuario

Cuando habilite directorios de usuario (con mod_userdir o mod_rewrite), debería considerar seriamente no permitir archivos .htaccess, los cuales dan a los usuarios la capacidad de sobrescribir ajustes de seguridad. Al menos debería limitar las posibilidades de los usuarios mediante la directiva AllowOverRide (Permitir sobrescritura). En SUSE Linux, los archivos .htaccess están habilitados por defecto, pero los usuarios no tienen permiso para sobrescribir ninguna directiva Option (Opción) al utilizar mod_userdir (consulte el archivo de configuración /etc/apache2/mod_userdir.conf).