Linux-Firewall im Windows-Netzwerk

Post Reply
Message
Author
RoKo

Linux-Firewall im Windows-Netzwerk

#1 Post by RoKo »

Hallo Linuxianer,

Ich habe heute eine sehr interressante Erfahrung gemacht im Zusammenhang mit Linux-Firewall und Windows-Rechnern. Dazu erst mal eine kleine Zusammenfassung der Situation:

Ich wohne in einem Mehrfamilienhaus, in einer von 4 Studenten-WG's in diesem Haus. Diese WG's sind zum einen Teil durch ein BNC-Netzwerk und zum anderen durch ein 100MBit-Netzwerk miteinander verbunden. Dazu stehen in einer Wohnung zwei Switches (oder doch nur Hubs, bin mir jetzt nicht so sicher) von denen einer noch einen BNC-Anschluß hat. Also kurz geschrieben:
WG's-am-BNC-Strang<->BNC-Switch<->Switch<->PC's-der-WG's-mit-100MBit
Am zweiten Switch hängt noch ein ADSL-Software-Router. Lustigerweise läuft der mit Windows <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> (aber hier sind leider alle absolute Linux-Gegner). Ich bin der einzige der (fast nur noch) GNU/Linux benutzt (LFS-3.0pre3).

So, und jetzt zu dem, was mich stutzig gemacht hat.
Ich habe mich jetzt zum ersten mal mit iptables auseinandergesetzt. Mit Hilfe der Berichte auf dieser Seite, einem Bericht in der c't und dem Manual habe ich kurzerhand folgende Regeln erstellt und in ein Script gepackt:

---schnipp---
#! /bin/bash
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --sport 1024:65535 -j ACCEPT

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --sport 137:139 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --sport 137:139 -j ACCEPT

iptables -A INPUT -i eth0 -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --sport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --sport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --sport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --sport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --sport 443 -j ACCEPT

iptables -A INPUT -p ICMP --icmp-type 0 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 3 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 5 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 11 -j ACCEPT
---schnapp---

Wenn ich jetzt dieses Script starte, läuft INet, FTP, etc. auf meinem Rechner wunderbar, und ich kann auch die Freigaben der Windows-Rechner mounten/browsen (sogar schneller als wenn die Firewall nicht läuft).... Tja, das Problem ist nur, daß die Windows-Rechner (damit meine ich wirklich alle, im gesamten Netzwerk) jetzt nicht mehr Zugriff auf das lokale Netz haben und laufende Downloads anscheinend ins Datennirvana geschickt werden, da der Windows-Router? die lokalen PC's nicht mehr findet???
Ich muß noch dazu sagen, das ich mit am BNC-Strang hänge und das sogar Downloads im 100MBit-Netzwerk gekillt werden. Kann mir das mal einer erklären (Datenverkehr und Netzwerke sind für mich immer wieder aufs neue ein Rätsel)!?!
Was stimmt an meinm Script nicht und wie muß ich es abändern, damit soetwas nicht mehr passiert? (Na gut, eigentlich brauche ich auch gar keine Firewall, da ich ja eh nicht so wichtige Sachen auf meinem Rechner liegen habe, aber ich will ja was über Linux lernen;)

Wenn noch andere Informationen gebraucht werden, einfach bescheid sagen!

