Mon but est de créer un VPN afin
- Les clients ont des adresses IP statiques.
- Les clients peuvent communiquer entre eux et avec le serveur,
- Les clients peuvent accéder à l'Internet mondial par le biais du VPN.
- J'aimerais également configurer le DNS et les noms de domaine privés (en travaillant 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 la 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 lorsque j'essaie de charger la configuration du serveur wg setconf wg0 /etc/wireguard/wg0.conf
Je reçois cette erreur :
Line unrecognized: `Address=10.0.0.1/24'
Configuration parsing error
J'ai donc commenté cette ligne. Mais cela incite probablement WG à choisir des adresses IP aléatoires pour le serveur et les clients.
Pour faire fonctionner WireGuard, j'ai aussi lancé 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
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
Depuis le client (qui est MacOS avec WireGuard GUI), je suis capable de me connecter, mais.. :
- Je n'obtiens aucune connexion Internet. Je ne peux même pas faire un ping du serveur avec l'adresse IP globale, alors que je peux le faire avec l'adresse privée,
10.0.0.1
. - Je suis capable de me connecter au VPN même si je change le port dans la configuration du client. Je pense que cela signifie qu'il ne se connecte pas vraiment.
Alors, comment puis-je atteindre mes objectifs ? Et qu'est-ce qui ne va pas dans mes configurations ?
PS. Ni l'un ni l'autre <code>iptables</code> ni les pare-feu ne sont installés sur le serveur, donc cela ne peut pas être un problème. De plus, j'ai spécifié <code>net.ipv4.ip_forward=1</code> & <code>net.ipv6.conf.all.forwarding=1</code> en el <code>/etc/sysctl.conf</code> .<br>Versions du logiciel. Le système d'exploitation est <code>Ubuntu 18.04.4 LTS</code> Kernel : <code>4.15.0-20-generic</code> , WG : <code>wireguard-tools v1.0.20200206</code> .
Mise à jour
J'ai retiré Address
de la configuration du serveur, et définir AllowedIPs = 10.0.0.2/24
dans celui du client, j'ai finalement réussi à me connecter au NginX du serveur depuis le client par son IP privée, et à atteindre l'Internet (car le trafic passe par le VPN).
Mais si je mets AllowedIPs = 0.0.0.0/0
sur le client, je n'ai pas d'accès à l'Internet, mais je peux quand même atteindre le serveur par l'adresse IP du VPN 10.0.0.1. J'ai essayé de résoudre le problème avec ifconfig wg0 broadcast/multicast
mais sans 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 à partir d'un autre, je pense que c'est le même problème. Comment puis-je corriger les configurations de WireGuard ou les paramètres réseau du serveur pour résoudre le problème ?