Wireguard: Private-Key mit GPG verschlüsselt speichern
Um sich mit einem Wireguard-VPN zu verbinden, wird der eigene private Schlüssel (Private-Key) benötigt. Die Private-Key-Datei ist normalerweise im Konfigurationsvereichnis von Wireguard abgespeichert (siehe auch Wireguard unter Ubuntu einrichten). Aus Sicherheitsgründen sollte die Datei nur Schreibrechte für Root bzw. den Administrator des Systems haben, weil der Private-Key unverschlüsselt gespeichert ist.
Alternativ besteht mithilfe von wg-quick und GPG auch die Möglichkeit den Private-Key verschlüsselt zu speichern. Wie das funktioniert, zeigt dieser Beitrag.
Private-Key mit GPG verschlüsseln
Für dieses Beispiel wird angenommen, dass sich der unverschlüsselte Private-Key im Verzeichnis /etc/wireguard
in der Datei client.private-key
befindet. Der Private-Key soll nun mit dem eigenen GPG-Schlüssel verschlüsselt im eigenen Home-Verzeichnis gespeichert werden. Hierzu dient folgender Befehl:
Den Empfänger (--recipient
) müsst ihr anpassen. Hier müsst ihr euren Namen bzw. eure E-Mail-Adresse, die mit eurem GPG-Public-Key assoziiert ist, angeben. Der Private-Key von Wireguard wird dann mit eurem GPG-Public-Key verschlüsselt. Entschlüsseln lässt sich die erzeugte Datei client.private-key.gpg
dann nur noch mit eurem GPG-Private-Key.
Wireguard-Konfiguration anpassen
Jetzt müssen wir noch die Wireguard-Konfigurationsdatei anpassen. In meinem Fall handelt es sich dabei um my-vpn.conf
in /etc/wireguard
. Aktuell sieht die Datei bei mir wie folgt aus:
Die Zeile mit dem PrivateKey
benötigen wir nicht mehr. Stattdessen nutzen wir einen von wg-quick unterstützten Hook namens PostUp
. Hierdurch können wir ein Command angeben, welches nach dem Start des Wireguard-Interface ausgeführt wird. Außerdem machen wir uns Folgendes zu Nutze:
Die Konfigurationsdatei wird nun wie folgt angepasst:
Den Benutzer für su
müsst ihr um euren eigenen Benutzer abändern.
Wireguard-VPN neustarten
Das einzige was noch fehlt, ist das Wireguard-VPN-Interface neuzustarten:
Ihr solltet nun aufgefordert werden eure GPG-Passphrase einzugeben. Durch die korrekte Eingabe der Passphrase wird der Wireguard-Private-Key entschlüsselt. Anschließend könnt ihr euer Wireguard-VPN ganz normal verwenden.
Fazit
Mit GPG kann bei Bedarf der Private-Key eines Wireguard-VPNs ohne großen Aufwand verschlüsselt gespeichert werden. Alternative Möglichkeiten sind z.B. der Einsatz des Passwort-Managers pass, oder die Speicherung des Private-Keys auf einem Hardware-Security-Token (YubiKey, NitroKey etc.).