Come proteggere un server SSH in Ubuntu 14.04

Cum să securizați un server SSH în Ubuntu 14.04
⏱️ 7 min read

SSH (Secure Socket Shell) è un’interfaccia della riga di comando e un protocollo per ottenere l’accesso sicuro a un server Linux remoto. Fornisce una comunicazione sicura e crittografata su una rete e consente lo scambio di dati su un canale protetto tra due server. È ampiamente utilizzato dagli amministratori di sistema per controllare il Web e altri tipi di server in remoto. In questo articolo ti mostreremo come proteggere il tuo server SSH.

Nota: questo tutorial presuppone che il server SSH esegua Ubuntu 14.04 e la macchina client sia Linux.

Per iniziare: installa SSH

Innanzitutto, è necessario aggiornare il sistema e installare i pacchetti necessari sul sistema.

Per aggiornare il sistema e installare il server SSH sulla macchina server, eseguire il seguente comando:

Per installare il client SSH sulla macchina client, eseguire il comando seguente:

Configura SSH per l’accesso senza password

Esistono due diversi metodi di accesso a un server SSH: uno è l’autenticazione basata su password e l’altro è l’autenticazione basata su chiave. L’autenticazione della password è un metodo molto semplice, facile da usare e da decifrare. L’utilizzo dell’autenticazione tramite password è molto insicuro, soprattutto se l’utente utilizza una password debole. D’altra parte, le chiavi SSH forniscono un modo semplice e sicuro per accedere a un server remoto e questo metodo è consigliato a tutti gli utenti.

Sul tuo computer client, genera le chiavi SSH con il seguente comando:

Premi semplicemente il tasto Invio ad ogni richiesta. Questo produce due file: id_rsa.pub (chiave pubblica) e id_rsa (chiave privata).

Questo produrrà qualcosa che assomiglia al seguente:

Sul tuo server, crea la seguente cartella (se non esiste):

Torna al tuo computer client, copia il file “id_rsa.pub” sul tuo server utilizzando il seguente comando:

Modificare “yourport” con il numero di porta utilizzato dal server SSH (il valore predefinito è 22) e “serverip” con l’indirizzo IP del server.

Sulla macchina server, cambia il nome del file e le autorizzazioni di configurazione.

Per verificare se il metodo di autenticazione basato su chiave funziona, prova a connetterti al tuo server SSH dalla macchina client:

Se riesci a connetterti senza inserire una password, il metodo di autenticazione basato su chiave funziona.

File di configurazione SSH sicuro

Il file “/ etc / ssh / sshd_config” è il file di configurazione a livello di sistema per SSH che consente di impostare diverse opzioni per migliorare la sicurezza di un server SSH. La configurazione predefinita nel file di configurazione è molto insicura, quindi è necessario prima modificarla e impostare le opzioni appropriate per migliorare la sicurezza.

Per modificare il file “/ etc / ssh / sshd_config”, esegui

Cambia la porta di ascolto SSH

Per impostazione predefinita, SSH è in ascolto sulla porta 22. Gli aggressori utilizzano i port scanner per vedere se un servizio SSH è in esecuzione o meno. Si consiglia di modificare la porta predefinita.

Per modificare la porta predefinita in 2200, modificare:

per

secure-ssh-change-port-number

Utilizzare solo il protocollo 2

La versione 1 del protocollo contiene vulnerabilità di sicurezza. Il protocollo 2 è la voce predefinita su Ubuntu.

Modificare la riga mostrata di seguito:

Limita l’accesso degli utenti

È necessario consentire solo a utenti specifici di accedere a SSH. Può migliorare la tua sicurezza. Per impostazione predefinita, questa opzione non è disponibile nel file di configurazione SSH.

Per consentire “utente1” e “utente2”, aggiungi la seguente riga:

Per negare “baduser1” e “baduser2”, aggiungi la seguente riga:

Disabilita il login di root

Non è necessario accedere come root tramite ssh su una rete. Gli utenti normali possono anche usare su o sudo per ottenere l’accesso a livello di root. La maggior parte degli aggressori tenterà di utilizzare l’utente root per accedere. Questo è un grosso rischio per la sicurezza, quindi si consiglia di negare il login di root.

Per disabilitare il login di root, cambia la riga

per

secure-ssh-allow-root

Nascondi ultimo accesso

Puoi nascondere chi ha effettuato l’accesso per ultimo quando un utente effettua l’accesso.

Per questo, cambia la linea

per

