Frage zu Subnetting mit OpenWRT

bieneneber

Ensign
Registriert
Feb. 2007
Beiträge
138
Hallo zusammen,

ich habe einen TP-Link TL-WDR4900 v1 mit OpenWRT ChaosCalmer 15.05 als Router laufen.
Der Router stellt über WAN die Internetverbindung her (PPPoE). Dies funktioniert soweit auch gut.

Derzeit läuft das Netzwerk (Lan und Wlan) unter 192.168.0.0/24 - also mit Clients von 192.168.0.1 bis 192.168.0.254. Das Netzwerk ist derzeit wie folgt aufgebaut:
Code:
OpenWRT Router
| | | | |
| | | | +- WLAN -+- Internetradio*
| | | |          +- ...
| | | +- Drucker
| | +- NAS
| +- Switch A -+- PC 1
|              +- ...
+- Switch B -+- PC 3
             +- ...
             +- BD Player*
             +- AV Receiver*
Die Switche sind unmanaged - also auch nicht VLAN-fähig.

Ich möchte den Komponenten Internetradio, BD Player und AV Receiver den Zugriff auf das interne Netz verweigern.

Dabei dachte ich, das ich dies über Subnetting lösen könnte indem ich zwei Subnetze erstellen würde:
- Subnetz 1 (LAN_EX): 192.168.0.0/25 mit der Range 192.168.0.1 - 192.168.0.126
- Subnetz 2 (LAN_IN): 192.168.0.128/25 mit der Range 192.168.0.129 - 192.168.0.254
Code:
OpenWRT Router
| | | | |
| | | | +- WLAN -+- Internetradio* (LAN_EX)
| | | |          +- ... (LAN_IN)
| | | +- Drucker
| | +- NAS
| +- Switch A -+- PC 1 (LAN_IN)
|              +- ... (LAN_IN)
+- Switch B -+- PC 3 (LAN_IN)
             +- ... (LAN_IN)
             +- BD Player* (LAN_EX)
             +- AV Receiver* (LAN_EX)
Im Subnetz LAN_EX würde ich dann die drei Komponenten verfrachten (jeweils mit fester DHCP IP Zuweisung bzw. in den Komponenten die IPs manuell eintragen) und im Subnetz LAN_IN alle anderen Komponenten.

Mein Ziel ist es, dass aus Subnetz LAN_EX nicht in Subnetz LAN_IN geroutet werden kann (kein Zugriff auf Drucker, NAS etc.) aber dennoch Internetzugriff besteht (= Routing an Interface WAN). Innerhalb des Subnetzes LAN_IN soll Zugrif auf NAS, Drucker usw bestehen bleiben.

Wünschenswert ist noch, wenn man aus Subnetz LAN_IN in Subnetz LAN_EX routen könnte für Administrative Zwecke.

Ich habe schon versucht, ein neues Interface LAN_EX in OpenWRT mit entsprechendem Subnetz zu erstellen und das bestehende LAN_IN von 192.168.0.0/24 auf 192.168.0.128/25 zu ändern. Dies hat auch soweit geklappt. Allerdings habe ich wohl irgendwo vergessen, die Firewall-Regeln entsprechend anzupassen, da danach der Router noch das Gateway erreichbar war. -.- Zum Glück gibt es Backups der Konfiguration, die man wieder einspielen kann nachdem man den Router in den Failsafe versetzt hat. ;)

Meine Google-Suche hat mich schon auf einige Seiten geführt, die mir aber nicht wirklich geholfen haben (zB https://wiki.openwrt.org/doc/recipes/routedclient). :/

Meine Fragen:
1. ist dies überhaupt so möglich, wie ich mir das Vorstelle?
2. gibt es irgendwo ein Howto, wie man die Subnetze entsprechend in OpenWRT (inklusive Firewall Regeln und Gateway-Konfiguration) einstellt?
3. (Wenn Antwort auf 2 = nein, dann:) Wisst ihr, was ich bei der Konfiguration noch alles beachten muss und wie ich mein Vorhaben verwirklichen kann?
4. Was benötigt ihr noch an Informationen?

Physikalische Änderungen am Netzwerk (zweites Kabel, managed Switch, etc.) sind keine Option.

Vielen Dank im Voraus.
 
Meine Fragen:
1. ist dies überhaupt so möglich, wie ich mir das Vorstelle?
2. gibt es irgendwo ein Howto, wie man die Subnetze entsprechend in OpenWRT (inklusive Firewall Regeln und Gateway-Konfiguration) einstellt?
3. (Wenn Antwort auf 2 = nein, dann:) Wisst ihr, was ich bei der Konfiguration noch alles beachten muss und wie ich mein Vorhaben verwirklichen kann?
4. Was benötigt ihr noch an Informationen?
Moin,

zu deinen Fragen:
1) Es ist teilweise machbar. Wenn du den Zugriff vom Netz A nach B sperrst, dann kannst du auch nicht von B nach A zugreifen. Das geht so nicht.
2) Wenn google dir nicht helfen kann sieht es schlecht aus...
3) Siehe meine Auführung weiter unten
4) Arbeitest du mit der Weboberfläche oder auf der Konsole des Routers?

