Ponowne ładowanie iptables

29

Wprowadziłem zmiany w pliku konfiguracyjnym iptables /etc/iptables/filterw Ubuntu i chcę je ponownie załadować. Przeczytałem stronę podręcznika i również googlowałem, ale nie mogłem znaleźć informacji. Każda pomoc będzie mile widziana.

techraf
źródło
Nie podałeś żadnych informacji o używanej wersji Ubuntu, ani dobrze przeszukałeś sieci przed opublikowaniem tego pytania.

Odpowiedzi:

28

Najłatwiejszym sposobem jest ponowne uruchomienie (również jeśli poniżej nie działa, uruchom ponownie, sprawdź, czy to spowodowało zmianę).

Drugi najłatwiejszy sposób to zrestartowanie demonów za pomocą konfiguracji iptables (google: restart daemon ubuntu).

przykłady (zależy od konfiguracji):

/etc/init.d/iptables restart  

/etc/init.d/networking restart  

/etc/init.d/firewall restart
Juha
źródło
5
Nie ma pliku o nazwie /etc/init.d/iptables
1
jakie powiązane sieci istnieją w /etc/init.d? spróbuj to zrestartować.
2
/etc/init.d/networking restart?
1
Martwy link jest martwy.
Dustin Graham
@DustinGraham dzięki, uszkodzony link został usunięty.
Juha
37

Zwykle reguły zapory znajdują się w pliku konfiguracyjnym /etc/iptables.firewall.rules

Aby aktywować reguły zdefiniowane w pliku, musisz wysłać je do iptables-restore(możesz użyć innego pliku, jeśli chcesz):

sudo iptables-restore < /etc/iptables.firewall.rules

I możesz sprawdzić, czy są one aktywowane za pomocą:

sudo iptables -L

Jeśli chcesz aktywować te same reguły przy każdym uruchomieniu komputera, utwórz ten plik:

sudo nano /etc/network/if-pre-up.d/firewall

Dzięki tej zawartości:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

I pozwól mu na wykonanie:

sudo chmod +x /etc/network/if-pre-up.d/firewall

Mam nadzieję, że to ci pomoże =)

Przykładowy plik dla /etc/iptables.firewall.rules:

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT
Jorge Sampayo
źródło
4
Na Ubuntu 14.10 nie mam, /etc/iptables.firewall.rulesale sudo iptables-restore < /etc/iptables/rules.v4pracowałem dla mnie.
timbo
4

Jeśli wykonałeś swoje reguły, są one już uruchomione i ponowne ładowanie nie jest konieczne. Jeśli masz plik konfiguracyjny, ale nie został on wykonany najlepiej, jak do tej pory widziałem, jest użycie iptables-apply(rozszerzenie iptables).

iptables-apply -t 60 your_rules_file

Spowoduje to zastosowanie reguł przez 60 sekund (domyślnie 10) i cofnie je, jeśli ich nie potwierdzisz. To cię uratuje na wypadek, gdybyś został wyrzucony z systemu z powodu reguł (np. Jeśli działasz przez ssh).

Jako zamiennika możesz użyć:

iptables-restore < your_rules_file; sleep 60; iptables-restore < clean_rules
nyxz
źródło
Nie, przeładowanie jest absolutnie konieczne do rozpoznania hosta DDNS. Jeśli zmieni się adres IP dowolnego hosta, do którego następuje odwołanie, należy ponownie załadować iptables. Najlepiej byłoby to zrobić co 30 minut od crona. Ponowne uruchamianie co 30 minut nie jest wygodne.
mckenzm
1

sudo ufw reload

Ponownie załaduje zaporę ogniową i jej zasady.

cryptoboy
źródło
0

Po trochę googlowaniu, właśnie znalazłem, aby zrestartować iptables. . . sudo /etc/init.d/firewall restart


źródło
3
Nie ma pliku o nazwie /etc/init.d/firewall
0

Jeśli chcesz ponownie załadować tabele IP, aby sprawdzić wprowadzone zmiany; możesz także ponownie uruchomić Apache za pomocą poniższych wierszy poleceń:

/etc/init.d/apache2 stop

/etc/init.d/apache2 start

Te polecenia mogą się różnić w zależności od gustu Ubuntu i ewentualnych modyfikacji, które mogły zostać wcześniej wprowadzone.

Mam nadzieję że to pomoże.

Pierre

Pierre Alexis Malaval
źródło