Auteur Sujet: Configuration wireguard  (Lu 719 fois)

0 Membres et 1 Invité sur ce sujet

Probzx

  • Abonné Orange Fibre
  • *
  • Messages: 97
  • Pontault-Combault (77)
Configuration wireguard
« le: 10 avril 2023 à 11:10:13 »
Bonjour,

J'ai configuré un serveur wireguard sous un vm debian sur mon réseau, puis depuis mon PC portable connecté à ma 4g j'essaie de me connecter à ce serveur.
Le serveur wireguard détecte bien que mon PC se connecte à lui car le "latest handshake" s'actualise quand je m'y connecte, mais impossible de ping ne serait-ce que le serveur vpn depuis mon PC.

Je vous met ma config si vous y trouvez quelque chose qui bloque :

Configuration serveur :
[Interface]
PrivateKey = Clé privée serveur
Address = 192.168.1.60/24, fdd8:c04a:57f1::1/64
ListenPort = 51820
SaveConfig = true

PostUp = ufw route allow in on wg0 out on ens18
PostUp = iptables -t nat -I POSTROUTING -o ens18 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o ens18 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on ens18
PreDown = iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

PostUp = ip rule add table 200 from 80.215.170.104
PostUp = ip route add table 200 default via 92.170.232.255
PreDown = ip rule delete table 200 from 80.215.170.104
PreDown = ip rule delete table 200 default via 92.170.232.255

Configuration PC :
[Interface]
PrivateKey = Clé privée PC client
Address = 192.168.1.70/24

[Peer]
PublicKey = yJKycaC5d2mHctFqY2ROi76Py+8nb8pwponTtkSuaHU=
AllowedIPs = 0.0.0.0/0
Endpoint = 92.170.232.255:51820
PersistentKeepAlive = 20

Merci pour votre aide :)

FlorianSG

  • Abonné Bbox fibre
  • *
  • Messages: 24
  • Toulouse (31)
Configuration wireguard
« Réponse #1 le: 10 avril 2023 à 18:37:42 »
Salut,

Alors pour commencer, il faut que tu déclare ton PC portable sur ton serveur :
[Peer]
PublicKey = <clé publique du PC portable>
AllowedIPs = 192.168.1.70/32

Personnellement je spécifie les adresses IPv4 des interfaces (client/serveur) en /32 et non pas en /24, Wireguard crée une liaison p2p entre les nœuds, et met à jour la table de routage du système en conséquence.
Concernant l'IPv6, je n'ai pas encore essayé, mais en principe c'est comme pour l'IPv4. Il faut donc que tu ajoute une adresse pour ton PC portable (en /128) et que tu changes le masque de l'adresse du serveur en /128.

Une section de la configuration de ton serveur m'interpelle :
PostUp = ip rule add table 200 from 80.215.170.104
PostUp = ip route add table 200 default via 92.170.232.255
PreDown = ip rule delete table 200 from 80.215.170.104
PreDown = ip rule delete table 200 default via 92.170.232.255
Tu semble vouloir rediriger les paquets provenant de 80.215.170.104 vers l'interface principale de ta VM, pourquoi ?

Probzx

  • Abonné Orange Fibre
  • *
  • Messages: 97
  • Pontault-Combault (77)
Configuration wireguard
« Réponse #2 le: 11 avril 2023 à 19:11:50 »
Salut,

Alors pour commencer, il faut que tu déclare ton PC portable sur ton serveur :
[Peer]
PublicKey = <clé publique du PC portable>
AllowedIPs = 192.168.1.70/32

Personnellement je spécifie les adresses IPv4 des interfaces (client/serveur) en /32 et non pas en /24, Wireguard crée une liaison p2p entre les nœuds, et met à jour la table de routage du système en conséquence.
Concernant l'IPv6, je n'ai pas encore essayé, mais en principe c'est comme pour l'IPv4. Il faut donc que tu ajoute une adresse pour ton PC portable (en /128) et que tu changes le masque de l'adresse du serveur en /128.

Merci pour le conseil, je vais déclarer le pc dans le fichier.
J'avais utiliser la commande : sudo wg set wg0 peer clépubliquepcportable allowed-ips 192.168.1.x
Le /32 est plus sécurisée que le /24 ? (Une seule adresse dispo)

Une section de la configuration de ton serveur m'interpelle :
PostUp = ip rule add table 200 from 80.215.170.104
PostUp = ip route add table 200 default via 92.170.232.255
PreDown = ip rule delete table 200 from 80.215.170.104
PreDown = ip rule delete table 200 default via 92.170.232.255
Tu semble vouloir rediriger les paquets provenant de 80.215.170.104 vers l'interface principale de ta VM, pourquoi ?

J'ai suivi un tuto, c'était une étape optionnelle, qui avait pour but d'acheminer tout le traffic sur le tunnel, pour créer une règle de routtage afin de garantir que le trafic public vers le systèmes utilise la passerelle par défaut, mais peut être ai-je mal compris cette partie.
Je la supprime pour le moment, je rajouterais au besoin.

EDIT :
ça fonctionne pour le ping vers mon vpn, je parviens bien à me connecter depuis le pc portable !

Etape suivante, essayer d'accéder à des ressources du réseau stocké sur un autre pc (192.168.1.150 par exemple), et également pouvoir accéder au réseau extérieur.
« Modifié: 11 avril 2023 à 20:20:27 par Probzx »

FlorianSG

  • Abonné Bbox fibre
  • *
  • Messages: 24
  • Toulouse (31)
Configuration wireguard
« Réponse #3 le: 12 avril 2023 à 00:03:33 »
Le /32 est plus sécurisée que le /24 ? (Une seule adresse dispo)
Pas de différence en terme de sécurité, que je sache. Pour moi c'est plus de l'ordre de la sémantique. En principe, Wirequard n'exploite pas le masque d'une interface, c'est une information à destination du système. Vu que je ne m'étais jamais posé la question, j'ai regardé l'impact de ce paramètre sur l'interface wg0 de mon serveur @home.

Pour le contexte, mon serveur VPN est relié à mon VLAN "standard", avec l'adresse 172.16.2.42/24, sur l'interface ens19.
L'interface wg0 possède l'adresse 192.168.42.2, et j'ai déclaré deux clients en configuration (192.168.42.3 et 192.168.42.4).

Lorsque je suis en /32, configuration "normale" :
$ ip -4 address show
2: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    altname enp0s19
    inet 172.16.2.42/24 brd 172.16.2.255 scope global dynamic ens19

5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 192.168.42.2/32 scope global wg0

$ ip -4 route show
default via 172.16.2.1 dev ens19
172.16.2.0/24 dev ens19 proto kernel scope link src 172.16.2.42
192.168.42.3 dev wg0 scope link
192.168.42.4 dev wg0 scope link
Les routes vers mes clients sont ajoutées individuellement.

Lorsque je suis en /24 :
$ ip address show:
2: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    altname enp0s19
    inet 172.16.2.42/24 brd 172.16.2.255 scope global dynamic ens19

5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 192.168.42.2/24 scope global wg0

$ ip route show:
default via 172.16.2.1 dev ens19
172.16.2.0/24 dev ens19 proto kernel scope link src 172.16.2.42
192.168.42.0/24 dev wg0 proto kernel scope link src 192.168.42.2
La route vers l'ensemble du subnet 192.168.42.0/24 est ajoutée et le système sais qu'il doit passer par wg0 pour joindre les clients, résultat identique à priori.

FlorianSG

  • Abonné Bbox fibre
  • *
  • Messages: 24
  • Toulouse (31)
Configuration wireguard
« Réponse #4 le: 12 avril 2023 à 00:28:26 »
A titre d'aide et d'exemple, voici la conf de mon serveur :
[Interface]
PrivateKey = <clé privée du serveur>
Address = 192.168.42.2/32
ListenPort = 51820
SaveConfig = false

# Client 1
[Peer]
PublicKey = <clé publique du client 1>
AllowedIPs = 192.168.42.3/32

# Client 2
[Peer]
PublicKey = <clé publique du client 2>
AllowedIPs = 192.168.42.4/32

Et voici la configuration sur mes clients :
[Interface]
PrivateKey = <clé privée du client N>
Address = 192.168.42.x/32
DNS = 172.16.1.2

[Peer]
PublicKey = <clé publique du serveur>
AllowedIPs = 192.168.42.0/24, 172.16.0.0/16
# AllowedIPs = 0.0.0.0/0
Endpoint = vpn.fqdn-tres-secret.xyz:51820
PersistentKeepalive = 25

Quelques remarques :
Dans la conf de mes clients, je précise le serveur DNS afin de maintenir la résolution des noms de domaines interne à mon réseau.
Toujours dans la conf de mes clients, j'ai deux options pour préciser les IP autorisées à franchir le tunnel.
  • Avec AllowedIPs = 192.168.42.0/24, 172.16.0.0/16, seule les trames à destination de mon réseau interne sont transmises, le reste du trafic passe en clair, on parle de split-tunnel.
  • Avec AllowedIPs = 0.0.0.0/0, toutes le trafic réseau et transmit, c'est ce qui s'apparente à un VPN commercial.
Dans la conf de mon serveur, j’empêche la sauvegarde automatique de la configuration lorsque l'interface passe down (pas franchement utile et surtout risqué). Je n'ai également pas les lignes PostUp et PreDown pour les règles de pare-feu et de NAT, j'ai fais le choix de les configurer directement dans le conf d'ufw, elle sont donc actives en permanence, mais sinon le résultat est sensiblement identique.

Probzx

  • Abonné Orange Fibre
  • *
  • Messages: 97
  • Pontault-Combault (77)
Configuration wireguard
« Réponse #5 le: 17 avril 2023 à 17:36:37 »
Merci pour ta configuration.
J'avais retiré par mégarde les règles de routage de mon fichier de configuration, je pense que je vais les laisser dedans et ne pas l'écrire en dur, et ça marche très bien.

Dès que j'ai un peu de temps j'essaye de mettre en place un tunnel wireguard point à point entre deux réseaux :)