Итак, пришло время поговорить о защите. На написание поста меня сподвигла атака из США жестким брутом. Дело было так, я зашел на сервер оптимизировать конфиг users.conf(Об этом в следующей статье). После правки файла, я благополучно зашел в консоль Asterisk и увидел кучу сообщений (примерно 5 раз в секунду) о том, что с такого-то IP попытка зайти под пользователем 104. Меня это сначала смутило. А потом я решил поставить fail2ban, чтобы обезопасить себя. Итак, статья в моем стиле - поэтому никакой лишней инфы не будет, только то что нужно чтобы закрыть доступ для атакующего IP.
Защищать будем Asterisk, ну и бонусом SSH.
Шаг 1. Установка fail2ban.
# apt-get install fail2ban
Шаг 2. Установка python и iptables. Возможно вам понадобиться установить эти пакеты, поэтому
# apt-get install iptables python
Шаг 3. Конфигурация fail2ban. Итак, займемся конфигурацией. Для этого перейдем в каталог /etc/fail2ban/filter.d.
# cd /etc/fail2ban/filter.d
Создаем новый фильтр:
# touch asterisk.conf
Содержимое файла /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+)
Защищать будем Asterisk, ну и бонусом SSH.
# apt-get install fail2ban
Шаг 2. Установка python и iptables. Возможно вам понадобиться установить эти пакеты, поэтому
# apt-get install iptables python
Шаг 3. Конфигурация fail2ban. Итак, займемся конфигурацией. Для этого перейдем в каталог /etc/fail2ban/filter.d.
# cd /etc/fail2ban/filter.d
Создаем новый фильтр:
# touch asterisk.conf
Содержимое файла /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+)

