Como bloquear o Ultrasurf - solução definitiva (iptables + Fail2ban)

Neste artigo eu descrevo como fazer o bloqueio do Ultrasurf utilizando iptables e Fail2ban.

[ Hits: 55.397 ]

Por: Rodrigo Luis Silva em 20/01/2012 | Blog: http://www.dotsharp.com.br/


Enviando e-mail de aviso



É possível enviar um e-mail de alerta a cada bloqueio e desbloqueio que o Fail2ban faz.

Para ativar esta função, você tem primeiramente que testar o envio de e-mail na máquina. Para fazer isto, vamos usar o programa "mail":

# mail seu-email@seu-dominio.com.br

Subject: Teste
Teste de envio de mensagem
.
Cc:


Obs.: Atenção ao "." (ponto) no final da mensagem, ele finaliza o e-mail.

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 e-mail, em situações normais, não deve existir nenhum e-mail na fila.

Diversos detalhes podem impedir o envio de e-mail, 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 e-mail pelo programa "Mail" estiver funcionando, você já pode ativar o envio de e-mail 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 isto, você irá receber um email quando uma máquina for bloqueada ou desbloqueada, veja exemplos abaixo.

- 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.
Página anterior     Próxima página

Páginas do artigo
   1. O problema
   2. Fail2ban
   3. Enviando e-mail de aviso
   4. Finalizando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando e bloqueando P2P com IPTABLES e IPP2P

Dois links de ADSL em um mesmo servidor

Servidor seguro com Bridge, Snort e Guardian

Utilizando a ferramenta Iptstate

