GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So richten Sie WireGuard VPN unter Debian 10 ein

WireGuard ist ein Allzweck-VPN (Virtual Private Network), das modernste Kryptografie verwendet. Im Vergleich zu anderen beliebten VPN-Lösungen wie IPsec und OpenVPN ist WireGuard im Allgemeinen schneller, einfacher zu konfigurieren und hat einen geringeren Platzbedarf. Es ist plattformübergreifend und kann fast überall ausgeführt werden, einschließlich Linux, Windows, Android und macOS.

Wireguard ist ein Peer-to-Peer-VPN; es verwendet nicht das Client-Server-Modell. Je nach Konfiguration kann ein Peer als herkömmlicher Server oder Client fungieren. Es funktioniert, indem auf jedem Peer-Gerät eine Netzwerkschnittstelle erstellt wird, die als Tunnel fungiert. Peers authentifizieren sich gegenseitig, indem sie öffentliche Schlüssel austauschen und validieren und das SSH-Modell nachahmen. Öffentliche Schlüssel werden einer Liste von IP-Adressen zugeordnet, die im Tunnel zugelassen sind. Der VPN-Datenverkehr wird in UDP gekapselt.

Dieser Artikel erklärt, wie man WireGuard auf Debian 10 installiert und konfiguriert, das als VPN-Server fungiert. Wir zeigen Ihnen auch, wie Sie WireGuard als Client unter Linux, Windows und macOS konfigurieren. Der Datenverkehr des Clients wird über den Debian 10-Server geleitet.

Diese Einrichtung kann als Schutz vor Man-in-the-Middle-Angriffen, anonymem Surfen im Internet, Umgehung geografisch eingeschränkter Inhalte oder als Schutz für Ihre Kollegen, die von zu Hause aus arbeiten, verwendet werden, um sich sicher mit dem Unternehmensnetzwerk zu verbinden.

Voraussetzungen #

