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 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ), 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta