# Installation de Wireguard sur Proxmox

**URL:** <https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874>\
**Category:** Support Debian\
**Created:** [Septembre 18, 2020, 9:29 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874 "2020-09-18T21:29:55Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dexter74](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dexter74/32/4705_2.png) [@dexter74](https://www.debian-fr.org/u/dexter74)\
**Post date:** [Septembre 18, 2020, 9:29 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874/1 "2020-09-18T21:29:55Z")

</div>

Bonjour,

Je souhaiterai un petit coups de main pour la mise en place d’un VPN sous Wireguard.

Information sur la Machine:

> - IPV4: 192.168.1.5/24
> - Interface: ens18
> - Port : 51820

**Installation :**

> - echo «&nbsp;deb [Index of /debian](http://deb.debian.org/debian) buster-backports main&nbsp;» \> /etc/apt/sources.list.d/buster-backports.list
> - apt update
> - apt install -y wireguard  
> apt install -y wireguard-tools wireguard-dkms linux-headers-$(uname -r)

**Autoriser le forwarding:**

> - sed -i ‹&nbsp;s/#net.ipv4.ip\_forward=1/net.ipv4.ip\_forward=1/g&nbsp;› /etc/sysctl.conf
> - sysctl -w net.ipv4.ip\_forward=1

**Désactivation du Service pour la maintenance**

> systemctl disable wg-quick@wg0  
> systemctl stop wg-quick@wg0

**Purge des anciennes clés**

> rm /etc/wireguard/wg0.conf  
> rm /etc/wireguard/privatekey  
> rm /etc/wireguard/publickey

**Ajout des clés**

> - echo «&nbsp;\*\*\*\*\*\*\*\*\*\*\*&nbsp;» \> /etc/wireguard/privatekey
> - echo «&nbsp;\*\*\*\*\*\*\*\*\*\*\*&nbsp;» \> /etc/wireguard/publickey (Le caractère est celui-ci " et pas «&nbsp;&nbsp;» )

**Configuration Serveur** (nano /etc/wireguard/wg0.conf)

> [Interface]  
> Address = 192.168.20.1/24  
> ListenPort = 51820  
> PrivateKey =  
> PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE  
> PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 192.168.20.2/32
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 192.168.20.3/32
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 192.168.20.4/32
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 192.168.20.5/32
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 192.168.20.6/32

**Fin de la maintenance du service**

> systemctl enable wg-quick@wg0 ;  
> systemctl start wg-quick@wg0 ;

Client:

> sudo apt install openresolv

Site utiles:

> [https://www.wireguardconfig.com/](https://www.wireguardconfig.com/)

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Septembre 19, 2020, 8:01 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874/2 "2020-09-19T08:01:26Z")

</div>

> [@dexter74](#):
>
> Je souhaiterai un petit coups de main pour la mise en place d’un VPN sous Wireguard.

Je n’ai pas vue de point d’interrogation, quel est donc la question/problème ?

---

<div class="post-metadata">

**Author:** ![dexter74](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dexter74/32/4705_2.png) [@dexter74](https://www.debian-fr.org/u/dexter74)\
**Post date:** [Septembre 19, 2020, 9:42 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874/3 "2020-09-19T09:42:49Z")

</div>

Le port 51820 est ouvert en UDP vers la machine 192.168.1.7

> root@sldebian01:/etc# wg
> 
> > interface: wg0  
> > public key: peer: \*\*\*\*\*\*\*\*\*\*\*\*\*  
> > private key: (hidden)  
> > listening port: 51820  
> > peer: \*\*\*\*\*\*\*\*\*\*\*\*\*  
> > allowed ips: 192.168.20.2/32  
> > peer: \*\*\*\*\*\*\*\*\*\*\*\*\*  
> > allowed ips: 192.168.20.3/32  
> > peer: \*\*\*\*\*\*\*\*\*\*\*\*\*  
> > allowed ips: 192.168.20.4/32  
> > peer:\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> > allowed ips: 192.168.20.5/32  
> > peer: \*\*\*\*\*\*\*\*\*\*\*\*\*

iptables -L

> Chain INPUT (policy ACCEPT)  
> target prot opt source destination
> 
> Chain FORWARD (policy ACCEPT)  
> target prot opt source destination  
> ACCEPT all – anywhere anywhere
> 
> Chain OUTPUT (policy ACCEPT)  
> target prot opt source destination

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Septembre 20, 2020, 9:31 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874/4 "2020-09-20T09:31:20Z")

</div>

Petite question bête, tu installes Wireguard sur l’hôte, une vraie machine virtuelle ou un conteneur ?

---

<div class="post-metadata">

**Author:** ![dexter74](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dexter74/32/4705_2.png) [@dexter74](https://www.debian-fr.org/u/dexter74)\
**Post date:** [Septembre 20, 2020, 11:46 UTC](https://www.debian-fr.org/t/installation-de-wireguard-sur-proxmox/82874/5 "2020-09-20T11:46:07Z")

</div>

Bonjour,

Le service Wireguard et Adguardhome sont installés sur une Machine Virtuelle et j’ai réussi.

La configuration du client est important pour se connecter.

Infos:

> Réseau: 192.168.1.0/24
> 
> Poste W10:
> 
> > - Poste: Windows 10 PRO
> > - Adresse IP : 192.168.1.21
> > - Port: 3389
> 
> Serveur: sldebian01
> 
> > 1. Interface ens18 : 192.168.1.5
> > 2. Interface wg0: 192.168.30.1

Mon Poste:

> Adresse: 192.168.30.2  
> DNS: 192.168.30.1 (Sldebian01)

Mon Poste \> wg0 \> Sldebian01 \> ens18 \> W10

* * *

**Wireguard - Nettoyage d’ancienne version**

> apt autoremove --purge -y wireguard  
> rm -r /etc/wireguard

**Wireguard - Ajout du dépôt Backports + Installation** (Release: Buster)

> sudo nano /etc/apt/sources.list.d/buster-backports.list  
> deb [Index of /debian](http://deb.debian.org/debian) buster-backports main  
> apt update  
> apt install -y wireguard

**Autoriser le Forwarding**

> nano /etc/sysctl.conf  
> #net.ipv4.ip\_forward=1 en \> net.ipv4.ip\_forward=1  
> A chaud: /sbin/sysctl -w net.ipv4.ip\_forward=1

**Arrêt du service**

> systemctl disable wg-quick@wg0  
> systemctl stop wg-quick@wg0  
> systemctl status wg-quick@wg0

#################################################################################################

**Aller sur le site wireguardconfig pour générer une configuration.**

> Noter bien la clé «&nbsp;Random Seed&nbsp;», c’est l’algorithme qui génère les clés Privée / Clients.  
> «&nbsp;Post-Up rule&nbsp;» et «&nbsp;Post-Down rule&nbsp;» contient le nom de l’interface à appliquer au niveau du pare-feu (eth0 par défaut)

> La clé du serveur PRIVATE:  
> nano /etc/wireguard/privatekey

> La clé du serveur PUBLIC :  
> nano /etc/wireguard/publickey

**Configuration du serveur**

> nano /etc/wireguard/wg0.conf  
> Coller la configuration serveur

**Rendre le fichier accessible qu’en ROOT**

> sudo chmod 600 /etc/wireguard/ -R

**Activation du service**

> systemctl enable wg-quick@wg0  
> reboot  
> systemctl status wg-quick@wg0

**Information:**

> L’adresse 10.0.0.1 sera l’adresse du serveur et donc l’adresse DNS pour votre client.  
> Les adresses X.X.X.2-4 sont les clients
> 
> > Le /32 permet d’avoir que 2 IP disponibles . (Client et Serveur)

* * *

**Client:**  
Le client se connectera au VPN ayant l’adresse teste.ddns.net:51820.  
Le client utilisera le serveur DNS 10.0.0.1.

> [Interface]  
> Address = 10.0.0.2/24  
> ListenPort = 51820  
> PrivateKey = \*\*\*\*\*\*\*\*\*\*\*\*  
> DNS = 10.0.0.1
> 
> [Peer]  
> PublicKey = \*\*\*\*\*\*\*\*\*\*\*\*  
> AllowedIPs = 0.0.0.0/0, ::/0  
> Endpoint = teste.ddns.net:51820

! A ce stade le client arrive juste à ce connecter sur le serveur VPN mais le SURF est KO. (DNS pas fonctionnel)

#################################################################################################

**Installation du DNS ADGuardHome**

> cd /root/  
> wget [https://static.adguard.com/adguardhome/release/AdGuardHome\_linux\_amd64.tar.gz](https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz) -O - | tar -xz  
> ./AdGuardHome/AdGuardHome -s install  
> ./AdGuardHome/AdGuardHome -s status

**Terminé l’installation du DNS via le navigateur**  
_Lors de l’installation on peux bloquer l’accès au panel Web du DNS à un réseau pour éviter qu’il soit accessible pour le VPN._  
Le port 3000 est pour l’installation et le 80 est pour gérer le panel une fois installé.

> http//\<IP\_SERVEUR\>:3000

! Une fois cette étape terminé, le client a une résolution DNS et donc le surf fonctionne.

#################################################################################################

**Installer le paquet Iptabes-persistent**

> apt install -y iptables-persistent

* * *

Mon interface s’appel ens18 , donc à ajuster pour un autre nom d’interface.

|Description|Port|Protocol|XX|  
|—|—|—|  
En cours| |||

# **Iptables.sh**

> ### Reset le pare-feu
> 
> /sbin/iptables -t filter -F  
> /sbin/iptables -t filter -X
> 
> ### Bloquer tous le trafic
> 
> /sbin/iptables -t filter -P INPUT DROP  
> /sbin/iptables -t filter -P FORWARD DROP  
> /sbin/iptables -t filter -P OUTPUT DROP
> 
> ### Ne pas interrompre les connexions établies
> 
> /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
> /sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
> 
> ### Autorise les connexions entre loopback
> 
> /sbin/iptables -t filter -A INPUT -i lo -j ACCEPT  
> /sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT
> 
> ### Autoriser ICMP
> 
> /sbin/iptables -A INPUT -i ens18 -p icmp -j ACCEPT  
> iptables -A OUTPUT -o ens18 -p icmp -j ACCEPT
> 
> ### SSH
> 
> /sbin/iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT  
> /sbin/iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
> 
> ### DNS
> 
> /sbin/iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT  
> /sbin/iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT  
> /sbin/iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT  
> /sbin/iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
> 
> ### HTTP
> 
> /sbin/iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT  
> /sbin/iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
> 
> ### HTTPS
> 
> /sbin/iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT  
> /sbin/iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
> 
> ### AdGuardHome
> 
> /sbin/iptables -t filter -A INPUT -p tcp --dport 3000 -j ACCEPT
> 
> ### Wireguard
> 
> /sbin/iptables -t filter -A INPUT -p udp --dport 51820 -j ACCEPT
> 
> ### On accepte les paquets en provenance du VPN
> 
> /sbin/iptables -A FORWARD -i wg0 -j ACCEPT
> 
> ### On autorise également les paquets à destination du VPN
> 
> /sbin/iptables -A FORWARD -o wg0 -j ACCEPT
> 
> ### On effectue la traduction d’adresse entre l’IP publique du serveur et les clients
> 
> /sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens18 -j MASQUERADE
> 
> ### Mode Persistance:
> 
> > /sbin/iptables-save \>/etc/iptables/rules.v4
> 
> ### Activation du Service
> 
> systemctl enable netfilter-persistent  
> systemctl restart netfilter-persistent
