como fazer para bloquear o ultrasurf, solução definitiva [iptables + fail2ban] _ dotsharp

21
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 Essa semana fazendo a revisão do firewall de um cliente eu consegui bloquear o acesso as redes BitTorrent e ao terrível UltraSurf. Vou descrever como fiz para bloquear o UltraSurf. O problema Em um primeiro momento eu acreditei que seria fácil bloquear o UltraSurf, porém o uso de proxy transparente obriga que a porta 443 (HTTPS) fique liberada, o BitTorrent foi bloqueado sem dificuldades. Com o uso do tcpdump eu identifique que todo o acesso do UltraSurf sai pela porta 443, logo a solução mais obvia seria bloquea-la, porém não é possível. Bloquear o IP ou range de IP do servidor de destino seria outra opção. Quando fiz o bloqueio pelo range de IP, descobri que o UltraSurf tenta uma centena de IPs diferentes até conseguir o acesso que ele precisa, e certamente devem existir novos IPs a cada nova versão. Pesquisei pelo Google e não encontrei nenhuma forma eficiente de bloquear o UltraSurf, foi então que tive pensei o seguinte. Criar uma regra no iptables e fazer log dos acesso ao IP do UltraSurf, depois criar um daemon para ler esse log e fazer um bloqueio em tempo real. Bem, chega de bla bla e vamos por a mão na massa. Começando Vamos lá, esse pequeno tutorial é para tratar um problema especifico, sendo assim eu suponho que você já sabe usar o iptables, afinal já está aqui buscando uma forma de fazer um bloqueio mais avançado, rs Acredito que essa solução possa ser utilizada por todos, para firewall simples até o mais complexo. Eu estou usando Debian 5.0.3, iptables 1.4.2 e fail2ban 0.8.3. Qualquer dúvida, problema ou sugestão podem deixar um comentário.

Upload: mota2011

Post on 29-Nov-2015

329 views

Category:

Documents


0 download

TRANSCRIPT

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

Twitter

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]

Busca

Search

© DotSharp Serviços de Informática