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

Configurer un serveur OpenVPN avec VyOS 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 un hôte VyOS 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.

Préparation

Pour ce guide, nous supposons :

  • Vous avez déjà installé la dernière version de VyOS (1.1 au moment de la rédaction)
  • Votre compte a sudo privilèges à cette installation
  • Cette installation de VyOS est une nouvelle installation
  • Vous avez déjà installé une copie de Viscosity sur votre appareil client

Si vous avez besoin de télécharger et d'installer une copie de VyOS, une copie peut être trouvée sur http://vyos.net/wiki/Main_Page. Nous ne couvrirons pas les détails de la configuration d'une instance VyOS, de nombreux guides sont disponibles en ligne. Si vous utilisez une version différente de VyOS, il est très probable que la plupart, voire la totalité, des étapes décrites dans ce guide s'appliqueront toujours. 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 VyOS, il existe une gamme de ressources et de forums disponibles sur https://vyos.io/

Mise en route

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

  • 'EXTÉRIEUR' - eth0 connecté à Internet
  • 'INSIDE' - 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 appareil VyOS 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

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

# 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"

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.

Règles de pare-feu

Nous utiliserons le pare-feu installé par défaut sur VyOS. Si vous installez OpenVPN sur un serveur qui a déjà sa propre configuration de pare-feu, assurez-vous d'ajouter les règles pour autoriser notre trafic OpenVPN. Cependant, s'il ne s'agit que d'un simple serveur VyOS autonome, les paramètres de pare-feu ci-dessous devraient être suffisants pour que votre serveur OpenVPN soit opérationnel.

Toujours en mode de configuration , collez ce qui suit dans la fenêtre du terminal :

# First we will set the rules for traffic passing through the server. We want
# the firewall to allow traffic for existing connections to the server, and drop 
# any new ones:
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Next we will set the rules to allow the local network to talk to the outside world
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'</code>

# If you would like the ability to ping your VyOS server externally, add the following
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

# If you would like the ability to SSH into your server externally (without a VPN connected), add the following
# NOTE - This can be a security risk and is not recommended
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

# Allow external connections to the OpenVPN port. This will allow you to VPN to your server
# from somewhere outside your local network (like a coffee shop)
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 destination port '1194'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'udp'

# Apply these firewall policies:
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

# Lastly, we need to enable NAT masquerade:
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.8.0.0/24'
set nat source rule 100 translation address 'masquerade'
set nat source rule 200 outbound-interface 'eth1'
set nat source rule 200 source address '10.8.0.0/24'
set nat source rule 200 translation address 'masquerade'

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. VyOS a un redirecteur DNS installé par défaut que nous pouvons utiliser pour fournir notre propre serveur DNS pour la connexion VPN, afin d'empêcher les attaques liées au DNS.

Toujours en mode de configuration , collez ce qui suit dans la fenêtre du terminal :

# We will set the DNS forwarder to store 100 lookups locally, to speed up 
# repeated DNS requests:
set service dns forwarding cache-size '100'

# DNS queries will be resolved coming from the local network:
set service dns forwarding listen-on 'eth1'

# DNS queries will be resolved coming from our VPN connection:
set service dns forwarding listen-on 'vtun0'

# We will use the Google DNS servers (you are free to use your DNS resolution
# service of choice):
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'

Maintenant que nous avons terminé de configurer la configuration, enregistrez les modifications en saisissant ce qui suit dans le terminal :

commit;save

et sortir du mode configuration :

exit

Configuration du routeur

Si votre serveur VyOS est directement accessible , vous pouvez alors ignorer cette section . Il n'y a pas de routeur à configurer.

Cependant, si votre serveur VyOS se trouve derrière un routeur (comme sur votre WiFi domestique), vous devrez configurer votre routeur pour autoriser le trafic VPN. En raison des nombreux modèles différents de configurations de routeur et de réseau, nous ne pouvons pas fournir de guide étape par étape sur la configuration de votre routeur pour autoriser le trafic VPN. Cependant, il y a quelques paramètres que vous devrez probablement modifier, nous allons donc les décrire ici.

Comme le routeur dirigera tout le trafic vers et depuis votre serveur OpenVPN, vous devrez configurer la transfert de port afin que le serveur OpenVPN soit accessible de l'extérieur. La redirection de port peut se trouver dans la section de l'interface de gestion de votre routeur nommée "Serveurs virtuels". En général, vous souhaiterez transférer tout trafic entrant vers le routeur sur le port OpenVPN (1194). Vous devrez configurer une règle pour envoyer tout trafic UDP sur ces ports à l'adresse IP locale de votre serveur OpenVPN (qui est probablement quelque chose dans la plage 192.168.0.x).

Si vous avez configuré la redirection de port, veuillez également noter votre adresse IP WAN externe . Il s'agit de l'adresse IP attribuée à votre routeur par votre fournisseur d'accès Internet (FAI). Cette adresse sera nécessaire lors de la configuration de votre connexion dans Viscosity ci-dessous.

L'autre paramètre de routeur principal que vous devrez prendre en compte est le routage statique. Étant donné que vous aurez configuré un VPN, du trafic sera envoyé à votre routeur avec une adresse IP source ou de destination dans la plage 10.8.0.x. Ce trafic devra avoir un routage statique en place pour garantir que lorsqu'un hôte reçoit une demande du client VPN (sur le sous-réseau 10.8.0.x) et envoie une réponse à cette adresse, le routeur sache comment convertir le 10.8.0.x. 0.x dans une adresse qu'il comprend (c'est-à-dire 192.168.0.x). Ainsi, vous devrez configurer une règle de routage statique qui a les propriétés suivantes :

Destination :10.8.0.0Masque de sous-réseau :255.255.255.0Passerelle par défaut :votre-serveur-IP

votre-serveur-IP est l'adresse IP de votre serveur OpenVPN sur le réseau local (quelque chose dans la plage 192.168.0.x).

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

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. Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

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

  3. Configurer un serveur Obfuscation avec Obfsproxy et Viscosity

  4. Installer et configurer le serveur OpenVPN sur Ubuntu 20.04

  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

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

Configurer un serveur OpenVPN avec Ubuntu et Viscosity