Re: WireGuard (was Re: Thunderbird en firefox-esr)

2021-12-05 Berichten over hetzelfde onderwerp Paul van der Vlis

Op 05-12-2021 om 12:16 schreef Winfried Tilanus:

On 04-12-2021 11:33, Richard Lucassen wrote:

Hoi


Overigens heb ik nog nooit zo'n soepele VPN verbinding gehad als met
wireguard. OpenVPN heb ik nu bijna overal uitgefaseerd, op een paar
oude kernelversies na. Als je niet het meegeleverde (beperkende) script
gebruikt kun je er echt van alles mee uitspoken :)

Als ik een ip change heb of ik ga van 4G naar WiFi, merk ik het niet
eens als ik via wireguard werk.


Aangewakkerd door jouw enthousiasme en de behoefte aan een soepeler 
alternatief voor OpenVPN, vooral op mijn mobiel (iets met mobiele 
providers die ik niet vertrouw).


Het lijkt op SSH vind ik. Met als verschil dat je ook wat doet met 
IP-nummers en routes. Ik vind het prettig.


Dus ik heb gisteren maar een uur of 6 stukgeslagen op het opzetten 
ervan. Ondanks dat het een eenvoudiger systeem zou moeten zijn dan 
OpenVPN, heb ik het niet draaiend gekregen:


Tussen mijn laptop en router doet WireGuard een succesvolle handshake en 
roepen het dat het veel dataverkeer heeft (meerdere GB in minuten tijd) 


Dat vele dataverkeer is niet normaal natuurlijk.

maar dat komt nooit bij de ander aan en het is me geen moment gelukt het 
endpoint te pingen. Ik heb de firewall en routing settings van mijn 
werkende OpenVPN setup overgenomen.

Heb je wel de juiste "allowed IPs" ingevuld?

Ik heb daar:  0.0.0.0/0, ::/0

Dat betekent alles. Dit is bruikbaar als je al je verkeer via de VPN 
wilt laten lopen.


Op mijn telefoon, Fairphone 2 met Fairphone Open OS (vergelijkbaar met 
Android 9) wil WireGuard de verbinding niet eens activeren: het is, in 
tegenstelling tot mijn OpenVPN app, niet zichtbaar in de bij het OS 
geregistreerde VPN verbindingen en in de app zelf beweert WireGuard dat 
de gebruiker (ik dus) geen toestemming heeft gegeven om het als VPN te 
gebruiken, maar mijn is nooit wat gevraagd en ik kan het ook nergens 
veranderen.


Geen soepele ervaring dus. Maar als iemand me kan redden, dan hoor ik 
dat graag.


Mocht je het prettig vinden eens te connecten naar een server van mij, 
dan ben je welkom. Ik praat je er ook zo doorheen. Dan heb je het een 
keer gezien.


Dit is ook leuk om te testen: https://dnsleaktest.com/

Groeten,
Paul

--
Paul van der Vlis Linux systeembeheer Groningen
https://www.vandervlis.nl/



Re: WireGuard (was Re: Thunderbird en firefox-esr)

2021-12-05 Berichten over hetzelfde onderwerp Richard Lucassen
On Sun, 5 Dec 2021 12:39:37 +0100
Richard Lucassen  wrote:

Wellicht ten overvloede, de route tabel op de server:

ip r
default via 10.241.32.1 dev wlan0 metric 200 
10.98.101.0/24 dev wg0 proto kernel scope link src 10.98.101.1 
10.241.32.0/24 dev wlan0 proto kernel scope link src 10.241.32.243 
172.24.0.0/24 dev dummy0 proto kernel scope link src 172.24.0.1 

En op de client:

ip r
default via 10.241.32.1 dev wlan0 metric 200 
10.98.101.0/24 dev wg0 proto kernel scope link src 10.98.101.2 
10.241.32.0/24 dev wlan0 proto kernel scope link src 10.241.32.240 
172.24.0.0/24 dev wg0 scope link

