DOMANDA Wireguard su server Ubuntu

Pubblicità
e allora suppongo sia bloccato dall'ISP, non arriva neppure al tuo router.
Ma sto andando a caso, dato che non mi hai mai detto se hai attivato i log nelle regole DNAT e FILTER del mikrotik e se hai visto passare il pacchetto nei log
 
si, passano ma non arrivano.
Se lo zyxel passa il pacchetto al server ubuntu e poi non arriva su netcat come ti ho fatto testare, allora è su ubuntu il problema, o hai qualcosa che utilizza già la porta specificata, o hai un firewall / iptablet / nftables attivo che blocca i pacchetti su quella porta

Chiaramente il server ubuntu ha lo zyxel come gateway sì? Altrimenti non funzionerebbe la rotta di ritorno
 
questo lo devo verificare

Vediamo se è chiaro:
- hai attivato i log delle regole di DNAT e FILTER sul mikrotik e hai visto le righe di log in cui si vedono i pacchetti passare, giusto?
esempio, in questo caso c'è solo la regola di filter perché è il mikrotik a fare server wireguard ma nel tuo caso devi avere due righe di log (se attivi entrambe le opzioni di log nel mikrotik) ovvero la regola di filter e la regola di dnat, sono due porte diverse perché sono due interfacce wireguard diverse, ma il senso è quello
1771429195911.webp

- hai visto arrivare il pacchetto nei log dello zyxel e hai visto che viene fatto dnat anche in quello verso il tuo server ubuntu

- su ubuntu il pacchetto si ferma e non arriva al servizio in ascolto, tipo un netcat in listen sulla porta specificata

se è così, c'è un firewall attivo su ubuntu che ti blocca qualcosa, puoi vederlo con iptables -L o con nft list ruleset
 
Aggiornamento: ho cancellato tutte le regole del firewall, del server e del client. Le ho rifatte tutte da capo e, adesso, con netcat da remoto su parlano....ma........sulla connessione VPN lo stesso identico maledetto errore...ovviamente da esterno
 
se su netcat passano i pacchetti sei a posto

inizia a stabilire il tunnel wireguard, ovvero

Codice:
---------- SERVER ----------  file /etc/wg0.conf

[Interface]
Adddress = 10.10.10.1/24
ListenPort = 51820
PrivateKey = <CHIAVE PRIVATA DEL SERVER>


[Peer]
PublicKey = <CHIAVE PUBBLICA DEL CLIENT>
AllowedIPs = 10.10.10.2/32





---------- CLIENT ----------  file /etc/wg0.conf

[Interface]
PrivateKey = <CHIAVE PRIVATA DEL CLIENT>
Address = 10.10.10.2/32
DNS = 1.1.1.1, 8.8.8.8

[Peer]
PublicKey = <CHIAVE PUBBLICA DEL SERVER>
AllowedIPs = 10.10.10.0/24, 192.168.1.0/24
Endpoint = <ip pubblico>:51820
PersistentKeepalive = 25


su entrambi dai
systemctl enable --now wg-quick@wg0

e vedi se con
wg show wg0
vedi che i due peer sono connessi, dovresti vedere tipo così:

Codice:
peer: <chiave pubblica>
  endpoint: <ip>:<porta>
  allowed ips: <ip consentiti>
  latest handshake: 13 seconds ago
  transfer: 43.37 MiB received, 8.53 MiB sent



se è tutto a posto i peer devono connettersi
 
Devi mettere sul server wireguard le regole di masquerading che avevi nella prima configurazione, che erano queste, considerando che enp2s0 sia la tua interfaccia di LAN

Codice:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp2s0 -j MASQUERADE

queste erano fate con iptables, se usi nft o un altro firewall devi adattarle a quello che usi
 
che cosa hai come firewall su ubuntu? stai usando iptables o nft come tabelle kernel? usi sistemi firewall di più alto livello tipo ufw, firewall-cmd, ecc?

In base a questo vanno fatte le corrette regole di masquerade per NATtare i pacchetti dall'interfaccia wg0 alla lan
 
Premessa: io non uso ubuntu, conosco principalmente a fondo Debian, ma dovrebbe essere abbastanza simile su Ubuntu, quindi le istruzioni che ti metto sono per Debian ma credo possano andare bene anche su ubuntu


Intanto devi abilitare ipv4 forward, altrimenti non funzionerà mai

Quindi in /etc/sysctl.conf cerca la riga
net.ipv4.ip_forward
se è net.ipv4.ip_forward=0 metti net.ipv4.ip_forward=1

ricarica con
sysctl -p



Ora aggiustiamo le righe PostUp / PostDown in /etc/wireguard/wg0.conf sempre con iptables, dovrebbe al massimo tradurle in regole nftables

quindi metti in /etc/wireguard/wg0.conf
Codice:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <INTERFACCIA-LAN> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <INTERFACCIA-LAN> -j MASQUERADE

al posto di <INTERFACCIA-LAN> devi mettere il nome della tua interfaccia di rete della LAN
In questo modo mettiamo nella tabella di filter di iptables di accettare i pacchetti in forward dalla interfaccia wireguard, e di fare NAT MASQUERADE verso l'interfaccia della LAN

Così dall'interfaccia wireguard i pacchetti possono passare sulla LAN
 
Pubblicità
Pubblicità
Indietro
Top