Red de conocimiento informático - Material del sitio web - Cómo construir un servidor web Apache seguro en Ubuntu

Cómo construir un servidor web Apache seguro en Ubuntu

Este tutorial asume que ya tienes un servidor Ubuntu en ejecución, la red está configurada y puedes acceder a ella a través de SSH.

Apache2 es el servidor web predeterminado utilizado por muchas distribuciones de Linux instaladas. No es el único servidor web disponible para todos los entornos, ni tampoco el mejor servidor web, pero es adecuado para muchos casos de uso. Durante el proceso de instalación, es posible que se le pregunte qué servidor web reconfigurar automáticamente. Simplemente seleccione "apache2".

Instalar Apache2

Utilice el siguiente comando para instalar Apache2 y otras bibliotecas.

$ sudo apt-get -y install apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5 -gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby

Actualizar zona horaria ( TimeZone) y verifique la hora correcta

Para reducir la confusión con respecto a los datos compartidos o reflejados, todos los servidores deben ejecutarse lo más cerca posible de un estado sincronizado. Algunos sistemas de gestión de claves de cifrado requieren una hora exacta. Finalmente, cuando se trata de servidores empresariales, las reglas de seguridad de Sarbanes-Oxley y la Ley de Responsabilidad y Portabilidad de Seguros Médicos (HIPAA) requieren mecanismos de sellado de tiempo adecuados.

$ sudo apt-get -y install openntpd tzdata

$ sudo dpkg-reconfigure tzdata

$ sudo service openntpd restart

Prohibido Conflicto de AppArmor

Si bien la suite AppArmor proporciona una capa adicional de seguridad, en mi opinión, es necesario crear archivos de configuración personalizados para cada sistema. De eso no se trata este tutorial. Por ahora, desactivaremos AppArmor para evitar cualquier conflicto con la configuración predeterminada.

$ sudo /etc/init.d/apparmor stop

$ sudo update-rc.d -f apparmor remove

$ sudo apt-get remove apparmor apparmor-utils

Nota: Si se trata de un servidor web en un entorno de producción, no se recomienda desactivar AppArmor. Si algunas personas desean crear archivos de configuración personalizados de AppArmor, consulte la documentación oficial (

Bloqueo de ataques de Slowloris

También hay un módulo de Apache que puede bloquear los ataques de Slowloris, pero el módulo El nombre depende de la versión específica de Ubuntu que esté utilizando.

Si es Ubuntu 12.10 o posterior:

$ sudo apt-get -y install libapache2-mod-qos

Luego, verifica la configuración en qos.conf:

$ sudo nano /etc/apache2/mods-available/qos.conf

## Configuración de calidad de servicio

# Maneja conexiones de hasta 100.000 IP diferentes

QS_ClientEntries 100000

# Permitir solo 50 conexiones por IP

QS_SrvMaxConnPerIP 50

# El número máximo de conexiones TCP activas está limitado a 256 entradas

MaxClients 256

# Deshabilitar el mantenimiento de conexiones activas cuando hay 70 conexiones TCP ocupadas

QS_SrvMaxConnClose 180

# Tasa mínima de solicitud/respuesta (rechazo lento Los clientes que bloquean el servidor, es decir, los slowloris, mantienen la conexión abierta y no realizan ninguna solicitud):

QS_SrvMinDataRate 150 1200

# Y limita los encabezados y el cuerpo de la solicitud (nota, esto también limita las solicitudes de carga y publicación):

# LimitRequestFields 30

# QS_LimitRequestBody 102400

Nota: si está ejecutando Ubuntu antes de la versión 12.04, use el siguiente comando en su lugar :

$ sudo apt-get -y install libapache2-mod-antiloris

Comprueba la configuración en antiloris.conf

$ sudo nano /etc/apache2/ mods-available/antiloris.conf

# Número máximo de conexiones paralelas por dirección IP en estado LECTURA

IPReadLimit 5

Evitar ataques de inyección de DNS

El módulo Spamhaus utiliza la lista negra del sistema de nombres de dominio (DNSBL) para evitar el reenvío de spam a través de formularios web, prevenir ataques de inyección de URL y prevenir ataques http DDoS de robots, normalmente protegiendo servidores de direcciones IP maliciosas conocidas.

$ sudo apt-get -y install libapache2-mod-spamhaus

$ sudo touch /etc/spamhaus.wl Agregue la configuración a apache2.conf

$ sudo nano /etc/apache2/apache2.conf

MS_METHODS POST, PUT, OPCIONES, CONECTAR

MS_WhiteList /etc/spamhaus.wl

MS_CacheSize 256

Reinicie Apache para cargar el nuevo módulo

$ sudo service apache2 restart

Ahora el servidor web se ha instalado y se está ejecutando normalmente. Apunte su navegador web a su dominio y verá un mensaje predeterminado que confirma que todo está bien para usted. Como verificación final, ejecute el siguiente comando para ver si su servidor tiene algún mensaje de error.

Si hay mensajes de error, debes buscar en Google y resolverlos de inmediato.

$ sudo tail -200 /var/log/syslog