SSH si riferisce a Secure Shell che aiutano a gestire i servizi di rete come l'accesso remoto al server, il trasferimento di file e altre operazioni relative ai server in modo sicuro su una rete non sicura o protetta.
La configurazione predefinita SSH non è sufficiente per rafforzare il canale SSH; è necessario configurare l'impostazione aggiuntiva per migliorarne completamente la sicurezza. In questo articolo impareremo 11 metodi per proteggere il tuo server ssh.
Disabilitazione dell'accesso root su server SSH
Poiché l'utente root ha accesso a tutti i servizi nel server ed è meglio non rischiare che il sistema consenta l'accesso root remoto. Potrebbe essere troppo vulnerabile se la password viene esposta durante l'utilizzo di un attacco di forza bruta o di un altro strumento di hacking. Quindi è meglio disabilitare l'accesso root remoto e restare con l'utente normale.
Per disabilitare il login root remoto, apri il file sshd_config.
$ sudo vim /etc/ssh/sshd_config
Quindi, imposta "PermitRootLogin" su no
Disabilita l'accesso utente root ssh.
Disabilita password vuota
Alcune distribuzioni Linux creeranno utenti senza password, quindi potrebbe essere vulnerabile consentire la connessione ssh con password vuote per l'accesso remoto. Quindi per disabilitare questo servizio dobbiamo impostare "PermitEmptyPasswords" su no nel file sshd_config.
PermitEmptyPasswords no
Disabilita l'accesso con password vuota.
Utilizza l'autenticazione basata su chiave pubblica attraverso il protocollo SSH.
Si consiglia vivamente di utilizzare l'autenticazione basata su chiave pubblica poiché il server SSH supporta diversi processi di autenticazione. L'hacker tenta diversi strumenti di hacking per reprimere la password utilizzando vari metodi come l'attacco di forza bruta. Per evitare che ciò accada, utilizziamo l'autenticazione basata su chiave pubblica.
Innanzitutto, dobbiamo generare una chiave pubblica e una chiave privata usando il comando ssh-keygen. Per generare la chiave eseguire il comando seguente. Nel processo ti verrà chiesto dove generare la chiave ssh, premi invio se vuoi continuare con l'impostazione predefinita. Quindi ti verrà richiesta una passphrase che si riferisce alla password della tua chiave ssh, utilizza una password complessa che è la composizione di un carattere speciale, alfabeto e numeri. Una volta impostata la password, la tua chiave ssh verrà generata nella directory .ssh nella tua home directory.
$ ssh-keygen -t rsa
Generazione di coppie di chiavi ssh.
Prima di caricare la chiave pubblica, assicurati di avere .ssh dir nel tuo server remoto, se non creane uno nella tua home dir, quindi carica la tua chiave ssh pubblica sul server usando il seguente comando.
$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
Caricamento della chiave pubblica sul server.
Ora puoi accedere come utente ubuntu usando la chiave pubblica sul protocollo ssh.
Autenticazione basata su chiave pubblica.
Disabilita l'autenticazione di accesso SSH con password
Si consiglia vivamente di utilizzare l'autenticazione a chiave pubblica ssh per l'accesso remoto al server poiché le password possono essere esposte tramite attacchi di forza bruta se non viene utilizzata una password complessa. Per disabilitare l'autenticazione della password dal server SSH, impostare il valore "PasswordAuthentication" su no.
Autenticazione password no
Cambia la porta 22 predefinita SSH.
Per impostazione predefinita, SSH viene eseguito sulla porta 22 nel sistema. Se cambiamo la porta standard SSH, potrebbe aggiungere un ulteriore livello di sicurezza evitando il traffico insolito verso la porta aperta. Quindi, per cambiare la porta non è semplice, apri il file sshd_config e imposta il numero di porta inutilizzato desiderabile nella sezione della porta. Nell'esempio seguente ho impostato la porta su 454.
Cambia la porta predefinita ssh.
Limita l'accesso degli utenti tramite SSH.
Il server SSH consente a tutti gli utenti di accedere al server in remoto, ma possiamo sovrascrivere l'impostazione predefinita e impostare solo utenti specifici per consentire o negare l'accesso remoto tramite il protocollo SSH. In un modo semplice, avendo accesso remoto a tutti gli utenti del sistema, accedi creando un possibile modo per l'hacker di accedere al nostro sistema.
Per consentire a utenti specifici di accedere tramite SSH, aggiungi la seguente riga in sshd_config.
AllowUsers utente1 utente2 ubuntu
Allo stesso modo, puoi limitare un utente specifico e consentire ad altri di accedere tramite SSH aggiungendo la seguente riga di codice.
DenyUsers utente root3 utente4
Migliora l'uso di password complesse per utente/chiave SSH.
Di solito, le persone usano spesso password semplici per il loro accesso come 123456, qualcosa 123, in modo che possano ricordare facilmente le password. Questo è il motivo per cui un attacco di forza bruta funziona perfettamente poiché va bene il dizionario per tentare il controllo della password. Quindi, per evitarlo, dobbiamo utilizzare una password contenente caratteri speciali, lettere maiuscole e minuscole, numeri e una lunghezza minima della password di 8 caratteri.
Configura l'intervallo di timeout di inattività
Gli utenti spesso mantengono la loro connessione SSH inattiva per un periodo più lungo, quindi sarà ad alto rischio se qualcuno tenta di prendere in consegna la tua sessione SSH e fare ciò che vuole quando gli utenti non sono presenti al momento. In questo modo possiamo impostare il timeout della sessione di accesso dopo un certo periodo di inattività in modo da dover eseguire nuovamente il login al timeout della sessione. Per impostare il timeout di inattività è necessario impostare il valore "ClientAliveInterval" nel file sshd_config. Nell'esempio seguente, ho impostato il valore di timeout 360 che è 6 minuti.
ClientAliveInterval 360
Utilizza il protocollo SSH 2
SSH ha due varianti del protocollo SSH protocollo 1 e SSH protocollo 2, il protocollo 1 è l'impostazione predefinita del sistema che è meno sicuro del protocollo 2 poiché il protocollo 2 applica la crittografia di massa, algoritmi robusti e controlli crittografici. Per passare al protocollo 2 dobbiamo aggiungere la seguente riga nel file sshd_config.
Protocollo 2
Utilizzo del protocollo ssh 2.
Configura un limite per i tentativi di password
Possiamo limitare il numero di tentativi di password di accesso ssh in modo che dopo un numero limitato di tentativi la connessione venga interrotta, il che aggiungerà un ulteriore livello di sicurezza che impedisce al sistema di attaccare il bot. Per raggiungere questo obiettivo è necessario impostare il valore della direttiva "MaxAuthTries". Nell'esempio, ho impostato il limite per 4 tentativi.
MaxAuthTries 3
Limita il tentativo di accesso ssh.
Disabilita Tunneling e Port Forwarding
Se non utilizzerai il servizio di tunneling e port forwarding, è meglio tenerlo disabilitato poiché un hacker potrebbe utilizzare questi servizi per sfondare il tuo sistema. Per ottenerlo, imposta il seguente valore della direttiva su no.
AllowAgentForwarding no
AllowTcpForwarding no
PermitTunnel n.
Infine, dopo aver impostato tutto, non dimenticare di riavviare il server ssh per applicare le modifiche
$ sudo systemctl restart ssh
Conclusione
In questo articolo, impariamo alcuni modi comuni per rafforzare i server SSH che aiutano a evitare diversi rischi per la sicurezza. Spero che questo articolo ti piaccia.