Ho la versione CentOS 7.6 e ho installato il server VPN Wireguard di prova. L'intera installazione e configurazione è abbastanza semplice, almeno secondo la documentazione, quindi quello che ho fatto ho installato wireguard-tools, wireguard-dkms e linux-headers
il passo successivo è stato quello di generare la chiave privata e pubblica del server e di scrivere la configurazione del server come:
[Interface]
Address = 10.7.0.1/24
ListenPort = 34777
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.2/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.3/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.4/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.5/32
dal lato server ho aperto la porta 34777 udp su un firewall e ho impostato sysctl -w net.ipv4.ip_forward (per abilitare l'inoltro) poiché questo server dovrebbe supporre di inoltrare il traffico dal client ad altri server nella sottorete del server VPN.
Ora immaginiamo che l'IP pubblico di questo server sia 11.11.11.11/23
Sul lato client, la configurazione è simile a questa:
[Interface]
Address = 10.7.0.4/24
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.1/32,11.11.11.0/23 (for having route to 11.11.11.0/23 subnet) or 0.0.0.0/0
Endpoint = 11.11.11.11:34777
ora 0.0.0.0/0 significa che inoltrerò tutto il traffico alla mia VPN (non è obbligatorio), può essere un tunnel diviso…. cosa non capisco, quando mi collego, posso eseguire il ping dell'interfaccia del server 10.7.0.1, ma non riesco a eseguire il ping di nulla dalla rete 11.11.11.0/23.
Poiché la rete 11.11.11.0/23 è pubblica, non c'è NAT.
Inoltre, su CentOS uso firewalld invece di iptables.
Come e perché non riesco a vedere la rete interna dietro l'interfaccia con tunnel?
immagina come appare la configurazione:
PS Nell'immagine, tra l'host A e il server Wireguard, c'è un altro router Linux (un router principale), quindi tienilo a mente.
Risposta accettata:
Dopo tanti tentativi e fallimenti e brainstorming con i ragazzi del canale IRC di wireguard, a quanto pare ho dimenticato di aggiungere un percorso statico per 10.7.0.0/24 per ogni server dietro wireguard. Il ping va al server, ma non ritorna in quanto il server non sa dove inviare l'eco-risposta:
ip route add 10.7.0.0/24 via 11.11.11.11 dev eth0 (main device for communication)
Per me problema risolto 😉