Ubuntu Desktop als WireGuard VPN Client konfigurieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

VPNs (Virtual Private Networks) ermöglichen einen verschlüsselten Zugriff von einem Rechner über das Internet hin zu einem anderen Rechner oder Netzwerk. In diesem Artikel zeigen wir, wie Sie via WireGuard am Beispiel eines Ubuntu 20.04 und 18.04 LTS Desktop Client Rechner mit einer zentralen OPNsense-basierten Firewall verbinden. Die Installation und Konfiguration einer OPNsense Firewall wird im Wikiartikel OPNsense WireGuard VPN für Road Warrior einrichten erläutert.

Installation

Bei Ubuntu 20.04 ist WireGuard bereits in den Universe Paketquellen enthalten, Sie können WireGuard direkt installieren:[1]

$ sudo apt install wireguard

Für die Installation unter Ubuntu (bis 18.04) führen Sie die folgenden Kommandos aus:[2]

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt update
$ sudo apt install wireguard

Dadurch werden die Pakete wireguard, wireguard-dkms und wireguard-tools installiert.

Konfiguration

Der folgende Abschnitt zeigt die Konfiguration eines WireGuard Clients unter Ubuntu 20.04 und 18.04.2 LTS.

WireGuard Private- und Public-Key für den Ubuntu Rechner erzeugen

Für eine erfolgreiche Verbindung benötigt jeder Teilnehmer an einem WireGuard VPN eigene Private- und Public-Keys. Sie können diese bequem mit dem nachfolgenden Befehl erzeugen. Die umask wird auf 077 gesetzt, um alle anderen User außer root den Zugriff zu verweigern.

$ sudo -i
# cd /etc/wireguard
# umask 077
# wg genkey > private-key
# wg pubkey > public-key < private-key

Dauerhafte Konfiguration anlegen

Wie Sie eine dauerhafte, auch einen Neustart überstehende, Konfiguration erzeugen wird in diesem Abschnitt beschrieben.

Erstellen Sie dazu beispielsweise mit dem Editor vim die neue Datei wg0.conf:

$ sudo vi /etc/wireguard/wg0.conf

Fügen Sie nun in diese Datei die folgenden Zeilen ein. Speichern und verlassen des vim können Sie anschließend mittels :x. Für ein besseres Verständnis sind die einzelnen Zeilen per Inline-Kommentar beschrieben.

[Interface]
Address = <Konfigurierte Client IP>/<Netmask> // Zum Beispiel die IP "10.11.0.20/32"
PrivateKey = <Private Key des Clients>

[Peer]
PublicKey = <Public Key der OPNsense Wireguard Instanz>
AllowedIPs = <Netzwerke auf die dieser Client Zugriff haben soll>/<Netmask>
             // Zum Beispiel "10.11.0.0/24, 192.168.1.0/24"
             //               |             |
             //               +--> der Netzwerkbereich des OPNsense WireGuard VPNs
             //                             |
             //                             +--> Netzwerk hinter der Firewall
Endpoint = <Public IP der OPNsense Firewall>:<WireGuard Port>

Systemd Service anlegen

Das WireGuard VPN kann über einen Systemd Service gesteuert werden, damit beim Starten von Ubuntu das VPN automatisch aufgebaut wird.

$ sudo systemctl enable wg-quick@wg0.service 

Kommandos zur Steuerung des Systemd Services:

$ sudo systemctl start wg-quick@wg0.service
$ sudo systemctl status wg-quick@wg0.service
$ sudo systemctl stop wg-quick@wg0.service

Pre-Shared Key als zusätzliche Sicherheit

Die Verbindung kann optional auch mittels eines zusätzlichen Pre-Shared Keys weiter abgesichert werden.[3]

Sie können mit dem Tool wg bequem einen Pre-Shared Key erzeugen:

$ sudo wg genpsk > presharedkey

Fügen Sie anschließend die folgende Zeile in die Sektion [Peers] der WireGuard Konfiguration, in diesem Beispiel wg0.conf, ein.

Presharedkey = <Pre-Shared Key>

Verbindung prüfen

Die Verbindung kann nach dem Start des Systemd Services geprüft werden. Mit systemctl status wg-quick@wg0.service kann, wie oben beschrieben, der Status des Services geprüft werden.

Darüberhinaus kann mit dem Kommando wg der Status der WireGuard Verbindung (ohne Pre-shared Key) angezeigt werden. Falls die Verbindung nicht aufgebaut bzw der Systemd Service beendet ist, liefert wg keine Ausgabe:

$ sudo wg
interface: wg0
  public key: <Public-Key des WireGuard Clients>
  private key: (hidden)
  listening port: 45062

peer: <Public-Key der OPNsense WireGuard Instanz>
  endpoint: <Öffentliche IP der OPNsense Firewall>:<WireGuard Port>
  allowed ips: 10.11.0.0/24, 192.168.1.0/24
  latest handshake: 17 seconds ago
  transfer: 6.98 KiB received, 10.82 KiB sent

Einzelnachweise


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

Grafana Installation und Konfiguration unter Ubuntu Server 18.04 LTS
Locales unter Ubuntu konfigurieren
Ubuntu Syslog