I tunnel che salgono mentre l’SSH verso l’indirizzo pubblico del server smette di funzionare sembrano un server che rifiuta la connessione. Su Windows la causa più probabile è locale: un AllowedIPs di tunnel completo con /0 attiva regole del firewall restrittive che consentono il trasporto proprio del tunnel e ben poco altro. I pacchetti cifrati che raggiungono quell’indirizzo non dicono nulla sulla possibilità che una connessione TCP separata verso lo stesso indirizzo esca.

Separa l’indirizzo pubblico dell’endpoint dal suo indirizzo interno di tunnel prima di toccare l’elenco dei peer. Quasi ogni tentativo di correggere questo modificando AllowedIPs rende la politica più debole invece di rendere corretta la route.

Il permesso di routing e il permesso del firewall sono diversi

Una route decide dove verrebbe inviato un pacchetto, e una regola del firewall decide se può essere inviato. Aggiungere una route per l’IP pubblico dell’endpoint produce quindi un percorso che il filtro può ancora bloccare, ed è esattamente la confusione che questo sintomo crea. Su Windows il filtro fa parte dell’implementazione e non è un componente aggiuntivo, quindi nessuna voce di route lo cambia. Le due decisioni sono separate anche altrove, pur con valori predefiniti diversi.

Per questo un traceroute verso l’endpoint può riuscire mentre un tentativo SSH fallisce. Il primo è portato dal servizio che possiede l’eccezione, il secondo no.

Che cosa fa /0 su Windows

Con un solo peer le cui address consentite coprono l’intero spazio IPv4, WireGuard for Windows applica una postura restrittiva del firewall che blocca il traffico che altrimenti uscirebbe fuori dal tunnel. Il trasporto proprio del servizio del tunnel è consentito, perché la VPN non potrebbe funzionare altrimenti. Un’altra applicazione verso lo stesso indirizzo pubblico non riceve tale permesso, poiché l’eccezione appartiene al trasporto e non all’indirizzo. Note di rete di Windows descrivono questo comportamento e il controllo correlato nell’editor.

Quelle regole sono il meccanismo dietro l’espressione kill switch. Sono attivate dalla forma della configurazione e non da una casella con quel nome.

Le eccezioni cambiano il modello di protezione

Sostituire /0 con due prefissi semi-predefiniti è il modo documentato di mantenere un routing ampio senza la semantica restrittiva, ed è un modello di protezione diverso, non una scrittura più breve. Sottrarre l’indirizzo dell’endpoint dai prefissi consentiti è l’altro aggiramento comune, che allunga l’elenco e cambia anche quali regole si attivano. Nessuno dei due è una modifica locale con effetto locale. Ciascuno sposta il confine per ogni flusso della macchina, non solo per la connessione che stavi riparando.

Dove l’SSH pubblico diretto è davvero necessario, il proprietario del profilo deve progettare sia la route esterna sia il suo permesso nel firewall, e decidere che cosa succede al traffico non correlato quando il tunnel cade. Anche la revisione separata di IPv4 e IPv6 ne fa parte, poiché le regole sono espresse per famiglia. Un aggiramento ampio aggiunto per salvare una singola sessione di gestione di solito espone più della sessione.

Verifica il percorso di gestione che hai scelto

Decidi prima se la gestione deve viaggiare dentro o fuori dal tunnel, poi verifica quella scelta invece di entrambe insieme. I comandi seguenti controllano gli indirizzi del client, lo stato del peer e una connessione verso ogni destinazione. Eseguili dal client Windows mentre il tunnel è attivo.

ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22

Un SSH riuscito verso l’indirizzo interno dimostra che il tunnel trasporta il traffico di gestione e che il firewall del server lo accetta dall’intervallo dei peer. Un errore su entrambe le destinazioni è un problema lato server o di chiave, non di routing di Windows. Se l’indirizzo interno funziona e quello esterno no, la postura locale del firewall fa esattamente ciò per cui è stata progettata. Leggi i tre risultati in quest’ordine prima di modificare un profilo.

Annota il percorso di gestione, l’indirizzo usato e il comportamento quando il tunnel è abbassato. È quella nota che impedisce alla persona successiva di allargare l’aggiramento per risparmiare cinque minuti.

Articoli correlati