Que faut-il avant d’héberger son propre serveur VPN ?
Le binaire du serveur est la partie facile. Réglez le point d’extrémité, les identités des clients, les plages d’adresses et le chemin de retour avant d’installer quoi que ce soit.
Installer le logiciel serveur est la partie la plus courte d’un VPN auto-hébergé, et c’est l’étape par laquelle les gens commencent. Qu’un déploiement fonctionne dépend de la capacité d’un client à joindre le point d’extrémité, de ce que ce client peut joindre ensuite et de la manière dont vous rentrez lorsque c’est le tunnel qui est tombé en panne. Réglez ces trois points avant que le gestionnaire de paquets ne s’exécute.
Deux d’entre eux sont des décisions de conception et le troisième est une habitude d’exploitation. Tous les trois coûtent moins cher à corriger sur le papier que pendant une panne.
Décidez ce que les clients doivent joindre
Un serveur d’accès distant a besoin d’une route vers le réseau privé qu’il annonce et d’un chemin de retour pour les réponses, ce qui en fait un routeur pour ce réseau et pas seulement un écouteur. Un serveur de sortie internet a besoin de la redirection plus d’une organisation d’adressage ou de traduction, et un handshake terminé ne fournit ni l’une ni l’autre. Choisissez la tâche avant la topologie, car les deux conceptions diffèrent par le routage, les règles de pare-feu et par ce que le client envoie dans le tunnel. Un serveur à qui l’on demande les deux a besoin des deux jeux de règles et d’un découpage cohérent de la route par défaut du client.
Choisissez des plages de tunnel et de LAN qui ne peuvent pas entrer en collision avec des réseaux que vos clients utilisent déjà, car un ordinateur portable qui détient déjà 192.168.1.0/24 continuera d’utiliser cette route au lieu d’un tunnel qui distribue le même préfixe. Vérifiez IPv4 et IPv6 séparément, car beaucoup réussissent le premier et ne remarquent jamais le second. Là où le serveur se trouve derrière un autre routeur, confirmez la joignabilité entrante depuis l’extérieur plutôt que de faire confiance à une seule redirection de port pour décrire chaque couche.
Identités, clés et un chemin de retour
Émettez une identité distincte par appareil là où le logiciel le permet, afin qu’un portable perdu signifie révoquer un seul pair au lieu de reconstruire le serveur. Les clés privées appartiennent à un stockage protégé et jamais à un profil collé dans un message de discussion. Le chemin de récupération est la partie que les gens sautent : accès à la console, console série ou interface de gestion hors bande qui ne dépend pas du tunnel. Sans elle, une mauvaise règle de pare-feu transforme un petit changement en déplacement sur site.
Rédigez la procédure de retrait en même temps que la procédure d’enrôlement. Révoquer un appareil est une opération dont vous aurez besoin tôt ou tard, et il est plus facile de la décrire tant que l’installation est encore fraîche.
Point d’extrémité à la maison ou loué ?
Trois conditions décident entre héberger chez soi et louer une petite instance. La première est de savoir si les connexions entrantes peuvent atteindre votre réseau, car une liaison montante traduite de niveau opérateur ou un réseau d’immeuble restrictif suppriment l’option. La deuxième est de savoir si la sortie doit apparaître ailleurs que dans votre propre ville, car seule une extrémité louée change cela. La troisième est l’appétit pour une seconde relation de confiance, car un hébergeur entre dans le modèle et peut observer l’extrémité même lorsqu’il ne peut pas lire le trafic.
Si la première condition est remplie et que la seconde est sans objet, héberger chez soi est le chemin le plus court. Une extrémité louée achète un emplacement et une disponibilité, pas la confidentialité en soi.
Prouvez-le avec un client et un redémarrage
Montez un client, confirmez la ressource qu’il doit joindre et confirmez qu’il cesse de joindre ce qu’il ne doit pas. Les commandes ci-dessous montrent l’état des pairs, les routes installées par le serveur et si la redirection est activée. Exécutez-les avant d’enrôler qui que ce soit d’autre.
wg show
sysctl net.ipv4.ip_forward
ip route get 10.8.0.2
ss -lunp | grep -E ':(51820|1194)'
Un pair avec un handshake récent est connecté, tandis qu’un pair sans handshake n’a jamais négocié, et ce sont des défaillances différentes. Une redirection désactivée explique un tunnel qui monte et ne transporte rien, donc vérifiez le serveur avant d’accuser le client. Un écouteur absent signifie que le service n’a pas démarré avec la configuration que vous croyez. Redémarrez ensuite le serveur volontairement et répétez l’ensemble, car un tunnel qui ne fonctionne que jusqu’au redémarrage est un résultat courant du test du chemin heureux.
Notez l’extrémité, les pairs, les plages et la méthode de récupération sur une seule page. Cette page est le runbook que vous lirez au moment le moins commode.