Замечания по запуску 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 на систему инициализации Примеры использования системы инициализации systemd (system daemon).

Deb - дистрибутивы

В Deb -дистрибутивах для управления iptables используются:

iptables-apply - перезагружает правила из конфига (/etc/network/iptables)
iptables-restore  - считывает правила из указаного файла
iptables-save - сохраняет в указаный файл.

Для автоматизации можно установить пакет 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

В Хостинг 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
PQ VPS сервера в 28+ странах.
Dolphin anty. Инглекс (Englex) — онлайн школа английского языка.