Wireguard est un logiciel de VPN. Configuration pour un serveur debian et un client Mageia.
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]:
Section [Peer]
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
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.0.0/24 -j ACCEPT -A ufw-before-forward -d 192.168.0.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
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]:
Section [Peer]
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.