You are on page 1of 21

A Empresa

Servios

Artigos

Contato

14/01/2012 Rodrigo Luis Silva 37 Comments Linux, Segurana como fazer, debian, fail2ban, Firewall, iptables, Linux, Segurana, Shell

Como Fazer para Bloquear o UltraSurf, Soluo Definitiva [iptables + fail2ban]


Post to Delicious Post to Digg Post to Facebook Essa semana fazendo a reviso do firewall de um cliente eu consegui bloquear o Add to LinkedIn acesso as redes BitTorrent e ao terrvel UltraSurf. Share on Orkut Vou descrever como fiz para bloquear o UltraSurf. Post to Post to Blogger Add to Evernote Twitter

O problema

Post toeu Google+ Em um primeiro momento acreditei que seria fcil bloquear o UltraSurf, porm 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 soluo mais obvia seria bloquea-la, porm no possvel. Bloquear o IP ou range de IP do servidor de destino seria outra opo. 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 verso. Pesquisei pelo Google e no encontrei nenhuma forma eficiente de bloquear o UltraSurf, foi ento 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 mo na massa.

Comeando
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 avanado, rs Acredito que essa soluo 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 dvida, problema ou sugesto podem deixar um comentrio.

No final voc encontra os arquivos de configurao para download.

iptables
Essa parte bem simples, no seu script de firewall adicione a seguinte linha. 1
? i p t a b l e sAF O R W A R Dd6 5 . 4 9 . 1 4 . 0 / 2 4jL O Gl o g p r e f i x" = U l t r a S u r f ="

