Asegure y endurezca el servidor web Apache siguiendo las mejores prácticas para mantener segura su aplicación web.

El servidor web es una parte crucial de las aplicaciones basadas en web. Una configuración incorrecta y por defecto puede exponer información sensible, y eso es un riesgo.

Como propietario o administrador de un sitio web, debe realizar regularmente análisis de seguridad de su sitio web para detectar amenazas en línea y poder actuar antes de que lo haga un pirata informático.

Repasemos las configuraciones esenciales para mantener su servidor web Apache.

A continuación toda la configuración se encuentra en httpd.conf de su instancia apache.

Nota: haga una copia de seguridad del archivo de configuración necesario antes de modificarlo, así la restauración será fácil cuando las cosas vayan mal.

Desactivar el rastreo de peticiones HTTP

La opción TraceEnable activada por defecto permite TRACE, lo que deshabilita cualquier cuerpo de petición que acompañe a la solicitud.

TraceEnable off hace que el servidor central y mod_proxy devuelvan un error 405 (Método no permitido) al cliente.

TraceEnable on permite la emisión de Cross-Site Tracing y potencialmente da la opción a un hacker de robar la información de sus cookies.

Solución

Solucione este problema de seguridad desactivando el método HTTP TRACE en la configuración de Apache.

Puede hacerlo modificando/añadiendo la siguiente directiva en el httpd.conf de su servidor web Apache.

TraceEnable desactivado

Ejecutar como Usuario y Grupo separado

Por defecto, Apache está configurado para ejecutarse con nobody o daemon.

No configure el Usuario (o Grupo) como root a menos que sepa exactamente lo que está haciendo, y cuáles son los peligros.

Solución

Ejecutar Apache en su propia cuenta no root es bueno. Modifique la directiva de usuario y grupo en httpd.conf de su servidor web Apache

Usuario apache 
Grupo apache

Desactivar firma

El ajuste Desactivado, que es el predeterminado, suprime la línea de pie de página.

El ajuste Activado simplemente añade una línea con el número de versión del servidor y ServerName del host virtual servidor.

Solución

Es bueno desactivar Signature, ya que puede que no desee revelar la versión de Apache que está ejecutando.

FirmaServidor Desactivada

Desactivar Banner

Esta directiva controla si el campo Cabecera de la respuesta del servidor, que se devuelve a los clientes, incluye una descripción del tipo de sistema operativo genérico del servidor, así como información sobre los módulos compilados.

Solución

ServerTokens Prod

Restringir el acceso a una red o IP específica

Si desea que su sitio sólo sea visto por una dirección IP o red específica, puede modificar el Directorio de su sitio en httpd.conf

Solución

Indique la dirección de red en la directiva Permitir.

<Directorio /su sitio web>    
Opciones Ninguna    
AllowOverride Ninguna    
Orden deny,allow    
Denegar desde todos    
Permitir desde 10.20.0.0/24  
</dirección>

Indique la dirección IP en la directiva Allow.

<Directorio /su sitio web>
Opciones Ninguna
AllowOverride Ninguna
Orden deny,allow
Denegar desde todos
Permitir desde 10.20.1.56
</Directorio>

Utilizar sólo TLS 1.2

Según los informes, SSL 2.0, 3.0, TLS 1, 1.1 adolece de varios fallos criptográficos.

¿Necesita ayuda para configurar SSL? consulte esta guía.

Solución

SSLProtocolo -ALL TLSv1.2

Desactivar listado de directorios

Si no tiene index.html en el directorio de su sitio web, el cliente verá todos los archivos y subdirectorios listados en el navegador (como la salida ls -l).

Solución

Para desactivar la exploración de directorios, puede establecer el valor de la directiva Option en «Ninguno» o «-Indexes»

<Directorio />
Opciones Ninguno
Orden permitir,denegar
Permitir desde todos
</Directorio>

O

<Directorio />
Opciones -Índices
Orden permitir,denegar
Permitir desde todos
</Directorio>

Eliminar módulos OSD innecesarios

Verifique su configuración para eliminar los módulos OSD redundantes.

Hay muchos módulos activados por defecto tras la instalación. Puede eliminar los que no necesite.

Desactive los cifrados nulos y débiles

Permita sólo cifrados fuertes, así cerrará todas las puertas a quienes intenten hacer handshake con suites de cifrado inferiores.

Solución

SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4 RSA: ALTO: MEDIO

Manténgase actualizado

Como Apache es un código abierto activo, la forma más fácil de mejorar la seguridad del servidor web Apache es mantener la última versión. En cada versión se añaden nuevas correcciones y parches de seguridad. Actualice siempre a la última versión estable de Apache.

Lo anterior son sólo algunas de las configuraciones esenciales, y si usted está buscando en profundidad, entonces usted puede referirse a mi guía paso a paso de seguridad y endurecimiento.