GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Configuration d'un serveur OpenVPN avec Ubiquiti EdgeRouter (EdgeOS) et Viscosity

Les réseaux privés virtuels (VPN) peuvent être utilisés pour un certain nombre d'applications très utiles. Vous pouvez vous connecter en toute sécurité à n'importe quel point d'accès Wi-Fi public. Vous pouvez surmonter les restrictions de blocage géographique sur vos sites Web préférés. Et vous pouvez même vous connecter à votre réseau domestique ou professionnel depuis n'importe où dans le monde, comme si vous étiez assis à votre bureau. Ce guide vous guidera tout au long du processus de configuration de votre propre serveur OpenVPN et de connexion avec votre copie de Viscosity.

L'exécution de votre propre serveur OpenVPN vous permettra de crypter tout ce que vous faites sur Internet, afin que vous puissiez effectuer vos opérations bancaires en ligne en toute sécurité sur le WiFi gratuit de votre café préféré. Tout ce que vous envoyez via la connexion VPN sera crypté depuis votre appareil jusqu'à ce qu'il atteigne votre serveur OpenVPN à la maison. La configuration de votre serveur OpenVPN pour accéder à votre réseau domestique ou professionnel vous donne un accès complet à tous vos fichiers sur votre réseau.

Ce guide vous guidera à travers les étapes de configuration d'un serveur OpenVPN sur Ubiquiti EdgeRouter (EdgeOS) qui vous permet d'accéder en toute sécurité à votre réseau domestique/bureau à partir d'un emplacement distant et éventuellement d'y envoyer tout votre trafic réseau afin que vous puissiez accéder Internet en toute sécurité également. Ce guide a été écrit à l'aide d'un Ubiquiti EdgeRouter Lite, mais devrait fonctionner avec n'importe quel appareil Ubiquiti exécutant EdgeOS v1.9 ou version ultérieure.

Ce guide ne traitera pas des problèmes liés à la configuration de votre routeur. Un routeur exécutant EdgeOS est susceptible d'agir lui-même comme un routeur, nous supposerons donc que Ubiquiti EdgeRouter est directement connecté à Internet avec sa propre adresse IP.

Préparation

Pour ce guide, nous supposons :

  • Vous disposez d'un Ubiquiti EdgeRouter déjà fonctionnel exécutant EdgeOS (également appelé "logiciel EdgeMax") v1.9 ou version ultérieure.
  • Votre routeur a été configuré avec au moins une interface WAN et une interface LAN
  • Vous êtes connecté à votre Ubiquiti EdgeRouter via une connexion LAN.
  • Seul l'assistant de configuration initiale pour configurer votre routeur avec une interface WAN et LAN a été exécuté.
  • Vous avez déjà installé une copie de Viscosity sur votre appareil client

De plus amples informations sur les produits Ubiquiti EdgeRouter et EdgeOS sont disponibles sur https://www.ubnt.com/broadband/#edgemax. Les mises à jour de produit pour votre routeur sont disponibles sur https://www.ubnt.com/download/. Si vous cherchez à configurer un serveur OpenVPN sur un système d'exploitation différent, veuillez consulter nos autres guides.

Si vous n'avez pas de copie de Viscosity déjà installée sur votre client, veuillez consulter ce guide d'installation pour installer Viscosity (Mac | Windows).

Soutien

Malheureusement, nous ne pouvons fournir aucune assistance directe pour la configuration de votre propre serveur OpenVPN. Nous fournissons ce guide à titre gracieux pour vous aider à démarrer et à tirer le meilleur parti de votre copie de Viscosity. Nous avons soigneusement testé les étapes de ce guide pour nous assurer que, si vous suivez les instructions détaillées ci-dessous, vous devriez être sur la bonne voie pour profiter des avantages de l'exécution de votre propre serveur OpenVPN.

Pour plus d'informations ou de l'aide avec votre Edgerouter, consultez les forums de la communauté à l'adresse https://community.ubnt.com/t5/EdgeRou.../EdgeMAX

Mise en route

Nous supposerons que vous avez déjà configuré vos interfaces réseau comme telles :

  • 'Internet' - eth0 ou pppoe0 connecté à Internet
  • 'Local' - eth1 connecté à votre réseau domestique local

Génération de certificats et de clés

L'étape suivante consiste à générer vos configurations pour le serveur et vos clients ainsi que les certificats qui les accompagnent. Vous pouvez le faire facilement en suivant le Guide de création de certificats et de clés. Générez tout sur votre PC ou Mac, puis notez le chemin d'accès à votre serveur dossier qui est créé, nous utiliserons les fichiers ici plus tard.