A rede 65.49.14.0/24 (http://whois.arin.net/rest/net/NET-65-49-14-0-1/pft) a primeira a ser contactada pelo UltraSurf quando ele aberto, a regra acima apenas gera um LOG, no existe bloqueio do acesso, em um primeiro momento o usurio vai at pensar que est funcionando. ATENO Coloque essa regra antes da regra com o modulo state (-m state state ESTABLISHED,RELATED). Se colocar depois os pacotes das conexes j estabelecidas no iro para o LOG e pode gerar falhas no bloqueio.

fail2ban
O fail2ban (http://www.fail2ban.org/) uma ferramenta muito boa para a segurana de servidores, em linhas gerais ela faz o seguinte. L algum arquivo de log, compara com uma expresso regular e em caso positivo ele executa algum comando no sistema. Por padro ele monitora o log do SSH e em caso de falhas consecutivas no acesso ele cria uma regra no iptables para bloquear o possvel invasor.

Instalando
Como eu estou utilizando o Debian e vou instalar pelo apt-get. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8
? #a p t g e ti n s t a l lf a i l 2 b a n R e a d i n gp a c k a g el i s t s . . .D o n e B u i l d i n gd e p e n d e n c yt r e e R e a d i n gs t a t ei n f o r m a t i o n . . .D o n e S u g g e s t e dp a c k a g e s : p y t h o n g a m i n T h ef o l l o w i n gN E Wp a c k a g e sw i l lb ei n s t a l l e d : f a i l 2 b a n 0u p g r a d e d ,1n e w l yi n s t a l l e d ,0t or e m o v ea n d1 0 0n o tu p g r a d e d . N e e dt og e t8 6 . 2 k Bo fa r c h i v e s . A f t e rt h i so p e r a t i o n ,6 3 1 k Bo fa d d i t i o n a ld i s ks p a c ew i l lb eu s e d . G e t : 1h t t p : / / f t p . b r . d e b i a n . o r gs t a b l e / m a i nf a i l 2 b a n0 . 8 . 3 2 s i d 1[ 8 6 . 2 k B ] F e t c h e d8 6 . 2 k Bi n0 s( 4 1 9 k B / s ) S e l e c t i n gp r e v i o u s l yd e s e l e c t e dp a c k a g ef a i l 2 b a n . ( R e a d i n gd a t a b a s e. . .3 8 5 4 7f i l e sa n dd i r e c t o r i e sc u r r e n t l yi n s t a l l e d . ) U n p a c k i n gf a i l 2 b a n( f r o m. . . / f a i l 2 b a n _ 0 . 8 . 3 2 s i d 1 _ a l l . d e b ). . . P r o c e s s i n gt r i g g e r sf o rm a n d b. . . S e t t i n gu pf a i l 2 b a n( 0 . 8 . 3 2 s i d 1 ). . .

Depois de instalado vamos acessar o diretrio de configurao 1 #c d/ e t c / f a i l 2 b a n /


?

Aqui vamos criar um arquivo chamado jail.local 1 v i/ e t c / f a i l 2 b a n / j a i l . l o c a l


?

Vamos adicionar o contedo abaixo ao arquivo jail.local. 1 2 [ u l t r a s u r f ] e n a b l e d =t r u e


?

3 4 5 6 7 8 9

f i l t e r =u l t r a s u r f p o r t =a l l b a n a c t i o n=i p t a b l e s u l t r a s u r f l o g p a t h =/ v a r / l o g / m e s s a g e s m a x r e t r y =6 #T e m p oe ms e g u n d o sq u eoI Pf i c ab l o q u e a d o ,a q u i1 5m i n u t o s b a n t i m e =9 0 0

Vamos criar o arquivo com a expresso regular que ir filtar o log do iptables. 1 v i/ e t c / f a i l 2 b a n / f i l t e r . d / u l t r a s u r f . l o c a l
?

Aqui vamos adicionar uma expresso regular simples ao arquivo ultrasurf.local. 1 2 3 [ D e f i n i t i o n ] f a i l r e g e x=( . * ) = U l t r a S u r f = ( . * )S R C = < H O S T > i g n o r e r e g e x=
?

Apesar de simples, funciona Agora o arquivo que ir executar o iptables e criar as regras necessrias para o bloqueio e desbloqueio. 1 v i/ e t c / f a i l 2 b a n / a c t i o n . d / i p t a b l e s u l t r a s u r f . l o c a l
?

Aqui onde a magica acontece, adicione o contedo abaixo ao arquivo iptablesultrasurf.local. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 [ D e f i n i t i o n ] a c t i o n s t a r t=i p t a b l e sNf a i l 2 b a n < n a m e > i p t a b l e sAf a i l 2 b a n < n a m e >jR E T U R N i p t a b l e sII N P U Tjf a i l 2 b a n < n a m e > i p t a b l e sIF O R W A R Djf a i l 2 b a n < n a m e > a c t i o n s t o p=i p t a b l e sDF O R W A R Djf a i l 2 b a n < n a m e > i p t a b l e sDI N P U Tjf a i l 2 b a n < n a m e > i p t a b l e sFf a i l 2 b a n < n a m e > i p t a b l e sXf a i l 2 b a n < n a m e > a c t i o n c h e c k=i p t a b l e snLF O R W A R D|g r e pqf a i l 2 b a n < n a m e > i p t a b l e snLI N P U T|g r e pqf a i l 2 b a n < n a m e > a c t i o n b a n=i p t a b l e sIf a i l 2 b a n < n a m e >1s< i p >jR E J E C T a c t i o n u n b a n=i p t a b l e sDf a i l 2 b a n < n a m e >s< i p >jR E J E C T [ I n i t ] n a m e=u l t r a s u r f
?

Agora basta reiniciar o Daemon 1 / e t c / i n i t . d / f a i l 2 b a nr e s t a r t


?

Pronto, agora s olhar o log do fail2ban e esperar pelo primeiro bloqueio. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 #t a i lff a i l 2 b a n . l o g 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 8 9 0f a i l 2 b a n . s e r v e r:I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 8 9 1f a i l 2 b a n . j a i l :I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 8 9 1f a i l 2 b a n . j a i l :I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 0 1f a i l 2 b a n . f i l t e r:I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 0 2f a i l 2 b a n . f i l t e r:I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 0 3f a i l 2 b a n . f i l t e r:I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 0 3f a i l 2 b a n . a c t i o n s :I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 2f a i l 2 b a n . j a i l :I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 2f a i l 2 b a n . j a i l :I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 3f a i l 2 b a n . f i l t e r:I N F O 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 4f a i l 2 b a n . f i l t e r:I N F O
?

C h a n g e dl o g g i n gt a r g e tt o/ v a r / l o g C r e a t i n gn e wj a i l' u l t r a s u r f ' J a i l' u l t r a s u r f 'u s e sp o l l e r A d d e dl o g f i l e=/ v a r / l o g / m e s s a g e s S e tm a x R e t r y=6 S e tf i n d t i m e=6 0 0 S e tb a n T i m e=9 0 0 C r e a t i n gn e wj a i l' s s h ' J a i l' s s h 'u s e sp o l l e r A d d e dl o g f i l e=/ v a r / l o g / a u t h . l o g S e tm a x R e t r y=6

1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3

2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 5f a i l 2 b a n . f i l t e r:I N F O S e tf i n d t i m e=6 0 0 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 1 5f a i l 2 b a n . a c t i o n s :I N F O S e tb a n T i m e=6 0 0 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 8 5f a i l 2 b a n . j a i l :I N F O J a i l' u l t r a s u r f 's t a r t e d 2 0 1 2 0 1 1 31 9 : 1 1 : 3 6 , 9 9 7f a i l 2 b a n . j a i l :I N F O J a i l' s s h 's t a r t e d 2 0 1 2 0 1 1 31 9 : 1 1 : 5 2 , 0 2 9f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]B a n1 0 . 2 3 . 1 3 4 . 4 2 2 0 1 2 0 1 1 31 9 : 1 3 : 3 6 , 0 5 7f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]B a n1 0 . 2 3 . 1 3 4 . 1 4 0 2 0 1 2 0 1 1 31 9 : 2 6 : 5 2 , 0 8 1f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]U n b a n1 0 . 2 3 . 1 3 4 . 4 2 2 0 1 2 0 1 1 31 9 : 2 8 : 3 6 , 1 0 9f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]U n b a n1 0 . 2 3 . 1 3 4 . 1 4 0 2 0 1 2 0 1 1 31 9 : 3 3 : 5 0 , 1 3 7f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]B a n1 0 . 2 3 . 1 3 4 . 4 2 2 0 1 2 0 1 1 31 9 : 4 8 : 5 0 , 1 6 5f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]U n b a n1 0 . 2 3 . 1 3 4 . 4 2 2 0 1 2 0 1 1 31 9 : 5 3 : 4 4 , 1 9 3f a i l 2 b a n . a c t i o n s :W A R N I N G[ u l t r a s u r f ]B a n1 0 . 2 3 . 1 3 4 . 1 4 0

