19.5. Shell più che sicura

Un'interfaccia a linea di comando sicura è solo uno dei tanti modi in cui è possibile usare una SSH. Considerata la larghezza di banda, le sessioni X11 possono essere indirizzate tramite un canale SSH. Oppure, utilizzando il TCP/IP forwarding, le connessioni di porta un tempo non sicure tra sistemi diversi possono essere mappate su canali SSH specifici.

19.5.1. inoltro X11

Aprire una sessione X11 tramite una connessione SSH stabilita è facile quanto avviare un programma X su un computer locale. Quando un programma X viene eseguito dalla shell, il client e il server SSH creano un nuovo canale sicuro e i dati del programma X vengono inviati tramite questo canale al vostro client.

L'inoltro X11 può essere molto utile. Per esempio, potete usarlo per creare una sessione interattiva e sicura con l'interfaccia grafica utente up2date sul server per aggiornare i pacchetti. Per farlo, connettetevi al server utilizzando ssh e digitate:

up2date &

Vi viene richiesto di inserire la password di root per il server, comparirá subito dopo Red Hat Update Agent e permetterá all'utente remoto di aggiornare in modo, sicuro il sistema remoto.

19.5.2. Port forwarding

Con SSH potete rendere sicuri i protocolli TCP/IP altrimenti insicuri mediante il port forwarding. Con questa tecnica, il server SSH diventa un passaggio cifrato al client SSH.

Il port forwarding consiste nel mappare una porta locale sul client per una porta remota sul server. SSH vi permette di mappare qualsiasi porta dal server per qualsiasi porta sul client. I numeri delle porte non devono corrispondere per permettere il funzionamento di questa tecnica.

Per creare un canale TCP/IP di port forwarding che attenda le connessioni sull'host locale, utilizzate il seguente comando:

ssh -L local-port:remote-hostname:remote-port username@hostname

NotaNota Bene
 

Per impostare il port forwarding all'ascolto su porte inferiori alla 1024 è necessario l'accesso di root.

Se per esempio desiderate controllare la vostra posta su di un server chiamato mail.example.com utilizzando il protocollo POP tramite una connessione cifrata, potete usare il comando seguente:

ssh -L 1100:mail.example.com:110 mail.example.com

Una volta impostato il canale per il port forwarding tra la macchina del client e il mail server, potete indicare al vostro client di posta POP di usare la porta 1100 sull'host locale per controllare l'arrivo di nuova posta. Qualsiasi richiesta inviata alla porta 1100 sul sistema client, sarà indirizzata in modo sicuro al server mail.example.com

Se mail.example.com non esegue un demone server SSH, eseguito invece da un'altra macchina sulla stessa rete, potete ancora utilizzare SSH per rendere sicura una parte della connessione. Tuttavia è necessario un comando leggermente diverso:

ssh -L 1100:mail.example.com:110 other.example.com

In questo esempio, la richieste POP3 dalla porta 1100 sulla macchina client, sono inviate tramite il collegamento SSH sulla porta 22 al server SSH other.example.com. A questo punto, other.domain.com si connette alla porta 110 su mail.example.com per permettervi di controllare l'arrivo di nuova posta. Con questa tecnica, solo la connessione tra il sistema client e il server SSH other.example.com è sicura.

Il port forwarding può risultare particolarmente utile per ricevere informazioni in modo sicuro tramite i firewall di rete. Se il firewall è configurato per consentire il traffico SSH tramite la porta standard (22), ma blocca l'accesso alle altre porte, una connessione tra due host che usano porte bloccate è comunque possibile se si reindirizza la comunicazione tramite una connessione SSH.

NotaNota Bene
 

L'utilizzo del port forwarding per inoltrare connessioni in questo modo consente a qualsiasi utente sul sistema client di connettersi a quel determinato servizio.Se il sistema client viene compromesso, anche un aggressore avràaccesso ai servizi inoltrati.

Gli amministratori di sistema possono disabilitare la funzione del port forwarding sul server, specificando il parametro No per la riga AllowTcpForwarding nel file /etc/ssh/sshd_config e riavviando il servizio sshd.