[AsteriskBrasil] RES: Fail2ban

Sylvio Carlos Jollenbeck sylvio.sdr em gmail.com
Quarta Junho 6 19:37:10 BRT 2012


Pessoal,

Esse patch foi escrito para a versão 1.6.2.13 do Asterisk. Seu
funcionamento é bem simples, cria-se uma variável chamada block_str, após o
switch do reason, chamamos o script que contem a regra do iptables e
passamos para ele o ip do invasor, isso é feito aqui
(strcat(block_str,ast_inet_ntoa(sin->sin_addr));). O próximo passo é criar
o script do iptables conforme exemplo abaixo e coloca-lo dentro do
diretório /etc/asterisk

Na pratica, qualquer reason diferente de sucesso enviara o ip do camarada
para o iptables bloquear. Não existe controle de quantidade de tentativas,
nada disso.... Mas pode ser implementado com muita facilidade tanto no
channel como no script de iptables.

Vale lembrar que essa hack funciona para qualquer versão de asterisk,
realizei testes na 1.4, 1.6 e 1.8. Todas tem o mesmo principio de
funcionamento para o sip. A unica coisa que muda é a disposição das linhas,
mas isso se resolve procurando o lugar correto dentro do channel e aplicar
a alteração feita pelo patch na unha.

Patch:


