L'hébergement de votre propre serveur VPN peut sécuriser votre réseau en vous permettant de mettre en place des pare-feu rigoureux (pour bloquer des services importants comme SSH), tout en étant capable de maintenir un accès administratif lorsque vous êtes connecté au VPN.
Pourquoi aurais-je besoin d'un serveur VPN?
Un VPN traditionnel comme TunnelBear sécurisera la connexion Internet de votre ordinateur personnel en acheminant vos données via un serveur intermédiaire. Mais ce que cela fait vraiment sous le capot, c'est vous connecter à un réseau privé virtuel, vous permettant d'accéder à tout ce que le serveur intermédiaire peut accéder, y compris les périphériques sur le même réseau.
Ceci est très utile pour accéder aux serveurs derrière des pare-feu. Pour une sécurité optimale, ne laissez pas beaucoup de ports ouverts sur vos serveurs. Mais cela entraîne un problème lorsque vous verrouillez un tas de ports: vous ne pouvez pas non plus y accéder. Que faire si vous avez un panneau d'administration de base de données hébergé sur l'un de vos serveurs? Vous ne voulez évidemment pas que cela soit ouvert sur le monde, mais vous aimeriez pouvoir y accéder en cas de besoin. Vous pouvez verrouiller l'accès à votre adresse IP, mais que se passe-t-il si vous avez plusieurs administrateurs, et que faire si vous souhaitez y accéder depuis un café, où votre adresse IP serait différente?
C'est le problème qu'un serveur VPN résout. Au lieu de vous connecter directement, vous vous connectez plutôt au serveur VPN et vous connectez à votre cloud privé. À partir de là, vous pouvez SSH sur le serveur de base de données ou sur un autre serveur s'exécutant dans le même VPC avec accès au premier. Vous pouvez désormais vous comporter comme si votre trafic provenait du serveur auquel vous êtes connecté, ce qui rendrait le panneau d'administration visible uniquement lorsque vous êtes connecté via votre VPN.
Cela a également l'avantage de sécuriser votre connexion dans des endroits comme les cafés, où votre navigation sur Internet n'est pas extrêmement sécurisée. Ce n’est pas l’objectif principal, mais c’est bien de l’avoir.
Configurer un serveur OpenVPN
Bien que vous puissiez installer la version en ligne de commande d'OpenVPN, c'est assez compliqué et implique la création de votre propre autorité de certification et la gestion des clés.
Ce que vous voulez, c'est le serveur OpenVPN Access, qui est installable sous forme de package et est livré avec une interface Web pour gérer les paramètres de votre VPN. Il est gratuit pour deux connexions simultanées, ce qui devrait être suffisant pour le cas d'utilisation simple de la gestion de serveurs derrière un pare-feu. Si vous avez besoin de plus de connexions, la partie VPN réelle d'OpenVPN est gratuite et open source, vous n'aurez qu'à tout configurer manuellement.
Une chose à noter est que le serveur d'accès OpenVPN utilisera le port 443 pour rediriger le trafic vers l'interface Web, hébergé sur le port 943. Si vous avez des choses en cours d'exécution sur ce port, vous devrez soit utiliser le port 943 et rediriger manuellement 443 vers vos autres applications, ou exécutez simplement OpenVPN sur un serveur plus petit hébergé dans le même VPC, car il est assez léger avec un seul utilisateur.
Commencez par télécharger le package OpenVPN pour votre distribution. Les distributions prises en charge sont Ubuntu, Debian, CentOS et RHEL. Prenez le lien de votre package et téléchargez-le depuis la ligne de commande avec wget
:
wget http://swupdate.openvpn.org/as/openvpn-as-2.1.12-Ubuntu16.amd_64.deb
Installez le package avec dpkg
sur Ubuntu / Debian:
dpkg -i openvpn-as-2.1.12-Ubuntu16.amd_64.deb
Sur CentOS / RHEL, vous devrez utiliser rpm -Uvh
sur le .rpm
fichier.
Pendant l'installation, OpenVPN se configurera avec les paramètres par défaut, configurera son autorité de certification privée pour sécuriser votre connexion et vous indiquera d'où le service Web client est servi. Il s’agit généralement de l’adresse IP de votre serveur via HTTPS, mais elle peut également être diffusée sans redirection depuis le port 943. L’interface utilisateur d’administration est diffusée sur / admin
.
La seule chose qu'OpenVPN ne configure pas est un mot de passe. Vous souhaiterez définir un mot de passe pour l'utilisateur "openvpn":
passwd openvpn
Vous devrez le saisir deux fois et pourrez le modifier à tout moment.
Connexion à OpenVPN
Vous pouvez maintenant accéder à l'interface utilisateur d'administration, hébergée sur:
https: // adresse-ip-de-vos-serveurs / admin
Vous pourriez recevoir un gros avertissement rouge de Chrome indiquant que le certificat n'est pas valide. En effet, votre serveur VPN n’est pas reconnu comme une autorité de certification appropriée, ce qui, bien entendu, est vrai. Cependant, comme vous l'avez configuré vous-même, vous faites évidemment confiance au certificat, vous pouvez donc contourner cet avertissement.
Il vous sera demandé un nom d'utilisateur et un mot de passe; entrez simplement «openvpn» puis le mot de passe que vous avez défini:
La méthode d'authentification par défaut est PAM, qui utilise l'authentification locale basée sur le compte. Créez un nouvel utilisateur à partir de l'onglet «Paramètres utilisateur»:
Il s'agit de l'utilisateur que vous utiliserez pour vous connecter au service VPN. Pour y accéder, vous pouvez accéder au service client, hébergé sur:
https: // adresse-ip-de-vos-serveurs /
… Bien qu'il puisse fonctionner sur le port 943. Vous serez invité à entrer votre nom d'utilisateur et votre mot de passe, et vous aurez deux options de connexion: vous connecter directement au VPN ou connecter un client. Choisissez "Connect Client", car vous ne l'utilisez pas comme VPN de navigation Web.
Cela vous donnera un fichier de configuration (client.ovpn), que vous pouvez utiliser dans n'importe quel client prenant en charge le protocole OpenVPN. Vous pouvez utiliser Le propre client d'OpenVPN, ou un client tiers comme Pritunl, ou connectez-vous manuellement avec votre nom d'utilisateur et votre mot de passe dans les fenêtres et macOS.
Une fois que vous êtes connecté, tout votre trafic Internet sera acheminé via le VPN, y compris les requêtes vers d'autres serveurs. Toute connexion SSH que vous établissez apparaîtra comme si le serveur VPN établissait une connexion SSH. Vous devrez toujours vous assurer que ces serveurs sont configurés pour autoriser le serveur VPN à y accéder, et vous souhaiterez toujours sécuriser vos autres serveurs avec des clés SSH.
Sur un service comme AWS, certains ports peuvent être fermés par défaut. Vous devrez ouvrir les ports 443 et 943 sur le serveur VPN et verrouiller les ports sur d’autres serveurs pour qu’ils ne soient accessibles qu’à partir de l’adresse IP du serveur VPN. Cependant, la plupart des services auront 80 et 443 ouverts sans qu'il soit nécessaire de configurer un pare-feu, car ils sont principalement utilisés pour le trafic Web.