1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Netzwerk und Sicherheit
  • Alles
  • Netzwerk und Sicherheit
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Lexikon
  3. Netzwerk und Sicherheit

WireGuard Site-To-Site VPN

  • aebian
  • 4. Januar 2025 um 15:32
  • 530 mal gelesen
  • Kurzer Eintrag um die Einrichtung eines Site-To-Site VPNs mit Wireguard zu zeigen.

    1 General

    Fuer sichere Kumminikation zwischen Servern kann es ratsam sein, einen VPN tunnel auf zu bauen.
    Dies erlaubt eine verschluesselte Verbindung zwischen zwei Endpunkten. In diesem Guide beschreibe ich zwei Wege dies zu tun.

    Endpunkt 1 wird im Guide als "Server" bezeichnet. Endpunkt 2 als "Client".

    2 Installation (monolithic architecture, based on Debian in this chapter)

    Simple, but just in case:

    Code
    sudo apt-get install wireguard

    Das wars.


    2.1 Server Configuration & Setup

    Erstellen eines Public and Private Key fuer den Server:

    Code
    umask 077
    wg genkey | tee privatekey | wg pubkey > publickey

    Erstelle eine config Datei unter /etc/wireguard/wg0.conf:

    Code
    [Interface]
    Address = 10.170.10.1/32
    ListenPort = 44660
    PrivateKey = SERVER_PRIVATE_KEY
    
    [Peer]
    PublicKey = CLIENT_PUBLIC_KEY
    AllowedIPs = 10.170.10.2/32

    Stelle sicher, dass die IP address range nicht in Benutzung am Server Client ist. Ersetze den Private Key mit dem vorher Erzeugten.
    Aktiviere den Service um die Verwaltung zu vereinfachen und ein automatisches Starten zu erwirken:

    Code
    sudo systemctl enable wg-quick@wg0.service


    2.2 Client Configuration & Setup

    Erstellen eines Public and Private Key fuer den Client:

    Code
    umask 077
    wg genkey | tee privatekey | wg pubkey > publickey

    Erstelle eine config Datei unter /etc/wireguard/wg0.conf:

    Code
    [Interface]
    Address = 10.170.10.2/32
    PrivateKey = CLIENT_PRIVATE_KEY
    
    [Peer]
    PublicKey = SERVER_PUBLIC_KEY
    AllowedIPs = 10.170.10.1/32
    Endpoint = PUBLIC_SERVER_IP:44660

    Stelle sicher, dass die IP address range nicht in Benutzung am Server Client ist. Ersetze den Private Key mit dem vorher Erzeugten.
    Aktiviere den Service um die Verwaltung zu vereinfachen und ein automatisches Starten zu erwirken:

    Code
    sudo systemctl enable wg-quick@wg0.service


    2.3 Final Configuration & Start

    Auf sowohl Server als auch auf dem Client muss sichergestellt werden, dass die entsprechenden Public Keys korrekt eingetragen sind.
    Starten des Server Endpunkt und anschliessend des Client Endpunkt mit:

    Code
    sudo systemctl start wg-quick@wg0.service

    Fuer Statistics im Bezug auf Verbindungen kann der folgende Command genutzt werden:

    Code
    sudo wg show


    3 Installation (containerised approach, based on Docker in this chapter)

    3.1 General

    Eine Alternative zu der monolithic architecture ist die Verwendung von Docker. Vorteile sind einfache Wartbarkeit und der Austausch des Root-Systems bei z.B. Updates.

    3.2 Installation & Configuration

    Code
    services:
     vpn_example_com: #vpn.example.com
       image: lscr.io/linuxserver/wireguard:latest
       cap_add:
         - NET_ADMIN
         - SYS_MODULE #optional
       environment:
         - PUID=1000
         - PGID=1000
         - TZ=Europe/Copenhagen
         - SERVERURL=vpn.example.com
         - SERVERPORT=51820
         - PEERS=2 # wie viele clients sollen erstellt werden
         - PEERDNS=10.122.20.3 # Alternativer DNS statt der vom Container, optional.
         - INTERNAL_SUBNET=10.150.0.0 # Internes Subnet vom VPN
         - ALLOWEDIPS=0.0.0.0/0 # falls man auf IP Netze einschraenken will.
         - LOG_CONFS=true #optional
       volumes:
         - /data/docker/persistent/stackname/vpn.example.com/config:/config
         - /lib/modules:/lib/modules
       dns:
         - 10.122.20.3
       ports:
         - 2362:51820/udp
       sysctls:
         - net.ipv4.conf.all.src_valid_mark=1
       restart: unless-stopped
       networks:
         nhcloudnet-nhsites-sec-prod:
             ipv4_address: 10.122.24.20
    Alles anzeigen

    Das oben ist eine Example docker-compose welche natuerlich angepasst werden muss. Der Published Port ist 2362, kann aber auch auf den default belassen werden.


    Die Private Keys und weiteren Infos wie z.B. den Code mit der Einrichtung findet ihr dann nach dem starten des Containers unter /data/docker/persistent/stackname/vpn.example.com/config/ dort dann jeweils pro Peer einen Ordner:

    • vpn
    • WireGuard
    • wg0
    • wg
    • site-to-site

Teilen

  • PDF

In anderen Sprachen

  • WireGuard Site-To-Site VPN

Inhaltsverzeichnis

  • 1 General
  • 2 Installation (monolithic architecture, based on Debian in this chapter)
    • 2.1 Server Configuration & Setup
    • 2.2 Client Configuration & Setup
    • 2.3 Final Configuration & Start
  • 3 Installation (containerised approach, based on Docker in this chapter)
    • 3.1 General
    • 3.2 Installation & Configuration

Kategorien

  1. Programmierung 0
  2. Webentwicklung 1
  3. Netzwerk und Sicherheit 2
    1. Netzwerktechnik 0
    2. Cybersecurity 0
    3. Nerzwerkprotokolle 0
  4. Systemadministration 4
  5. Hardware 0
  6. Software Entwicklungstools 0

Rechtliches

Impressum

Datenschutzerklärung