[WireGuard] LAN toegankelijk houden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • BartDG
  • Registratie: November 2002
  • Laatst online: 12-10 15:58
Beste allen,

Ik gebruik al een tijdje een VPN dienst van Mullvad. Die bieden naast "gewoon" OpenVPN ook WireGuard servers aan. Ik gebruik die nu al een tijdje, zowel op mijn desktop als op mijn mobiel, en eigenlijk tot mijn volle tevredenheid. Werkt prima, snel en is super stabiel. Bovendien gebruikt het bijna geen accu van mijn mobiel (in tegenstelling tot OpenVPN) en laat ik de VPN dus gewoon altijd geactiveerd staan.

Er kleeft maar 1 nadeeltje aan : sinds kort heeft WireGuard ook een "officiële" WireGuard Client voor Windows. Die ben ik dan ook gaan gebruiken. (TunSafe werkt voor één of andere reden niet meer). Die client stuurt standaard ALLE netwerk verkeer door de VPN tunnel, dus ook al mijn LAN verkeer. Dat betekent dat mijn netwerk printer niet meer werkt, ik niet meer mijn Unifi controller kan benaderen, etc ... zonder dat ik eerst de VPN tunnel deactiveer. Vervelend.

Ik weet dat er een mogelijkheid moet zijn om WireGuard uit te leggen dat het het netwerkverkeer van een bepaalde range niet over het internet moet doorsturen. (in mijn geval de range 192.168.1.x). Hoe maak ik dat WireGuard wijs? Ik weet dat het wellicht met IPTables zal moeten gebeuren, maar dat is pure Linux stuff en dan ook nog van het geavanceerde soort. Ik kan perfect een how-to volgen, maar ik kan dit niet zelf uit mijn mouw schudden. Ik heb één handleiding hiervoor gevonden online, maar die vind ik nogal moeilijk, en volgens mij ook nogal overdreven omdat bij mij maar 1 range moet overgeslagen worden en in die how-to er een behoorlijk aantal staan.

Is er iemand die mij hierbij kan helpen?

Mijn eeuwige dank! :)

Acties:
  • 0 Henk 'm!

  • Kasper1985
  • Registratie: Oktober 2014
  • Laatst online: 08-10 21:29
Volgens mij is dit iets wat Mullvad support voor je kan beantwoorden. Die zijn in mijn ervaring vrij vlot en best goed als het op support aankomt.

Ik heb geen ervaring met de Windows client. Maar over het algemeen kan ik dit zeggen:
Wat je volgens mij zoekt is de AllwedIPs in je config file.

"Briefly, the AllowedIPs setting acts as a routing table when sending, and an ACL when receiving. When a peer tries to send a packet to an IP, it will check AllowedIPs, and if the IP appears in the list, it will send it through the WireGuard interface. When it receives a packet over the interface, it will check AllowedIPs again, and if the packet’s source address is not in the list, it will be dropped."

Als je echt helemaal nul ervaring hebt met routing en linux dan is het wellicht verstandiger om eerst te kijken of Mullvad support je kan helpen. Reddit heeft ook een Wireguard gedeelte.

Het heeft mij behoorlijk wat uren gekost om mijn Wireguard setup zo werkend te krijgen zoals ik het wil maar iets anders dan hoe jij het beschrijft. Hieronder mijn configs misschien heb je daar wat aan.

Ik heb geen idee wat je kan aanpassen aan de config bestanden in die Windows client. Zoals je ziet staat aan de client kant mijn AllowedIPs op 0.0.0.0/0. Al het verkeer gaat via de tunnel wat dus ook betekent dat de server niet meer bereikbaar is op mijn ISP IP. Vandaar de IPtables regel om Plex bereikbaar te houden vanaf buiten.