secure-ssh-last-log

Limita l’interfaccia per accedere

Per impostazione predefinita, ssh ascolterà su tutte le interfacce di rete. Se desideri consentire che una connessione SSH venga accettata da indirizzi IP specifici, puoi modificare la linea

per

secure-ssh-listen-address

Disabilita l’autenticazione della password

L’utilizzo dell’autenticazione tramite password rappresenta un grosso rischio per la sicurezza se l’utente utilizza una password debole. Si consiglia di utilizzare “chiavi ssh”. Una “chiave ssh” può contenere oltre 600 caratteri casuali ed essere difficile da rompere.

Per questo, cambia la linea

per

secure-ssh-password-authentication

Disabilita i file .rhosts

I file .rhosts specificano quali utenti possono accedere ai comandi r (rsh, rcp, rlogin, ecc.) Sulla macchina locale senza password. Per impostazione predefinita, un file .rhosts è disabilitato; in caso contrario, modificare le linee come mostrato di seguito.

Disabilita l’autenticazione basata su host

L’autenticazione basata su host di SSH è più sicura dell’autenticazione .rhosts. Tuttavia, non è consigliabile che gli host si fidino l’uno dell’altro. Per impostazione predefinita, questa opzione è disabilitata.

In caso contrario, modificare la riga mostrata di seguito.

Imposta un timeout di tolleranza per l’accesso

“LoginGraceTime” specifica quanto tempo dopo una richiesta di connessione il server attenderà prima di disconnettersi. Si consiglia di ridurlo a 60 secondi.

Per questo, cambia la linea

per

secure-ssh-login-gracetime

Imposta il numero massimo di connessioni di avvio

L’impostazione di un numero massimo appropriato di connessioni simultanee al daemon SSH può essere utile contro un attacco di forza bruta.

Per questo, cambia la linea

per

secure-ssh-max-startup

Disattiva inoltro

La tecnica di port forwarding viene utilizzata dagli aggressori per eseguire il tunneling delle connessioni di rete attraverso una sessione SSH per accedere ai sistemi. Si consiglia di disabilitare questa opzione.

Per questo, cambia la linea

per

secure-ssh-x11forwarding

Accedi più informazioni

Per impostazione predefinita, SSH registra tutto. Se desideri registrare più informazioni come tentativi di accesso non riusciti. puoi modificare il valore di questo in “VERBOSE”.

Per questo, cambia la linea

per

secure-ssh-loglevel

Disabilita le password vuote

È necessario negare agli utenti con password vuote sul tuo server. Per impostazione predefinita PermitEmptyPasswords è disabilitato in Ubuntu.

In caso contrario, modificare la riga mostrata di seguito.

Imposta l’intervallo di timeout di inattività

Per impostazione predefinita, questa opzione non è disponibile nel file di configurazione predefinito SSH. Si consiglia di impostare un timeout di inattività appropriato per evitare una sessione ssh non presidiata.

Per questo, aggiungi le seguenti righe.

Modalità rigorosa

Ciò impedirà l’uso di directory home non sicure e autorizzazioni per i file chiave. Per impostazione predefinita, questa opzione è abilitata.

In caso contrario, modificare la riga seguente.

Ora salva ed esci dal file / etc / ssh / sshd_config e riavvia il server SSH.

Proteggi SSH utilizzando wrapper TCP

Un wrapper TCP fornisce il controllo dell’accesso basato su host ai servizi di rete utilizzati per filtrare l’accesso alla rete a Internet. Modifica il tuo file “/etc/hosts.allow” per consentire SSH solo da 192.168.1.2 e 172.16.23.12.

Aggiungi la seguente riga:

Proteggi SSH utilizzando iptables

Per impostazione predefinita, un server SSH deve accettare solo connessioni dalla LAN o da altri siti remoti. Si consiglia di consentire solo a indirizzi IP specifici di accedere a SSH e di bloccare l’accesso a SSH a indirizzi IP non autorizzati.

Per consentire le connessioni SSH solo da 192.168.1.2 eseguire il seguente comando:

Disabilita la connessione SSH da tutti gli altri host eseguendo il seguente comando:

Ora salva le nuove regole usando il seguente comando:

Conclusione

Le istruzioni sopra sono tecniche molto potenti per proteggere il tuo server SSH. Questo post copre tutte le informazioni necessarie alla maggior parte degli utenti per un server SSH. Se hai domande, non esitare a commentare qui sotto.

Riferimento: SSH ubuntu

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x