Enviando email de aviso


possvel enviar um email de alerta a cada bloqueio e desbloqueio que o fail2ban faz. Para ativar essa funo voc tem primeiramente que testar o envio de email na maquina, para fazer isso vamos usar o programa mail. 1 2 3 4 5 #m a i ls e u e m a i l @ s e u d o m i n i o . c o m . b r S u b j e c t :T e s t e T e s t ed ee n v i od em e n s a g e m . C c :
?

Ateno ao . no final da mensagem, ele finaliza o email. O Debian por padro utiliza o Exim, o log fica localizado em /var/log/exim4/mainlog. Voc tambm pode usar o comando mailq para verificar a fila de email, em situaes normais no deve existir nenhum email na fila. Diversos detalhes podem impedir o envio de email, aqui no vou detalhar muito ,vou apenas colocar o contedo do meu arquivo /etc/exim4/updateexim4.conf.conf para usar como referncia. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 d c _ e x i m c o n f i g _ c o n f i g t y p e = ' s m a r t h o s t ' d c _ o t h e r _ h o s t n a m e s = ' S E R V E R . D O M I N I O . c o m . b r ' d c _ l o c a l _ i n t e r f a c e s = ' 1 2 7 . 0 . 0 . 1 ' d c _ r e a d h o s t = ' ' d c _ r e l a y _ d o m a i n s = ' ' d c _ m i n i m a l d n s = ' f a l s e ' d c _ r e l a y _ n e t s = ' 1 2 7 . 0 . 0 . 1 ' d c _ s m a r t h o s t = ' s m t p . D O M I N I O . c o m . b r ' C F I L E M O D E = ' 6 4 4 ' d c _ u s e _ s p l i t _ c o n f i g = ' f a l s e ' d c _ h i d e _ m a i l n a m e = ' f a l s e ' d c _ m a i l n a m e _ i n _ o h = ' t r u e ' d c _ l o c a l d e l i v e r y = ' m a i l _ s p o o l '
?

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 configurao, e reiniciar o Daemon do exim com o comando /etc/init.d/exim4 restart Pronto, se o envio de email pelo programa mail estiver funcionando voc j pode ativar o envio de email pelo fail2ban, vamos l. Edite o arquivo /etc/fail2ban/jail.local 1 1 2 3 4 # v i/ e t c / f a i l 2 b a n / j a i l . l o c a l [ u l t r a s u r f ] e n a b l e d =t r u e f i l t e r =u l t r a s u r f p o r t =a l l
? ?

