Защищаем сервер от атаки DNS Amplification с помощью fail2ban
Защищаем сервер от атаки DNS Amplification с помощью fail2ban
Устанавливаем необходимый софт:
sudo aptitude install fail2ban ipset logrotate
Настройка fail2ban
В /etc/fail2ban/jail.conf необходимо ввести следующие строки:
[named-antidos]
enabled = true
banaction = iptables-ipset
logpath = /var/log/iptables.log
filter = iptables-named
port = any
protocol = all
В /etc/fail2ban/action.d создаем файл
[Definition]
actionstart = ipset --create fail2ban-<name> iphash
actionstop = ipset --flush fail2ban-<name>
ipset --destroy fail2ban-<name>
actionban = ipset --test fail2ban-<name> <ip> || ipset --add fail2ban-<name> <ip>
actionunban = ipset --test fail2ban-<name> <ip> && ipset --del fail2ban-<name> <ip>
И в /etc/fail2ban/filter.d файл iptables-named.conf с содержимым
[Definition]
failregex = .* IPTables-Dropped: .* SRC=<HOST> .*
ignoreregex =
На этом настройка fail2ban закончена. Перезапускам демона командой:
sudo invoke-rc.d fail2ban restart
Настройка iptables
Добавляем правила командами:
iptables -N bl
iptables -A bl -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A bl -j DROP
iptables -I INPUT -p udp --dport 53 -m recent --name ddns --set
iptables -I INPUT -p tcp --dport 53 -m recent --name ddns --set
iptables -I INPUT -p udp --dport 53 -m recent --name ddns --update --seconds 60 --hitcount 15 -j bl
iptables -I INPUT -p tcp --dport 53 -m recent --name ddns --update --seconds 60 --hitcount 15 -j bl
iptables -I INPUT -m set --match-set fail2ban-named-antidos src -j DROP