SSHuttle: uno strumento simile a VPN per l'instradamento sicuro del traffico
SSHuttle è un potente strumento simile a una VPN che consente agli utenti Linux di instradare in modo sicuro il traffico di rete attraverso un server remoto utilizzando SSH. È ideale per scenari in cui è necessaria la crittografia sicura del traffico, l'esclusione dei firewall o l'accesso a risorse riservate senza il sovraccarico della configurazione di una VPN completa.
In questo tutorial imparerai:
- Come instradare tutto il tuo traffico tramite SSH con SSHuttle
- Opzioni SSHuttle avanzate per migliorare la funzionalità
Iniziare con SSHuttle
L'uso più elementare di SSHuttle è instradare tutto il traffico attraverso un server SSH remoto. Questo crea un tunnel simile a una VPN per tutta la tua attività di rete.
Instrada tutto il traffico tramite SSH: instrada in modo sicuro tutto il traffico di rete attraverso un server SSH remoto.
$ sshuttle -r user@remote-server 0/0
Questo comando dirige tutto il traffico in uscita (
0/0
indica tutti gli intervalli IP) attraverso il server remoto. Sostituisciuser
con il tuo nome utente SSH eremote-server
con il nome host o l'indirizzo IP del server SSH. Dopo aver eseguito questa operazione, la tua attività Internet apparirà come proveniente dal server remoto, ignorando eventuali firewall locali o restrizioni di rete.PING NON FUNZIONA
SSHuttle non supporta il traffico ICMP, quindi i comandi ping non funzioneranno. Instrada solo il traffico TCP e facoltativamente DNS. Utilizza invece strumenti come curl o ssh per testare la connettività.Includi traffico DNS: previeni perdite DNS instradando le query DNS attraverso il server remoto.
$ sshuttle -r user@remote-server --dns 0/0
Instrada solo traffico specifico: limita l'instradamento a una sottorete specifica, ad esempio le risorse aziendali interne.
$ sshuttle -r user@remote-server 10.1.2.0/24
Questo esempio instrada il traffico solo per la sottorete
10.1.2.x
attraverso il tunnel SSH. Utile per accedere a sistemi interni remoti senza instradare traffico Internet non correlato.Associa a un'interfaccia di rete specifica: controlla su quale interfaccia di rete SSHuttle è in ascolto.
$ sshuttle --listen 10.1.2.99 -r user@remote-server 0/0
-
Esegui come demone: mantieni SSHuttle in esecuzione in background.
$ sshuttle -r user@remote-server 0/0 -D
L'opzione
-D
esegue SSHuttle come demone (processo in background). Combina questo con la registrazione per il monitoraggio:$ sshuttle -r user@remote-server 0/0 -D --logfile /path/to/logfile.log
Escludi host specifici: impedisce che determinati IP o domini vengano instradati tramite SSHuttle.
$ sshuttle -r user@remote-server 0/0 --exclude example.com
Utilizza l'opzione
--exclude
per ignorare host o sottoreti specifici, comeexample.com
. Combina le esclusioni per gestire più casi:$ sshuttle -r user@remote-server 0/0 --exclude example.com --exclude 10.1.2.99
L'opzione --dns
garantisce che anche le richieste DNS vengano crittografate e instradate attraverso il tunnel SSH. Ciò è essenziale per mantenere la privacy ed evitare perdite DNS durante l'utilizzo di SSHuttle.
L'opzione --listen
collega SSHuttle a un'interfaccia locale specifica, come 10.1.2.99
. Ciò è particolarmente utile nei sistemi multi-interfaccia per limitare il traffico di SSHuttle.
Ciò consente di ottimizzare il percorso ed evitare traffico non necessario sul tunnel.
Conclusione
SSHuttle è uno strumento versatile che semplifica l'instradamento sicuro del traffico tramite SSH. Che tu abbia bisogno di instradare tutto il traffico, accedere a sottoreti specifiche o migliorare la funzionalità con opzioni come il routing DNS e la compressione del traffico, SSHuttle fornisce una soluzione leggera e flessibile. Combinando gli esempi sopra riportati, puoi personalizzare SSHuttle in base alle tue specifiche esigenze di rete.