Como Fazer para Bloquear o UltraSurf, Solução Definitiva [iptables + fail2ban] _ DotSharp
Transcript of Como Fazer para Bloquear o UltraSurf, Solução Definitiva [iptables + fail2ban] _ DotSharp
A Empresa Serviços Artigos Contato
14/01/2012
Rodrigo Luis Silva
37 Comments
Linux, Segurança
como fazer, debian,
fail2ban, Firewall,
iptables, Linux,
Segurança, Shell
Como Fazer para Bloquear o UltraSurf,
Solução Definitiva [iptables + fail2ban]Post to Delicious
Post to Digg
Post to Facebook
Add to LinkedIn
Share on Orkut
Post
to
Post to Blogger
Add to Evernote
Post to Google+
Essa semana fazendo a revisão do firewall de um cliente eu consegui bloquear oacesso as redes BitTorrent e ao terrível UltraSurf.
Vou descrever como fiz para bloquear o UltraSurf.
O problemaEm um primeiro momento eu acreditei que seria fácil bloquear o UltraSurf, porém ouso de proxy transparente obriga que a porta 443 (HTTPS) fique liberada, oBitTorrent foi bloqueado sem dificuldades.
Com o uso do tcpdump eu identifique que todo o acesso do UltraSurf sai pela porta443, logo a solução mais obvia seria bloquea-la, porém não é possível. Bloquear oIP 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 umacentena de IPs diferentes até conseguir o acesso que ele precisa, e certamentedevem existir novos IPs a cada nova versão.
Pesquisei pelo Google e não encontrei nenhuma forma eficiente de bloquear oUltraSurf, foi então que tive pensei o seguinte.
Criar uma regra no iptables e fazer log dos acesso ao IP do UltraSurf, depois criarum 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çandoVamos lá, esse pequeno tutorial é para tratar um problema especifico, sendo assimeu suponho que você já sabe usar o iptables, afinal já está aqui buscando umaforma de fazer um bloqueio mais avançado, rs
Acredito que essa solução possa ser utilizada por todos, para firewall simples até omais 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.
iptablesEssa parte é bem simples, no seu script de firewall adicione a seguinte linha.
A rede 65.49.14.0/24 (http://whois.arin.net/rest/net/NET-65-49-14-0-1/pft) é aprimeira a ser contactada pelo UltraSurf quando ele é aberto, a regra acima apenasgera um LOG, não existe bloqueio do acesso, em um primeiro momento o usuáriovai até pensar que está funcionando.
ATENÇÃO
Coloque essa regra antes da regra com o modulo state (-m state –stateESTABLISHED,RELATED).
Se colocar depois os pacotes das conexões já estabelecidas não irão para o LOGe pode gerar falhas no bloqueio.
fail2banO fail2ban (http://www.fail2ban.org/) é uma ferramenta muito boa para a segurançade servidores, em linhas gerais ela faz o seguinte.
Lê algum arquivo de log, compara com uma expressão regular e em caso positivoele executa algum comando no sistema.
Por padrão ele monitora o log do SSH e em caso de falhas consecutivas no acessoele cria uma regra no iptables para bloquear o possível invasor.
InstalandoComo eu estou utilizando o Debian e vou instalar pelo apt-get.
Depois de instalado vamos acessar o diretório de configuração
Aqui vamos criar um arquivo chamado jail.local
Vamos adicionar o conteúdo abaixo ao arquivo jail.local.
1 iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
123456789101112131415161718
# apt-get install fail2banReading package lists... DoneBuilding dependency treeReading state information... DoneSuggested packages: python-gaminThe following NEW packages will be installed: fail2ban0 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) ...
1 # cd /etc/fail2ban/
1 vi /etc/fail2ban/jail.local
12
[ultrasurf]enabled = true
?
?
?
?
?
Vamos criar o arquivo com a expressão regular que irá filtar o log do iptables.
Aqui vamos adicionar uma expressão regular simples ao arquivo ultrasurf.local.
Apesar de simples, funciona
Agora o arquivo que irá executar o iptables e criar as regras necessárias para obloqueio e desbloqueio.
Aqui é onde a magica acontece, adicione o conteúdo abaixo ao arquivo iptables-ultrasurf.local.
Agora basta reiniciar o Daemon
Pronto, agora é só olhar o log do fail2ban e esperar pelo primeiro bloqueio.
3456789
filter = ultrasurfport = allbanaction = iptables-ultrasurflogpath = /var/log/messagesmaxretry = 6# Tempo em segundos que o IP fica bloqueado, aqui 15 minutosbantime = 900
1 vi /etc/fail2ban/filter.d/ultrasurf.local
123
[Definition]failregex = (.*)=UltraSurf=(.*) SRC=<HOST>ignoreregex =
1 vi /etc/fail2ban/action.d/iptables-ultrasurf.local
123456789101112131415161718192021
[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
1 /etc/init.d/fail2ban restart
123456789101112
# tail -f fail2ban.log2012-01-13 19:11:36,890 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.32012-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 poller2012-01-13 19:11:36,901 fail2ban.filter : INFO Added logfile = /var/log/messages2012-01-13 19:11:36,902 fail2ban.filter : INFO Set maxRetry = 62012-01-13 19:11:36,903 fail2ban.filter : INFO Set findtime = 6002012-01-13 19:11:36,903 fail2ban.actions: INFO Set banTime = 9002012-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 poller2012-01-13 19:11:36,913 fail2ban.filter : INFO Added logfile = /var/log/auth.log2012-01-13 19:11:36,914 fail2ban.filter : INFO Set maxRetry = 6
?
?
?
?
?
?
Enviando email de avisoÉ possível enviar um email de alerta a cada bloqueio e desbloqueio que o fail2banfaz.
Para ativar essa função você tem primeiramente que testar o envio de email namaquina, para fazer isso vamos usar o programa mail.
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, emsituaçõ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.
Estou usando ele como smarthost e encaminhando as mensagens para o meuservidor de smtp.
Depois de ajustar o arquivo você deve executar o comando update-exim4.conf paraatualizar 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á podeativar o envio de email pelo fail2ban, vamos lá.
Edite o arquivo /etc/fail2ban/jail.local
1314151617181920212223
2012-01-13 19:11:36,915 fail2ban.filter : INFO Set findtime = 6002012-01-13 19:11:36,915 fail2ban.actions: INFO Set banTime = 6002012-01-13 19:11:36,985 fail2ban.jail : INFO Jail 'ultrasurf' started2012-01-13 19:11:36,997 fail2ban.jail : INFO Jail 'ssh' started2012-01-13 19:11:52,029 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.422012-01-13 19:13:36,057 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.1402012-01-13 19:26:52,081 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.422012-01-13 19:28:36,109 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.1402012-01-13 19:33:50,137 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.422012-01-13 19:48:50,165 fail2ban.actions: WARNING [ultrasurf] Unban 10.23.134.422012-01-13 19:53:44,193 fail2ban.actions: WARNING [ultrasurf] Ban 10.23.134.140
12345
# mail [email protected]: TesteTeste de envio de mensagem.Cc:
12345678910111213
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'
1 #vi /etc/fail2ban/jail.local
1234
[ultrasurf]enabled = truefilter = ultrasurfport = all
?
?
?
?
Adicione a action sendmail-ultrasurf conforme exemplo acima.
Agora vamos criar um novo arquivo chamado /etc/fail2ban/action.d/sendmail-ultrasurf.local
Feito isso você irá receber um email quando uma maquina for bloqueada oudesbloqueada, veja exemplo
Bloqueio
Desbloqueio
Você também pode alterar a mensagem a seu critério.
CentOSO nosso amigo Jovander deu uma grande dica para funcionar em CentOS.
Trocando a linha
56789
banaction = iptables-ultrasurf sendmail-ultrasurflogpath = /var/log/messagesmaxretry = 6bantime = 900
1 vi /etc/fail2ban/action.d/sendmail-ultrasurf.local
12345678910111213141516171819202122232425
[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 = defaultdest = rootsender = fail2ban
123456
O dispositivo com IP 10.23.134.41 foi bloqueado depois de tentar burlar14 vezes o nosso sistema de seguranca. Acesso sera liberado automaticamente, Suporte
12345
O dispositivo com IP 10.23.134.41 foi liberado para acesso normal Novas tentativas serao bloqueadas automaticamente, Suporte
?
?
?
?
banaction = iptables-ultrasurf
por
action = iptables-ultrasurf
Ai sim o serviço funcionou e leu os logs.
UbuntuNosso amigo Angelo Figueiredo deu uma dica pra quem utiliza o Ubuntu 12.04LTS.
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.
AgradecimentoUm forte abraço ao meu amigo Yros Aguiar, quando falei que eu ia criar umDaemon 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ãoFica 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 meavisem 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 temduas opções, ou entrar em contato com o suporte da empresa para reclamar ouparar de usar o UltraSurf.
Se ele reclamar você orienta a não usar mais o software, porém normalmente elepara de usar de forma natural o UltraSurf.
DownloadConfiguração SEM suporte a envio de email conf-fail2ban-ultrasurf.tar.gz(http://www.dotsharp.com.br/download/conf-fail2ban-ultrasurf.tar.gz)Configuração COM suporte a envio de email conf-fail2ban-ultrasurf-email.tar.gz(http://www.dotsharp.com.br/download/conf-fail2ban-ultrasurf-email.tar.gz)
Referênciasfail2ban (http://www.fail2ban.org)iptables (http://www.netfilter.org/projects/iptables/index.html)Bloquear Ultrasurf usando uma GPO (http://tekniblog.wordpress.com/active-directory/gpos/bloquear-ultrasurf-usando-uma-gpo/)
Like 17 people like this. Sign Up to
see w hat your friends like.Send
37 Respostas
Yros
14/01/2012 at 7:31 pm
Muito bom o artigo, não tinha encontrado antes uma ferramenta eficiente para bloqueio do ultrasurf,ficou mais fácil, muito útil.
(Citar) (javascript:void(null))
leonardo
16/01/2012 at 2:51 pm
Outra forma é identificar o tráfego com o Snort e integrar com iptables ou outro..
(Citar) (javascript:void(null))
David Thimotti
23/01/2012 at 5:28 pm
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:
Rodrigo Luis Silva
Gestor de equipes especialista em sistemas GNU/Linuxcom vasta experiência em gerenciamento de storage,virtualização, network, desenvolvimento e outros.
More Posts (http://www.dotsharp.com.br/author/rodrigo-silva) - Website (http://www.dotsharp.com.br)
Follow Me:
(http://www.twitter.com/rsilva14)
You may also like:
ComoInstalar oComandokillall noDebian
COMOINSTALAROCOMANDOKILLALL Como
Montar umServidor NTP
COMOMONTARUMSERVIDORNTP Backup
BACKUP
Repositóriopara Debian5 Lenny
REPOSITÓRIOPARADEBIAN 5LENNY
TalkWork(Chat Server)
TALKWORK(CHATSERVER)
Introdução aLinguagemJava
INTRODUÇÃOALINGUAGEMJAVA
[ultrasurf]enabled = truefilter = ultrasurfbanaction = iptables-ultrasurf[port="all", protocol=tcp]sendmail-ultrasurf[name=ultrasurf, [email protected]]logpath = /var/log/messagesmaxretry = 6bantime = 900
Porém não obtive sucesso.
Poderia me dá uma dica de como proceder ??? Toda ajuda é valida.
No mais, muito obrigado.
David Thimotti
(Citar) (javascript:void(null))
Eduardo
25/01/2012 at 11:52 am
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 ouque está faltando alguma coisa.Poderia me ajudar ?Aqui tenho todo o script do Firewall em um arquivo chamado iptables, salvo no /root eum 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 -qfail2ban-ultrasurfiptables -n -L INPUT | grep -q fail2ban-ultrasurf returned 1002012-01-25 10:43:13,130 fail2ban.actions.action: ERROR Invariant check failed. Trying to restore asane environment2012-01-25 10:43:13,135 fail2ban.actions.action: ERROR iptables -D FORWARD -j fail2ban-ultrasurfiptables -D INPUT -j fail2ban-ultrasurfiptables -F fail2ban-ultrasurfiptables -X fail2ban-ultrasurf returned 1002012-01-25 10:43:13,147 fail2ban.actions.action: ERROR iptables -D fail2ban-ultrasurf -s 10.0.1.28-j REJECT returned 100
Obrigado.
(Citar) (javascript:void(null))
Sabino
04/02/2012 at 11:29 am
Muito bom o artigo, pra mim funcionou 100%, implementei em varios lugares que administro, com100% de eficacia.Parabens ao author.
Sabino.
(Citar) (javascript:void(null))
Rodrigo Luis Silva
04/02/2012 at 9:15 pm
Eduardo (#comment-330) :
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.
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 firewallele 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
(Citar) (javascript:void(null))
Jovander
09/03/2012 at 5:01 pm
David Thimotti (#comment-329) :
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
Estou com o mesmo erro!!! Conseguiu subir o serviço
(Citar) (javascript:void(null))
Walter
11/04/2012 at 9:56 am
Muito obrigado, meu amigo, por essa sua importante contribuição! Estava há muito tempoprocurando uma solução e a sua é, até o momento, a mais eficiente. Um abraço!
(Citar) (javascript:void(null))
Jovander
15/05/2012 at 3:24 pm
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
(Citar) (javascript:void(null))
Max Weber
25/05/2012 at 10:24 am
Galera, testei essa dica aí e funcionou. Mas tive que fazer umas alterações, do mesmo modo que ocolega Jovander, outra dúvida. Quando executo o comando tail -f fail2ban.log diz que o arquivo nãoexiste, 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 eupossa visualizar os logs tenho que executar o já conhecido tail -f /var/log/messages mas ele memostra todos os logs é claro.Alguma dica?
(Citar) (javascript:void(null))
Ultrasurf…. como bloquear? « KiD LiNuX
22/06/2012 at 1:58 pm
Daniel TI
27/06/2012 at 4:17 pm
Simplesmente sensacional.
Muito obrigado e parabéns pelo excelente trabalho.
Um abraço,
(Citar) (javascript:void(null))
Jefferson
10/07/2012 at 2:53 pm
No fedora 14Ainda não conseguir fazer funcionar mas o log conseguir resolverecho “logtarget = /var/log/fail2ban.log” >> /etc/fail2ban/fail2ban.conf
(Citar) (javascript:void(null))
Bruno Bassani
11/07/2012 at 1:58 pm
Parabéns Pelo Post e pelos Scripts. Agradecido!Abraço
(Citar) (javascript:void(null))
marlon
25/07/2012 at 5:51 pm
nessa linha iptables -A FORWARD -d 65.49.14.0/24 -j LOG –log-prefix “=UltraSurf= ” tem o espaçona expressao entre aspas ou é assim “=UltraSurf=” ?
(Citar) (javascript:void(null))
marlon
25/07/2012 at 6:19 pm
como faço para liberar 1 ip para usar o ultrasurf???
(Citar) (javascript:void(null))
Rodrigo Luis Silva
27/07/2012 at 12:12 am
marlon (#comment-620):
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=”?
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
(Citar) (javascript:void(null))
Rodrigo Luis Silva
27/07/2012 at 12:14 am
marlon (#comment-622):
como faço para liberar 1 ip para usar o ultrasurf???
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
(Citar) (javascript:void(null))
Angelo Figueiredo
03/08/2012 at 11:41 am
Dica pra quem utiliza o Ubuntu 12.04 LTSA configuração pode estar toda certinha e não estar bloqueando a solução é:
verificar o arquivo /etc/fail2ban/jail.confse estiver backend = auto mude para backed = polling que irá começar a bloquear.
abraços
(Citar) (javascript:void(null))
Rodrigo Luis Silva
03/08/2012 at 11:58 am
Angelo Figueiredo (#comment-691):
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, muito obrigado pela dica.
Abraços
(Citar) (javascript:void(null))
Adan
08/08/2012 at 2:10 pm
Max Weber (#comment-501): Quando executo o comando tail -f fail2ban.log diz que o
arquivo não existe
Mesmo problema.
(Citar) (javascript:void(null))
Adan
08/08/2012 at 3:17 pm
Adan (#comment-724): backed = polling
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 telado log, nem quando mandei atualizar.
(Citar) (javascript:void(null))
etecfami
10/08/2012 at 4:55 pm
Olá Rodrigo,
Estou usando sua regra na escola que trabalho, uso Debian 6 e squid configurado no modotransparente.Percebi que bloqueia o ultrasurf na primeira vez que o usuário abre o mesmo, mas se o usuário nãofechar o aplicativo e configurar com minhas configurações de proxy o mesmo consegue usar oultrasurf.Gostaria de saber se é possível utilizar algum comando que não deixe o squid passar a conexão doultrasurf ou se pode ser algo errado no meu firewall.Segue conf atual do firewall
#!/bin/shmodprobe iptable_natiptables -Fiptables -t nat -Fiptables -Xecho “1″ > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A PREROUTING -p tcp -i eth1 –dport 80 -j REDIRECT –to 3128iptables -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
(Citar) (javascript:void(null))
Anonymous
16/08/2012 at 9:23 pm
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 ofacebook de lado…. HAHAHAHAHA (risada maligna)
Brincadeiras a parte, obrigado mais uma vez, e vou te seguir no facebook e acompanhar teu sitesempre ok?
Tenha uma ótima semana.
Abraços.
(Citar) (javascript:void(null))
Rodrigo Luis Silva
24/08/2012 at 12:37 am
etecfami (#comment-741):
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
Boa noite,
Pela sua regra você deve utilizar proxy transparente, para contornar esse problema você podeeditar 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 RETURNiptables -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 GPOpara bloquer a alteração de proxy.
Se der certo me avisa.
abs,
Rodrigo
(Citar) (javascript:void(null))
Rodrigo Luis Silva
24/08/2012 at 12:44 am
Jefferson (#comment-557): Jefferson
Opa Jeferson, me passa por email os arquivos de log as configurações e o resultado do iptables -L -nv
abs
(Citar) (javascript:void(null))
Carlos Henrique da Silva
28/09/2012 at 2:25 pm
Essas regras só pode ser usado no linux, vc tem algum procedimento para Ruwindows??
(Citar) (javascript:void(null))
Elivelto
01/10/2012 at 5:27 pm
Utilize o Ubuntu 12.04 mas o serviço fail2ban não iniciar/etc/init.d/fail2ban restarterro: Restarting authentication failure monitor fail2ban
Alguem pode me ajudar.
(Citar) (javascript:void(null))
Neto
04/10/2012 at 4:08 pm
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 aGPO 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.log2012-10-04 15:47:20,240 fail2ban.jail : INFO Jail ‘ultrasurf’ uses poller2012-10-04 15:47:20,241 fail2ban.filter : INFO Set maxRetry = 62012-10-04 15:47:20,243 fail2ban.filter : INFO Set findtime = 6002012-10-04 15:47:20,245 fail2ban.actions: INFO Set banTime = 9002012-10-04 15:47:20,265 fail2ban.jail : INFO Jail ‘ssh’ started2012-10-04 15:47:20,283 fail2ban.jail : INFO Jail ‘ultrasurf’ started2012-10-04 15:53:13,982 fail2ban.server : INFO Stopping all jails2012-10-04 15:53:14,973 fail2ban.jail : INFO Jail ‘ssh’ stopped2012-10-04 15:53:15,735 fail2ban.jail : INFO Jail ‘ultrasurf’ stopped2012-10-04 15:53:15,744 fail2ban.server : INFO Exiting Fail2ban
Segue meu firewall
EXTERNAL=eth0INTERNAL=eth1
# parando o failban/etc/init.d/fail2ban stop
[...]
# log do ultrasurfiptables -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 -nvroot@srv-internet:~# iptables -L -nvChain INPUT (policy DROP 1842 packets, 593K bytes)pkts bytes target prot opt in out source destination14813 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 destination0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
[...]
(Citar) (javascript:void(null))
Cristiano Galdino
09/10/2012 at 8:19 pm
Boa implementação!
(Citar) (javascript:void(null))
Rodrigo Luis Silva
20/10/2012 at 12:31 am
Carlos Henrique da Silva (#comment-959):
Essas regras só pode ser usado no linux, vc tem algum procedimento para Ruwindows??
Carlos, boa noite.
Para Windows eu não conheço.
abs,
Rodrigo
(Citar) (javascript:void(null))
Rodrigo Luis Silva
20/10/2012 at 1:07 am
Elivelto (#comment-975):
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, boa noite.
Tenta usar a dica do Angelo.
verificar o arquivo /etc/fail2ban/jail.confse estiver backend = auto mude para backed = polling que irá começar a bloquear.
(Citar) (javascript:void(null))
Rodrigo Luis Silva
20/10/2012 at 1:29 am
Neto (#comment-993):
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/00.0.0.0/0
[...]
14 672 DROP tcp—** 0.0.0.0/065.49.14.0/24
[...]
404586 LOGall—** 0.0.0.0/065.49.14.0/24LOG 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/00.0.0.0/0tcp dpt:110
[...]
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/00 0 DROP tcp -- * * 0.0.0.0/0 65.49.2.0/240 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:96660 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:31620 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:31030 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:236200 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:197690 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:331900 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:554330 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:197690 0 ACCEPT all -- * * 0.0.0.0/0 200.201.174.20440 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ãocria 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 ULTRASURFiptables -I FORWARD -p tcp --dport 19769 -j DROPiptables -I FORWARD -p tcp --dport 55433 -j DROPiptables -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
(Citar) (javascript:void(null))
Rafael Caobianco
30/10/2012 at 10:59 am
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 partirdeles?
Muito obrigado e sucesso!!Abs
(Citar) (javascript:void(null))
Dias
04/11/2012 at 2:51 pm
Muito obrigado. Funcionou sem problemas c/ debian 6.0. É uma questão de ética profissional.
(Citar) (javascript:void(null))
Bruno
15/04/2013 at 5:26 pm
Deixe uma resposta
O seu endereço de email não será publicado Campos obrigatórios são marcados *
Nome *
Email *
Site
Comentário
Você pode usar estas tags e atributos de HTML (HyperText Markup Language): <a href="" title=""> <abbrtitle=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""><strike> <strong>
Publicar comentário
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 edar um drop depois. Exemplo:
IPTABLES=”/sbin/iptables” # caminho para o iptablesLOCAL_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
(Citar) (javascript:void(null))
Carlos
08/05/2013 at 1:45 pm
Cara, meus parabéns pelo artigo.
(Citar) (javascript:void(null))
Home Linux Como Fazer para Bloquear o UltraSurf, Solução Definitiva [iptables + fail2ban]