Gli utenti Linux regolari conoscono SSH, poiché è fondamentalmente ciò che consente loro di connettersi a qualsiasi server in remoto per poterlo gestire tramite riga di comando. Tuttavia, questa non è l'unica cosa che SSH può fornirti, può anche fungere da ottimo strumento di sicurezza per crittografare le tue connessioni anche quando non è presente la crittografia per impostazione predefinita.
Ad esempio, supponiamo che tu abbia un desktop Linux remoto che desideri connettere tramite SMTP o e-mail ma il firewall su quella rete attualmente blocca la porta SMTP (25) che è molto comune. Attraverso un tunnel SSH ti connetteresti semplicemente a quel particolare servizio SMTP usando un'altra porta semplicemente usando SSH senza dover riconfigurare la configurazione SMTP su una porta diversa e per di più, ottenendo le capacità di crittografia di SSH.
Configura OpenSSH per il port forwarding
Affinché OpenSSH Server consenta l'inoltro, devi assicurarti che sia attivo nella configurazione. Per fare ciò, devi modificare il tuo /etc/ssh/ssh_config file.
Per Ubuntu 18.04 questo file è leggermente cambiato, quindi devi rimuovere il commento da una riga al suo interno:
Una volta rimosso il commento, è necessario riavviare il servizio SSH per applicare le modifiche:
Ora che abbiamo configurato il nostro target per consentire l'inoltro SSH, dobbiamo semplicemente reindirizzare le cose attraverso una porta che sappiamo non è bloccata. Usiamo una porta bloccata molto insolitamente come 3300:
Quindi ora che abbiamo fatto questo, tutto il traffico che arriva alla porta 25 verrà automaticamente inviato alla porta 3300. Da un altro computer o client ci collegheremo semplicemente a questo server alla sua porta 3300 e saremo quindi in grado di interagire con esso come esso era un server SMTP senza alcuna restrizione del firewall alla sua porta 25, in pratica abbiamo semplicemente reindirizzato il traffico della sua porta 25 a un'altra (non bloccata) per potervi accedere.
Il contrario:inoltro remoto
Abbiamo parlato di inoltrare una porta locale a un'altra porta, ma supponiamo che tu voglia fare esattamente il contrario:vuoi instradare una porta remota o qualcosa a cui puoi attualmente accedere dal server a una porta locale.
Per spiegarlo facilmente, utilizziamo un esempio simile al precedente:da questo server accedi a un determinato server tramite la porta 25 (SMTP) e vuoi "condividerlo" tramite una porta locale 3302 in modo che chiunque altro possa connettersi al tuo server alla porta 3302 e vedere tutto ciò che il server vede sulla porta 25:
Riassunto e alcuni suggerimenti sul port forwarding SSH
Come puoi vedere, questo inoltro SSH si comporta come una VPN molto piccola, perché instrada le cose a determinate porte. Ogni volta che esegui questi comandi, apriranno le shell SSH, poiché comprende che devi interagire con il server tramite SSH. Se non ti serve, sarà sufficiente aggiungere semplicemente l'opzione "-N" al loro interno, così semplicemente non apriranno alcuna shell.