Forum Asterisk
Welcome Guest   [Register]  Autenticação
 Subject :Evitar ataques no Asterisk com Fail2Ban.. 2011-09-10 12:22:28 
gouveia
Joined: 2008-11-16 13:40:47
Posts: 45
Location: Vila Nova de Gaia, Portugal
 

Uma forma simples de minimizar problemas com ataques por força bruna no asterisk é a implementação do fail2ban.


Na pratica este serviço analisa as entradas nos logs e implementa regras de iptables baseadas nessa analise, desta forma a reincidência de expressões como "Wrong password" nos logs do asterisk gera um drop no iptables para o ip que está tentando se autenticar.

Instar o fail2ban

Dependências:

  • python
  • iptables

No debian, para se certificar que as dependências estão instaladas, basta adicionar o seguinte comando:

#apt-get install python iptables

Download do fail2ban com o seguinte comando:

#wget http://superb-east.dl.sourceforge.net/sourceforge/fail2ban/fail2ban-0.8.3.tar.bz2

Descompacte o pacote

#tar -jxf fail2ban-0.8.3.tar.bz2

Entre no diretório

#cd fail2ban-0.8.3

Instalar o Fail2Ban

#python setup.py install

Configurar o Fail2Ban

Agora nós precisamos fazer com que o fail2ban seja capaz de identificar ataques contra o asterisk.

Os ficheiros de configuração ficam em: /etc/fail2ban/filter.d

Vamos criar aqui um ficheiro para o asterisk.

#touch asterisk.conf

Este ficheiro deve conter o seguinte:

[INCLUDES]

[Definition]
failregex = NOTICE.* .*: Registration from '.*' failed for '' – Wrong password
           
NOTICE.* .*: Registration from '.*' failed for '' – No matching peer found
           
NOTICE.* .*: Registration from '.*' failed for '' – Username/auth name mismatch
          
NOTICE.* .*: Registration from '.*' failed for '' – Device does not match ACL
           
NOTICE.* failed to authenticate as '.*'$
           
NOTICE.* .*: No registration for peer '.*' \(from \)
           
NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
          
NOTICE.* .*: Failed to authenticate user .*@.*
ignoreregex =

No ficheiro /etc/fail2ban/jail.conf  inclua as seguintes linhas:

[asterisk-iptables]

enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath  = /var/log/asterisk/full
maxretry = 3
bantime = 259200


Maxretry determina a quantidade de erros que o fail2ban vai aceitar de um determinado host antes de bani-lo.

O bantime é em segundos, portanto neste caso qualquer tentativa de ataque ao asterisk será banida por 72 horas.

Para não banir você mesmo, no jail.conf, procure pela tag [DEFAULT], no paramento ignoreip informe seu ip.

Edite o /etc/asterisk/logger.conf e defina o dateformat da seguinte forma.

[general]
dateformat=%F %T

Na sessão [logfiles] você deve inserir a seguinte linha:

syslog.local0 => notice

Feito isso é só dar reload no logger

asterisk -rx "logger reload"

Para verificar se o fail2ban funcione, basta aplicar o seguinte comando:

iptables -L -v

As seguintes linhas devem aparecer:

Chain fail2ban-ASTERISK (1 references)
 pkts bytes target     prot opt in     out     source               destination
6287K 1158M RETURN     all  –  any    any     anywhere             anywhere

Listo! Agora esta com um pouco mais de segurança no seu Asterisk.


IP Logged
Anderson Gouveia
Asterisk Portugal Community Manager
http://www.asteirk.pt
Elastix in the Web / Elastix en la web
http://twitter.com/asterisk_pt
http://identi.ca/asteriskportugal
Página # 


Powered by ccBoard