Schlagwort: WireGuard

  • WireGuard mit Web GUI

    WireGuard mit Web GUI

    Mit dem Update des neuen WG-Easy WireGuard bin ich nicht mehr auf meine Web GUI gekommen. Dies lag daran, das ein Passwort im Docker Run Befehl enthalten war. Dies muss in ein Passwort Hash ausgetauscht werden. Zeit für mich WireGuard komplett neu in einem LXC zu installieren.

    LXC Anlegen

    Ich habe mich hier für Ubuntu entschieden und da natürlich für das aktuellste System. Der LXC läuft bei mir in meiner Proxmox Umgebung.

    Installation

    Installation von curl, Docker und Docker-Compose

    # System Updaten und neu starten
    
    apt update && apt upgrade -y && apt autoremove -y && reboot
    
    # Installation von Curl, Docker und Docker-Compose
    
    apt install curl -y
    
    curl -sSL https://get.docker.com | sh
    
    apt install docker-compose -y
    
    # Optional kann man Portainer oder Dockge nutzen, allerdings beides kein muss. Für mich gerade angenehmer. Ich ahbe mich für Dockge entschieden. Es ist schlanker.
    
    mkdir -p /opt/stacks /opt/dockge
    
    cd /opt/dockge
    
    curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
    nano compose.yaml
    
    # Ich habe die compose.yaml Datei noch angepasst indem ich container_name und hostname hinterlegt habe
    
      dockge:
        container_name: dockge
        hostname: dockge

    Nun noch Dockge starten mit der Ip:5001 und ein User und Passwort für Dockge erstellen.

    Installation von WireGuard

    In Dockge auf Compose klicken und ganz Rechts folgendes Skript einfügen und auf dich Anpassten an den Stellen wo ein # hinterlegt ist.

    version: "3.3"
    services:
      wg-easy:
        container_name: wg-easy
        environment:
          - WG_HOST=wg.dns.de #hier deine DNS Adresse eintragen. 
          - WG_DEFAULT_DNS=192.168.2.43 #hier dein PiHole oder auskommentieren mit Raute
          - LANG=de
        volumes:
          - ~/.wg-easy:/etc/wireguard
        ports:
          - 51820:51820/udp
          - 51821:51821/tcp
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv4.ip_forward=1
        restart: unless-stopped
        image: ghcr.io/wg-easy/wg-easy
    networks: {}

    Nun auf Deployen klicken.
    WireGuard läuft nun. Das Problem ist nur, dass die Web GUI kein Login Passwort besitzt und dies ein Sicherheitsrisiko beinhaltet. Um ein Passwort zu hinterlegen links deinen Container anklicken (wg-easy) und dann steht unter Container >_Bash, da einmal drauf klicken. Hier erstellen wir nun ein Passwort Hash mit dem Befehl

    wgpw sicheres Passwort

    Es erscheint ein PASSWORD_HASH=$5g$34$eqvfgdshnxmewkfvdwadsfucv. Dies einmal Kopieren und wieder in unseren wg-easy Container. Die compose.yaml Datei nun Bearbeiten und unter environment dein gerade erstelltes PASSWORD_HASH=$5g$34$eqvfgdshnxmewkfvdwadsfucv einfügen. Wichtig jetzt, die Anführungsstriche im Hash entfernen und das $ in $$ erweitern. So sollte das Skript dann aussehen:

    version: "3.3"
    services:
      wg-easy:
        container_name: wg-easy
        environment:
          - WG_HOST=wg.dns.de #hier deine DNS Adresse eintragen. 
          - WG_DEFAULT_DNS=192.168.2.43 #hier dein PiHole oder aukommentieren mit Raute
          - PASSWORD_HASH=$$5g$$34$$eqvfgdshnxmewkfvdwadsfucv
          - LANG=de
        volumes:
          - ~/.wg-easy:/etc/wireguard
        ports:
          - 51820:51820/udp
          - 51821:51821/tcp
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv4.ip_forward=1
        restart: unless-stopped
        image: ghcr.io/wg-easy/wg-easy
    networks: {}

    Speichern und Container neu Starten. Nun hat die WireGuard Web GUI wieder ein Passwort.

    Auf die Web GUI kommst du mit http://IP:51821.

    Ggf. noch Anpassen

    Ggf. muss in deiner Fritzbox noch der Post 51820 freigaben werden. Solltest du also keine VPN aufbauen, liegt das Problem da dran.