Meine Überlegungen zu deinem Vorhaben:
Warum versuchst du Subnetze im vorhandenen Netz zu bilden? Mach doch das LAN_IN 192.168.0.0/24 und das LAN_EX 192.168.100.0/24 . So sind Regeln für Firewall/Filter einfacher auseinader zu halten.

Zur Trennung:
Im Router ein virtuelles Interface erstellen, dass eine IP aus dem LAN_EX bereich hat. Dieses Interface ist dann das Gateway in Richtung Internet.
In der Firewall kannst du dann entsprechend die Regeln definieren und den Zugriff nach LAN_IN sperren.

Wenn du nun in das LAN_EX musst, kannst du dir eine IP fest aus dem Bereich zuweisen. Schon sollte der Zurgriff klappen.

Zusammengefasst:
-2 Netze bilden:
--LAN_IN: 192.168.0.0/24
--LAN_EX: 192.168.100.0/24 oder ähnlich
-Virtuelles Interface im OpenWRT erstellen mit fester IP aus LAN_EX. Dies ist dann das Gateway
--BSP: 192.168.100.1
--Ansprechbar aus LAN und WLAN
-TESTEN
Wenn das Testen erfolgreich war, weitermachen:
-Firewallregeln erstellen (je nach Firewallmodus)
--LAN_EX nach Internet erlauben
--Internet nach LAN_EX erlauben
--LAN_IN nach LAN_EX verbieten
--LAN_EX nach LAN_IN verbieten
-TESTEN

Ich hoffe das hilft fürs Erste. Ich such mal ob ich Tutorials finde, aber wenn du schon erfolglos gesucht hast....

gruß
 
Hallo error,

vielen Dank für deine ausführliche Rückmeldung! :)

Gut, das dachte ich mir schon, dass ich das Routing zwischen den Netzen nicht als Einbahnstraße definieren kann (irgendwie müssen auch die Bestätigungen zurückgeschickt werden).

Da ich auch ssh Zugriff habe ist mir beides nicht fremd: auf der Konsole kann ich mit vi arbeiten, natürlich ist LuCI da etwas einfacher.

Kurioserweise bin ich gar nicht auf die Idee gekommen, die Netze derart strikt zu trennen. Irgendwie hatte ich mich auf 192.168.0.1|128/25 versteift gehabt. -.- Danke für das Aufzeigen der Alternative.
Ich werde dies die Tage mal versuchen und dann meine Erfahrungen hier berichten. ;)

Das mit dem Suchen ist so eine Sache. man muss auch suchen können um etwas zu finden. Vielleicht habe ich nicht nach dem Richtigen gesucht... ;)

gruß
Ergänzung ()

Ich glaube, ich bin zu unfähig dafür.

Ich habe jetzt ein neues Interface lan_ex als bridge hinzugefügt:
/etc/config/network:
Code:
[...]
config interface 'lan_in'
        option ifname 'eth0.1'
        option force_link '1'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.0.1'
        option macaddr 'xxxxxxxx'
[...]
config interface 'lan_ex'      
        option proto 'static'   
        option ipaddr '192.168.100.1' 
        option netmask '255.255.255.0'
        option type 'bridge'                 
        option macaddr 'xxxxxxxxxxxx'
        option _orig_ifname 'eth0.1'         
        option _orig_bridge 'true'    
        option ifname 'eth0.1'
