Een WireGuard-tunnel starten als systemd-service
De sjabloon wg-quick@ brengt een genoemd profiel omhoog en installeert routes, DNS en hooks. Controleer de unit, houd één beheerder verantwoordelijk en test het afbreken.
Je hebt een WireGuard-profiel op /etc/wireguard/wg0.conf en wilt het omhoog hebben zonder na elke herstart wg-quick up met de hand te typen. De systemd-sjabloon uit het pakket doet precies dat: [email protected] voert wg-quick uit voor het profiel met de naam wg0. Hij installeert ook adressen, routes, DNS en eventuele hooks die het profiel aangeeft, wat meer is dan alleen een sleutel in de kernel laden. Controleer of de sjabloon op je systeem bestaat voordat je aanneemt dat dat zo is.
De rest van deze handleiding volgt de volgorde waarin je het echt zou doen.
Vind de unit en het profiel dat hij leest
Toon de unitbestanden met systemctl list-unit-files 'wg-quick*'. Op distributies die hem verpakken zie je [email protected], waarbij de instantienaam uit het profiel komt. De instantie verwijst naar /etc/wireguard/<name>.conf, dus wg-quick@wg0 leest alleen wg0.conf en niets anders. Als de lijst leeg is, is het gereedschapspakket niet geïnstalleerd en helpt geen enkele mate van inschakelen.
Houd het profiel op modus 600 en eigendom van root. Het bevat een privésleutel, en de unit draait graag met slechtere rechten als je dat toelaat.
Breng hem omhoog en lees het journaal
Start de instantie met systemctl start wg-quick@wg0 en controleer daarna systemctl status wg-quick@wg0 en journalctl -u wg-quick@wg0 -b. Een unit die start en meteen stopt heeft meestal een profielfout, en het journaal noemt de regel. Bevestig met wg show dat de interface bestaat en dat de laatste handshake recent is. De wg-quick-handleiding somt op wat het script buiten de interface zelf doet.
Een geconfigureerde interface zonder handshake is een pad- of sleutelprobleem, geen serviceprobleem.
Houd één beheerder aan het roer
Als NetworkManager of een andere client de tunnel al bezit, maakt het starten van de systemd-unit een tweede eigenaar voor dezelfde interface, routes en DNS. De symptomen zijn verwarrend: de tunnel komt omhoog, dan verdwijnen de routes, of DNS springt na een paar seconden terug. Kies één beheerder en schakel de andere voor dat profiel uit. Het journaal toont de overname meestal als route- of resolverwijzigingen direct nadat de unit succes meldt.
Twee beheerders delen geen eigendom. Ze overschrijven elkaar.
Test stoppen, herstarten en opstarten
Voer systemctl stop wg-quick@wg0 uit en bevestig dat de interface weg is en de routes verwijderd zijn. Start hem daarna opnieuw en controleer dat de routes terugkomen, want fouten bij het afbreken uiten zich als achtergebleven routes en niet als mislukte starts. Schakel hem ten slotte bij het opstarten in met systemctl enable --now wg-quick@wg0 en herstart één keer.
Bij het opstarten moet de naam van het eindpunt worden opgelost voordat de unit draait. Als DNS nog niet actief is, faalt de unit en blijft hij falen tot je hem met de hand start.
Leg de eigenaar vast
Schrijf op welk profiel de unit leest, welke beheerder de interface bezit en waar het bestand vandaan kwam. Wanneer iemand later dezelfde tunnel in een desktopclient importeert, is die notitie het verschil tussen een migratie en twee uitrollen die om één adres vechten. Leg ook de interfacenaam vast, want twee profielen met vergelijkbare namen zijn de gebruikelijke bron van verwarring.
Een tunnel met twee eigenaren werkt tot de eerste herstart, en dan is het een raadsel. Daarom hoort de notitie in de repository en niet in een chatthread.