Muffin72
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Bisher hat ein zweiter Router mein Subnetze getrennt, nun soll das mein Homeserver übernehmen, da flexibler. Die Einrichtung der inferfaces ging analog zum Router, nur sind mir noch 2 Sachen unklar, zumindest wenn ich die Seite im Wiki lese: https://wiki.ubuntuusers.de/Router/ Hier heißt es zu iptables:
Filterregeln unter Angabe der konfigurierten Schnittstelle und der benötigten Netzmaske: sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.3.0/24 -m conntrack --ctstate NEW -j ACCEPT Mit -i wird die Eingangs-Schnittstelle festgelegt, wenn mehrere interne Netzwerke so auf das Internet zugreifen sollen, kann diese Option weggelassen werden. -s gibt die Quell-IP (inkl. Netzwerkmaske) an. Möchte man z.B. alle privaten Netzwerke erlauben, so muss hier 192.168.0.0/16 eingetragen werden.
Im Homeserver sind 3 NIC, WAN geht in eth0, eth 1 ist Subnetz 1 und eth2 ist Subnetz 2. Statische Route ist im DSL-Router eingetragen, IP-Forwarding ist aktiv, iptables sind keine definiert. Trotzdem komme ich von Subnetz 1 ins Internet. Mir fehlt das Verständnis, warum hier keine iptables benötigt werden. Wird deren Aufgabe schon von der statischen Route im DSL-Router verwendet? Die zweite Verständnisfrage hätte ich zum masquerade, hier heißt es:
Zudem wird über sog. Masquerading das lokale Netzwerk von der Außenwelt, dem Internet, abgeschirmt (maskiert).
Wenn ich es noch richtig in Erinnerung habe, wird bei Masquerading die IP ersetzt. Ist dies hier überhaupt nötig? Schließlich hat der Homeserver ja keinen direkten Zugang zum WAN. Oder kann mir da jemand mal so erklären, dass ich das verstehe, denn ich stehe hier komplett auf dem Schlauch 😉
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Muffin72 schrieb: Im Homeserver sind 3 NIC, WAN geht in eth0, eth 1 ist Subnetz 1 und eth2 ist Subnetz 2. Statische Route ist im DSL-Router eingetragen, IP-Forwarding ist aktiv, iptables sind keine definiert. Trotzdem komme ich von Subnetz 1 ins Internet. Mir fehlt das Verständnis, warum hier keine iptables benötigt werden. Wird deren Aufgabe schon von der statischen Route im DSL-Router verwendet?
Die iptables-Regeln brauchst du nur, wenn deine Firewall per default alles ablehnt. Unter Ubuntu ist die Firewall aber faktisch nicht aktiv, denn die Policies stehen auf "ACCEPT". Selbiges kannst du dir anzeigen lassen, wenn du folgendes eingibst:
iptables -nvL
Dort siehst du, dass alle 3 Default-Chains (INPUT, OUTPUT, FORWARD) alles akzeptieren.
Die zweite Verständnisfrage hätte ich zum masquerade, hier heißt es: Zudem wird über sog. Masquerading das lokale Netzwerk von der Außenwelt, dem Internet, abgeschirmt (maskiert).
Wenn ich es noch richtig in Erinnerung habe, wird bei Masquerading die IP ersetzt. Ist dies hier überhaupt nötig?
Das kommt drauf an.
Schließlich hat der Homeserver ja keinen direkten Zugang zum WAN.
Hat er nicht? Gerade hast du noch gesagt, dass WAN an eth0 anliegt. Was genau liegt denn an eth0 an? Wenn dort direkt das Internet anliegt, dann müsstest du ausgehenden Traffic auf dem Port masqueraden, da im Internet private IPs, wie du sie in deinen Subnetzen benutzt, nicht geroutet werden können.
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Das war vielleicht unglücklich formuliert, ich meinte dass der Router nicht direkt am Netz hängt, sondern ein DSL-Router dazwischen hängt, somit dort schon NAT vorhanden.Ich meine, übernimmt das, was masquerading macht, nicht der Router mittels NAT?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Muffin72 schrieb: Das war vielleicht unglücklich formuliert, ich meinte dass der Router nicht direkt am Netz hängt, sondern ein DSL-Router dazwischen hängt, somit dort schon NAT vorhanden.
Ok. Dann ist technisch an eth0 auch nur ein Subnetz, und zwar das des DSL-Routers.
Ich meine, übernimmt das, was masquerading macht, nicht der Router mittels NAT?
Ja, in Richtung Internet maskiert der DSL-Router die internen Adressen. In deinem Fall ist also Masquerading überflüssig. Es könnte allerdings nötig werden, wenn ein Client direkt am DSL-Router hängt, diesen auch als Gateway verwendet, aber auf ein Subnetz hinter dem Homeserver zugreifen muss.
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Wunderbar, schon wieder etwas gelernt, danke. Es wird nicht so sein, dass ein Client aus dem Subnetz hinter dem Router auf ein anderes Subnetz zugreifen muss, allerdings anders rum. LAN 1 auf eth0 soll auf kein anderes LAN zugreifen können, LAN 3 auf eth2 ebenso, nur LAN 2 auf eth1 soll Zugriff auf die anderen beiden Subnetze haben. Ich weiß noch nicht genau wie ich das mache, aber erst mal ging es mir um das Verständnis zum masquerading.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Muffin72 schrieb: Es wird nicht so sein, dass ein Client aus dem Subnetz hinter dem Router auf ein anderes Subnetz zugreifen muss, allerdings anders rum. LAN 1 auf eth0 soll auf kein anderes LAN zugreifen können, LAN 3 auf eth2 ebenso, nur LAN 2 auf eth1 soll Zugriff auf die anderen beiden Subnetze haben. Ich weiß noch nicht genau wie ich das mache, aber erst mal ging es mir um das Verständnis zum masquerading.
Wenn der Homeserver auch das Gateway für die Subnetze an eth1 und eth2 ist, dann müsste der Zugriff bereits funktionieren, sofern IP-Forwarding aktiviert ist. Wenn du bestimmte Zugriffe verbieten willst, kannst du das in der Firewall auf dem Homeserver machen.
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Ja, eth0 dient als Gateway. Aber wenn ich Dich gerade dranhabe, wie wäre im meinem Fall der korrekte Einsatz der iptables? iptables -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
iptables -A OUTPUT -o eth0 -p tcp --dport 80 --sport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 443 --sport 1024:65535 -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 80 --sport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth1 -p tcp --dport 443 --sport 1024:65535 -j ACCEPT iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --dport 80 --sport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth2 -p tcp --dport 443 --sport 1024:65535 -j ACCEPT iptables -A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
HTTP(S): jeder darf alles
SSH: eth0 darf nur raus, eth 1 darf alles, eth 2 darf nur rein. Würde das so passen?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Muffin72 schrieb: Aber wenn ich Dich gerade dranhabe, wie wäre im meinem Fall der korrekte Einsatz der iptables?
* HTTP(S): jeder darf alles
* SSH: eth0 darf nur raus, eth 1 darf alles, eth 2 darf nur rein. Würde das so passen?
Also grob drübergeschaut würde ich sagen, das passt. Du musst natürlich beachten, dass jetzt alle Subnetze vollständig getrennt sind, da die Policy für die FORWARD-Chain auf DROP steht, und keine Regeln existieren, die irgendwas erlauben. Das müsstest du also noch nach deinen Vorstellungen anpassen. Ansonsten sind die Regeln für das System selbst IMHO ok.
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Ja, so ist das vorgesehen. Ein LAN kommt hinter eth1 und soll die anderen administrieren (zugleich normales HausLAN), LAN 2 soll ein reines Subnet für die Kinder sein, mit Zugriff auf das Internet hinter einem Proxy im Server.Im LAN 3, das zwischen eth0 und dem DSL-Router ist, kommen nur Multimedia wie TV, Konsole und Streaming, auch hier ist nichts in andere LAN erwünscht.
Würde ich jetzt hier noch masquerading brauchen?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Muffin72 schrieb: Würde ich jetzt hier noch masquerading brauchen?
Nein.
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Super. Danke für Deine tolle und geduldige Hilfe ☺
|
Muffin72
(Themenstarter)
Anmeldungsdatum: 18. Juni 2012
Beiträge: 190
|
Es haben sich noch ein paar kleinere Fragen ergeben: angenommen ich will die Kommunikation zwischen Ubuntuserver und LAN1 komplett öffnen, würde das hier passen?
iptables -A FORWARD -i eth1 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
oder mache ich dies mit input/output?
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
Ein weiterer Punkt, der mir noch unklar ist: ich weiß dass ich für loopback sowohl input als auch output auf accept setzen muss, aber gilt dies auch für forward?
|