reseau:wireguard
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
reseau:wireguard [2024/08/17 00:04] – [Configuration côté client] alarig | reseau:wireguard [2024/08/17 13:58] (Version actuelle) – alarig | ||
---|---|---|---|
Ligne 24: | Ligne 24: | ||
PublicKey = YtTa180Wgh3HiV4iVxoFL8vb3E+NueGpv4BLGuN3Zgs= | PublicKey = YtTa180Wgh3HiV4iVxoFL8vb3E+NueGpv4BLGuN3Zgs= | ||
AllowedIPs = 89.234.186.78/ | AllowedIPs = 89.234.186.78/ | ||
- | PersistentKeepalive = 25 | ||
</ | </ | ||
Ligne 60: | Ligne 59: | ||
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 > / | ||
+ | echo module wireguard -p > / | ||
+ | ``` | ||
+ | |||
+ | 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 87: | Ligne 96: | ||
De toutes façons on fournira un fichier de conf client d’exemple comme on le faisait pour OpenVPN. | De toutes façons on fournira un fichier de conf client d’exemple comme on le faisait pour OpenVPN. | ||
+ | |||
+ | |||
+ | ===== Script de génération ===== | ||
+ | |||
+ | Voici la v1 du script de génération de VPN wg. C’est une adaptation bête de celui d’OpenVPN. | ||
+ | <file bash / | ||
+ | #!/bin/sh | ||
+ | |||
+ | usage() { | ||
+ | printf " | ||
+ | printf "\t-h, --help | ||
+ | printf "\t-u, --user | ||
+ | printf "\t-i, --id Numéro servant à la génération des IPs\n" | ||
+ | printf "\t-m, --email | ||
+ | connexion\n" | ||
+ | } | ||
+ | |||
+ | OPTS=$(getopt -o u:,m:,h -l user:, | ||
+ | |||
+ | if [ $? != 0 ]; then | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if [ $1 ]; then | ||
+ | if [ $1 = ' | ||
+ | usage | ||
+ | exit 0 | ||
+ | elif [ $# -lt 4 ]; then | ||
+ | echo " | ||
+ | usage | ||
+ | exit 1 | ||
+ | fi | ||
+ | else | ||
+ | echo " | ||
+ | usage | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | eval set -- " | ||
+ | |||
+ | while :; do | ||
+ | case " | ||
+ | -h | --help) | ||
+ | exit 0;; | ||
+ | -u | --user) | ||
+ | shift 2;; | ||
+ | -m | --email) | ||
+ | shift 2;; | ||
+ | --) | ||
+ | esac | ||
+ | done | ||
+ | |||
+ | mailregex=$(echo $EMAIL | egrep ' | ||
+ | if [ ${# | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | echo "1 - Récupération last IPv4" | ||
+ | LAST_VPN_V4=$(add-ovpn.netbox.py -a ipv4 -u " | ||
+ | V4_RETURN=$? | ||
+ | echo ${LAST_VPN_V4} | ||
+ | if [ ${V4_RETURN} = 1 ]; then | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | echo "2 - Récupération last IPv6" | ||
+ | LAST_VPN_V6=$(add-ovpn.netbox.py -a ipv6 -u " | ||
+ | echo ${LAST_VPN_V6} | ||
+ | |||
+ | WG_PORT=$(printf ' | ||
+ | |||
+ | echo "3 - Génération de la clé wg" >&2 | ||
+ | wg genkey | tee "/ | ||
+ | wg genkey | tee "/ | ||
+ | |||
+ | echo "4.1 - Génération de la configuration wg" >&2 | ||
+ | echo " | ||
+ | ListenPort = ${WG_PORT} | ||
+ | PrivateKey = $(cat / | ||
+ | |||
+ | [Peer] | ||
+ | PublicKey = $(cat / | ||
+ | AllowedIPs = ${LAST_VPN_V4}/ | ||
+ | |||
+ | echo "4.2 - Génération de la configuration ip" >&2 | ||
+ | echo " | ||
+ | config_wg${WG_PORT}=\" | ||
+ | routes_wg${WG_PORT}=\" | ||
+ | ${LAST_VPN_V4}/ | ||
+ | ${LAST_VPN_V6} | ||
+ | \" | ||
+ | |||
+ | postup () { | ||
+ | ip link set wg${WG_PORT} alias \" | ||
+ | }" > "/ | ||
+ | |||
+ | echo "4.3 - Activation du VPN" >&2 | ||
+ | ln -s / | ||
+ | rc-update add net.wg${WG_PORT} | ||
+ | rc-service net.wg${WG_PORT} start | ||
+ | |||
+ | echo "5 - Envoi du mail" >&2 | ||
+ | SUBJECT=$(perl -wse "use utf8; use Encode qw(encode); print encode(\" | ||
+ | \" | ||
+ | |||
+ | echo "Date: $(date --rfc-2822) | ||
+ | Content-Type: | ||
+ | MIME-Version: | ||
+ | Content-Transfer-Encoding: | ||
+ | From: Adminsys grifon < | ||
+ | To: < | ||
+ | Subject: $SUBJECT | ||
+ | Organization: | ||
+ | Message-ID: <$(date | md5sum | cut -d ' ' -f 1)@wg.grifon.fr> | ||
+ | |||
+ | Bonjour, | ||
+ | Votre VPN vient d’être créé. | ||
+ | |||
+ | Vous avez l’IPv4 $LAST_VPN_V4 et le subnet IPv6 $LAST_VPN_V6. | ||
+ | Votre configuration se trouve à la fin de ce mail. | ||
+ | Si vous souhaitez regénérer votre clé, n’hésitez pas à nous envoyer votre | ||
+ | nouvelle clé publique. | ||
+ | |||
+ | Si vous voulez un reverse DNS sur votre VPN, merci d’envoyer un mail à | ||
+ | adminsys@grifon.fr contenant votre choix, ou les serveurs à qui déléguer les | ||
+ | zones. | ||
+ | |||
+ | ##### DÉBUT DU FICHIER DE CONFIGURATION ##### | ||
+ | |||
+ | [Interface] | ||
+ | PrivateKey = $(cat / | ||
+ | DNS = 89.234.186.4, | ||
+ | |||
+ | [Peer] | ||
+ | Endpoint = wg.grifon.fr: | ||
+ | PublicKey = $(cat / | ||
+ | AllowedIPs = 0.0.0.0/0, ::/0 | ||
+ | |||
+ | ##### FIN DU FICHIER DE CONFIGURATION ##### | ||
+ | |||
+ | Cordialement, | ||
+ | -- | ||
+ | Les adminsys de grifon" | ||
+ | |||
+ | |||
+ | SUBJECT=$(perl -wse "use utf8; use Encode qw(encode); print encode(\" | ||
+ | \" | ||
+ | |||
+ | echo "From: Adminsys grifon < | ||
+ | To: adminsys@grifon.fr | ||
+ | Content-Type: | ||
+ | Subject: ${SUBJECT} | ||
+ | |||
+ | IPv4 : ${LAST_VPN_V4} | ||
+ | IPv6 : ${LAST_VPN_V6} | ||
+ | |||
+ | " | / | ||
+ | </ |
reseau/wireguard.1723853040.txt.gz · Dernière modification : 2024/08/17 00:04 de alarig