Si vous utilisez le serveur DNS par défaut (10.8.0.1), vous devrez configurer vous-même un serveur DNS, les instructions se trouvent à la fin de cet article. Nous vous recommandons plutôt d'utiliser un serveur DNS existant, un serveur DNS accessible au public comme celui de Google (8.8.8.8 et 8.8.4.4) est le plus simple.

Nous devons maintenant copier les fichiers suivants dans le /config/auth/ répertoire sur votre Edgerouter qui sera dans le serveur dossier que openvpn-generate vient de créer, nous vous recommandons d'utiliser SCP. Si vous n'êtes pas familier avec SCP, nous avons de l'aide sur la façon de transférer des fichiers avec SCP dans notre guide d'introduction.

  • ca.crt
  • serveur.crt
  • serveur.clé
  • dh.pem

Si vous utilisez SCP à partir de la ligne de commande, un exemple de commande serait
scp path/to/server/ca.crt [email protected]:/config/auth/

Configuration du serveur OpenVPN

Au moment de la rédaction, EdgeOS n'inclut pas d'interface graphique pour configurer un serveur OpenVPN comme c'est le cas pour d'autres protocoles VPN. Heureusement cependant, tous les outils sont disponibles sur le routeur pour pouvoir configurer facilement un serveur OpenVPN via la ligne de commande.

Vous pouvez accéder à l'interface de ligne de commande de votre routeur de plusieurs façons. Pour les besoins de ce guide, nous utiliserons l'interface de ligne de commande incluse dans le portail Web. Pour y accéder, ouvrez une page Web et accédez à l'adresse IP de votre périphérique EdgeRouter (https://192.168.1.1 par défaut). Connectez-vous, puis cliquez sur le bouton CLI dans le coin supérieur droit de cette page. Cela ouvrira une fenêtre CLI à fond noir dans votre navigateur. Vous pouvez vous y connecter en utilisant les mêmes informations que vous avez utilisées pour vous connecter à la page Web EdgeOS.

Pour les utilisateurs plus avancés, ce guide peut également être suivi en accédant à l'appareil via la console ou SSH.


Il existe un certain nombre de paramètres différents que nous devons personnaliser dans la configuration de notre serveur OpenVPN. Dans le terminal, entrez en mode configuration en tapant :

configure

Vous devriez voir l'invite passer de $ à # . Si vous faites une erreur en saisissant les commandes de configuration suivantes, vous pouvez supprimer une commande précédemment saisie en la répétant, mais en remplaçant le mot "set" au début par le mot "delete".

Collez ce qui suit dans la fenêtre du terminal :

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

#Set the OpenVPN server to push a DNS server to clients. This can be your local DNS
#which we setup later, an external DNS of your choice, or you can omit this command
#to setup DNS on the client only.
set interfaces openvpn vtun0 server name-server 192.168.1.1

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

#Save and end the configuration
commit
save
exit

Faites particulièrement attention à l'adresse IP dans le set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Assurez-vous que ce sous-réseau correspond au sous-réseau IP de votre domicile/bureau. Si vous ne configurez pas ce serveur VPN pour accéder au réseau local de votre domicile/bureau, vous pouvez ignorer complètement cette ligne.

Nous en avons maintenant terminé avec la ligne de commande, tout le reste peut être fait à partir de l'interface graphique EdgeOS via un navigateur Web. Ensuite, connectez-vous à votre itinéraire via le navigateur de votre choix et vous devriez voir la nouvelle interface OpenVPN sur le tableau de bord.


Règles de pare-feu

Si vous utilisez la configuration du pare-feu par défaut, nous n'avons qu'à configurer quelques éléments. Tout d'abord, nous devons activer le masquage NAT pour l'interface VPN. Pour ce faire, ouvrez un navigateur Web, naviguez et connectez-vous à votre appareil EdgeRouter. Cliquez ensuite sur Firewall/NAT en haut de la fenêtre, puis sélectionnez l'onglet NAT onglet qui apparaît en dessous. Cliquez sur Ajouter une règle Nat source et configurez les options suivantes :

  • Description - OpenVPN MASQ eth0
  • Sélectionnez "Utiliser la mascarade"
  • Sélectionnez "Tous les protocoles"
  • Interface sortante - eth0
  • Adresse source - 10.8.0.0/24