Vanaf mijn LAN kan ik gewoon nog vanaf bijvoorbeeld laptop middels SSH naar mijn thuis server middels LAN IP en vanaf thuis server ook naar andere apparaten op mijn LAN.
Server:
[Interface]
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXX
ListenPort = 51820
Address = 192.168.50.1/24

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
#Postup = iptables -t nat -A PREROUTING -i ens3 -d XXXXXXXXXXXXXX -p tcp --dport 22 -j DNAT --to-destination 192.168.50.2:22
PostUp = iptables -t nat -A PREROUTING -i ens3 -d XXXXXXXXXXX -p tcp --dport 32400 -j DNAT --to-destination 192.168.50.2:32400
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -t nat -D PREROUTING -i ens3 -d XXXXXXXXXXXX -p tcp --dport 32400 -j DNAT --to-destination 192.168.50.2:32400
#PostDown = iptables -t nat -D PREROUTING -i ens3 -d XXXXXXXXXXXX -p tcp --dport 22 -j DNAT --to-destination 192.168.50.2:22
[Peer]
PublicKey = XXXXXXXXXXXXXXXXX
AllowedIPs = 192.168.50.2/32

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = 192.168.50.3/32

Client:
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Address = 192.168.50.2/24
DNS = 1.1.1.1


[Peer]
PublicKey = fxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = xxx.xx.xx.xx:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

[ Voor 8% gewijzigd door Kasper1985 op 16-11-2019 14:06 ]


  • BartDG
  • Registratie: November 2002
  • Laatst online: 12-10 15:58
Bedankt voor je antwoord Kasper! Ik heb Mullvad support op je advies gecontacteerd en ik kreeg inderdaad vrij snel antwoord. Alleen snap ik er vrij weinig van. Dit kreeg ik terug:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
You can add AllowedIPs under [Peer], which is the list of IPs that
should be tunneled through the Wireguard tunnel, in your wireguard
configuration file.

0.0.0.0/0 is the whole internet.

If you change it to this:

AllowedIPs = 0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4,
32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6,
172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8,
174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13,
192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12,
192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5,
208.0.0.0/4, 8.8.8.8/32, 10.64.0.0/10

It should exclude all private IPs (for example LANs)


Then add the following under [Interface]: (if you don't have Postup or
Predown set, otherwise put "&& iptables -I INPUT....."at the back of
your existing line)

Postup = iptables -I INPUT -i YOURLANINTERFACE -d 192.168.1.0/24 -j
ACCEPT && iptables -I OUTPUT -o YOURLANINTERFACE -d 192.168.1.0/24 -j ACCEPT

Predown = iptables -D INPUT -i YOURLANINTERFACE -d 192.168.1.0/24 -j
ACCEPT && iptables -D OUTPUT -o YOURLANINTERFACE -d 192.168.1.0/24 -j ACCEPT

Dat eerste stuk met die AllowedIPs snap ik nog wel, dat moet ik copy/pasten in mijn config file. Maar hetgeen erachter komt snap ik eerlijk gezegd maar weinig van. (ik ben een Windows gebruiker, geen Linux, of toch maar zéér bescheiden). Ook wat jij daar weergeeft vanaf PostUp/Postdown is haast letterlijk Chinees voor mij. Ik ben er zeker van dat ik het wel zou kunnen snappen als ik me er echt op zou toeleggen, maar ik vrees dat ik ergens een basis mis en dat maakt het wel heel erg moeilijk. :'(

Acties:
  • 0 Henk 'm!

  • Kasper1985
  • Registratie: Oktober 2014
  • Laatst online: 08-10 21:29
Snap ik helemaal! Ik had de mazzel toen ik met wireguard begon dat ik op een afdeling werkte met 30-40 door gewinterde IT'ers ;-) maar het heeft mij ook uren uitzoek werk gekost.

Wat snap je hier niet aan? Dat laatste gedeelte zijn iptables regels. Wat ze exact doen kan ik je ook niet in detail vertellen. Maar je kan het in ieder geval proberen. Vervang "yourinterface" met jouw netwerk interface. Ik heb geen flauw idee hoe je erachter komt wat dat is onder Windows. Misschien kan je ze dat nog een keer vragen of anders googelen of hier in het Windows forum vragen?

Heb je wel duidelijk aangegeven dat je de Windows client gebruikt? Ik weet ook niet met 100% zekerheid of dit gaat werken op Windows.

Acties:
  • 0 Henk 'm!

  • BartDG
  • Registratie: November 2002
  • Laatst online: 12-10 15:58
