Ceci est une ancienne révision du document ! —-
Table des matières
Wireguard
Wireguard est un logiciel de VPN. Configuration pour un serveur debian et un client Mageia.
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.
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
Pour permettre au serveur de se lancer tout seul au démarrage du serveur utilisez le commande suivante :
[root@localhost ~]# systemctl enable wg-quick@wg0.service
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
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.
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
Ajoutez un alias dans le .bashrc de root si besoin.
