Christian Seiler: Suse Linux: Masuqerading langsam??

Beitrag lesen

Hallo Fabian,

Ich beschäftige mich zur Zeit etwas näher mit den ganzen iptables-Regeln und Paketfiltern. Dabei bin ich auf einer Seite auf obige Regel gestoßen, die - soweit ich das beurteilen kann - nur diejenigen Pakete durchlässt, die explizit vom Client angefordert wurden.

Jain. Sie akzeptiert alle Pakete, die über das Interface ppp0 reinkommen (d.h. "von außen"), die den "Status" ESTABLISHED oder RELATED haben. Dies bedeutet, dass alle TCP-Pakete akzeptiert werden, die zu einer bestehenden Verbindung dazugehören, sowie UPD und ICMP-Antworten. UDP-Pakete, die einfach so drauflosgesendet werden und TCP-Verindungsaufbaupakete werden dagegen *nicht* von der Regel durchgelassen. Wenn eine Regel allerdings nicht zutrifft, wird die nächste Regel der Chain genommen. Und nachdem es für INPUT keine weitere Regel gibt, wird die Policy von INPUT genommen (bei Subchains wird zur übergeordneten Chain zurückgekehrt). Die Policy von INPUT ist in Deinem Beispiel ACCEPT.

Du hast also folgende Situation:

Chain INPUT wird abgearbeitet
  - kommt das Paket über ppp0 rein und gehört es zu einer bestehenden TCP-Verbindung (ESTABLISHED) oder ist es eine UDP- oder ICMP-Antwort (RELATED)? Ja => durchlassen (ACCEPT) Nein => nächste Regel
  - keine weitere Regel => Policy: durchlassen (ACCEPT)

Das heißt konkret: Du lässt alle Pakete sowieso zu. Wenn, dann würde ich *dahinter* noch eine Regel postieren, die alle über ppp0 einkommenden Pakete zurückweist (REJECT).

iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -j REJECT

Die erste Regel (die von Dir) würde dann dafür sorgen, dass die von Dir gewünschten Pakete durchgelassen werden (und wenn sie durchgelassen werden, werden *keine* weiteren Regeln angewendet!), die zweite würde auf alle anderen zutreffen, die über ppp0 reinkommen und diese würden zurückgewiesen. Allerdings wären in so einer Konstellation nur noch ausgehende Verbindungen möglich.

Ganz wichtig: die Policy von INPUT sollte man nur dann auf REJECT oder DROP setzen, wenn man noch andere Regeln zum Zulassen von weiteren Paketen hat. Denn auch ein Paket, das aus dem lokalen Netz ins Internet will, durchläuft die INPUT-Chain (da kommt es dann von eth0). Wenn man die Policy von INPUT generell auf REJECT setzt, sperrt man sich komplett aus.

Aber ich würde davon abraten, derartige Regeln alleine zu setzen. Wenn, dann sollte man sich gleich richtig in iptables einlesen und nicht nur teilweise irgendwo irgendwelche Firewall-Regeln einbauen. Mit so etwas lädt man irgendwelche neugierigen Leute überhaupt erst ein, wenn ein System weder so reagiert, wie wenn eine richtige Firewall aktiviert ist, noch so, wie wenn gar keine aktiviert ist (was nicht zwangsläufig heißt, dass das deswegen unsicher sein muss).

Viele Grüße,
Christian