[...]
Auch in der Firewall habe ich eine neue Zone lan_ex erstellt und dann den forward aus lan_ex nach wan konfiguriert:
/etc/config/firewall
Code:
[...]
config zone                                 
        option input 'ACCEPT'               
        option output 'ACCEPT'                  
        option name 'lan_ex'                 
        option network 'lan_ex'                 
        option family 'ipv4'           
        option forward 'ACCEPT' 

config forwarding                               
        option dest 'wan'                    
        option src 'lan_ex'
[...]
Allerdings bekomme ich die beiden DHCPs nicht sauber zum Laufen. Wenn ich statische Adressen vergebe (sowohl im DHCP Server als auch in den Kompenenten), haben die Komponenten keinen Zugriff aufs Internet. Ich weiss auch nicht, was ich im 100.1er Netz an Gateway und DNS vergeben soll (im 0.1er netz ist es jeweils der router unter 192.168.0.1 was auch funktioniert).

Im WLAN bekommen alle Geräte dann auch eine IP des 100.1er netzes.

Was mache ich falsch? Habe ich etwas übersehen - und wenn ja, was?

Vielen Dank für die Hilfe nochmals.
 
Keine Panik, Rom wurde auch nicht an einem Tag erbaut ;)

Okay, ich habe noch ein paar Fragen an dich:
- Vergibst du in beiden Netzen die IP-Adressen via DHCP?
- Kannst du im 100-Netz den Router/andere Geräte anpingen?

Zum weiteren Vorgehen schlage ich folgendes vor:

Konfiguriere zuerst mal deine LAN_EX-Zone ohne DHCP. Die IPs bitte manuell testweise vergeben.
Dann teste ob du den Router erreichst. Die Router-IP vom virtuellen Interface ist Gateway und DNS. Wie im anderen Netz.
Kannst du bitte schauen, ob du die richtigen Ports für dein Interface ausgewählt hast? Oder hast du die Konfig einfach vom vorgegebenen kopiert?

Wenn das alles klappt, können wir nach der Firewall und DHCP schauen.

Ich hab noch etwas allgemeine Infos gefunden:
https://wiki.openwrt.org/doc/uci/network/switch
https://wiki.openwrt.org/toh/tp-link/tl-wdr4900


EDIT von 14.20 Uhr:

Code:
option ifname 'eth0.1'
gehst du dabei nicht explizit auf LAN-Port 1 ?
Kann sein, dass ich mich da auch täusche. Das unterscheidet sich teilweise von Router zu Router.

EDIT von 15.30 Uhr
Ich bin grade dabei es mit einer VM nachzubauen....
Ich arbeite mit der grafischen Oberflache.
 
Zuletzt bearbeitet:
Hm.. So ganz verstehe ich das Setup noch nicht... Du versuchst auf ein und derselben Infrastruktur (Router + Switches + Kabel) mehrere Subnetze zu isolieren bzw. untereinander zu routen. Das funktioniert so nicht. Wenn der Router die Ports untereinander trennen kann, also separate Interfaces hat, dann kannst du an jedem davon einen eigenen DHCP nebst Subnetz laufen lassen und dann intern dazwischen routen. Klemmst du an einen Port einen Switch, dann sind alle Geräte daran auch in diesem einen Subnetz. An den anderen Ports ist es dann genauso, bis hin zum WLAN. Lässt sich der interne Switch des Routers nicht splitten, dann ist und bleibt er auch nur ein einzelnes Interface mit einem DHCP und einfach einem intern gelagerten Switch.

So wie ich deine Netzwerkskizze verstehe, hast du aber zB an Port 1 ein Kabel, das in einen Switch geht und dort sollen Mitglieder von Subnetz#1 und Subnetz#2 hängen. Das wird aber so nicht funktionieren. Entweder du ziehst ein zweites Kabel nebst separatem Switch vom zweiten Port in den Raum und klemmst die Geräte an Switch A bzw. Switch B, je nach dem welchem Subnetz sie angehören sollen, oder aber du verwendest VLANs.
Mit VLANs kannst du innerhalb einer gemeinsam genutzten Infrastruktur (Kabel, Switches, etc) gewissermaßen parallele, virtuelle LANs erstellen. Dazu brauchst du VLAN-fähige Switches. Dort stellst du dann ein, dass zB Port 1 der Uplink zum Router ist (VLAN1+2), während Port 2-4 zu VLAN1 und Ports 5-8 zu VLAN2 gehören - jedes VLAN bekommt im Router einen eigenen DHCP.


