Em um primeiro momento, eu acreditei que seria fácil bloquear o
Ultrasurf, porém o uso de proxy transparente obriga que a porta
443 (HTTPS) fique liberada, o 'BitTorrent' foi bloqueado sem dificuldades.
Com o uso do
tcpdump, eu identifiquei que todo o acesso do Ultrasurf sai pela porta 443, logo a solução mais obvia seria bloqueá-la,
porém não é possível. Bloquear o IP ou 'range' de IP do servidor de destino seria outra opção.
Quando fiz o bloqueio pelo 'range' de IP, descobri que o Ultrasurf tenta uma centena de IPs diferentes até conseguir o acesso que ele precisa, e
certamente devem existir novos IPs a cada nova versão.
Pesquisei pelo Google e não encontrei nenhuma forma eficiente de bloquear o Ultrasurf, foi então que pensei o seguinte:
- Criar uma regra no
iptables e fazer Log dos acesso ao IP do Ultrasurf, depois criar um "Daemon" para ler esse log e fazer um
bloqueio em tempo real.
Bem, vamos por a mão na massa.
Começando
Vamos lá, este pequeno tutorial é para tratar um problema especifico, sendo assim, eu suponho que você já sabe usar o iptables, afinal já está
aqui buscando uma forma de fazer um bloqueio mais avançado. rs
Acredito que esta solução possa ser utilizada por todos, para Firewall simples e até o mais complexo.
Eu estou usando
Debian 5.0.3, iptables 1.4.2 e Fail2ban 0.8.3.
Qualquer dúvida, problema ou sugestão, podem deixar um comentário.
No final você encontra os arquivos de configuração para download.
iptables
Esta parte é bem simples, no seu script de firewall, adicione a seguinte linha:
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
A
rede 65.49.14.0/24 é a primeira a ser contactada pelo Ultrasurf quando ele
é aberto, a regra acima apenas gera um Log, não existe bloqueio do acesso, em um primeiro momento o usuário vai até pensar que está funcionando.
ATENÇÃO: Coloque esta regra antes da regra com o módulo state (-m state --state ESTABLISHED,RELATED).
Se colocar depois, os pacotes das conexões já estabelecidas, não irão para o Log e pode gerar falhas no bloqueio.
[1] Comentário enviado por
kleison paiva em 20/01/2012 - 10:57h:
tentei fazer, mas não deu certo !!!
a regra state (-m state --state ESTABLISHED,RELATED) -bash: syntax error near unexpected token `-m'
[2] Comentário enviado por
rodrigoluis em 20/01/2012 - 12:17h:
Kleison, houve uma confusão na hora que o moderador ajustou o artigo.
Com relação ao iptables você só precisa adicionar a regra
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
e essa regra deve ficar antes da regra do modulo state (-m state --state ESTABLISHED,RELATED).
Se você não usa o modulo state no seu firewall basta colocar a regra como primeira.
Qualquer dúvida acessa o original
http://www.dotsharp.com.br/linux/como-fazer-para-bloquear-ultrasurf-solucao-definitiva-iptables-fail...
abs
[3] Comentário enviado por
yros em 20/01/2012 - 12:43h:
Muito bom o artigo, tomara que o governo chinês não leia .....
[4] Comentário enviado por
flavio_conceicao em 20/01/2012 - 15:12h:
Fiz todos procedimentos com exceção do email e ao olhar o log aparece isso.
Restarting authentication failure monitor: fail2ban.
serverlinux:/etc/fail2ban/action.d# tail -f /var/log/fail2ban.log
2012-01-20 15:10:39,535 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-01-20 15:10:39,536 fail2ban.filter : INFO Set maxRetry = 6
2012-01-20 15:10:39,538 fail2ban.filter : INFO Set findtime = 600
2012-01-20 15:10:39,539 fail2ban.actions: INFO Set banTime = 600
2012-01-20 15:10:39,659 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-01-20 15:10:39,661 fail2ban.jail : INFO Jail 'ssh' started
2012-01-20 15:10:39,684 fail2ban.actions.action: ERROR iptables -N fail2ban-ultrasurf
iptables -A fail2ban-ultrasurf -j RETURN
iptables -I INPUT -j fail2ban-ultrasurf
iptables -I FORWARD -j fail2ban-ultrasurf returned 400
O que seria essa falha?
[6] Comentário enviado por
rangelozi em 20/01/2012 - 17:15h:
Excelente artigo,
Meus parabéns funciona!
Grande Abraço
[7] Comentário enviado por
izaias em 20/01/2012 - 17:54h:
Rodrigo
Caso o artigo precise de correções, descreva a página, como está e como quer que fique.
Envie para meu e-mail que farei as correções necessárias. OK?
E-mail em meu perfil.
[8] Comentário enviado por
rodrigoluis em 20/01/2012 - 23:51h:
Izaias,
Obrigado, eu enviei um email para o Leandro que fez a moderação inicial.
Vocês estão de parabéns.
Rodrigo
[9] Comentário enviado por
izaias em 21/01/2012 - 00:51h:
Ótimo!
Assunto resolvido.
Um abraço.
[10] Comentário enviado por
deividrvale em 23/01/2012 - 09:32h:
Estão de parabéns resolveu meu problema com o ultrasurf.
[11] Comentário enviado por
flavio_conceicao em 23/01/2012 - 14:55h:
Boa Tarde,
Obrigado Rodrigo, deu certo.
[13] Comentário enviado por
flavio_conceicao em 24/01/2012 - 11:18h:
Rodrigo,
Percebi que o erro que relatei acima, aparece quando acrescento a linha para envio de email.
Não consegui fazer funcionar com os dois "banaction" se ele barra não envia email, se envia email não barra, se coloco os dois juntos ele retorna o erro.
O que poderia ser.
Abraço.
[14] Comentário enviado por
jeff.jno em 24/01/2012 - 12:27h:
Muito boa a solução, quem sabe poderei testar em outro ambiente de trabalho, aqui o pessoal já comprou uma aplicação absurdamente cara para isso. ;(
[15] Comentário enviado por
rodrigoluis em 24/01/2012 - 13:25h:
É Jefferson, infelizmente na maioria das vezes só somos consultados quando já é tarde.
Flavio, te mandei uma mensagem em pvt.
Valeu Irineu, grande abraço.
Obrigado Deivid.
[16] Comentário enviado por
jbwillians em 03/02/2012 - 18:50h:
Boa tarde Galera !
ótimo post Rodrigo, gostaria de parabenizá-lo, queria perguntar se funciona para todas as versões do ultrasurf até a 11.03 que vc testou, ainda ñ tive tento de implementar sua dica, más fica essa pergunta, se alguém poder responder !
Valew !
[17] Comentário enviado por
rodrigoluis em 04/02/2012 - 20:52h:
Caro Jorge.
Eu fiz o teste com a versão 11.03 do UltraSurf, porém deve funcionar em todas.
Eu recebi diversos email de pessoas falando que estão usando e que está dando certo.
abs,
Rodrigo
[18] Comentário enviado por
yros em 04/02/2012 - 21:52h:
Eh isso ai rodrigo, o que vale não é apenas o conhecimento técnico para resolver e sim as idéias utilizando ferramentas boas e omelhor voce tem os dois conhecimento técnico e boas idéias, essa foi uma idéia bem opensource. Está de parabéns !
[19] Comentário enviado por
renato_pacheco em 28/02/2012 - 17:31h:
Gostei dessa opção, muito boa por sinal. Pena q num dá pra testar no meu ambiente de produção pq aki não mexe com proxy transparente...