La guida completa al file Sshd_Config per Linux

La Guida Completa Al File Sshd Config Per Linux



Il protocollo SSH o Secure Shell viene utilizzato per l'accesso remoto a una macchina e l'esecuzione di comandi sulla macchina remota. I dati trasferiti utilizzando il protocollo SSH sono crittografati con algoritmi speciali che rendono SSH più sicuro di Telnet. Fondamentalmente, OpenSSH è uno strumento che implementa questo protocollo.

Di cosa parleremo?

In questa guida, esploreremo i diversi aspetti del file di configurazione del server OpenSSH. Cominciamo ora.







File di configurazione OpenSSH

Esistono alcuni file principali sia per il client che per il server OpenSSH. Ha due tipi di file di configurazione:



1. File relativi al lato client: uno dei file è ssh_config. È un file di configurazione a livello di sistema. Questo file si trova in /etc/ssh/ssh_config.



L'altro file è config che è un file di configurazione specifico dell'utente che si trova in $HOME/.ssh/config.





Il programma SSH su un host prende la configurazione da questi file o tramite l'interfaccia della riga di comando. Nel caso dei file menzionati in precedenza, il file di configurazione a livello di sistema, che è ssh_config, ha la priorità rispetto al file 'config' specifico dell'utente.

2. sshd_config: è correlato al lato server. Il server OpenSSH legge questo file all'avvio.



Esplorare il sshd File di configurazione

Il file di configurazione sshd contiene molte direttive che possono anche essere personalizzate. Diamo un'occhiata al layout predefinito di questo file:

$ gatto / eccetera / ssh / sshd_config


# Questo è il file di configurazione del sistema del server sshd. Vedere

# sshd_config(5) per ulteriori informazioni.

Porta 222
ListenAddress 0.0.0.0
AscoltaIndirizzo ::
HostKey / eccetera / ssh / ssh_host_key
ServerKeyBit 768
AccediGraceTime 600

KeyRegenerationInterval 3600
ConsentiRootAccesso
IgnoraRhost
StrictModes
X11Inoltro n

AllowTcpForwarding no
consentireTTY no
X11DisplayOffset 10
StampaMod
KeepAlive
SyslogFacility AUTH

INFORMAZIONI sul livello di registro
RhostsAutenticazione n
RhostsRSAAutenticazione n
RSAAuthentication
Autenticazione password
ConsentiPasswordVuote no
CheckMail n


Qualsiasi riga che inizia con '#' viene considerata un commento. Esploriamo alcuni dei parametri dati:

1. La direttiva Port specifica un numero di porta. Questo è il numero di porta su cui il sshd ascolta le connessioni. Il valore predefinito per questa porta è 22 che è quello standard. Tuttavia, nel nostro caso, l'abbiamo modificato in 222.

Inoltre, possiamo specificare più di una direttiva Port. In questo modo, possiamo utilizzare più porte per l'ascolto sulle connessioni sshd.

2. ListenAddress contiene l'indirizzo IP per l'ascolto. L'azione predefinita è ascoltare tutti gli indirizzi IP associati al server. Si noti inoltre che la direttiva Port deve succedere alla direttiva ListenAddress.

3. Il percorso completo del file della chiave host RSA privata è specificato dalla direttiva HostKey. Nel caso precedente, il percorso è /etc/ssh/ssh_host_key .

4. La direttiva PermitRootLogin consente l'accesso root per sshd quando è impostata su yes. Dovrebbe essere impostato su no a meno che i file hosts.allow e hosts.deny non vengano utilizzati per limitare l'accesso sshd.

5. La direttiva X11Forwarding consente l'inoltro del sistema X Window se impostata su yes.

6. Quale struttura Syslog che il file sshd should use viene specificato utilizzando la direttiva SyslogFacility. Mantieni il valore predefinito così com'è.

7. Il livello di registrazione per Syslog viene specificato utilizzando la direttiva LogLevel.

Cambiare il sshd Porta

Per impostazione predefinita, il sshd oppure il demone del server OpenSSH utilizza la porta 22 del protocollo TCP. Si consiglia di modificare questo numero di porta con un altro valore in un ambiente di test. Questo ci assicura che la connettività del server è sempre disponibile.

Inoltre, è buona norma controllare la sintassi della configurazione di un nuovo file sshd_config prima di utilizzarlo, indipendentemente dalla porta su cui viene eseguito. Per controllare la sintassi, possiamo usare il seguente comando:

$ sshd -t


È anche importante notare che solo l'utente root dovrebbe essere in grado di leggere e scrivere su questo file. Ciò significa che se un file di configurazione sshd_config è protetto correttamente, l'esecuzione del comando precedente richiede l'autorizzazione root.

Se non viene visualizzato alcun output durante l'esecuzione del precedente comando di verifica della sintassi, significa che il file è corretto.

Modifica del file di configurazione predefinito e della porta

In alcuni casi, vogliamo eseguire una nuova istanza di sshd su una porta diversa. Ciò potrebbe essere dovuto al fatto che la porta 22 è già in uso o potrebbero esserci alcune aree di rischio nel modificare questa porta in un ambiente di produzione. In tali tipi di situazioni, possiamo creare un file di configurazione alternativo per il nostro server.

Creiamo un nuovo file sshd_config come sshd_config_new. Questo file può essere utilizzato per alcuni parametri del server diversi. Ora, specifichiamo questo file da considerare come il nuovo file di configurazione del server sulla porta numero 100:

$ sudo / usr / sbin / sshd -f / eccetera / ssh / sshd_config_new -p 100


Il demone sshd ora è in ascolto sulla porta 100. Possiamo usare qualsiasi valore di porta ma non quello che è già in uso.

Ora, controlliamo se la nostra nuova porta funziona come desiderato. Per questo, dobbiamo usare un programma client ssh ed eseguire il seguente comando:

$ / usr / bidone / ssh -p 100 < ip del server >



L'opzione '-p' specifica la porta 100 da utilizzare sul server remoto. Nel caso in cui stiamo testando localmente, possiamo utilizzare l'IP del server come IP localhost:

$ / usr / bidone / ssh -p 100 127.0.0.1

Risoluzione dei problemi di configurazione di OpenSSH

A volte, il nostro server non funziona come desiderato. In tali casi, possiamo utilizzare il flag '-d' per risolvere i problemi di configurazione del server OpenSSH. Usando il flag “-d”, il server entra in modalità debug e gestisce solo una singola connessione.

L'output prodotto nella modalità di debug è dettagliato. Possiamo usare più flag '-d' per aumentare il livello di debug. Eseguiamo il comando debug sul nostro server utilizzando il nuovo file di configurazione:

$ / usr / sbin / sshd -d -p 100 -f / eccetera / ssh / sshd_config_new


L'output del comando precedente viene registrato in stderr invece di utilizzare la funzionalità AUTH di syslogd.

Conclusione

Il demone OpenSSH o sshd è una parte cruciale di molte infrastrutture di amministrazione. In quanto tale, richiede esperienza per gestirlo per un funzionamento ottimale. In questo articolo, abbiamo appreso del file di configurazione del server OpenSSH come sshd_config.