[Help] Wireguard configuration IP

Cebyll

Nouveau membre
30 Janvier 2022
5
0
1
Bonjour,

Je bloque sur un problème de configuration de Wireguard, et je n'arrive pas à trouver de solution.
Je vous explique mon problème :
Le contexte :
J'ai un NAS DIY sur OMV, avec pas mal d'application par docker dont AdguardHome, Nextcloud, Plex, Traefik, FreshRSS, Wireguard....
J'ai aussi dessus des partages samba pour des utilisateurs, et j'utilise aussi la fonction "version précédentes" sur windows (stoqué sur le NAS).

J'ai un nom de domaine pour pointer sur mes services que je souhaite accessible depuis l'exterieur.

Tous ça fonctionne plutôt pas mal, et concernant Wireguard, j'accède correctement à mon réseau local depuis ma tablette.

La suite de mon projet est de monter une petite machine indépendante (déjà acheté d'occasion https://www.zotac.com/fr/product/mini_pcs/ci320-nano).
Il me reste à acheter un SSD de 1To, ceci afin d'avoir une machine de sauvegarde installer dans la famille pour sauvegarder les données importante du NAS (photos, vidéos personnelles, configurations...).
Elle sera sous Debian en mode serveur, avec que ce que j'ai besoin d'installé.
Je prévois de connecter ce serveur à mon réseau local, grâce à Wireguard et faire les sauvegardes par Rsync (pas encore vraiment décidé pour Rsync).
J'ai choisi de faire comme ça car avec Wireguard, je ne serais pas dépendant de l'endroit où j'installe le serveur, vu que c'est lui qui va chercher à ce connecter sur mon réseau local (grace à mon nom de domaine).


Pour l'instant je suis en phase de test sur la configuration de Wireguard, et je fait mes essais avec ma tablette en 4G.

Là où je bloque, c'est que je n'arrive pas à voir comment faire pour avoir une IP local pour la machine distante comme si elle était connecté sur le réseau local.
Suivant les config, la machine docker de Wireguard donne une IP, mais je ne vois rien de plus sur mon réseau.

Donc ma question, déjà, est-ce possible d'avoir ce comportement que je décris (que la machine distante ait une IP local) ?
Quelle configuration mettre en œuvre ?

Mes fichiers de configuration :

Section docker-compose de Wireguard :
YAML:
wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - SERVERURL=vpn.xxxxxxx.xx
      - PEERS=2
      - PEERDNS=8.8.8.8
      - INTERNAL_SUBNET=10.10.10.0
    volumes:
      - /srv/dev-disk-by-label-DATA/Docker/wireguard-server/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    labels:
      - traefik.enable=true
      - traefik.udp.routers.wireguard.entrypoints=vpn
      - traefik.udp.services.wireguard.loadbalancer.server.port=51xxx
      - traefik.udp.routers.wireguard.rule=Host(`vpn.xxxxxxx.xx`)
      - traefik.udp.routers.wireguard.tls=true
      - traefik.udp.routers.wireguard.tls.certresolver=letsencrypt
    networks:
      - traefik_network
    restart: unless-stopped

Celui de Treafik si jamais :
YAML:
traefik:
    image: traefik
    container_name: traefik
    ports:
      - 80:80
      - 443:443
      - 51xxx:51xxx
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Europe/Paris
    networks:
      - traefik_network
    labels:
      - traefik.enable=true
      - traefik.http.routers.api.entrypoints=https,http
      - traefik.http.routers.api.rule=Host(`traefik.xxxx.xxxxxxx.xx`)
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.api.middlewares=auth
      - traefik.http.middlewares.auth.basicauth.users=xxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - traefik.http.routers.api.tls=true
      - traefik.http.routers.api.tls.certresolver=letsencrypt
    volumes:
      - /srv/dev-disk-by-label-DATA/Docker/traefik/traefik.toml:/etc/traefik/traefik.toml
      - /var/run/docker.sock:/var/run/docker.sock
      - /srv/dev-disk-by-label-DATA/Docker/traefik/acme.json:/acme.json
    restart: unless-stopped

le ficher wg0.conf de Wireguard :
YAML:
[Interface]
Address = 10.10.10.1
ListenPort = 51xxx
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# peer1
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 10.10.10.2/32

[Peer]
# peer2
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 10.10.10.3/32

Le ficher traefik.toml :
YAML:
[entryPoints]
  [entryPoints.http]
    address=":80"
    [entryPoints.http.http]
      [entryPoints.http.http.redirections]
        [entryPoints.http.http.redirections.entryPoint]
          to="https"
          scheme="https"
    [entryPoints.https]
        address=":443"
  [entryPoints.vpn]
    address=":51xxx"
    
[api]
  dashboard = true

[providers.docker]
    endpoint = "unix:///var/run/docker.sock"
    exposedByDefault = false
     
[certificatesResolvers.letsencrypt.acme]
  email = "xxxxxxxxx.xxxxxxx@xxxx.xx"
  storage = "acme.json"
  [certificatesResolvers.letsencrypt.acme.httpChallenge]
    entryPoint = "http"

Si vous avez une idée de la configuration pour Wireguard, je suis preneur.
Merci d'avance de l'aide