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

Después de probar muchas

Imagen de nino1511

Después de probar muchas opciones, he logrado minimizar el uso de ultrasurf. Cabe indicar que alguien sabio realmente logrará detenerlo finalmente.

Se me ocurrió no bloquear las ips de destino de ultrasurf sino, tenderle una "trampa". Lamentablemente para "bloquearlo totalmente" se necesita un dispositivo adicional que puede ser otro linux o un mikrotik o un router que maneje qos.

1. Bloquear el puerto 9666
2. En tu firerewall debes usar esta linea, siendo eth1 tu lan, eth0 tu wan
iptables -t nat -A PREROUTING -i eth1 -d 65.49.14.0/24 -p tcp --dport 443 -j DNAT --to-destination hostdeturedque tengaqos:443.

Con estas dos opciones abren las paginas pero lentiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisimo, que los usuarios te piden ayuda, tu vas y les dices que no usen ese programa porque "les caerá virus", je je.

Pero si lo quieres hacer mas vacan.
1. En tu dispositivo qos (en mi caso un mikrotik, internet-->eth0....lan--->eth1....mikrotik como bridge) creas una cola con la regla de las ips que se conectan a ultrasurf en este caso 65.49.14.0/24 y le pones por ancho de banda 64K, con eso hermano adiós al ultrasurf estará demasiado lento para ser usado y la gente te dejara de "joder"

Vamos Ecuador, si se puede

vamos es por la nueva version

Imagen de falcom

vamos es por la nueva version de fail2ban q ha hecho un cambio radical en su configuracion y estructura, seguramente estas usando esa version, dime 1ero q version esas? y luego postea los mensajes de error para darte un hilo!

Páginas