OPNsense Forum
International Forums => German - Deutsch => Topic started by: bforpc on February 13, 2020, 09:57:44 am
-
Hallo,
mein primäres opnsense Netz ist 192.168.1.0/24, das wg Tunnel Netz ist 10.10.10.10/24. Die Wireguard Clients haben Zugriff auf das 1er Netz und umgekehrt. Soweit so gut.
Ich benötige nun von WG Clienten Zugriff auf einen bestimmten WG Client und sein Netz (192.168.2.0/24).
Welche Regel muss hier erstellt werden (und in welchem Bereich)?
Bfo
-
Auf dem Enpoint des Clients von der Quellle muss auf jeden Fall ins Tunnel Netz auch das Netz des Ziel Clients.
Dann die Firewall im WG rules tab
-
Könntest du das bitte etwas ausführlicher erklären?
Bfo
-
Nur wenn du Screenshots postest, sonst schreib ich nen Wolf und es ist ganz anders als gedacht
-
Moin,
in der Anlage 2 Screenshots. Der eine vom WG Server und der andere von dem WG Client, welcher sein Netz auch für andere WG Clients öffnen soll.
Bfo
-
Screenshot vom Endpoint der 192.168.2.0 hinter sich hat bitte
-
Am Client?
Da gibt es keinen Screenshot, hier die Config des Clienten:
cat /etc/wireguard/wg0.conf
#CB
[Interface]
PrivateKey = [private key]
Address = 10.10.10.2/32
[Peer]
PublicKey = [public key der opnsense]
Endpoint = [ip der opnsense]:51820
AllowedIPs = 192.168.1.0/24, 10.10.10.0/24
Bfo
-
Sollte es hier nicht 10.10.10.3/32 sein?
Und am Server auch /32?
-
Hallo,
wieso, bzw.was würde das bringen? Klar kann ich am Server sagen, dass der Client die .3 ist und dem client sagen, dass er die 3. ist, aber was wäre der Unterschied?
Und was hat das mit meinem Wunsch zu tun, das 192.168.2.0/24er Netz in anderen wireguard Clients zu netzen?
Bfo
-
Vergiss es, Denkfehler, der andere Client ist identisch, nur halt 1er Netz oder?
-
Äh ... ja...
Letztendlich soll ein WG Client welcher hinter sich das Netz 192.168.2.0/24 hat, für alle anderen WG Clients erreichbar sein.
Bfo
-
Muss ich mal nachstellen, wüsste nicht wieso das nicht gehen sollte
-
Ok, meine Frage war nicht, ob das geht, sondern was (an Konfigurationen) dafür notwendig ist.
Womit wir am Ursprung meiner Frage wären :-)
btw: Wireguard funktioniert einfach und problemlos bis jetzt zu den einzelnen Clienten.
Bfo
-
Ok, dann haben wir uns missverstanden.
Also eine zentrale OPNsense, 2 Clients, und die Clients wollen sich untereinander sehen.
D.h. du setze die jeweils anderen Netze in den Endpoints selber und an der Firewall legst du die Endpoints mit ihren realen Netzen an.
Dann mit tcpdump auf wg0 schauen ob die Pakete ankommen und gehen.
An sich ist das ja nichts anderes wie ein Site-2-Site wie hier:
https://forum.opnsense.org/index.php?topic=15889.msg72875;topicseen#msg72875
-
Jetzt haben wir uns (fast) verstanden.
Status:
- Ich habe die WireGuard als Firewall in meinem "HausNetz" (192.168.1.0/24).
- Ein "besonderer" Wireguard Client (192.168.2.1) , verbindet sich zur Firewall. Dieser Client kann auf das "Hausnetz zugreifen.
- Aus dem "Hausnetz" kann niemand auf das Netz 192.168.2.0/24 oder auf die IP 192.168.2.1 zugreifen
- Kein anderer Wireguard Client kann auf das Netz 192.168.2.0/24 oder auf die IP 192.168.2.1 zugreifen
Wunsch:
- Das Hausnetz "HausNetz" soll entweder auf 192.168.2.0/24 oder notfalls auf 192.168.2.1 zugreifen können
- Alle anderen wiregurad Clients sollen auch auf 192.168.2.0/24 oder notfalls auf 192.168.2.1 zugreifen können
Weitere Infos:
- Auf der Firewall hat der Wireguard Dienst das Transfernetz 10.10.10.0/24[l/i]
Die wg0.conf vom "besonderen" Wireguard client sieht so aus:
[Interface]
PrivateKey = [key]
Address = 10.10.10.2/32
[Peer]
PublicKey = [key]
Endpoint = [firewall]:51820
AllowedIPs = 192.168.1.0/24, 10.10.10.0/24
PersistentKeepalive = 25
Der Endpoint dieses Clienten an der Fireawall hat diese "allowed IP's"
192.168.1.0/24, 192.168.2.0/24, 10.10.10.0/24
Bfo
-
Hallo,
keiner eine Idee?
Bfo
-
Zugriff erlaubt, Route unbekannt?
Verstehe ich das richtig so:
Hausnetz 192.168.1.0/24 mit 10.10.10.0/24 WireGuard Clients.
Ein besonderer Client 10.10.10.2/32
kommt aus dem "entfernten" Netz 192.168.2.0/24
und bildet die einzige Verbindung zwischen den Netzen.
d.h.
das Netz 192.168.2.0/24 ist dem Netz 192.168.1.0/24 und der Default-Route nicht bekannt.
Gibt es eine Route 192.168.2.0/24 mit Gateway 10.10.10.2 im Hausnetz?
1.
System: Gateways: Single
10.10.10.2
2.
System: Routes: Configuration
192.168.2.0/24
-
Moin,
Ja, du hast alles richtig verstanden.
Noch eine Frage:
Ich bin mir immer noch nicht sicher, was in "allowed IP's" vom Wireguard auf der Firewall und auf dem entfernten Wireguard Client stehen soll.
>1.
>System: Gateways: Single
>10.10.10.2
The gateway address "10.10.10.2" does not lie within one of the chosen interface's IPv4 subnets.
Ich habe als Interface nur LAN und WAN.
>2.
>System: Routes: Configuration
>192.168.2.0/24
habe ich jetzt auf GW_WAN gesetzt.
Bfo
-
Moin,
wenn alle WG-Clients im Hausnetz 10.10.10.0/24 auf alles im 192.168.2.0/24-Netz zugreifen dürfen:
Firewall: Rules: wireguard_wg0
Source "wireguard_wg0 net"
Destination "192.168.2.0/24"
ggf. Hosts und Ports einschränken.
Das Gateway 10.10.10.2 mit Interface wireguard_wg0 erstellen.
Vom Hausnetz 192.168.1.0/24 führt die Route in das 192.168.2.0/24-Netz nur durch das neu erstellte Gateway 10.10.10.2. Das WAN-GW kennt den Weg dorthin nicht, nur der Client der in beiden Netzen ein Bein hat kennt das Netz.
-
Hallo johnsmi,
zuerstmal danke für deine Hilfe (die bist bisher der einzige der etwas produktives geschrieben hat):
Leider kann ich dir nicht ganz folgen.
- Ich kann kein "System: Gateways: Single , 10.10.10.2" erstellen wegen diesem Fehler:
The gateway address "10.10.10.2" does not lie within one of the chosen interface's IPv4 subnets. - Ich habe eine zweite FW Regel erstellt, die erste existierte bereits (siehe Bild)
- In den Schnittstellen existiert ein Interfaces Namens OPT1 (lässt sich nicht umbenennen) mit der MAC Adresse 6*00 und der
internen Bezeichnung "wg0"
Im wiregurd Client 10.10.10.2 / 192.168.2.1 habe ich in AllowedIPs = 10.10.10.0/24,192.168.1.0/24
Auf opnSense Seite dieses Clients (endpoint) habe ich in AllowedIPs = 10.10.10.2/32,192.168.1.0/24, 192.168.2.0/24
Könntest du bitte mir (und allen die das gleiche Problem haben) etwas genauer erklären, was ich wo und auch in welcher Reihenfolge eingeben muss?
Nfo
-
OK, Ich versuche es nochmal.
=== Routing ===
Mein Fehler: Die Route auf das wg0-Interface wird automatisch erstellt. Die Definition erfolg über den Tunnel-Endpoint.
Das, was nicht automatisch erstellt wurde bitte wieder entfernen. Sorry. Die Route gibt es schon.
Am Ende unter "System: Routes: Status" kontollieren dass in der Spalte Gateway "wg0" auftaucht. Dort steht dann Destination "192.168.2.0/24".
=== Firewall ===
OK, wenn das auch schon da war, dann ist es jetzt doppelt. Die zweite Regel ist in der ersten bereits enthalten: 10.10.10.0/24 ist das Wireguard-Netz und "nach überall" schließt 192.168.2.0/24 mit ein.
Die Regeln funktionieren erstmal. Sobald alles funktioniert kann man das Feintuning später erledigen. Welcher Client wohin darf usw.
=== WireGuard ===
https://wiki.opnsense.org/manual/how-tos/wireguard-client.html
https://wiki.opnsense.org/manual/how-tos/wireguard-s2s.html
Wir haben ein WireGuard-Netz 10.10.10.0/24 mit dem WireGuard-Server 10.10.10.1/24 (Local -> Tunnel Address).
Z.B. ein Client 10.10.10.20/32 aus einem fremden, unverschlüsselten WLAN lässt/schickt ALLES 0.0.0.0/0 in den Tunnel. Der Server akzeptiert das, was vom Client selbst kommt.
* Allowed IPs Server Endpoint: 10.10.10.20/32
* Allowed IPs Client Endpoint: 0.0.0.0/0
Am Client: DNS-IP-Adresse (z.B. 10.10.10.1)
Wenn das lokale Netz des Clients nicht gebraucht bzw. gewollt ist, dann geht ganz einfach alles durch den Tunnel ins Heimnetz.
Ein Client 10.10.10.30/32 z.B. aus dem Büro-Netz lässt das in den Tunnel, was für die Netze 192.168.1.0/24 und 10.10.10.0/24 bestimmt ist, der Rest bleibt im lokalen Client-Netz. Der Server lässt nur das aus dem Tunnel in sein Netz, was vom Client selbst kommt.
* Allowed IPs Server Endpoint: 10.10.10.30/32
* Allowed IPs Client Endpoint: 192.168.1.0/24, 10.10.10.0/24
Ein Client 10.10.10.40/32 aus einem weiteren Netz schickt das in den Tunnel, was für die Netze 192.168.1.0/24 und 10.10.10.0/24 bestimmt ist, der Rest bleibt im lokalen Client-Netz. Der Server lässt das durch den Tunnel, was für das Netz 192.168.2.0/24 und den Client selbst bestimmt ist.
* Allowed IPs Server Endpoint: 10.10.10.40/32, 192.168.2.0/24 - aus dem Tunnel in die Firewall und Gegenrichtung
* Allowed IPs Client Endpoint: 192.168.1.0/24, 10.10.10.0/24 - vom Client in den Tunnel
Also: 192.168.1.0/24, 192.168.2.0/24, 10.10.10.0/24.2/32 auf der Firewall für den Verbindungsclient als Allowed IPs.
Damit ist festgelegt wohin etwas geschickt wird und von wem es akzeptiert wird.
In other words, when sending packets, the list of allowed IPs behaves as a sort of routing table, and when receiving packets, the list of allowed IPs behaves as a sort of access control list.
https://www.wireguard.com/#conceptual-overview
Ich hoffe mal das ist jetzt nicht noch verwirrender als nötig. :D
-
Hallo johnsmi,
vielen Dank für die sehr wertvollen Infos. Die "allowed IP's" habe ich jetzt so gesetzt wie im 3. Beispiel von dir.
Also:
Serverseitig 10.10.10.2/32 und 192.168.2.0/24, Clientseitig 10.10.10.0/24 und 192.168.1.0/24
Soweit habe ich jetzt alles gemacht, bzw. eigentlich habe ich garn nicht so viel gemacht, denn alles wurde automatisch erstellt.
In der Anlage sende ich die das Bild der aktuellen Routingtabelle, gefiltert auf das wg0 Interface. Das sieht für mich soweit alles richtig aus.
Ich komme vom WG Clienten auf das 192.168.1.0/24 Netz (war vorher auch so), und - neu - ich komme aus dem Heimnetz (192.168.1.0/24) auf die 10.10.10.2 (der WG Client des Netzes 192.168.2.0/24).
Ich komme aus meinem Heimnetz aber nicht auf das 192.168.2.0/24 Netz oder den WG Clienten 192.168.2.1
Das heisst, hier stimmt die Route noch nicht.
Noch eine Info:
Ein tracert auf 192.168.2.1 geht "jetzt" an die FW, bzw. das GW (also die opnsense). Vorher versuchte er das im INternet auf zu lösen (was ja falsch ist).
Jan
-
Das Routing stimmt, tracert geht ja zum Tunnel.
Was läuft denn auf 10.10.10.2 so als Firewall und OS? Antwortet der Client auf ping?
Ich meine Windows beantwortet nur Pings aus dem direkt verbundenen Netz.
Also auf 10.10.10.2 ICMPv4 inbound aus den Netzen 192.168.0.0/16 172.16.0.0/20 und 10.0.0.0/8 erlauben.
Auf der opnsense beobachten was ankommt bzw. durchgeht beim ping von den Clients aus den verschiedenen Netzen.
Interfaces: Diagnostics: Packet Capture
Interface: wg0
Address Family: IPv4
Protokoll: ICMP
[start]
... ping, tracert ...
10.10.10.2
192.168.2.1
192.168.2.x
[stop]
[View Capture]
Dort sollten dann ICMP echo request und idealerweise ICMP echo reply mit den Addressen auftauchen.
-
Moin,
auf dem WG Client ist ein Debian 10 im Einsatz, welches hinter einer Fritzbox liegt. Auf dem Debian selbst sind keine iptables Regeln aktiv. Der Port für den Wireguad Tunnel ist an der Fritzbox natürlich offen (sonst würde der Tunnel ja zur opnSense nicht gehen). Der Debain antwortet auf Pings.
In "Interfaces: Diagnostics: Packet Capture" habe ich keine Schnittstelle "wg*", nur LAN und WAN.
Somit kann ich dieses Interface gar nicht belauschen.
Ich habe weiter in den Interfaces nach dem WireGuard Interface geschaut. Dieses war deaktiviert.
Wenn ich es aktiviere, haben die Wireguard Clients keine Verbindung mehr zur openSense und dem Netz 192.168.1.0/24 (dem Heimnetz).
Wenn ich es dann wieder deaktiviere, muss ich den WIreguad Dienst auf der opnSense und die Clients neu starten, damit wieder eine Verbindung besteht.
Wenn ich WAN & LAN belausche und ein Ping sende (von Host 192.168.1.1 hinter der opnSense Firewall), bekomme ich das:
LAN
vtnet0 07:29:00.620898 IP 192.168.1.1 > 192.168.2.1: ICMP echo request, id 10649, seq 16, length 64
Bfo
-
OK, wg0 ist das Interface, [Wireguard] ist die Gruppe bei den Firewll-Regeln.
Die Baustelle ist eher Debian.
Wenn das Debian-Wireguard-Interface wg0 ist, dann auf der debian-shell:
$ sudo tcpdump -n -i wg0 icmp
Dann ping auf:
10.10.10.2
192.168.2.1
iptables oder nftables?
icmp ACCEP wäre scho mal hilfreich. Dazu FORWARD von wireguard ins Netzwerk.
-
Moin,
also dass das wg Interfave in der opnSense deaktiviert ist, ist wirklich korrekt?
OK, hier die tcpdumps / pings:
Auf 192.168.2.1 / 10.10.10.2
tcpdump -n -i wg0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wg0, link-type RAW (Raw IP), capture size 262144 bytes
07:08:23.785880 IP 192.168.1.1 > 10.10.10.2: ICMP echo request, id 18012, seq 1, length 64
07:08:23.785937 IP 10.10.10.2 > 192.168.1.1: ICMP echo reply, id 18012, seq 1, length 64
07:08:24.787613 IP 192.168.1.1 > 10.10.10.2: ICMP echo request, id 18012, seq 2, length 64
07:08:24.787665 IP 10.10.10.2 > 192.168.1.1: ICMP echo reply, id 18012, seq 2, length 64
Von 192.168.1.1 Ping an 10.10.10.2 ging (siehe oben), auf 192.168.2.1 keine Antwort
Bfo
-
Bei mir habe ich eine feste MTU vorgegeben, das geht nur auf dem Interface. Die Firewall-Regeln habe ich auch auf dem interface.
also dass das wg Interfave in der opnSense deaktiviert ist, ist wirklich korrekt?
Keine Ahnung. "Eigentlich" funktioniert das mit der Firewall-Gruppe ja auch mit den Default-Einstellungen. Wie das exakt im Hintergrund abläuft weiß ich nicht.
Ausprobieren?
Firewall Regel "any to any" anlegen
* auf dem wg0-Interface
* in der WireGuard-Fruppe
* Floating mit den beiden wireguards
Ping ist eh inbound auf dem LAN-Interface und zurück statefull. Geht ja auch mit dem Endpoint.
Ich vermute wie gesagt eher, daß die debian-Box nicht mitspielt. Die antwortet auf dem wg-Interface nicht auf pings auf das LAN-Interface. Das Routing zwischen den beiden Interfaces muß auch ja irgendwo konfiguriert sein.