Quando si installa un server SSH su Ubuntu 22.04, è fondamentale comprendere le differenze tra i vari file di configurazione e come essi interagiscono tra loro. Questa guida ti aiuterà a navigare attraverso questi file, spiegando le loro funzioni e come applicare le impostazioni desiderate.
Introduzione ai File di Configurazione SSH
Dopo aver installato openssh-server, troverai diversi file e directory all’interno di /etc/ssh/:
| 1 | /etc/ssh/ | 
Differenza tra ssh_config e sshd_config
- ssh_config: Questo file contiene la configurazione del client SSH. Ogni volta che si utilizza un client SSH per connettersi a un server, le impostazioni vengono lette da questo file.
- sshd_config: Questo file contiene la configurazione del server SSH. Definisce come il server SSH accetta e gestisce le connessioni in entrata.
È importante non confondere i due: modificare ssh_config influenzerà solo le connessioni in uscita dal tuo server, mentre modificare sshd_config cambierà il comportamento del server SSH stesso.
Il Ruolo della Directory sshd_config.d
All’interno di /etc/ssh/, noterai la presenza della directory sshd_config.d. Questa directory è stata introdotta per consentire una gestione modulare e più flessibile delle configurazioni.
- File di override: I file all’interno di - sshd_config.dpossono sovrascrivere le impostazioni definite in- sshd_config. Ad esempio, il file- 50-cloud-init.confpotrebbe contenere configurazioni specifiche generate durante l’installazione del server.
- Ordine di applicazione: Le configurazioni vengono lette in ordine alfabetico. Se hai più file, le impostazioni nei file successivi possono sovrascrivere quelle precedenti. 
Questo meccanismo è utile per gestire configurazioni complesse o per applicare impostazioni specifiche senza modificare il file principale sshd_config, facilitando aggiornamenti e manutenzione.
Applicazione delle Impostazioni al Server SSH
Per configurare il tuo server SSH con le impostazioni desiderate, puoi seguire questi passi:
1. Modifica delle Impostazioni
Apri il file /etc/ssh/sshd_config con un editor di testo, ad esempio nano:
| 1 | sudo nano /etc/ssh/sshd_config | 
Aggiungi o modifica le seguenti linee per applicare le tue configurazioni:
| 1 | PermitRootLogin yes | 
2. Verifica dei File in sshd_config.d
Controlla se nella directory sshd_config.d esistono file che potrebbero sovrascrivere queste impostazioni. In particolare, verifica 50-cloud-init.conf o altri file presenti.
Apri il file per esaminarne il contenuto:
| 1 | sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf | 
Se trovi impostazioni che contrastano con quelle che hai appena impostato in sshd_config, puoi:
- Modificare il file in - sshd_config.d: Cambiare le impostazioni direttamente nel file di override.
- Commentare le linee: Aggiungi un - #all’inizio delle linee per disabilitarle.
3. Riavvio del Servizio SSH
Dopo aver apportato le modifiche, è necessario riavviare il servizio SSH per applicarle:
| 1 | sudo systemctl restart sshd | 
4. Verifica delle Modifiche
Per assicurarti che le impostazioni siano state applicate correttamente, puoi utilizzare il seguente comando:
| 1 | sshd -T | grep -E 'permitrootlogin|passwordauthentication|pubkeyauthentication|challengeresponseauthentication|usepam' | 
Questo mostrerà le impostazioni attualmente in uso per i parametri specificati.
Comprendere l’Evoluzione dei Permessi
L’introduzione della directory sshd_config.d rappresenta un’evoluzione nella gestione dei permessi e delle configurazioni. Permette agli amministratori di:
- Modularizzare le configurazioni: Separare le impostazioni in file diversi per una migliore organizzazione. 
- Facilitare gli aggiornamenti: Evitare conflitti durante gli aggiornamenti del sistema che potrebbero sovrascrivere - sshd_config.
- Gestire le configurazioni in modo più sicuro: Ridurre il rischio di errori modificando solo i file necessari. 
È essenziale comprendere come queste directory e file interagiscono per gestire efficacemente il tuo server SSH.
Conclusione
Configurare correttamente il server SSH è cruciale per la sicurezza e l’efficienza del tuo sistema. Comprendere le differenze tra ssh_config e sshd_config, così come il ruolo della directory sshd_config.d, ti permetterà di gestire le impostazioni in modo consapevole e sicuro.
Assicurati sempre di verificare le modifiche e di comprend