Outils pour utilisateurs

Outils du site


reseau:wireguard

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
reseau:wireguard [2024/08/17 13:46] alarigreseau:wireguard [2025/04/23 13:39] (Version actuelle) alarig
Ligne 10: Ligne 10:
 ===== Technique ===== ===== Technique =====
  
-Pour le moment le PoC se passe sur `ovpn02.grif` histoire d’éviter de spawn une VM juste pour les tests+On réutilise les VM ` ovpn01.grif` et `ovpn02.grif` histoire d’éviter de spawn une VM juste pour « rien ». 
 +La redondance BGP se fait sur le routeur ID, et la synchro entre les deux se fait avec un rsync en cron. Par contre, il ne gère pas la suppression de VPN, il faut aller supprimer la conf sur les deux machines. 
 +<file bash | /usr/local/sbin/rsync-wg.sh> 
 +#!/usr/bin/env bash 
 + 
 +die() { 
 + echo "$1" 
 + exit 1 
 +
 + 
 +if [ "$1" = "" ]; then 
 + echo "The first argument must be the remote containing the production configs" 
 + die "Other arguments are ignored" 
 +else 
 + REMOTE="$1" 
 +fi 
 + 
 +which rsync 1>/dev/null || die "This script needs rsync" 
 +getent hosts "${REMOTE}" 1>/dev/null || die "The remote ${REMOTE} is not resolvable" 
 + 
 +if [ ! -d /etc/wireguard/ ]; then 
 + mkdir -p /etc/wireguard/ 
 +fi 
 + 
 +RSYNC_OPTIONS="-aX" 
 +SSH_OPTIONS="-o PreferredAuthentications=publickey" 
 +rsync ${RSYNC_OPTIONS} -e "ssh ${SSH_OPTIONS}"
 + ${REMOTE}:/etc/wireguard/ /etc/wireguard/ || \ 
 + die "rsync /etc/wireguard/ failed" 
 +rsync ${RSYNC_OPTIONS} -e "ssh ${SSH_OPTIONS}"
 + ${REMOTE}:/etc/conf.d/net.wg* /etc/conf.d/ || \ 
 + die 'rsync /etc/conf.d/net.wg* failed' 
 + 
 +for i in /etc/conf.d/net.wg*; do 
 + # We need the file from the init.d dir 
 + INITD="${i/conf/init}" 
 + if [ ! -h ${INITD} ]; then 
 + ln -s /etc/init.d/net.lo "${INITD}" 
 + # We only need the file name 
 + rc-update add $(basename "${INITD}"
 + rc-service $(basename "${INITD}") start 
 + fi 
 +done 
 +</file>
  
 La mise en place se fait avec deux fichiers et trois commandes. Chaque utilisateur a son port que l’on extrapole du dernier bloc de l’adresse IPv6 : `2a00:5884:8316::/48` donne `printf '%d\n' '0x8316'` soit 33558. La mise en place se fait avec deux fichiers et trois commandes. Chaque utilisateur a son port que l’on extrapole du dernier bloc de l’adresse IPv6 : `2a00:5884:8316::/48` donne `printf '%d\n' '0x8316'` soit 33558.
Ligne 59: Ligne 102:
 rc-service ip6tables save rc-service ip6tables save
 ``` ```
 +===== Debug =====
 +
 +Wireguard étant un module kernel, il faut jouer avec le debug du kernel :
 +```
 +echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control # activation
 +echo module wireguard -p > /sys/kernel/debug/dynamic_debug/control # desactivation
 +```
 +
 +Ensuite ça se consulte avec `dmesg -Tw`. À noter que le temps dans dmesg n’est pas hyper fiable, et que ça nécessite l’option kernel `DYNAMIC_DEBUG`.
 +
  
 ===== Configuration côté client ===== ===== Configuration côté client =====
Ligne 245: Ligne 298:
 " | /usr/sbin/sendmail -f adminsys@grifon.fr -t " | /usr/sbin/sendmail -f adminsys@grifon.fr -t
 </file> </file>
 +
 +===== Suppression de VPN =====
 +
 +Pour supprimer un VPN il faut :
 +  - Désactiver le service d’init
 +  - Supprimer la conf réseau
 +  - Supprimer la conf wireguard
 +
 +==== Désactiver le service d’init ====
 +
 +`rc-update del net.wg42 && rc-service net.wg42 stop && rm /etc/init.d/net.wg42`
 +
 +
 +==== Supprimer la conf réseau ====
 +
 +`rm /etc/conf.d/net.wg42`
 +
 +==== Supprimer la conf wireguard ====
 +
 +`rm /etc/wireguard/wg42`
reseau/wireguard.1723902400.txt.gz · Dernière modification : 2024/08/17 13:46 de alarig