Допустим Fail2Ban уже установлен, если нет, то смотрите мою статью — Установка и настройка Fail2ban.
По умолчанию Bind9 пишет логи в /var/log/syslog, поэтому чтобы писать в отдельный файл, откроем файл конфигурации в любом текстовом редакторе:
sudo nano /etc/bind/named.conf
И добавим:
logging {
channel security_file {
file "/var/log/named/security.log" versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};
};
Создадим директорию и назначим права:
sudo mkdir /var/log/named/
sudo chown bind:bind /var/log/named/
Перезапустим Bind9 чтобы применить изменения:
sudo /etc/init.d/bind9 restart
Либо применим без перезапуска:
sudo rndc reconfig
Убедимся что файл /var/log/named/security.log создался.
Теперь откроем файл конфигурации Fail2Ban:
sudo nano /etc/fail2ban/jail.conf
Найдем следующие параметры фильтра для TCP соединений:
[named-refused-tcp]
enabled = false
port = domain,953
protocol = tcp
filter = named-refused
logpath = /var/log/named/security.log
Изменим «false» на «true».
Также в конфигурации должны быть следующие параметры для UDP соединений:
[named-refused-udp]
enabled = false
port = domain,953
protocol = udp
filter = named-refused
logpath = /var/log/named/security.log
Их лучше не использовать и активировать в крайних случаях, так как в UDP сообщении можно указать любой IP адрес источника, чем могут воспользоваться злоумышленники, указав ваши IP адреса, после чего Fail2Ban их заблокирует.
В Fail2Ban есть опция «ignoreip» которая запрещает блокировать указанные адреса, рекомендую воспользоваться ей, например:
ignoreip = 127.0.0.1/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
Проверим:
sudo fail2ban-client status
sudo iptables-save | grep fail2ban
В файле /var/log/fail2ban.log можно увидеть что блокирует Fail2Ban.
Смотрите также мою статью:
Установка и настройка DNS-сервера BIND9