WireGuard VPN Server mit Web Interface einrichten

also müsste ich auf der server config dann unter allowed ips die ip des VPN-netzes ergänzen?
sporich die 10.252.1.0/24 als wildcard für das gesamte VPN-Netz?
verstehe ich das so dann richtig?
wäre dann für jeden client ein zu tragen auch entsprechend oder wie muss das genau angepasst werden im webinterface unter server-settings habe ich dazu keine option lediglich die allowed ips in den client-configurationen.

greets

Thh

ja richtig, im Webinterface unter Wireguard Clients den Client editieren und unter Allowed Ips das Netz 10.252.1.0/24 eintragen. danach den client reconnecten und es sollte gehen.

Perfekt :slight_smile:
wie sagt man so schön „Jetzt funktionierts auch mit den nachbarn“ :joy:

vielen dank für die schnelle Rückmeldung und die sehr hilfreichen antworten!
würde hier vorschlagen vielleicht in der Anleitung eine ergänzung zu machen gibt vielleicht den ein oder anderen der das auch braucht :innocent:

greets

Thh

1 „Gefällt mir“

mhh das war nicht notwendig, war default nicht 0.0.0.0/0 ?

Und einen Hinweissatz habe ich dazu in der Anleitung:
Allowed IPs ist das Netzwerk, welches der Client über den VPN Tunnel erreichen darf. Default ist das komplette Internet und somit auch das Routing des gesamten Traffics durch den Tunnel. Ihr könnt dort auch eure internen Netzwerke eintragen und der normale Internet Traffic geht dann nicht mehr durch den VPN Tunnel.

ja aber mit dem default eintrag mit 0.0.0.0/0 funktioniert es offensichtlich nicht das die clienten innerhalb des VPN untereinander reden dürfen, lediglich wird hier jeglicher traffic durch den VPN geroutet und ermöglicht dann den internet zugriff aber eine kommunikation zw. den clienten ist nicht möglich gewesen ohne den eintrag des VPN netzes in die Allowed IP zu setzen, sobald ich auch den VPN starte hab ich auch kein zugriff mehr zu meinem normalen Heimnetzwerk weil auch diese anfragen durch den VPN routen müsste hier vermutlich auch den eintrag setzen für :thinking:

greets

Thh

ok passe ich in der Anleitung an.
Nein das Heimnetzwerk darf nicht im VPN Subnetz liegen! Sonst wird es in den Tunnel geschickt und das wäre falsch.

Hallo zusammen,

ich habe meinen Wireguard Server nach dieser Anleitung auf meinem proxmox-Server in einem lxc-Container (Debian 12) zum Laufen gebracht und kann mich auch mit Android-Clients verbinden, so dass ich unterwegs auf Heimnetzwerk-Geräte zugreifen kann.

Auch habe ich weitere Clients auf dem Wireguard-Server konfiguriert (WebUI → Wireguard Clients → New Client) und die Konfiguration auf ein iPhone übertragen (mittels QR-Code in der Wireguard-App gescannt).

Versuche ich nun mit dem iPhone ins Heimnetz zu gelangen, wird keine Verbindung aufgebaut - will heissen, dass der iPhone-Client gar nicht in der Status-Übersicht des Wireguard-WebUI auftaucht und die Wireguard App auf dem iPhone auch keine Datenübertragung anzeigt, ausser, dass sich die Menge der gesendeten Daten ab und an leicht erhöht (Versuch, eine Verbindung/Handshake aufzubauen?).

Muss ich zusätzliche Einstellungen auf dem Wireguard-Server vornehmen (PostUp-, PreDown-, PostDown-Script, …) oder liegt es eventuell an der Client-Konfiguration oder am iPhone selbst?

Gruss

wahoonie76

Guten Morgen,

ich kann dir leider bei iPhone nicht helfen, evtl jemand anderes…
Frag gerne auch mal im Chatraum nach Chat - adminForge

Grüße

