iptables, kolejność reguł - czy dobrze to rozumiem?

17

Chciałbym skonfigurować mój VPS tak, aby akceptował TYLKO połączenia z zewnątrz na porcie 22 (gdzie nasłuchuje sshd) i żądania ICMP. Wszystko inne z zewnątrz należy odrzucić. Wewnątrz serwera wszystko powinno być dozwolone. Czy poniższe reguły tworzą pożądane zachowanie?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

Nie jestem całkowicie pewien, czy reguły ACCEPT „wygrywają” w stosunku do ostatniego ogólnego ODRZUCENIA

Xpector
źródło
1
Nie należy używać --source 127.0.0.1do określania, czy pakiet jest bezpieczny do przyjęcia. Zobacz serverfault.com/a/825231/4131
Bruno Bronosky

Odpowiedzi:

20

Masz rację.

Reguły będą przetwarzane w kolejności wiersza pliku. Jeśli istnieje zgodność z regułą, w twoim przypadku nie zostaną przetworzone żadne inne reguły dla tego pakietu IP.

http://en.wikipedia.org/wiki/Iptables

Każda reguła w łańcuchu zawiera specyfikację pasujących pakietów. Może także zawierać cel (używany do rozszerzeń) lub werdykt (jedna z wbudowanych decyzji). Gdy pakiet przechodzi przez łańcuch, każda reguła z kolei jest sprawdzana. Jeśli reguła nie pasuje do pakietu, pakiet jest przekazywany do następnej reguły. Jeśli reguła pasuje do pakietu, reguła podejmuje działanie wskazane przez cel / werdykt, co może spowodować, że pakiet będzie mógł być kontynuowany w łańcuchu, lub może nie

NGRhodes
źródło