Asterisk + fail2ban под FreeBSD

В один прекрасный день, прилетела ко мне весточка от SIP-провайдера. И говорила она интересные вещи про безопасность и участившиеся случаи взлома. Я конечно все честно прочитал, посмеялся, да и удалил. А потом, неделю спустя, пришел ко мне счет за переговоры на много денег с кучей звонков в Латвию. Тут то и осознал я всю суть проблемы и, после получения по шапке от начальства, взялся за защиту нашего asterisk сервера от внешних воздействий. Начнем с волшебной утилиты fail2ban.

fail2ban представляет из себя анализатор логов, который при определенном повторении той или иной строки, запускает нужное приложение. Т.е. в случае с выведенным в интернет asterisk – анализируем логи на предмет наличия записей вида Registration from ’111.111.111.111′ failed for ’222.222.222.222′ – Wrong password и, в случае если такое повторяется несколько раз, блокируем данного товарища в фаэрволе по IP. Простая и действенная схема, жутко помогающая от перебора паролей.
Итак, начнем:

1
2
cd /usr/ports/security/py-fail2ban
make && make install

/etc/rc.conf:

1
fail2ban_enable="YES"

настраиваем fail2ban:
/usr/local/etc/fail2ban/jail.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[DEFAULT]
ignoreip = 127.0.0.1 10.1.1.0/24 10.1.2.0/24 111.111.111.111
bantime  = 600
findtime  = 600
maxretry = 4
backend = auto

[asterisk-ipfw]
enabled  = true
filter   = asterisk
action   = bsd-ipfw[table=50]
           mail[name=Asterisk, dest=support@company.ru]
logpath  = /var/log/messages
bantime  = 604800
maxretry = 3

Здесь:
ignoreip – данные адреса не будут учитываться при анализе логов asterisk
support@company.ru – на данную почту будут приходить оповещения о блокировке
logpath – путь к логу, в котором появляются сообщения о подборе паролей
bantime – на сколько секунд блокируется злоумышленник
maxretry – макс. число попыток ввода пароля, после которого происходит блокировка

В файле экшна для ipfw:
Правим /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf

1
2
actionban = /sbin/ipfw table <table> add <ip>
actionunban = /sbin/ipfw table <table> delete <ip></ip></table></ip></table>

В конфиге фаэрвола:

1
2
3
4
asterisk_ban_table="table(50)"

# fail2ban
${ipfw} add 10 deny all from ${asterisk_ban_table} to me

Делаем, чтобы логи asterisk писались в /var/log/message:

1
2
/usr/local/etc/asterisk/logger.conf:
<conf>messages => notice,warning,error,debug</conf>

Все. После перезапуска фаэрвола и указанных выше демонов, все уже должно работать icon smile Asterisk+fail2ban под FreeBSD Список забаненых IP можно смотреть командой ipfw table 50 list . Лично мне теперь довольно часто приходят письма о блокировках подборщиков паролей, так что считаю, что такая защита очень важна для выведенного интернет asterisk. Лучше один раз озабоититься, чем потом попасть на деньги icon smile Asterisk+fail2ban под FreeBSD
Также хочу сказать, что это далеко не единственный момент, на который нужно обратить внимание. Для полноценной защиты asterisk нужно провести целый комплекс мероприятий и статей об этом в интернете довольно много.

Другие публикации по данной теме:

Оставить комментарий

(обязательно)

(обязательно)

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Условия перепечатки материалов

При использовании материалов сайта на других ресурсах, прошу оставлять прямую, незаскриптованную и незакрытую от поисковых роботов ссылку на оригинал статьи.
© 2011 mahn0::Записки системного администратора
купить зимние шины . где купить духи .