Персональный сайт Федоренко Александра Пятница, 26.04.2024, 19:51
Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
CentOS [5]
Asterisk [16]
Elastix [4]
Виртуализация [3]
Raspberry Pi [5]
Статьи по настройке и использованию Raspberry Pi

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » LINUX » Asterisk

Настройка fail2ban на asterisk 1.8 (FreePBX 2.11)

Возникла задача подключить к серверу с Asterisk интерфейс с реальным IP адресом. Реализация этой идеи подвергает Asterik дополнительной опасности. Одно из средств защиты — установка скрипта Fail2Ban. Fail2Ban на основе заданных шаблонов парсит логи приложений, в случае совпадения строки в логе с шаблоном, банит IP при помощи правила в Iptables.
Для начала установим пакеты iptables и fail2ban

apt-get install iptables fail2ban

Основной конфигурационный файл Fail2Ban — /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 = 259200

Здесь

  • logpath — директория расположения лога, который будет парситься этим фильтром
  • maxretry — максимальное количество строк в логе для единичного ip, соответствующих шаблону фильтра до бана (баним на четвертый раз)
  • bantime — время, на которое баним ip

Далее шаблонами описываем сам фильтр: 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 .*@.*
 WARNING.* Ext. s: .* unknown SIP connection from .*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# 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 .*@.*
 WARNING.* Ext. s: .* unknown SIP connection from .*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Теперь нужно настроить логгер астериска, чтобы писал необходимые события в файл/var/log/asterisk/fail2ban
Открываем файл nano /etc/asterisk/logger_general_custom.conf, добавляем в секцию [logfiles] строку

fail2ban => notice,warning

Сохраняем,заходим в консоль астериска, делаем ротацию лога и перезагружаем логгер

# asterisk -r
pbx*CLI> logger rotate
pbx*CLI> logger reload

Теперь перезапускаем Fail2Ban

sudo /etc/init.d/fail2ban restart

Просмотреть статус выполнения fail2ban можно выполнив команду

fail2ban-client status asterisk-iptables

Все, теперь fail2ban будет блокировать попытки подключения и совершения звонков, подбор паролей злоумышленниками.


Отладка

Для добавления новых шаблонов потребуется отладка, для этого есть удобная утилита fail2ban-regex. Синтаксис выглядит так:

fail2ban-regex /var/log/asterisk/fail2ban "WARNING.* Ext. s: .* unknown SIP connection from .*"

Утилита выведет отчет о проверке. Так же можно на вход давать напрямую файл

fail2ban-regex /var/log/asterisk/fail2ban /etc/fail2ban/filter.d/asterisk.conf

Можно инициировать попытку звонка через asterisk c с дугой машины при помощи sipsak

sipsak -U -s sip:s@ip_asterisk:5060


Источник: http://blog.itradius.ru/?p=337
Категория: Asterisk | Добавил: AFed (21.03.2016)
Просмотров: 2169 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Copyright MyCorp © 2024Создать бесплатный сайт с uCoz