Outils pour utilisateurs

Outils du site


doc:wireguard

Ceci est une ancienne révision du document ! —-

Wireguard

Wireguard est un logiciel de VPN. configuration pour une debian.

Configuration Serveur

Configuration Wireguard

Première étape, installation sur le serveur :

[root@localhost ~]# apt-get install wireguard

Création des clés privé/publique :

[root@localhost /etc/wireguard/]# wg genkey | tee serveur-private.key | wg pubkey > serveur-public.key

Configuration coté serveur : Créer le fichier /etc/wireguard/wg0.conf il sera le fichier de config principal. C'est la qu'on déclarera aussi les clients autorisés à venir se connecter.

[root@localhost /etc/wireguard/]# vim wg0.conf

Celui ci devra comporter les lignes suivantes :

[Interface]
Address = 192.168.110.12/24
SaveConfig = true
ListenPort = 51820
PrivateKey = [Cle_prive_serveur]

# User 1
[Peer]
PublicKey = [Cle_publique_user_1]
AllowedIPs = 192.168.110.2/32

# User 2
[Peer]
PublicKey = [Cle_publique_user_2]
AllowedIPs = 192.168.110.42/32

Section [Interface]:

  • Address : l'adresse ip du serveur dans le tunnel VPN.
  • SaveConfig : permet d'enregistrer le configuration du serveur à la fermeture de celui ci.
  • ListenPort : C'est le port sur lequel Wireguard écoute les connexions entrantes.
  • PrivateKey : La clé privé du serveur est à mettre ici.
L'option SaveConfig impose d'arreter Wireguard si on veut modifier la configuration. Wireguard écrasera le fichier avec sa config actuelle lorsqu'on l'arrete.

Section [Peer]

  • PublicKey : La clé publique du client est à mettre ici.
  • AllowedIPs : C'est l'IP avec laquelle le client va se déclarer en se connectant. Elle doit faire partie du tunnel VPN.

Une section [Peer] est à déclarer pour chaque dispositif voulant se connecter au VPN.

Faire attention à ce que le fichier de conf ne soit accessible qu'a root :

[root@localhost /etc/wireguard/]# chmod 600 wg0.conf

Pour démarrer et arreter Wireguard on utilisera les commandes suivantes :

[root@localhost ~]# wg-quick up wg0
[root@localhost ~]# wg-wuick down wg0

Configuration Firewall

Il va falloir mettre en place le routage du tunnel VPN vers le réseau physique de la machine. Pour cela on va utiliser ufw.

Si ce n'est pas déjà fait installez ufw :

[root@localhost ~]# apt-get install ufw

Si vous utilisez ssh pour vous connecter au serveur, commencez par permettre à ssh de passer :

[root@localhost ~]# ufw allow 22/tcp

On permet ensuite au paquet du VPN de passer :

[root@localhost ~]# ufw allow 51820/udp

Puis on édite le fichier /etc/ufw/before.rules pour y ajouter à la fin le paragraphe suivant :

# NAT - IP masquerade
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o enp0s25 -j MASQUERADE

COMMIT

Remplacer enp0s25 par le nom de votre propre interface réseau physique. Pour la trouver vous pouvez utiliser la commande :

[root@localhost ~]# ifconfig

Ensuite on ajoute dans la table *filter les lignes suivantes :

-A ufw-before-forward -s 192.168.100.0/24 -j ACCEPT
-A ufw-before-forward -d 192.168.100.0/24 -j ACCEPT
-A ufw-before-forward -s 192.168.110.0/24 -j ACCEPT
-A ufw-before-forward -d 192.168.110.0/24 -j ACCEPT
Pour qu'elles soit bien prises en compte faire attention à ce que ces lignes soit entre la ligne *filter et la ligne COMMIT associée

On peut maintenant enregistrer et fermer /etc/ufw/before.rules puis on active le pare feu :

[root@localhost ~]# ufw enable
[root@localhost ~]# ufw reload

Configuration Client

Pour la configuration du client, on commence par générer un jeu de clé privé/publique :

[root@localhost /etc/wireguard/]# wg genkey | tee serveur-private.key | wg pubkey > serveur-public.key

Sur le client, créer le fichier /etc/wireguard/wg0.conf et y mettre les lignes suivantes :

[Interface]
Address = 192.168.110.43/24
PrivateKey = [Cle_prive_user_1]
DNS = 8.8.8.8

[Peer]
PublicKey = [Cle_publique_serveur]
AllowedIPs = 192.168.110.0/24
Endpoint = NomDeDomaineOuIpPubliqueDuServeur:51820
PersistentKeepalive = 25

Section [Interface]:

  • Address : c'est l'adresse que va prendre le client sur le tunnel VPN. Cette adresse doit etre déclaré sur le serveur dans la section [Peer].
  • PrivateKey : C'est la clé privé du client.
  • DNS : c'est l'adresse du serveur DNS qui servira à résoudre les noms de domaines.

Section [Peer]

  • PublicKey : C'est la clé publique du serveur.
  • AllowedIPs : C'est l'adresse du réseau VPN qu'on cherche à joindre.
  • Endpoint : Il faut mettre ici le nom de domaine ou l'adresse IP publique du réseau dans lequel le serveur se trouve.
  • PersistentKeepalive : permet de contacter régulièrement le serveur pour maintenir le tunnel ouvert. Ici toutes les 25 secondes.
Bien penser à ouvrir le port 51820 sur le routeur du réseau du serveur, et à rediriger le flux de ce port sur l'adresse ip de la carte physique du serveur.
La clé publique et l'adresse IP sont à déclarer dans le fichier de configuration du serveur dans la section [Peer]
doc/wireguard.1791627936.txt.gz · Dernière modification : de marc