|
Scritto da Administrator
|
|
Giovedì 07 Maggio 2009 22:15 |
|
Disponibile articolo: "Connettere Ubuntu ad un server SSH remoto" Gli utenti che utilizzano telnet, rlogin ed ftp spesso non sono consapevoli che, durante i collegamenti, le loro password usate per l'accesso sono trasmesse attraverso la rete in modo non protetto esponendo così dati sensibili alla cattura da parte di terzi che potranno utilizzarle a loro piacimento. Secure Shell (SSH) è un protocollo di livello applicazione nato nel mondo Linux/Unix che consente di accedere ad un computer remoto sfruttando un canale sicuro: tutto il traffico che viaggia via SSH è infatti crittografato e teoricamente inaccessibile ad un qualsiasi aggressore che dovesse riuscire ad intercettare la comunicazione.
SSH è nato principalmente per consentire di lanciare comandi ed accedere alle risorse di workstation e server remoti con la stessa semplicità con cui si accede ad un sistema fisico. Nel corso degli anni però, l'uso di questa tecnologia si è evoluto, ed oggi SSH consente di realizzare canali protetti all'interno dei quali possono essere veicolate informazioni di qualsiasi tipo.
Una volta configurato un server SSH su un computer di casa, si potrà sfruttarlo da remoto per:
Accedere ad Internet in modo sicuro sfruttando una rete (wireless o cablata) non debitamente protetta Superare il firewall aziendale o altre limitazioni imposte dal fornitore di connettività Lanciare comandi sul server a distanza Trasferire file in modo sicuro Bypassare le liste di "siti bloccati" Sfruttare le risorse del server remoto Migliorare la sicurezza di VNC o altri programmi di controllo remoto
E molto altro ancora... Verrà spiegato in questo articolo come installare e configurare un server SSH (Secure SHell) su sistema operativo Ubuntu.
L'installazione risulta molto semplice in quanto sarà sufficiente scaricare due pacchetti dai repository di default di Ubuntu attraverso il seguente comando:
sudo apt-get install openssh-server openssh-client
il processo di installazione termina quì.
Prima di passare alla configurazione vera e propria del server SSH verranno spiegati sinteticamente alcuni concetti teorci molto utili a capire i passaggi della configurazione. Il requisito per potersi connettere con successo ed in modo sicuro al server SSH è disporre di un account sul server al quale si vuole accedere; E' possibile autenticarsi sul server attraverso il consueto utilizzo di username/password oppure sfruttando un più avanzato e sicuro sistema di chiavi.
Sistema di autenticazione username/password Utilizzando questo sistema di autenticazione sarà necessario essere a conoscenza del nome utente (e della password) dell'account esistente sul server SSH con il quale ci si vuole collegare. Ad esempio se sul server si ha un account 'carciofo' con password 'puffolo' sarà necessario conoscere queste due informazioni per poter accedere al server da remoto. Ovviamente secondo la politica di sicurezza di SSH queste informazioni viaggeranno all'interno di un canale protetto da cifratura e non sarà possibile per nessuno intercettarle al momento del login! Tuttavia questo sistema di autenticazione potrebbe essere oggetto di attacco Brute-Force, ovvero un possibile attaccante potrebbe cercare di ricavare la password tentando tutte le combinazioni possibili e, nel caso di una password poco robusta, potrebbe compromettere l'intero sistema.
Sistema di autenticazione con chiavi RSA Il metodo più sicuro e consigliato è l'utilizzo di autenticazione basato sulle chiavi. Questo sistema prevede che per ogni utente esistano due chiavi: una pubblica e una privata. Ognuna di queste chiavi è salvata in un file all'interno della cartella home dell'utente. Chiave pubblica -> /home/nome_utente/.ssh/id_rsa.pub Chiave privata -> /home/nome_utente/.ssh/id_rsa
La creazione di queste chiavi sarà spiegata nell'articolo sulla configurazione di un client SSH.
E' importante tenere presente che la chiave privata non deve essere in alcun modo cadere sotto la mano di terzi mentre la chiave pubblica non è necessario tenerla segreta.
Il server possiede anch'esso una chiave pubblica e una chiave privata posizionate in: Chiave pubblica -> /etc/ssh/ssh_host_rsa_key.pub Chiave privata -> /etc/ssh/ssh_host_rsa_key
dove per la chiave privata è disponibile la lettura/scrittura solamente per l'amministratore di sistema (root).
Questo tipo di autenticazione rispetto a quella basata su username/password è nettamente più sicura da un punto di vista di resistenza a tipi di attacco Brute-Force. Inoltre durante la creazione delle chiavi sarà richiesta, se l'utente lo desidera, l'inserimento di una password con la quale verrà criptato il file contenente la chiave privata dando così una ulteriore sicurezza in caso di furti.
Passiamo ora alla configurazione del server SSH precedentemente installato! Tutte le impostazioni del server SSH sono contenute in un file posizionato di default nel seguente path: /etc/ssh/sshd_config
Per poter editare il file di configurazione sarà necessario aprirlo con i privilegi di amministratore con il seguente comando:
sudo gedit /etc/ssh/sshd_config
il file di configurazione presenta una impostazione per riga. Tutto il testo su una riga preceduto da un carattere # è da considerarsi un commento e non verrà preso in considerazione dal server. Dopo ogni modifica al file di configurazione è necessario riavviare il server SSH perchè questo prenda in considerazione le nuove modifiche e le applichi. E' possibile riavviare il server SSH con il comando:
sudo /etc/init.d/ssh restart
Inoltre sono disponibili anche i seguenti comandi per la gestione del server:
sudo /etc/init.d/ssh start
per avviare il server (se non è già avviato) mentre per arrestarlo il comando sarà:
sudo /etc/init.d/ssh stop
Ora è giunto il momento di dare uno sguardo alle principali configurazioni del server..
Numero di porta Indica il numero di porta sul quale il server SSH resterà in attesa per le connessioni ed è deciso dalla seguente riga:
Port 22
dove per default il valore della porta è 22 ma può essere modificato in caso di necessità.
Abilitare l'autenticazione attraverso le chiavi Se si desidera abilitare l'autenticazione attraverso l'utilizzo di chiavi pubbliche/private è necessario togliere dal commento o aggiungere (se non sono presenti) le seguenti direttive:
PubkeyAuthentication yes RSAAuthentication yes
a questo punto sarà possibile accettare connessioni da client che desiderano accedere tramite l'autenticazione basata su chiavi.
Disabilitare autenticazione username/password Una utilissima funzionalità è quella di poter decidere di disabilitare il sistema di autenticazione username/password per evitare di esporre il server a tentativi di attacchi Brute-Force. E' possibile fare ciò modificando la linea:
#PasswordAuthentication yes
togliendo il commento e cambiando da 'yes' a 'no':
PasswordAuthentication no
Disattivazione accesso amministratore E' possibile limitare o addirittura impedire l'accesso tramite l'utente root per evitare possibili problemi di sicurezza. La direttiva che permette il controllo di questa funzionalità è:
PermitRootLogin yes
che permette l'accesso all'utente root, modificandola in:
PermitRootLogin no
il server negherà totalmente l'accesso dell'utente root. Infine è disponibile una interessante direttiva:
PermitRootLogin without-password
dove 'without-password' non significa che l'utente 'root' potrà collegarsi senza usare la password ma bensì che per all'utente root non sarà consentito il login attraverso il sistema di autenticazione username/password ma bensì dovrà utilizzare il sistema di autenticazione attraverso chiave!
Attenzione: se si disabilità questo sistema di autenticazione e non si ha abilitato il sistema di autenticazione basato su chiavi (oppure si perdono i file con le chiavi) si rimarrà bloccati fuori dal server senza la possibilità di potersi connettere (se non fisicamente) alla postazione.
Consentire/Negare accesso agli utenti E' possibile anche consentirel'accesso a determinati username, utilizzando la direttiva:
AllowUsers utente1 utente2
dove i nomi degli utenti sono separati da uno spazio bianco, mentre allo stesso modo si può negare all'accesso a determinati utenti con la direttiva:
DenyUsers utente5 utente7
Nota: non dimenticarsi di riavviare il server SSH, come già spiegato, ogni volta che si applicano dei cambiamenti alle impostazioni e si desidera applicarle.
Per tutte le informazioni dettagliate sulle funzionalità del file di configurazione SSH è possibile utilizzare il comando:
man sshd_config
|
|
Ultimo aggiornamento Domenica 10 Maggio 2009 13:34 |