Terminale SSH

La connessione SSH tramite VPN non riesce: come risolvere?

SSH spesso funziona dalla tua normale connessione, ma non funziona quando è abilitata una VPN. Questo articolo spiega le cause e le soluzioni pratiche, inclusa la gestione dei casi in cui i server consentono solo IP specifici e le VPN utilizzano indirizzi a rotazione o protocolli diversi.

Il sintomo

SSH funziona anche quando non si utilizza una VPN:

ssh [email protected]

Quando ci si connette a una VPN, lo stesso comando scade, si blocca o si disconnette:

ssh: connettiti all'host myserver.com porta 22: connessione scaduta

🤓😎 Sempre più persone stanno ricevendo i nostri consigli su Geek, Privacy, Sviluppo e Stile di Vita

Vuoi ricevere gli ultimi blog su Geek, Privacy, Sviluppo e Lifestyle? Iscriviti alla nostra newsletter.

Perché questo accade

Quando ti connetti a una VPN, la configurazione di rete cambia: i percorsi vengono modificati, i server DNS potrebbero cambiare e la VPN o il suo operatore potrebbero imporre regole firewall. Cause comuni:

  • La VPN forza tutto il traffico attraverso il tunnel (VPN full-tunnel) — SSH viene instradato tramite VPN e potrebbe essere bloccato o instradato in modo errato.
  • Il firewall VPN blocca l'SSH in uscita (porta 22) — alcuni operatori o VPN aziendali bloccano intenzionalmente SSH per ridurre i rischi.
  • Modifiche alla risoluzione DNS — I server DNS della VPN potrebbero non risolvere il tuo nome host nello stesso modo della tua rete normale.
  • Conflitti nella tabella di routing — il traffico verso il server SSH passa all'interfaccia sbagliata o viene instradato nel tunnel ma non può uscire sul server pubblico.
  • Whitelisting degli IP lato server — il server SSH consente solo determinati IP client; quando il tuo IP cambia a causa della VPN, vieni bloccato.

Diagnosticare rapidamente

  1. È possibile effettuare il ping del server mentre si è connessi alla VPN? ping myserver.com
  2. Esegui un traceroute per vedere dove si ferma il traffico: traceroute myserver.com (O tracciante su Windows).
  3. Prova a connetterti tramite IP anziché tramite nome host: utente ssh@.
  4. Prova una porta diversa se il tuo server la supporta: ssh -p 2222 [email protected].
  5. Controlla la tua tabella di routing: percorso IP (Linux/macOS) o stampa del percorso (Finestre).

Puoi anche verificare se un'altra VPN funziona. Ad esempio, ProtonVPN ha un piano gratuito che puoi testare.

Soluzioni comuni

1. Utilizzare lo split tunneling

Se il tuo client VPN lo supporta, configura lo split tunneling in modo che il traffico verso il server SSH passi direttamente attraverso il tuo gateway abituale anziché attraverso il tunnel VPN. Per OpenVPN puoi aggiungere una route nella configurazione del client per bypassare il tunnel per un IP specifico:

itinerario 255.255.255.255 gateway di rete

Ciò indica al sistema di raggiungere il server SSH utilizzando il gateway predefinito (non VPN).

2. Utilizzare una porta SSH alternativa

Se la VPN blocca la porta 22, configura il tuo server per ascoltare su un'altra porta (ad esempio 2222 o 443) e connettiti utilizzando ssh -p utente@hostLa porta 443 (HTTPS) è spesso consentita quando le altre porte sono bloccate.

3. Bypassare i problemi DNS

Prova a connetterti direttamente tramite IP o imposta un risolutore DNS attendibile (solo per la risoluzione dei problemi) come 8.8.8.8 per verificare se il problema è causato dal DNS.

4. Aggiungere una rotta statica

Se il traffico viene instradato in modo errato dopo la connessione VPN, aggiungi un percorso specifico che invii la tua destinazione SSH tramite il tuo gateway locale:

sudo ip route add /32 tramite

5. Controllare le regole IP lato server

Se il server utilizza la whitelisting degli IP, firewall o strumenti come fail2ban potrebbero bloccare gli IP VPN. Verifica i log sul server e inserisci nella whitelist gli indirizzi corretti (vedi la sezione sulla rotazione degli IP più avanti).

Caso speciale: il server inserisce gli IP nella whitelist e la whitelist non sembra funzionare

Quando un server consente solo IP client specifici, inserire nella whitelist l'indirizzo errato (o un singolo indirizzo) può comunque causare il blocco se la VPN cambia IP, protocolli o fornisce più punti di uscita. Ecco alcuni accorgimenti e raccomandazioni importanti:

Rotazione di IP e protocolli VPN

Molti servizi VPN commerciali (e alcune VPN aziendali) offrono più protocolli e più server di uscita. Alcuni provider utilizzano tunnel basati su UDP (ad esempio, OpenVPN su UDP) o protocolli più recenti come WireGuard, che potrebbero modificare frequentemente l'IP pubblico. Se la VPN assegna un nuovo IP pubblico a ogni sessione, l'inserimento di un singolo IP nella whitelist fallirà.

Intervalli di whitelist vs. singoli IP

Per far funzionare SSH su una VPN di questo tipo, a volte gli amministratori inseriscono un IP nella whitelist allineare di proprietà del provider VPN. L'inserimento di intervalli nella whitelist aumenta la probabilità che il nodo di uscita VPN corrente sia coperto, ma amplia anche l'accesso e aumenta il rischio per la sicurezza.

