Внезапно — в Ubuntu 16 корявый пакет fail2ban (10.2), которому не доложили конфигов! Поэтому ключевое:
- # идем куда нeдосыпали
- cd /etc/fail2ban/action.d/
- # бэкапим штатные (хоть и кривые) конфиги
- mv nftables-multiport.conf nftables-multiport.conf.bak
- mv nftables-allports.conf nftables-allports.conf.bak
- # качаем правильные конфиги
- wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/nftables-allports.conf
- wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/nftables-multiport.conf
- # вот этого вообще не было!:
- wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/nftables.conf
Что я делал дальше:
- Убедился что у меня есть штатный конфиг «/etc/fail2ban/jail.conf», полученный копированием «jail.conf.dpkg-dist» с последующим вырезанием секции с тюрьмами (для них у меня «/jail.d/» есть и незачем их смешивать)
- Создал файл «/etc/fail2ban/jail.local», который читается после «/etc/fail2ban/jail.conf» и служит для переопределения параметров
- [DEFAULT]
- banaction = nftables-multiport
- banaction_allports = nftables-allports
Все! В инете есть еще варианты назначить конкретную таблицу для правил f2b, но вот с такой конфигурацией он и сам прекрасно добавляет таблицу имени себя:
- table inet f2b-table {
- set addr-set-sshd {
- type ipv4_addr
- elements = { 31.220.1.210, 37.49.226.161 }
- }
- set addr-set-wp-qiwichupa-net {
- type ipv4_addr
- elements = { 34.76.172.157, 34.82.91.206,
- 35.183.87.236, 35.220.162.15 }
- }
- chain f2b-chain {
- type filter hook input priority -1; policy accept;
- tcp dport { ssh } ip saddr @addr-set-sshd reject
- tcp dport { http, https } ip saddr @addr-set-wp-qiwichupa-net reject
- }
- }
Единственное что имеет смысл, создать файлик /etc/fail2ban/action.d/nftables-common.local:
- [Init]
- blocktype = drop
Он также будет читаться как конфиг nftables и заставит дропать, а не реджектить пакеты с заблокированных айпишников.
И на эту дичь было убито 4 часа -_-