Bloqueando o UltraSurf e o WebMessenger do Hotmail com Proxy Transparente

  
Comentários
[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?

[5] Comentário enviado por rodrigoluis em 20/01/2012 - 15:49h

Flavio, pode ser algum problema no arquivo /etc/fail2ban/action.d/iptables-ultrasurf.local

Recomendo que faça o download da configuração no link http://www.dotsharp.com.br/download/conf-fail2ban-ultrasurf.tar.gz

E compare com a sua para saber se existe algo errado.

Rodrigo

[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 removido 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 removido 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.

[12] Comentário enviado por itn em 23/01/2012 - 22:19h

Parabéns, bem melhor do que a solução que tinha proposto em um tutorial:
http://www.vivaolinux.com.br/artigo/Bloqueando-o-UltraSurf-e-o-WebMessenger-do-Hotmail-com-Proxy-Tra...

Muito simples e eficaz, testado e aprovado.

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

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

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

abs,

Rodrigo

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

#!/bin/sh
# Configuracacao Firewall

iniciar() {
interfaceWAN=eth0
interfaceLAN=eth1
ipRede=192.168.10.0/24
dns1=192.168.10.1
dns2=201.10.128.3
dns3=201.10.120.3
ListMACs=/usr/local/MACList

echo "|> Ativando novas regras de firewall..."

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 "|-->> Limitando conexões simultâneas..."
#iptables -v -t mangle -A CONNLIMIT -p tcp -m connlimit –connlimit-above 17 –connlimit-mask 32 -j DROP

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 "|-->> Liberando acesso SSH..."
iptables -A INPUT -p tcp --dport 2223 -j ACCEPT

echo "|-->> Controlando acesso à rede para os endereços:"
for i in `cat $ListMACs | egrep -v "^[#;]"`; do
status=`echo $i | cut -d ';' -f 1`
mac=`echo $i | cut -d ';' -f 3`
maquina=`echo $i | cut -d ';' -f 5`
if [ $status = 0 ]; then
echo -e "|--|--> LIBERANDO $mac - $maquina"
iptables -A INPUT -m mac --mac-source $mac -j ACCEPT
fi
if [ $status = 1 ]; then
echo -e "|--|--> BLOQUEANDO $mac - $maquina"
iptables -A INPUT -m mac --mac-source $mac -j DROP
fi
done

echo "|-->> Bloqueando acesso ao Windows Live Messenger..."
iptables -A FORWARD -p tcp --dport 1080 -j REJECT
iptables -A FORWARD -p tcp --dport 1863 -j REJECT
iptables -I FORWARD -s 192.168.1.1/255.255.255.0 -p tcp --dport 1863 -j REJECT
iptables -I FORWARD -s 192.168.1.1/255.255.255.0 -d loginnet.password.com -j REJECT
iptables -I FORWARD -s 192.168.1.1/255.255.255.0 -d hotmail.com -j REJECT
iptables -I FORWARD -s 192.168.1.1/255.255.255.0 -d hotmail.com.br -j REJECT
iptables -A FORWARD -i eth1 -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -i eth1 -d loginnet.passport.com -j REJECT
iptables -A FORWARD -i eth1 -d 64.4.13.0/24 -j REJECT
iptables -A FORWARD -i eth1 -d login.live.com -j REJECT
iptables -A FORWARD -i eth1 -d login.passport.com -j REJECT
iptables -A FORWARD -i eth1 -d gateway.messenger.hotmail.com -j REJECT

echo "|-->> Liberando acesso ao cliente de e-mail Outlook..."
iptables -A FORWARD -p udp -s $ipRede -d $dns1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $ipRede -d $dns2 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $ipRede -d $dns3 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $dns1 --sport 53 -d $ipRede -j ACCEPT
iptables -A FORWARD -p udp -s $dns2 --sport 53 -d $ipRede -j ACCEPT
iptables -A FORWARD -p udp -s $dns3 --sport 53 -d $ipRede -j ACCEPT

echo "|-->> Liberando acesso às portas 25 (POP3), 110 (SMTP) e 143 (IMAP)..."
iptables -A FORWARD -p TCP -s $ipRede --dport 25 -j ACCEPT
iptables -A FORWARD -p TCP -s $ipRede --dport 110 -j ACCEPT
iptables -A FORWARD -p TCP -s $ipRede --dport 143 -j ACCEPT
iptables -A FORWARD -p TCP -s $ipRede --dport 995 -j ACCEPT
iptables -A FORWARD -p TCP --sport 25 -j ACCEPT
iptables -A FORWARD -p TCP --sport 110 -j ACCEPT
iptables -A FORWARD -p TCP --sport 143 -j ACCEPT
iptables -A FORWARD -p TCP --sport 995 -j ACCEPT

echo "|-->> Liberando acesso ao servidor Samba apenas na rede local..."
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p udp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 445 -j ACCEPT

echo "|-->> Liberando acesso FTP..."
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack

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

echo "x> Regras de firewall ativadas!"
}

parar() {
echo "|> Desativando as regras de firewall..."
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F
iptables -X
echo 0 > /proc/sys/net/ipv4/ip_forward
}

case "$1" in
"start") iniciar;;
"stop") parar;;
"restart") parar; iniciar;;
*) echo "Parâmetro incorreto! Use start, stop ou restart"
esac
___________________________________________________________________________________________________________________________

Grato.

