[[ssh]]
 

SSH

Configurare un server con OpenSSH

Nota: questo procedimento è stato realizzato su una Debian Lenny usando OpenSSH v5.1. Il solo pacchetto da scaricare è openssh-server (se state usando APT), altrimenti potrete trovarlo su http://openssh.com

Avvio/riavvio del server

Per far partire il server digitate sul terminale, da superutente
# /etc/init.d/sshd start
Per fermarlo o riavviarlo sostituire start rispettivamente con stop e restart.

Configurazione

Il file di configurazione si trova in /etc/ssh/sshd_config.
Ecco le opzioni più importanti che potreste voler cambiare:

Port N # qui specificherete la porta su cui ascoltare, di default la 22
AllowUsers user1 user2 … # gli utenti che potranno connettersi al vostro server
AllowGroups group1 group2 … # i gruppi di cui devono far parte per potersi connettere
PermitRootLogin no # decide se permettere ad un utente con privilegi di root di accedere direttamente. È consigliato scegliere no per la sicurezza.

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile %h/.ssh/authorized_keys
Qui dovrete decidere quale tipo di autenticazione usare, se via password o via chiave pubblica. Nel caso della seconda dovete specificare il path del file con le chiavi pubbliche degli utenti (il suo uso sarà spiegato dopo). Il carattere %h indica la home dell'utente che si sta connettendo.

PermitEmptyPasswords no # possibilità di eseguire login anonimi
Banner /home/path/banner # un banner da visualizzare appena ci si connette (file di testo).

Dopo aver aggiustato il file siete praticamente pronti per far girare il vostro server.

Aggiunta nuovi utenti

Bene, ora che avete il server è ora di “aprirlo” ai vostri utenti. Ecco il procedimento per permettere ad un utente di connettersi.

Aggiungere l'utente

Questo è possibile usando l'utility adduser. L'opzione –ingroup specifica il gruppo in cui va inserito (se mancante, il sistema creerà un nuovo gruppo con lo stesso nome utente). Altrimenti potrete crearlo a parte con addgroup.
Allo stesso modo esistono deluser e delgroup per l'operazione inversa.
Nota: se avete scelto l'autenticazione via password, questa che sceglierete voi sarà la password di accesso. Altrimenti servirà solo per eventuali usi di sudo o su.

Permesso

Nel file di configurazione, aggiungere l'utente e il gruppo di cui fa parte ad AllowUsers e AllowGroups separandoli con uno spazio bianco. Notate che i valori di queste due entry sono necessari entrambi: se l'utente è presente in AllowUsers ma il gruppo di cui fa parte non è fra gli AllowGroups, l'accesso fallirà.

Key pair

A questo punto l'utente è pronto per autenticarsi via password. Per le chiavi pubbliche invece, l'utente deve disporre di una coppia di chiavi RSA, del numero di bit specificati dall'opzione ServerKeyBits in sshd_config (in genere 1024). Una nuova coppia si può creare su Linux con
$ ssh-keygen -t rsa -b 1024
Il file id_rsa.pub conterrà la chiave pubblica.
Se i vostri utenti usano Windows possono usare l'utility puttygen per generare le chiavi.

Authorized_keys

Andate nella home dell'utente, alla directory dove avete posto authorized_keys. Create il file ed inserite le chiavi pubbliche delle persone che volete far connettere come quell'utente. Ad esempio, mettiamo di avere i tre utenti fire foo e bar, corrispondenti a Lucia Anna e Stefano. Voglio che sia Lucia e Anna possano connettersi come foo, mentre Stefano deve potersi connettere come fire e bar. Quindi nell'authorized_keys di foo metterò le chiavi pubbliche di Lucia e Anna, mentre nel file di bar e fire metterò la chiave pubblica di Stefano.

Tunneling ssh

Ecco la sintassi per creare un tunnel ssh, utile per aggirare firewall e proxy aziendali:

ssh -L portalocale:hostremoto:portahost user@host

in questo modo connettendoci a localhost:portalocale il traffico verrà girato su hostremoto:portahost , ma ciò è valido solo per gli utenti locali, per rendere il tunnel accessibile anche da altri host aggiungere l'opzione -g

Tips & Tricks: lato server

Se il server non accetta connessioni dall'esterno

Se il server non accetta connessioni da nessuna macchina, controllare i files: /etc/hosts.allow e /etc/hosts.deny

Inibire l'accesso tramite password

Se voglio inibire l'accesso tramite password agli utenti (magari avendo abilitato l'autenticazione tramite chiave ssh) devo aggiungere nel file sshd_config (normalmente dentro /etc) la seguente linea:

PassworAuthentication no

Se un server ha cambiato la RSA Fingerprint, e non riusciamo a connetterci

Se voglio cambiare la RSA Fingerprint del server devo eliminare i 2 files in /etc/ssh/ssh_host_rsa_key e /etc/ssh/ssh_host_rsa_key.pub e riavviare il demone ssh.

ssh-vulnkey

Grazie a questo tool possiamo sapere se il nostro utente ha memorizzate delle chiavi COMPROMESSE, si lancia semplicemente con il comando:

ssh-vulnkey

normalmente verranno visualizzate solo le chiavi compromesse, se vogliamo le informazoni dettagliate su tutte le chiavi basta dare:

ssh-vulnkey -v

Lato Client

Copiare la mia chiave pubblica su macchina remota

Per copiare la mia chiave pubblica su un server remoto (al quale ho un accesso):

ssh-copy-id -i ~/.ssh/id_rsa.pub username@macchina.remota 

Creare una chiave RSA per ssh

Si usa il comando:

ssh-keygen -t rsa

Verranno generati due files nella cartella ~/.ssh chiamati: id_rsa e id_rsa.pub. id_rsa e' la chiave privata, che quindi non andra' data a nessuno, mentre id_rsa.pub e' la chiave pubblica, e andra usata laddove viene richiesto un accesso tramite chiavi.

 
ssh.txt · Last modified: 2008/11/04 16:01 by emj
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki