iptables - Interface sperren

xadian

Newbie
Registriert
Aug. 2005
Beiträge
6
Hi

wenn ich für ein Netzwerkinterface (zB eth1) folgende Regeln erstelle:
iptables -A OUTPUT -o eth1 -j DROP
iptables -A INPUT -i eth1 -j DROP
ist es dann komplett dicht (können keine Pakete/Daten mehr durch?)? Falls nicht, sagt mir bitte was noch fehlt.
Das ist nur zu Testzwecken also nicht wundern (ich weiss, dass ich das Interface auch schliessen kann, aber das will ich nicht).

auf dann
xadian
 
es fehlt noch IPTABLES -A FORWARD -i eth1 -j DROP
Außerdem darfst du dabei ein "iptables -flush" zuvor nicht vergessen (um eventuell bestehende alte Regeln zu löschen), da -A die Regel ganz unten an dein bestehendes Regelwerk dranhängt.
Möchtst du die alten Regeln nicht löschen (da sie z.B. den Datenverkehr auf eth0 regeln), empfiehlt sich die Verwendung von -I (großes i) anstelle von -A
Also z.B.
IPTABLES -I INPUT 1 -i eth1 -j DROP
Diese Zeile fügt die Regel an Position eins (also ganz oben) ein. Eventuelle später kommende ACCEPT-Regeln, die auch zutreffen würden, werden dann nicht mehr ausgewertet.
 
Ich teste momentan nur, deshalb sind sonst keine weiteren Regeln vorhanden ausser die fürs Interface. Forward is policy DROP also kommt da auch nix durch.
Was aber komisch is: Ich hab gerade mal mein eth0 Interface mit den obigen Regeln gesperrt und auch die VMware Interfaces vmnet1 und vmnet8 für das Bridged Network. Dann kam ich mit Linux logischerweise nicht mehr ins Internet, aber mit Windows XP in VMware immernoch. Das einzige noch offene Interface war das Local Loopback und daran kanns ja nich liegen. Wie kann denn das sein, dass Windows da immernoch ins Netzwerk kommt?!

xadian
 
Welche Interfaces hast du denn laut ifconfig sonst noch?
Ansonsten:
iptables -flush
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo 0 > /proc/sys/net/ipv4/ip_forward

Das ist sowieso generell die beste Methode: Alles verbieten und dann langsam nach und nach erlauben.
Geht dann noch was? Hoffentlich nicht :)

Wenn du wissen willst, an was genau es liegt:
Ganz unten an deine iptables-Regeln anfügen:
iptables -A INPUT -j LOG --log-prefix "IPTABLES INGOING "
iptables -A OUTPUT -j LOG --log-prefix "IPTABLES OUTGOING "
iptables -A FORWARD -j LOG --log-prefix "IPTABLES FORWARD "
Hier also kein Interface angeben.
Diese Regeln müssten eigentlich jedes Paket, auf das bisher keine Regel zutraf, mitprotokollieren (danach greift dann die Policy, da ja keine Regeln mehr danach kommen). Die Logs landen dann in /var/log/messages oder /var/log/secure.
ein "grep -R IPTABLES /var/log/*" sollte dir aufzeigen, in welche Datei da in deinem Fall geloggt wird. (Achtung: Log könnte je nach Surfvergnügen groß werden....)

In diesen Logs ist dann das ingoing und outgoing Interface vermerkt.
 
Hm also wie ich gerade gemerkt hab wird die Firewall von VMware sowieso komplett übergangen. Hab gerade mal alle policys auf DROP gestellt und sonst keine Regeln gehabt (sodass er also alles blockt was raus oder rein will) und trotzdem ging Internet in VMware (bzw. Win XP) noch. Irgendwie blöd, dass man sich da über die Firewall des Host Systems hinwegsetzen kann...
Fällt dazu jemandem noch was ein?
 
Habs mir noch nich genauer angeguckt aber das scheints ja zu sein. Allerdings kann ich statt die Bridge zu filtern dann ja auch gleich ne Firewall in Windows hinbaun. Oder ich sperr die Windows IP im Router (denn ich will für das Windows ja nur Zugriff aufs interne Netzwerk).
Werds mir aber trotzdem mal durchlesen - schaden kanns ja nich. Danke dir für die Hilfe!

xadian
 
Zurück
Oben