Dlaczego reguły iptables znikają podczas ponownego uruchamiania systemu Debian?


48

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
  1. Po ponownym uruchomieniu reguły komputera są usuwane. Dlaczego?
  2. Co mogę zrobić, aby reguły pozostały niezmienione?

Odpowiedzi:


45

W iptables nie ma opcji, która sprawi, że twoje reguły będą trwałe. Ale możesz użyć iptables-savei iptables-restorewypeł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.confużywając następującego polecenia:

$  iptables-save > /etc/iptables.conf

Dodaj następujące polecenie, /etc/rc.localaby przeładować reguły przy każdym ponownym uruchomieniu.

$  iptables-restore < /etc/iptables.conf

15
Na Debianie jest iptables-persistentpakiet, który to zrobi.
bahamat,

7
Umieszczenie go jest raczej złym pomysłem, rc.localponieważ 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/interfacescelu przezwyciężenia tego.
poige

@poige: Zgadzam się w 100%, rc.localmoże mieć zamierzony efekt, ale w tej sytuacji jest to kludge.
JM Becker,

3
@bahamat: Instalacja tego pakietu jest najlepszym rozwiązaniem, zasługuje na swoją własną odpowiedź.
JM Becker,

1
@TechZilla: Gotowe.
bahamat

53

(Ponieważ zasugerowano, aby zrobić z tego własną odpowiedź ...)

Podczas instalacji Debiana iptables-persistent.

Pakiet zostanie automatycznie załadowany /etc/iptables/rulespodczas rozruchu.

Za każdym razem, gdy modyfikujesz swoje reguły, biegnij, /sbin/iptables-save > /etc/iptables/rulesaby je zapisać. Możesz również dodać to do sekwencji zamykania, jeśli chcesz.


12
Istnieją dwa różne pliki zasada: /etc/iptables/rules.v4i /etc/iptables/rules.v6dla IPv4 i IPv6 odpowiednio. Jeśli chcesz, aby tabela dotyczyła obu rodzajów połączeń, musisz zapisać ją w obu plikach reguł.
PetaspeedBeaver

11
Nie dodawaj go do sekwencji zamykania! Jeśli podczas wprowadzania zmian / konfiguracji zbankrutujesz swoje zasady, przynajmniej stary dobry restart uruchomi się z powrotem do poprzednio działającego stanu.
VertigoRay

1

Po instalacji iptables-persistentpowyż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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.