it-swarm-es.com

¿Mejores prácticas para el endurecimiento del servidor Apache?

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

104
Eric Warriner

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 verificación automática al tomar su plantilla de auditoría:

alt text

31
Tate Hansen
  • Usar 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
  • Use mod_security
  • Establecer los permisos/grupos adecuados

Esta es una buena guía:
https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server

Guía básica para el endurecimiento: http://www.wpsecure.net/server-guide/

Si está ejecutando php: http://www.madirish.net/?article=229

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

12
Wyck

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

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

7
Jeff Ferland

Aquí hay muchos buenos consejos, así que no repetiré las cosas que ya mencioné. Pero lo que diré es:

No olvide reemplazar las páginas de error predeterminadas con cosas que no revelen su versión del servidor web o la revisión del kernel. Tiendo a reemplazar cada html predeterminado con 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 todos por defecto proporcionan demasiada información de la necesaria. Se podría pensar 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 las huellas digitales son mucho más difíciles.

En cuanto a las buenas lecturas, hubo un documento técnico de Apcon 2008 que vale la pena leer.

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

La otra cosa que mencionaría es una buena administración de registros, si no está agotando sus registros y vigilando de cerca el sistema, corre el riesgo de que un atacante lo golpee sin darse cuenta.

6
Ori

Se aplican todos los principios de seguridad generales: 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, entonces, ¿por qué los archivos necesitan algo más de 400 permisos?).

Las cosas que son particulares de Apache, como los trabajos de 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 verificación automatizada, en realidad debes conocer Apache, el sistema operativo subyacente y lo que están haciendo las aplicaciones que se ejecutan en Apache.

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

6
Marcin

Puede 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, etc., sino que también actúa como un firewall de aplicación web que ayuda a proteger contra una amplia variedad de ataques como SQL inyección etc.

4
Mark Davidson

¿Cómo aseguro el servidor web Apache?

¿Qué respuesta esperaría si preguntara "Cómo vuelo un avión jumb-jet" o "Cómo hago una cirugía cerebral", lo mismo se aplica para hacer que un servidor web sea seguro, necesita hacer miles de horas de entrenamiento, práctica e investigación . Pero como todo el mundo tiene que comenzar 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 otra parte, varían en gran medida en calidad.

Recomiendo el 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 el host, como Tripwire junto con un detector de rootkit)
  • estar atento y aplicar parches
  • recuperar su sistema a un buen estado conocido

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

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

2
symcbean

esto no solo está relacionado con Apache (y también cuenta para nginx + php-fpm), sino que 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 atrás un phpinfo.php, pero generalmente es una pista para una administración de sistema muy floja.

ver huevos de pascua

Buen hilo convertido. Mucha gente dice la verdad.

Se olvidaron de uno, OpenBSD 's:

En OpenBSD, el servidor Apache httpd (8) ha sido editado por defecto (2)

httpd (v.1 de Apache) incluido en OpenBSD por defecto, y chrooteado por defecto.

Puede repetirlo fácilmente con Apache2 o nginx en cualquier otro sistema operativo tipo Unix.

0
user29424

Use la última versión de Apache, aplique parches a su sistema operativo y también a 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 0, por supuesto.

0
Novice User

Aquí 6 pasos clave:

  1. Asegure su código de aplicación
  2. deshabilitar todos los módulos no utilizados. Intente deshabilitar todo y luego, uno por uno, agregue módulos.
  3. eliminar todos los scripts y archivos de respaldo en la carpeta web.
  4. deshabilitar listado de directorios
  5. use modsecurity para proteger su aplicación de ataques a 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.

0
Mike