Thx! :)
Nee, ik heb niet duidelijk gezegd dat ik met Windows werk, maar volgens mij maakt dat met deze client ook niet echt uit. Het zijn inderdaad iptables regel, dat heb ik ondertussen leren herkennen. Helaas weet ik niet hoe dat werkt of hoe ik die moet instellen.
Die Yourlaninterface is in Linux idd gewoon eth0. Maar hoe dat in Windows moet heten? Het IP adres misschien?
Misschien zou ik ze idd beter nog eens schrijven...

Acties:
  • 0 Henk 'm!

  • Kasper1985
  • Registratie: Oktober 2014
  • Laatst online: 08-10 21:29
Ja ik denk dat je er echt goed aan doet om support nogmaals te contacten.

Wireguard is vrij nieuw. Dus ik denk dat de mensen die ermee werken op dit forum vrij gering is. Daarnaast zullen de meeste mensen die ermee werken dit op linux doen.

En tot slot beheert een derde partij de server kant. "we" hebben daardoor dus geen enkele inzage in die kant die is voor bepaalde dingen wel handig om de client goed af te stemmen.

Acties:
  • 0 Henk 'm!

  • MasterL
  • Registratie: Oktober 2003
  • Laatst online: 07:09

MasterL

Moderator Internet & Netwerken
Die Iptables rules gaan niet werken onder windows, ik denk dat je er al bent door alleen het "AllowedIPs" deel aan passen van 0.0.0.0/0 naar die hele rits die in jouw post staat.
Anders kun je in CMD altijd eens een "route print" doen om te kijken hoe de routes staan.

Acties:
  • 0 Henk 'm!

  • BartDG
  • Registratie: November 2002
  • Laatst online: 12-10 15:58
Ik heb ondertussen idd Mullvad support opnieuw geschreven.

Iemand anders deed me al eens de suggestie om enkel het AllowedIPs deel aan te passen en dat heb ik ook al eens gedaan, maar dat werkte (helaas) niet. Er werd wel een connectie gemaakt, maar er kwam niets door en de lokale IP adressen waren nog steeds niet bereikbaar.

Ik vraag me trouwens nog iets anders af : als ik zo'n .conf bestand laat genereren in de Mullvad generator, en ik gebruik het bestand bv. eerst in de WireGuard client, dan werkt het. Gebruik ik datzelfde bestand daarna nog eens in bv. Tunsafe, dan werkt het niet meer. Omgekeerd ook niet trouwens. (uiteraard gebruik ik beide clients niet op hetzelfde moment). Dan moet ik echt weer een nieuw .conf bestand gaan genereren en dat is nogal vervelend want je mag er maar 5 bij Mullvad, maar het is zeer moeilijk om te zien welk bestand van welke connectie is. (het is niet zo simpel als gewoon naar de private keys kijken) De enige optie dan is alle keys deleten en weer helemaal opnieuw beginnen voor mijn 4 devices. Niet dat dat nu zo'n groot werk is, maar het is wel vervelend. Iemand die weet hoe dit zou komen?

Acties:
  • +1 Henk 'm!

  • BartDG
  • Registratie: November 2002
  • Laatst online: 12-10 15:58