5 6 7 8 9

b a n a c t i o n=i p t a b l e s u l t r a s u r f s e n d m a i l u l t r a s u r f l o g p a t h =/ v a r / l o g / m e s s a g e s m a x r e t r y =6 b a n t i m e =9 0 0

Adicione a action sendmail-ultrasurf conforme exemplo acima. Agora vamos criar um novo arquivo chamado /etc/fail2ban/action.d/sendmailultrasurf.local 1 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 v i/ e t c / f a i l 2 b a n / a c t i o n . d / s e n d m a i l u l t r a s u r f . l o c a l
?

? [ D e f i n i t i o n ] a c t i o n s t a r t= a c t i o n s t o p= a c t i o n c h e c k= a c t i o n b a n=p r i n t f% % b" S u b j e c t :B l o q u e a d o< i p > F r o m :S u p o r t e< < s e n d e r > > T o :< d e s t > \ n \ n Od i s p o s i t i v oc o mI P< i p >f o ib l o q u e a d od e p o i sd et e n t a rb u r l a r < f a i l u r e s >v e z e son o s s os i s t e m ad es e g u r a n c a . \ n A c e s s os e r al i b e r a d oa u t o m a t i c a m e n t e , \ n S u p o r t e "|/ u s r / s b i n / s e n d m a i lf< s e n d e r >< d e s t >

a c t i o n u n b a n=p r i n t f% % b" S u b j e c t :L i b e r a d o< i p > F r o m :I n f r a< < s e n d e r > > T o :< d e s t > \ n \ n Od i s p o s i t i v oc o mI P< i p >f o il i b e r a d op a r aa c e s s on o r m a l \ n N o v a st e n t a t i v a ss e r a ob l o q u e a d a sa u t o m a t i c a m e n t e , \ n S u p o r t e "|/ u s r / s b i n / s e n d m a i lf< s e n d e r >< d e s t > [ I n i t ] n a m e=d e f a u l t d e s t=r o o t s e n d e r=f a i l 2 b a n

Feito isso voc ir receber um email quando uma maquina for bloqueada ou desbloqueada, veja exemplo Bloqueio 1 2 3 4 5 6
? Od i s p o s i t i v oc o mI P1 0 . 2 3 . 1 3 4 . 4 1f o ib l o q u e a d od e p o i sd e t e n t a rb u r l a r 1 4v e z e son o s s os i s t e m ad es e g u r a n c a .

A c e s s os e r al i b e r a d oa u t o m a t i c a m e n t e , S u p o r t e

Desbloqueio 1 2 3 4 5
? n Od i s p o s i t i v oc o mI P1 0 . 2 3 . 1 3 4 . 4 1f o il i b e r a d op a r aa c e s s o o r m a l

