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
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.