====== 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