Приведу пример настройки Fail2ban для работы с IPv6 адресами.
Допустим Fail2ban уже установлен и работает с IPv4 адресами:
Установка и настройка Fail2ban
Посмотрим текущие правила для IPv6:
ip6tables -nvL
Создадим цепочку f2b-sshd в которую Fail2ban будет добавлять правила бана IP адресов, а также другие цепочки если необходимо:
ip6tables -N f2b-sshd
ip6tables -A f2b-sshd -j RETURN
ip6tables -N f2b-postfix-pregreet
ip6tables -A f2b-postfix-pregreet -j RETURN
ip6tables -N f2b-dovecot
ip6tables -A f2b-dovecot -j RETURN
ip6tables -N f2b-postfix
ip6tables -A f2b-postfix -j RETURN
ip6tables -N f2b-apache-badbots
ip6tables -A f2b-apache-badbots -j RETURN
В начало списка добавим правило:
ip6tables -I INPUT 1 -p tcp -m multiport --dports 22 -j f2b-sshd
ip6tables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Если IPv6 только настраивается и других правил больше нет, то добавим другие необходимые вам правила, например:
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
Укажем по умолчанию политику INPUT на DROP, чтобы блокировать все остальное что не разрешено:
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT
Пример для других цепочек:
ip6tables -I INPUT 1 -p tcp -m multiport --dports 80,443,25,587,465,110,995,143,993,4190 -j f2b-postfix-pregreet
Сохраним правила, чтобы они не сбросились после перезагрузки:
ip6tables-save >/etc/iptables/rules.v6
IPv6 адреса удаляются из бана так же как и IPv4:
fail2ban-client set sshd unbanip 2000::::....