¿Las mejores prácticas para el fortalecimiento del servidor Apache?

103

¿Cuáles son algunas de las mejores prácticas, recomendaciones y lecturas necesarias para asegurar un servidor Apache?

    
pregunta Eric Warriner 12.11.2010 - 00:08
fuente

11 respuestas

30

Obtenga la guía del Centro de Seguridad de Internet (CIS) para proteger Apache (describe en detalle cómo mejorar la seguridad):

Editar: enlace actualizado CIS Apache HTTP Server 2.2.x Benchmark

Si tiene una licencia para Nessus , puede ejecutar una comprobación automática al tomar su plantilla de auditoría:

    
respondido por el Tate Hansen 12.11.2010 - 00:43
fuente
12
  • utilizar inicios de sesión basados en claves SSH
  • MySQL seguro
  • Deshabilitar phpMyAdmin, webmin, etc.
  • Cierre todos los puertos / procesos que no sean necesarios
  • Use un verificador de integridad de archivos
  • Usar mod_security
  • Establezca los permisos / grupos adecuados

Esta es una buena guía:
enlace

Guía básica para el endurecimiento: enlace

Si estás ejecutando php: enlace

Encuentra 404's (u otros códigos de estado) en el registro de apache
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

    
respondido por el Wyck 17.07.2011 - 18:52
fuente
7

La respuesta originalmente altamente votada a esta pregunta que fue aceptada fue eliminada porque era un plagio directo de 20 maneras de asegurar su Configuración de Apache . Esa página es un recurso fantástico.

@RoryMcCune también publicó esto como un enlace a esa respuesta: hay un proyecto OWASP para desarrollar un ProSecurity Core Rule Set aquí que podría ser de utilidad.

    
respondido por el Jeff Ferland 11.01.2012 - 23:46
fuente
6

Hay muchos buenos consejos aquí, así que no repetiré las cosas ya mencionadas. Pero lo que voy a decir es:

No te olvides de reemplazar las páginas de error predeterminadas con cosas que no regalan la versión del servidor web o la revisión del kernel. Tiendo a reemplazar cada html predeterminado por 1 liners que son algo así como "Error 400". Da muy poco sobre el sistema de distancia. Este principio se aplica a todos los servidores web capaces de mostrar páginas de error personalizadas, casi todas están predeterminadas para revelar demasiada información de la necesaria. Usted pensaría que ServerSignature ocultaría esto, pero en muchos casos no lo hace.

Además, no olvide eliminar todo el contenido HTML predeterminado (específico del idioma, etc.), por lo que la toma de huellas dactilares es mucho más difícil.

En lo que respecta a las buenas lecturas, había un documento técnico de Apcon 2008 que vale la pena leer.

Mod_Security se menciona algunas veces, esto es más adecuado para las aplicaciones web, por lo que si solo está sirviendo contenido estático, no le ayudará mucho también , aunque existen algunos ataques contra los que ayuda a defenderse durante el manejo de solicitudes, lo que podría afectar a un servidor web estático .

La otra cosa que mencionaría es la buena administración de registros, si no está utilizando los registros y vigilando de cerca el sistema, corre el riesgo de que un atacante lo golpee sin saberlo.

    
respondido por el Ori 17.07.2011 - 21:17
fuente
6

Se aplican todos los principios generales de seguridad: ejecute solo los módulos que necesita, desactive las funciones que no necesita, ordene sus permisos / propiedades (la mayoría de los contenidos son de solo lectura, ¿por qué los archivos necesitan algo más de 400 permisos)? ?).

Las cosas que son particulares de Apache, como los trabajos CGI, o diferentes vhosts que sirven el mismo contenido dos veces con dos mecanismos de seguridad diferentes son mucho más difíciles de detectar; no es exactamente una comprobación automática, realmente debes conocer Apache, el sistema operativo subyacente y qué están haciendo las aplicaciones que se ejecutan en Apache.

Para completar, aquí hay una Lista de verificación de seguridad de Apache 2.2 de DISA. ACTUALIZACIÓN: Aquí hay un enlace a su toda la colección de documentos de endurecimiento del servidor web.

    
respondido por el Marcin 22.11.2010 - 20:15
fuente
4

Podría valer la pena echarle un vistazo a Apache mod_security .

Últimamente, he estado probando algunos de mis servidores, no solo realiza algunos ajustes de configuración al propio Apache, como cambiar el número de versión, sino que también actúa como un firewall de aplicaciones web que ayuda a proteger contra una gran variedad de ataques. como la inyección SQL etc.

    
respondido por el Mark Davidson 12.11.2010 - 00:22
fuente
2
  

¿Cómo aseguro el servidor web Apache

¿Qué respuesta esperaría si preguntara "¿Cómo hago volar un jumb-jet" o "¿Cómo hago una cirugía cerebral"? Lo mismo se aplica a la seguridad de un servidor web. Debe realizar miles de horas de entrenamiento. Práctica e investigación. Pero como todo el mundo tiene que empezar en alguna parte ...

Hay muchas listas de verificación básicas en Internet sobre cómo fortalecer un servidor, pero según mi comentario en otros lugares varían en calidad enormemente .

Recomiendo sans one como una buena fuente.

Una vez que haya seguido la lista de verificación, debe establecer los medios por los cuales puede

  • verifique la integridad de su servidor (definitivamente necesita un IDS basado en host como tripwire junto con un detector de rootkit)
  • ser consciente de y aplicar parches
  • recupere su sistema a un estado bueno conocido

No planifique cómo lidiar con un incidente de seguridad si sucede. Planifique qué hacer cuando sucede.

Una vez que haya configurado y configurado su sistema, luego cambie el disco duro y vea cuánto tiempo le lleva poner en marcha el servicio nuevamente sin usar el disco original.

    
respondido por el symcbean 13.01.2012 - 15:03
fuente
1

esto no solo está relacionado con el apache (y también cuenta para nginx + php-fpm), pero a menudo se olvida: php-eastereggs, que se puede cambiar a través de php.ini

  expose_php = off

no es tan terrible como dejar un phpinfo.php atrás, pero por lo general es una sugerencia para una administración de sistemas muy perezosa.

vea easter-eggs

    
respondido por el that guy from over there 08.07.2013 - 09:19
fuente
0

Utilice la última versión de apache, parche su sistema operativo y también de terceros como openssl o cualquier otro.

Bloquear puertos no deseados.

Esto lo protegerá de algunas vulnerabilidades conocidas, pero siempre será susceptible a un día de 0 días, por supuesto.

    
respondido por el Novice User 11.01.2012 - 20:50
fuente
0

Buen hilo convertido. Muchas personas dicen la verdad.

Se olvidaron de uno, OpenBSD :

  

En OpenBSD, el servidor httpd (8) de Apache ha sido chroot (2) ed por defecto

enlace

Puedes repetirlo fácilmente con apache2 o nginx en cualquier otro sistema operativo tipo Unix.

    
respondido por el user29424 12.08.2013 - 09:42
fuente
0

Aquí hay 6 pasos clave:

  1. Asegure el código de su aplicación
  2. deshabilitar todos los módulos no utilizados. Intente desactivar todos y luego, uno por uno, agregue módulos.
  3. elimine todos los scripts y archivos de copia de seguridad en la carpeta web.
  4. deshabilitar listado de directorios
  5. use modsecurity para proteger su aplicación de ataques de nivel de aplicación.
  6. Use Fail2ban para desencadenar errores HTTP (403, 404).

No confíe en el firewall de su red, es inútil cuando se habla de seguridad web.

    
respondido por el Mike 10.04.2015 - 15:54
fuente

Lea otras preguntas en las etiquetas