Configuration serveur VPN

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je recontre des difficultes a installer en serveur VPN chez moi de sorte a pouvoir acceder a mon reseau local depuis l’exterieur. Le probleme est assez simple: je n’arrive pas a avoir de handshake entre un pair (a l’exterieur de mon reseau local) et le serveur (sur le LAN).

Je dispose d’une IP publique fixe et je suis en double NAT car je n’ai pas acces a l’administration de mon routeur.

La topologie de mon reseau est la suivante:

[WAN] <-> [Routeur ISP] <-> eth1 [Routeur Mikrotik] bridge <-> [Serveur Proxmox] <-> [Server Wireguard dans un LXC]
     <IP publique>       192.168.0.100                    10.20.0.2                10.0.0.100
  • Je ne sais pas si mon ISP fournit du carrier-grade NAT ou du NAT44
  • Le routeur ISP fournit du DHCP sur 192.168.0.0/24? 16?
  • Le Routeur Mikrotik a une addresse fixe 192.168.0.100 et fournit un reseau 10.0.0.0/8
  • Le serveur proxmox and containeur avec Wireguard ont une addresse resp. 10.20.0.2 et 10.0.0.100 - les deux atteignables sans soucis -.

Le VPN est configure de la maniere suivante:

  • sous-reseau: 10.7.0.0/24 (j’ai aussi essaye avec un sous reseau different: 172.16.0.0/24)
  • le serveur: 10.7.0.1/24 (et les pair .2, .3 etc)
  • le endpoint est mon IP publique sur UDP 51820
  • les clefs sont OK - j’ai check 10 000 fois et j’ai essaye des clients ou l’ajout se fait par QR code
  • pour Proxmox il est important d’avoir un TUN device, qui est correctement monte
  • for forward d’IP v4 est active dans sysctl: net.ipv4.ip_forward=1

J’ai ajoute une regle NAT dans mon routeur pour redirige les packets a destination de UDP 51820 vers 10.0.0.100 sur le meme port.

A savoir: avant d’avoir mon routeur Mikrotik, mon infra etait directement derriere le routeur ISP et j’arrivais a avoir un acces au VPN.

nmap -sU <ip publique> -p 51820

fonctionne correctement:

Host is up (0.00024s latency).

PORT      STATE         SERVICE
51820/udp open|filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.42 seconds

J’ai ajoute des logs pour les paquets a destination de UDP 51820 et voila le genre de truc que je vois passer:

WG_ srcnat: in:bridge out:ether1, connection-state:new src-mac 14:75:5b:a8:8a:4f, proto UDP, 10.15.0.2:57478-><IP publique>:51820, len 43
TEST forward: in:bridge out:ether1, connection-state:new src-mac 14:75:5b:a8:8a:4f, proto UDP, 10.15.0.2:57478-><IP publique>:51820, len 43
WG_DESTNAT dstnat: in:bridge out:(unknown 0), connection-state:new src-mac 14:75:5b:a8:8a:4f, proto UDP, 10.15.0.2:57478-><IP publique>:51820, len 43

Sachant que 10.15.0.2 est un pair qui est sur le LAN pour le moment. Je trigger les paquets moi meme via

echo "hello world" > /dev/udp/<publique ip>/51820

Je suis un peu a cours d’idee pour debugger/traquer le probleme… :(

Bonjour,

J’ai resolu mon probleme par une approche completement differente car je suis pratiquement sur que je ne pourrais pas faire grand chose avec mon ISP qui bloque tous les ports et m’empeche d’avoir acces au NAT.

  1. J’ai un serveur a l’exterieur avec une adresse publique. C’est sur ce serveur que je cree le serveur Wireguard qui sert 172.16.0.0/24.
  2. J’ai un conteneur sur mon reseau local qui me sert de gateway et qui se connecte comme pair au server VPN. Avec une directive "PersistentKeepAlive" cela me permet de maintenir la connection, i.e. de percer le NAT de mon ISP.
  3. Les autres pairs, a l’exterieur de mon LAN, se connecte via le serveur VPN et ce dernier forward le traffic.

L’avantage de cette approche c’est que je peux creer plusieurs tunnels:

  • Site Gateway: un tunnel pour l’acces au LAN, eventuellement uniquement un sous-reseau/VLAN non critique
  • Internet Gateway: un tunnel pour faire passer le traffic internet de mes pairs vers le LAN histoire de securiser la connection (surtout via le reseau LTE/5G)
  • DMZ: zone demilitarisee ou j’expose certains services de mon LAN sur internet via mon serveur externe (ce qui me permet de ne pas avoir besoin d’acceder au routeur de mon ISP)

Le desavantage c’est qu’il faut bien que je paye le serveur. Dans mon cas, je disposais deja du serveur donc le cout marginal est 0.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte