OpenWRT: Routing in bestimmtes IP-Subnetz blockieren?
Guten Abend,
mein OpenWRT-Router (TL-WR841ND) hängt zum einen mit einer eigenen IP im Heimnetz, sodass er nur eine Bridge darstellt.
Allerdings habe ich auch ein 2. Subnet (10.0.2.0/28), welches virtuell erzeugt wird. Dieses routet dann durch das Heimnetz (10.0.1.0/26).
Nun handelt es sich bei dem 2. Netz um ein Netz, welches zwar ins Internet soll, aber halt nicht auf das 1. Netz zugreifen soll. Nun routet es aber auch dadurch um andere Dinge aufzurufen. Daher würde ich gerne eine Firewall-Regel mit iptables anlegen, welche zwar ein Routing durch das Netz erlaubt (um auf das Internet zuzugreifen), aber kein direktes Routing in das Netz 10.0.1.0/26. Wenn ich nun aus dem 2. Netz ins Internet will routet er durch 10.0.2.1 (OpenWRT-Router, VLAN2) und dann über meinen DSL-Router (10.0.1.1). Eine Bereichssperre von 10.0.1.2 - 10.0.1.62 bringt mir nichts, da ich auch das Routerinterface selbst sperren möchte.
2 Antworten
Daher würde ich gerne eine Firewall-Regel mit iptables anlegen, welche
zwar ein Routing durch das Netz erlaubt (um auf das Internet
zuzugreifen), aber kein direktes Routing in das Netz 10.0.1.0/26.
Und warum machst du das nicht einfach?
OpenWRT bringt meine ich sogar ein grafisches iptables Frontend mit.
Src: 10.0.2.0/28
Dest: 10.0.1.0/26
Service/Port: any
Action: Drop
Obiges dient der Veranschaulichung, den genauen Wortlaut der OpenWRT GUI habe ich nicht parat, aber das sollte sich recht einfach bauen lassen.
So, habe einfach noch ein wenig mit dem grafischen Panel gespielt und habe es nun korrekt hinbekommen. Keine Ahnung, ähnlich habe ich es schon einmal versucht, Resultat war bei mir etwa kein Internetzugang oder Zugriff auf das Netz 1.
Ich habe es nun so eingerichtet, dass der Traffic, welcher aus der Firewall-Zone (Gast) kommt und nach 10.0.1.0/26 geht gedropt wird. Wenn ich den Quellbereich 10.0.2.0/28 direkt angebe funktioniert die Sperre nicht. Selbes Spiel, wenn ich als Source und Destination beide Zonen (Gast und Home) setze, welche auf die beiden Interfaces eingerichtet sind...
Whatever. Danke für die Antwort, dann war ich mit meinem Ansatz ja schonmal nicht ganz auf dem falschen Weg..
Ich verstehe den Halb-Satz "da ich auch das Routerinterface selbst sperren möchte" nicht.
Wenn ich deine Idee halbwegs verstanden habe möchtest du, dass der wrt für das 10.0.2.0/28 das defaultgateway ist und Verkehr der für 0/0 bestimmt ist an 10.0.1.1 (sein defautgateway leitet), 10.0.1.1 soll diesen Verkehr natten. Aus Netz 2 soll keiner (auch aus Zufall) auf 10.0.1.0/26 zugreifen können?
Ideen:
in Netz 1 keine Route nach 10.0.2.0/28 setzen. Dann brauchst du auch keine Firewallregel.
auf dem wrt mit
# iptables -t nat -A POSTROUTING -o eth0 -d 10.0.1.1 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
Nat und Forwarding einschalten. Eth0 soll mal das Interface zum Netz 1 sein, das muss angepasst werden
Wenn du lustig bist kannst du ja noch alles von netz eins zu netz zwei sperren, sollte aber nicht nötig sein.
# iptables -A FORWARD -s 10.0.1.1 -d 10.0.2.0/28 -j ACCEPT
# iptables -A FORWARD -s 10.0.1.0 -d 10.0.2.0/28 -j DROP
Den Verkehr zwischen Dsl-Router und wrt musst du schon durchlassen, sonst geht es mit dem Internet nicht.
Netzwerk funktioniert idR bidirektional. Es muss in beide Richtungen funktionieren. Wenn kein Rechner aus Netz 1 eine Route in Netz 2 hat, kann auch kein Rechner aus Netz 2 Geräte in Netz 1 aufrufen. D.h. aufrufen können sie schon, aber da sie nie eine Antwort erhalten geben sie nach dem Timeout auf.
Wenn du allen Verkehr von netz 2 nattest, können die natürlich Geräte in Netz 1 erreichen, also lass das. Die Formulierung meiner nat-regel ist da etwas anders, vielleicht funktioniert es genau so. Wenn nicht musst du die Regel 3 und 4 noch etwas umstellen.
Den Aufbau hatte ich mir übrigens so vorgstellt wie in deiner Skizze.
http://www.directupload.net/file/d/4585/jkzm49n6_png.htm
Nein, das Problem ist nicht, dass ich das Netz 2 aus Netz 1 aufrufen kann, das ist ein NAT.
Problem ist, dass das Netz 2 hat hinter dem Netz 1 steht und über die WAN-Adresse des APs geht und dann erst über den Router ins Internet hoppt. Dadurch kann ich halt auch alle Gerät im Netz 1 aufrufen, was ich gerne verhindern würde. Trotzdem soll der Verkehr halt über den Router in Netz 1 laufen, da ich sonst keine Internetverbindung habe. Die verwendete FRITZ!Box hat leider kein VLAN und ein 2. Kabel für den Gast-LAN-Port geht leider auch nicht.