Базовые правила iptables
#!/bin/bash
# Очищаем все правила
iptables -F
iptables -X
# Политика по умолчанию: блокировать входящий трафик
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Разрешаем loopback
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH (замените 22 на свой порт)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP и HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# ICMP (ping)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Защита от сканирования портов
# Блокировка NMAP SYN сканирования
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Ограничение новых соединений (защита от SYN flood)
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
Сохранение правил
apt install iptables-persistent -y
netfilter-persistent save
# Правила сохраняются в /etc/iptables/rules.v4
⚠️ Перед применением правил проверьте что разрешили свой SSH-порт, иначе потеряете доступ к серверу.
💡 Для простого управления используйте UFW — он надстройка над iptables с удобным синтаксисом.