Bonjour,
Ce guide permet de créer un conteneur VPN Wireguard sous Docker.
Pour ceux qui veulent testé sans devoir compiler, un apk tout prêt. (Etape 1 requise)
Contrainte technique
Etape 1: Installer ADM Kernel Extensions
Etape 2: Création d'un partage nommée Download
Le partage Download servira de dossier pour transférer l'application compilé du serveur linux vers le nas.
Etape 3: Machine Virtuelle sous Debian 11
Etape 4: Se connecter en ssh sur Debian 11
Etape 5: Monter le partage sur Debian 11
Etape 6: Installer les dépendances pour la compilation de l'application Wireguard
Etape 7: Télécharger les sources
Etape 8: Démarrer la compilation
Etape 9: Transférer le package sur le NAS
Etape 10: Déploiement de l'application sur le Nas
![1697768984789.png 1697768984789.png](https://www.forum-nas.fr/data/attachments/9/9272-893eeaa86f80a943e50ab21f58501f95.jpg?hash=iT7qqG-AqU)
Sous l'interface ADM, vous verrez le logo suivant:
![1697772811068.png 1697772811068.png](https://www.forum-nas.fr/data/attachments/9/9274-1f414ed1b7dc9f975f7a7b977e394f96.jpg?hash=H0FO0bfcn5)
Journal de log:
Etape 10: Installation de Wireguard (Windows)
Vérification de fonctionnement:
![1697772698579.png 1697772698579.png](https://www.forum-nas.fr/data/attachments/9/9273-3e5a61c549b2da138e359d782f9efa84.jpg?hash=PlphxUmy2h)
Etape 11: Customisation de la configuration du serveur
Les fichiers de configurations sont stockés dans le NAS et pas dans le conteneur pour permettre la maintenance plus facile. A terme l'emplacement sera changé.
Etape 12: Amélioration
- Pour l'heure, j'ai utiliser le dossier classique de stockage de Wireguard pour la configuration, mais à terme il sera dans le partage Docker.
- Ensuite, il faut que je vois pour le binaire wg que je puisses l'utiliser pour générer des clés uniques.
- Les clients à termes auront leur fichiers de configuration générer automatiquement.
Pour les Bidouilleurs:
Générer une configuration pour le serveur
Configuration Client avec DNS Google.
La clé pre-shared est déclaré du côté serveur
Ce guide permet de créer un conteneur VPN Wireguard sous Docker.
Pour ceux qui veulent testé sans devoir compiler, un apk tout prêt. (Etape 1 requise)
Contrainte technique
- La configuration de l'application Wireguard est sur le port 51820 en UDP.
- L'application a été déclarer dans ADM sous le nom APP#Wireguard.
- Si pare-feu, ajouter la règle dans ADM Defender.
- Clés pré-définis pour le lancement. (Possibilité de customisé)
- Réseau VPN pré-définis. (Possibilité de customisé)
- Conteneur en mode Host. (Pas de bridge)
- L'utilisateur qui lance le conteneur est l'ID 1000 et le groupe 100. (Root requis: ????, je ne penses pas)
- Absence IPv6 (Attention APN mobile IPV6)
Etape 1: Installer ADM Kernel Extensions
- Ouvrir l'application App Central
- Dans le champs recherche: ADM Kernel Extensions
- Entrer
- Cliquer sur installé
Etape 2: Création d'un partage nommée Download
Le partage Download servira de dossier pour transférer l'application compilé du serveur linux vers le nas.
- Accéder au Panel du Nas
- Contrôle d'accès
- Onglet Dossiers Partagés
- Ajouter
> Nom: Download
> Suivant
Etape 3: Machine Virtuelle sous Debian 11
La première chose est d'avoir une machine virtuelle dans le réseau physique. (Debian 11)
Ma machine à comme ip 192.168.1.33
L'identifiant est marc.
Etape 4: Se connecter en ssh sur Debian 11
- Ouvrir l'invite de commande
- Taper la commande: ssh marc@192.168.1.33
- Passer en root (su - ou sudo -i)
Etape 5: Monter le partage sur Debian 11
Bash:
clear;
apt install -y cifs-utils 1>/dev/null;
# Remplir les variables
PARTAGE_IP=
PARTAGE_USER=<user l'ID 1000>
PARTAGE_PASS=<Mot de passe du compte>
PARTAGE_ID=1000
PARTAGE_GID=100
# Création de dossier
mkdir -p /mnt/Download;
mkdir /etc/credentials;
# Fichier contenant les identifiants d'accès au partage
echo "username=$PARTAGE_USER
password=$PARTAGE_PASS
vers=3.0
file_mode=0777
dir_mode=0777
workgroup=WORKGROUP" > /etc/credentials/.smbpassword;
chmod 600 /etc/credentials/.smbpassword;
# Création du service qui monte le partage
echo "[Unit]
Description=Montage du partage Download
Requires=network-online.target
After=NetworkManager.service
[Mount]
What=//$PARTAGE_IP/Download
Where=/mnt/Download
Type=cifs
TimeoutSec=5s
Options=credentials=/etc/credentials/.smbpassword,x-gvfs-show,uid=$PARTAGE_ID,gid=$PARTAGE_GID
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/mnt-Download.mount;
# Rafraichir SystemD
systemctl daemon-reload;
# Gestion du service
systemctl enable mnt-Download.mount;
systemctl restart mnt-Download.mount;
# Vérification
systemctl status mnt-Download.mount;
df -h /mnt/Download;
Etape 6: Installer les dépendances pour la compilation de l'application Wireguard
Bash:
# Outils Linux
apt install -y git 1>/dev/null;
apt install -y unzip 1>/dev/null;
apt install -y wget 1>/dev/null;
# Script Asustor pour la compiltation
rm -rf /usr/bin/apkg-*;
wget --inet4-only https://downloadgb.asustor.com/developer/APKG_Utilities_2.0_0517.zip -O /tmp/APKG_Utilities_2.0_0517.zip;
unzip -o /tmp/APKG_Utilities_2.0_0517.zip -d /usr/bin;
chmod u+x /usr/bin/apkg-*
Etape 7: Télécharger les sources
Bash:
clear;
cd;
rm -rf ~/APPZ;
git clone https://github.com/dexter74/Public.git ~/APPZ 2>/dev/null;
Etape 8: Démarrer la compilation
Bash:
cd ~/APPZ/ASUSTOR/AppCentral/Wireguard && apkg-tools_py3.py create .
Etape 9: Transférer le package sur le NAS
mv ~/APPZ/ASUSTOR/AppCentral/Wireguard/*.apk /mnt/Download/;
Etape 10: Déploiement de l'application sur le Nas
- Ouvrir l'App Central
- Gérer (En bas à gauche)
- Installation Manuelle
- Parcourir
- \\IPDUNAS\Download
- Sélectionner Wireguard_1.0_x86-64.apk
- Valider
![1697768984789.png 1697768984789.png](https://www.forum-nas.fr/data/attachments/9/9272-893eeaa86f80a943e50ab21f58501f95.jpg?hash=iT7qqG-AqU)
Sous l'interface ADM, vous verrez le logo suivant:
![1697772811068.png 1697772811068.png](https://www.forum-nas.fr/data/attachments/9/9274-1f414ed1b7dc9f975f7a7b977e394f96.jpg?hash=H0FO0bfcn5)
Journal de log:
![]()
WIreguard sur Asustor - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.pastebin.com
Etape 10: Installation de Wireguard (Windows)
Le serveur est en /32 pour éviter la communication inter-client !
La privatekey est la clé privée du client.
L'adresse est l'ip du client, qui est déclarer dans le serveur !
Le serveur NAS à comme application AdGuardHome ce qui impliques qui répond au requête DNS. (10.0.0.1 est l'ip du NAS dans le réseau VPN)
La PublicKey est la clé Public du serveur !
J'autorise l'accès au réseau 192.168.1.0/24 dans le réseau VPN.
Pour faire passer tout les flux dans Wireguard: 0.0.0.0/0, ::/0
La valeur endpoint est l'adresse du VPN.
[Interface]
PrivateKey = 6F91qZF8VAp2xlH2FROUXqTxajtyxvtqStWjyyQpx2o=
ListenPort = 51820
Address = 10.0.0.2/24
DNS = 10.0.0.1
[Peer]
PublicKey = AExeAE6MgH0ofW4WxSDLXoIuvoGyW6UPjWCUfya+Dno=
AllowedIPs = 192.168.1.0/24
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 192.168.X.X:51820
Vérification de fonctionnement:
![1697772698579.png 1697772698579.png](https://www.forum-nas.fr/data/attachments/9/9273-3e5a61c549b2da138e359d782f9efa84.jpg?hash=PlphxUmy2h)
Etape 11: Customisation de la configuration du serveur
Les fichiers de configurations sont stockés dans le NAS et pas dans le conteneur pour permettre la maintenance plus facile. A terme l'emplacement sera changé.
/etc/wireguard/wg0.conf
/etc/wireguard/privatekey
/etc/wireguard/publickey
# Random Seed: (Voir plus bas son utilité) Azft/BmHlu+ubO+mm/o5ZvDE9rHSItqXBfxVUZv+yWc3LnzhZufWDtZ0pDQ2dO1eEO2a7sGx5fjZg5w4xQcp+3+rd7eR0rL9+6QvD3bLxng0ddqn8RK7kJE2GO+MI08xZGBvqdTrwAE/LtzL/IisrLe1xQAPmSiuMoVmiXVtD2EAajnKCAUIum482udWqGFdDtAerA+qj434cfgRwegU2ShRIRgwgr7ovNUMrGCh/IjCpEUDeuPhrxIAJMaFCuBA5XKoUo0hzfeHD5NinutpvwNY/+FK77FdR4mwzVMysHy6YoZzP7/L/KBi8pMmrN1PBqW8qjMAyc/hUzyFEorBZQ==
Etape 12: Amélioration
- Pour l'heure, j'ai utiliser le dossier classique de stockage de Wireguard pour la configuration, mais à terme il sera dans le partage Docker.
- Ensuite, il faut que je vois pour le binaire wg que je puisses l'utiliser pour générer des clés uniques.
- Les clients à termes auront leur fichiers de configuration générer automatiquement.
Pour les Bidouilleurs:
![]()
Public/ASUSTOR/AppCentral/Wireguard/CONTROL at main · dexter74/Public
Contribute to dexter74/Public development by creating an account on GitHub.github.com
> config.json : Paramètre de l'application pour ADM
> generation_wireguard.sh : Générateur de fichier de config (clé en dur) pour le moment
> pre-install.sh: Variables contenants les clés !
> post-install.sh: UID et GUID pour ceux qui veulent lancer avec un autre compte
Générer une configuration pour le serveur
- Ouvrir la page https://www.wireguardconfig.com/
- Random Seed: Clé de chiffrement qui génère la configuration, ne pas perdre !
- Listen Port: Port d'écoute du serveur
- CIDR: Adresse Réseau du VPN !
- Number of Clients: Nombre de clients autorisés à se connecter
- Endpoint (Optional): Adresse du serveur Wireguard (IPORT)
# iMPORTANT: Par faut l'interface réseau est eth0, si on utilises l'interface eth1, il faut remplacer le terme eth0 par eth1 sur le up et down.
- Post-Up rule : Règles du pare-feu lorsque le VPN se lance (Ouvre port wireguard)
- Post-Down rule : Règles du pare-feu lorsque le vpn s'éteint. (Fermeture du port wireguard)
- Use Pre-Shared Keys (Enhanced Security): Pré-authentification lors de l'authentification (optionnel mais recommandé)
Configuration Client avec DNS Google.
La clé pre-shared est déclaré du côté serveur
[Interface]
Address = <IP du client>/24
ListenPort = 51820
PrivateKey = <Clé Privée du Client>
DNS = 8.8.8.8
[Peer]
PublicKey = <Clé public du serveur>
PresharedKey =<Clé Preshared du client>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <IP OU Adresse du serveur>:51820
Dernière édition: