Устанавливаем:
apt-get install iptables-persistent
Система предложит сохранить имеющиеся iptables-правила в файлы /etc/iptables/rules.v4 для IPv4 и /etc/iptables/rules.v6 для IPv6 - сохраняем.
Открываем файл /etc/iptables/rules.v4 очищаем и вставляем:
*filter
# входящие запрещены
:INPUT DROP [0:0]
# перенаправления запрещены
:FORWARD DROP [0:0]
# исходящие разрешены
:OUTPUT ACCEPT [0:0]
# локально разрешено всё
-A INPUT -i lo -j ACCEPT
# пинг и прочие icmp ответы сервера разрешены
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 3 -j ACCEPT
# разрешены только установленные соединения
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# некорретные/ненужные пакеты запрещены
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
# открываем доступ к ssh-порту, 80 порту и какие вам нужно
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
Применяем правила:
iptables-restore < /etc/iptables/rules.v4
Перезапускаем fail2ban:
service fail2ban restart
Проверяем правила:
iptables -L
Извиняюсь где взял не помню!