Dodaję tę zasadę:
sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
--dport 1723 -j DNAT --to-destination a.b.c.d:10000
- Po ponownym uruchomieniu reguły komputera są usuwane. Dlaczego?
- Co mogę zrobić, aby reguły pozostały niezmienione?
W iptables nie ma opcji, która sprawi, że twoje reguły będą trwałe. Ale możesz użyć iptables-save
i iptables-restore
wypełnić swoje zadanie.
Najpierw dodaj regułę iptable za pomocą podanego polecenia.
Następnie zapisz reguły iptables do jakiegoś pliku, na przykład /etc/iptables.conf
używając następującego polecenia:
$ iptables-save > /etc/iptables.conf
Dodaj następujące polecenie, /etc/rc.local
aby przeładować reguły przy każdym ponownym uruchomieniu.
$ iptables-restore < /etc/iptables.conf
iptables-persistent
pakiet, który to zrobi.rc.local
ponieważ między uruchomieniem usług a zaporą obowiązywałaby luka w oknie. Wolę używaćpre-up
haka do interfejsu pętli zwrotnej w/etc/network/interfaces
celu przezwyciężenia tego.rc.local
może mieć zamierzony efekt, ale w tej sytuacji jest to kludge.(Ponieważ zasugerowano, aby zrobić z tego własną odpowiedź ...)
Podczas instalacji Debiana
iptables-persistent
.Pakiet zostanie automatycznie załadowany
/etc/iptables/rules
podczas rozruchu.Za każdym razem, gdy modyfikujesz swoje reguły, biegnij,
/sbin/iptables-save > /etc/iptables/rules
aby je zapisać. Możesz również dodać to do sekwencji zamykania, jeśli chcesz.źródło
/etc/iptables/rules.v4
i/etc/iptables/rules.v6
dla IPv4 i IPv6 odpowiednio. Jeśli chcesz, aby tabela dotyczyła obu rodzajów połączeń, musisz zapisać ją w obu plikach reguł.Po instalacji
iptables-persistent
powyżej możesz również zapisać reguły za pomocą następującego krótszego polecenia w systemie Ubuntu 16.04+:sudo netfilter-persistent save
Można je również przywrócić do poprzedniego stanu, w którym je zapisałeś:
sudo netfilter-persistent reload
źródło