Re: WireGuard (was Re: Thunderbird en firefox-esr)
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)
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)
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)
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/