darodesk
Goto Top

Mikrotik Wireguard einem Peer feste IP zuweisen?

Hallo zusammen,

ich habe heute auf einem Mikrotik die 7.1(stable) aufgespielt um mich mit Wireguard vertraut zu machen. Die Site2site Verbindung zu einem zweiten Standort bei uns funktioniert tadellos, jetzt geht es um die Homeoffice-User.

Ich habe dazu für jeden User ein Interface erstellt und einen peer. Dem Interface habe ich die jeweilige IP (z.B. 10.0.1.1 (Mikrotik) / 10.0.1.2 (Homeoffice) zugeordnet.
Die Verbindung klappt mittels Windows-Wireguard-Client problemlos und die Routen werden richtig gesetzt, so dass ein Datenaustausch in Richtung Server funktioniert.

Frage 1:
Muss ich tatsächlich für jeden Peer (Homeoffice-User) ein eigenes Wireguard-Interface erstellen oder kann man das wie bei OpenVPN in einem IP-Pool sammeln?

Frage 2:
Bei OpenVPN konnte man jedem Benutzer, der sich einwählt eine feste IP zuweisen, was die Zugriffsmöglichkeiten via Firewall-Regeln sehr vereinfacht hat) Ich könnte zwar wegen der derzeit pro User erstellten Subnetze das auch genau einstellen aber mir erscheint mein Vorgehen zu kompliziert gedacht. Zudem stört es mich, das der User sich einfach eine andere IP geben kann, die dann andere Zugriffsbeschränkungen hätte.

Wo ist mein Denkfehler?

Vielen Dank und Gruß
Daniel

Content-Key: 1646140164

Url: https://administrator.de/contentid/1646140164

Printed on: April 26, 2024 at 12:04 o'clock

Mitglied: 149569
149569 Dec 22, 2021 updated at 06:59:39 (UTC)
Goto Top
Zitat von @darodesk:

Ich habe dazu für jeden User ein Interface erstellt
Blödsinn.
Frage 1:
Muss ich tatsächlich für jeden Peer (Homeoffice-User) ein eigenes Wireguard-Interface erstellen
Nein, es reicht ein einziges Interface, und für jeden Client einen Peer mit fester IP in den allowed-ips anlegen, bspw. 10.0.0.2/32


Frage 2:
Bei OpenVPN konnte man jedem Benutzer, der sich einwählt eine feste IP zuweisen
Bei wireguard setzt du das wie oben schon geschrieben jeweils im Peer über die allowed-ips, das sagt dem Crypto-Routing: Nehme von dem Peer nur Traffic von dieser IP entgegen.

Grundlagen wie immer hier
Merkzettel: VPN Installation mit Wireguard
Member: aqui
aqui Dec 22, 2021 updated at 09:10:33 (UTC)
Goto Top
Noch viel sinnvoller ist es ein L2TP VPN auf dem Mikrotik zu verwenden denn das erspart einem die unnötige, weil eigentlich überflüssige Einrichtung von zusätzlicher VPN Client Software auf allen Endgeräten.
Man kann so bequem immer den bordeigenen L2TP Client nutzen ohne mit überflüssiger 3rd Party Software frickeln zu müssen.
Aber warum einfach machen wenn es umständlich auch geht ?! face-wink
Scheitern am IPsec VPN mit MikroTik
Member: dirkschwarz
dirkschwarz Dec 22, 2021 at 09:36:14 (UTC)
Goto Top
Hallo Darodesk,

bin an der gleichen Sache dran - leider nicht so erfolgreich..denke es liegt an den Firewall Einstellungen.

Was hast du an Regeln für die Wireguard Verbindung definiert?

Herzlichen Dank!
Mitglied: 149569
Solution 149569 Dec 22, 2021 updated at 10:47:33 (UTC)
Goto Top
Zitat von @dirkschwarz:
bin an der gleichen Sache dran - leider nicht so erfolgreich..denke es liegt an den Firewall Einstellungen.
Nö, eher am Verständnis wie Wireguard und das Crypto-Routing via "Allowed-IPs" funktioniert face-wink.

Beispiel mit dem Mikrotik

back-to-topMikrotik Config

/interface wireguard
add listen-port=60223 mtu=1420 name=wg0
/interface wireguard peers
add allowed-address=10.80.0.2/32 comment=Client1 interface=wg0 public-key="xxxxxxxxxxxxxxxxxxxxx"  
add allowed-address=10.80.0.3/32 comment=Client2 interface=wg0 public-key="xxxxxxxxxxxxxxxxxxxxx"  
/ip address
add interface=wg0 address=10.80.0.1/24

back-to-topClient1 config

