iptables NOWE połączenia vs. --syn

13

Jaka jest różnica pomiędzy:

iptables ... -m state --state NEW

i

iptables ... --syn

Pierwszy powinien wybrać NOWE połączenia, ale nowe połączenia AFAIK są tworzone przez wysłanie flagi synchronizacji TCP. Drugi oznacza właśnie to - pakiety z flagą syn.

Czy możesz podać jakieś praktyczne przykłady, gdy powyższe polecenia zwracają różne wyniki?

wanson
źródło

Odpowiedzi:

8

--synFlaga jest przydatna, aby sprawdzić ruch TCP, ale NEWpaństwo nie może być wykorzystywane do innych protokołów (włącznie TCP) jak UDPi ICMP. Mogę powiedzieć, że NEWjest to bardziej ogólna niż --synopcja TCP.

Z podręcznika iptables możesz przeczytać:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

Na przykład żądanie DNS będzie zgodne ze NEWstanem, ale nie będzie zgodne z regułą z --synopcją. Po prostu jest to datagram UDP.

Ponadto, --synopcja może być używana do sprawdzania pakietów TCP ze złymi flagi kombinacji je upuścić.

Możesz także użyć obu tych opcji razem, aby sprawdzić NEWprzepływy TCP bez --synpierwszego pakietu i upuścić je, takie jak:

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

W tym miejscu dodajemy tego typu pakiety do łańcucha zdefiniowanego przez użytkownika, bad_tcp_packetsktóry ma zostać upuszczony / zalogowany itp.

Khaled
źródło