Wireguard
- https://www.wireguard.com/quickstart/
- https://wiki.archlinux.org/index.php/WireGuard
- Procedure: Ubuntu 20.04 set up WireGuard VPN server
- Alpine Linux set up WireGuard VPN server
Installer noyau 5.8+
A partir du noyau 5.6 le module wireguard est intégré
echo "deb http://deb.debian.org/debian/ unstable main" | sudo tee /etc/apt/sources.list.d/unstable-wireguard.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' | sudo tee /etc/apt/preferences.d/limit-unstable
apt update && apt upgrade
Rechercher l’image
apt search linux-image-5
linux-image-5.10.0-1-amd64/unstable 5.10.4-1 amd64
Linux 5.10 for 64-bit PCs (signed)
linux-headers-5.10.0-1-amd64/unstable 5.10.4-1 amd64
Header files for Linux 5.10.0-1-amd64
Installer le noyau
apt install linux-image-5.10.0-1-amd64
REDEMARRER
sudo systemctl reboot
Connexion SSH
Vérifications uname -a
Linux nsdyanone 5.10.0-1-amd64 #1 SMP Debian 5.10.4-1 (2020-12-31) x86_64 GNU/Linux
Supprimer les images non utilisées
sudo apt remove 4.19.0-13-amd64
Wireguard - base
WireGuard est un serveur VPN à code source ouvert, gratuit, moderne et rapide, doté d’une cryptographie de pointe. Il est plus rapide et plus simple que l’IPSec et l’OpenVPN
Toutes les commandes suivantes , en mode su
Wireguard est dans le noyau 5.6+
apt install wireguard
**Autoriser le serveur Wireguard à relayer les paquets **
Autoriser le serveur Wireguard à relayer les paquets venant de ces clients vers l’internet et de traiter les paquets retours (modifier /etc/sysctl.conf)
sed -i 's/^#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sed -i 's/^#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=1/' /etc/sysctl.conf
sysctl -p # prise en compte immédiate
Résultat
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Générer une paire de clés
On se positionne dans le dossier /etc/wireguard/
cd /etc/wireguard
WireGuard repose sur une authentification par clé publique/privée (cryptographie asymétrique), vous devez donc créer ces clés avec les sous-commandes wg genkey et wg pubkey
La création de la clé privée se fait avec wg genkey et la clé publique est générée en la canalisant dans wg pubkey
umask 077; wg genkey | tee peer_A.key | wg pubkey > peer_A.pub
Générer des clés pour chaque “peer”
umask 077; wg genkey | tee peer_B.key | wg pubkey > peer_B.pub
umask 077; wg genkey | tee peer_C.key | wg pubkey > peer_C.pub
umask 077; wg genkey | tee peer_D.key | wg pubkey > peer_D.pub
On peut également générer une clé pré-partagée pour ajouter une couche supplémentaire de cryptographie à clé symétrique qui sera mélangée à la cryptographie à clé publique déjà existante, pour une résistance post-quantique. Une clé pré-partagée doit être générée pour chaque paire de pairs et ne doit pas être réutilisée. Par exemple, trois pairs interconnectés, A, B, C et D, auront besoin de duatre clés pré-partagées distinctes, une pour chaque paire de pairs.
Le pair A écoutera sur le port UDP 51871 et acceptera la connexion des pairs B, C et D.
Générez une clé pré-partagée pour chaque paire de pairs en utilisant la commande suivante :
umask 077; wg genpsk > peer_A-peer_B.psk
umask 077; wg genpsk > peer_A-peer_C.psk
umask 077; wg genpsk > peer_A-peer_D.psk
Fichier de configuration /etc/wireguard/wg0.conf
Récupérer le nom de la carte réseau ip a
, dans notre cas eth0
La première étape consiste à choisir une plage IPV4 privée, Random IPV4 Private Address Generator, qui sera utilisée par le serveur : 10.55.22.0/8
Pour une adresse IPV6 Local IPv6 Address Generator : fd83:d8a9:3fd8:2e9b::/64
Prefix/L | fd |
---|---|
Global ID | 83d8a93fd8 |
Subnet ID | 2e9b |
Combine/CID | fd83:d8a9:3fd8:2e9b::/64 |
IPv6 addresses | fd83:d8a9:3fd8:2e9b::/64:XXXX:XXXX:XXXX:XXXX |
Start Range | fd83:d8a9:3fd8:2e9b:0:0:0:0 |
End Range | fd83:d8a9:3fd8:2e9b:ffff:ffff:ffff:ffff |
No. of hosts | 18446744073709551616 |
Le serveur aura l’adresse IP suivante: 10.55.22.1 . Il est également nécessaire de choisir un port, qui sera exposé publiquement, pour que le serveur écoute.Le port de documentation standard est généralement 51820.
Créer le fichier /etc/wireguard/wg0.conf serveur peer_A
/etc/wireguard/wg0.conf
[Interface]
Address = 10.55.22.1/24, fd83:d8a9:3fd8:2e9b::/64
ListenPort = 51955
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# PEER_A_PRIVATE_KEY
PrivateKey = 5Z........................................mk=
DNS = 10.55.22.1, fd83:d8a9:3fd8:2e9b::1
[Peer]
# PEER_B_PUBLIC_KEY peer_B.pub
PublicKey = X8............................................=
# PEER_A-PEER_B-PRESHARED_KEY peer_A-peer_B.psk
PresharedKey = bf.......................................Ug=
AllowedIPs = 10.55.22.2/32, fd83:d8a9:3fd8:2e9b::2/128
[Peer]
# PEER_C_PUBLIC_KEY peer_C.pub
PublicKey = Gl..........................................30=
# PEER_A-PEER_C-PRESHARED_KEY peer_A-peer_C.psk
PresharedKey = +I9.......................................A=
AllowedIPs = 10.55.22.3/32, fd83:d8a9:3fd8:2e9b::3/128
[Peer]
# PEER_D_PUBLIC_KEY peer_D.pub
PublicKey = if..........................................Q4=
# PEER_A-PEER_D-PRESHARED_KEY peer_A-peer_D.psk
PresharedKey = WG.......................................CE=
AllowedIPs = 10.55.22.4/32, fd83:d8a9:3fd8:2e9b::4/128
Address , fixer l’adresse IP privée du serveur à l’intérieur du VPN.Les adresses du réseau VPN de 10.55.22.0 à 10.55.22.255 sont fixées par le masque /24 et fd83:d8a9:3fd8:2e9b::1 à fd83:d8a9:3fd8:2e9b::ffff sont fixées par le masque /128
PostUp , pour la mise en place des règles iptables de translation d’adresses à l’activation du VPN (autoriser le routage des paquets réseau venant des clients vers internet)
PostDown , pour la suppression des règles iptables de translation d’adresses à l’arrêt du VPN
PrivateKey , clé privée du serveur (peer_A.key)
DNS = Pour utiliser un pair comme serveur DNS, définissez DNS = wireguard_internal_ip_address_of_peer dans la section [Interface]. Les domaines de recherche sont également définis avec l’option DNS =. Séparez toutes les valeurs dans la liste par des virgules.
AllowedIPs = Pour acheminer tout le trafic du tunnel vers un pair spécifique, ajoutez l’itinéraire par défaut (0.0.0.0/0 pour IPv4 et ::/0 pour IPv6) à AllowedIPs. Par exemple, AllowedIPs = 0.0.0.0/0, ::/0. wg-quick se chargera automatiquement de configurer le routage correct et fwmark [5] pour que le réseau fonctionne toujours.
Les fichiers des pairs (peers)
/etc/wireguard/wg0.conf # peer_B
[Interface]
Address = 10.55.22.2/32, fd83:d8a9:3fd8:2e9b::2/128
PrivateKey = PEER_B_PRIVATE_KEY
DNS = 10.55.22.1, fd83:d8a9:3fd8:2e9b::1
[Peer]
PublicKey = PEER_A_PUBLIC_KEY
PresharedKey = PEER_A-PEER_B-PRESHARED_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 51.210.133.126:51955
## Key connection alive ##
PersistentKeepalive = 15
/etc/wireguard/wg0.conf # peer_C
[Interface]
Address = 10.55.22.3/32, fd83:d8a9:3fd8:2e9b::3/128
PrivateKey = PEER_B_PRIVATE_KEY
DNS = 10.55.22.1, fd83:d8a9:3fd8:2e9b::1
[Peer]
PublicKey = PEER_A_PUBLIC_KEY
PresharedKey = PEER_A-PEER_B-PRESHARED_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 51.210.133.126:51955
## Key connection alive ##
PersistentKeepalive = 15
/etc/wireguard/wg0.conf # peer_D
[Interface]
Address = 10.55.22.4/32, fd83:d8a9:3fd8:2e9b::4/128
PrivateKey = PEER_B_PRIVATE_KEY
DNS = 10.55.22.1, fd83:d8a9:3fd8:2e9b::1
[Peer]
PublicKey = PEER_A_PUBLIC_KEY
PresharedKey = PEER_A-PEER_B-PRESHARED_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 51.210.133.126:51955
## Key connection alive ##
PersistentKeepalive = 15
Modifier les droits des fichiers wg0.conf (lecture uniquement par “root”)
chmod 600 /etc/wireguard/wg0.conf
DNS Unbound
Un problème majeur avec beaucoup de configurations VPN est que le DNS n’est pas suffisant. Cela finit par une fuite de connexion client et de détails d’emplacement. Un bon moyen de tester cela est à travers le site http://dnsleak.com/
Nous allons sécuriser le trafic DNS avec la solution unbound qui offre les caractéristiques suivantes
- Léger et rapide
- Facile à installer et à configurer
- Orienté sécurité
- Prise en charge DNSSEC
Nous allons le configurer de manière à contrer les fuites DNS, les attaques plus sophistiquées comme la fausse configuration de proxy, les routeurs escrocs et toutes sortes d’attaques MITM sur HTTPS et autres protocoles.
Nous installons unbound sur le serveur
Passage en mode super utilisateur
sudo -s # ou su
ATTENTION : Le programme resolvconf est en général seulement nécessaire quand un système a plusieurs programmes qui ont besoin de modifier de façon dynamique les informations sur les serveurs de noms de domaine. Sur un système simple où les serveurs de noms de domaine ne changent pas souvent ou bien ne sont modifiés que par un programme, le fichier de configuration **resolv.conf** est suffisant.
Il faut installer resolvconf, sinon on a une erreur unbound-resolvconf
Une fois le paquet « resolvconf » installé, il ne faut plus modifier le fichier « /etc/resolv.conf », car le contenu de celui-ci sera automatiquement géré et remplacé par « resolvconf ».
Installation des outils dns, des paquets Unbound et resolv :
apt install unbound unbound-host resolvconf -y
Téléchargement de la liste des serveurs DNS racines
curl -o /var/lib/unbound/root.hints https://www.internic.net/domain/named.cache
chown unbound:unbound /var/lib/unbound/root.hints
Ajout d’un fichier de configuration dns-cx11.conf
/etc/unbound/unbound.conf.d/dns-cx11.conf
server:
num-threads: 4
# enable logs
verbosity: 0 # no verbosity, only errors
# liste des serveurs DNS racine
root-hints: "/var/lib/unbound/root.hints"
# Répondre aux requêtes DNS sur toutes les interfaces
interface: 0.0.0.0 # 0.0.0.0 unbound sur plusieurs interfaces
interface: ::0
max-udp-size: 3072
# IPs authorised to access the DNS Server
access-control: 0.0.0.0/0 refuse
access-control: 127.0.0.0/8 allow
access-control: 10.55.22.0/16 allow
access-control: ::0/0 refuse
access-control: ::1 allow
access-control: fe80::/10 allow
access-control: fd83:d8a9:3fd8:2e9b::/48 allow
#hide DNS Server info
hide-identity: yes
hide-version: yes
# limit DNS fraud and use DNSSEC
harden-glue: yes
harden-dnssec-stripped: yes
harden-referral-path: yes
# add an unwanted reply threshold to clean the cache and avoid, when possible, DNS poisoning
unwanted-reply-threshold: 10000000
# have the validator print validation failures to the log
val-log-level: 1
# minimum lifetime of cache entries in seconds
cache-min-ttl: 1800
# maximum lifetime of cached entries in seconds
cache-max-ttl: 14400
prefetch: yes
qname-minimisation: yes
prefetch-key: yes
#include: /etc/unbound/unbound.conf.d/adslist.txt
Droits
chown -R unbound:unbound /var/lib/unbound
Pour vérifier si le fichier de configuration est valide
unbound-checkconf /etc/unbound/unbound.conf.d/dns-cx11.conf
unbound-checkconf: no errors in /etc/unbound/unbound.conf.d/dns-cx11.conf
Désactiver systemd-resolved (si utilisé)
systemctl stop systemd-resolved
systemctl disable systemd-resolved
Activer Unbound (ILS SONT ACTIFS DES LEUR INSTALLATION)
systemctl enable unbound-resolvconf
systemctl enable unbound
Redémarrer le serveur
systemctl reboot
Après redémarrage et connexion au serveur
systemctl status unbound unbound-resolvconf resolvconf
● unbound.service - Unbound DNS server
Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-10-21 09:22:55 CEST; 1min 12s ago
Docs: man:unbound(8)
Process: 784 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS)
Process: 798 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS)
Main PID: 805 (unbound)
Tasks: 4 (limit: 2289)
Memory: 38.7M
CGroup: /system.slice/unbound.service
└─805 /usr/sbin/unbound -d
● unbound-resolvconf.service - Unbound DNS server via resolvconf
Loaded: loaded (/lib/systemd/system/unbound-resolvconf.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2020-10-21 09:22:55 CEST; 1min 12s ago
Process: 809 ExecStart=/usr/lib/unbound/package-helper resolvconf_start (code=exited, status=0/SUCCESS)
Main PID: 809 (code=exited, status=0/SUCCESS)
● resolvconf.service - Nameserver information manager
Loaded: loaded (/lib/systemd/system/resolvconf.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2020-10-21 09:22:49 CEST; 1min 18s ago
Docs: man:resolvconf(8)
Process: 228 ExecStartPre=/bin/mkdir -p /run/resolvconf/interface (code=exited, status=0/SUCCESS)
Process: 248 ExecStartPre=/bin/touch /run/resolvconf/postponed-update (code=exited, status=0/SUCCESS)
Process: 253 ExecStart=/sbin/resolvconf --enable-updates (code=exited, status=0/SUCCESS)
Main PID: 253 (code=exited, status=0/SUCCESS)
Vérifications
Les commandes suivantes ne fonctionneront que si le paquet “dnsutils” est installé sur votre système Debian!
On teste en utilisant les serveurs DNS locaux
dig @127.0.0.1 afnic.fr +short +dnssec
192.134.5.37
A 13 2 600 20201117093213 20201018100839 30435 afnic.fr. aEOBkWup4MhF1n9W95DBJ/WVgWEiFucH5E3dPxf8FwZlolGLqGDUtM9A RrAkqfxtcGSUDEOXBIyqvEDCrej9YQ==
Mise à jour des serveurs DNS racines
Télécharger le script
curl -o /etc/unbound/dnsunbound-update-root-dns.sh https://static.xoyaz.xyz/files/dnsunbound-update-root-dns.sh
Droits en exécution pour le bash dnsunbound-update-root-dns.sh
chmod +x /etc/unbound/dnsunbound-update-root-dns.sh
Planification journalière
crontab -e
Ajouter en fin de fichier
# Mise à jour automatique des serveurs DNS de la racine
10 02 * * * /etc/unbound/dnsunbound-update-root-dns.sh > /dev/null
Tester wireguard
Sur le serveur et le client wireguard (en mode su)
cd /etc/wireguard
Serveur wireguard
Lancement wireguard
wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.55.22.1/24 dev wg0
[#] ip -6 address add fd83:d8a9:3fd8:2e9b::1/64 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Vérifications
wg show
interface: wg0
public key: aAkmecwnFrHQuLAU6Jae3zP19ueV3LtT1nxqqHwDFhA=
private key: (hidden)
listening port: 51955
peer: X8BmG6rczMVlkjBJAvCJC4dyfQsUbphdwdi8o9mSXQU=
preshared key: (hidden)
endpoint: 82.64.18.243:44873
allowed ips: 10.55.22.2/32, fd83:d8a9:3fd8:2e9b::2/128
latest handshake: 7 seconds ago
transfer: 237.41 KiB received, 376.57 KiB sent
peer: GlRGPO4+FotBJxzQBcvMlkmRI6yFR839KwBu9KW+X30=
preshared key: (hidden)
allowed ips: 10.55.22.3/32, fd83:d8a9:3fd8:2e9b::3/128
peer: ifTMXJwSv1qSekivmWlnXC0pp/qlpoMQGgA3aoXQoQ4=
preshared key: (hidden)
allowed ips: 10.55.22.4/32, fd83:d8a9:3fd8:2e9b::4/128
Client wireguard
Lancement wireguard
wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.55.22.2/32 dev wg0
[#] ip -6 address add fd83:d8a9:3fd8:2e9b::2/128 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n
Vérifications
ip a show wg0
9: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.55.22.2/32 scope global wg0
valid_lft forever preferred_lft forever
inet6 fd83:d8a9:3fd8:2e9b::2/128 scope global
valid_lft forever preferred_lft forever
DNS V4 V6
Les commandes dig @10.55.22.1 afnic.fr +short +dnssec
et dig @fd83:d8a9:3fd8:2e9b::1 afnic.fr +short +dnssec
donnent le résultat suivant
A 13 2 600 20210120124535 20201221100316 31668 afnic.fr. HZhLWz7CHV/aeLoxBVrqFM1mWQHPBt+OOMEJtJod7r7lKxEbGGT2+WB2 W1FZ3D4jT1K+1dyRpTJXgmo13u8P0Q==
Activer wireguard
Pour une activation permanente de wireguard serveur et client
sudo systemctl start wg-quick@wg0.service
sudo systemctl enable wg-quick@wg0.service
Gestion web wireguard (wgweb.service)
Création dossier application web
sudo mkdir -p /opt/appwg
Copier le git wg-gen-web
cd ~
git clone https://gitea.cinay.eu/yann/wg-gen-web.git
sudo mkdir -p /usr/local/go/src/wg-gen-web
sudo cp -r wg-gen-web/{api,auth,core,util,version,model,storage,template} /usr/local/go/src/wg-gen-web/
Construction du site
cd $HOME/wg-gen-web/cmd/wg-gen-web/
go build -o deb-wg-gen-web
cd ../../ui
npm install # + npm audit fix si nécessaire
npm run build
sudo cp $HOME/wg-gen-web/cmd/wg-gen-web/deb-wg-gen-web /opt/appwg
sudo mkdir -p /opt/appwg/ui
sudo cp -r $HOME/wg-gen-web/ui/dist /opt/appwg/ui/
Configuration .env
l’autorisation à 2 facteurs n’est pas utilisée, le fichier /opt/appwg/.env se résume à remplir la zone correspondante SMTP de la messagerie et désactiver l’autorisation
/opt/appwg/.env
# IP address to listen to
SERVER=127.0.0.1
# port to bind
PORT=8080
# Gin framework release mode
GIN_MODE=release
# where to write all generated config files
WG_CONF_DIR=/etc/wireguard
# WireGuard main config file name, generally <interface name>.conf
WG_INTERFACE_NAME=wg0.conf
# SMTP settings to send email to clients
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=account@gmail.com
SMTP_PASSWORD=*************
SMTP_FROM=Wg Gen Web <account@gmail.com>
# set provider name to fake to disable auth, also the default
OAUTH2_PROVIDER_NAME=fake
On modifie dans /opt/appwg/.env ,le paramètre WG_CONF_DIR=./wireguard →
WG_CONF_DIR=/etc/wireguard
**Créer le service wgweb.service **
Créer un service systemd wgweb qui lance le serveur avec journalisation
sudo nano /etc/systemd/system/wgweb.service
[Unit]
Description=Wireguard web
After=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/opt/appwg
ExecStart=/opt/appwg/deb-wg-gen-web
[Install]
WantedBy=multi-user.target
wireguard (wg0.conf et server.json)
Modifier les fichiers existants pour être identique au paramétrage de wireguard wg0.conf situé sous /etc/wireguard
/etc/wireguard/server.json
{
"address": [
"fd18:2941:0ae9:7d96::1/64",
"10.14.94.1/24"
],
"listenPort": 51820,
"mtu": 0,
"privateKey": "UEQCgh/6a2RQbF9+qqylVjqLCK/mRwqRPc/4vjRsYXg=",
"publicKey": "0s1wsNpuU1RlKgj6AmoN0aKUeb+aESByhO3yTSnfTyE=",
"endpoint": "xoyaz.xyz:51820",
"persistentKeepalive": 16,
"dns": [
"fd18:2941:0ae9:7d96::1",
"10.14.94.1"
],
"allowedips": [
"0.0.0.0/0",
"::/0"
],
"preUp": "",
"postUp": "iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE",
"preDown": "",
"postDown": "iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE",
"updatedBy": "Unknown",
"created": "2020-10-21T12:31:50.589913433Z",
"updated": "2020-10-21T12:31:50.589913433Z"
Recharger systemd
puis démarrer le service:
sudo systemctl daemon-reload
sudo systemctl start wgweb.service
sudo systemctl status wgweb.service
● wgweb.service - Wireguard web
Loaded: loaded (/etc/systemd/system/wgweb.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-10-21 10:46:58 CEST; 43s ago
Main PID: 1426 (deb-wg-gen-web)
Tasks: 5 (limit: 2289)
Memory: 5.0M
CGroup: /system.slice/wgweb.service
└─1426 /opt/appwg/deb-wg-gen-web
Oct 21 10:46:58 debian-cx11 systemd[1]: Started Wireguard web.
Oct 21 10:46:58 debian-cx11 deb-wg-gen-web[1426]: time="2020-10-21T10:46:58+02:00" level=info msg="Lancement de la version Web de Wg Gen : yann"
Oct 21 10:46:58 debian-cx11 deb-wg-gen-web[1426]: time="2020-10-21T10:46:58+02:00" level=warning msg="Oauth n'est pas utilisé, aucune authentification réelle ne sera effectuée"
Accès page Web Wireguard
On utilise la redirection port SSH
Vérification,ouvrir un terminal sur le client linux qui dispose des clés ssh et lancer la commande
ssh -L 9000:localhost:8080 cxuser@135.181.27.140 -p 55140 -i /home/yannick/.ssh/cx11_ed25519
Ouvrir un navigateur sur le client et saisir localhost:9000
pour afficher le gestionnaire web de wireguard
Activer le service si tout fonctionne
sudo systemctl enable wgweb.service
Activer service wg-quick@wg0
Le gestionnaire web est à jour , on peut lancer le serveur wireguard
sudo systemctl start wg-quick@wg0.service
Vérifier
systemctl status wg-quick@wg0.service
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
Loaded: loaded (/lib/systemd/system/wg-quick@.service; disabled; vendor preset: enabled)
Active: active (exited) since Wed 2020-10-21 10:57:22 CEST; 52s ago
Docs: man:wg-quick(8)
man:wg(8)
https://www.wireguard.com/
https://www.wireguard.com/quickstart/
https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
Process: 1480 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 1480 (code=exited, status=0/SUCCESS)
Activer
sudo systemctl enable wg-quick@wg0.service
Configuration automatique
Utilisation de systemd.path monitor pour les changements dans le répertoire, voir systemd doc
/etc/systemd/system/wg-gen-web.path
[Unit]
Description=Surveiller /etc/wireguard pour les changements
[Path]
PathModified=/etc/wireguard
[Install]
WantedBy=multi-user.target
Ce wg-gen-web.path activera le fichier de l’unité avec le même nom, wg-gen-web.service
/etc/systemd/system/wg-gen-web.service
[Unit]
Description=Relancer WireGuard si changements
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service
[Install]
WantedBy=multi-user.target
Ce qui permettra de relancer le service WireGuard
sudo systemctl start wg-gen-web.path
sudo systemctl status wg-gen-web.path
● wg-gen-web.path - Surveiller /etc/wireguard pour les changements
Loaded: loaded (/etc/systemd/system/wg-gen-web.path; disabled; vendor preset: enabled)
Active: active (waiting) since Wed 2020-10-21 11:00:47 CEST; 20ms ago
Oct 21 11:00:47 debian-cx11 systemd[1]: Started Surveiller /etc/wireguard pour les changements.
Activation
sudo systemctl enable wg-gen-web.path
Pour suivre dans le journal
sudo journalctl -f -t wg-quick
-- Logs begin at Wed 2020-10-21 09:22:49 CEST. --
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#]
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] ip link add wg0 type wireguard
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] wg setconf wg0 /dev/fd/63
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] ip -6 address add fd18:2941:0ae9:7d96::1/64 dev wg0
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] ip -4 address add 10.14.94.1/24 dev wg0
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] ip link set mtu 1420 up dev wg0
Oct 21 10:57:22 debian-cx11 wg-quick[1480]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE