Wie kann man verstehen, warum das Paket von den "iptables" als UNGÜLTIG angesehen wurde?

11

Ich habe einige iptablesRegeln eingerichtet, damit die UNGÜLTIGEN Pakete protokolliert und verworfen werden --state INVALID. Wie kann ich beim Lesen der Protokolle verstehen, warum das Paket als ungültig angesehen wurde? Zum Beispiel Folgendes:

Nov 29 22:59:13 htpc-router kernel: [6550193.790402] ::IPT::DROP:: IN=ppp0 OUT= MAC= SRC=31.13.72.7 DST=136.169.151.82 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=5104 DF PROTO=TCP SPT=80 DPT=61597 WINDOW=0 RES=0x00 ACK RST URGP=0
mbaitoff
quelle

Antworten:

25

Pakete können sich bei Verwendung der Stateful Packet Inspection in verschiedenen Zuständen befinden.

  • Neu : Das Paket ist nicht Teil eines bekannten Flusses oder Sockets und die TCP-Flags haben das SYN-Bit aktiviert.
  • Etabliert : Das Paket entspricht einem Flow oder Socket, der von verfolgt wirdCONNTRACK und verfügt über TCP-Flags. Nach Abschluss des ersten TCP-Handshakes muss das SYN-Bit ausgeschaltet sein, damit sich ein Paket im Status "Einrichten" befindet.
  • verbunden : Das Paket stimmt nicht mit einem bekannten Datenfluss oder Socket überein, aber das Paket wird erwartet, da ein vorhandener Socket vorhanden ist, der dies vorhersagt (Beispiele hierfür sind Daten an Port 20, wenn an Port 21 eine FTP-Sitzung vorhanden ist, oder UDP-Daten für eine vorhandene SIP-Verbindung am TCP-Port 5060). Dies erfordert ein zugehöriges ALG.
  • Ungültig : Wenn keiner der vorherigen Zustände zutrifft, befindet sich das Paket im Zustand INVALID. Dies kann durch verschiedene Arten von Stealth-Netzwerkprüfungen verursacht werden oder dazu führen, dass Ihnen die CONNTRACKEinträge ausgehen (die auch in Ihren Protokollen angegeben werden sollten). Oder es kann einfach ganz harmlos sein.

In Ihrem Fall zeigt das von Ihnen zitierte Paket, dass die TCP-Flags ACKund RSTund der Quellport sind 80. Dies bedeutet, dass der Webserver bei 31.13.72.7(der zufällig Facebook ist) ein Rücksetzpaket an Sie gesendet hat. Es ist völlig unmöglich zu sagen, warum, ohne die Pakete zu sehen, die davor kamen (falls vorhanden). Höchstwahrscheinlich wird Ihnen jedoch aus demselben Grund ein Reset gesendet, den Ihr Computer für ungültig hält.

Bahamat
quelle
Es gibt also keine Möglichkeit, einen Kernel (oder iptables) zu bitten, eine Art "Signatur" an ein Paket anzuhängen, das den Grund dafür enthält, dass es ungültig ist?
Mbaitoff
2
Per Definition nein. Ungültig bedeutet, dass es keinem bekannten Status entspricht. Mit anderen Worten, das ist der Kernel, der sagt "Ich weiß nicht, warum ich dieses Paket erhalten habe".
Bahamat
Beim Debuggen bestimmter UNGÜLTIGER Pakete könnte es funktionieren, sie in Wireshark von einem Speicherauszug aus zu betrachten ... Ich habe Pakete mit SACK-Feldern gesehen (tatsächlich werden die normalen Sequenznummern von der Firewall geändert und die in der SACK-Option nicht, was zu SACK führt Werte sind ungültig), die durch das Löschen einer Firewall als ungültig beschädigt wurden ...
Gert van den Berg