Um dieser Anleitung zu folgen, benötigen Sie einen Computer, auf dem Debian 10 installiert ist. Sie benötigen außerdem Root- oder [sudo-Zugriff](https://linuxize.com/post/how-to-create-a-sudo-user-on-debian/, um Pakete zu installieren und Änderungen am System vorzunehmen.

Einrichten des WireGuard-Servers #

Wir beginnen mit der Installation des WireGuard-Pakets auf dem Debian-Rechner und richten es so ein, dass es als Server fungiert. Wir werden das System auch so konfigurieren, dass es den Datenverkehr der Clients durchleitet.

Installieren Sie WireGuard auf Debian 10 #

WireGuard ist in den Debian-Backports-Repositories verfügbar. Um das Repository zu Ihrem System hinzuzufügen, führen Sie Folgendes aus:

echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list

Sobald das Repository aktiviert ist, aktualisieren Sie den apt-Cache und installieren Sie das WireGuard-Modul und die Tools:

sudo apt updatesudo apt install wireguard
WireGuard läuft als Kernel-Modul.

WireGuard konfigurieren #

Sie können die WireGuard-Schnittstellen mit dem wg konfigurieren und verwalten und wg-quick Befehlszeilentools.

Jedes Gerät im WireGuard VPN-Netzwerk muss über einen privaten und öffentlichen Schlüssel verfügen. Führen Sie den folgenden Befehl aus, um das Schlüsselpaar zu generieren:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Die Dateien werden im Verzeichnis /etc/wireguard generiert Verzeichnis. Verwenden Sie die cat oder less Befehle, um den Inhalt der Dateien anzuzeigen. Der private Schlüssel sollte niemals an Dritte weitergegeben und immer sicher aufbewahrt werden.

Wireguard unterstützt auch einen vorinstallierten Schlüssel, der eine zusätzliche Ebene der Kryptografie mit symmetrischen Schlüsseln hinzufügt. Dieser Schlüssel ist optional und muss für jedes Peer-Paar eindeutig sein.

Der nächste Schritt besteht darin, das Tunnelgerät zu konfigurieren, das den VPN-Datenverkehr weiterleitet.

Das Gerät kann entweder über die Kommandozeile mit ip eingerichtet werden und wg Befehlen oder durch manuelles Erstellen der Konfigurationsdatei. Wir erstellen die Konfiguration mit einem Texteditor.

Öffnen Sie Ihren Editor und erstellen Sie eine neue Datei namens wg0.conf mit folgendem Inhalt:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

Sie können die Schnittstelle beliebig benennen. Es wird jedoch empfohlen, etwas wie wg0 zu verwenden oder wgvpn0 .

Die Einstellungen im Interface-Bereich haben folgende Bedeutung:

  • Adresse – Eine durch Kommas getrennte Liste von v4- oder v6-IP-Adressen für wg0 Schnittstelle. Sie können eine IP-Adresse aus einem für private Netzwerke reservierten Bereich (10.0.0.0/8, 172.16.0.0/12 oder 192.168.0.0/16) vergeben.

  • ListenPort - Der Überwachungsport.

  • PrivateKey - Ein privater Schlüssel, der von wg genkey generiert wird Befehl. (Um den Inhalt der Datei anzuzeigen, geben Sie Folgendes ein:sudo cat /etc/wireguard/privatekey )

  • SaveConfig - Wenn auf true gesetzt, wird der aktuelle Zustand der Schnittstelle beim Herunterfahren in der Konfigurationsdatei gespeichert.

  • PostUp – Befehl oder Skript, das ausgeführt wird, bevor die Schnittstelle aufgerufen wird. In diesem Beispiel verwenden wir iptables, um Masquerading zu aktivieren. Dadurch kann der Datenverkehr den Server verlassen und den VPN-Clients Zugriff auf das Internet geben.

    Achten Sie darauf, ens3 zu ersetzen nach -A POSTROUTING um mit dem Namen Ihrer öffentlichen Netzwerkschnittstelle übereinzustimmen. Sie können die Schnittstelle leicht finden mit:

    ip -o -4 route show to default | awk '{print $5}'
  • PostDown - Ein Befehl oder Skript, das ausgeführt wird, bevor die Schnittstelle heruntergefahren wird. Die iptables-Regeln werden entfernt, sobald die Schnittstelle heruntergefahren ist.

Die wg0.conf und privatekey Dateien sollten für normale Benutzer nicht lesbar sein. Verwenden Sie chmod um die Dateiberechtigungen auf 600 zu setzen :

sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Wenn Sie fertig sind, bringen Sie wg0 mit Schnittstelle unter Verwendung der in der Konfigurationsdatei angegebenen Attribute:

sudo wg-quick up wg0

Die Ausgabe sieht in etwa so aus:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Um den Status und die Konfiguration der Schnittstelle zu überprüfen, führen Sie Folgendes aus:

sudo wg show wg0
interface: wg0
  public key: +Vpyku+gjVJuXGR/OXXt6cmBKPdc06Qnm3hpRhMBtxs=
  private key: (hidden)
  listening port: 51820

Sie können den Schnittstellenstatus auch mit ip a show wg0 überprüfen :

ip a show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

WireGuard kann mit Systemd verwaltet werden. Führen Sie den folgenden Befehl aus, um die WireGuard-Schnittstelle beim Booten anzuzeigen:

sudo systemctl enable wg-quick@wg0

Server-Netzwerk- und Firewall-Konfiguration #

Die IP-Weiterleitung muss aktiviert sein, damit NAT funktioniert. Öffnen Sie die /etc/sysctl.conf Datei und fügen Sie die folgende Zeile hinzu oder kommentieren Sie sie aus:

sudo nano /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward=1

Speichern Sie die Datei und wenden Sie die Änderung an:

sudo sysctl -p
net.ipv4.ip_forward = 1

Wenn Sie UFW verwenden, um Ihre Firewall zu verwalten, müssen Sie UDP-Datenverkehr auf Port 51820 öffnen :

sudo ufw allow 51820/udp

Das ist es. Der Debian-Peer, der als Server fungieren wird, wurde eingerichtet.

Linux- und macOS-Client-Setup #

Die Installationsanweisungen für alle unterstützten Plattformen sind unter https://wireguard.com/install/ verfügbar. Auf Linux-Systemen können Sie das Paket mit dem Paketmanager der Distribution und auf macOS mit brew installieren .

Führen Sie nach der Installation die folgenden Schritte aus, um das Client-Gerät zu konfigurieren.

Der Prozess zum Einrichten eines Linux- und MacOS-Clients ist ziemlich gleich wie beim Server. Generieren Sie zuerst die öffentlichen und privaten Schlüssel:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Erstellen Sie die Datei wg0.conf und fügen Sie den folgenden Inhalt hinzu:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

Die Einstellungen im Interface-Bereich haben die gleiche Bedeutung wie beim Einrichten des Servers:

  • Adresse – Eine durch Kommas getrennte Liste von v4- oder v6-IP-Adressen für wg0 Schnittstelle.
  • PrivateKey - Um den Inhalt der Datei auf dem Client-Rechner anzuzeigen, führen Sie Folgendes aus:sudo cat /etc/wireguard/privatekey

Der Peer-Abschnitt enthält die folgenden Felder:

  • PublicKey – Ein öffentlicher Schlüssel des Peers, mit dem Sie sich verbinden möchten. (Der Inhalt der Datei /etc/wireguard/publickey des Servers Datei).
  • Endpunkt – Eine IP oder ein Hostname des Peers, mit dem Sie sich verbinden möchten, gefolgt von einem Doppelpunkt und dann einer Portnummer, auf der der entfernte Peer lauscht.
  • AllowedIPs – Eine durch Kommas getrennte Liste von v4- oder v6-IP-Adressen, von denen eingehender Datenverkehr für den Peer zulässig ist und an die ausgehender Datenverkehr für diesen Peer geleitet wird. Wir verwenden 0.0.0.0/0, weil wir den Datenverkehr leiten und möchten, dass der Server-Peer Pakete mit einer beliebigen Quell-IP sendet.

Wenn Sie weitere Clients konfigurieren müssen, wiederholen Sie einfach dieselben Schritte mit einer anderen privaten IP-Adresse.

Windows-Client-Setup #

Laden Sie das Windows-msi-Paket von der WireGuard-Website herunter und installieren Sie es.

Öffnen Sie nach der Installation die WireGuard-Anwendung und klicken Sie auf „Tunnel hinzufügen“ -> „Leeren Tunnel hinzufügen…“, wie im Bild unten gezeigt:

Ein PublicKey-Paar wird automatisch erstellt und auf dem Bildschirm angezeigt.

Geben Sie einen Namen für den Tunnel ein und bearbeiten Sie die Konfiguration wie folgt:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

Fügen Sie im Interface-Abschnitt eine neue Zeile hinzu, um die Client-Tunnel-Adresse zu definieren.

Fügen Sie im Peer-Abschnitt die folgenden Felder hinzu:

  • PublicKey - Der öffentliche Schlüssel des Debian-Servers (/etc/wireguard/publickey Datei).
  • Endpunkt – Die IP-Adresse des Debian-Servers, gefolgt von einem Doppelpunkt und dem WireGuard-Port (51820).
  • Erlaubte IPs - 0.0.0.0/0

Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „Speichern“.

Fügen Sie den Client-Peer zum Server # hinzu

Der letzte Schritt besteht darin, den öffentlichen Schlüssel und die IP-Adresse des Clients zum Server hinzuzufügen. Führen Sie dazu den folgenden Befehl auf dem Debian-Server aus:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

Achten Sie darauf, den CLIENT_PUBLIC_KEY zu ändern mit dem öffentlichen Schlüssel, den Sie auf dem Client-Rechner generiert haben (sudo cat /etc/wireguard/publickey ) und passen Sie die Client-IP-Adresse an, falls sie sich unterscheidet. Windows-Benutzer können den öffentlichen Schlüssel aus der WireGuard-Anwendung kopieren.

Wenn Sie fertig sind, gehen Sie zurück zum Client-Rechner und rufen Sie die Tunneling-Schnittstelle auf.

Linux- und macOS-Clients #

Führen Sie den folgenden Befehl aus, um die Schnittstelle aufzurufen:

sudo wg-quick up wg0

Jetzt sollten Sie mit dem Debian-Server verbunden sein und der Datenverkehr von Ihrem Client-Rechner sollte darüber geleitet werden. Sie können die Verbindung überprüfen mit:

sudo wg
interface: wg0
  public key: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo=
  private key: (hidden)
  listening port: 53527
  fwmark: 0xca6c

peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
  endpoint: XXX.XXX.XXX.XXX:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 53 seconds ago
  transfer: 3.23 KiB received, 3.50 KiB sent

Sie können auch Ihren Browser öffnen, „was ist meine IP“ eingeben und Sie sollten die IP-Adresse Ihres Debian-Servers sehen.

Um das Tunneln zu stoppen, bringen Sie wg0 herunter Schnittstelle:

sudo wg-quick down wg0

Windows-Clients #

Wenn Sie WireGuard unter Windows installiert haben, klicken Sie auf die Schaltfläche „Aktivieren“. Sobald die Peers verbunden sind, ändert sich der Tunnelstatus zu Aktiv:


Debian
  1. So richten Sie Wireguard VPN auf CentOS 8 ein

  2. So richten Sie WireGuard VPN unter Ubuntu 20.04 ein

  3. So richten Sie WireGuard VPN auf Ubuntu ein (eine Schritt-für-Schritt-Anleitung)

  4. Festlegen einer statischen IP auf Debian 11 - Wie geht das?

  5. So richten Sie einen SFTP-Server auf Debian 11 Server ein

Richten Sie Ihren eigenen WireGuard VPN-Server auf Debian 11 &Debian 10 ein

So ändern Sie den Hostnamen unter Debian 10

So installieren Sie Wireguard unter Debian 10

So installieren Sie Wireguard unter Debian 11

So richten Sie WireGuard VPN unter Debian 11 ein

So richten Sie WireGuard VPN unter Linux ein