SEC.01
Le playbook
Le run démarre en lecture seule : les sondes de reconnaissance décident de la suite. Les étapes qui suivent sont adaptées à la distribution et à l'état trouvés — une vraie machine est rarement propre.
- 01reconWireGuard déjà installé ?
- 02reconinterface ou wg0.conf déjà présents ? ne jamais les écraser
- 03reconroute par défaut à préserver, et aucun chevauchement avec le sous-réseau VPN choisi
- 04reconport UDP libre ?
- 05reconpare-feu actif à ouvrir pour le port UDP
- 06recondistro et noyau (module WireGuard intégré depuis 5.6)
- 07agirInstaller WireGuardvérif
- 08agirGénérer les clés du serveurvérif
- 09agirÉcrire /etc/wireguard/wg0.confvérif
- 10agirOuvrir le port UDP (seulement si ufw ou firewalld est actif)vérif
- 11agirActiver wg0destructifvérif
- 12agirCréer le premier clientvérif
SEC.02
Ce qu'elle vérifie
Chaque étape embarque sa propre vérification. Le run ne continue que si elle passe, donc ce que la recette annonce comme fait est ce qui est réellement sur le serveur.
- 01vérifInstaller WireGuardVérifié par
wg --version && modprobe wireguard && echo okattendu : une version puis ok - 02vérifGénérer les clés du serveurVérifié par
stat -c %a /etc/wireguard/privatekey && test -s /etc/wireguard/publickey && echo okattendu : 600 puis ok - 03vérifÉcrire /etc/wireguard/wg0.confVérifié par
wg-quick strip wg0 >/dev/null && stat -c %a /etc/wireguard/wg0.confattendu : 600 - 04vérifOuvrir le port UDP (seulement si ufw ou firewalld est actif)Vérifié par
ufw status 2>/dev/null | grep -c "${port}/udp" || firewall-cmd --list-portsattendu : le port UDP listé - 05vérifActiver wg0Vérifié par
wg show wg0 listen-port && ip -4 route show defaultattendu : le port choisi, et la même route par défaut qu’en recon - 06vérifCréer le premier clientVérifié par
wg show wg0 peers | grep -c "$(cat /etc/wireguard/clients/${client_name}.pub)" && test -s /etc/wireguard/clients/${client_name}.conf && echo okattendu : 1 puis ok
SEC.03
Les garde-fous
Les consignes non négociables que le run doit respecter, quoi qu'il trouve sur le serveur.
Ne casse jamais la connectivité du serveur : pas de changement de la route par défaut, de /etc/resolv.conf ou des règles qui laissent sortir l’agent Servor et la session SSH. Compare la route par défaut et la résolution DNS avant/après. Jamais AllowedIPs = 0.0.0.0/0 côté serveur, ni Table/PostUp qui modifient le routage ou iptables. Le sous-réseau VPN ne doit chevaucher aucune route existante. N’écrase ni une clé ni un wg0.conf existants. Clés privées en mode 600, jamais affichées ni loggées : indique seulement le chemin du fichier client.
SEC.04
Les variables
Ce que vous choisissez avant de lancer — la recette s'occupe du reste.
| Nom | Signification |
|---|---|
| ${port} | Port UDP |
| ${address} | Adresse du serveur dans le VPN |
| ${client_name} | Nom du premier client |
SEC.05
Comment une recette s'exécute dans Servor
Servor est zero-knowledge : la plateforme ne peut rien exécuter seule. Quand vous lancez cette recette, un run lit la reconnaissance, planifie les étapes et demande votre validation. Chaque commande approuvée est signée par votre navigateur — avec une clé que le serveur ne voit jamais — puis relayée telle quelle à l'agent, qui vérifie la signature localement avant d'exécuter.
recherche par intention — tapez « firewall », obtenez ufw
- 01Reconnaissance en lecture seule avant tout changement
- 02Chaque commande signée par votre navigateur, validée par vous
- 03Chaque étape vérifiée avant de continuer, chaque run conservé dans l'historique
SEC.06
Bouton Deploy on Servor
Vous maintenez WireGuard ou un projet qui en dépend ? Ajoutez ce bouton à votre README ou à votre site : en un clic, vos utilisateurs l'installent sur leur propre serveur.
SEC.07
D'autres recettes réseau
- 01TailscaleVPN mesh Tailscale : auth key ou lien de connexion, sans toucher au DNS du serveur.
- 02Pi-holePi-hole v6 (DNS + blocage de pubs) en conteneur, sur l’IP choisie. Destructif en écoute 0.0.0.0 (port 53).
- 03AdGuard HomeDNS filtrant AdGuard Home, interface en local. Destructif : peut libérer le port 53.
- 04OpenVPNServeur OpenVPN via le script road-warrior (angristan), premier client créé. Destructif : réseau.
- 05Résolveur DNS (Unbound)Résolveur DNS récursif validant (DNSSEC) Unbound, sur localhost.
Recette vérifiée
Lancez cette recette sur votre serveur
Connectez un serveur, lancez la recette, et validez chaque étape pendant que Servor exécute et vérifie. Plan gratuit, sans carte bancaire.