Wenn du den DHCP weglässt und das Subnetz#2 rein mit festen IPs betreibst, könnte es in abgespeckter Form funktionieren. Das eine, geswitchte Interface des Routers bekommt einfach 2 IPs und mit iptables baust du Regeln für den internen Verkehr untereinander. Das ist allerdings nur eine halbgare Lösung, da man durch simples Ändern der IP am Endgerät ins andere Subnetz kommt und die Restriktionen umgehen kann.
Durch reines Subnetting lässt sich keine Firewall imitieren.
 
Zuletzt bearbeitet:
So, ein kleines Update von meiner Seite:

Ich habe das Setup über Luci eingerichtet. Wenn du ein Interface mit der IP 192.168.100.1 einrichtest und es den LAN-Ports zuweist, dann klappt auch die Kommunikation mit dem Router.
2x DHCP geht nur, wenn du die Geräte auf Ports auftrennst und es keine Mischung gibt.

@Raijin:
Danke für deinen Denkanstoß. Ich hab vor lauter Wald die Bäume nicht mehr gesehen.
Leider kommt ein VLAN nicht in Frage, da er keine neue Hardware beschaffen will. :-/
Er/Sie will im Netzwerk das Internetradio, etc. getrennt von den anderen Geräten haben. Das Internetraio soll ausschließlich Zugriff auf das Internet haben und sonst nichts. Die anderen Geräte sollen untereinander kommunizieren können.

Die einzige Möglichkeit zu trennen ist die IP-Adressen aufzusplitten und das Routing untereinander zu verbieten.
Da er die IP-Adressen für das Internetradio, etc manuell vergeben will kann das Setup funktionieren.
 
error schrieb:
Die einzige Möglichkeit zu trennen ist die IP-Adressen aufzusplitten und das Routing untereinander zu verbieten.
Da er die IP-Adressen für das Internetradio, etc manuell vergeben will kann das Setup funktionieren.
Und genau da liegt der Knackpunkt. Wozu das ganze? Möchte man eine Trennung aufgrund von Sicherheitsbedenken einbauen damit potentielle Sicherheitslücken im Internetradio nicht das ganze Netzwerk bedrohen? Dann muss man physikalisch bzw. mit VLANs trennen. Durch reines Subnetting baut man mehr oder weniger nur Papierwände ein. Solange ein Gerät nicht kompromittiert ist - also in der vom Admin bestimmten Konfiguration ohne Schadsoftware läuft - hat es keinen Zugriff ins parallele Subnetz, das ist richtig. Beim Sicherheitsgedanken muss man aber prinzipiell von dem Fall ausgehen, dass das Gerät kompromittiert ist. Findet die Trennung ausschließlich anhand der IPs statt, kann der Eindringling lediglich die IP ins andere Subnetz setzen und er hat in vollem Umfang Zugriff auf das vermeintlich isolierte Netzwerk. Das ist vergleichbar mit dem Sicherheitseffekt eines MAC-Filters im WLAN, binnen weniger Sekunden ausgehebelt...

Wir müssen jetzt erstmal klarstellen wozu das ganze überhaupt dienen soll. Spielerei? Sicherheit? Ersteres ist kein Problem, dabei kann man sich selbstverständlich austoben und mit DHCP, Subnetzen und Firewallregeln austoben und dazulernen. Für letzteres kommt man aber so oder so nicht um zusätzliche Hardware drumherum. Entweder man ersetzt die Switches durch VLAN-Switches oder aber man baut parallel zwei physische Netzwerke auf, indem man zB am Router Port 1 für Subnetz#1 nimmt und Port 2 für Subnetz#2. Von beiden geht dann ein Kabel in den Raum und am Ende hängt jeweils ein Switch - für PCs und Co in Subnetz#1 und für WLAN-Radio, etc in Subnetz#2. Am sinnvollsten wäre dabei sicherlich die Variante mit VLAN-Switches. In beiden Szenarien werden aber neue bzw. zusätzliche Switches benötigt. Ohne zusätzliche Hardware hätte man eine rein logische Trennung, die allerdings meines Erachtens keinen wirklichen Nutzen bieten würde.
 
Vielen dank euch zwei für die Antworten.

