Configurazione del server OpenSSH
Installare i pacchetti del server OpenSSH e ottimizzare le impostazioni SSH a livello di sistema e specifiche dell'utente.
Per configurare il server SSH, installare i pacchetti openssh e openssh-server e abilitare il servizio sshd. È quindi possibile modificare le impostazioni all'interno dei file di configurazione presenti nella directory /etc/ssh.
Installazione del server OpenSSH e abilitazione di sshd
Installare i pacchetti del server OpenSSH e configurare il servizio sshd per l'avvio.
Un'installazione predefinita di Oracle Linux include i pacchetti openssh e openssh-server, ma il servizio sshd non è abilitato per impostazione predefinita.
-
Se i pacchetti non sono installati, eseguire il comando seguente:
sudo dnf install openssh openssh-server -
Avviare il servizio
sshde configurarlo per avviarlo dopo ogni reboot:sudo systemctl start sshd sudo systemctl enable sshd
È possibile impostare le opzioni di configurazione sshd per funzioni quali l'autenticazione Kerberos, l'inoltro X11 e l'inoltro della porta nel file /etc/ssh/sshd_config. Per ulteriori informazioni, vedere le pagine del manuale sshd(8) e sshd_config(5).
Utilizzo dei file di configurazione di OpenSSH Server
Esaminare i file di configurazione del server delle chiavi in /etc/ssh e i relativi scopi.
Per configurare impostazioni OpenSSH specifiche, modificare i file di configurazione globali nella directory /etc/ssh. Di seguito sono riportati alcuni esempi di file in questa directory.
-
modulimemorizza le informazioni di scambio delle chiavi utilizzate per impostare connessioni sicure. -
ssh_configfornisce le impostazioni di configurazione client predefinite che possono essere sostituite dal file$HOME/.ssh/configdi un utente. -
ssh_host_ed25519_keymemorizza la chiave privata ed25519 per SSH2. Oracle Linux 10 genera questa chiave per impostazione predefinita. -
ssh_host_ed25519_key.pubmemorizza la chiave pubblica ed25519 per SSH2. Oracle Linux 10 genera questa chiave per impostazione predefinita. -
ssh_host_rsa_keymemorizza la chiave privata RSA per SSH2. -
ssh_host_rsa_key.pubmemorizza la chiave pubblica RSA per SSH2. -
sshd_configmemorizza le impostazioni di configurazione per il serviziosshd.Nota
Per Oracle Linux 8 o versioni successive, i file salvati nella directory
/etc/ssh/sshd_config.dsostituiscono qualsiasi impostazione definita nel file di configurazione/etc/ssh/sshd_config.
È possibile configurare altri file nella directory /etc/ssh. Per i dettagli, vedere la pagina del manuale sshd(8).
Per ulteriori informazioni, vedere le pagine del manuale ssh_config(5), sshd(8) e sshd_config(5).
Limitazione dell'accesso alle connessioni SSH
Utilizzare esempi di configurazione per limitare l'accesso SSH, l'autenticazione e le sessioni inattive.
Secure Shell (SSH) fornisce comunicazioni protette e cifrate con altri sistemi. Disabilitare SSH quando non è necessario l'accesso remoto. In caso contrario, modificare il file /etc/ssh/sshd_config per limitare la modalità di connessione dei client.
Dopo aver applicato le modifiche al file di configurazione, è necessario riavviare il servizio sshd per rendere effettive le modifiche.
Limitare l'accesso root. Impostare PermitRootLogin su no per impedire a root di eseguire il login con SSH. Quindi, elevare i privilegi di un utente dopo aver eseguito il login.
PermitRootLogin no
Limitare utenti specifici. Limitare l'accesso remoto agli utenti e ai gruppi selezionati specificando le impostazioni AllowUsers, AllowGroups, DenyUsers e DenyGroups, ad esempio aggiungendo righe simili a:
DenyUsers carol dan
AllowUsers alice bob
Per ulteriori informazioni sulla configurazione di utenti e gruppi, è possibile visitare uno dei seguenti collegamenti:
-
Oracle Linux 8: impostazione degli utenti e dell'autenticazione del sistema
-
Oracle Linux 9: impostazione degli utenti e dell'autenticazione del sistema
-
Oracle Linux 10: impostazione degli utenti e dell'autenticazione del sistema
Impostare un periodo di timeout. Le impostazioni ClientAliveInterval e ClientAliveCountMax causano il timeout automatico del client SSH dopo un periodo di inattività, ad esempio l'aggiunta di righe simili alle seguenti:
# Disconnect client after 300 seconds of inactivity
ClientAliveCountMax 0
ClientAliveInterval 300
Disabilitare l'autenticazione della password. Le impostazioni PasswordAuthentication e PubkeyAuthentication definiscono il metodo di autenticazione implementato dal client SSH per gli utenti: con una password o con una chiave pubblica SSH. Se è stata configurata l'autenticazione basata su chiavi, che è più sicura, è possibile disabilitare PasswordAuthentication impostandola su no. Per controllare l'impostazione PasswordAuthentication corrente su un server, eseguire il comando seguente:
sudo grep -R PasswordAuthentication /etc/ssh
Per ulteriori informazioni, vedere la pagina del manuale sshd_config(5).
Configurazione del server OpenSSH per l'accesso utente
Gestire i file SSH specifici dell'utente in $HOME/.ssh per controllare l'accesso al server.
La configurazione specifica dell'utente sul lato server di una connessione si trova nella directory $HOME/.ssh e in genere include i seguenti file:
-
authorized_keysmemorizza le chiavi pubbliche autorizzate per un utente. La chiave pubblica firmata in questo file viene utilizzata dal server per autenticare un client. -
environmentdefinisce le variabili di ambiente opzionali. -
rcdefinisce i comandi opzionali eseguiti da ssh quando un utente esegue il login, prima della shell o del comando dell'utente.
Per ulteriori informazioni, vedere le pagine del manuale ssh(1) e ssh_config(5).
Limitazione dell'accesso della chiave SSH a comandi specifici
Limitare la modalità di utilizzo delle singole chiavi SSH aggiungendo opzioni in authorized_keys.
È possibile aggiungere configurazioni specifiche dell'utente sul lato server di una connessione modificando il file $HOME/.ssh/authorized_keys. Oltre a elencare le chiavi SSH con cui un utente può autenticarsi, è possibile facoltativamente imporre ulteriori restrizioni su ciò che l'utente può fare con ciascuna di tali chiavi.
Ad esempio, l'opzione command specifica un singolo comando da eseguire per tutte le connessioni effettuate con una chiave, dopo di che il comando termina immediatamente.
command=command ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...
L'opzione command consente agli utenti attenti alla sicurezza di limitare l'accesso disponibile a una chiave che potrebbe essere utilizzata per le azioni con script e che potrebbe non essere protetta da passphrase.
È inoltre possibile assicurarsi che la chiave venga accettata solo quando la connessione in entrata proviene dalla rete interna utilizzando l'opzione from per impostare un intervallo autorizzato di indirizzi IPv4. Ad esempio, per evitare che gli indirizzi IP esterni all'intervallo 192.0.2.0/24 si connettano a una chiave SSH, aggiungere la riga seguente al file $HOME/.ssh/authorized_keys con il valore key corretto:
from=192.0.2.0/24 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...
Per ulteriori informazioni, vedere la pagina del manuale sshd(8).
Consigli sulle procedure consigliate per la configurazione del server OpenSSH
Seguire le impostazioni consigliate per rafforzare i server OpenSSH rispetto agli attacchi comuni.
Per proteggere la configurazione OpenSSH dagli exploit remoti più comuni, si consiglia di seguire le linee guida indicate di seguito.
-
Disabilitare i login utente root remoti su SSH.
-
Dopo aver configurato correttamente l'autenticazione basata su chiavi, disabilitare l'autenticazione con password SSH.
-
Valutare la possibilità di impostare una porta SSH non standard per i sistemi che utilizzano Internet.
Per ulteriori informazioni, vedere Limitazione dell'accesso alle connessioni SSH.