web-dev-qa-db-fra.com

Impossible de configurer le VPN WireGuard

Mon objectif est de créer un VPN afin

  1. Les clients ont des adresses IP statiques.
  2. Les clients sont capables de communiquer entre eux et le serveur,
  3. Les clients peuvent atteindre Internet mondial via le VPN.
  4. De plus, je voudrais configurer DNS et les noms de domaine privés (travailler avec NGinx).

Voici la configuration du serveur:

[Interface]
Address = 10.0.0.1/24
ListenPort = 5555
PrivateKey = xxxxx

[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0

Et configuration du client:

[Interface]
PrivateKey = xxxxx
ListenPort = 5555
Address = 10.0.0.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <server ip>:5555

Mais quand j'essaie de charger la configuration de serveur wg setconf wg0 /etc/wireguard/wg0.conf Je reçois cette erreur:

Line unrecognized: `Address=10.0.0.1/24'
Configuration parsing error

Ainsi j'ai commenté cette ligne. Mais il fait probablement que WG choisit des adresses IP aléatoires pour le serveur et les clients.

Pour faire du travail métallurgique, j'ai également couru ces commandes:

ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.1/24
ip link set up dev wg0

Après tout, wg commandes fournit la sortie suivante:

interface: wg0
  public key: xxxxx
  private key: (hidden)
  listening port: 5555

peer: xxxxx
  endpoint: <my IP address>:6228
  allowed ips: 0.0.0.0/0
  latest handshake: 2 minutes, 11 seconds ago
  transfer: 26.02 KiB received, 248 B sent

Du client (qui est MacOS avec interface graphique métallique), je suis capable de se connecter, mais:

  • Je n'ai aucune connexion Internet. Je ne peux même pas ping le serveur par l'adresse IP globale, bien que je puisse avec le privé, 10.0.0.1.
  • Je suis capable de vous connecter à VPN même si je modifie le port dans la configuration du client. Je pense que cela signifie que cela ne se connecte pas vraiment.

Alors, comment puis-je atteindre mes objectifs? Et qu'est-ce qui ne va pas avec mes configs ??

Ps. Ni iptables _ ni pare-feu sont installés sur le serveur, il ne peut donc pas être un problème. En outre, j'ai spécifié net.ipv4.ip_forward=1 & net.ipv6.conf.all.forwarding=1 dans le /etc/sysctl.conf.
Versions logicielles. Os est Ubuntu 18.04.4 LTS, Noyau: 4.15.0-20-generic, WG: wireguard-tools v1.0.20200206.


Mettre à jour

J'ai supprimé Address de la configuration du serveur et définissez AllowedIPs = 10.0.0.2/24 Dans le client, je me suis enfin connecté au Nginx du serveur du client par IP privée et en mesure d'atteindre Internet (le trafic CoZ va en dehors de VPN).

Mais si je mets AllowedIPs = 0.0.0.0/0 Sur le client, je n'ai pas d'accès à Internet, mais peut toujours atteindre le serveur par adresse IP de VPN 10.0.0.1. J'ai essayé de résoudre avec ifconfig wg0 broadcast/multicast, mais n'avait aucun succès. Maintenant la commande ip address show wg0 fournit la sortie suivante:

4: wg0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.10.10.1/24 scope global wg0
       valid_lft forever preferred_lft forever
    inet 10.10.10.1 peer 10.10.10.2/32 scope global wg0
       valid_lft forever preferred_lft forever

De plus, je ne peux pas accéder à un client d'un autre, je pense que c'est le même problème. Comment puis-je corriger des configurations métalliques ou des paramètres réseau de serveur pour résoudre le problème?

2
AivanF.

Le manuel de wg ne mentionne pas que la commande set pourrait comprendre la directive Address, ni sa spécification de format de configuration:

       The Interface section may contain the following fields:

       ·      PrivateKey — [...] Required.

       ·      ListenPort — [...] Optional; if not specified, chosen randomly.

       ·      FwMark — [...] Optional.

       The Peer sections may contain the following fields:

       ·      PublicKey  —  [...] Required.

       ·      PresharedKey — [...]

       ·      AllowedIPs — [...] May be specified multiple times.

       ·      Endpoint  — [...]  Optional.

       ·      PersistentKeepalive  — [...] Optional.

Au lieu de cela, pour configurer votre interface avec un fichier de configuration contenant Address, vous devez utiliser un assistant appelé wg-qucik:

$ Sudo wg-quick up /etc/wireguard/wg0.conf

Cette commande créera l'interface wg0 lui-même pour que vous puissiez nettoyer celui que vous avez déjà créé avec les commandes ip.

1
piroux