@Raijin: du hast recht mit deiner Interpretation.
@error: wow, ne eigene VM aufgesetzt um das nachzustellen!? Wahnsinnsaufwand. Danke!

Ja, es ist eine Art Pseudo-Sicherheit. Ich möchte einfach verhindern, dass die drei Komponenten Zugriff auf die restlichen Netzwerkteilnehmer haben (das Internetradio und der BR Player wecken das NAS unnötig auf, wenn eingeschaltet werden). Ich dachte, ich könnte dies über Subnetze und DHCP Zuweisungen lösen - allerdings ist es mir auch klar, dass dies nur eine gefühlte Sicherheit ist. Wenn die Netzwerkgeräte kompromittiert sein sollten und Zugriff von innen aufs Netzwerk haben sollten, habe ich ganz andere Probleme. ;)

Wie gesagt, managed Switche und mehr Netzwerkkabel sind keine Option (WAF ist nicht zu unterschätzen). Zumal ich dadurch auch das via WLAN angebundene Internetradio nicht auf VLAN bekommen. Es sei denn, ich ersetze den zweiten Switch dann durch einen weiteren (OpenWRT) Router als managed AP.

Aber vielen Dank nochmals für eure Unterstützung. So weiss ich nun mit Sicherheit, dass es höchstwahrscheinlich nicht so funktioniert wie ich es mir vorstelle.

Schönen Abend noch.
gruß
 
Wie gesagt, Sicherheit bietet das nicht, weder gefühlt noch sonstwie. Den Gedanken an das unnötige Aufwecken des NAS kann ich aber nachvollziehen.

Grundsätzlich ist es durchaus denkbar, zwei Subnetze parallel zu betreiben. Wirklich getrennt sind sie allerdings nicht, da sie dasselbe Medium (Kabel) teilen und nicht durch VLANs gekapselt sind.


Versuch es mal so:

  • Dem Router am LAN zwei IPs geben, zB die 192.168.0.1 und die 192.168.100.1
  • Firewall wie folgt einstellen:
    • Alles was bei WAN rausgeht -> masquerade / NAT
    • Source=192.168.100.0/24 + Destination=192.168.0.0/24 = deny/drop
    • Source=192.168.0.0/24 + Destination=192.168.100.0/24 = masquerade/NAT
  • Einen DHCP für das Haupt-LAN einrichten
  • An den Clients, die Zugriff auf das Haupt-LAN haben sollen, automatische oder entsprechende feste IP einstellen (zB 192.168.0.123, GW/DNS 192.168.0.1)
  • An den Clients, die keinen Zugriff auf das Haupt-LAN haben sollen, feste IP einstellen (zB 192.168.100.234. GW/DNS 192.168.100.1)

Wenn ich nix vergessen habe, müsste damit sämtliche Kommunikation von 192.168.100.x nach 192.168.0.x verboten sein, aber andersherum ginge es und der Rückweg wäre durch NAT ermöglicht (zB das Internetradio würde dann ja an 192.168.100.1 antworten und NICHT an 192.168.0.x, was die Firewall ja blocken würde). Damit hast du dann zumindest eine Papierwand zwischen Internetradio und NAS gezogen. Vor etwaigen Paketen, die mit anderen Protokollen als IPv4 übertragen werden, bleibt diese Firewall allerdings wirkungslos.
Wie genau du die Firewallregeln in die Config einbaust, kann ich dir aus dem Stegreif so nicht sagen, weil ich das in der Regel manuell über iptables mache. Da deny/drop bzw. masquerade/NAT aber Basisregeln sind, sollte das mit ein paar Minuten googelei zu schaffen sein.

P.S.: Sollte der DNS auf 192.168.100.1 nicht laufen, kann es sein, dass der DNS-Dienst in der Config explizit nur auf einer IP reagiert. Wenn ich mich recht entsinne nutzt OpenWRT dnsmasq als DNS/DHCP. Wo genau die Config liegt, weiß ich bei OpenWRT nicht. Bei Ubuntu liegt sie zB unter /etc/dnsmasq.conf. Dort gibt es Einträge für Interfaces (im vorliegenden Fall haben wir ja nur eins) und "listen-address". Dort für alle IPs des Routers eine entsprechende Zeile anfügen.
 
Zuletzt bearbeitet:
Zurück
Oben