Configurazione di un server ssh su su ubuntu-220.04

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
2
3
4
5
6
7
8
9
10
11
12
13
14
/etc/ssh/
├── moduli
├── ssh_config
├── ssh_config.d
├── sshd_config
├── sshd_config.d
│ └── 50-cloud-init.conf
├── ssh_host_ecdsa_key
├── ssh_host_ecdsa_key.pub
├── ssh_host_ed25519_key
├── ssh_host_ed25519_key.pub
├── ssh_host_rsa_key
├── ssh_host_rsa_key.pub
└── ssh_import_id

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.d possono sovrascrivere le impostazioni definite in sshd_config. Ad esempio, il file 50-cloud-init.conf potrebbe 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
2
3
4
5
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM 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