Seguridad en CentOS (Apache) (Mod_qos)

Iniciado por ZanGetsu, Junio 18, 2013, 04:37:50 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 18, 2013, 04:37:50 AM Ultima modificación: Julio 17, 2013, 09:26:48 PM por ANTRAX

Bueno, hacer un par de semanas me mude a centos, despues de pasar por varias distros GNU/LINUX, lo primero que hize fue montarme mi servidor web Apache, todo andaba de 10 hasta que llegamos a la parte de la seguridad, e aqui un problema, el servidor apache es facilmente derribado, ademas de un par de reglas iptables que en internet son facilmente encontradas y si no podemos leer un poco sobre configuraciones iptables ( You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ), ya con mod security y evasive no era suficiente para un ataque de el poderoso Slowloris, de el cual ya apache desde el año 2009 es victima y lo sige siendo hasta el dia de hoy, ya que no se ha encontrado una solucion concreta al problema.


En la busqueda 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), instalacion:

para instalarnos este mod instalaremos lo siguiente

Código: bash
yum install openssl-devel.x86_64


Código: bash
yum install pcre-devel.x86_64


Código: bash
yum install httpd-devel.x86_64


Descargamos el mod You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Descomprimimos:

Código: bash
tar -zxvf mod_qos-10.15.tar.gz


Directorio

Código: bash
cd mod_qos-10.5


Se ingresa al directorio apache2

Código: bash
cd apache2


Se ejecuta la compilación, y se obtendrá una salida como la siguiente:

Código: bash
apxs -i -c  mod_qos.c



Se edita el archivo de configuración de apache;

Código: bash
vim /etc/httpd/conf/httpd.conf


Y se inserta la siguiente línea para el módulo del mod_qos:

Código: text
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so


Se crea el archivo de configuración de nombre mod_qos.conf:

Código: bash
touch /etc/httpd/conf.d/qos.conf


Se inserta las siguientes líneas en el archivo de configuración recién creado:

Código: bash
vim /etc/httpd/conf.d/qos.conf


Código: text
## QoS Configuracion
<IfModule mod_qos.c>
#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
</IfModule>


Código: bash
service httpd restart


ademas de eso me agrege esta regla iptables:

Código: bash
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP


Saludos y disfruten :D

NOTA: las pruebas de ataques fueron realizadas en un servidor vps el cual alcanza una velocidad considerable:


y mi pc 1 mb de velocidad...

Me Gusta Esta Mas Que Bueno ise Las Pruebas Igualmente En centos Y Me Andubo De marivilla No Caia Con Dos VPS Nada Perfecto +10 Tu Post


Creo que esto me servira mas que Ubuntu Linux.
Tnks.
System32
XD
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login