Cliquez ensuite sur Enregistrer. Nous devons ajouter une règle pour chaque interface avec laquelle nous voulons que les clients OpenVPN puissent communiquer, nous devons donc au minimum en ajouter une de plus. Cliquez sur Ajouter une règle Nat source à nouveau et configurez les options suivantes :

  • Description - OpenVPN MASQ eth1
  • Sélectionnez "Utiliser la mascarade"
  • Sélectionnez "Tous les protocoles"
  • Interface sortante - eth1
  • Adresse source - 10.8.0.0/24


Cliquez ensuite sur Enregistrer.

Ensuite, nous devons configurer une règle de pare-feu pour nous permettre de nous connecter au serveur OpenVPN lorsque nous sommes en dehors du réseau local, comme sur la route ou dans un café. Pour cela, cliquez sur Firewall/NAT puis cliquez sur l'onglet Politiques de pare-feu onglet qui apparaît en dessous


Vous devriez voir ici un ensemble de règles nommé WAN_LOCAL . Nous voulons ajouter une nouvelle règle à cela, alors cliquez sur Actions sur la droite et sélectionnez Modifier l'ensemble de règles . Dans la nouvelle fenêtre qui s'affiche, cliquez sur Ajouter une nouvelle règle et remplissez les informations suivantes :

Onglet Général :

  • Description - Autoriser les connexions externes à OpenVPN
  • Action - Accepter
  • Protocole - UDP


Onglet Destination :

  • Port - 1194


Cliquez sur Enregistrer , puis cliquez sur Enregistrer l'ensemble de règles . Vous devriez maintenant pouvoir vous connecter à votre serveur OpenVPN depuis un emplacement externe.

Serveur DNS

Si vous envisagez de crypter tout le trafic réseau via votre serveur VPN, il est recommandé d'activer votre propre serveur DNS. EdgeOS intègre un redirecteur DNS que nous pouvons utiliser pour fournir notre propre serveur DNS pour la connexion VPN, afin d'empêcher les attaques liées au DNS.

Si votre routeur est déjà configuré pour votre réseau local (et que vous avez entré la commande pour utiliser votre routeur comme DNS pour OpenVPN), il est extrêmement facile de réutiliser votre configuration DNS locale.

Pour ce faire, ouvrez un navigateur Web, naviguez et connectez-vous à votre appareil EdgeRouter. Cliquez sur Services puis cliquez sur l'onglet DNS onglet qui apparaît en dessous. Cliquez sur Ajouter une interface d'écoute , sélectionnez vtun0 dans le nouveau menu déroulant qui s'affiche, puis cliquez sur Enregistrer dessous.

Configuration de la viscosité

La dernière étape consiste à configurer la viscosité. Grâce à openvpn-generate, c'est aussi simple que d'importer et de se connecter.

Importation

Copiez votre fichier *.visz que vous avez créé avec openvpn-generate sur votre ordinateur Mac ou Windows avec Viscosity installé et double-cliquez sur le fichier. Vous devriez voir une invite indiquant que la configuration a été importée avec succès.

Une fois importé, modifiez votre connexion et accédez à l'onglet Avancé. Ajoutez les deux commandes suivantes sur de nouvelles lignes :

cipher AES-256-CBC
auth SHA256

Cliquez ensuite sur Enregistrer pour enregistrer ces modifications.

Connexion et utilisation de votre connexion VPN

Vous êtes maintenant prêt à vous connecter. Cliquez sur l'icône Viscosity dans la barre de menus macOS ou dans la barre d'état système de Windows pour ouvrir le menu Viscosity, sélectionnez la connexion que vous avez importée et Viscosity se connectera.

Pour vérifier que le VPN est opérationnel, vous pouvez ouvrir la fenêtre Détails à partir du menu Viscosité. Cela vous permettra de voir les détails de connexion, le trafic et le journal OpenVPN.



Ça y est, vous avez configuré votre propre serveur OpenVPN. Félicitations, vous êtes maintenant libre de profiter des avantages d'exploiter votre propre serveur OpenVPN !


OpenVPN
  1. Apache avec Tomcat, un guide d'installation et de configuration étape par étape

  2. Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

  3. Comment installer et héberger un serveur OpenVPN avec Docker

  4. Configurer un serveur Obfuscation avec Obfsproxy et Viscosity

  5. Installer et configurer le serveur OpenVPN FreeBSD 12

Configuration d'un serveur OpenVPN avec Sophos UTM et Viscosity

Configuration d'un serveur OpenVPN avec Sophos XG et Viscosity

Configurer un serveur OpenVPN avec Synology et Viscosity

Configuration d'un serveur OpenVPN avec Tomato router et Viscosity

Configurer un serveur OpenVPN avec Ubuntu et Viscosity

Configurer un serveur OpenVPN avec VyOS et Viscosity