[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.80.0.2/32

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = <MIKROTIK_IP>:60223
AllowedIPs = 10.80.0.0/24

back-to-topClient2 config

[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.80.0.3/32

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = <MIKROTIK_IP>:60223
AllowedIPs = 10.80.0.0/24

Feddisch.

Möchte man nun das bspw. Client1 auf Client2 nicht zugreifen darf, nutzt man einfach die Firewall, weil beim Crypto-Routing eh alles durch die Forwarding-Chain muss ...
/ip firewall filter
# related established rule (statefull rule)
add action=accept chain=forward comment="related established" connection-state=established,related  
# reject traffic from Client1 to Client2
add chain=forward src-address=10.80.0.2 dst-address=10.80.0.3 action=reject reject-with=icmp-host-prohibited

Ping-Check von Client1 auf Client2 wie erwartet verboten

screenshot

Fazit: Works as designed!
Member: aqui
aqui Dec 22, 2021 updated at 10:04:45 (UTC)
Goto Top
Und das obwohl es WireGuard explizit und leicht verständlich erklärt. face-wink
https://www.wireguard.com/netns/
https://www.wireguard.com/papers/wireguard.pdf

Wie bereits gesagt... L2TP und die bordeigenen Clients wäre das sinnvollere VPN denn es erspart die Client Frickelei !
Member: darodesk
darodesk Dec 22, 2021 updated at 14:55:23 (UTC)
Goto Top
Super! Danke Hacktor und Aqui jetzt funktioniert alles.
Member: dirkschwarz
dirkschwarz Dec 28, 2021 at 22:44:26 (UTC)
Goto Top
@149569 : Herzlichen dank für deine Hilfe. Habe das mal so konfiguriert..klappt aber so nicht bei mir.

ping auf beiden Seiten zeigt keinen connect! Erst nach einfügen folgender Firewall-Regel:

;;; accept wireguard
      chain=input action=accept protocol=udp dst-port=13231 log=yes 
      log-prefix="wg0"  

wird eine Verbindung aufgebaut = ping klappt. Ein direkter Zugriff auf den Router (ssh/web/winbox) ist aber weiterhin nicht möglich. Erst nach Aufnahme des wg0-Interfaces in die Interface-LAN Liste (Tipp aus dem Mikrotik-Forum), klappt nun auch der Zugriff über ssh/web/winbox.

Ich bin nun etwas verwirrt ob das so richtig konfiguriert ist, da ja nach euren Konfiguration eben KEINE derartigen Regeln notwendig sind.

Vielleicht könnt ihr mich ja aufklären?

Herzlichen Dank & Einen schönen Abend!
Mitglied: 149569
149569 Dec 29, 2021 updated at 07:12:34 (UTC)
Goto Top
Zitat von @dirkschwarz:

@149569 : Herzlichen dank für deine Hilfe. Habe das mal so konfiguriert..klappt aber so nicht bei mir.

ping auf beiden Seiten zeigt keinen connect! Erst nach einfügen folgender Firewall-Regel:

;;; accept wireguard
      chain=input action=accept protocol=udp dst-port=13231 log=yes 
      log-prefix="wg0"  

Ja klar musst du in der Firewall den Wireguard Port öffnen, obige Firewall-Regeln stellen ja keine komplette Firewall dar sondern rein eine optionale Regeln für den gegenseitigen Zugriff der Peers untereinander !!

Ein direkter Zugriff auf den Router (ssh/web/winbox) ist aber weiterhin nicht möglich. Erst nach Aufnahme des wg0-Interfaces in die Interface-LAN Liste (Tipp aus dem Mikrotik-Forum), klappt nun auch der Zugriff über ssh/web/winbox.
Ebenfalls normal denn für den Zugriff auf den Router selbst muss ja eine Freigabe der entsprechenden Ports über die Input Chain erfolgen was für die LAN-Interface List bereits in der Firewall hinterlegt ist. Kannst du so machen, würde ich aber über eine separate Chain in der Firewall laufen lassen um später bessere Kontrolle zu haben was freigegeben werden soll.

Ich bin nun etwas verwirrt ob das so richtig konfiguriert ist, da ja nach euren Konfiguration eben KEINE derartigen Regeln notwendig sind.
Das siehst du falsch, wie geschrieben sind obige Regeln explizit keine Komplettansicht sondern nur eine optionale Regel für den gegenseitigen Zugriff unter den Peers.

Am besten du bringst dich Firewall technisch mal auf ein höheres Wissens-Level
https://help.mikrotik.com/docs/display/ROS/Building+Your+First+Firewall
https://help.mikrotik.com/docs/display/ROS/Building+Advanced+Firewall
Dann verstehst du auch die unterschiedlichen CHAINs und deren Bedeutung
https://wiki.mikrotik.com/wiki/Manual:Packet_Flow_v6