Pautas de seguridad

Mantener el software actualizado

El servidor Apache 2.0 tiene un buen nivel de seguridad, así como una comunidad de desarrolladores altamente concienciados sobre los problemas de seguridad. Aún así, es inevitable que algunos problemas –pequeños o grandes- sean descubiertos en el software después de su lanzamiento. Por esta razón, es crucial obtener las últimas actualizaciones del software. Si se obtiene el software del servidor directamente desde Apache, es muy recomendada la suscripción a la Lista de Notificaciones del servidor HTTP de Apache (en la web oficial), donde se puede estar informado de nuevas versiones y actualizaciones de seguridad.

Permisos sobre los directorios raíz del servidor

Para administrar el servidor Apache hay que tener permiso de usuario principal (root). Esto quiere decir que Apache no puede ser administrado por cualquier usuario. Por lo que hay que tener especial cuidado con proteger tanto los directorios raíz del servidor, para que no sean modificados por cualquiera, como evitar la ejecución de comandos principales que puedan alterar el funcionamiento de Apache.

Por ejemplo, para evitar que los usuarios recorran el sistema de archivos por completo, hay que utilizar la siguiente configuración:

<Directory />
Order Deny,Allow
Deny from all
</Directory>

Para permitir el acceso sólo en las área deseadas, se debe escribir lo siguiente:

<Directory /usr/users/*/public_html>
Order Deny,Allow
Allow from all
</Directory>
<Directory /usr/local/httpd>
Order Deny,Allow
Allow from all
</Directory>

Hay que poner particular atención a las interacciones de las directivas Location y Directory. Si <Directory /> deniega el acceso, una directiva <Location /> puede permitirlo.

Sobre Server Side Includes (SSI)

La característica de Apache Server Side Includes (SSI) presenta una serie de riesgos de seguridad.

El primer riesgo es el incremento de sobrecarga del servidor. Todos los archivos SSI deben ser analizados por Apache, tanto si hay o no cualquier directiva SSI includa en los archivos. Si este incremento de sobrecarga puede ser insignificante, en un entorno de servidor compartido puede llegar a ser importante. Además, los archivos SSI poseen el mismo riesgo que los scripts CGI.

Habilitando SSI para archivos con extensión .html o .htm puede ser peligroso. Esto sucede especialmente en un entorno de servidor compartido o con mucho tráfico. Los archivos SSI deben tener una extensión diferente, como es el formato convencional .shtml. Esto ayuda a reducir la carga del servidor al mínimo y permite una manera más fácil de manejar los riesgos.

Otra solución es desactivar la capacidad para ejecutar scripts y programas desde páginas SSI. Para hace esto hay que reemplazar Includes con IncludesNOEXEC en la directiva Options. Con todo, los usuarios aún pueden usar <#include virtual=”…”> para ejecutar scripts CGI si estos scripts están en directorios designados por una directiva ScriptAlias.

CGI en general

Los scripts CGI pueden ejecutar comandos arbitrarios sobre el sistema con el permiso de usuario del servidor web; y esto puede ser extremadamente peligroso si éstos scripts no están debidamente comprobados.

Todos los scripts CGI serán ejecutados como si se tratara del mismo usuario, por lo que existe la posibilidad de conflicto con otros scripts CGI. Por ejemplo, si el usuario A odia al usuario B, entonces puede escribir un script para estropear la base de datos CGI del usuario B. Un programa que puede ser usado para hacer esto es suEXEC, que viene incluido con Apache. Otra forma de hacerlo es con CGIWrap.

Protegiendo la configuración del sistema

Para tener un servidor realmente seguro, se deberá impedir a los usuarios configurar los archivos .htaccess, ya que pueden cambiar la configuración de seguridad que ha sido establecida. Hay una manera bastante efectiva para hacer esto; y consiste en poner en el archivo de configuración del servidor lo siguiente:

<Directory />
AllowOverride None
</Directory>

Esto impide el uso de archivos .htaccess en todos los directorios que no hayan sido habilitados para este propósito.

Comprobar los ficheros .log

Una buena costumbre para procurar la seguridad del servidor es comprobar con toda la frecuencia posible los archivos de registro. Estos archivos son de gran utilidad para verificar qué es lo que funciona bien y qué no. Por tanto, no se debe descuidar su comprobación.

Apache 2 | Monitorización en Apache 2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License