Seguridad Web
Hace un tiempo me mude a CentOS, despues de pasar por
varias distros GNU/LINUX, lo primero que hice fue montarme mi servidor
web Apache, y todo andaba muy bien, hasta que llegamos a la parte de la
seguridad... Aqui me encontré con un problema, el servidor Apache es facilmente
derribado, a pesar de tener algunas reglas iptables que en internet son
facilmente encontradas, y si no podemos leer un poco sobre
configuraciones iptables en este post, ya que con Mod Security y Mod Evasive no era suficiente para detener un ataque del
poderoso Slowloris, del cual Apache es victima desde el 2009, y
lo sigue siendo hasta el dia de hoy ya que no se ha encontrado una
solucion concreta al problema.
En la busqueda de una posible solucion, me encontre con un mod muy interesante y el cual "mitigo" en gran magnitud un ataque de Slowloris a mi servidor Apache, este mod se llama "MOD_QOS, y a continuación voy a detallar los pasos para instalarlo:
Ahora editamos el archivo de configuracion de Apache
Este post fue realizado por ZanGetsu en el foro. Para consultar o saber mas sobre el tema, haz click acá
Seguridad en CentOS (Apache) [Mod_qos]
En la busqueda de una posible solucion, me encontre con un mod muy interesante y el cual "mitigo" en gran magnitud un ataque de Slowloris a mi servidor Apache, este mod se llama "MOD_QOS, y a continuación voy a detallar los pasos para instalarlo:
yum install openssl-devel.x86_64 yum install pcre-devel.x86_64 yum install httpd-devel.x86_64Descargamos el mod desde acá y una vez descargado, lo descomprimimos:
tar -zxvf mod_qos-10.15.tar.gzY luego vamos a su contenido escribiendo lo siguiente:
cd mod_qos-10.5Luego ingresamos al directorio de apache
cd apache2Ejecutamos la compilación
apxs -i -c mod_qos.c
Ahora editamos el archivo de configuracion de Apache
vim /etc/httpd/conf/httpd.confY se inserta la siguiente lÃnea para el módulo del mod_qos:
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.soCreamos un archivo de configuración de nombre mod_qos.conf:
touch /etc/httpd/conf.d/qos.confInsertamos las siguientes lÃneas en el archivo de configuración recién creado:
vim /etc/httpd/conf.d/qos.conf
## QoS ConfiguracionFinalmente reiniciamos el servicio con el siguiente comando:#Manejo de conexiones hasta 100000 IPs diferentes QS_ClientEntries 100000 # Se permite solamente 50 connexiones por IP QS_SrvMaxConnPerIP 50 # Maximo numero de conexiones TCP activas 256 MaxClients 256 # Desactivar la directiva keep-alive cuando el 70% de las conexiones TCP estan ocupadas: QS_SrvMaxConnClose 70% # Minimo de velocidad para peticiones / respuestas (niega a los clientes lentos que bloquean el servidor , #Ejemplo; el script slowloris mantiene las peticiones HTTP : QS_SrvMinDataRate 150 1200 # Limite de peticiones de encabezados y cuerpo (con cuidado, limita las cargas y las peticiones POST): # LimitRequestFields 30 # QS_LimitRequestBody 102400
service httpd restartA demás vamos a agregar esta regla iptables:
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROPCon esto podremos disminuir considerablemente los ataques que se reciban al servidor. Este labs fue montado en una VPS con la siguiente velocidad:
Este post fue realizado por ZanGetsu en el foro. Para consultar o saber mas sobre el tema, haz click acá
0 comentarios: