MODOP – Installation WireGuard VPN

Inventaire des Machines

Host : wireguard-server.house.cpb

  • IP: 172.16.185.40
  • Subnet : 172.16.185.0/24
  • vSwitch : vmbr1
  • Disque : 8Go (Système)
  • RAM :2Go
  • vCPU : 2
  • OS : RockyLinux 8

Host : wireguard-client01.house.cpb

  • IP: 10.10.0.40
  • Subnet : 10.10.0.0/24
  • vSwitch : vmbr4
  • Disque : 8Go (Système)
  • RAM :2Go
  • vCPU : 2
  • OS : RockyLinux 8

Les deux machines doivent être joignable mutuellement.

Check wireguard-server (172.16.185.40) => wireguard-client01(10.10.0.40)

[root@wireguard-server ~]# echo "10.10.0.40 wireguard-client01" >> /etc/hosts
[root@wireguard-server ~]# ping -c 3 wireguard-client01

wireguard-client01(10.10.0.40) => Check wireguard-server (172.16.185.40)

[root@wireguard-client01 ~]# echo "172.16.185.40 wireguard-server" >> /etc/hosts
[root@wireguard-client01 ~]# ping -c 3 wireguard-server

Installation Serveur VPN WireGuard – RockyLinux

1°) Mise à jour

[root@wireguard-server ~]# dnf -y update

2°) Désactivation IPv6 (Option)

[root@open-serveurvpn ~]# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
[root@open-serveurvpn ~]# echo "net.ipv6.conf.all.autoconf = 0" >> /etc/sysctl.conf
[root@open-serveurvpn ~]# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
[root@open-serveurvpn ~]# echo "net.ipv6.conf.default.autoconf = 0" >> /etc/sysctl.conf
[root@open-serveurvpn ~]# sysctl -p

3°) Installation des dépendances

[root@wireguard-server ~]# dnf install epel-release
[root@wireguard-server ~]# yum install elrepo-release

4°) Installation WireGuard VPN

[root@wireguard-server ~]# dnf search wireguard

[root@wireguard-server ~]# dnf -y install wireguard-tools kmod-wireguard

5°) Création des clefs Public/Privée pour le  Server

[root@wireguard-server ~]# cd /etc/wireguard/
[root@wireguard-server wireguard]# wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

[root@wireguard-server wireguard]# cat publickey
H9JrgVaNJh9wmB25K4wlQlG/fVii1um+mhkGApPJXUs=

[root@wireguard-server wireguard]# cat privatekey
8DLZHyjeS2HHozkYpeaZJM64oGOwYDcbU/i+E1FjQ0Y=

6°) Création/Configuration du server VPN

[root@wireguard-server wireguard]# vi wg0.conf

[Interface]
Address = 100.10.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = 8DLZHyjeS2HHozkYpeaZJM64oGOwYDcbU/i+E1FjQ0Y=
PostUp = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
PostDown = firewall-cmd --zone=public --remove-port 51820/udp && firewall-cmd --zone=public --remove-masquerade
[root@wireguard-server wireguard]# chmod 600 /etc/wireguard/{privatekey,wg0.conf}
[root@wireguard-server wireguard]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@wireguard-server wireguard]# sysctl –p

7°) Démarrage du server VPN

[root@wireguard-server wireguard]# wg-quick up wg0

[root@wireguard-server wireguard]# ip addr

Le VPN est monté sur la Carte Virtuelle wg0 et le Subnet 100.10.0.0/24

8°) Démarrage du service  » boot machine » 

[root@wireguard-server wireguard]# systemctl enable wg-quick@wg0
[root@wireguard-server wireguard]# wg-quick down wg0
[root@wireguard-server wireguard]# systemctl start wg-quick@wg0
[root@wireguard-server wireguard]# systemctl status wg-quick@wg0

[root@wireguard-server wireguard]# wg show wg0

[root@wireguard-server wireguard]# ip a show wg0

Côté Firewall

[root@wireguard-server wireguard]# firewall-cmd --list-all

Installation Client Linux VPN WireGuard – RockyLinux

1°) Mise à jour

[root@wireguard-client01 ~]# dnf -y update

2°) Désactivation IPv6 (Option)

[root@wireguard-client01 ~]# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
[root@wireguard-client01 ~]# echo "net.ipv6.conf.all.autoconf = 0" >> /etc/sysctl.conf
[root@wireguard-client01 ~]# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
[root@wireguard-client01 ~]# echo "net.ipv6.conf.default.autoconf = 0" >> /etc/sysctl.conf
[root@wireguard-client01 ~]# sysctl -p

3°) Installation des dépendances

[root@wireguard-client01 ~]# dnf install epel-release elrepo-release

4°) Installation WireGuard VPN

[root@wireguard-client01 ~]# dnf install kmod-wireguard wireguard-tools –y

5°) Création des certificats Client01

[root@wireguard-client01 ~]# cd /etc/wireguard/
[root@wireguard-client01 wireguard]# wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

[root@wireguard-client01 wireguard]# cat /etc/wireguard/privatekey
gLHwqTDBJtw2wYfCdqvBthcmpDsDqtCC+FKeKOZaaVo=

[root@wireguard-client01 wireguard]# cat /etc/wireguard/publickey
bXbsDi3C2PThp8Eq8dmPtmiwNteEhexjyq4NHAtg/0U=

6°) Création/Configuration du client01 VPN

[root@wireguard-client01 wireguard]# vi wg0.conf

[Interface]
#Clef Privée du client
PrivateKey = gLHwqTDBJtw2wYfCdqvBthcmpDsDqtCC+FKeKOZaaVo=
#Adresse du client sur le VPN
Address = 100.10.0.2/24

[Peer]
#Clef Public du serveur
PublicKey = H9JrgVaNJh9wmB25K4wlQlG/fVii1um+mhkGApPJXUs=
#Adresse et port du Serveur WireGuard
Endpoint = wireguard-server:51820
AllowedIPs = 0.0.0.0/0

7°) Ajout Clef Public du client01 sur le serveur WireGuard

  • Clef Public du client01 : bXbsDi3C2PThp8Eq8dmPtmiwNteEhexjyq4NHAtg/0U=
  • Adresse du Client sur le VPN : 100.10.0.2
[root@wireguard-server wireguard]# wg set wg0 peer bXbsDi3C2PThp8Eq8dmPtmiwNteEhexjyq4NHAtg/0U= allowed-ips 100.10.0.2

8°) Démarrage du client VPN

[root@wireguard-client01 wireguard]# wg-quick up wg0

[root@wireguard-client01 wireguard]# ip addr

Le VPN (Client01) est monté sur la Carte Virtuelle wg0 et le Subnet 100.10.0.0/24

9°) Démarrage du service « boot machine »

[root@wireguard-client01 wireguard]# systemctl enable wg-quick@wg0
[root@wireguard-client01 wireguard]# wg-quick down wg0
[root@wireguard-client01 wireguard]# systemctl start wg-quick@wg0
[root@wireguard-client01 wireguard]# systemctl status wg-quick@wg0

[root@wireguard-client01 wireguard]# wg show wg0

[root@wireguard-client01 wireguard]# ip a show wg0

10°) Check connexion

Check de wireguard-client01 => wireguard-server via réseau VPN

[root@wireguard-client01 wireguard]# ping -c 3 100.10.0.1

Check de wireguard-server => wireguard-client01 via réseau VPN

[root@wireguard-server log]# ping -c 3 100.10.0.2

Connexion SSH du client01 sur le Serveur

[root@wireguard-client01 wireguard]# ssh -l root 100.10.0.1

On se connecte bien sur la machine serveur à partir de notre client via le réseau VPN.

Views: 3

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *