SSH (Secure Shell) è un protocollo sicuro utilizzato per accedere e gestire in remoto i server Linux. Fornisce comunicazioni crittografate, garantendo la sicurezza dei dati trasferiti tra il client e il server. SSH è uno strumento fondamentale per amministratori di sistema e sviluppatori, poiché consente loro di eseguire varie attività come l'esecuzione di comandi, il trasferimento di file e la gestione sicura dei servizi di rete su una rete non protetta.
Per configurare SSH su Rocky Linux 9 o 8, puoi seguire un semplice processo di installazione utilizzando i repository predefiniti. Questa guida ti guiderà attraverso i passaggi dell'installazione e fornirà suggerimenti sulla configurazione iniziale per migliorare la sicurezza e l'usabilità.
Aggiorna Rocky Linux prima dell'installazione SSH
Prima di installare e configurare SSH su Rocky Linux, è fondamentale assicurarsi che i pacchetti del sistema siano aggiornati. Ciò non solo garantisce operazioni più fluide, ma riduce anche al minimo i potenziali conflitti software.
Per aggiornare il tuo sistema Rocky Linux, usa il comando:
sudo dnf upgrade --refresh
Installa SSH tramite il comando DNF
Il passaggio successivo prevede la verifica se il server OpenSSH è già sul tuo sistema Rocky Linux. Ciò può essere accertato eseguendo il comando:
rpm -qa | grep openssh-server
Questo comando restituirà un output pertinente se il server OpenSSH è installato. Se non viene visualizzato alcun output, indica l'assenza del server OpenSSH sul tuo sistema. Per risolvere questo problema e installare il server OpenSSH, utilizzare il seguente comando:
sudo dnf install openssh-server
Abilita il servizio SSH (SSHD).
Dopo aver installato con successo il server OpenSSH, è fondamentale abilitare il servizio SSHD all'interno del framework systemd. Ciò garantisce che il demone SSH venga inizializzato automaticamente dopo ogni riavvio del sistema. Per ottenere ciò, esegui il comando:
sudo systemctl enable sshd
Con il servizio SSHD ora impostato sull'avvio automatico, puoi avviare manualmente il server SSH utilizzando:
sudo systemctl start sshd
A scopo di verifica e per garantire che il server SSH funzioni senza problemi, puoi verificarne lo stato con:
sudo systemctl status sshd
Per confermare che la porta predefinita (22) ora è attivamente in ascolto per le connessioni SSH in entrata, eseguire:
sudo ss -lt
Connettiti a un server remoto tramite SSH su Rocky Linux 9 o 8
Con SSH opportunamente configurato sul tuo sistema Rocky Linux, ora puoi stabilire connessioni a server remoti. Ecco una ripartizione dettagliata di come utilizzare SSH per vari scenari di connessione:
Connessione tramite autenticazione tramite password con SSH su Rocky Linux
Per stabilire una connessione a un server remoto utilizzando SSH con autenticazione basata su password, utilizzare il comando:
ssh username@remote_server
Qui, sostituisci "nome utente" con il tuo nome utente effettivo e "server_remoto" con l'indirizzo IP o il nome host del server remoto desiderato. Al termine dell'esecuzione, ti verrà richiesto di inserire la password per l'autenticazione.
Connessione tramite autenticazione con chiave pubblica con SSH
SSH offre l'autenticazione con chiave pubblica per coloro che preferiscono un metodo di connessione più sicuro. Per connettersi utilizzando questo metodo, il comando è:
ssh -i /path/to/private_key username@remote_server
In questo comando, sostituisci "/path/to/private_key" con il percorso che porta al file della chiave privata. Allo stesso modo, sostituisci "username" con il tuo nome utente e "remote_server" con l'indirizzo IP o il nome host del server remoto. Questo metodo ignora la necessità di inserire la password, basandosi invece sulla chiave privata fornita per l'autenticazione.
Specifica di una porta alternativa per la connessione con SSH
Sebbene SSH utilizzi per impostazione predefinita la porta 22 per le connessioni, alcuni server remoti potrebbero funzionare su porte diverse. Per specificare una porta alternativa durante la connessione, utilizzare:
ssh -p 2222 username@remote_server
In questo esempio, sostituire "2222" con il numero di porta utilizzato dal server remoto.
Trasferimento file sicuro con SCP con SSH
SCP, o Secure Copy, è una potente utility da riga di comando che facilita il trasferimento sicuro di file tra sistemi tramite SSH. Per trasferire un file dal tuo sistema Rocky Linux locale a un server remoto, il comando è:
scp /path/to/local/file username@remote_server:/path/to/remote/directory
Sostituisci "/path/to/local/file" con il percorso del file che intendi trasferire. Allo stesso modo, modifica "username" con il tuo nome utente, "remote_server" con l'indirizzo IP o il nome host del server remoto e "/path/to/remote/directory" con il percorso della directory sul server remoto in cui desideri posizionare il file trasferito file.
Configura SSH su Rocky Linux
L'ottimizzazione della configurazione SSH può migliorare la sicurezza e le prestazioni del tuo server. Il file di configurazione SSH, situato in /etc/ssh/sshd_config, contiene vari parametri che possono essere regolati per soddisfare esigenze specifiche. Sebbene le seguenti configurazioni siano solo esempi, possono essere utili a seconda della configurazione del server o del desktop.
Disabilitare l'autenticazione GSSAPI per SSH
L'autenticazione GSSAPI, sebbene utile, a volte può introdurre ritardi durante la creazione della connessione SSH. Per mitigare questo problema, puoi disabilitarlo aggiungendo la riga seguente al file di configurazione SSH:
GSSAPIAuthentication no
Modifica dei timeout della sessione SSH per SSH
La regolazione dei timeout delle sessioni può aiutare a gestire le sessioni SSH inattive. Per impostare il server in modo che invii un messaggio keep-alive ogni 5 minuti e termini la sessione se due messaggi consecutivi rimangono senza risposta, aggiungere:
ClientAliveInterval 300
ClientAliveCountMax 2
Proibire l'accesso root per SSH
Per una maggiore sicurezza, soprattutto contro gli attacchi di forza bruta, è consigliabile disabilitare l'accesso root. Ciò può essere ottenuto con:
PermitRootLogin no
Implementazione dell'autenticazione a chiave pubblica per SSH
L'autenticazione con chiave pubblica offre un'alternativa più sicura ai metodi basati su password. Per configurarlo, devi prima generare una nuova coppia di chiavi SSH:
ssh-keygen -t rsa -b 4096
Successivamente, trasferisci la chiave pubblica sul server remoto desiderato:
ssh-copy-id user@remote_server
Assicurati di sostituire "utente" con il tuo nome utente e "remote_server" con l'indirizzo IP o il nome host appropriato. Infine, abilita l'autenticazione con chiave pubblica nella configurazione SSH:
PubkeyAuthentication yes
Limitazione dell'accesso SSH per SSH
Puoi limitare l'accesso SSH a utenti o gruppi specifici per una maggiore sicurezza. Per implementarlo, aggiungi:
AllowUsers user1 user2
AllowGroups group1 group2
Sostituisci i segnaposto con i nomi utente effettivi o i nomi dei gruppi a cui desideri concedere l'accesso.
Modifica della porta SSH per SSH
SSH, per impostazione predefinita, opera sulla porta 22. Data la sua notorietà, la modifica di questa porta può scoraggiare tentativi di accesso non autorizzati. Per assegnare una nuova porta, utilizzare:
Port <port_number>
Si consiglia di selezionare un numero di porta compreso tra 1024 e 65535 che non sia occupato da un altro servizio.
Proteggi SSH con Firewalld
Garantisci un accesso ininterrotto quando lavori con un VPS o un ambiente server remoto. Prima di apportare qualsiasi modifica a Firewalld, soprattutto se accedi al sistema da remoto, è imperativo inserire nella whitelist il tuo indirizzo IP. In caso contrario, potresti inavvertitamente bloccarti fuori dal server dopo aver applicato le modifiche al firewall.
Per inserire nella whitelist il tuo indirizzo IP in Firewalld, utilizza il seguente comando:
sudo firewall-cmd --permanent --add-source=<your_ip_address>
Sostituire con il tuo indirizzo IP effettivo.
Una volta che il tuo indirizzo IP è stato inserito nella whitelist, puoi incorporare in sicurezza il servizio SSH in Firewalld:
sudo firewall-cmd --add-service=ssh --permanent
Dopo aver apportato le modifiche necessarie, applicare la nuova configurazione Firewalld:
sudo firewall-cmd --reload
Per verificare l'inclusione del servizio SSH in Firewalld, eseguire quanto segue:
sudo firewall-cmd --list-services | grep ssh
Questo comando confermerà se il servizio SSH è debitamente consentito attraverso il firewall, garantendo che le connessioni remote rimangano sicure e accessibili.
Conclusione
Con SSH installato e configurato correttamente sul tuo sistema Rocky Linux, puoi gestire in modo sicuro il tuo server da remoto. Aggiorna regolarmente le tue configurazioni SSH e applica le migliori pratiche per mantenere la sicurezza. Seguendo i suggerimenti per la configurazione iniziale, garantirai un'esperienza di gestione remota più sicura ed efficiente. Goditi le robuste funzionalità offerte da SSH per l'amministrazione sicura del server.