iptables-persistent Debian/Ubuntu/Kali

В Debian базираните дистрибуции има различни варианти за съхранение и въстановяване на правилата в защитната стена (iptables) след рестарт или след някаква промяна в конфигурацията. Един от удобните начини е чрез скрипта iptables-persistent, нека го инсталираме в командия ред с:

sudo apt install iptables-persistent

Инсталатора ще ни зададе въпрос да създаде ли конфигурационен файл за ipv4 протокола в който да съхранява правилата от iptables.

Същото ще направи и за протокола ipv6.

След като инсталатора приключи ние на практика нямаме правила в в защитната стена и затова ще си създадем един стандартни е така за тест.

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state INVALID -j DROP
sudo iptables -A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -j DROP

След което задължително трябва да проверим дали има правила и минават ли някакви пакети през броячите за да установим работи ли защитната стена правилно.

sudo iptables -nvL

Както е видно от птичи поглед всичко изглежда наред.

До тук ние имаме правила, защитната стена функционира правилно но нямаме конфигурационен файл в който да са съхранени тези правила. Това можем да направим с командата:

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

И да се убедим, че те са във файла.

sudo cat /etc/iptables/rules.v4

Така, с горната команда запазихме правилата от защитната стена във файл а с тази по долу ще направим обратното а именно ще въстановим правилата от файла активирайки ги в същата последователно в защитната стена.

sudo sh -c "iptables-restore < /etc/iptables/rules.v4"

С две думи излиза, че сме страшно гъвкави защото ако добавя правило директно в терминала:

iptables -I INPUT -s 172.16.0.0/12 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT

То ще се нареди най отгоре в правилата на защитната стена и след това ако изпълня:

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

То ще се съхрани в конфигурационния файл и ще е активно дори след рестарт на машината.

Всъщност има много по удобен инструмент netfilter-persistent който може да менажира тези процеси:

samyil@kali:~$ sudo netfilter-persistent 
Usage: /usr/sbin/netfilter-persistent (start|stop|restart|reload|flush|save)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.