Come funziona il tunneling ssh
Tunneling SSH: esempi, comando, contenuti della configurazione del server
Che cos'è l'inoltro della porta SSH, noto anche come tunneling SSH? Inoltro localeInoltro remotoApertura di backdoor nell'aziendaConfigurazione lato serverCome impedire che l'inoltro delle porte SSH eluda i firewallSoluzione SSHUlteriori informazioni
Che cos'è l'inoltro delle porte SSH, noto anche come tunneling SSH?
L'inoltro delle porte SSH è un meccanismo in SSH per il tunneling delle porte delle applicazioni dalla macchina client alla macchina server o viceversa. Può essere utilizzato per aggiungere la crittografia alle applicazioni legacy , passando attraverso i firewall , e alcuni amministratori di sistema e professionisti IT lo utilizzano per aprire backdoor nella rete interna dalle loro macchine domestiche. Può anche essere abusato da hacker e malware per aprire l'accesso da Internet alla rete interna. Vedere la pagina Tunneling SSH per una panoramica più ampia.
L'inoltro locale
viene utilizzato per inoltrare una porta dal computer client al computer server. Fondamentalmente, il client SSH è in ascolto delle connessioni su una porta configurata e, quando riceve una connessione, esegue il tunneling della connessione a un server SSH. Il server si connette a una porta di destinazione configurata, possibilmente su una macchina diversa da quella del server SSH.
Gli usi tipici del port forwarding locale includono:
-
Sessioni di tunneling e trasferimenti di file attraverso i jump server
-
Connessione a un servizio su una rete interna dall'esterno
-
Connessione a una condivisione di file remota su Internet
Alcune organizzazioni per tutti gli accessi SSH in entrata tramite un singolo jump server. Il server può essere una macchina Linux/Unix standard, di solito con un po' di hardening, rilevamento delle intrusioni e/o registrazione extra, oppure può essere un Soluzione del server di salto.
Molti jump server consentono l'inoltro della porta in entrata, una volta che la connessione è stata autenticata. Tale port forwarding è conveniente, perché consente agli utenti esperti di tecnologia di utilizzare le risorse interne in modo abbastanza trasparente. Ad esempio, possono inoltrare una porta del computer locale al server Web Intranet aziendale, alla porta IMAP di un server di posta interno, alle porte 445 e 139 di un file server locale, a una stampante, a un repository di controllo della versione o a quasi tutti gli altri sistemi della rete interna. Spesso, la porta viene incanalata in una porta SSH su un computer interno.
In OpenSSH, l'inoltro della porta locale viene configurato utilizzando l'opzione:
Questo esempio apre una connessione al server di salto e inoltra qualsiasi connessione alla porta 80 sul computer locale alla porta 80 su .
Per impostazione predefinita, chiunque (anche su computer diversi) può connettersi alla porta specificata sul computer client SSH. Tuttavia, ciò può essere limitato ai programmi sullo stesso host fornendo un indirizzo di binding :
L'opzione nel file di configurazione del client OpenSSH può essere utilizzata per configurare l'inoltro senza doverla specificare sulla riga di comando.
Inoltro remoto
In OpenSSH, gli inoltri della porta SSH remoti vengono specificati utilizzando l'opzione. Ad esempio:
ciò consente a chiunque sul server remoto di connettersi alla porta TCP 8080 sul server remoto. La connessione verrà quindi reindirizzata all'host client e il client effettuerà quindi una connessione TCP alla porta 80 su . È possibile utilizzare qualsiasi altro nome host o indirizzo IP anziché specificare l'host a cui connettersi.
Questo particolare esempio sarebbe utile per fornire a qualcuno dall'esterno l'accesso a un server web interno. O l'esposizione di un'applicazione Web interna alla rete Internet pubblica. Questo potrebbe essere fatto da un dipendente che lavora da casa o da un utente malintenzionato.
Per impostazione predefinita, solo OpenSSH Consente la connessione alle porte inoltrate remote dall'host del server. Tuttavia, l'opzione nel file di configurazione del server sshd_config può essere utilizzata per controllare questa operazione. Sono possibili le seguenti alternative:
In questo modo si impedisce la connessione alle porte inoltrate dall'esterno del computer server.
In questo modo chiunque può connettersi alle porte inoltrate. Se il server si trova su una rete Internet pubblica, chiunque su Internet può connettersi alla porta.
Ciò significa che il client può specificare un indirizzo IP da cui sono consentite le connessioni alla porta. La sintassi per questo è la seguente:
In questo esempio, sono consentite solo le connessioni dall'indirizzo IP alla porta 8080.
OpenSSH consente anche alla porta remota inoltrata di specificare come 0. In questo caso, il server assegnerà dinamicamente una porta e la segnalerà al client. Se utilizzato con l'opzione, il client stamperà il numero di porta allocato nell'output standard.
apertura Backdoor nell'azienda L'inoltro
della porta SSH remoto è comunemente utilizzato dai dipendenti per aprire backdoor nell'azienda. Ad esempio, il dipendente può impostare l'opzione Ottieni un server di livello gratuito da Amazon AWS e accedere dall'ufficio a tale server, specificando l'inoltro remoto da una porta del server a un server o a un'applicazione nella rete aziendale interna. È possibile specificare più inoltri remoti per aprire l'accesso a più di un'applicazione.
Il dipendente deve anche impostare sul server (la maggior parte dei dipendenti non dispone di indirizzi IP fissi a casa, quindi non può limitare l'indirizzo IP).
Ad esempio, il comando seguente apre l'accesso a un database Postgres interno sulla porta 5432 e a una porta SSH interna sulla porta 2222.
L'opzione nel file di configurazione del server OpenSSH deve essere abilitata sul server per consentire l'inoltro della porta. Per impostazione predefinita, l'inoltro è consentito. I valori possibili per questa opzione sono o per consentire tutti gli inoltri TCP, per impedire tutti gli inoltri TCP, per consentire gli inoltri locali e per consentire gli inoltri remoti.
Un'altra opzione di interesse è , che può essere utilizzata per inoltrare i socket di dominio Unix. Consente gli stessi valori di . Il valore predefinito è .
Ad esempio:
l'opzione di configurazione descritta sopra influisce anche sui port forwarding remoti. I valori possibili erano (sono consentite solo le connessioni locali dall'host del server; impostazione predefinita), (chiunque su Internet può connettersi alle porte inoltrate remote) e (il client può specificare un indirizzo IP che può connettersi, chiunque può se non specificato).
Come impedire che l'inoltro della porta SSH eluda i firewall
Si consiglia di disabilitare espressamente l'inoltro della porta quando non è necessario. Lasciare abilitato il port forwarding può esporre l'organizzazione a rischi per la sicurezza e backdoor. Ad esempio, se un server destinato a fornire solo trasferimenti di file SFTP consente l'inoltro delle porte, tali gli inoltri potrebbero essere utilizzati per ottenere l'accesso involontario alla rete interna dalla rete Intranet.
Il problema è che in pratica il port forwarding può essere impedito solo da un server o da un firewall. Un'azienda non può controllare tutti i server su Internet. Anche il controllo basato su firewall può essere complicato, poiché la maggior parte delle organizzazioni dispone di server in Amazon AWS e altri servizi cloud e di solito si accede a tali server tramite SSH.
Tectia SSH Client/Server è una soluzione commerciale in grado di fornire tunneling sicuro delle applicazioni insieme a SFTP e accesso remoto sicuro per le aziende.
Ulteriori
informazioni