Domyślnie iptables nie zapisuje się między ponownymi uruchomieniami serwera, co może być problemem, jeśli mamy tam ważne reguły, np. takie, które zabezpieczają dostęp do konkretnych części systemów. Jeśli chcemy, aby nasze reguły były zachowywane po restarcie, wystarczy jednak tylko parę komend i można to zmienić.
Skrypt w if-up.d (Debian, Ubuntu)
Najpierw zapisujemy nasze iptables do pliku.
iptables-save > /etc/firewall.conf
Następnie, tworzymy skrypt iptables
w /etc/network/if-up.d
. Tutaj akurat użyjemy edytora nano
.
nano /etc/network/if-up.d/iptables
Wpisujemy tam poniższy kod i zapisujemy Ctrl + O
, następnie Enter
, po czym Ctrl + X
.
#!/bin/sh
iptables-restore < /etc/firewall.conf
Dodajemy uprawnienia wykonania do skryptu.
chmod +x /etc/network/if-up.d/iptables
Od teraz nasze reguły będą przywracane za każdym razem, jak tylko uaktywni się sieć na serwerze. Jeśli chcemy je zaktualizować, wystarczy ponownie wykonać pierwszą komendę z poradnika (iptables-save
).
Jęśli będziemy chcieli się pozbyć automatycznego przywracania iptables, należy usunąć plik /etc/firewall.conf
oraz /etc/network/if-up.d/iptables
.
Źródło: major.io
iptables-persistent (Debian, Ubuntu)
Można też to zrobić z użyciem powyższej paczki. Najpierw musimy ją zainstalować.
apt install iptables-persistent
Reguły będą wczytywane z pliku /etc/iptables/rules.v4
. Aby zapisać iptables, wykonujemy poniższą komendę.
iptables-save > /etc/iptables/rules.v4
ifup-local (CentOS, RedHat EL)
Najpierw zapisujemy nasze iptables do pliku.
iptables-save > /etc/firewall.conf
Następnie, edytujemy lub stworzymy skrypt ifup-local
. Tutaj akurat użyjemy edytora nano
.
nano /sbin/ifup-local
Jeśli plik jest pusty, wpisujemy tam poniższy kod i zapisujemy Ctrl + O
, następnie Enter
, po czym Ctrl + X
.
#!/bin/sh
iptables-restore < /etc/firewall.conf
Jeśli w pliku już coś jest, dopisujemy poniższą linijkę.
iptables-restore < /etc/firewall.conf
Dodajemy uprawnienia wykonania do skryptu.
chmod +x /sbin/ifup-local
Od teraz nasze reguły będą przywracane za każdym razem, jak tylko uaktywni się sieć na serwerze. Jeśli chcemy je zaktualizować, wystarczy ponownie wykonać pierwszą komendę z poradnika (iptables-save
).
Jęśli będziemy chcieli się pozbyć automatycznego przywracania iptables, należy usunąć plik /etc/firewall.conf
oraz dodaną linijkę z pliku ifup-local
.
Źródło: major.io, techblog.willshouse.com