R.

-- 
richard lucassen
http://contact.xaq.nl/



Re: WireGuard (was Re: Thunderbird en firefox-esr)

2021-12-05 Berichten over hetzelfde onderwerp Richard Lucassen
On Sun, 5 Dec 2021 12:16:57 +0100
Winfried Tilanus  wrote:

> Geen soepele ervaring dus. Maar als iemand me kan redden, dan hoor ik 
> dat graag.

Twee linuxdozen op hetzelfde netwerk (dat 10.241.32 netwerk moet je
maar omzetten naar je eigen netwerk). De server is ip 243 en de client
is 240 hier. Op de server draaiut een achterliggend netwerk op
"dummy0", dat is een virtuele ethernet kaart, wel zo handig voor dit
soort dingen. Zorg ervoor dat de server poort 10100/udp accepteert
vanaf de client.

Even dus een eenvoudige config met een server met achterliggend netwerk
en een client. Zo hou ik het simpel want als je eenmaal het spelletje
doorhebt is dit maar 0,5% van de mogelijkheden. Je kunt een device als
server en client tegelijk gebruiken bijvoorbeeld. Maar goed, vergeet
dat voorlopig maar even. Eerst maar eens een eenvoudige opzet.

B = beide
S = server
C = client

S ip r
default via 10.241.32.1 dev wlan0 metric 200
10.241.32.0/24 dev wlan0 proto kernel scope link src 10.241.32.243

C ip r
default via 10.241.32.1 dev wlan0 metric 200
10.241.32.0/24 dev wlan0 proto kernel scope link src 10.241.32.240

B (Debian) apt install wireguard wireguard-tools
B modprobe -v wireguard
B ip link add dev wg0 type wireguard
B ip link set wg0 up

je hebt nu een wg0 device:
B ip link show wg0
6: wg0:  mtu 1420 qdisc noqueue state
UNKNOWN mode DEFAULT group default qlen 1000 link/none

Op de server:
S sysctl -w net.ipv4.conf.all.forwarding=1
S modprobe -v dummy
S ip link set dummy0 up
S ip address add 172.24.0.1/24 dev dummy0
S ip address add 10.98.101.1/24 dev wg0

C ip address add 10.98.101.2/24 dev wg0
C ip route add 172.24.0.0/24 dev wg0

Stuur op beide machines de config naar het wg device, want net zoals
bij OpenVPN met "iroute", zul je de VPN moeten vertellen achter welke
client welk netwerk ligt: 

B wg setconf wg0 /tmp/wg0.conf



De server conf in /tmp/wg0.conf

###
[Interface]
ListenPort = 10100
PrivateKey = wMwLKZHIecfUdxsSk1X8jKGIGkCbniW6t6rEwM0KuEo=

[Peer]
PublicKey = 6sITJOjlzi4SdMKkBVdgO94KCphAK9uphOIBcX9XDEY=
AllowedIPs = 10.98.101.2/32
###


De client config in /tmp/wg0.conf:

###
[Interface]
PrivateKey = yG/6E0lj3efhG5+rVPLKqVPmBFVg308sCNJNUN/XZmY=

[Peer]
PublicKey = xmdyvPnB36fS0HBsNogBtlZDjRuWTgUWHdrBsO2nGF4=
AllowedIPs = 10.98.101.1/32, 172.24.0.0/24
Endpoint = 10.241.32.243:10100
###

Op de client:

C ping -c 1 172.24.0.1
PING 172.24.0.1 (172.24.0.1) 56(84) bytes of data.
64 bytes from 172.24.0.1: icmp_seq=1 ttl=64 time=1.64 ms

--- 172.24.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.638/1.638/1.638/0.000 ms



Voor een client op een telefoon, Apple of windows bak: neem de
clientname.conf en zip die naar clientname.zip. Die zip kun je
eenvoudig inladen in de wireguard client app.