--- chan_sip.c.orig     2010-08-19 17:05:54.000000000 -0400
+++ ./chan_sip.c        2010-10-01 03:12:01.277665379 -0400
@@ -21657,6 +21657,8 @@ static int handle_request_register(struc
        check_via(p, req);
        if ((res = register_verify(p, sin, req, e)) < 0) {
                const char *reason;
+               char block_str[256];
+

                switch (res) {
                case AUTH_SECRET_FAILED:
@@ -21684,6 +21686,11 @@ static int handle_request_register(struc
                        reason = "Unknown failure";
                        break;
                }
+
+               strcpy(block_str,"/etc/asterisk/sip_security.sh ");
+               strcat(block_str,ast_inet_ntoa(sin->sin_addr));
+               system(block_str);
+
                ast_log(LOG_NOTICE, "Registration from '%s' failed for '%s'
- %s\n",
                        get_header(req, "To"), ast_inet_ntoa(sin->sin_addr),
                        reason);

Script Iptables:

#!/bin/bash

/sbin/iptables -I INPUT -s $1 -j DROP
echo "$1" >> /var/log/asterisk/sip_security.log

Abs

# ---------------------------------------------------------------
*Sylvio Carlos Jollenbeck Borin*
# ----------------------------------------------------------------


Em 6 de junho de 2012 17:00, Sylvio Carlos Jollenbeck
<sylvio.sdr em gmail.com>escreveu:

> Pessoal,
>
> Estou acompanhando esse tópico e vejo uma certa discordância logica para
> garantir a segurança do servidor. Não tenho nada contra o Fail2Ban, mas
> honestamente existem coisas melhores.
>
> Vamos entender o comportamento do fail2ban, após instalado e configurado
> ele começa a ler o log gerado pelo Asterisk, se após X tentativas de
> autenticação incorreta aplica-se a disciplina pelo IPTABLES.
>
> Até aqui lindo e maravilhoso, porem se o conjunto for mal configurado
> (fail2ban, log, asterisk, etc), bingo estamos dentro do asterisk e
> brincando de fazer chamadas para a Asia.
>
> Agora vamos nos colocar na cabeça do invasor, se ele faz o portscan em um
> determinado bloco de endereços públicos e alguns IP retornam as portas
> abertas, ele continuar tentando até entrar. Isso vale para o SIP, IAX e até
> mesmo o AMI.
>
> A cada tentativa que o camarada faz, é uma conexão realizada de onde o
> invasor esta com o seu servidor, vale lembrar que isso consome alguns Kb de
> sua banda de internet. Também a cada tentativa é mais um log gerado, mais
> uma linha analisada pelo fail2ban, mais consumo de processador, mais isso,
> mais aquilo.
>
> Diante de tudo isso, pergunto, por que não ir direto ao ponto ?
>
> Com uma simples alteração no chan_sip.c, você consegue inibir o invasor
> diretamente na fonte de problemas. Basta pegar qualquer evento de falha de
> autenticação e solicitar que o próprio channel aplique a regra de iptables.
> Não estou falando de AGI ou AMI, estou falando em modificar o chan_sip.c e
> deixar ele fazer o trabalho para você.
>
> Pois bem, o iptables deve permanecer ativo, protegendo seu servidor de
> portscan e as demais portas de comunicação, seja ICMP, TCP, UDP, etc. Desta
> forma vocês diminuem o processo de escrita de log, consumo de processamento
> para ler o log, etc....
>
> Ja postei essa solução na lista alguns meses atras. Mas se precisarem de
> ajuda estou a disposição.
>
> Abs
>
> Sylvio Jollenbeck
>
> # ---------------------------------------------------------------
> *Sylvio Carlos Jollenbeck Borin*
> # ----------------------------------------------------------------
>
>
> Em 6 de junho de 2012 15:15, Daviramos Roussenq Fortunato <
> daviramosrf em gmail.com> escreveu:
>
> Você pode ler a Documento e entender como o fail2ban funciona então
>> http://www.fail2ban.org/wiki/index.php/Main_Page
>>
>>
>>
>> Em 6 de junho de 2012 14:58, João Marcelo Queiroz <jmbq em bol.com.br>escreveu:
>>
>>
>>> Hudson,
>>>
>>> o problema não é no Fail2ban, e sim na forma em que o asterisk entrega
>>> os logs. Dependendo do tipo de ataque, o log não entrega o IP do atacante
>>> então não tem como barrar. O que deve ser feito é alterar a forma que o log
>>> DO ASTERISK é gerado e depois adaptar a configuração do fail2ban (que é
>>> simples) ao novo formato do log. Isso foi feito, mais ou menos, no asterisk
>>> 1.8.
>>>
>>> Ou seja, a informação que deveria ser entregue ao fail2ban não existe
>>> (ainda).
>>>
>>> Então, mesmo que você escreva essa implementação, ela não saberá onde
>>> buscar a informação, pois ela não existe (ainda).
>>>
>>>
>>> Abraço,
>>>
>>>
>>> João Marcelo Queiroz
>>>
>>>
>>> Em 06/06/2012, às 14:41, Hudson Cardoso escreveu:
>>>
>>>     Bom nesse caso, eu arrumaria a leitura dos logs, o problema é que
>>> nao
>>> encontrei nada na net que fale sobre eles.
>>>    Algo tecnico mesmo, pois tudo que achei um passo a passo pronto, e
>>> nem
>>> sempre isso é bom, eu gosto de aprender tudo que um sistema faz,
>>> e so um passo a passo nao me cheira bem...
>>>    Se voce souber de um tuto melhor para o fail2ban, otimo...
>>>
>>>
>>>
>>>
>>> Hudson
>>> 048 8413 7000
>>> 048 3039 8899 opcao 2
>>> www.easyteltelecom.com.br
>>>
>>> Para quem nao cre, nenhuma prova converte,
>>> Para aquele que cre, nenhuma prova precisa.
>>>
>>>
>>> > Date: Wed, 6 Jun 2012 14:29:47 -0300
>>> > From: rogerwinter em gmail.com
>>> > To: asteriskbrasil em listas.asteriskbrasil.org
>>> > Subject: Re: [AsteriskBrasil] RES: Fail2ban
>>> >
>>> > Opa!
>>> >
>>> > O Fail2Ban não tem problemas na leitura dos logs..
>>> > O que tem acontecido é os Logs não estarem de acordo com o o que ele
>>> espera..
>>> > Como acontece no Asterisk 1.8, que teve mudanças nos formados dos
>>> logs..
>>> > Nada que uns ajustes nas expressões não o façam funcionar
>>> adequadamente.
>>> >
>>> > Abraço.
>>> >
>>> > Em 6 de junho de 2012 14:25, Hudson Cardoso
>>> > <hudsoncardoso em hotmail.com> escreveu:
>>> > >    Sei disso, mas pelo que tenho visto aqui na lista, e em alguns
>>> blogs, e
>>> > > ate no site
>>> > > da Digium, é que o fail2ban nao esta atendendo as solicitacoes
>>> corretamente,
>>> > > esta
>>> > > com problemas em logs do asterisk.
>>> > >
>>> > >
>>> > >
>>> > > Hudson
>>> > > 048 8413 7000
>>> > > 048 3039 8899 opcao 2
>>> > > www.easyteltelecom.com.br
>>> > >
>>> > > Para quem nao cre, nenhuma prova converte,
>>> > > Para aquele que cre, nenhuma prova precisa.
>>> > >
>>> > >
>>> > >> From: root em thiagoc.net
>>> > >> Date: Wed, 6 Jun 2012 13:54:25 -0300
>>> > >
>>> > >> To: asteriskbrasil em listas.asteriskbrasil.org
>>> > >> Subject: Re: [AsteriskBrasil] RES: Fail2ban
>>> > >>
>>> > >> 2012/6/6 Hudson Cardoso <hudsoncardoso em hotmail.com>:
>>> > >> >    O que quero criar nao servira somente para o asterisk, os log
>>> do
>>> > >> > asterisk
>>> > >> > fica
>>> > >> > facil de conhecer, pois é uma ferramenta que usa C nas
>>> implementacoes.
>>> > >> > fica facil pra mim, mas nao conheco nada de linux, to engatinhando
>>> > >> > ainda...
>>> > >> > a ideia seria verificar todos os logs do sistema, e tomar decisoes
>>> > >> > segundo
>>> > >> > voce
>>> > >> > quiser, e colocar os ip banidos no IPTABLE, por isso quero a
>>> opiniao de
>>> > >> > quem
>>> > >> > entende de linux....
>>> > >>
>>> > >> É isso que o Fail2ban faz...
>>> > >>
>>> > >> --
>>> > >> thiagoc
>>> > >>
>>> > >> "O povo não deveria temer o governo. O governo é quem deveria temer
>>> o
>>> > >> povo."
>>> > >> V de Vingança
>>> > >> _______________________________________________
>>> > >> KHOMP Inovação: External Board Series
>>> > >> Módulos de 1/2 rack e 1U para todas as interfaces e soluções
>>> Asterisk e
>>> > >> FreeSWITCH.
>>> > >> Tenha a External Series Experience na sua aplicação. Visite
>>> www.khomp.com
>>> > >> _______________________________________________
>>> > >> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> > >> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> > >> Centro Treinamento - Curso de PABX IP - Asterisk - Site
>>> > >> www.digivoice.com.br
>>> > >> ________
>>> > >> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício
>>> do
>>> > >> mercado.
>>> > >> email: yealink em commlogik.com.br | www.commlogik.com.br | (11)
>>> 5503-1011
>>> > >> ______________________________________________
>>> > >> Para remover seu email desta lista, basta enviar um email em branco
>>> para
>>> > >> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>> > >
>>> > > _______________________________________________
>>> > > KHOMP Inovação: External Board Series
>>> > > Módulos de 1/2 rack e 1U para todas as interfaces e soluções
>>> Asterisk e
>>> > > FreeSWITCH.
>>> > > Tenha a External Series Experience na sua aplicação. Visite
>>> www.khomp.com
>>> > > _______________________________________________
>>> > > DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
>>> > > 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> > > Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
>>> > >  www.digivoice.com.br
>>> > > ________
>>> > > YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício
>>> do
>>> > > mercado.
>>> > > email: yealink em commlogik.com.br | www.commlogik.com.br | (11)
>>> 5503-1011
>>> > > ______________________________________________
>>> > > Para remover seu email desta lista, basta enviar um email em branco
>>> para
>>> > > asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>> >
>>> >
>>> >
>>> > --
>>> > --
>>> > Roger Pitigliani
>>> > rogerwinter em gmail.com
>>> > Skype: roger.pitigliani
>>> > _______________________________________________
>>> > KHOMP Inovação: External Board Series
>>> > Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk
>>> e FreeSWITCH.
>>> > Tenha a External Series Experience na sua aplicação. Visite
>>> www.khomp.com
>>> > _______________________________________________
>>> > DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> > 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> > Centro Treinamento - Curso de PABX IP - Asterisk - Site
>>> www.digivoice.com.br
>>> > ________
>>> > YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> > email: yealink em commlogik.com.br | www.commlogik.com.br | (11)
>>> 5503-1011
>>> > ______________________________________________
>>> > Para remover seu email desta lista, basta enviar um email em branco
>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
>>> www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
>>> www.digivoice.com.br
>>> ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>>  asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>>
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
>>> www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
>>> www.digivoice.com.br
>>> ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>
>>
>>
>> --
>> Atenciosamente
>> Daviramos Roussenq Fortunato
>>
>> _______________________________________________
>> KHOMP Inovação: External Board Series
>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>> FreeSWITCH.
>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
>> _______________________________________________
>> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
>> www.digivoice.com.br
>> ________
>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>> mercado.
>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>> ______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20120606/2c292de8/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil