OpenSSH: file di configurazione: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Aggiunto template autori)
 
(31 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
==OpenSSH: configurazione di base==
{{OpenSSH}}
In Debian potete tranquillamente installare [[SSH]] digitando da [[root]]:
 
<pre>
{{Warningbox|Ogni qualvolta si apportano modifiche ai file di configurazione ''/etc/ssh/ssh_config'' e ''/etc/ssh/sshd_config'' è necessario riavviare il demone ssh per renderle operative.}}
# aptitude update
 
# aptitude install ssh openssh-server
== ssh ==
</pre>
 
Aptitude provvederà ad installare automaticamente il daemon SSH.
Si ricordi che come indicato nella documentazione la priorità nella dichiarazione dei diversi parametri è la seguente:
I file di configurazione di openSSH si trovano in <code>/etc/ssh</code>. Per configurare in modo corretto il nostro Server SSH il file da modificare è <code>'''/etc/ssh/sshd_config'''</code>.<br/>
# riga di comando;
# file <code>~/.ssh/config</code>.
# file <code>/etc/ssh/ssh_config</code>.
 
{{Box|Nota|Per quanto appena scritto non c'è modo di imporre una configurazione di SSH tramite <code>/etc/ssh/ssh_config</code> agli utenti, poiché questi potranno sempre dichiarare dei valori differenti per i diversi parametri o da riga di comando o creandosi un file <code>~/.ssh/config</code>.}}
 
{|
|style="width:20em;vertical-align:top;"|''HostbasedAuthentication no<br/>EnableSSHKeysign no''
|Questi parametri permettono di abilitare l'autenticazione di tipo ''hostbased'' se impostati entrambi a ''yes''. Naturalmente è necessario che anche il server SSH sia configurato per supportare tale modalità.
|-
|style="width:20em;vertical-align:top;"|''PasswordAuthentication yes''
|Abilita o disabilita la possibilita del client di autenticarsi tramite l'uso di password, anche se il server supporta tale modalità.
|-
|style="width:20em;vertical-align:top;"|''Port <Numero porta d'ascolto>''
|Il valore di questa direttiva indica la porta che il client SSH userà in assenza di diversa indicazione da parte dell'utente tramite il parametro ''-p''. Il valore predefinito è 22.
|-
|style="width:20em;vertical-align:top;"|''PubkeyAuthentication yes''
||Abilita o disabilita la possibilita del client di autenticarsi tramite l'uso di chiave pubblica. Se impostato su no il client non potrà usare questa modalità anche se il server la supporta. Parametro valido solo per la versione 2 di SSH.
|}
 
== sshd ==
 
{{Box | Nota |Dato che nel file <code>/etc/ssh/sshd_config</code> ci potrebbero essere dati sensibili (come la porta d'ascolto del Server SSH), forse, si vorrebbe proteggerlo dagli utenti locali. Quindi, basta che, dopo averlo salvato, scriviate da root <code>chmod 600 /etc/ssh/sshd_config</code>.}}
 
La sua struttura è molto intuitiva, però potrebbe valer la pena osservare alcune opzioni:
La sua struttura è molto intuitiva, però potrebbe valer la pena osservare alcune opzioni:
* <code>'''Port 22'''</code>
 
Di default viene aperta la porta 22. Però per questioni di sicurezza e per evitare che il nostro server SSH possa essere trovato da un portscan occasionale è consigliato cambiarla, possibilmente scegliendone una superiore alla 1024, poiché le porte fino alla 1024 sono riservate per servizi noti.
{|
* <code>'''ListenAddress 0.0.0.0'''</code>
|style="width:20em;vertical-align:top;"|''AllowUsers user1 user2''
Di default è 0.0.0.0 e indica che il [[demone]] SSH è in ascolto su tutte le interfacce di rete configurate e tutti gli indirizzi IP associati. Potrebbe essere utile cambiarlo con l’indirizzo IP specifico sul quale ci si aspettiamo connessioni SSH
|Permette il login via SSH solo agli user specificati. Da notare che gli user sono separati da spazi vuoti, quindi niente virgole o punti o altro
* <code>'''HostKey /etc/ssh/ssh_host_key'''</code>
|-
Specifica la posizione che contiene le chiavi private di un host e può essere lasciato il valore di default. Possono essere specificati più file ripetendo HostKey e cambiando il file di destinazione
|style="width:20em;vertical-align:top;"|''AllowGroups group1 group2''
* <code>'''Protocol 2'''</code>
|Permette il login via SSH solo ai gruppi specificati. Da notare che i gruppi sono separati da spazi vuoti, quindi niente virgole o punti o altro
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
|-
* <code>'''UsePrivilegeSeparation yes'''</code>
|style="width:20em;vertical-align:top;"|''AuthorizedKeysFile <File chiavi pubbliche>''
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
|Il valore di questa keyword è il nome del file in cui vengono memorizzate le chiavi pubbliche degli utenti remoti che servono per verificare se una di queste derivi dalla chiave privata memorizzata dal client SSH che cerca di effettuare una connessione SSH utilizzando un''''autenticazione a chiave pubblica'''. Logicamente, tale keyword viene considerata soltanto se la keyword ''PubkeyAuthentication'' è impostata su ''yes''. Il valore di tale keyword deve contenere il path assoluto o relativo di questo file compreso il nome stesso (il valore di default è <code>.ssh/authorized_keys</code>). Normalmente, il path assoluto si usa quando il gestore del Server vuole tenere sott'occhio un unico file (che può anche essere memorizzato, per motivi di sicurezza, su un'altra macchina); mentre il path relativo alla home directory di ogni utente remoto viene, normalmente, usato per far sì che ogni utente gestisca lui stesso il file mettendo una o più delle sue chiavi pubbliche.
* <code>'''ServerKeyBits 1024'''</code>
|-
Dice quanti bit devono essere utilizzati per la creazione della chiave di criptazione della connessione. Si preferisce di solito utilizzare 1024 che è un buon compromesso tra velocità ed efficacia di crittazione.
|style="width:20em;vertical-align:top;"|''KbdInteractiveAuthentication no''
* <code>'''LoginGraceTime 120'''</code>
|Il valore di questa keyword non permette l'autenticazione mediante richieste-risposte ben precise fra il server ed il client SSH. Alias oggi deprecato: ''ChallengeResponseAuthentication''.
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.
|-
* <code>'''KeyRegenerationInterval 3600'''</code>
|style="width:20em;vertical-align:top;"|''Ciphers aes256-cbc,aes256-ctr,3des-cbc''
Rappresenta il massimo tempo in secondi che il demone aspetta prima di rigenerare una nuova chiave per la connessione corrente. Non deve essere eccessivamente elevato per evitare il cracking della chiave utilizzata nella sessione corrente
|Il valore di questa keyword permette di scegliere quali algoritmi simmetrici verranno usati per cifrare i dati trasferiti. Siccome l'utente del client SSH o il client stesso possono decidere quale sarà l'algoritmo simmetrico da utilizzare per l'intera sessione di lavoro, conviene "obbligare" l'utente o il client SSH a scegliere gli algoritmi che garantiscono la massima sicurezza con un occhio di riguardo alla velocità di trasferimento dei dati fra il server ed il client (e viceversa).
* <code>'''PermitRootLogin no'''</code>
|-
In genere di default è impostato su yes, ma è altamente sconsigliato permettere ad un utente di effettuare il login remoto come root; è molto più sicuro fare in modo che si effettui un login come normal user per poi guadagnare i permessi di root.
|style="width:20em;vertical-align:top;"|''ClientAliveInterval 60''
* <code>'''IgnoreRhosts yes'''</code>
|Il valore di questa keyword imposta il numero di secondi dopo i quali, se da un client SSH remoto non viene inviato al server SSH alcun dato, tale server invia un messaggio di verifica, nel canale criptato, dell'ancora esistenza del client (detto alive message) ed aspetta una risposta. Se tale risposta non arriva, interviene la keyword ''ClientAliveCountMax''.
Dichiara di ignorare i file <code>rhosts</code> e <code>shosts</code> per l’autenticazione.
|-
* <code>'''IgnoreUserKnownHosts yes'''</code>
|style="width:20em;vertical-align:top;"|''ClientAliveCountMax 3''
Dice al daemon di ignorare la lista degli hosts conosciuti presente in <code>$HOME/.ssh/known_hosts</code> durante la RhostsRSAAuthentication.
|Il valore di questa keyword indica quante volte mandare un alive message, sempre nel canale criptato, al client SSH che non risponde. Se, dopo l'ultima richiesta "di vita", il client SSH non risponde, il server SSH termina la connessione con quel client. Quindi, impostando correttamente i valori delle keyword ''ClientAliveInterval'' e ''ClientAliveCountMax'' si evita il sovraccarico del vostro server (con un risparmio delle sue risposte) impostando '''una disconnessione automatica''' del client da parte del Server ogni 180 (60&middot;3) secondi.
* <code>'''StrictModes yes'''</code>
|-
Serve per proteggere i file nelle home degli user che di solito vengono lasciati “world-writable”.
|style="width:20em;vertical-align:top;"|''GSSAPIAuthentication no''
* <code>'''X11Forwarding no'''</code>
|Il valore di questa keyword non permette l'autenticazione utilizzando l'API GSSAPI.
Permette di disabilitare o abilitare il forwarding su X11. Se non abbiamo una GUI installata nel server (di solito è così) possiamo settarlo su ''no''.
|-
* <code>'''PrintMotd yes'''</code>
|style="width:20em;vertical-align:top;"|''HostbasedAuthentication no''
Abilita la visualizzazione di <code>/etc/motd</code> a login avvenuto.
|Questo parametro permette di abilitare l'autenticazione di tipo ''hostbased'' se impostato a ''yes''. Si ricordi che oltre alla modifica di questo parametro sono necessarie altre operazioni al fine di rendere effettivamente operativa questa modalità.
* <code>'''IgnoreUserKnownHost yes'''</code>
|-
Ignora l’utilizzo di <code>~/.ssh/known_host</code> e per il login si basa unicamente su user e password
|style="width:20em;vertical-align:top;"|''HostKey /etc/ssh/ssh_host_key''
* <code>'''SyslogFacility AUTH'''</code>
|Specifica la posizione che contiene le chiavi private di un host e può essere lasciato il valore di default. Possono essere specificati più file ripetendo HostKey e cambiando il file di destinazione
* <code>'''LogLevel INFO'''</code>
|-
Indicano 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 e pertanto non è consigliato
|style="width:20em;vertical-align:top;"|''IgnoreRhosts yes''
* <code>'''RSAAuthentication yes'''</code>
|Dichiara di ignorare i file <code>rhosts</code> e <code>shosts</code> per l’autenticazione.
Indica se sono concessi i login con solo RSA
|-
* <code>'''PasswordAuthentication yes'''</code>
|style="width:20em;vertical-align:top;"|''IgnoreUserKnownHosts yes''
Indica se utilizzare come metodo di accesso le password o meno
|Dice al daemon di ignorare la lista degli hosts conosciuti presente in <code>$HOME/.ssh/known_hosts</code> durante la RhostsRSAAuthentication.
* <code>'''PermitEmptyPasswords no'''</code>
|-
Non permette i login senza user o senza password
|style="width:20em;vertical-align:top;"|''IgnoreUserKnownHost yes''
* <code>'''AllowUsers user1 user2'''</code>
|Ignora l’utilizzo di <code>~/.ssh/known_host</code> e per il login si basa unicamente su user e password
Permette il login via SSH solo agli user specificati. Da notare che gli user sono separati da spazi vuoti, quindi niente virgole o punti o altro
|-
* <code>'''AllowGroups group1 group2'''</code>
|style="width:20em;vertical-align:top;"|''KerberosAuthentication no''
Permette il login via SSH solo ai gruppi specificati. Da notare che i gruppi sono separati da spazi vuoti, quindi niente virgole o punti o altro
|Il valore di questa keyword evita che la password fornita mediante l'autenticazione tramite password sia convalidata dal KDC (Kerberos Key Distribution Center).
<br/>
|-
<br/>
|style="width:20em;vertical-align:top;"|''KeyRegenerationInterval 3600''
Guida basata sull'originale presente sul sito: [http://www.oscene.net/site/sysadmin/networking/howto-configurare-nel-dettaglio-ssh Oscene.net]
|Rappresenta il massimo tempo in secondi che il demone aspetta prima di rigenerare una nuova chiave per la connessione corrente. Non deve essere eccessivamente elevato per evitare il cracking della chiave utilizzata nella sessione corrente
|-
|style="width:20em;vertical-align:top;"|''ListenAddress 0.0.0.0''
|Di default è 0.0.0.0 e indica che il [[demone]] SSH è in ascolto su tutte le interfacce di rete configurate e tutti gli indirizzi IP associati. Potrebbe essere utile cambiarlo con l’indirizzo IP specifico sul quale ci si aspettiamo connessioni SSH
|-
|style="width:20em;vertical-align:top;"|''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.
|-
|style="width:20em;vertical-align:top;"|''PasswordAuthentication yes''
|Il valore di questa keyword permette l'autenticazione mediante un semplice Login (Username e Password) da remoto. È consigliabile impostare su ''no'' per le macchine che devono essere accessibili da internet, '''ma NON prima''' di aver verificato che l'autenticazione alternativa, ad esempio tramite chiave pubblica, funzioni correttamente.
|-
|style="width:20em;vertical-align:top;"|''PermitEmptyPasswords no''
|Il valore di questa keyword evita che l'autenticazione mediante un semplice Login remoto avvenga senza la richiesta di una password se la keyword ''PasswordAuthentication'' è impostata sul ''yes''.
|-
|style="width:20em;vertical-align:top;"|''PermitRootLogin no''
|Il valore di questa keyword evita l'accesso come root da remoto con '''una sola''' autenticazione. Ciò garantisce maggior sicurezza alla vostra Linux-Box poiché, se si volesse accedere come root, sarebbe necessario prima autenticarsi come utente normale per poi autenticarsi come root tramite il comando ''su''. In altre parole, con questa keyword impostata su '''no''', chi volesse accedere come root da remoto, dovrebbe autenticarsi '''due''' volte anziché '''una'''.
|-
|style="width:20em;vertical-align:top;"|''PrintMotd yes''
|Abilita la visualizzazione di <code>/etc/motd</code> a login avvenuto.
|-
|style="width:20em;vertical-align:top;"|''Port <Numero porta d'ascolto>''
|Il valore di questa keyword indica la porta d'ascolto dell'OpenSSH Server, il cui valore predefinito è 22. Per questioni di sicurezza e per evitare che il nostro server SSH possa essere trovato da un portscan occasionale è consigliato cambiarla, scegliendone una superiore alla 1024 che non sia già usato da altri [http://www.iana.org/assignments/port-numbers servizi locali o di Internet], poiché le porte fino alla 1024 sono riservate per servizi noti.
|-
|style="width:20em;vertical-align:top;"|''Protocol 2''
|Indica il protocollo da utilizzare. Possono essere indicati 1 o 2 o entrambi, separandoli con la virgola (1,2), tuttavia per motivi di sicurezza non è consigliato permettere connessioni con il protocollo 1.
|-
|style="width:20em;vertical-align:top;"|''PubkeyAuthentication yes''
|Il valore di questa keyword permette l'autenticazione mediante una coppia di chiavi, una '''pubblica''', memorizzata sul server, ed una '''privata''' salvata sul client. Parametro valido solo per la versione 2 di SSH.
|-
|style="width:20em;vertical-align:top;"|''RSAAuthentication yes''
|Indica se sono concessi i login con solo RSA (valido solo per la versione 1.5 del protocollo).
|-
|style="width:20em;vertical-align:top;"|''ServerKeyBits 1024''
|Dice quanti bit devono essere utilizzati per la creazione della chiave di criptazione della connessione. Si preferisce di solito utilizzare 1024 che è un buon compromesso tra velocità ed efficacia di crittazione.
|-
|style="width:20em;vertical-align:top;"|''StrictModes yes''
|Serve per proteggere i file nelle home degli user che di solito vengono lasciati “world-writable”.
|-
|style="width:20em;vertical-align:top;"|''Subsystem subname subcommand''
|Il valore di questa keyword permette di configurare un sottosistema esterno, come un server FTP, da avviare insieme al servizio SSH. Di base nessun sistema è indicato, tuttavia se l'utente lo desiderasse potrebbe dichiarare qualcosa di simile a <code>Subsystem sftp /usr/lib/openssh/sftp-server</code>.
|-
|style="width:20em;vertical-align:top;"|''SyslogFacility AUTH''<br/>''LogLevel INFO''
|Indicano 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 e pertanto non è consigliato
|-
|style="width:20em;vertical-align:top;"|''TCPKeepAlive no''
|Il valore di questa keyword non permette di mandare dei '''TCP keepalive message''' per verificare se la rete è caduta o se il client SSH remoto è andato in crash. Poiché i TCP keepalive message non vengono mandati nel canale criptato e possono contenere delle informazioni sensibili, si preferisce disabilitare questa tecnica di analisi sullo stato delle connessioni SSH usufruendo delle keyword ''ClientAliveInterval'' e ''ClientAliveCountMax'' per eliminare le connessioni SSH non più utilizzate.
|-
|style="width:20em;vertical-align:top;"|''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
|-
|style="width:20em;vertical-align:top;"|''X11Forwarding no''
|Permette di disabilitare o abilitare il forwarding su X11. Se non abbiamo una GUI installata nel server (di solito è così) possiamo settarlo su ''no''.
|}
 
== Approfondimenti ==
=== Manpages ===
* <code>man ssh_config</code> [https://manpages.debian.org/bookworm/openssh-client/ssh_config.5.en.html HTML]
* <code>man sshd_config</code> [https://manpages.debian.org/bookworm/openssh-server/sshd_config.5.en.html HTML]


{{Autori
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 17:49, 22 dic 2009 (CET)
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 17:49, 22 dic 2009 (CET)
|Estesa_da =
:[[Utente:Nydebianized|Nydebianized]] 12:14, 12 set 2015 (CEST)
:[[Utente:Wtf|Wtf]]
|Verificata_da=
:[[Utente:Wtf|Wtf]]
:[[Utente:Oscarandrea|Oscarandrea]]
|Numero_revisori = 1
}}
}}


[[Categoria:SSH server e amministrazione remota]]
[[Categoria:SSH server e amministrazione remota]]
[[Categoria:Shell]]
[[Categoria:Shell]]

Versione attuale delle 16:48, 11 lug 2024

OpenSSH

Sommario


Warning.png ATTENZIONE
Ogni qualvolta si apportano modifiche ai file di configurazione /etc/ssh/ssh_config e /etc/ssh/sshd_config è necessario riavviare il demone ssh per renderle operative.


ssh

Si ricordi che come indicato nella documentazione la priorità nella dichiarazione dei diversi parametri è la seguente:

  1. riga di comando;
  2. file ~/.ssh/config.
  3. file /etc/ssh/ssh_config.
Info.png Nota
Per quanto appena scritto non c'è modo di imporre una configurazione di SSH tramite /etc/ssh/ssh_config agli utenti, poiché questi potranno sempre dichiarare dei valori differenti per i diversi parametri o da riga di comando o creandosi un file ~/.ssh/config.


HostbasedAuthentication no
EnableSSHKeysign no
Questi parametri permettono di abilitare l'autenticazione di tipo hostbased se impostati entrambi a yes. Naturalmente è necessario che anche il server SSH sia configurato per supportare tale modalità.
PasswordAuthentication yes Abilita o disabilita la possibilita del client di autenticarsi tramite l'uso di password, anche se il server supporta tale modalità.
Port <Numero porta d'ascolto> Il valore di questa direttiva indica la porta che il client SSH userà in assenza di diversa indicazione da parte dell'utente tramite il parametro -p. Il valore predefinito è 22.
PubkeyAuthentication yes Abilita o disabilita la possibilita del client di autenticarsi tramite l'uso di chiave pubblica. Se impostato su no il client non potrà usare questa modalità anche se il server la supporta. Parametro valido solo per la versione 2 di SSH.

sshd

Info.png Nota
Dato che nel file /etc/ssh/sshd_config ci potrebbero essere dati sensibili (come la porta d'ascolto del Server SSH), forse, si vorrebbe proteggerlo dagli utenti locali. Quindi, basta che, dopo averlo salvato, scriviate da root chmod 600 /etc/ssh/sshd_config.


La sua struttura è molto intuitiva, però potrebbe valer la pena osservare alcune opzioni:

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 punti 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 punti o altro
AuthorizedKeysFile <File chiavi pubbliche> Il valore di questa keyword è il nome del file in cui vengono memorizzate le chiavi pubbliche degli utenti remoti che servono per verificare se una di queste derivi dalla chiave privata memorizzata dal client SSH che cerca di effettuare una connessione SSH utilizzando un'autenticazione a chiave pubblica. Logicamente, tale keyword viene considerata soltanto se la keyword PubkeyAuthentication è impostata su yes. Il valore di tale keyword deve contenere il path assoluto o relativo di questo file compreso il nome stesso (il valore di default è .ssh/authorized_keys). Normalmente, il path assoluto si usa quando il gestore del Server vuole tenere sott'occhio un unico file (che può anche essere memorizzato, per motivi di sicurezza, su un'altra macchina); mentre il path relativo alla home directory di ogni utente remoto viene, normalmente, usato per far sì che ogni utente gestisca lui stesso il file mettendo una o più delle sue chiavi pubbliche.
KbdInteractiveAuthentication no Il valore di questa keyword non permette l'autenticazione mediante richieste-risposte ben precise fra il server ed il client SSH. Alias oggi deprecato: ChallengeResponseAuthentication.
Ciphers aes256-cbc,aes256-ctr,3des-cbc Il valore di questa keyword permette di scegliere quali algoritmi simmetrici verranno usati per cifrare i dati trasferiti. Siccome l'utente del client SSH o il client stesso possono decidere quale sarà l'algoritmo simmetrico da utilizzare per l'intera sessione di lavoro, conviene "obbligare" l'utente o il client SSH a scegliere gli algoritmi che garantiscono la massima sicurezza con un occhio di riguardo alla velocità di trasferimento dei dati fra il server ed il client (e viceversa).
ClientAliveInterval 60 Il valore di questa keyword imposta il numero di secondi dopo i quali, se da un client SSH remoto non viene inviato al server SSH alcun dato, tale server invia un messaggio di verifica, nel canale criptato, dell'ancora esistenza del client (detto alive message) ed aspetta una risposta. Se tale risposta non arriva, interviene la keyword ClientAliveCountMax.
ClientAliveCountMax 3 Il valore di questa keyword indica quante volte mandare un alive message, sempre nel canale criptato, al client SSH che non risponde. Se, dopo l'ultima richiesta "di vita", il client SSH non risponde, il server SSH termina la connessione con quel client. Quindi, impostando correttamente i valori delle keyword ClientAliveInterval e ClientAliveCountMax si evita il sovraccarico del vostro server (con un risparmio delle sue risposte) impostando una disconnessione automatica del client da parte del Server ogni 180 (60·3) secondi.
GSSAPIAuthentication no Il valore di questa keyword non permette l'autenticazione utilizzando l'API GSSAPI.
HostbasedAuthentication no Questo parametro permette di abilitare l'autenticazione di tipo hostbased se impostato a yes. Si ricordi che oltre alla modifica di questo parametro sono necessarie altre operazioni al fine di rendere effettivamente operativa questa modalità.
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ù file ripetendo HostKey e cambiando il file di destinazione
IgnoreRhosts yes Dichiara di ignorare i file 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.
IgnoreUserKnownHost yes Ignora l’utilizzo di ~/.ssh/known_host e per il login si basa unicamente su user e password
KerberosAuthentication no Il valore di questa keyword evita che la password fornita mediante l'autenticazione tramite password sia convalidata dal KDC (Kerberos Key Distribution Center).
KeyRegenerationInterval 3600 Rappresenta il massimo tempo in secondi che il demone aspetta prima di rigenerare una nuova chiave per la connessione corrente. Non deve essere eccessivamente elevato per evitare il cracking della chiave utilizzata nella sessione corrente
ListenAddress 0.0.0.0 Di default è 0.0.0.0 e indica che il demone SSH è in ascolto su tutte le interfacce di rete configurate e tutti gli indirizzi IP associati. Potrebbe essere utile cambiarlo con l’indirizzo IP specifico sul quale ci si aspettiamo connessioni SSH
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.
PasswordAuthentication yes Il valore di questa keyword permette l'autenticazione mediante un semplice Login (Username e Password) da remoto. È consigliabile impostare su no per le macchine che devono essere accessibili da internet, ma NON prima di aver verificato che l'autenticazione alternativa, ad esempio tramite chiave pubblica, funzioni correttamente.
PermitEmptyPasswords no Il valore di questa keyword evita che l'autenticazione mediante un semplice Login remoto avvenga senza la richiesta di una password se la keyword PasswordAuthentication è impostata sul yes.
PermitRootLogin no Il valore di questa keyword evita l'accesso come root da remoto con una sola autenticazione. Ciò garantisce maggior sicurezza alla vostra Linux-Box poiché, se si volesse accedere come root, sarebbe necessario prima autenticarsi come utente normale per poi autenticarsi come root tramite il comando su. In altre parole, con questa keyword impostata su no, chi volesse accedere come root da remoto, dovrebbe autenticarsi due volte anziché una.
PrintMotd yes Abilita la visualizzazione di /etc/motd a login avvenuto.
Port <Numero porta d'ascolto> Il valore di questa keyword indica la porta d'ascolto dell'OpenSSH Server, il cui valore predefinito è 22. Per questioni di sicurezza e per evitare che il nostro server SSH possa essere trovato da un portscan occasionale è consigliato cambiarla, scegliendone una superiore alla 1024 che non sia già usato da altri servizi locali o di Internet, poiché le porte fino alla 1024 sono riservate per servizi noti.
Protocol 2 Indica il protocollo da utilizzare. Possono essere indicati 1 o 2 o entrambi, separandoli con la virgola (1,2), tuttavia per motivi di sicurezza non è consigliato permettere connessioni con il protocollo 1.
PubkeyAuthentication yes Il valore di questa keyword permette l'autenticazione mediante una coppia di chiavi, una pubblica, memorizzata sul server, ed una privata salvata sul client. Parametro valido solo per la versione 2 di SSH.
RSAAuthentication yes Indica se sono concessi i login con solo RSA (valido solo per la versione 1.5 del protocollo).
ServerKeyBits 1024 Dice quanti bit devono essere utilizzati per la creazione della chiave di criptazione della connessione. Si preferisce di solito utilizzare 1024 che è un buon compromesso tra velocità ed efficacia di crittazione.
StrictModes yes Serve per proteggere i file nelle home degli user che di solito vengono lasciati “world-writable”.
Subsystem subname subcommand Il valore di questa keyword permette di configurare un sottosistema esterno, come un server FTP, da avviare insieme al servizio SSH. Di base nessun sistema è indicato, tuttavia se l'utente lo desiderasse potrebbe dichiarare qualcosa di simile a Subsystem sftp /usr/lib/openssh/sftp-server.
SyslogFacility AUTH
LogLevel INFO
Indicano 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 e pertanto non è consigliato
TCPKeepAlive no Il valore di questa keyword non permette di mandare dei TCP keepalive message per verificare se la rete è caduta o se il client SSH remoto è andato in crash. Poiché i TCP keepalive message non vengono mandati nel canale criptato e possono contenere delle informazioni sensibili, si preferisce disabilitare questa tecnica di analisi sullo stato delle connessioni SSH usufruendo delle keyword ClientAliveInterval e ClientAliveCountMax per eliminare le connessioni SSH non più utilizzate.
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
X11Forwarding no Permette di disabilitare o abilitare il forwarding su X11. Se non abbiamo una GUI installata nel server (di solito è così) possiamo settarlo su no.

Approfondimenti

Manpages

  • man ssh_config HTML
  • man sshd_config HTML




Guida scritta da: Ferdybassi 17:49, 22 dic 2009 (CET) Swirl-auth60.png Debianized 60%
Estesa da:
Nydebianized 12:14, 12 set 2015 (CEST)
Wtf
Verificata da:
Wtf
Oscarandrea

Verificare ed estendere la guida | Cos'è una guida Debianized