Como Fazer para Bloquear o UltraSurf, Solução Definitiva [iptables + fail2ban]
Essa semana fazendo a revisão do firewall de um cliente eu consegui bloquear o acesso as redes BitTorrent e ao terrível UltraSurf.
Vou descrever como fiz para bloquear o UltraSurf.
O problema
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 identifique que todo o acesso do UltraSurf sai pela porta 443, logo a solução mais obvia seria bloquea-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 tive 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, chega de bla bla e vamos por a mão na massa.
Começando
Vamos lá, esse 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 essa solução possa ser utilizada por todos, para firewall simples 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
Essa 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 essa regra antes da regra com o modulo 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.
fail2ban
O fail2ban é uma ferramenta muito boa para a segurança de servidores, em linhas gerais ela faz o seguinte.
Lê algum arquivo de log, compara com uma expressão regular e em caso positivo ele executa algum comando no sistema.
Por padrão ele monitora o log do SSH e em caso de falhas consecutivas no acesso ele cria uma regra no iptables para bloquear o possível invasor.
Instalando
Como eu estou utilizando o Debian e vou instalar pelo apt-get.
# apt-get install fail2ban Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: python-gamin The following NEW packages will be installed: fail2ban 0 upgraded, 1 newly installed, 0 to remove and 100 not upgraded. Need to get 86.2kB of archives. After this operation, 631kB of additional disk space will be used. Get:1 http://ftp.br.debian.org stable/main fail2ban 0.8.3-2sid1 [86.2kB] Fetched 86.2kB in 0s (419kB/s) Selecting previously deselected package fail2ban. (Reading database ... 38547 files and directories currently installed.) Unpacking fail2ban (from .../fail2ban_0.8.3-2sid1_all.deb) ... Processing triggers for man-db ... Setting up fail2ban (0.8.3-2sid1) ...
Depois de instalado vamos acessar o diretório de configuração
# cd /etc/fail2ban/
Aqui vamos criar um arquivo chamado jail.local
vi /etc/fail2ban/jail.local
Vamos adicionar o conteúdo abaixo ao arquivo jail.local.
[ultrasurf] enabled = true filter = ultrasurf port = all banaction = iptables-ultrasurf logpath = /var/log/messages maxretry = 6 # Tempo em segundos que o IP fica bloqueado, aqui 15 minutos bantime = 900
Vamos criar o arquivo com a expressão regular que irá filtar o log do iptables.
vi /etc/fail2ban/filter.d/ultrasurf.local
Aqui vamos adicionar uma expressão regular simples ao arquivo ultrasurf.local.
[Definition] failregex = (.*)=UltraSurf=(.*) SRC=<HOST> ignoreregex =
Apesar de simples, funciona 🙂
Agora o arquivo que irá executar o iptables e criar as regras necessárias para o bloqueio e desbloqueio.
vi /etc/fail2ban/action.d/iptables-ultrasurf.local
Aqui é onde a magica acontece, adicione o conteúdo abaixo ao arquivo iptables-ultrasurf.local.
[Definition] actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -j fail2ban-<name> iptables -I FORWARD -j fail2ban-<name> actionstop = iptables -D FORWARD -j fail2ban-<name> iptables -D INPUT -j fail2ban-<name> iptables -F fail2ban-<name> iptables -X fail2ban-<name> actioncheck = iptables -n -L FORWARD | grep -q fail2ban-<name> iptables -n -L INPUT | grep -q fail2ban-<name> actionban = iptables -I fail2ban-<name> 1 -s <ip> -j REJECT actionunban = iptables -D fail2ban-<name> -s <ip> -j REJECT [Init] name = ultrasurf
Agora basta reiniciar o Daemon
/etc/init.d/fail2ban restart
Pronto, agora é só olhar o log do fail2ban e esperar pelo primeiro bloqueio.
# tail -f fail2ban.log 2012-01-13 19:11:36,890 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.3 2012-01-13 19:11:36,891 fail2ban.jail : INFO Creating new jail 'ultrasurf' 2012-01-13 19:11:36,891 fail2ban.jail : INFO Jail 'ultrasurf' uses poller 2012-01-13 19:11:36,901 fail2ban.filter : INFO Added logfile = /var/log/messages 2012-01-13 19:11:36,902 fail2ban.filter : INFO Set maxRetry = 6 2012-01-13 19:11:36,903 fail2ban.filter : INFO Set findtime = 600 2012-01-13 19:11:36,903 fail2ban.actions: INFO Set banTime = 900 2012-01-13 19:11:36,912 fail2ban.jail : INFO Creating new jail 'ssh' 2012-01-13 19:11:36,912 fail2ban.jail : INFO Jail 'ssh' uses poller 2012-01-13 19:11:36,913 fail2ban.filter : INFO Added logfile = /var/log/auth.log 2012-01-13 19:11:36,914 fail2ban.filter : INFO Set maxRetry = 6 2012-01-13 19:11:36,915 fail2ban.filter : INFO Set findtime = 600 2012-01-13 19:11:36,915 fail2ban.actions: INFO Set banTime = 600 2012-01-13 19:11:36,985 fail2ban.jail : INFO Jail 'ultrasurf' started 2012-01-13 19:11:36,997 fail2ban.jail : INFO Jail 'ssh' started 2012-01-13 19:11:52,029 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.42 2012-01-13 19:13:36,057 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.140 2012-01-13 19:26:52,081 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.42 2012-01-13 19:28:36,109 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.140 2012-01-13 19:33:50,137 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.42 2012-01-13 19:48:50,165 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.42 2012-01-13 19:53:44,193 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.140
Enviando email de aviso
É possível enviar um email de alerta a cada bloqueio e desbloqueio que o fail2ban faz.
Para ativar essa função você tem primeiramente que testar o envio de email na maquina, para fazer isso vamos usar o programa mail.
# mail [email protected] Subject: Teste Teste de envio de mensagem . Cc:
Atenção ao . no final da mensagem, ele finaliza o email.
O Debian por padrão utiliza o Exim, o log fica localizado em /var/log/exim4/mainlog.
Você também pode usar o comando mailq para verificar a fila de email, em situações normais não deve existir nenhum email na fila.
Diversos detalhes podem impedir o envio de email, aqui não vou detalhar muito ,vou apenas colocar o conteúdo do meu arquivo /etc/exim4/update-exim4.conf.conf para usar como referência.
dc_eximconfig_configtype='smarthost' dc_other_hostnames='SERVER.DOMINIO.com.br' dc_local_interfaces='127.0.0.1' dc_readhost='' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='127.0.0.1' dc_smarthost='smtp.DOMINIO.com.br' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='false' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'
Estou usando ele como smarthost e encaminhando as mensagens para o meu servidor de smtp.
Depois de ajustar o arquivo você deve executar o comando update-exim4.conf para atualizar a configuração, e reiniciar o Daemon do exim com o comando /etc/init.d/exim4 restart
Pronto, se o envio de email pelo programa mail estiver funcionando você já pode ativar o envio de email pelo fail2ban, vamos lá.
Edite o arquivo /etc/fail2ban/jail.local
#vi /etc/fail2ban/jail.local
[ultrasurf] enabled = true filter = ultrasurf port = all banaction = iptables-ultrasurf sendmail-ultrasurf logpath = /var/log/messages maxretry = 6 bantime = 900
Adicione a action sendmail-ultrasurf conforme exemplo acima.
Agora vamos criar um novo arquivo chamado /etc/fail2ban/action.d/sendmail-ultrasurf.local
vi /etc/fail2ban/action.d/sendmail-ultrasurf.local
[Definition] actionstart = actionstop = actioncheck = actionban = printf %%b "Subject: Bloqueado <ip> From: Suporte <<sender>> To: <dest>\n \n O dispositivo com IP <ip> foi bloqueado depois de tentar burlar <failures> vezes o nosso sistema de seguranca.\n Acesso sera liberado automaticamente,\n Suporte" | /usr/sbin/sendmail -f <sender> <dest> actionunban = printf %%b "Subject: Liberado <ip> From: Infra <<sender>> To: <dest>\n \n O dispositivo com IP <ip> foi liberado para acesso normal\n Novas tentativas serao bloqueadas automaticamente,\n Suporte" | /usr/sbin/sendmail -f <sender> <dest> [Init] name = default dest = root sender = fail2ban
Feito isso você irá receber um email quando uma maquina for bloqueada ou desbloqueada, veja exemplo
Bloqueio
O dispositivo com IP 10.23.134.41 foi bloqueado depois de tentar burlar 14 vezes o nosso sistema de seguranca. Acesso sera liberado automaticamente, Suporte
Desbloqueio
O dispositivo com IP 10.23.134.41 foi liberado para acesso normal Novas tentativas serao bloqueadas automaticamente, Suporte
Você também pode alterar a mensagem a seu critério.
CentOS
O nosso amigo Jovander deu uma grande dica para funcionar em CentOS.
Trocando a linha
banaction = iptables-ultrasurf
por
action = iptables-ultrasurf
Ai sim o serviço funcionou e leu os logs.
Ubuntu
Nosso amigo Angelo Figueiredo deu uma dica pra quem utiliza o Ubuntu 12.04 LTS.
A configuração pode estar toda certinha e não estar bloqueando a solução é:
verificar o arquivo /etc/fail2ban/jail.conf
se estiver
backend = auto
mude para
backed = polling
que irá começar a bloquear.
Agradecimento
Um forte abraço ao meu amigo Yros Aguiar, quando falei que eu ia criar um Daemon para ler o log, ele me lembrou que eu não precisaria re-inventar a roda, bastava usar alguma ferramenta já existente, rs.
Valeu, economizou horas de trabalho.
Conclusão
Fica ai a dica, pra mim funcionou.
Testei apenas com a versão 11.03, se em alguma outra não der certo peço que me avisem para podermos analisar como bloquear.
Com essa solução a cada tentativa de acesso utilizando o UltraSurf o usuário será bloqueado e não irá acessar mais nada pelo tempo determinado, com isso ele tem duas opções, ou entrar em contato com o suporte da empresa para reclamar ou parar de usar o UltraSurf.
Se ele reclamar você orienta a não usar mais o software, porém normalmente ele para de usar de forma natural o UltraSurf.
Download
Configuração SEM suporte a envio de email conf-fail2ban-ultrasurf.tar.gz
Configuração COM suporte a envio de email conf-fail2ban-ultrasurf-email.tar.gz
Referências
40 Respostas
Que legal, primeiro site que encontro esse tutorial, parece ser muito eficiente!!!
Utilizo o CentOS com o tuxfrw e squid, existe a possibilidade de realizar o bloqueio do UltraSurf a partir deles?
Muito obrigado e sucesso!!
Abs
Muito bom o artigo. Obrigado, funcionou certinho aqui!
Uma dica que eu dou pra quem usa firewall/nat com duas placas de rede, é informar a interface usada e dar um drop depois. Exemplo:
IPTABLES=”/sbin/iptables” # caminho para o iptables
LOCAL_INTERFACE_1=”eth1″ # Interface para intranet/rede local
$IPTABLES -A FORWARD -i $LOCAL_INTERFACE_1 -d 65.49.14.0/24 -j LOG –log-prefix “UltraSurf ”
$IPTABLES -A FORWARD -i $LOCAL_INTERFACE_1 -d 65.49.14.0/24 -j DROP
Claudiney:
como implementar esse bloqueio do ultrasurf no pfsense?
Claudiney, tudo bem?
Tem sim, segue o link, inclusive foi baseado no meu artigo.
http://forum.pfsense.org/index.php/topic,64166.msg347609.html
abs,
Rodrigo
Muito bom o artigo, não tinha encontrado antes uma ferramenta eficiente para bloqueio do ultrasurf, ficou mais fácil, muito útil.
Yros(Citar)
Outra forma é identificar o tráfego com o Snort e integrar com iptables ou outro..
leonardo(Citar)
Rodrigo, muito bom o seu artigo, porém estou com um pouco de dificuldade para implementar.
Estou tentando em uma maquina CENTOS.
Fiz exatamente da forma indicada e o serviço Fail2Ban não inicia, então tentei com o código abaixo:
[ultrasurf]
enabled = true
filter = ultrasurf
banaction = iptables-ultrasurf[port=”all”, protocol=tcp]
sendmail-ultrasurf[name=ultrasurf, [email protected]]
logpath = /var/log/messages
maxretry = 6
bantime = 900
Porém não obtive sucesso.
Poderia me dá uma dica de como proceder ??? Toda ajuda é valida.
No mais, muito obrigado.
David Thimotti
David Thimotti(Citar)
Parabéns pelo Tutorial !!!!!
Implementei no Firewall de um cliente e funcionou, ta bloqueando o UltraSurf.
Só que no log, apareceram algumas mensagens de erro, que me parece ser de sintaxe ou
que está faltando alguma coisa.
Poderia me ajudar ?
Aqui tenho todo o script do Firewall em um arquivo chamado iptables, salvo no /root e
um squid rodando na porta 3128 com whitelist. A minha distribuição é um Debian 5.0.5 .
Segue o erro:
2012-01-25 10:43:13,130 fail2ban.actions.action: ERROR iptables -n -L FORWARD | grep -q fail2ban-ultrasurf
iptables -n -L INPUT | grep -q fail2ban-ultrasurf returned 100
2012-01-25 10:43:13,130 fail2ban.actions.action: ERROR Invariant check failed. Trying to restore a sane environment
2012-01-25 10:43:13,135 fail2ban.actions.action: ERROR iptables -D FORWARD -j fail2ban-ultrasurf
iptables -D INPUT -j fail2ban-ultrasurf
iptables -F fail2ban-ultrasurf
iptables -X fail2ban-ultrasurf returned 100
2012-01-25 10:43:13,147 fail2ban.actions.action: ERROR iptables -D fail2ban-ultrasurf -s 10.0.1.28 -j REJECT returned 100
Obrigado.
Eduardo(Citar)
Muito bom o artigo, pra mim funcionou 100%, implementei em varios lugares que administro, com 100% de eficacia.
Parabens ao author.
Sabino.
Sabino(Citar)
Caro Eduardo,
vamos lá, acho que essa é fácil de resolver, rs
Quando o fail2ban é iniciado ele criar uma CHAIN no iptables usando o comando abaixo
“iptables -N fail2ban-ultrasurf”
Dentro dessa Chain ele coloca as regras para bloqueio, quando você roda o seu script de firewall ele certamente remove todas as chains personalizadas, sendo assim ele remove a chain “fail2ban-ultrasurf”.
Para resolver isso basta você adicionar a linha abaixo no começo do seu script de firewall
/etc/init.d/fail2ban stop
E a seguinte linha no final do script de firewall
/etc/init.d/fail2ban start
Espero que resolva.
abs,
Rodrigo
Rodrigo Luis Silva(Citar)
Estou com o mesmo erro!!! Conseguiu subir o serviço
Jovander(Citar)
Muito obrigado, meu amigo, por essa sua importante contribuição! Estava há muito tempo procurando uma solução e a sua é, até o momento, a mais eficiente. Um abraço!
Walter(Citar)
Olá consegui resolver no CentOS da seguinte forma:
trocando a linha “banaction = iptables-ultrasurf” por “action =
iptables-ultrasurf”
Ai sim o serviço funcionou e leu os logs.
Até.
Jovander
Jovander(Citar)
Galera, testei essa dica aí e funcionou. Mas tive que fazer umas alterações, do mesmo modo que o colega Jovander, outra dúvida. Quando executo o comando tail -f fail2ban.log diz que o arquivo não existe, resolvi então colocar /var/log/fail2ban.log mas também não deu certo, criei o arquivo na mão, mas ele sempre fica em branco, ou seja, eu não consigo ver apenas o log do fail2ban, para que eu possa visualizar os logs tenho que executar o já conhecido tail -f /var/log/messages mas ele me mostra todos os logs é claro.
Alguma dica?
Max Weber(Citar)
Simplesmente sensacional.
Muito obrigado e parabéns pelo excelente trabalho.
Um abraço,
Daniel TI(Citar)
No fedora 14
Ainda não conseguir fazer funcionar mas o log conseguir resolver
echo “logtarget = /var/log/fail2ban.log” >> /etc/fail2ban/fail2ban.conf
Jefferson(Citar)
Parabéns Pelo Post e pelos Scripts. Agradecido!
Abraço
Bruno Bassani(Citar)
nessa linha iptables -A FORWARD -d 65.49.14.0/24 -j LOG –log-prefix “=UltraSurf= ” tem o espaço na expressao entre aspas ou é assim “=UltraSurf=” ?
marlon(Citar)
como faço para liberar 1 ip para usar o ultrasurf???
marlon(Citar)
Caro Marlon, tudo bem?
Sim, tem um espaço, se não colocar o espaço na hora de gerar o log ele vai ficar grudado.
abs,
Rodrigo
Rodrigo Luis Silva(Citar)
Marlon, basta adicionar a regra de liberação antes da regra iptables -A FORWARD -d 65.49.14.0/24 -j LOG –log-prefix “=UltraSurf= ”
abs
Rodrigo Luis Silva(Citar)
Dica pra quem utiliza o Ubuntu 12.04 LTS
A configuração pode estar toda certinha e não estar bloqueando a solução é:
verificar o arquivo /etc/fail2ban/jail.conf
se estiver backend = auto mude para backed = polling que irá começar a bloquear.
abraços
Angelo Figueiredo(Citar)
Angelo, muito obrigado pela dica.
Abraços
Rodrigo Luis Silva(Citar)
Mesmo problema.
Adan(Citar)
Hummm… falta o caminho completo do log:
tail -f /var/log/fail2ban.log
Mas ele não atualizaria sozinho? Ou seja, quando eu dou o comando o sistema mostra o conteúdo. Sentei numa máquina do lado e abri o UltraSurf para navegar. 5 minutos depois nada mudou na tela do log, nem quando mandei atualizar.
Adan(Citar)
Olá Rodrigo,
Estou usando sua regra na escola que trabalho, uso Debian 6 e squid configurado no modo transparente.
Percebi que bloqueia o ultrasurf na primeira vez que o usuário abre o mesmo, mas se o usuário não fechar o aplicativo e configurar com minhas configurações de proxy o mesmo consegue usar o ultrasurf.
Gostaria de saber se é possível utilizar algum comando que não deixe o squid passar a conexão do ultrasurf ou se pode ser algo errado no meu firewall.
Segue conf atual do firewall
#!/bin/sh
modprobe iptable_nat
iptables -F
iptables -t nat -F
iptables -X
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -i eth1 –dport 80 -j REDIRECT –to 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -d 65.49.14.0/24 -j LOG –log-prefix “=UltraSurf= ”
Agradecimentos antecipados,
No aguardo,
Etecfami
etecfami(Citar)
Muito boa noite Rodrigo.
Primeiramente queria te agradecer muito mesmo pela essa MARAVILHOSA dica.
Funcionou que uma maravilha!!
Agora uns engraçadinhos metidos a bonzão aqui na empresa irão voltar a trabalhar e deixar o facebook de lado…. HAHAHAHAHA (risada maligna)
Brincadeiras a parte, obrigado mais uma vez, e vou te seguir no facebook e acompanhar teu site sempre ok?
Tenha uma ótima semana.
Abraços.
Anonymous(Citar)
Boa noite,
Pela sua regra você deve utilizar proxy transparente, para contornar esse problema você pode editar o arquivo /etc/fail2ban/action.d/iptables-ultrasurf.local
Adiciona a seguinte linha
iptables -I PREROUTING -t nat -j fail2ban-<name>
iptables -D PREROUTING -t nat -j fail2ban-<name>
Veja o aquivo completo
[Definition]
actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I INPUT -j fail2ban-<name>
iptables -I FORWARD -j fail2ban-<name>
iptables -I PREROUTING -t nat -j fail2ban-<name>
actionstop = iptables -D FORWARD -j fail2ban-<name>
iptables -D INPUT -j fail2ban-<name>
iptables -D PREROUTING -t nat -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
actioncheck = iptables -n -L FORWARD | grep -q fail2ban-<name>
iptables -n -L INPUT | grep -q fail2ban-<name>
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j REJECT
actionunban = iptables -D fail2ban-<name> -s <ip> -j REJECT
[Init]
name = ultrasurf
Dessa forma você vai impedir que ele conecte na porta do proxy.
Caso você utilize estações Windows e tenha um AD na rede eu recomendo que você crie uma GPO para bloquer a alteração de proxy.
Se der certo me avisa.
abs,
Rodrigo
Rodrigo Luis Silva(Citar)
Opa Jeferson, me passa por email os arquivos de log as configurações e o resultado do iptables -L -nv
abs
Rodrigo Luis Silva(Citar)
Essas regras só pode ser usado no linux, vc tem algum procedimento para Ruwindows??
Carlos Henrique da Silva(Citar)
Utilize o Ubuntu 12.04 mas o serviço fail2ban não iniciar
/etc/init.d/fail2ban restart
erro: Restarting authentication failure monitor fail2ban
Alguem pode me ajudar.
Elivelto(Citar)
Olá Rodrigo! Primeiramente gostaria de te elogiar pela dedicação em ajudar o próximo.
Por gentileza você poderia me ajudar ?
Não estou conseguindo bloquear o ultrasurf, o pessoal está utilizando a versão 12.04.
Já segui todos os procecimentos anteriores sem sucesso, utilizo proxy transparente, já configurei a GPO no AD para não permitir que o usuário alterar as configurações do Proxy.
Segue o log do Fail2Ban, utilizo o Ubuntu 10.04.
root@srv-internet:~# tail -f /var/log/fail2ban.log
2012-10-04 15:47:20,240 fail2ban.jail : INFO Jail ‘ultrasurf’ uses poller
2012-10-04 15:47:20,241 fail2ban.filter : INFO Set maxRetry = 6
2012-10-04 15:47:20,243 fail2ban.filter : INFO Set findtime = 600
2012-10-04 15:47:20,245 fail2ban.actions: INFO Set banTime = 900
2012-10-04 15:47:20,265 fail2ban.jail : INFO Jail ‘ssh’ started
2012-10-04 15:47:20,283 fail2ban.jail : INFO Jail ‘ultrasurf’ started
2012-10-04 15:53:13,982 fail2ban.server : INFO Stopping all jails
2012-10-04 15:53:14,973 fail2ban.jail : INFO Jail ‘ssh’ stopped
2012-10-04 15:53:15,735 fail2ban.jail : INFO Jail ‘ultrasurf’ stopped
2012-10-04 15:53:15,744 fail2ban.server : INFO Exiting Fail2ban
Segue meu firewall
EXTERNAL=eth0
INTERNAL=eth1
# parando o failban
/etc/init.d/fail2ban stop
[…]
# log do ultrasurf
iptables -A FORWARD -d 65.49.14.0/24 -j LOG –log-prefix “=UltraSurf= ”
[…]
# BLOQUEIO ULTRASURF
[…]
iptables -I FORWARD -p tcp -d 65.49.14.0/24 -j DROP
[…]
# inicializa o failban
/etc/init.d/fail2ban start
Segue os resultados do comando iptables -L -nv
root@srv-internet:~# iptables -L -nv
Chain INPUT (policy DROP 1842 packets, 593K bytes)
pkts bytes target prot opt in out source destination
14813 1550K ACCEPT all — eth1 * 0.0.0.0/0 0.0.0.0/0
[…]
14 672 DROP tcp — * * 0.0.0.0/0 65.49.14.0/24
[…]
40 4586 LOG all — * * 0.0.0.0/0 65.49.14.0/24 LOG flags 0 level 4 prefix “=UltraSurf= ”
[…]
Chain OUTPUT (policy ACCEPT 34376 packets, 39M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
[…]
Neto(Citar)
Boa implementação!
Cristiano Galdino(Citar)
Carlos, boa noite.
Para Windows eu não conheço.
abs,
Rodrigo
Rodrigo Luis Silva(Citar)
Elivelto, boa noite.
Tenta usar a dica do Angelo.
verificar o arquivo /etc/fail2ban/jail.conf
se estiver backend = auto mude para backed = polling que irá começar a bloquear.
Rodrigo Luis Silva(Citar)
Opa Neto, tudo bem?
Não sei se já conseguiu resolver, o que tenho de dica é o seguinte.
14 672 DROP tcp — * * 0.0.0.0/0 65.49.14.0/24 < <<<<<<<<<<<<<<<<<-------- 0 0 DROP tcp -- * * 65.49.2.0/24 0.0.0.0/0 0 0 DROP tcp -- * * 0.0.0.0/0 65.49.2.0/24 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9666 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3162 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3103 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:23620 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:19769 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:33190 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:55433 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:19769 0 0 ACCEPT all -- * * 0.0.0.0/0 200.201.174.204 40 4586 LOG all -- * * 0.0.0.0/0 65.49.14.0/24 LOG flags 0 level 4 prefix "=UltraSurf= " <<<<<<<<<<<<<<------------- Você tem duas regras para a rede 65.49.14.0/24, nesse caso o pacote cai na primeira regra e não cria o log do ultrasurf que está na regra mais abaixo. Tira do seu script as regras de bloqueio do ultrasurf que você usava antes. # BLOQUEIO ULTRASURF iptables -I FORWARD -p tcp --dport 19769 -j DROP iptables -I FORWARD -p tcp --dport 55433 -j DROP iptables -I FORWARD -p tcp --dport 33190 -j DROP Elas acabam entrando na frente da regra do fail2ban. Espero que resolva. Vou editar o seu post para não aparecer as suas regras no site. abs, Rodrigo
Rodrigo Luis Silva(Citar)