Fail2ban — это стандартная функция любой операционной системы на базе Linux, которая анализирует файлы журналов и блокирует подозрительные IP-адреса.
Fail2ban — система предотвращения вторжений, которая защищает ваш сервер от атак грубой силы. Написанный на языке программирования Python, Fail2ban может работать в системах POSIX с локально установленным брандмауэром (Firewall) или системой управления пакетами, такой как TCP Wrappers или IPTABLES.
Стоит отметить, что Fail2ban — это только система предотвращения вторжений, а не система обнаружения вторжений или средство защиты от взлома.
Говоря о работе Fail2ban с Asterisk, необходимо рассказать о роли IPTABLES в этом взаимодействии.
IPTABLES — это инструмент администрирования оболочки Linux, предназначенный для управления фильтрацией IP-адресов и NAT. IPTABLES используется для проверки таблиц правил фильтрации IP-пакетов в ядре Linux. В IPTABLES можно определить несколько разных таблиц. Каждая таблица содержит несколько встроенных цепочек, а также может содержать пользовательские цепочки. Каждая цепочка представляет собой список правил, которым могут соответствовать пакеты. Каждое правило указывает, что делать с пакетом, соответствующим правилам.
Для проверки IPTABLES, необходимо ввести следующую команду с правами рута:
Стандартная настройка Fail2ban приведена ниже.
Данные изменения, вносятся в файл /etc/fail2ban/jail.conf
Fail2ban — система предотвращения вторжений, которая защищает ваш сервер от атак грубой силы. Написанный на языке программирования Python, Fail2ban может работать в системах POSIX с локально установленным брандмауэром (Firewall) или системой управления пакетами, такой как TCP Wrappers или IPTABLES.
Стоит отметить, что Fail2ban — это только система предотвращения вторжений, а не система обнаружения вторжений или средство защиты от взлома.
Говоря о работе Fail2ban с Asterisk, необходимо рассказать о роли IPTABLES в этом взаимодействии.
IPTABLES — это инструмент администрирования оболочки Linux, предназначенный для управления фильтрацией IP-адресов и NAT. IPTABLES используется для проверки таблиц правил фильтрации IP-пакетов в ядре Linux. В IPTABLES можно определить несколько разных таблиц. Каждая таблица содержит несколько встроенных цепочек, а также может содержать пользовательские цепочки. Каждая цепочка представляет собой список правил, которым могут соответствовать пакеты. Каждое правило указывает, что делать с пакетом, соответствующим правилам.
Для проверки IPTABLES, необходимо ввести следующую команду с правами рута:
По умолчанию IPTABLES разрешает весь трафик. Когда IPTABLES соединен с Fail2ban, трафик не будет блокироваться до тех пор, пока Fail2ban не создаст запрещающее правило. Fail2ban по умолчанию размещает правила в верхней части цепочки, поэтому они имеют приоритет над правилами, настроенными пользователем в IPTABLES. Это хорошо, потому что вы можете сначала разрешить весь SIP-трафик, а затем Fail2ban заблокирует отдельные хосты, предпринявшие попытку атаки, до тех пор, пока они снова не будут разрешены этим правилом.iptables –L
Эта команда отобразит список цепочек (chains), которые называются INPUT, FORWARD и OUTPUT, в самом низу ещё есть кастомные цепи, созданные пользователем.
Дефолтные IPTABLES выглядят примерно следующим образом:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Стандартная настройка Fail2ban приведена ниже.
Данные изменения, вносятся в файл /etc/fail2ban/jail.conf
Теперь давайте расшифруем, что означает эта запись. Это фильтр, который блокирует на 3 дня любой IP-адрес, который не может получить доступ к Asterisk 5 раз, а затем отправляет вам электронное письмо с уведомлением об этом факте.[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=[email]fail2ban@gmail.com[/email]]
logpath = /var/log/asterisk/security
maxretry = 5
bantime = 259200