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.
[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.
[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 !
[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 !
[20] Comentário enviado por regismeneses em 13/06/2012 - 11:48h
Bom dia,
parabéns pelo tutorial. Execultei todo tutorial que é bem claro mas, eu estou com algumas dificuldades, pois não consegui fazer funcionar. Este e o log do fail2band abaixo e também quando olho no status do programa ele está com falha e não faz bloquei nenhum. Utilizo: Debian Linux servidor 2.6.32-5-amd64 #1.
___________________________________________________
root@servidor:~# /etc/init.d/fail2ban status
Status of authentication failure monitor:fail2ban is running
___________________________________________________
root@servidor:~# tail -f /var/log/fail2ban.log
2012-06-13 10:18:12,535 fail2ban.filter : INFO Set findtime = 600
2012-06-13 10:18:12,535 fail2ban.actions: INFO Set banTime = 900
2012-06-13 10:18:12,538 fail2ban.jail : INFO Creating new jail 'ssh'
2012-06-13 10:18:12,539 fail2ban.jail : INFO Jail 'ssh' uses poller
2012-06-13 10:18:12,539 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-06-13 10:18:12,539 fail2ban.filter : INFO Set maxRetry = 6
2012-06-13 10:18:12,540 fail2ban.filter : INFO Set findtime = 600
2012-06-13 10:18:12,540 fail2ban.actions: INFO Set banTime = 600
2012-06-13 10:18:12,609 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-06-13 10:18:12,611 fail2ban.jail : INFO Jail 'ssh' started
_______________________________________________________
[21] Comentário enviado por rodrigoluis em 14/06/2012 - 00:11h
[20] Comentário enviado por regismeneses em 13/06/2012 - 11:48h:
Bom dia,
parabéns pelo tutorial. Execultei todo tutorial que é bem claro mas, eu estou com algumas dificuldades, pois não consegui fazer funcionar. Este e o log do fail2band abaixo e também quando olho no status do programa ele está com falha e não faz bloquei nenhum. Utilizo: Debian Linux servidor 2.6.32-5-amd64 #1.
___________________________________________________
root@servidor:~# /etc/init.d/fail2ban status
Status of authentication failure monitor:fail2ban is running
___________________________________________________
root@servidor:~# tail -f /var/log/fail2ban.log
2012-06-13 10:18:12,535 fail2ban.filter : INFO Set findtime = 600
2012-06-13 10:18:12,535 fail2ban.actions: INFO Set banTime = 900
2012-06-13 10:18:12,538 fail2ban.jail : INFO Creating new jail 'ssh'
2012-06-13 10:18:12,539 fail2ban.jail : INFO Jail 'ssh' uses poller
2012-06-13 10:18:12,539 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-06-13 10:18:12,539 fail2ban.filter : INFO Set maxRetry = 6
2012-06-13 10:18:12,540 fail2ban.filter : INFO Set findtime = 600
2012-06-13 10:18:12,540 fail2ban.actions: INFO Set banTime = 600
2012-06-13 10:18:12,609 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-06-13 10:18:12,611 fail2ban.jail : INFO Jail 'ssh' started
_______________________________________________________
Grato.
Opa Regis, tudo bem?
No /var/log/messages o iptables está gravando os logs dos acessos?
Pode ser algum detalhe no iptables, me manda o /var/log/messages que vamos tentando resolver juntos.
[22] Comentário enviado por regismeneses em 14/06/2012 - 08:25h
Bom dia, Rodrigo.
O log está ai, pelo que vi realmente não está armazenando os logs do iptables.
Também postei meu firewall para você ver se está errado.
root@servidor:~# tail -f /var/log/messages
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:40 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:42 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
Jun 14 08:04:44 servidor smbd[19168]: leonardo.pupak|192.168.10.133|Seção Técnica|open|ok|r|SECTEC/01-CONTROLE DE LEVANTAMENTO/OAC
__________________________________________________________________________________________________________________________
echo "|-->> Compartilhando a conexão com a Internet..."
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $interfaceWAN -j MASQUERADE
# Redirecionando requisição para um host da rede local
# iptables -t nat -A PREROUTING -i $interfaceWAN -p tcp --dport 5900 -j DNAT --to-dest 192.168.1.100:5900
echo "|-->> Gerando log do UltraSurf..."
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
echo "|-->> Bloqueando ataques mais conhecidos..."
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo "|-->> Bloqueando scanners de portas..."
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
echo "|-->> Bloqueando downloads de redes P2P..."
#iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j LOG --log-legel 1 --log-prefix "Acesso P2P: "
#iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j DROP
iptables -A FORWARD -d 216.35.208.0/24 -j REJECT
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
iptables -A FORWARD -d 209.61.186.0/24 -j REJECT
iptables -A FORWARD -d 64.49.201.0/24 -j REJECT
iptables -A FORWARD -d 209.25.178.0/24 -j REJECT
iptables -A FORWARD -d 206.142.53.0/24 -j REJECT
iptables -A FORWARD -p TCP --dport 1214 -j REJECT
iptables -A FORWARD -d 213.248.112.0/24 -j REJECT
iptables -A FORWARD -p TCP --dport 1214 -j REJECT
iptables -A FORWARD -p TCP --dport 6346 -j REJECT
iptables -A FORWARD -d 64.245.58.0/23 -j REJECT
echo "|-->> Liberando acesso sem proxy à Internet para a(s) máquina(s)..."
for i in `cat $ListMACs | egrep -v "^[#;]"`; do
proxyObrigatorio=`echo $i | cut -d ';' -f 2`
mac=`echo $i | cut -d ';' -f 3`
maquina=`echo $i | cut -d ';' -f 5`
if [ $proxyObrigatorio = 1 ]; then
echo -e "|--|--> $mac - $maquina"
iptables -A FORWARD -j ACCEPT -m mac --mac-source $mac -p tcp --dport 80
iptables -A FORWARD -j ACCEPT -m mac --mac-source $mac -p tcp --dport 443
fi
done
echo "|-->> Bloqueando acesso à Internet para as demais máquinas sem proxy..."
iptables -A FORWARD -j DROP -s $ipRede -p tcp --dport 80
iptables -A FORWARD -j DROP -s $ipRede -p tcp --dport 443
echo "|-->> Liberando acesso para a interface de loopback..."
iptables -A INPUT -i lo -j ACCEPT
echo "|-->> Bloqueando pings e protegendo contra IP spoofing e pacotes inválidos..."
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
echo "|-->> Concluindo bloqueios de acesso, negando todas as demais portas..."
iptables -A INPUT -p tcp --syn -j DROP
[23] Comentário enviado por rodrigoluis em 14/06/2012 - 23:17h
Regis, obrigado pelas informações.
Aparentemente está tudo certinho, só tenho uma sugestão
Adiciona no seu script as seguintes linhas
No começo da função PARAR
/etc/init.d/fail2ban stop
No começo da função INICIAR
/etc/init.d/fail2ban start
Me manda o resultado do comando
iptables -L FORWARD -nv
Você chegou a fazer teste com o ultrasurf na sua maquina?
Eu recomendo o seguinte teste
No servidor você roda o seguinte comando
tail -f /var/log/messages
Ele vai ficar monitorando o /var/log/messages e jogar o resultado na tela
Na sua maquina você abre o UltraSurf e verifica se ele será bloqueado ou não, vê o resultado do tail -f /var/log/messages se ele gravou alguma coisa lá.
[26] Comentário enviado por regismeneses em 18/06/2012 - 08:22h
Bom dia, Rodrigo.
O log que aparece em /var/log/fail2ban.log é este abaixo. Eu falei que estava
bloqueando, mas fui observar ele parou apenas meu computador quando tentei
acessar um site pelo ip 64.49.14.11:443, agora o computador de outros usuário
não barrou.
root@servidor:~# tail -f /var/log/fail2ban.log
2012-06-18 08:13:48,381 fail2ban.filter : INFO Set findtime = 600
2012-06-18 08:13:48,381 fail2ban.actions: INFO Set banTime = 900
2012-06-18 08:13:48,384 fail2ban.jail : INFO Creating new jail 'ssh'
2012-06-18 08:13:48,384 fail2ban.jail : INFO Jail 'ssh' uses poller
2012-06-18 08:13:48,385 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-06-18 08:13:48,385 fail2ban.filter : INFO Set maxRetry = 6
2012-06-18 08:13:48,386 fail2ban.filter : INFO Set findtime = 600
2012-06-18 08:13:48,386 fail2ban.actions: INFO Set banTime = 600
2012-06-18 08:13:48,455 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-06-18 08:13:48,457 fail2ban.jail : INFO Jail 'ssh' started
[27] Comentário enviado por rodrigoluis em 20/06/2012 - 22:23h
[26] Comentário enviado por regismeneses em 18/06/2012 - 08:22h:
Bom dia, Rodrigo.
O log que aparece em /var/log/fail2ban.log é este abaixo. Eu falei que estava
bloqueando, mas fui observar ele parou apenas meu computador quando tentei
acessar um site pelo ip 64.49.14.11:443, agora o computador de outros usuário
não barrou.
root@servidor:~# tail -f /var/log/fail2ban.log
2012-06-18 08:13:48,381 fail2ban.filter : INFO Set findtime = 600
2012-06-18 08:13:48,381 fail2ban.actions: INFO Set banTime = 900
2012-06-18 08:13:48,384 fail2ban.jail : INFO Creating new jail 'ssh'
2012-06-18 08:13:48,384 fail2ban.jail : INFO Jail 'ssh' uses poller
2012-06-18 08:13:48,385 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2012-06-18 08:13:48,385 fail2ban.filter : INFO Set maxRetry = 6
2012-06-18 08:13:48,386 fail2ban.filter : INFO Set findtime = 600
2012-06-18 08:13:48,386 fail2ban.actions: INFO Set banTime = 600
2012-06-18 08:13:48,455 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-06-18 08:13:48,457 fail2ban.jail : INFO Jail 'ssh' started
Grato.
Opa Regis, tudo bem?
Não entendi, você usou o UltraSurf para fazer o teste ou digitou o endereço direto no navegador?
[29] Comentário enviado por regismeneses em 26/06/2012 - 10:38h
Bom dia, Rodrigo.
Eu digitei o endereço direto no navegador e ele bloqueou e fiz o teste com o programa e tmb funcionou.
Mas tem um usuário aqui que está conseguindo burlar com um plugin dentro do gmail,
se vc souber de alguma coisa assim me de uma luz. Pois esse plugin usa a mesmos endereços do ultrasurf.
ACCESSED SITE DATE TIME
65.49.14.93:443 26/06/2012 07:25:24
65.49.14.93:443 26/06/2012 07:45:27
[32] Comentário enviado por rodrigoluis em 30/06/2012 - 11:03h
[29] Comentário enviado por regismeneses em 26/06/2012 - 10:38h:
Bom dia, Rodrigo.
Eu digitei o endereço direto no navegador e ele bloqueou e fiz o teste com o programa e tmb funcionou.
Mas tem um usuário aqui que está conseguindo burlar com um plugin dentro do gmail,
se vc souber de alguma coisa assim me de uma luz. Pois esse plugin usa a mesmos endereços do ultrasurf.
ACCESSED SITE DATE TIME
65.49.14.93:443 26/06/2012 07:25:24
65.49.14.93:443 26/06/2012 07:45:27
Este log usei o sarg para ver o acesso.
Obrigado pela atenção!!!
Regis, dá um prêmio pra esse usuário, kkkk
O prêmio que eu dou para esse tipo de usuário que não para de buscar formas de burlar o sistema é tirar todo o acesso dele a Internet, ai espero ele reclamar, de preferência por email com cópia para o chefe dele. Ai respondo com uma explicação sobre os motivos do bloqueio. Resolve que é uma maravilha, rsrsrs
Então, se ele tá usando um plugin no gmail (Não conheço) você pode bloquear os IPs via ACL do Squid
Se você descobrir qual é esse plugin me avisa, vou fazer uns testes por aqui.
[33] Comentário enviado por rodrigoluis em 30/06/2012 - 11:12h
[30] Comentário enviado por phrich em 29/06/2012 - 12:38h:
Bom, é mais uma alternativa, todavia sempre utilizo o proxy não transparente, é menos provavel erros e acredito que mais seguro...
Isso é verdade, proxy não transparente é muito mais seguro, eu também prefiro, porém dependendo do ambiente fica muito trabalhoso para os técnicos e usuário, por exemplo usuários que cada dia está em uma unidade diferente.
Lógico que existem formas de minimizar os impactos.
Bom fica a diga do nosso amigo.
Analise o seu ambiente e veja a melhor forma, sabendo que o proxy não transparente permite um melhor controle.
[34] Comentário enviado por rootroot em 02/07/2012 - 22:42h
Aqui está gerando esse erro ao iniciar o serviço.
voce poderia me ajudar ?
Starting fail2ban:
WARNING 'action' not defined in 'php-url-fopen'. Using default value
WARNING 'action' not defined in 'ultrasurf'. Using default value
ERROR Error in action definition
ERROR Errors in jail 'ultrasurf'. Skipping...
[35] Comentário enviado por gleysonhp em 03/07/2012 - 21:04h
Obrigado Rodrigo, era isso mesmo... esta funfando que uma beleza! (-:
Depois de alguns anos bloqueando esta praga na minha rede, acredito que esta é realmente a melhor forma de bloqueio... e eu ainda bloqueio pelo Squid + DansGuardian, quero ver passar pelo meu servidor! rsrs..
[36] Comentário enviado por rodrigoluis em 03/07/2012 - 22:14h
[34] Comentário enviado por rootroot em 02/07/2012 - 22:42h:
Aqui está gerando esse erro ao iniciar o serviço.
voce poderia me ajudar ?
Starting fail2ban:
WARNING 'action' not defined in 'php-url-fopen'. Using default value
WARNING 'action' not defined in 'ultrasurf'. Using default value
ERROR Error in action definition
ERROR Errors in jail 'ultrasurf'. Skipping...
Você usa CentOS?
Se for você precisa alterar a linha "banaction = iptables-ultrasurf" por "action = iptables-ultrasurf"
[37] Comentário enviado por rodrigoluis em 03/07/2012 - 22:15h
[35] Comentário enviado por gleysonhp em 03/07/2012 - 21:04h:
Obrigado Rodrigo, era isso mesmo... esta funfando que uma beleza! (-:
Depois de alguns anos bloqueando esta praga na minha rede, acredito que esta é realmente a melhor forma de bloqueio... e eu ainda bloqueio pelo Squid + DansGuardian, quero ver passar pelo meu servidor! rsrs..
[40] Comentário enviado por fabianoooo em 28/07/2012 - 16:44h
Caro amigo, não sou muito de postar em fóruns mas gostaria muito de parabenizá-lo pela iniciativa. Me ajudou muito! Continue compartilhando o conhecimento e muitíssimo obrigado.
[43] Comentário enviado por jose.freitas.rj em 24/09/2012 - 16:58h
Olá Rodrigoluis! Parabéns pelo artigo! Esse artigo foi de muita importância na implementação em um servidor CentOS que eu tenho na empresa que eu trabalho. Funcionou de primeira querido! Abraços...
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 esse problema adicionei 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
Talvez estou equivocando, mas foi o que achei de solução
Mas abaixo esta o log messages
------------------------------------------------------------------------------------------------------------------------------------------
[47] Comentário enviado por fgcneto em 04/10/2012 - 13:58h
Também estou o mesmo problema, quando reinicio o failban não aparece nenhuma mensagemde erro, entretanto não bloqueia o ultrasurf. Segue o log o Fail2ban
2012-10-04 13:52:46,403 fail2ban.filter : INFO Set maxRetry = 6
2012-10-04 13:52:46,405 fail2ban.filter : INFO Set findtime = 600
2012-10-04 13:52:46,406 fail2ban.actions: INFO Set banTime = 600
2012-10-04 13:52:46,468 fail2ban.jail : INFO Creating new jail 'ultrasurf'
2012-10-04 13:52:46,468 fail2ban.jail : INFO Jail 'ultrasurf' uses Gamin
2012-10-04 13:52:46,470 fail2ban.filter : INFO Set maxRetry = 6
2012-10-04 13:52:46,473 fail2ban.filter : INFO Set findtime = 600
2012-10-04 13:52:46,474 fail2ban.actions: INFO Set banTime = 900
2012-10-04 13:52:46,487 fail2ban.jail : INFO Jail 'ssh' started
2012-10-04 13:52:46,491 fail2ban.jail : INFO Jail 'ultrasurf' started
Por gentileza, alguém puder me ajudar
[49] Comentário enviado por l-correa-junior em 23/02/2013 - 18:19h
Olá Rodrigo!
Gostaria de parabenizá-lo acerca do artigo publicado. Realmente simples e funcional.
Implementei a configuração conforme seu artigo na empresa onde sou responsável pelo setor de TI e realmente solucionou
um pesadelo que me atormentava algum tempo.
Gostaria de informar que utilizo o Ubuntu Server 12.10 e que senti uma certa dificuldade com o Firewall UFW que incorpora a OS.
Desabilitei o UFW e criei o script de firewall para dar certo. O mais interessante que durante os testes é que a primeira tentativa de conectar com o Ultrasurf ele conecta e não bloqueia, mas depois de encerrar o Ultrasurf e tentar novamente, acompanhando o log do fail2ban.log ele bloqueia normalmente, ou seja ele não bloqueia de primeira, somente apos a segunda tentativa por diante para qualquer maquina na minha rede..
Bom foi somente um agradecimento e uma breve analise do que ocorre com o meu servidor Proxy.
Um grande abraço e sucesso!
[50] Comentário enviado por Cirillo em 05/04/2013 - 11:00h
Olá Pessoal,
Sou novo aqui e gostaria muito da ajuda de vocês.
Estava procurando uma forma de como bloquear o ultrasurf e acabei encontrando esse artigo, que por sinal é muito interessante.
Realizei todos os passos mostrados no tutorial, o fail2ban está rodando perfeitamente, os arquivos citados foram configurados corretamente ("conferi duas vezes"), o iptable foi adicionado na minha regra de firewall como a primeira regra visto que não utilizo o módulo state (-m state --state ESTABLISHED,RELATED), quando visualizo o log tail -f fail2ban.log a jail está com o status de started. Mas quando executo o ultrasurf em minha máquina, estou conseguindo navegar normalmente sem nenhum bloqueio.....achei estranho. Agradeço desde já qualquer ajuda.
Configurações:
Distribuição:
Ubuntu Server 11.10
Meu Firewall:
echo "Ativando o firewall"
echo "Gera log para bloquear o ultrasurf.......[OK]"
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
echo "Carregando os modulos....................[OK]"
modprobe iptables
modprobe iptable_nat
echo "Habilitando IP forwarding................[OK]"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Compartilhando a conexao.................[OK]"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "Direcionando porta 80 para 8080..........[OK]"
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080 ! -s 125.115.0.9
echo "Protegendo contra pacotes danificados....[OK]"
iptables -A FORWARD -m unclean -j DROP
echo "Abrindo conexao para rede local..........[OK]"
iptables -A INPUT -p tcp --syn -s 125.115.0.0/255.255.0.0 -j ACCEPT
echo "Fechando a conexao para o resto..........[OK]"
iptables -A INPUT -p tcp --syn -j DROP
echo "Bloqueando ping no servidor..............[OK]"
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
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
[55] Comentário enviado por fnxxr em 16/10/2014 - 17:46h
Galera não sei se vcs podem me ajudar, o meu funcionou aqui corretamente o bloqueio, a questão e o seguinte:
O próprio ultrasurf ele não bloqueia, se eu abro o programa normal ele conecta e o iptables não gera log para que o fail2ban possa ler, mais se eu pingar o ip 65.49.14.0 ele funciona perfeitamente.
[56] Comentário enviado por silasmg em 12/02/2015 - 18:09h
Olá, se alguém puder ajudar, estou com um problema aqui, quando crio o arquivo jail.local ele não inicia mais o fail2ban, informando o seguinte no log:
2015-02-12 17:59:41,806 fail2ban.server : INFO Stopping all jails
2015-02-12 17:59:42,732 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport –dports ssh -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 100
2015-02-12 17:59:42,732 fail2ban.jail : INFO Jail ‘ssh’ stopped
2015-02-12 17:59:42,733 fail2ban.server : INFO Exiting Fail2ban
Se eu colocar essa configuração dentro do jail.conf dá na mesma, antes o erro acontecia da seguinte forma:
2015-02-12 18:01:55,481 fail2ban.server : INFO Stopping all jails
2015-02-12 18:01:56,259 fail2ban.jail : INFO Jail ‘ssh’ stopped
2015-02-12 18:01:56,260 fail2ban.server : INFO Exiting Fail2ban
[58] Comentário enviado por Tales Julian em 08/10/2015 - 14:30h
Quando tento reiniciar a Daemon ocorre um erro. Alguém poderia me ajudar?
root@tales:/# /etc/init.d/fail2ban restart
[FAIL] Restarting authentication failure monitor: fail2ban failed!
root@tales:/#
[60] Comentário enviado por neytoscano em 31/05/2016 - 12:28h
Boa tarde....Sou iniciante na mundo do linux...me foi solicitado o bloqueio do Ultrasurf e Tor...só consegui bloquear pelo AD da microsoft, mas se o arquivo for renomeado ou midar de versão já era....
Fiz do jeito que está descrito nesse tutorial, mas tenho algumas dificuldades em algumas partes podemos debater para você me ajudar?
1º - Onde tem (-m state –state ESTABLISHED, RELATED) eu coloquei "iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT" e me seguida "iptables -I FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= ", está correto?
2º Criei o três arquivos jail.local | iptables-ultrasurf.local | ultrasurf.local
Em ultrasurf.local
vi /etc/fail2ban/filter.d/ultrasurf.local
[Definition]
failregex = (.*)=UltraSurf=(.*) SRC= coloco o que aqui? IP de quem?
ignoreregex = e aqui?