Como bloquear ultrasurf usando iptables+fail2ban

Imagen de falcom

Como bloquear ultrasurf usando iptables+fail2ban

Bueno para los administradores cansados de ir bloqueando el famoso ultrasurf en cada una de sus nuevas versiones aca les pongo el como bloquearlo definitivamente utilizando iptables+fail2ban
OS: Centos 5.8
squid: Version 2.6.STABLE21 mode transparent

1. En su script de iptables agregar la siguiente linea

iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "

0j0: esta linea siempre va antes de la linea donde aceptamos los paquetes ya establecidos (--state ESTABLISHED,RELATED)

2. instalar fail2ban

yum install -y fail2ban

Editar el archivo de configuracion

vim /etc/fail2ban/fail2ban.conf

y agregar en la parte de logtarget

logtarget = /var/log/fail2ban.log

3. crear un archivo llamado "jail.local":

vim /etc/fail2ban/jail.local

y colocarle dentro lo siguiente:


[ultrasurf]

enabled = true
filter = ultrasurf
port = all
action = iptables-ultrasurf
logpath = /var/log/messages
maxretry = 3
bantime = 900

explain: si ven la variable bantime=900 nos indica q le estamos dando 900 sec/15 min de bloqueo a la ip que trate de utilizar el ultrasurf. El maxretry=3 significa q le estamos dando 3 chances al usuario en cuestion para un bloqueo definitivo

4. Creamos el archivo ultrasurf.local


vim /etc/fail2ban/filter.d/ultrasurf.local

Aqui adicionamos una expresion regular simple:


[Definition]

failregex = (.*)=UltraSurf=(.*) SRC=
ignoreregex =

Esta expresion nos permitira detectar en nuestro log las ips y sus acciones.

5. En el archivo que ejecutara la regla, irán las reglas de iptables necesarias para el bloqueo y desbloqueo:


vim /etc/fail2ban/action.d/iptables-ultrasurf.local

Dentro adicionamos:


[Definition]

actionstart = iptables -N fail2ban-
iptables -A fail2ban- -j RETURN
iptables -I INPUT -j fail2ban-
iptables -I FORWARD -j fail2ban-

actionstop = iptables -D FORWARD -j fail2ban-
iptables -D INPUT -j fail2ban-
iptables -F fail2ban-
iptables -X fail2ban-

actioncheck = iptables -n -L FORWARD | grep -q fail2ban-
iptables -n -L INPUT | grep -q fail2ban-

actionban = iptables -I fail2ban- 1 -s -j REJECT

actionunban = iptables -D fail2ban- -s -j REJECT

[Init]
name = ultrasurf


6. Por ultimo nos falta reiniciar fail2ban:


service fail2ban restart

[quote]
Stopping fail2ban: [OK]
Starting fail2ban: [ OK ][/quote]
y para que se ejecute siempre en nuestro centos

chkconfig fail2ban on

Para verificar los bloqueos bastara con:


cat /var/log/fail2ban.log

Listo podemos empezar a ver los primeros bloqueos que duran 15 min como pusimos en la parte de arriba
[quote]2012-11-06 09:39:56,135 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.1.168
2012-11-06 09:41:48,146 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.0.19
2012-11-06 09:52:15,168 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.3.224
2012-11-06 09:54:56,183 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.1.168
2012-11-06 09:55:39,198 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.1.168
2012-11-06 09:56:48,214 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.0.19
2012-11-06 10:01:14,242 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.0.19
2012-11-06 10:07:15,268 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.3.224
2012-11-06 10:10:39,285 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.1.168
2012-11-06 10:11:21,301 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.1.168
2012-11-06 10:16:14,324 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.0.19
2012-11-06 10:18:25,336 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.0.19
2012-11-06 10:26:21,341 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.1.168
2012-11-06 10:27:06,354 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.1.168
2012-11-06 10:33:25,346 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.0.19
2012-11-06 10:42:06,375 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.1.168
[/quote]

Nota, hay como tambien configurar para que nos notifique automaticamente via mail los malos usos, bueno
pero eso ya lo pondre en otro post.

Comentarios

Buen caso de uso del fail2ban

Imagen de deathUser

Buen caso de uso del fail2ban, la verdad es que es muy bueno y extensible ...

la regla:

iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "

Incluye la red 65.49.14.0/24, esta es la del proveedor del ultrasurf habría que monitorear el cambio de esa red supongo para que no se te escapen :), alguna otra manera de identificar tráfico de ultrasurf ...???

bye
;)

la verdad habria q ir

Imagen de falcom

la verdad habria q ir monitoreando el cambio de rango de ips de uso de ultrasurf, pero uso este sistema cerca de 1 anio y no hahn cambiado de subred.... ushhhh q frio q hace en UIO

OK, en todo caso como un bofh

Imagen de deathUser

OK, en todo caso como un bofh preocupado por la seguridad y el buen uso de los recursos, siempre notaras si algo va raro y verificarás el tema de las redes ...

Acá en Villahermosa hace un calor de madres ...!!! no manches güey ...!!! :D

bye
;)

como puedes ver tiene

Imagen de falcom

como puedes ver tiene configurado x default para proteger ssh, apache, php, vsftpd, etc, etc, etc... muy bueno para bloquear las conexiones indeseadas!

Sip, ya lo publiqué alguna

Imagen de deathUser

Sip, ya lo publiqué alguna vez en el blog como herramienta de bloqueo proactivo, lo interesante es que puedes personalizar muy granularmente la respuesta y acciones que toma cuando detecta las acciones indeseadas, muy potente ... :)

bye
;)

Bueno, tampoco es que haya

Imagen de deathUser

Bueno, tampoco es que haya sido el mega manual de fail2ban, más bien algo muy a mi estilo de un pequeño caso de uso con algunas notas de lo que me llama la atención y para un poco dejarles picados y que investiguen y así hasta hacen un COMO decente y me cuentan no ... :D

http://www.ecualug.org/?q=alaja_el_fail2ban_para_combatir_a_los_crackers_hijos_de_puta

OT: como me encanta la opción de crear tu propio URL :D ...

bye
;)

Hola, bueno ya han pasado 2

Imagen de nino1511

Hola, bueno ya han pasado 2 años desde este tutorial, lo estoy implementando pero en 6.2 64bits, iptables-1.4.7-11.el6.x86_64, kernel-2.6.32-431.23.3.el6.x86_64, tengo este error:

service fail2ban start
Iniciando fail2ban: ERROR Error in action definition iptables-ultrasurf
ERROR Errors in jail 'ultrasurf'. Skipping...
[FALLÓ]

Hice los paso tal como lo indicaste en tu tutorial.

Saludos

Vamos Ecuador, si se puede

Páginas