SSH (Secure Shell) è un protocollo di rete sicuro basato sull'architettura client-server che consente di accedere in modo sicuro a computer/server remoti sulla rete.
SSH è ampiamente utilizzato dagli amministratori di sistema per la connessione a server remoti. Ciò consente agli amministratori di gestire facilmente server e applicazioni da remoto e in modo sicuro da qualsiasi luogo e in qualsiasi momento.
In questa guida, ti mostrerò come configurare e abilitare SSH su sistemi CentOS/RHEL. Con SSH abilitato su questo sistema CentOS, dovresti essere in grado di accedere a questo sistema da altri computer utilizzando il suo indirizzo IP.
Questo tutorial include anche i passaggi per modificare la porta SSH predefinita, disabilitare l'accesso SSH per l'utente root e configurare firewalld per proteggere il tuo server SSH.
Per completare questa guida, assicurati di avere i seguenti requisiti:
- Un sistema Linux CentOS/RHEL. Puoi installarlo sulla tua macchina fisica/hardware reale, o utilizzando la macchina virtuale tramite KVM/VirtualBox, o utilizzando provider cloud di terze parti come Linode (ma di solito hanno già abilitato SSH).
- Un utente non root con privilegi sudo/root. Questo utente verrà utilizzato per modificare il sistema. E alla fine, questo utente può essere utilizzato per accedere al tuo server.
Installazione dei pacchetti OpenSSH
OpenSSH è una delle implementazioni software più popolari del protocollo SSH. Viene utilizzato da milioni di server Linux e diventa una parte fondamentale dell'ambiente server. Per impostazione predefinita, OpenSSH è disponibile sulla maggior parte dei repository di distribuzione Linux, inclusi i sistemi CentOS e RHEL.
Prima di iniziare, aggiorna l'indice del tuo pacchetto utilizzando il gestore di pacchetti DNF come di seguito.
sudo dnf check-update
Quindi, installa i pacchetti OpenSSH sui sistemi CentOS/RHEL usando il comando seguente. Questo comando installerà i pacchetti del server OpenSSH, così come il software client OpenSSH.
sudo dnf install openssh-server openssh-clients -y
Al termine dell'installazione di OpenSSH, eseguire il comando seguente per avviare sshd
servizio e abilitarlo per l'avvio automatico all'avvio del sistema.
sudo systemctl enable --now sshd
Ora verifica sshd
stato del servizio eseguendo il comando seguente.
sudo systemctl status sshd
Riceverai un output come il seguente screenshot. Il sshd
il servizio è active (running)
.
Configurazione del server SSH
Per impostazione predefinita, la configurazione SSH è disponibile in /etc/ssh
directory e il file di configurazione principale è sshd_config
. Questo file contiene alcune configurazioni SSH di base, come ListenAddress
che determina l'indirizzo IP del servizio SSH in esecuzione, Port
per configurare la porta del servizio SSH, i metodi di autenticazione e molto altro.
In questa sezione modificherai la configurazione sshd_config
, quindi modificare la porta SSH predefinita e disabilitare l'accesso per l'utente root.
Questa impostazione è consigliata per motivi di sicurezza, è per aumentare la sicurezza del server e ridurre l'attacco di forza bruta contro il tuo server.
Ora apri il file sshd_config
usando vi
editor o il tuo editor preferito.
sudo vi /etc/ssh/sshd_config
Prima di iniziare a modificare il file, devi sapere che le righe che iniziano con #
e le righe vuote vengono interpretate come commenti.
In cima alla riga, cambia la porta SSH predefinita da 22
alla tua porta preferita. Questo tutorial utilizza la porta non standard 2028
per SSH.
Port 2028
⚠️Assicurati di avere un utente non root con accesso sudo già abilitato su questo sistema. Altrimenti, se disabiliti l'accesso come root, potresti non essere in grado di accedere al tuo server da remoto.
Quindi, cambia l'opzione di PermitRootLogin yes
a PermitRootLogin no
. Questo disabiliterà l'accesso SSH per l'utente root
utente. Facoltativamente, puoi aggiungere #
all'inizio della riga PermitRootLogin
.
PermitRootLogin no
Salva e chiudi il file.
Dopo aver apportato le modifiche, verifica la configurazione SSH, quindi riavvia sshd
servizio.
sshd -t
sudo systemctl restart sshd
Ora puoi connetterti al tuo server SSH eseguendo ssh
comando qui sotto.
ssh [email protected] -p PORT
Il -p
viene utilizzata per specificare la porta del server SSH.
In questa sezione, hai completato la configurazione di base per la protezione del server SSH modificando la porta SSH predefinita e disabilitando l'accesso per la root
utente. Inoltre, hai imparato a connetterti al server SSH con una porta non standard. Successivamente, installerai e configurerai il firewall.
Installazione e configurazione di Firewalld
Se stai utilizzando il server CentOS/RHEL su Internet pubblico, ad esempio un server cloud, potrebbe essere necessario abilitare il firewall. Ciò aumenterà la sicurezza del tuo server, limitando l'accesso solo a servizi specifici come SSH, HTTP e HTTPS. Nella distribuzione basata su CentOS/RHEL, firewalld è il pacchetto firewall predefinito che puoi installare sul tuo sistema.
In questa sezione, installerai firewalld e configurerai le sue porte aperte per il tuo server SSH.
Per installare firewalld, esegui dnf
comando qui sotto.
sudo dnf install firewalld -y
Al termine dell'installazione di firewalld, avviare e abilitare firewalld
servizio. Quindi verifica il suo stato eseguendo il comando seguente.
sudo systemctl enable --now firewalld
sudo systemctl status firewalld
Riceverai un output simile come lo screenshot qui sotto. Il firewalld
il servizio è active (running)
.
Per interagire con firewalld, puoi usare il comando firewall-cmd
. È l'interfaccia della riga di comando per la gestione delle regole firewalld. Puoi usare firewall-cmd
per aggiungere, rimuovere e modificare regole firewalld. E ci sono molte altre cose che puoi fare usando firewall-cmd
.
Ora, per aggiungere la porta SSH personalizzata al tuo sistema, esegui firewall-cmd
comando qui sotto.
sudo firewall-cmd --add-port=2028/tcp --permanent
Riceverai l'output success
, il che significa che l'operazione è riuscita e completata.
Questo esempio utilizza la porta 2028
come porta SSH personalizzata. e il servizio SSH è in esecuzione sulla porta TCP, quindi è necessario specificare la porta e il protocollo come 2028/tcp
. L'opzione --permanent
rende questa regola permanente.
Quindi, ricarica le regole firewalld per applicare una nuova configurazione utilizzando il comando seguente.
sudo firewall-cmd --reload
Hai aggiunto la porta personalizzata SSH al firewalld. Esegui il comando seguente per elencare tutte le regole abilitate.
sudo firewall-cmd --list-all
Ora vedrai un elenco di regole abilitate in firewalld. I servizi SSH, Cockpit e dhcp sono abilitati per impostazione predefinita.
Per rimuovere la regola SSH predefinita, esegui firewall-cmd
comando qui sotto. Quindi ricarica nuovamente le regole del firewall.
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
Ora hai completato l'installazione e la configurazione di firewalld per proteggere il tuo server SSH.
Conclusione
In questa guida, hai completato l'installazione e la configurazione di SSH sul sistema CentOS/RHEL. Hai protetto il tuo server SSH modificando la porta predefinita e disabilitando l'accesso per il root
utente. Inoltre, hai completato l'installazione e la configurazione del firewall sul sistema CentOS/RHEL per la protezione del server SSH.
Facci sapere se hai domande.