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
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
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