Edit : Ik heb het ondertussen wel nog eens geprobeerd, enkel de AllowedIPs erin te pasten, en nu werkte het wél! Super! :)
Ik heb ondertussen ook al terug antwoord van Mullvad support. Dat is super snel zeg! (ik ben echt mega tevreden van Mullvad) Daarin werd me ook aangeraden om het zo te doen en het werkt dus inderdaad. (hoewel ik eerst nog wat spaties en komma's heb moeten verwijderen - mogelijks werkte het daarom eerst niet)

Ze wisten me ook te zeggen dat Mullvad zelf aan een eigen client aan het werken is, en dat dat de boel wel behoorlijk zal vereenvoudigen.

[ Voor 69% gewijzigd door BartDG op 22-11-2019 16:54 ]


Acties:
  • 0 Henk 'm!

  • Cave_Boy
  • Registratie: Augustus 2005
  • Laatst online: 05:15
Dit is niet bedoeld als topic kaping maar dit is volgens mij eigenlijk hetzelfde probleem.

Ik heb een situatie waar ik niet helemaal uitkom.
Zelf een Synology 918+ en mijn ouders hebben nu nog een Dlink (antiek).

Ik heb momenteel bij mijn ouders een mini pc met externe opslag aangesloten. Die pc heeft als taak op de zoveel tijd een backup van bestanden te pakken die op mijn NAS staan. De bestanden komen encrypted op de externe opslag. De verbinding van de mini pc naar mij verloopt via een OpenVPN verbinding.

Nu heb ik onlangs een Lenovo ix4 300D kunnen krijgen (zat nieuw in de verpakking). Deze wil ik als vervanging van de Dlink.
Nu wil ik eigenlijk de volgende situatie maken:
Synology
LAN 1 – eigen netwerk
LAN 2 – netwerk naar VPN/ Wireguard

Lenovo
LAN 1 – eigen netwerk
LAN 2 – netwerk naar VPN/ Wireguard

Ik wil dan via LAN 2 de bestanden naar elkaar backuppen.

Aangezien de Lenovo geen VPN ondersteunt ben ik in mijn rommelbak gaan kijken en zag ik een Ginet AR750 en Ginet AR750s ext liggen die ik met een ander project (hotel en wifi) had gebruikt.

Aangezien beide apparaten openVPN en Wireguard ondersteunen. Keek ik naar wat is de performance en bescherming. Hoe ik het lees is Wireguard netzoals VPN veilig (bij vpn heb je veel lagen van encryptie). Bij Wireguard is dat deel van instellen niet direct aanwezig en het heeft als grootse voordeel dat de load een stuk lager is en hierdoor de doorvoer een stuk hoger kan zijn.
Hierdoor was mijn idee om voor Wireguard te gaan.
Ik krijg beide Ginet routers met elkaar verbonden maar de beide nassen kunnen elkaar niet vinden.

Afbeeldingslocatie: https://tweakers.net/i/yUz89LqkWGguF7mAUMvlpVWRHJo=/f/image/wn54KgqyGGVzsWk9T8hxo9HP.jpg
(ip van NAS ouders 192.168.8.2 (typefout)

Configuratie hoe ik deze nu heb:
Met Wireguard krijg je een config bestand voor elk apparaat/ gebruiker.
Ik heb het idee dat daar iets in veranderd moet worden.

De config ziet er nu als volgt uit:

[Interface]
Address = 10.0.0.2/32
ListenPort = 13195
PrivateKey = <Hier staat een sleutel>
DNS = 64.6.64.6

[Peer]
AllowedIPs = 0.0.0.0/0
Endpoint = <buiten ip adres van mij>:51820
PersistentKeepalive = 25
PublicKey = <Hier staat een sleutel>

Ik heb het idee dat ik bij AllowedIPs = 0.0.0.0/0 het volgende moet typen:
AllowedIPs = 192.168.8.2/?

Andere optie is dat ik toch maar (Open)VPN ga opzetten maar mede door de performance vind ik deze best interessant.
Hoe kan ik de twee Ginet routers met Wireguard als het kan zo instellen dat ze een groter netwerk maken dat voor elkaar zichtbaar is?

Edit:
OPLOSSING GEVONDEN

Ik kwam bij de 750M niet via WinSCP ingelogd. Kreeg telkens een foutmelding dat het wachtwoord niet klopte. Ook na een software en hardware reset.

Uiteindelijk firmware update (naja update het was hetzelfde nummer) er opnieuw opgezet.

Toen kon ik wel connectie maken met WinSCP en een bestand aanpassen en kon ik de onderstaande stappen uitvoeren die ik op een andere site vond.

Visit Client’s LAN Subnet
Visit Client’s LAN Subnet from WireGuard Server LAN Subnet

1) Change WireGuard clients LAN IP to avoid IP confliction with Server

2) Modify Wireguard_Server Configuration

WinSCP or SSH into your the WireGuard Server (router) find and modify the file

/etc/config/wireguard_server
Add a line to the end of the config file of clients you want to visit.

list subnet '192.168.xxx.0/24'
Save and Exit

-------------------------------------------------------------

Moet zeggen dat ik best te spreken ben over de snelheid. Deze is echt een stuk hoger dan openVPN.
Met openVPN haalde ik op dezelfde apparatuur ongeveer 1MB/s a 1,5MB/s. Met Wireguard is dit nu 6,5MB/s tot 7,5MB/s

[ Voor 18% gewijzigd door Cave_Boy op 12-04-2020 09:34 . Reden: Heb de oplossing gevonden. ]

Pagina: 1