Gruß ('damm mich, ich sollte mal bei einem Namen bleiben und den möglichst nicht wieder vergessen:)
heute mal
RoKo
aka ?Irgendwas?

gewitter
Posts: 1354
Joined: 09. Apr 2001 9:03

Re: Linux-Firewall im Windows-Netzwerk

#2 Post by gewitter »

du kannst ja mal zur abwechslung deinen richtigen namen benutzen <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">

>iptables -P INPUT DROP
was passiert denn mit diesen paketen? die werden fallen gelassen wie heisse kartoffeln. probiers mal mit:
>iptables -P INPUT QUEUE/RETURN
sofern das hilft. offensichtlich stellen sich probleme im zusammenhang mit dem pakethandling ein. wenn pakete fallengelassen werden, können sie andere adressen auch nicht erreichen.

RoKo

Re: Linux-Firewall im Windows-Netzwerk

#3 Post by RoKo »

Moin,

...hast ja recht, eigenlich könnte ich auch meinen eigenen Namen nehmen, aber daß ich das nicht mache, ist noch eine paranoide Resterscheinung aus den Windows-Zeiten. Man hat da ja öfter mal von Leuten gehört oder gelesen, die auf einmal böse Post von einigen größeren Softwarefirmen bekommen haben... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Nu aber noch ma' zur Firewall.
QUEUE und RETURN, da habe ich, so wie's aussieht, wohl noch nicht die entsprechenden Kernel-Optionen/Module ausgewählt/übersetzt. Deswegen konnte ich's noch nicht testen. Mach ich nach den Prüfungen...


Aber noch 'ne andere Frage zum Verständnis. Mein (Arbeitsplatz)Rechner hängt, wie gesagt, an/in einem BNC-Strang. Alle Rechner an einem BNC-Strang untersuchen doch die Datenpakete, die vom Router/PC in diesen Strang geschickt werden, ob diese Pakete für ihn bestimmt sind, richtig? Wenn ja, dann wird "die Tür" (der Port) geöffnet und das Paket eingelassen, FALLS dies durch die REGELN einer evtl. vorhandenen FIREWALL erlaubt ist, oder wie?

Mit viel Phantasie könnte ich mir an dieser Stelle noch vorstellen, das durch die Regel INPUT-DROP, Datenpakete die nicht für meinen Rechner bestimmt sind, nach der Untersuchung durch meinen Rechner, einfach ins Datennirvana geschickt werden -nich für mich, ab in Müll- und somit alle Pakete die an meinem Rechner vorbeikommen aber nicht für mich sind, danach auch nicht mehr die anderen Rechner erreichen.

Leider weiß ich nicht wie TCP/IP, UDP und Firewall zusammenarbeiten, aber so wie im letzten Absatz beschrieben, denke ich eher nicht...

Das würde dann nämlich auch nicht erklären, warum Pakete die vom Router/PC über den Switch direkt zu einem PC an diesem Switch geschickt werden (das ist ja wohl der Vorteil von solchen Netzwerk-Knoten - direkte Full-Duplex-Verbindung), durch meine Firewall (einem Rechner am "dritten Zacken des Sterns") geblockt werden!? Diese Pakete sollten ja nie an meinem Rechner vorbeikommen.

Eigentlich war ich auch noch der Meinung, das alle INPUT-Regeln die ich der Firewall übergebe außschließlich meinen Rechner betreffen, d.h. von der Netzwerkkarte über Speicher/CPU zur HD. Und zwei Netzwerke verbinde ich ja auch nicht. Dann könnte ich's evtl. auch noch verstehen, warum das Netzwerk auf einmal tot ist, wenn ich meine Firewall, mit den in meinem ersten Beitrag aufgelisteten Regeln, starte.

Habe ich jetzt eine vollkommen verkehrte Vorstellung von Netzwerken und PC's???

Eine Korrektur meiner niedergeschriebenen (-getippten) Gedanken wär nicht schlecht...

Gruß
RoKo

gewitter
Posts: 1354
Joined: 09. Apr 2001 9:03

Re: Linux-Firewall im Windows-Netzwerk

#4 Post by gewitter »

>Mit viel Phantasie könnte ich mir an dieser Stelle noch vorstellen, das durch die Regel INPUT-DROP, Datenpakete die nicht für meinen Rechner bestimmt sind, nach der Untersuchung durch meinen Rechner, einfach ins Datennirvana geschickt werden -nich für mich, ab in Müll- und somit alle Pakete die an meinem Rechner vorbeikommen aber nicht für mich sind, danach auch nicht mehr die anderen Rechner erreichen.
JA

Eine Firewall befasst sich normalerweise auch mit Paketen, die nicht für sie alleine bestimmt sind. Du soltest deine Regeln dahingehend definieren, dass sie nur deine IP betreffen. Datenpakete, die fallengelassen wurden sind nicht mehr für andere Rechner verfügbar. Die Regeln erst zu überprüfen, wenn sie eventuelle Empfänger schon erreicht haben, kann nicht Ziel einer Firewall sein. Sinnvoll wäre es denn lokalen Verkehr komplett zu erlauben:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">

LOCAL_INTERFACE="eth0"
LOCALNET="192.168.0.0/24"
IPTABLES="/usr/sbin/iptables"

# Unlimited traffic within the local network.
# All internal machines have access to the fireall machine.

echo " Setting up rules for device eth0"
$IPTABLES -A INPUT -i $LOCAL_INTERFACE -s $LOCALNET -j ACCEPT
$IPTABLES -A OUTPUT -o $LOCAL_INTERFACE -d $LOCALNET -j ACCEPT

</font><hr></pre></blockquote>
Last edited by gewitter on 07. Jun 2002 6:32, edited 1 time in total.

RoKo

Re: Linux-Firewall im Windows-Netzwerk

#5 Post by RoKo »

Hallo,

erst mal Danke für deine Bemühungen. Ich hab allerdings den letzten Vorschlag noch nicht getestet, da ich im Moment zu wenig Zeit habe... (und auch keine Lust, auf Diskussionen mit den anderen WG'lern, denn immer wenn etwas an unserem Netzwerk nicht hinhaut, dann bin ich mit meiner Linux-Kiste schuld...).

Und da mir, nach deiner Antwort, gerade auch noch ein paar dutzend neue Fragen in den Sinn kommen, ich aber wie gesagt keine Zeit habe, werde ich sie vorläufig so akzeptieren ohne das du den Beweis antreten mußt. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> (vielleicht haben wir auch nur aneinander vorbeigeredet ... *ungläubigbiszumschluß*)
Ich beschäftige mich dann in den Semesterferien nochmal ausgiebig mit diesem Thema und frage evtl. später nochmal hier nach, falls ich etwas nicht verstehe...

Bis dahin viel Spaß
RoKo

trinity
Posts: 821
Joined: 12. Oct 2001 10:04

Re: Linux-Firewall im Windows-Netzwerk

#6 Post by trinity »

@RoKo
Es gibt einige, die meinen Dropen wäre die *absolut* falsche Methode für den Umgang mit TCP/IP-Paketen. Reject sollte das mittel der Wahl sein. Als Beispiel wie sinnfrei Droppen ist: GMX (und andere), die bekannten Probleme mit DSL und GMX sind darauf zurückzuführen.

>..., die auf einmal böse Post von einigen größeren Softwarefirmen bekommen haben
Die bekommen registrierte Microsoft User auch (nur so am Rande) *SCNR*
<blockquote><hr>
Aber noch 'ne andere Frage zum Verständnis. Mein (Arbeitsplatz)Rechner hängt, wie gesagt, an/in einem BNC-Strang. Alle Rechner an einem BNC-Strang untersuchen doch die Datenpakete, die vom Router/PC in diesen Strang geschickt werden, ob diese Pakete für ihn bestimmt sind, richtig? Wenn ja, dann wird "die Tür" (der Port) geöffnet und das Paket eingelassen, FALLS dies durch die REGELN einer evtl. vorhandenen FIREWALL erlaubt ist, oder wie?
<hr></blockquote>
Ja.

<blockquote><hr>
Mit viel Phantasie könnte ich mir an dieser Stelle noch vorstellen, das durch die Regel INPUT-DROP, Datenpakete die nicht für meinen Rechner bestimmt sind, nach der Untersuchung durch meinen Rechner, einfach ins Datennirvana geschickt werden -nich für mich, ab in Müll- und somit alle Pakete die an meinem Rechner vorbeikommen aber nicht für mich sind, danach auch nicht mehr die anderen Rechner erreichen.
<hr></blockquote>
Das vermute ich auch.
<blockquote><hr>
Das würde dann nämlich auch nicht erklären, warum Pakete die vom Router/PC über den Switch direkt zu einem PC an diesem Switch geschickt werden (das ist ja wohl der Vorteil von solchen Netzwerk-Knoten - direkte Full-Duplex-Verbindung), durch meine Firewall (einem Rechner am "dritten Zacken des Sterns") geblockt werden!? Diese Pakete sollten ja nie an meinem Rechner vorbeikommen.
<hr></blockquote>
Du hast selbst gesagt, dass du nciht weisst ob ihr Switsches oder Hubs verwendet. Zumindest ist es ein normales verhalten, für alle Rechner am BNC-Hub. Dass Kannst du leicht testen: ziehe einen BNC-Strng von deinem Computer hab und beobachte wie das Netzwerk zusammenbricht.

@Thomas
du meintest REJECT, nicht QUEUE/RETURN, oder sehe ich das falsch?
<blockquote><hr>
Eine Firewall befasst sich normalerweise auch mit Paketen, die nicht für sie alleine bestimmt sind.
<hr></blockquote>
Nicht zwangsweise.
<blockquote><hr>
Du soltest deine Regeln dahingehend definieren, dass sie nur deine IP betreffen. Datenpakete, die fallengelassen wurden sind nicht mehr für andere Rechner verfügbar. Die Regeln erst zu überprüfen, wenn sie eventuelle Empfänger schon erreicht haben, kann nicht Ziel einer Firewall sein. Sinnvoll wäre es denn lokalen Verkehr komplett zu erlauben:
<hr></blockquote>
Das stimmt so nicht. Die INPUT und OUTPUT Regeln betreffen _ausschliesslich_ Pakete, die für den eigenen PC bestimmt sind. OB es sinnvol ist, den kompletten lokalen Verkehr zu erlauben/verbieten, hängt vom verfolgten Konzept ab.
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)

Post Reply