N o v a st e n t a t i v a ss e r a ob l o q u e a d a sa u t o m a t i c a m e n t e , S u p o r t e

Voc tambm pode alterar a mensagem a seu critrio.

CentOS
O nosso amigo Jovander deu uma grande dica para funcionar em CentOS. Trocando a linha

banaction = iptables-ultrasurf por action = iptables-ultrasurf Ai sim o servio funcionou e leu os logs.

Ubuntu
Nosso amigo Angelo Figueiredo deu uma dica pra quem utiliza o Ubuntu 12.04 LTS. A configurao pode estar toda certinha e no estar bloqueando a soluo : verificar o arquivo /etc/fail2ban/jail.conf se estiver backend = auto mude para backed = polling que ir comear a bloquear.

Agradecimento
Um forte abrao ao meu amigo Yros Aguiar , quando falei que eu ia criar um Daemon para ler o log, ele me lembrou que eu no precisaria re-inventar a roda, bastava usar alguma ferramenta j existente, rs. Valeu, economizou horas de trabalho.

Concluso
Fica ai a dica, pra mim funcionou. Testei apenas com a verso 11.03, se em alguma outra no der certo peo que me avisem para podermos analisar como bloquear. Com essa soluo a cada tentativa de acesso utilizando o UltraSurf o usurio ser bloqueado e no ir acessar mais nada pelo tempo determinado, com isso ele tem duas opes, ou entrar em contato com o suporte da empresa para reclamar ou parar de usar o UltraSurf. Se ele reclamar voc orienta a no usar mais o software, porm normalmente ele para de usar de forma natural o UltraSurf.

