В один прекрасный день, прилетела ко мне весточка от SIP-провайдера. И говорила она интересные вещи про безопасность и участившиеся случаи взлома. Я конечно все честно прочитал, посмеялся, да и удалил. А потом, неделю спустя, пришел ко мне счет за переговоры на много денег с кучей звонков в Латвию. Тут то и осознал я всю суть проблемы и, после получения по шапке от начальства, взялся за защиту нашего asterisk сервера от внешних воздействий. Начнем с волшебной утилиты fail2ban.
fail2ban представляет из себя анализатор логов, который при определенном повторении той или иной строки, запускает нужное приложение. Т.е. в случае с выведенным в интернет asterisk – анализируем логи на предмет наличия записей вида Registration from ’111.111.111.111′ failed for ’222.222.222.222′ – Wrong password и, в случае если такое повторяется несколько раз, блокируем данного товарища в фаэрволе по IP. Простая и действенная схема, жутко помогающая от перебора паролей.
Итак, начнем:
/etc/rc.conf:
настраиваем fail2ban:
/usr/local/etc/fail2ban/jail.conf
Здесь:
ignoreip – данные адреса не будут учитываться при анализе логов asterisk
support@company.ru – на данную почту будут приходить оповещения о блокировке
logpath – путь к логу, в котором появляются сообщения о подборе паролей
bantime – на сколько секунд блокируется злоумышленник
maxretry – макс. число попыток ввода пароля, после которого происходит блокировка
В файле экшна для ipfw:
Правим /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf
В конфиге фаэрвола: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 |
1 | fail2ban_enable="YES" |
/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 |
1 2 3 4 | asterisk_ban_table="table(50)" # fail2ban ${ipfw} add 10 deny all from ${asterisk_ban_table} to me |
1 2 | /usr/local/etc/asterisk/logger.conf: < conf>messages => notice,warning,error,debug |
Также хочу сказать, что это далеко не единственный момент, на который нужно обратить внимание. Для полноценной защиты asterisk нужно провести целый комплекс мероприятий и статей об этом в интернете довольно много.
Источнк http://www.mahno.su/freebsd/asterisk-freebsd/asterisk-fail2ban-pod-freebsd
Комментариев нет:
Отправить комментарий