Flusso di lavoro pratico

  1. Identificare gli IP di uscita della VPN durante la connessione (ad esempio, visitare un servizio "qual è il mio IP" dalla connessione VPN o controllare l'IP pubblico dal computer client).
  2. Aggiungi alla whitelist l'IP o il più piccolo intervallo CIDR pratico sul firewall del server per consentire la connessione SSH.
  3. Esegui la sessione SSH di cui hai bisogno.
  4. Al termine, rimuovi la voce temporanea più ampia dalla whitelist per ridurre la superficie di attacco e ripristina la policy rigorosa. L'automazione dell'aggiunta/rimozione con una finestra di modifica di breve durata riduce il rischio.

Nota: se controlli entrambe le estremità, prendi in considerazione opzioni alternative sicure, come l'utilizzo di un jump host con TLS reciproco, proxy di accesso compatibili con VPN o autenticazione SSH basata su certificati temporanei che riducano la dipendenza dalle whitelist IP.

Esempio: protocolli UDP e perché sono importanti

Alcuni firewall o dispositivi di rete differenziano il traffico in base al protocollo a un livello più profondo; i tunnel VPN basati su UDP possono essere gestiti da regole NAT/firewall diverse rispetto al TCP. Questo può influire sull'indirizzo di uscita utilizzato o sul comportamento identico del port forwarding/NAT. Se si riscontra un comportamento incoerente tra i protocolli, testare la VPN utilizzando sia la modalità UDP che TCP (se supportata dal client) per trovare l'opzione più stabile per il proprio ambiente.

Note specifiche del fornitore (esperienza utente)

I diversi provider VPN si comportano in modo diverso. Ad esempio, alcuni utenti riscontrano che un provider con IP di uscita rotanti (o molti nodi di uscita) richiede l'inserimento nella whitelist di intervalli, mentre altri provider con IP di uscita più stabili non ne hanno bisogno. Un'esperienza segnalata dagli utenti è la seguente: ExpressVPN i nodi di uscita rotanti/variati richiedevano intervalli di whitelisting, mentre ProtonVPN ha prodotto risultati coerenti per gli stessi flussi di lavoro. I risultati possono variare; verifica sempre gli IP di uscita e il comportamento del provider prima di modificare in modo permanente le policy del firewall.

Considerazioni sulla sicurezza

L'inserimento di ampi intervalli IP nella whitelist espone il server a un maggior numero di potenziali aggressori. Se è necessario inserire temporaneamente degli intervalli nella whitelist, seguire queste best practice:

  • Inserisci nella whitelist un intervallo il più piccolo possibile.
  • Limita la modifica della whitelist e rimuovila immediatamente dopo il completamento dell'attività.
  • Utilizzare un'autenticazione forte sul server SSH (solo chiave pubblica, nessuna autenticazione tramite password) e, ove possibile, prendere in considerazione l'autenticazione a due fattori per SSH.
  • Utilizzare la registrazione, gli avvisi e l'automazione degli accessi temporanei in modo che le aggiunte/rimozioni dalla whitelist siano verificabili.

Lista di controllo riassuntiva

ProblemaSintomoAggiustare
La VPN instrada tutto il trafficoSSH scadeAbilita lo split tunneling o aggiungi un percorso di eccezione
firewall VPNPorta 22 bloccataUtilizzare una porta alternativa (ad esempio, 443) o cambiare la porta di ascolto del server
Modifiche DNSHost non trovato o risolto in modo erratoConnettiti tramite IP o cambia DNS temporaneamente per la risoluzione dei problemi
Conflitto di routingTraffico inviato all'interfaccia sbagliataAggiungi percorso statico al server tramite gateway locale
Whitelisting IP / rotazione IP VPNL'inserimento di un singolo IP nella whitelist non riesceAggiungi temporaneamente alla whitelist gli intervalli minimi di provider, quindi rimuovili; oppure usa metodi di autenticazione temporanei

Comandi di esempio

Comandi utili a cui si fa riferimento in questo post:

  • Connettiti tramite nome host: ssh [email protected]
  • Connettiti tramite IP: utente ssh@
  • Connettiti su una porta alternativa: ssh -p 2222 [email protected]
  • Controllare il routing (Linux/macOS): percorso IP
  • Aggiungi un percorso per bypassare la VPN (Linux): sudo ip route add /32 tramite
  • Esempio di percorso client OpenVPN: itinerario 255.255.255.255 gateway di rete

Considerazioni finali

Il fallimento di SSH solo quando una VPN è abilitata è solitamente dovuto al routing, al DNS o al comportamento del firewall/whitelisting e, in alcuni casi, all'uso di IP a rotazione o di protocolli di trasporto diversi da parte del provider VPN. Identifica quale livello sta interferendo, applica la soluzione meno permissiva che funziona (split tunneling, intervalli minimi di whitelist o porte alternative) e rimuovi qualsiasi accesso temporaneo e più ampio al termine dell'operazione.

Se lo desideri, posso adattare questo post per includere esempi passo passo di OpenVPN / WireGuard / AnyConnect per un sistema operativo specifico (Windows, macOS, Linux) o una configurazione specifica del client VPN.

Ultimo aggiornamento il 17 ottobre 2025

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItaliano
Scorri verso l'alto