Download
Configurao SEM suporte a envio de email conf-fail2ban-ultrasurf.tar.gz (http://www.dotsharp.com.br/download/conf-fail2ban-ultrasurf.tar.gz) Configurao COM suporte a envio de email conf-fail2ban-ultrasurf-email.tar.gz (http://www.dotsharp.com.br/download/conf-fail2ban-ultrasurf-email.tar.gz)

Referncias
fail2ban (http://www.fail2ban.org) iptables (http://www.netfilter.org/projects/iptables/index.html) Bloquear Ultrasurf usando uma GPO (http://tekniblog.wordpress.com/activedirectory/gpos/bloquear-ultrasurf-usando-uma-gpo/)
Like 17 people like this. Sign Up to see w hat your friends like. Send

You may also like:

COMO COMO BACKUP INSTALAR MONTAR O UM COMANDO SERVIDOR KILLALL NTP Como Como Backup
Instalar o Comando killall no Debian Montar um Servidor NTP

REPOSITRIO TALKWORK INTRODUO PARA (CHAT A DEBIAN 5 SERVER) LINGUAGEM LENNY JAVA
Repositrio para Debian 5 Lenny TalkWork (Chat Server) Introduo a Linguagem Java

Rodrigo Luis Silva


Gestor de equipes especialista em sistemas GNU/Linux com vasta experincia em gerenciamento de storage, virtualizao, network, desenvolvimento e outros. More Posts (http://www.dotsharp.com.br/author/rodrigosilva) - Website (http://www.dotsharp.com.br) Follow Me: (http://www.twitter.com/rsilva14)

37 Respostas
Yros
14/01/2012 at 7:31 pm

Muito bom o artigo, no tinha encontrado antes uma ferramenta eficiente para bloqueio do ultrasurf, ficou mais fcil, muito til. (Citar) (javascript:void(null))

leonardo
16/01/2012 at 2:51 pm

Outra forma identificar o trfego 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, porm estou com um pouco de dificuldade para implementar. Estou tentando em uma maquina CENTOS. Fiz exatamente da forma indicada e o servio Fail2Ban no inicia, ento tentei com o cdigo abaixo:

[ultrasurf] enabled = true filter = ultrasurf banaction = iptables-ultrasurf[port="all", protocol=tcp] sendmail-ultrasurf[name=ultrasurf, dest=cpd@telealpha.com.br] logpath = /var/log/messages maxretry = 6 bantime = 900 Porm no 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

Parabns 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 distribuio 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. (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, com 100% de eficacia. Parabens ao author. Sabino. (Citar) (javascript:void(null))

Rodrigo Luis Silva


04/02/2012 at 9:15 pm

Eduardo (#comment-330) : Parabns 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 distribuio 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 fail2banultrasurf 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 fcil de resolver, rs Quando o fail2ban iniciado ele criar uma CHAIN no iptables usando o comando abaixo iptables -N fail2ban-ultrasurf Dentro dessa Chain ele coloca as regras para bloqueio, quando voc roda o seu script de firewall ele certamente remove todas as chains personalizadas, sendo assim ele remove a chain fail2banultrasurf. Para resolver isso basta voc adicionar a linha abaixo no comeo 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, porm estou com um pouco de dificuldade para implementar. Estou tentando em uma maquina CENTOS. Fiz exatamente da forma indicada e o servio Fail2Ban no inicia, ento tentei com o cdigo abaixo: [ultrasurf] enabled = true filter = ultrasurf banaction = iptables-ultrasurf[port="all", protocol=tcp] sendmail-ultrasurf[name=ultrasurf, dest=cpd@telealpha.com.br] logpath = /var/log/messages maxretry = 6 bantime = 900 Porm no 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 servio (Citar) (javascript:void(null))

Walter
11/04/2012 at 9:56 am

Muito obrigado, meu amigo, por essa sua importante contribuio! Estava h muito tempo procurando uma soluo e a sua , at o momento, a mais eficiente. Um abrao! (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 servio 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 alteraes, do mesmo modo que o colega Jovander, outra dvida. Quando executo o comando tail -f fail2ban.log diz que o arquivo no existe, resolvi ento colocar /var/log/fail2ban.log mas tambm no deu certo, criei o arquivo na mo, mas ele sempre fica em branco, ou seja, eu no consigo ver apenas o log do fail2ban, para que eu possa visualizar os logs tenho que executar o j conhecido tail -f /var/log/messages mas ele me mostra todos os logs claro. Alguma dica?

(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 parabns pelo excelente trabalho. Um abrao, (Citar) (javascript:void(null))

Jefferson
10/07/2012 at 2:53 pm

No fedora 14 Ainda no conseguir fazer funcionar mas o log conseguir resolver echo logtarget = /var/log/fail2ban.log >> /etc/fail2ban/fail2ban.conf (Citar) (javascript:void(null))

Bruno Bassani
11/07/2012 at 1:58 pm

Parabns Pelo Post e pelos Scripts. Agradecido! Abrao (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 espao na expressao entre aspas ou assim =UltraSurf= ? (Citar) (javascript:void(null))

marlon
25/07/2012 at 6:19 pm

como fao 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 espao na expressao entre aspas ou assim=UltraSurf=? Caro Marlon, tudo bem? Sim, tem um espao, se no colocar o espao 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 fao para liberar 1 ip para usar o ultrasurf??? Marlon, basta adicionar a regra de liberao 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 LTS A configurao pode estar toda certinha e no estar bloqueando a soluo : verificar o arquivo /etc/fail2ban/jail.conf se estiver backend = auto mude para backed = polling que ir comear a bloquear. abraos (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 configurao pode estar toda certinha e no estar bloqueando a soluo : verificar o arquivo /etc/fail2ban/jail.conf se estiver backend = auto mude para backed = polling que ir comear a bloquear. abraos Angelo, muito obrigado pela dica. Abraos (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 no 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 no atualizaria sozinho? Ou seja, quando eu dou o comando o sistema mostra o contedo. Sentei numa mquina do lado e abri o UltraSurf para navegar. 5 minutos depois nada mudou na tela do 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 modo transparente. Percebi que bloqueia o ultrasurf na primeira vez que o usurio abre o mesmo, mas se o usurio no fechar o aplicativo e configurar com minhas configuraes de proxy o mesmo consegue usar o ultrasurf. Gostaria de saber se possvel utilizar algum comando que no deixe o squid passar a conexo 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 (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 engraadinhos metidos a bonzo aqui na empresa iro voltar a trabalhar e deixar o facebook de lado. HAHAHAHAHA (risada maligna) Brincadeiras a parte, obrigado mais uma vez, e vou te seguir no facebook e acompanhar teu site sempre ok? Tenha uma tima semana. Abraos. (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 usurio abre o mesmo, mas se o usurio no fechar o aplicativo e configurar com minhas configuraes de proxy o mesmo consegue usar o ultrasurf. Gostaria de saber se possvel utilizar algum comando que no deixe o squid passar a conexo 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 pode editar o arquivo /etc/fail2ban/action.d/iptables-ultrasurf.local Adiciona a seguinte linha iptables -I PREROUTING -t nat -j fail2ban-<name> iptables -D PREROUTING -t nat -j fail2ban-<name> Veja o aquivo completo

[Definition] actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -j fail2ban-<name> iptables -I FORWARD -j fail2ban-<name> iptables -I PREROUTING -t nat -j fail2ban-<name> actionstop = iptables -D FORWARD -j fail2ban-<name> iptables -D INPUT -j fail2ban-<name> iptables -D PREROUTING -t nat -j fail2ban-<name> iptables -F fail2ban-<name> iptables -X fail2ban-<name> actioncheck = iptables -n -L FORWARD | grep -q fail2ban-<name> iptables -n -L INPUT | grep -q fail2ban-<name> actionban = iptables -I fail2ban-<name> 1 -s <ip> -j REJECT actionunban = iptables -D fail2ban-<name> -s <ip> -j REJECT [Init] name = ultrasurf Dessa forma voc vai impedir que ele conecte na porta do proxy. Caso voc utilize estaes Windows e tenha um AD na rede eu recomendo que voc crie uma GPO para bloquer a alterao 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 configuraes 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 servio fail2ban no iniciar /etc/init.d/fail2ban restart erro: 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 dedicao em ajudar o prximo. Por gentileza voc poderia me ajudar ? No estou conseguindo bloquear o ultrasurf, o pessoal est utilizando a verso 12.04. J segui todos os procecimentos anteriores sem sucesso, utilizo proxy transparente, j configurei a GPO no AD para no permitir que o usurio alterar as configuraes do Proxy. Segue o log do Fail2Ban, utilizo o Ubuntu 10.04. root@srv-internet:~# tail -f /var/log/fail2ban.log 2012-10-04 15:47:20,240 fail2ban.jail : INFO Jail ultrasurf uses poller 2012-10-04 15:47:20,241 fail2ban.filter : INFO Set maxRetry = 6 2012-10-04 15:47:20,243 fail2ban.filter : INFO Set findtime = 600 2012-10-04 15:47:20,245 fail2ban.actions: INFO Set banTime = 900 2012-10-04 15:47:20,265 fail2ban.jail : INFO Jail ssh started 2012-10-04 15:47:20,283 fail2ban.jail : INFO Jail ultrasurf started 2012-10-04 15:53:13,982 fail2ban.server : INFO Stopping all jails 2012-10-04 15:53:14,973 fail2ban.jail : INFO Jail ssh stopped 2012-10-04 15:53:15,735 fail2ban.jail : INFO Jail ultrasurf stopped 2012-10-04 15:53:15,744 fail2ban.server : INFO Exiting Fail2ban Segue meu firewall EXTERNAL=eth0 INTERNAL=eth1 # parando o failban /etc/init.d/fail2ban stop [...] # log do ultrasurf iptables -A FORWARD -d 65.49.14.0/24 -j LOG log-prefix =UltraSurf= [...] # BLOQUEIO ULTRASURF [...] iptables -I FORWARD -p tcp -d 65.49.14.0/24 -j DROP [...] # inicializa o failban /etc/init.d/fail2ban start Segue os resultados do comando iptables -L -nv root@srv-internet:~# iptables -L -nv Chain INPUT (policy DROP 1842 packets, 593K bytes) pkts bytes target prot opt in out source destination 14813 1550K ACCEPT all eth1 * 0.0.0.0/0 0.0.0.0/0 [...] 14 672 DROP tcp * * 0.0.0.0/0 65.49.14.0/24 [...] 40 4586 LOG all * * 0.0.0.0/0 65.49.14.0/24 LOG flags 0 level 4 prefix =UltraSurf= [...]

Chain OUTPUT (policy ACCEPT 34376 packets, 39M bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110 [...] (Citar) (javascript:void(null))

Cristiano Galdino
09/10/2012 at 8:19 pm

Boa implementao! (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 no conheo. 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 servio fail2ban no 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.conf se estiver backend = auto mude para backed = polling que ir comear 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 dedicao em ajudar o prximo. Por gentileza voc poderia me ajudar ?

No estou conseguindo bloquear o ultrasurf, o pessoal est utilizando a verso 12.04. J segui todos os procecimentos anteriores sem sucesso, utilizo proxy transparente, j configurei a GPO no AD para no permitir que o usurio alterar as configuraes 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 alleth1 * 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? No sei se j conseguiu resolver, o que tenho de dica o seguinte. 14 672 DROP tcp * * 0.0.0.0/0 65.49.14.0/24 < <<<<<<<<<<<<<<<<<-------0 0 DROP tcp -- * * 65.49.2.0/24 0.0.0.0/0 0 0 DROP tcp -- * * 0.0.0.0/0 65.49.2.0/24 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9666 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3162 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3103 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:23620 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:19769 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:33190 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:55433 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:19769 0 0 ACCEPT all -- * * 0.0.0.0/0 200.201.174.204 40 4586 LOG all -- * * 0.0.0.0/0 65.49.14.0/24 LOG flags 0 level 4 prefix "=UltraSurf= " <<<<<<<<<<<<<<------------Voc tem duas regras para a rede 65.49.14.0/24, nesse caso o pacote cai na primeira regra e no cria o log do ultrasurf que est na regra mais abaixo. Tira do seu script as regras de bloqueio do ultrasurf que voc usava antes. # BLOQUEIO ULTRASURF iptables -I FORWARD -p tcp --dport 19769 -j DROP iptables -I FORWARD -p tcp --dport 55433 -j DROP iptables -I FORWARD -p tcp --dport 33190 -j DROP Elas acabam entrando na frente da regra do fail2ban. Espero que resolva. Vou editar o seu post para no 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 partir deles? 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 questo de tica profissional. (Citar) (javascript:void(null))

Bruno 15/04/2013 at 5:26 pm

Muito bom o artigo. Obrigado, funcionou certinho aqui! Uma dica que eu dou pra quem usa firewall/nat com duas placas de rede, informar a interface usada e dar um drop depois. Exemplo: IPTABLES=/sbin/iptables # caminho para o iptables LOCAL_INTERFACE_1=eth1 # Interface para intranet/rede local $IPTABLES -A FORWARD -i $LOCAL_INTERFACE_1 -d 65.49.14.0/24 -j LOG log-prefix UltraSurf $IPTABLES -A FORWARD -i $LOCAL_INTERFACE_1 -d 65.49.14.0/24 -j DROP (Citar) (javascript:void(null))

Carlos 08/05/2013 at 1:45 pm Cara, meus parabns pelo artigo. (Citar) (javascript:void(null))

Deixe uma resposta


O seu endereo de email no ser publicado Campos obrigatrios so marcados *
Nome *

Email *

Site

Comentrio

Voc pode usar estas tags e atributos de HTML (HyperText Markup Language): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Publicar comentrio

Home Linux Como Fazer para Bloquear o UltraSurf, Soluo Definitiva [iptables + fail2ban]

Busca
Search

DotSharp Servios de Informtica

You might also like