De keys horen uiteraard bij elkaar.

Met "wg" kun je de status zien:

S wg
interface: wg0
  public key: xmdyvPnB36fS0HBsNogBtlZDjRuWTgUWHdrBsO2nGF4=
  private key: (hidden)
  listening port: 10100

peer: 6sITJOjlzi4SdMKkBVdgO94KCphAK9uphOIBcX9XDEY=
  endpoint: 10.241.32.240:44313
  allowed ips: 10.98.101.2/32
  latest handshake: 4 seconds ago
  transfer: 1000 B received, 824 B sent

Om keypairs en PreShared keys te genereren heb ik dit script "wgkeys.sh"
ooit gemaakt:

###
#!/bin/dash

test -x /usr/bin/wg || exit 1

KEY=$(wg genkey)
PUB=$(echo ${KEY} | wg pubkey)
PSK=$(wg genpsk)

echo "PrivateKey = ${KEY}\nPublicKey = ${PUB}\nPresharedKey = ${PSK}"
###

HTH,

R.

-- 
richard lucassen
http://contact.xaq.nl/



Re: WireGuard (was Re: Thunderbird en firefox-esr)

2021-12-05 Berichten over hetzelfde onderwerp Richard Lucassen
On Sun, 5 Dec 2021 12:16:57 +0100
Winfried Tilanus  wrote:

> Aangewakkerd door jouw enthousiasme en de behoefte aan een soepeler 
> alternatief voor OpenVPN, vooral op mijn mobiel (iets met mobiele 
> providers die ik niet vertrouw).
> 
> Dus ik heb gisteren maar een uur of 6 stukgeslagen op het opzetten 
> ervan. Ondanks dat het een eenvoudiger systeem zou moeten zijn dan 
> OpenVPN, heb ik het niet draaiend gekregen:

Even een ding: wireguard is niet een VPN maar een virtual device dat in
kernelspace leeft en waarmee je een virtueel encrypted draadje kunt
trekken naar een ander virtueel device. Een maal het device up and
running heb je een device zonder ip en routing. Vergelijk het met twee
ethernet devices en een stuk kabel. Daar kun je niets mee als je het
niet configt ;-)

Nu zijn er clients waarbij het device niet in kernelspace leeft maar
dat is op zich niet erg.

> Tussen mijn laptop en router doet WireGuard een succesvolle handshake
> en roepen het dat het veel dataverkeer heeft (meerdere GB in minuten
> tijd) maar dat komt nooit bij de ander aan en het is me geen moment
> gelukt het endpoint te pingen. Ik heb de firewall en routing settings
> van mijn werkende OpenVPN setup overgenomen.

Die heb je toch wel gestopt he?

Maar post je configs eens. En wireguard zit pas in kernel 5.6 dacht ik
en vanaf kernel 3.10 moet je zelf de modules bakken (en dat werkt goed
trouwens)

> Op mijn telefoon, Fairphone 2 met Fairphone Open OS (vergelijkbaar
> met Android 9) wil WireGuard de verbinding niet eens activeren: het
> is, in tegenstelling tot mijn OpenVPN app, niet zichtbaar in de bij
> het OS geregistreerde VPN verbindingen en in de app zelf beweert
> WireGuard dat de gebruiker (ik dus) geen toestemming heeft gegeven om
> het als VPN te gebruiken, maar mijn is nooit wat gevraagd en ik kan
> het ook nergens veranderen.

Ik draai LineageOS en dat draait ook op Fairphone2 en dat is Android 11
zo te zien.

> Geen soepele ervaring dus. Maar als iemand me kan redden, dan hoor ik 
> dat graag.

Ik zal zo even een voorbeeldje maken tussen twee laptops. Eerst even
wat anders doen. Voorbeeldjes werken beter dan 100 pagina's uitleg.

-- 
richard lucassen
http://contact.xaq.nl/