Auteur Sujet: VPN Wireguard entre 2 openWRT  (Lu 14798 fois)

0 Membres et 1 Invité sur ce sujet

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« le: 02 mars 2019 à 02:41:06 »
Bonsoir,

En quête de bidouille et d'expérimentation, je voudrais me monter un VPN entre 2 BT home hub 5 sous LEDE.

Ayant fait un peu le tour des différentes solution de tunnelisation, j'ai retenu le "petit nouveau" wireguard, qui à l'air plus simple à configurer qu'ipsec ou openVPN et qui apparemment supporte nativement les ip dynamiques (puisque on peut renter un hostname en endpoint, ce qui dans mon cas est indispensable, merci à Orange de ne pas changer ses DSLAM).

Si j'ai tout compris, il faut :

-générer une paire de clés publique/privée sur chaque routeur et utiliser la clé publique de l'autre
-prendre une plage d'ip privée et l'affecter au tunnel (ex 172.16.0.0/24)
-autoriser cette plage + celle des 2 LAN à emprunter le tunnel (ex 192.168.1.0/24 et 192.168.2.0/24)
-affecter une zone de firewall à wireguard ou l'ajouter à celle du LAN
-mettre en endpoint le routeur d'en face
-croiser les doigts pour que ça fonctionne

Merci d'avance.

FloBaoti

  • Abonné MilkyWan
  • *
  • Messages: 1 300
  • 34
VPN Wireguard entre 2 openWRT
« Réponse #1 le: 02 mars 2019 à 09:22:39 »
Bonjour,

Quelle est la question ?

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #2 le: 02 mars 2019 à 13:38:47 »
Y'en a pas vraiment en fait, c'est juste pour voir si je n'ai pas oublié d'étapes (pour ceux qui auraient déjà monté un tel tunnel). Ma plus grosse crainte c'est de planter les routeurs et ne plus avoir accès à rien. Bien que jusqu'à présent ça ne m'est pas encore arrivé...
« Modifié: 02 mars 2019 à 15:20:12 par renaud07 »

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #3 le: 02 mars 2019 à 15:19:58 »
En relisant la doc, j'ai eu un doute : le endpoint c'est uniquement pour le client ?

Admettons que A soit le serveur et B le client. Sur A il faut simplement renseigner la clé publique de B et sur B la clé publique de A + endpoint ?

FloBaoti

  • Abonné MilkyWan
  • *
  • Messages: 1 300
  • 34
VPN Wireguard entre 2 openWRT
« Réponse #4 le: 02 mars 2019 à 16:09:17 »
Il n'y a pas de client et de serveur.

Chaque partie doit désigner l'autre avec une directive endpoint + la clé publique.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #5 le: 02 mars 2019 à 16:54:19 »
Ok on va essayer cette config alors. Ce qui est étrange c'est que sur plusieurs tutos, c'est seulement le "client" qui doit ajouter le endpoint, le serveur se contente juste de la clé publique de chaque client :

https://www.tutos.snatch-crash.fr/wireguard-vpn-rapide-moderne-et-securise/
https://casept.github.io/post/wireguard-server-on-openwrt-router/

Ils auraient donc faux ?

FloBaoti

  • Abonné MilkyWan
  • *
  • Messages: 1 300
  • 34
VPN Wireguard entre 2 openWRT
« Réponse #6 le: 02 mars 2019 à 16:56:14 »
Ca doit être possible de ne pas mettre le endpoint, mais je ne vois toujours pas le problème, autant le mettre puisque c'est prévu ainsi. Je ne vois pas ce qui est bloquant.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #7 le: 02 mars 2019 à 20:27:54 »
Ce qui devait arriver arriva. Au moment fatidique de faire un reboot pour prendre en compte la création du tunnel, le routeur a mystérieusement bloqué toutes les connexions.

Apparemment il boot toujours correctement (d'après les LED) mais pas accès au net ni à l’interface web... pourtant j'avais redémarré le pare-feu en CLI avant et il n'y avait aucun problème de règles. Et comme par hasard c'est sur celui à distance, obligé d'attendre demain pour aller réparer moi-même, donner les instructions par téléphone pour tout reparaméter, on y passerait des heures  >:(
« Modifié: 03 mars 2019 à 01:42:08 par renaud07 »

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #8 le: 03 mars 2019 à 01:36:29 »
Finalement c'est moins grave que je ne l'aurais pensé, après plus ample investigation le ping et le ssh fonctionne.

Apparemment c'est la session PPPoE qui ne monte pas... ça par contre c'est étrange, à moins que j'ai décoché le "Bring up on boot" sans faire attention... Et vu qu'il n'avait pas redémarré depuis plus de 6 mois (un record me concernant sur une synchro ADSL). Bref, la suite demain.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #9 le: 03 mars 2019 à 16:11:23 »
Le routeur n'était finalement pas du tout bloqué, lors de l'essai hier firefox a du faire une redirection de la page en https, d'où la connexion échouée. Et ce qui bloquait la session PPPoE c'était le bridge que j'avais créé pour un essai avec pfsense, qui se connectait en premier, rien de grave donc.

Par contre, une fois remis d’aplomb, la simple connexion du tunnel fait réellement planter le routeur... hard reboot obligatoire... Je l'ai supprimée et recrée, et ça a fonctionné. Mais je me suis rendu compte après coup que je n'avais pas mis les bonnes addresses, j'ai donc re-modifié et de nouveau blocage complet.

J'ai l'impression que dans tous les cas si je démarre le tunnel après que la session PPPoE soit établie, c'est blocage instantané (ça reste bloqué sur "interface is reconnecting"). Par contre si je le laisse en automatique, au reboot des fois ça bloque des fois ça passe... c'est très étrange. Sur le routeur "serveur" je pouvais faire 10000x reconnecter l'interface aucun blocage.

La seule fois où j'ai eu le tunnel fonctionnel je voyais bien les deux routeurs connectés avec du trafic qui augmente côté "serveur", par contre je suis toujours à 0kb coté client... et un ping ou une connexion ssh sur le LAN "serveur" ne passait pas...

Dnas un cas j'ai droit à packet filtered, avec une IP étrange
renaud@HP:~$ ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 193.253.172.165 icmp_seq=1 Packet filtered
From 193.253.172.165 icmp_seq=2 Packet filtered
From 193.253.172.165 icmp_seq=3 Packet filtered
From 193.253.172.165 icmp_seq=4 Packet filtered
From 193.253.172.165 icmp_seq=5 Packet filtered

Et avec une conexion ssh : no route to host

J'ai bien ajouté le tunnel dans la zone LAN et coché sur les 2 routeurs la création des routes automatique.

Voici la config :

Serveur :
config interface 'tunnel'
option proto 'wireguard'
option private_key 'xxxxxx'
option listen_port '51820'
list addresses '172.16.0.1/24'

config wireguard_tunnel
list allowed_ips '172.16.0.0/24'
list allowed_ips '192.168.1.0/24'
list allowed_ips '192.168.2.0/24'
option public_key 'xxxxxx'
option persistent_keepalive '25'
option route_allowed_ips '1'

Client :
config wireguard_tunnel
option public_key 'xxxxx'
option endpoint_host 'mondomaine.net'
option route_allowed_ips '1'
list allowed_ips '172.16.0.0/24'
list allowed_ips '192.168.1.0/24'
list allowed_ips '192.168.2.0/24'

config interface 'tunnel'
option proto 'wireguard'
option auto '0'
option private_key 'xxxxxx'
list addresses '172.16.0.2/24'



« Modifié: 03 mars 2019 à 21:21:52 par renaud07 »

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #10 le: 03 mars 2019 à 17:18:50 »
Je pense qu'il y a un sérieux bug avec wireguard ou du moins pour cette version de LEDE (la 17.01.4)

J'ai voulu à tout hasard réinstaller les paquets et régénérer les clés, et au moment de relancer l'interface sur le routeur serveur (juste pour prendre en compte la nouvelle clé du client), avec un ifdown ifup, devinez quoi : il a crashé à son tour ! Et le plus fort c'est que c'est absolument instantané, je tape ifup tunnel et bam, la ligne de commande ne répond plus !

EDIT : Je ne suis pas le seul à avoir le problème apparemment, et en plus c'est la même version de LEDE : https://forum.openwrt.org/t/wireguard-crashing-device-kernel-errors/8373

« Modifié: 03 mars 2019 à 21:19:22 par renaud07 »

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 367
VPN Wireguard entre 2 openWRT
« Réponse #11 le: 03 mars 2019 à 21:06:30 »
Mise à jour du routeur client en openwrt 18.06 et toujours le même problème, ça crash inexorablement au démarrage...  :'(

Je vais laisser tomber à mon avis et me monter un tunnel IPsec plus classique. Reste à résoudre le problème des IP dynamiques. Avec un script qui modifierait le fichier de conf à chaque changement d'ip ça pourrait le faire ?

J'ai rien dit, dans la doc openwrt il est spécifié qu'on peut mettre soit une ip soit un FQDN pour le endpoint, donc ça devrait le faire  8)
 
« Modifié: 03 mars 2019 à 22:21:37 par renaud07 »