8(499)-709-97-83
Работаем с 8:00 до 19:00

Настройка Fail2ban для Asterisk на CentOS

  • 01 июля 2015

Установим Fail2ban.

CentOS 6 32-Bit

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpmyum install fail2ban python iptables
CentOS 6 64-Bit

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install fail2ban python iptables

CentOS 7

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-*.noarch.rpm
yum install fail2ban-firewalld fail2ban-systemd
 

Далее правим правила fail2ban для Asterisk:

nano /etc/fail2ban/filter.d/asterisk.conf
# 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 "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#

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 .*@.*

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

#ignoreregex =

Основной конфигурационный файл Fail2Ban находится /etc/fail2ban/jail.conf. В самый низ данного файла добавим следующий блок:

nano /etc/fail2ban/jail.conf

[asterisk-iptables]

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

Описание параметров:

enabled — значение true указывает что данный jail активен, false выключает действие изолятора.
filter — имя фильтра с регулярными выражениями, по которым идёт поиск.
logpath — путь к файлу логам FreeSWITCH, который программа Fail2ban будет обрабатывать с помощью заданного ранее фильтра.
action – операция, которая должна быть выполнена, если значение счётчика стало равным значению параметра maxretry.
maxretry - количество неудачных запросов за которое банится хост.
bantime - промежуток времени по умолчанию в секундах на которое банится провинившийся хост.

Добавим в конфигурацию логирования Asterisk запись в отдельный лог-файл:

nano /etc/asterisk/logger.conf
fail2ban => notice

Применяем изменения:

asterisk -rx "logger rotate"
 

Теперь перезагрузим fail2ban и добавим в автозагрузку:

CentOS 6

/etc/init.d/fail2ban restart
chkconfig fail2ban on

CentOS 7

systemctl restart fail2ban
systemctl enable fail2ban.service

На этом настройка закончена, теперь fail2ban будет обнаруживать и предотвращать атаки на Asterisk.

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Asterisk