Potrzebujesz reguły iptables, aby zaakceptować cały ruch przychodzący

34

W moim środowisku testowym chcę zaakceptować cały przychodzący ruch. Czy ktoś może podać mi regułę iptable, którą należy dodać.

Moje obecne wyjście iptables -L -n wygląda następująco

Łańcuch WEJŚCIE (polityka AKCEPTUJ) cel prot opt ​​źródło
docelowy AKCEPTUJ wszystko - 0.0.0.0/0 0.0.0.0/0 STAN
POWIĄZANY, USTALONY AKCEPTUJ icmp - 0.0.0.0/0
0.0.0.0/0 AKCEPTUJ wszystko - 0.0.0.0 / 0 0,0,0,0/0 AKCEPTUJ tcp - 0,0,0,0/0 0,0,0,0/0 stan NOWY tcp dpt: 22 ODRZUĆ wszystko - 0,0,0,0/0 0,0,0,0/0
odrzucenie-z AKCEPTOWANIEM zabronione przez hosta icmp tcp - 0,0,0,0/
0 0,0,0,0/ 0 tcp dpt: 8443 AKCEPTUJ tcp - 0,0,0,0/0 0,0,0,0/0 tcp dpt: 8080 AKCEPTUJ tcp - 0,0,0,0/0 0,0,0,0/0 tcp dpt: 9443 AKCEPTUJ tcp - 0,0,0,0/0 0,0,0,0/0 tcp dpt: 2124

Łańcuch DO PRZODU (AKCEPTACJA zasad) cel prot opt ​​źródło
docelowy ODRZUĆ wszystko - 0.0.0.0/0 0.0.0.0/0
odrzucenie z icmp-host-zabronione

Łańcuch OUTPUT (policy ACCEPT) target prot opt source
destination

Dzięki


źródło

Odpowiedzi:

53

Uruchom następujące. Wstawi regułę na górze twoich iptables i pozwoli na cały ruch, chyba że zostanie później obsłużony przez inną regułę.

iptables -I INPUT -j ACCEPT

Możesz także opróżnić całą konfigurację iptables, wykonując następujące czynności:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Jeśli go opróżnisz, możesz chcieć uruchomić coś takiego:

iptables -A INPUT -i lo -j ACCEPT -m comment --comment "Allow all loopback traffic"
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT -m comment --comment "Drop all traffic to 127 that doesn't use lo"
iptables -A OUTPUT -j ACCEPT -m comment --comment "Accept all outgoing"
iptables -A INPUT -j ACCEPT -m comment --comment "Accept all incoming"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow all incoming on established connections"
iptables -A INPUT -j REJECT -m comment --comment "Reject all incoming"
iptables -A FORWARD -j REJECT -m comment --comment "Reject all forwarded"

Jeśli chcesz być nieco bezpieczniejszy w ruchu, nie używaj reguły akceptuj wszystkie przychodzące lub usuń ją za pomocą polecenia „iptables -D WEJŚCIE -J AKCEPTUJ -m komentarz - komentarz” Akceptuj wszystkie przychodzące ”i dodaj więcej szczegółowe zasady, takie jak:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT -m comment --comment "Allow HTTP"
iptables -I INPUT -p tcp --dport 443 -j ACCEPT -m comment --comment "Allow HTTPS"
iptables -I INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT -m comment --comment "Allow SSH"
iptables -I INPUT -p tcp --dport 8071:8079 -j ACCEPT -m comment --comment "Allow torrents"

UWAGA: Muszą znajdować się powyżej 2 reguł odrzucania u dołu, więc użyj I, aby wstawić je u góry. Lub jeśli jesteś analny jak ja, użyj „iptables -nL --line-numbers”, aby uzyskać numery linii, a następnie użyj „iptables -I INPUT ...”, aby wstawić regułę pod określonym numerem linii.

Na koniec zapisz swoją pracę dzięki:

iptables-save > /etc/network/iptables.rules #Or wherever your iptables.rules file is
Alex Atkinson
źródło
1
Ta odpowiedź w końcu zakończyła mój ból. Ta odpowiedź odpowiada na pytanie „w jaki sposób zmusić # @ $ #% iptables do robienia tego, co chcę i tylko tego, co chcę”. Jedyne ulepszenie, które zaleciłbym, to dodanie przykładu przekierowania portu. (tj. od 80 do 8080 i 443 do 8443) Myślę, że 99% pytań dotyczących iptables zostanie udzielonych w jednym pojedynczym poście.
Eric Hartford
Trochę późno wracam do tego, ale oto jest. Przekierowywanie ruchu z jednego portu do drugiego: „iptables -A PREROUTING -p tcp --port 80 -j REDIRECT --to-porty 8080”. Łatwo jest dostosować to, co chcesz. Jedynym wymaganiem jest to, że oba porty muszą być otwarte (poprzez wpisy powyżej tej instrukcji). Ciesz się!
Alex Atkinson
16

aby zaakceptować cały ruch przychodzący, można użyć następującego polecenia, -P oznacza ustawienie domyślnej zasady jako akceptuj

iptables -P INPUT ACCEPT  

jeśli nie potrzebujesz poprzednich reguł, po prostu je opróżnij / usuń, a następnie użyj powyższej komendy.
do opróżnienia wszystkich reguł

iptables -F    
Gangadhar
źródło