Benutzer-Werkzeuge

Webseiten-Werkzeuge


vpn:ubuntu_lts_wireguard_wireguard-ui_fortigate_ein_sicheres_gespann

Dies ist eine alte Version des Dokuments!


Ubuntu LTS + Wireguard + Wireguard-UI + Fortigate → Ein "sicheres" Gespann

Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! 🙏


Zum frei verfügbaren Apt-Repository
GITLAB:

Dieses HowTo befindet sich noch in der Fertigstellung!

Einleitung

Da ich selbst Fortigate verwende, SSL-VPN mehr als nur unsicher ist, und IPSEC auf Linuxclientseite einfach unkonfgurierbar ist, suchte ich nach einer Lösung die einfach bedienbar und einen aktuellen Sicherheitsstandard aufweist. Wireguard erfüllte diese Dinge zum Zeitpunkt dieses Artikels. Um das ganze noch eleganter zu gestalten, verwenden wir für unser Setup auch zusätzlich Wireguard-UI über Docker. Das besonder ist das Wireguard-UI die Möglichkeit bietet das lokale Wireguard Binary zu verwenden. In Verbindung mit UbuntuPro ist das Wireguard Binary damit auch immer am aktuellsten Stand → es wird direkt von Canonical bereit gestellt. UbuntuPro ist für Privatanwender kostenlos. Zusätzlich installieren wir in diesem HowTo auch einen Nginx-Webserver als Proxy mit TLS-Verschlüsselung, damit das Passwort beim Login im Webinterface auch verschlüsselt übertragen wird.

Voraussetzungen

  • Ubuntu 24.04 LTS in einer bevorzugten Form. Ich verwende es hier auf Proxmox VE als Qemu/KVM.
  • Optional: Fortigate → Natürlich es geht auch ohne ;)

Installation

Logge dich auf deinem Ubuntu Server per SSH ein und installiere folgende Pakete:

apt install nginx wireguard docker-compose-v2 zsh

Als nächstes erstellen wir unser Compose-File auf Grundlange von hier. Auskommentierte Optionen können bei Bedarf einkommentiert und verwendet werden. Zusätzliche Variablen können von der Dokumenation hinzugefügt werden.

Das folgende File speichere auf einen Ort deiner Wahl ab. Z.B. /docker/compose-files

docker-compose.yml
services:
  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    restart: always
    container_name: wireguard-ui
    cap_add:
      - NET_ADMIN
    # required to show active clients. with this set, you don't need to expose the ui port (5000) anymore
    network_mode: host
    environment:
     # - SENDGRID_API_KEY
     # - EMAIL_FROM_ADDRESS
     # - EMAIL_FROM_NAME
     # - SESSION_SECRET
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=admin
      - WGUI_DNS=5.1.66.255,185.150.99.255
     # - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=false
      - WGUI_MANAGE_RESTART=true
     # - SMTP_HOSTNAME
     # - SMTP_PORT=465
     # - SMTP_USERNAME
     # - SMTP_PASSWORD
     # - SMTP_AUTH_TYPE=LOGIN
     # - SMTP_ENCRYPTION=SSLTLS
      - BIND_ADDRESS=127.0.0.1:5000
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - /etc/wireguard:/etc/wireguard

Nun kann der Container gestartet werden:

docker compose up -d

Nach dem Start kannst den laufenden Compose wie folgt anzeigen:

docker compose ls

WireGuard-UI kümmert sich nur um die Generierung der Konfiguration. Du kannst systemd verwenden, um die Änderungen zu überwachen und den Dienst neu zu starten:

cd /etc/systemd/system/
cat << EOF > wgui.service
[Unit]
Description=Restart WireGuard
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service

[Install]
RequiredBy=wgui.path
EOF

Und:

cd /etc/systemd/system/
cat << EOF > wgui.path
[Unit]
Description=Watch /etc/wireguard/wg0.conf for changes

[Path]
PathModified=/etc/wireguard/wg0.conf

[Install]
WantedBy=multi-user.target
EOF

Und den Service aktivieren:

systemctl enable wgui.{path,service}
systemctl start wgui.{path,service}
vpn/ubuntu_lts_wireguard_wireguard-ui_fortigate_ein_sicheres_gespann.1751920068.txt.gz · Zuletzt geändert: von loma