Замечания по запуску iptables на разных дистрибутивах Linux
RPM - дистрибутивы
В ASPLinux, CentOS теперь CentOS Stream, RedHat, Fedora системах управление iptables производиться с помощью следующих команд:
service iptables restart - собственно перезапускается и считывает заново конфиг (/etc/sysconfig/iptables) service iptables start/stop - останавливает и запускает service iptables save - сохраняет правила iptables в конфиг файл.
Fedora 16
В связи с переходом в Fedora 16 на систему инициализации Примеры использования системы инициализации systemd (system daemon).
Deb - дистрибутивы
В Deb -дистрибутивах для управления iptables используются:
iptables-apply - перезагружает правила из конфига (/etc/network/iptables) iptables-restore - считывает правила из указаного файла iptables-save - сохраняет в указаный файл.
- Webmin администрирование Linux имеет встроенный модуль для автозапуска и редактирования правил iptable
- iptables-persistent
Для автоматизации можно установить пакет iptables-persistent -этот пакет содержит только сценарий запуска системы, которая восстанавливает Правила iptables правила из файла конфигурации.
aptitude install iptables-persistent
После установки в init.d появится простейший скрипт, который умеет только загружать правила.
# nano /etc/init.d/iptables-persistent #!/bin/sh # Written by Simon Richter <sjr@debian.org> # ### BEGIN INIT INFO # Provides: iptables-persistent # Required-Start: mountkernfs $local_fs # Required-Stop: $local_fs # Default-Start: S # Default-Stop: # Short-Description: Set up iptables rules ### END INIT INFO case "$1" in start) if [ -f /etc/iptables/rules ]; then iptables-restore </etc/iptables/rules fi ;; stop|force-stop|restart|force-reload|status) ;; *) echo "Usage: $0 {start|stop|force-stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
Ubuntu
В Хостинг VPS/VDS на Ubuntu по умолчанию для настройки правил Netfilter используется Настройка правил фаервола (iptables) с помощью UFW. ufw использует интерфейс командной строки, состоящий из небольшого числа простых команд, и использует Правила iptables для конфигурации. То есть для того, чтобы работать с netfilter нам нужно разобраться и выучить синтаксис ufw. Наверное учить ufw дополнительно к iptables несколько излишне.
Автозагрузка правил iptables в Ubuntu
- Для добавления правил iptables удобней всего создать отдельный скрипт. В конце которого указать команду /sbin/iptables-save > /etc/iptables/rules
mkdir /scripts; wget -c http://wiki.dieg.info/_export/code/zamechanija_po_zapusku_iptables_na_raznyx_distributivax_linux?codeblock=5 -O /scripts/iptables-rules.sh; chmod +x /scripts/iptables-rules.sh; ln -s /scripts/iptables-rules.sh /iptables.sh;
- iptables-rules.sh
#!/bin/sh IPT="/sbin/iptables" IFACE_EXT="eth0" IFACE_LOC="lo" PATH='/scripts' CAT='/bin/cat' IST="/usr/sbin/ipset" # Flushing iptable rules. $IPT -F $IPT -t nat -F $IPT -t mangle -F $IPT -X $IPT -t nat -X $IPT -t mangle -X # Default politics $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT # Your rules iptables # Allow ESTABLISHED $IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -i $IFACE_LOC -j ACCEPT $IPT -A INPUT -p icmp -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT $IPT -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT /sbin/iptables-save > /etc/iptables/rules # for RedHat #/sbin/service iptables save #/sbin/service iptables restart
Если вы не используете скрипт iptables-persistent, загружайте правила до загрузки интерфейсов командой pre-up в файле interfaces
# nano /etc/network/interfaces auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.111.16 netmask 255.255.255.0 network 192.168.111.0 broadcast 192.168.111.255 gateway 192.168.111.1 dns-nameservers 192.168.111.1 8.8.8.8 pre-up iptables-restore < /scripts/rules # pre-up /usr/local/sbin/firewall start # post-down /usr/local/sbin/firewall stop