[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á.

abs,

Rodrigo

[24] Comentário enviado por regismeneses em 15/06/2012 - 14:28h

Opa, olha o resultado ai...
testei aki e deu certinho tá barrando mas não
mostra os logs no #tail -f /etc/var/fail2ban.

root@servidor:~# iptables -L FORWARD -nv
Chain FORWARD (policy ACCEPT 402 packets, 87275 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.183 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.167 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.151 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.135 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.151 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.135 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.183 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 65.55.72.167 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 192.168.1.0/24 50.57.34.52 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 192.168.1.0/24 0.0.0.0/0 tcp dpt:1863 reject-with icmp-port-unreachable
719 157K fail2ban-ultrasurf all -- * * 0.0.0.0/0 0.0 .0.0/0
0 0 LOG all -- * * 0.0.0.0/0 65.49.14.0/2 4 LOG flags 0 level 4 prefix `=UltraSurf= '
90 19610 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 limit: avg 1/sec burst 5
1 40 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 REJECT all -- * * 0.0.0.0/0 216.35.208.0 /24 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6346 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6346 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 209.61.186.0 /24 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 64.49.201.0/ 24 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 209.25.178.0 /24 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 206.142.53.0 /24 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1214 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 213.248.112. 0/24 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1214 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6346 reject-with icmp-port-unreachable
0 0 REJECT all -- * * 0.0.0.0/0 64.245.58.0/ 23 reject-with icmp-port-unreachable
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 70:71:BC:64:F0:C4 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 70:71:BC:64:F0:C4 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 70:71:BC:52:1C:BF tcp dpt:80
5 1970 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 70:71:BC:52:1C:BF tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:1E:33:4F:16:BD tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:1E:33:4F:16:BD tcp dpt:443
15 11059 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:27:0E:09:F9:9D tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:27:0E:09:F9:9D tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC F4:8E:09:0B:CB:F3 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC F4:8E:09:0B:CB:F3 tcp dpt:443
70 19725 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:11:2F:C6:9F:F4 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:11:2F:C6:9F:F4 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC D8:75:33:C8:A2:86 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC D8:75:33:C8:A2:86 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:26:73:29:46:41 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 00:26:73:29:46:41 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC C8:9C:DC:48:20:F4 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC C8:9C:DC:48:20:F4 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 54:42:49:86:49:F4 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 54:42:49:86:49:F4 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 60:EB:69:2D:EE:13 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 MAC 60:EB:69:2D:EE:13 tcp dpt:443
113 15302 DROP tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:80
17 1168 DROP tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:443
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1080 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1863 reject-with icmp-port-unreachable
0 0 REJECT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1863 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 64.4.12.76 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 64.4.12.97 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 64.4.13.0/24 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.165.16 9 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.165.17 7 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.165.17 9 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.186.10 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.186.17 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.186.19 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.186.10 7 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.165.13 6 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 64.4.12.96 reject-with icmp-port-unreachable
0 0 REJECT all -- eth1 * 0.0.0.0/0 65.54.52.62 reject-with icmp-port-unreachable
0 0 ACCEPT udp -- * * 192.168.10.0/24 192.168.10.1 udp dpt:53
0 0 ACCEPT udp -- * * 192.168.10.0/24 201.10.128.3 udp dpt:53
0 0 ACCEPT udp -- * * 192.168.10.0/24 201.10.120.3 udp dpt:53
0 0 ACCEPT udp -- * * 192.168.10.1 192.168.10.0 /24 udp spt:53
0 0 ACCEPT udp -- * * 201.10.128.3 192.168.10.0 /24 udp spt:53
0 0 ACCEPT udp -- * * 201.10.120.3 192.168.10.0 /24 udp spt:53
0 0 ACCEPT tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:25
0 0 ACCEPT tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:110
0 0 ACCEPT tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:143
0 0 ACCEPT tcp -- * * 192.168.10.0/24 0.0.0.0/0 tcp dpt:995
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:25
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:110
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:143
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:995

[25] Comentário enviado por rodrigoluis em 15/06/2012 - 16:41h

Se está bloqueando ótimo, então está funcionando.

O log ficar em /var/log/fail2ban.log você colocou que tentou ver o log em /etc/var/fail2ban

Vai aparecer algo desse tipo

2012-06-12 22:10:22,023 fail2ban.actions: WARNING [ultrasurf] Ban 172.21.201.188
2012-06-12 22:40:22,319 fail2ban.actions: WARNING [ultrasurf] Unban 172.21.201.188
2012-06-15 08:25:08,624 fail2ban.actions: WARNING [ultrasurf] Ban 172.23.134.80
2012-06-15 08:55:08,836 fail2ban.actions: WARNING [ultrasurf] Unban 172.23.134.80

abs

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

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

Você colocou as linhas abaixo no seu script?

No começo da função PARAR

/etc/init.d/fail2ban stop

No começo da função INICIAR

/etc/init.d/fail2ban start


abs


[28] Comentário enviado por gleysonhp em 22/06/2012 - 12:02h

Belo artigo, parabéns Rodrigo!

Olhando no meu LOG do Fail2ban, ao achar o UltraSurf, dá a seguinte mensagem:

2012-06-25 08:14:49,098 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.0.118
2012-06-25 08:14:49,128 fail2ban.actions.action: ERROR iptables -n -L FORWARD | grep -q fail2ban-ultrasurf
iptables -n -L INPUT | grep -q fail2ban- returned 100
2012-06-25 08:14:49,128 fail2ban.actions.action: ERROR Invariant check failed. Trying to restore a sane environment
2012-06-25 08:14:49,184 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-06-25 08:29:49,249 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.0.118

Testando, ele está fazendo o bloqueio, mas porque será q aparece estas mensagens de erro?

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

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

[31] Comentário enviado por rodrigoluis em 30/06/2012 - 10:57h


[28] Comentário enviado por gleysonhp em 22/06/2012 - 12:02h:

Belo artigo, parabéns Rodrigo!

Olhando no meu LOG do Fail2ban, ao achar o UltraSurf, dá a seguinte mensagem:

2012-06-25 08:14:49,098 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.0.118
2012-06-25 08:14:49,128 fail2ban.actions.action: ERROR iptables -n -L FORWARD | grep -q fail2ban-ultrasurf
iptables -n -L INPUT | grep -q fail2ban- returned 100
2012-06-25 08:14:49,128 fail2ban.actions.action: ERROR Invariant check failed. Trying to restore a sane environment
2012-06-25 08:14:49,184 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-06-25 08:29:49,249 fail2ban.actions: WARNING [ultrasurf] Unban 192.168.0.118

Testando, ele está fazendo o bloqueio, mas porque será q aparece estas mensagens de erro?


Gleyson, bom dia.

Ele normalmente dá esse erro quando você roda o seu script de firewall e ele apaga as chains e regras.

Para resolver o problema adicione as seguintes linhas no seu script

Você colocou as linhas abaixo no seu script?

No começo do script

/etc/init.d/fail2ban stop

No final do script

/etc/init.d/fail2ban start

Espero que resolva.

abs,

Rodrigo

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

abs,

Rodrigo

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

Forte abraços a todos.

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

Parabéns novamente pelo artigo, nota 10!

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

abs

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

Parabéns novamente pelo artigo, nota 10!


É isso ai, precisando é só falar.

abs

[38] Comentário enviado por rootroot em 04/07/2012 - 01:43h

Eu uso slackware

corrigi e deu certo, agora só não gera log nem bloqueio.

Vou continuar tentando aqui...

[39] Comentário enviado por rodrigoluis em 04/07/2012 - 08:46h


[38] Comentário enviado por rootroot em 04/07/2012 - 01:43h:

Eu uso slackware

corrigi e deu certo, agora só não gera log nem bloqueio.

Vou continuar tentando aqui...


Bacana, então essa alteração também é necessária no Slackware, vou anotar aqui.

Se não tá gerando LOG pode ser a regra do iptables, confere as regras do FORWARD.

Confere se o Slackware grava o log do iptables no /var/log/messages, pode ser ele grave em outro arquivo.

abs

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

[41] Comentário enviado por muzykaum em 15/08/2012 - 11:11h

Olá, estou tendo o seguinte erro aqui:
proxy:/etc/init.d# /etc/init.d/fail2ban restart
Restarting authentication failure monitor: fail2ban failed!

Parei e iniciei manualmente o fail2ban assim:
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start

mas seu eu der um tail -f /var/log/fail2ban.log ele nao está gravando e, o ultrasurf está abrindo normalmente aqui.
alguma sugestão ?

abraço:
Rodrigo Muzyka



[42] Comentário enviado por rodrigoluis em 25/08/2012 - 21:45h


[41] Comentário enviado por muzykaum em 15/08/2012 - 11:11h:

Olá, estou tendo o seguinte erro aqui:
proxy:/etc/init.d# /etc/init.d/fail2ban restart
Restarting authentication failure monitor: fail2ban failed!

Parei e iniciei manualmente o fail2ban assim:
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start

mas seu eu der um tail -f /var/log/fail2ban.log ele nao está gravando e, o ultrasurf está abrindo normalmente aqui.
alguma sugestão ?

abraço:
Rodrigo Muzyka




Rodrigo, tudo bem?

Qual a sua Distro?

No /var/log/messages apresenta algum erro?

Verifica pelo comando ps se o processo do fail2ban está rodando.

abs,

Rodrigo

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

[44] Comentário enviado por flaviomstes em 03/10/2012 - 08:58h

Olá muito bom elaborado o artigo, mas estou com problema restarta o fail2ban, poderia me ajuda...

/etc/init.d/fail2ban restart Restarting authentication failure monitor: fail2ban failed!
root@firewall:/home/flavio#

[45] Comentário enviado por flaviomstes em 03/10/2012 - 09:46h


[44] Comentário enviado por flaviomstes em 03/10/2012 - 08:58h:

Olá muito bom elaborado o artigo, mas estou com problema restarta o fail2ban, poderia me ajuda...

/etc/init.d/fail2ban restart Restarting authentication failure monitor: fail2ban failed!
root@firewall:/home/flavio#


Isso ja foi resolvindo, so foi uma questão chain do firewall

[46] Comentário enviado por flaviomstes em 03/10/2012 - 10:02h

Galera algué pode me ajudar, esta rodando quase perfeito o fail2ban, mas não esta bloqueando a maquina que esta usando o ultrasurf

o meu firewall esta assim:

/etc/init.d/fail2ban stop
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
iptables -t nat -I POSTROUTING -o eth1 -j SNAT --to-source 201.0.0.0
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
/etc/init.d/fail2ban start

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

root@firewall:/home/flavio# /etc/init.d/fail2ban restart
Restarting authentication failure monitor: fail2ban.
root@firewall:/home/flavio# tail -f /var/log/fail2ban.log
2012-10-03 09:53:19,433 fail2ban.filter : INFO Set findtime = 600
2012-10-03 09:53:19,433 fail2ban.actions: INFO Set banTime = 600
2012-10-03 09:53:19,515 fail2ban.jail : INFO Jail 'ultrasurf' started
2012-10-03 09:53:19,516 fail2ban.jail : INFO Jail 'ssh' started
2012-10-03 09:53:19,524 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
iptables -I PREROUTING -t nat -j fail2ban-ultrasurf
iptables -D PREROUTING -t nat -j fail2ban-ultrasurf returned 200
2012-10-03 09:53:40,547 fail2ban.actions: WARNING [ultrasurf] Ban 192.168.200.200
2012-10-03 09:54:04,574 fail2ban.actions: WARNING [ultrasurf] 192.168.200.200 already banned
2012-10-03 09:54:23,595 fail2ban.actions: WARNING [ultrasurf] 192.168.200.200 already banned
2012-10-03 09:54:39,613 fail2ban.actions: WARNING [ultrasurf] 192.168.200.200 already banned



tail -f /var/log/messages

ROTO=UDP SPT=53041 DPT=554 LEN=103
Oct 3 09:51:57 firewall kernel: [ 871.888388] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.59 LEN=487 TOS=0x00 PREC=0x00 TTL=127 ID=1284 DF PROTO=TCP SPT=51188 DPT=443 WINDOW=16258 RES=0x00 ACK PSH URGP=0
Oct 3 09:51:58 firewall kernel: [ 872.311731] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.59 LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=1287 DF PROTO=TCP SPT=51188 DPT=443 WINDOW=16500 RES=0x00 ACK URGP=0
Oct 3 09:52:01 firewall kernel: [ 875.552447] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.59 LEN=341 TOS=0x00 PREC=0x00 TTL=127 ID=1289 DF PROTO=TCP SPT=51188 DPT=443 WINDOW=16500 RES=0x00 ACK PSH URGP=0
Oct 3 09:52:01 firewall kernel: [ 875.997180] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.59 LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=1291 DF PROTO=TCP SPT=51188 DPT=443 WINDOW=16223 RES=0x00 ACK URGP=0
Oct 3 09:52:03 firewall kernel: [ 877.371047] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.77 LEN=122 TOS=0x00 PREC=0x00 TTL=127 ID=1293 PROTO=UDP SPT=53041 DPT=554 LEN=102
Oct 3 09:52:09 firewall kernel: [ 883.365597] =UltraSurf= IN=eth2 OUT=eth1 SRC=192.168.200.200 DST=65.49.14.77 LEN=111 TOS=0x00 PREC=0x00 TTL=127 ID=1296 PROTO=UDP SPT=53041 DPT=554 LEN=91

[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

[48] Comentário enviado por dannyalisson em 22/11/2012 - 19:35h

Parabens, configurei aqui na empresa e funcionou 100%%% muito bom mesmo obrigado.

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

Luiz Carlos Corrêa
Analista de TI

[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

Arquivo ultrasurf.local:

[Definition]
failregex = (.*)=UltraSurf=(.*) SRC=<HOST>
ignoreregex =

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

Obs: Até cheguei a mudar em /etc/fail2ban/jail.conf o backed = polling, porém mesmo assim não funcionou.

Abraço.




[51] Comentário enviado por wetto em 24/11/2013 - 20:35h

Rodrigo, agradeço muito pelo tutorial pois ele possibilitou que eu banisse outros problemas que haviam para a minha rede!
http://vivaolinux.com.br/topico/Redes/-Minha-Solucao-para-Bloqueio-de-Peer-to-Peer-e-Proxies-com-o-f...

[52] Comentário enviado por PatrickPfP em 27/01/2014 - 16:39h

Que solução. Radical, mas muito boa.

Só uma dúvida.

Aqui quando ele bloqueia, acaba sendo tudo, até mesmo a rede local como acesso ao servidor de arquivos.

Isso é padrão ou foi alguma configuração que eu fiz?

[53] Comentário enviado por rodrigoluis em 27/01/2014 - 22:44h

Patrick,

Essa configuração realmente bloqueia todo o acesso a Internet.

Se está bloqueando o acesso aos seus servidores você deve especificar as interfaces de entrada e saida na configuração do Fail2Ban.

Porém veja que o bloqueio total, inclusive servidores traz vantagens.

O usuário vai reclamar, você vai descobrir quem é, vai enviar um email falando sobre a politica e nunca mais ele vai usar o ultrasurf.

Não vejo problema no bloqueio total, vai ter muito problema no começo, depois vai zerar.

abs,

Rodrigo

[54] Comentário enviado por PatrickPfP em 28/01/2014 - 07:45h

Olá Rodrigo.

Acho perfeito a ideia de bloquear tudo, até mesmo para o usuário aprender e ir trabalhar.

Minha dúvida era só se estava correto ou era algum erro na configuração.

Estou testando para implementar junto com bloqueio para os programas P2P também.

Show de bola.

Vlw

abs.

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

Alguém pode me ajudar.?

[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

Alguma solução?

[57] Comentário enviado por Ice_Luck em 04/08/2015 - 18:08h

Gostaria de ao invés de bloquear, deixar lenta a conexão do sujeito que usa o ultrasurf, alguém tem alguma idéia de como fazê-lo?

[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:/#


[59] Comentário enviado por mbrunoac em 09/11/2015 - 21:15h

Para bloquear por MAC ao invés de por IP, altere o arquivo /etc/fail2ban/action.d/iptables-ultrasurf.local da seguinte forma:

actionban = iptables -I fail2ban-<name> 1 -m mac --mac-source $(arp -a <ip> | awk '{print $4}') -j REJECT

actionunban = iptables -D fail2ban-<name> -m mac --mac-source $(arp -a <ip> | awk '{print $4}') -j REJECT

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

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

actionban = iptables -I fail2ban-<name> 1 -s <ip> -j REJECT

actionunban = iptables -D fail2ban-<name> -s <ip> -j REJECT

[Init]
name = ultrasurf

Onde tem <name> que nome coloco aqui? e onde tem <ip> é o ip de quem do servidor firewall ou do host que está executano o Ultrasurf?

Desde já agradeço....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts