lunedì 3 agosto 2009

Configurare SSH

Bentrovati! Oggi vi parlo di come configurare SSH!


Bene se avete una Debian tra le mani (tutti avete installato Debian vero?) potete tranquillamente installare SSH digitando da root aptitude update e aptitude install ssh che provvederà ad installare automaticamente il daemon SSH che fungerà da Server.


Adesso che è installato i troviamo i files di configurazione in /etc/ssh e quello che dobbiamo modificare per configurare in modo corretto il nostro Server SSH è /etc/ssh/sshd_config , quindi apriamolo col nostro editor di testo preferito e cominciamo a spulciarlo.



Port 22


Di default viene aperta la porta 22 per questioni di sicurezza e per evitare si essere trovata da un portscan occasionale è consigliato cambiarla possibilmente scegliendone una superiore alla 1024, in quanto fino alla 1024 sono riservate per servizi noti.


ListenAddress 0.0.0.0


Di default è 0.0.0.0 che indica l'ascolto in tutte le interfacce di rete configurate e tutti gli indirizzi IP associati, pertanto è utile cambiarlo con l'indirizzoIP specifico nel quale ci si aspettano connessioni


HostKey /etc/ssh/ssh_host_key


Specifica la posizione che contiene le chiavi private di un host e può essere lasciato il valore di default. Possono essere specificati più files ripetendo HostKey e cambiando il file di destinazione


Protocol 2


Indica il protocollo da utilizzare. Possono essere indicati 1 o 2 o entrambi separandoli con la virgola (1,2), tuttavia non è consigliato permettere connessioni con il protocollo 1


UsePrivilegeSeparation yes


yes è il valore di default, e indica che per ogni login viene creato un processo figlio con i privilegi dell'user che ha effettuato il login per evitare tecniche di "privilege escalation" basati sui privilegi dei processi


ServerKeyBits 1024


Dice quanti bit devono essere utilizzati perla creazione della chiave di criptazione della connessione. Si preferisce di solito utilizzare 1024 che è un buon compromesso tra velocità ed efficacia di crittazione.


LoginGraceTime 120


Rappresenta il tempo massimo in secondi che intercorre tra il momento in cui viene stabilita la connessione e quello in cui avviene un login con successo.


KeyRegenerationInterval 3600


Rappresenta il massimo tempo in secondi che il demone aspetta prima di rigenerare una nuova chiave per la connessione corrente e non deve essere eccessivamente elevato per evitare il cracking della chiave utilizzata nella sessione corrente


PermitRootLogin no


In genere di default è impostato su yes ma è altamente sconsigliato permettere ad un utente di effettuare il login remoto come root; è molto più sicuro far si che si effettui un login come normal user e da li guadagnare i permessi di root.


IgnoreRhosts yes


Dichiara di ignorare i files rhosts e shosts per l'autenticazione.


IgnoreUserKnownHosts yes


Dice al daemon di ignorare la lista degli hosts conosciuti presente in $HOME/.ssh/known_hosts durante la RhostsRSAAuthentication.


StrictModes yes


Questo serve per proteggere i files nelle home degli user che di solito vengono lasciati "world-writable".


X11Forwarding no


Ci permette di disabilitare o abilitare il forwarding su X11. Se non abbiamo una GUI installata nel server (di solito è così possiamo settarlo su no.


PrintMotd yes


Abilita la visualizzazione di /etc/motd a login avvenuto.


IgnoreUserKnownHost yes


Si ignora l'utilizzo si ~/.ssh/known_host e per il login ci si basa unicamente su user e password

SyslogFacility AUTH


LogLevel INFO


Ci indica il grado di prolissità dei log. I valori possibili sono QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3. Utilizzare un flag di DEBUG viola la privacy degli utenti pertanto non è consigliato


RSAAuthentication yes


Indica se sono concessi i login con solo RSA


PasswordAuthentication yes


Indica se utilizzare come metodo di accesso le password o meno


PermitEmptyPasswords no


Non permette i login senza user o senza password


AllowUsers user1 user2


Permette il login via SSH solo agli user specificati. Da notare che gli user sono separati da spazi vuoti, quindi niente virgole o punto o altro


AllowGroups group1 group2


Permette il login via SSH solo ai gruppi specificati. Da notare che i gruppi sono separati da spazi vuoti, quindi niente virgole o punto o altro


Bene, fatta questa panoramica abbastanza ampia sul file id configurazione del demone SSH vi propongo la configurazione del mio server.


# What ports, IPs and protocols we listen for

Port 1001

# Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::

ListenAddress 192.168.1.4

Protocol 2

# HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

#Privilege Separation is turned on for security

UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600

ServerKeyBits 1024

# Logging

SyslogFacility AUTH

LogLevel INFO

# Authentication:

LoginGraceTime 120

PermitRootLogin no

StrictModes yes

RSAAuthentication yes

PubkeyAuthentication yes

#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh_known_hosts

RhostsRSAAuthentication no

# similar for protocol version 2

HostbasedAuthentication no

# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication

IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)

PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with

# some PAM modules and threads)

ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords

PasswordAuthentication yes

# Kerberos options

#KerberosAuthentication no

#KerberosGetAFSToken no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

# GSSAPI options

#GSSAPIAuthentication no

#GSSAPICleanupCredentials yes

X11Forwarding no

X11DisplayOffset 10

PrintMotd no

PrintLastLog yes

TCPKeepAlive yes

#UseLogin no

#MaxStartups 10:30:60

#Banner /etc/issue.net

# Allow client to pass locale environment variables

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

AllowUsers art3k

AllowGroups chrooted

Nessun commento:

Posta un commento