Você está na página 1de 4

Ola, neste artigo vamos tratar de segurança de servidor linux, e principalmente do Asterisk, ja faz

algum tempo que tenho tido vários contatos perguntando sobre como configurar o ip junto com o
fai2ban para proteger o Asterisk.

Bom, estou usando Centos 5.5, para começar é muito importante alterar a porta do SSH para uma
por ta alta EX: 22854

para fazer esta modificação basta um comando:

sed -i "s/#Port 22/Port 22854/g" /etc/ssh/sshd_config

Agora que esta alterado reiniciamos o SSH:


service sshd restart

Agora vamos baixr e instalar o Fail2Ban

cd /usr/src
wget http://ufpr.dl.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban-
0.8.4.tar.bz2
tar -jxf fail2ban-0.8.4.tar.bz2
cd fail2ban-0.8.4
yum install python iptables
python setup.py install
Iniciar o Fail2Ban no boot
cp /usr/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban

Agora que estamos com tudo instalado vamos a configuração:


Editamos o arquivo /etc/fail2ban/jail.conf e colocamos estas linhas no final

[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender= fail2ban@example.org Este endereço
de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. ]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 259200

Apos criamos o arquivo /etc/fail2ban/filter.d/asterisk.conf com este conteúdo:


# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from


# common.local
#before = common.conf

[Definition]

#_daemon = asterisk

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '<HOST>' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Peer is not supposed to register
NOTICE.* <HOST> failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from <HOST>\)
NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)
NOTICE.* .*: Failed to authenticate user .*@<HOST>.*

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Pronto já esta configurado nosso fail2ban.

Agora modificamos nosso arquivo /etc/asterisk/logger.conf


logo abaixo de [general] adicionamos
dateformat=%F %T

e verificamos a linha

messages => notice,warning,error


Cuide para deixar descomentada, retirando a virgula da frente

e ao final do arquivo adicionamos


syslog.local0 => notice

Agora reiniciamos nosso asterisk


service asterisk restart

Agora configuramos nosso iptables


Altere a 1º regra com sua porta do ssh:

iptables -I INPUT -p tcp --dport 22854 -j ACCEPT


iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 80 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 5036 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 2727 -j ACCEPT

Salvamos as regras do iptables


service iptables save

Adicionamos os dois serviços no boot


chkconfig iptables on
chkconfig fail2ban on

Agora é só iniciar o iptables e apos o fail2ban

service iptables start


service fail2ban start
Pronto, agora seu servidor voip esta bastante protegido.

SCRIPT AUTOMÁTICO
Para quem gosta de facilitar as coisas deixo aqui um script para instalar automático:

cd /usr/src
wget http://www.magnussolution.com/billing/install_iptables_fail2ban.sh
chmod +x ./install_iptables_fail2ban.sh
./install_iptables_fail2ban.sh 22

OBS: Este segundo parametro no comando acima é a porta do SSH, você pode alterar se quizer,
ajuda muito na segurança.

Obrigado

Você também pode gostar