Skip to content

VPN : Analyse technique

D34DPlayer edited this page Mar 24, 2021 · 1 revision

Objectif

L'objectif de ce service est de fournir un moyen sécurisé pour avoir accès au réseau et ressources internes depuis l'extérieur sans avoir à exposer ces services.

Application technique

Solutions possibles

Pour permettre une connexion VPN, il nous faut un serveur VPN. Pour ce serveur on a deux possibilités :

  • OpenVPN : Serveur VPN le plus utilisé, possède beaucoup de fonctionnalités mais est assez vieux.
  • WireGuard : Serveur VPN plus moderne, bien plus léger et plus simple a configurer, travaille au niveau du noyau, mais toujours en développement et doit être encore adopté dans les OS autres que Linux.

Comparaison

Solution choisie

Même si WireGuard est prometteur, on a fini par choisir OpenVPN car :

  • WireGuard est toujours en développement et pas suffisamment adopté.
  • WireGuard est censé être plus sûr que OpenVPN mais il n'y a pas encore eu d'audit pour valider cette affirmation.
  • WireGuard travaille au niveau du noyau, ce qui donne de la vitesse mais demande d'installer un module dans le noyau. Mais vu qu'un travaille avec Docker, ce noyau est celui du hôte et il est difficile de le modifier sans donner au service plus de permissions qu'il en a besoin.
  • Même si dans ce contexte les logs ne sont pas un souci, Wireguard oblige de lier les clients à des adresses précises alors que OpenVPN permet une gestion dynamique de celles-ci.

Configuration en détail

  • OpenVPN :
    • Travaille en UDP6, pour être compatible avec l'ipv6 et ne pas avoir du TCP over TCP
    • Utiliser les clés SSL dans /etc/openvpn/server/
    • Utiliser le sous-réseau 10.8.0.0/24 dans le tunnel
    • Le serveur va push la route pour le réseau interne
    • Fournir le dns interne comme dns par défaut

Clone this wiki locally