Come rendere sicura la connessione SSH in CentOS 7

SSH è il principale protocollo utilizzato per connettersi e amministrare i server Linux. Per questo motivo, è una delle porte più frequentemente attaccate quando attori nefasti tentano di ottenere l’accesso al vostro server. In questo articolo, discuteremo alcuni metodi che puoi usare per rendere la tua connessione SSH più sicura.

Nota: A seconda del prodotto che hai con OVHcloud, alcuni di questi passaggi potrebbero essere già stati fatti. Se questo è il caso, procedi semplicemente al passo successivo. Inoltre, i passi di questo articolo presuppongono che tu ti autentichi al tuo server usando le chiavi SSH. Se invece usate una password, alcuni passi di questo articolo non funzioneranno.

Pre-requisiti

  • Come usare le chiavi SSH
  • Server con CentOS 7

Temi

  • Creazione di un nuovo utente Sudo
  • Modifica del demone SSH Configurazione

Creazione di un nuovo utente Sudo

È sempre una buona pratica non permettere l’autenticazione di root su SSH poiché questo è il nome utente che la gente cercherà di violare di più. Quindi, la prima cosa che vogliamo fare per rendere sicuro il nostro server è creare un nuovo utente sudo per SSH. Per farlo, inserite il seguente comando, sostituendo il nome utente rosso con il nome utente di vostra scelta:

# adduser username

Poi, imposteremo una password per l’utente:

# passwd username

Seguite il prompt per creare e confermare la password. Ora, vogliamo dare al nostro nuovo utente i privilegi di sudo in modo da poter diventare root ed eseguire comandi che richiedono privilegi amministrativi. Possiamo farlo inserendo il seguente comando.

# usermod -aG wheel username

Infine, vogliamo abilitare il nostro nuovo utente ad autenticarsi usando la chiave pubblica SSH che abbiamo già fornito all’utente root. Possiamo usare un semplice comando rsync per copiare la chiave pubblica nel file authorized_keys del nostro nuovo utente.

# rsync --archive --chown=username:username ~/.ssh /home/username

Prima di procedere al prossimo passo, fai il logout e assicurati di essere in grado di autenticarti al server come nuovo utente usando SSH. Se non sei in grado di accedere come nuovo utente, sarai ancora in grado di accedere come root; conferma che tutti i comandi sono stati inseriti correttamente e prova di nuovo ad accedere come nuovo utente.

Modificare la configurazione del demone SSH

Siccome stiamo usando chiavi SSH e un nuovo utente per autenticarsi al nostro server, non vogliamo mai che qualcuno si autentichi usando una password o il nome utente root. Per fare questo, vogliamo prima navigare al file di configurazione per il demone OpenSSH. Per farlo, apri il file in un editor di testo di tua scelta usando il seguente comando:

$ sudo vi /etc/ssh/sshd_config

Ci sono tre cambiamenti che vogliamo fare a questo file. Primo, vogliamo cambiare la porta su cui OpenSSH ascolta le richieste.

Attenzione: Se hai qualche firewall attivo, dovrai permettere il traffico attraverso la porta che hai scelto o ti chiuderai fuori dal tuo server. Se vi bloccate fuori dal vostro server, potete riottenere l’accesso attraverso IPMI o KVM. Per saperne di più, controlla il nostro articolo Getting Started with IPMI.

In cima al file, vedrai una sezione che assomiglia a questa per default:

#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Scommenta la sezione “Port” e scegli qualsiasi numero di porta valido come nel seguente esempio. Nel nostro esempio, stiamo usando la porta 12345.

Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Poi scorri verso il basso fino alla parte # Authentication: del file. Vedrete cinque opzioni che appariranno come segue per default:

#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10

Qui vogliamo cambiare il “sì” accanto a “PermitRootLogin” in “no”. Apparirà come segue:

#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10

Ora vogliamo scorrere il file sshd_config un po’ più in basso per fare la nostra modifica finale – disabilitare l’autenticazione con password. Vedrete una sezione che di default assomiglia a questa:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes

Vogliamo cambiare il “sì” accanto a “PasswordAuthentication” in un “no”. Apparirà come segue:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no

Salvare e uscire dal file. Infine, dobbiamo riavviare OpenSSH perché le modifiche abbiano effetto. Fallo inserendo il seguente comando:

$ sudo systemctl restart sshd.service

Prendiamoci un secondo per rivedere quello che abbiamo fatto qui. Abbiamo cambiato il numero di porta che usiamo per ascoltare le richieste SSH. Poi, abbiamo disabilitato l’accesso SSH per l’utente root o qualsiasi utente che cerca di autenticarsi con una password. Se abbiamo fatto questo correttamente, il seguente comando non funzionerà più per accedere al server.

$ ssh [email protected]

Per accedere ora, dovremo specificare il numero di porta che stiamo usando per ascoltare le richieste SSH. Ciò significa che d’ora in poi dovremo usare il seguente comando, sostituendo il numero accanto a “-p” con il numero di porta che abbiamo scelto prima:

$ ssh -p 12345 [email protected]

Assicuratevi che questo comando funzioni e che quello precedente non lo faccia. Se funziona, siete pronti per accedere al vostro server in modo sicuro attraverso SSH.

Conclusione

Con così tanti cattivi attori che usano internet, non è mai stato così importante proteggere ogni potenziale punto di ingresso al vostro server. Seguendo questa guida, avete aiutato la sicurezza del punto d’ingresso più comune sui server Linux.

Si può dire che il punto d’ingresso più comune è quello di SSH.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.