Hi,
vielen Dank für die Anleitung, damit hab ich es nach einigem Probieren auch ans Laufen gebracht.

3 Kleinigkeiten haben mich als Anfänger ein bisschen aufgehalten, vielleicht wäre das eine Ergänzung in der Anleitung wert:

Auf die Portfreigabe für die VPN Verbindung wird ja hingewiesen, vielleicht auch kurz an Port 5000 erinnern. Daran scheiterte nämlich mein erster Aufruf der WebUI.

Nach dem Aufrufen der UI konnte ich zwar erfolgreich die Logindaten eingeben aber das eigentliche Menü lud nicht. Hier half mir ein Mal den Server neu zu starten.

Und zu guter letzt hatte ich ein bisschen Probleme mein Interface zu finden. Ich hatte den Befehl googlen müssen, soweit nicht schlimm, aber mit ip a wird dann auch der altname angezeigt, den ich als erstes sah und genutzt habe. Damit hat es nicht funktioniert.
Erst nach dem Wechsel auf den normalen Namen funktionierte alles. Hier war ifconfig hilfreicher, weil es den altname nicht anzeigt.

Ich kann nicht einschätzen ob das bei mir besondere Umstände waren und alles auch ohne diese Ergänzungen funktionieren sollte, aber falls noch Mal jemand sucht, findet er im Zweifel zumindest meine Antwort.
Das Ganze läuft jetzt bei mir auf dem kleinsten Ionos VPS

Hey all, ich habe hier ein schnellen Weg gefunden eine WG Instanz mit Webinterface per Docker aufzusetzen!

WireGuard VPN-Server Installation – WG-easy Docker Container

Docker Installation

apt install docker.io

Install Wireguard

docker run -d \
  --name=wg-easy \
  -e WG_HOST=<YOUR_SERVER_IP> \
  -e PASSWORD=<YOUR_ADMIN_PASSWORD> \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
 ghcr.io/wg-easy/wg-easy

Done :wink:

Das Webinterface ist dann unter YOUR_SERVER_IP:51821 erreichbar!

Update

docker stop wg-easy
docker rm wg-easy
docker pull weejewel/wg-easy

hier noch ein bsp. fuer Docker Compose inkl. Adminforge DNS Server:

version: "3.5"
services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy
    restart: unless-stopped
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    cap_add:
      - SYS_MODULE
      - NET_ADMIN
    ports:
      - 51821:51821/tcp
      - 51820:51820/udp
    volumes:
      - ./wg-easy:/etc/wireguard
    environment:
      - PASSWORD=<YOUR_ADMIN_PASSWORD>
      - WG_HOST=<YOUR_SERVER_IP>
      - WG_DEFAULT_DNS=176.9.93.198, 176.9.1.117
    container_name: wg-easy

Ihr koennt das Webinterface auch ueber eine Domain erreichbar machen, zb. per NGINX Reverse Proxy:

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name wg.meine.domain;

  access_log off;
  error_log /var/log/nginx/wg.meine.domain.error.log;
  ssl_certificate /etc/ssl/private/wg.meine.domain_ecc/fullchain.cer;
  ssl_certificate_key /etc/ssl/private/wg.meine.domain_ecc/wg.meine.domain.key;
 
  # add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
  add_header X-Xss-Protection "1; mode=block";
  add_header X-Content-Type-Options nosniff;
  add_header Referrer-Policy same-origin;
  proxy_cookie_path / "/; HTTPOnly; Secure";
  # add_header Expect-CT "enforce, max-age=21600";
  add_header Feature-Policy "payment none";
 
  keepalive_timeout    70;
  sendfile             on;
  client_max_body_size 0;
 
   location / {
        log_not_found off;
        proxy_cache_valid 200 120m;
        proxy_set_header        Host    $http_host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Scheme $scheme;
        proxy_pass http://127.0.0.1:51821/;
        }

}

greetz :stuck_out_tongue_winking_eye:

1 „Gefällt mir“