====== OPNSense : Wireguard VPN ======
===== Côté OPNSENSE =====
==== Configuration du VPN ====
- Installer le package Wireguard via System -> Firmware -> Plugins {{:reseau:opnsense:pasted:20210104-145048.png}}
- Faire F5 dans le navigateur pour faire apparaître le nouveau menu VPN Wireguard
- Dans VPN -> Wireguard -> Local appuyez sur le + pour créer une nouvelle entité{{:reseau:opnsense:pasted:20210104-145323.png}}
- Créer la configuration de la sorte:
- Name: Nom de la connexion
- Public Key & Private Key: peuvent être laissés vides, ils seront remplis après avoir pressé Save
- DNS Server: Indiquer le serveur DNS que vous souhaitez utilisez
- Tunnel address: Définir un subnet qui autorise la communication entre l'entité et le Peer. De préférénce un CDIR 24
- Peer: On devra retourner et choisir le Peer autorisé une fois créé {{:reseau:opnsense:pasted:20210104-145710.png}}
- Dans VPN -> Wireguard -> Endpoints appuyez sur le + pour créer une nouvelle Peer
- Créer la configuration de la sorte:
- Name: Donner un nom
- Public Key: doit être la clée publique générée par le client
- Shared Secret: optionnel, permet de mettre un mot de passe sur la connexion
- Allowed IP, on prend une adresse dans le Tunnel Address, en CDIR 32
- Enpoint Address & Endpoint Port: si il s'agit d'une configuration en RoadWarrior, ces deux champs peuvent rester vide{{:reseau:opnsense:pasted:20210104-150519.png}}
- Retourner dans VPN -> Wireguard -> Local et éditer l'entité créée pour sélectionner le Peer distant. {{:reseau:opnsense:pasted:20210104-150720.png}}
- Dans VPN -> Wireguard -> General, activer WireGuard et faire Save {{:reseau:opnsense:pasted:20210104-150826.png}}
==== Règles Firewall ====
- Prévoir une règle dans Firewall -> Rules -> WireGuard pour autoriser le trafic désiré. Un Accept All est envisageable pour un test.{{:reseau:opnsense:pasted:20210104-152010.png}}
- Dans Firewall -> Rules -> Wan: créer une règle qui accepte le port UDP 51820 sur ce firewall
==== Autoriser le trafic Internet pour les clients Wireguard ====
- Dans Interface -> Assignation, ajouter l'interface wg0 {{:reseau:opnsense:pasted:20210114-173111.png}}
- Aller dans l'interface fraichement créée, activez la, empêcher le retrait et donner un nom plus facile à retenir {{:reseau:opnsense:pasted:20210114-173900.png}}
- Aller ensuite dans Firewall -> NAT -> Sortant et mettre le mode sur Hybride {{:reseau:opnsense:pasted:20210114-175906.png}} puis Appliquer les changements
- Toujours dans Firewall -> NAT -> Sortant, ajouter une règle fixe avec les propriétés suivantes:
- Interface WAN
- Source address "votre interface wireguard NET"
- Translation / destination: Wan Addresse {{:reseau:opnsense:pasted:20210114-180248.png}}
===== Côté client =====
==== Configuration d'un client Linux en mode RoadWarrior ====
- Installation: apt install wireguard openresolv
- Générer des clés: umask 077
wg genkey | tee privatekey | wg pubkey > publickey
- Créer un fichier de configuration: nano /etc/wireguard/wg0.confAvec un contenu similaire: [Interface]
PrivateKey=Données du fichier privatekey
Address=Adresse définie sur le serveur wireguard/32
DNS=Adresse DNS du serveur
[Peer]
PublicKey=Le public key du serveur distant
Endpoint=linuxserver:51820
AllowedIPs=0.0.0.0/0, ::/0
- Après il suffit de lancer la commande wg-quick up wg0 ou down pour fermer
==== Configuration d'un client Windows en mode RoadWarrior ====
- Dans le client Windows, créer un nouveau tunnel vide. Il créera directement une clé privée et publique {{:reseau:opnsense:pasted:20210104-151240.png}}
- Récupérer la clé publique pour la configuration du Peer/Endpoint dans OpenVPN {{:reseau:opnsense:pasted:20210104-151332.png}}
- Ajouter les éléments suivant après le privatekey Address = 172.31.33.2/32
DNS = 10.0.0.211
[Peer]
PublicKey = LA_CLE_PUBLIQUE_DU_SERVEUR_OPNSENSE
AllowedIPs = 0.0.0.0/0
Endpoint = LADRESSE_DU_SERVEUR_OPNSENSE:51820
===== Sources =====
* https://docs.opnsense.org/manual/how-tos/wireguard-client.html