
Ich habe folgende Regel für iptables
:
-A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
so dass ausgehende Verbindungen, die nicht als hergestellt klassifiziert sind, protokolliert werden. Gelegentlich erfasst das Firewall-Ausgangsprotokoll solche Pakete:
09:56:48 DST=a.b.167.208 TTL=64 SPT=80 DPT=25960 WINDOW=119 ACK URGP=0
09:48:48 DST=a.b.166.231 TTL=64 SPT=80 DPT=29861 WINDOW=119 ACK PSH URGP=0
09:29:57 DST=a.b.167.244 TTL=64 SPT=80 DPT=58244 WINDOW=119 ACK URGP=0
Bei genauerer Betrachtung zeigt das Zugriffsprotokoll des Webservers, dass es eingehende Verbindungen gibt, die den oben genannten IP-Adressen 75-100 zuvor entsprechen.
Warum werden die oben genannten Verbindungen vom Conntrack-Modul nicht als hergestellt klassifiziert? Und was könnte getan werden, um das Rauschen herauszufiltern?
Antwort1
Nach meinem Verständnis wechselt eine TCP-Verbindung nur in ESTABLISHED
den Zustandnachdas ACK
ist durchgegangen und die ACK
Pakete sind genau das, was Sie dort protokollieren (und blockieren) scheinen.
http://www.iptables.info/en/connection-state.html#TCPCONNECTIONS
Hast du es versucht --ctstate ESTABLISHED,RELATED
?
Zum Thema „nur gelegentliches“ Protokollieren, wie Sie sagten: dmesg/syslog erfasst nicht alle Pakete. Wenn zu viele ähnliche Nachrichten eingehen, werden sie verworfen, um eine Protokollüberflutung zu vermeiden. Das ist konfigurierbar, geht aber über den Rahmen dieser Frage hinaus.