SSH è un protocollo ampiamente utilizzato per l'accesso sicuro ai server Linux. La maggior parte degli utenti utilizza connessioni SSH con impostazioni predefinite per connettersi a un server remoto. Tuttavia, le configurazioni predefinite non protette comportano anche vari rischi per la sicurezza.
L'account root di un server con accesso SSH aperto potrebbe essere a rischio. E soprattutto se stai usando un indirizzo IP pubblico, è molto più facile hackerare la password di root. Pertanto, è necessario avere conoscenze sulla sicurezza SSH.
Ecco come puoi proteggere le connessioni del tuo server SSH su Linux.
1. Disabilita gli accessi utente root
Per questo, per prima cosa, disabilita l'accesso SSH dell'utente root e creare un nuovo utente con privilegi di root. La disattivazione dell'accesso al server per l'utente root è una strategia di difesa che impedisce agli aggressori di raggiungere l'obiettivo di intromettersi nel sistema. Ad esempio, puoi creare un utente denominato esempioroot come segue:
useradd -m esempioroot
passwd root di esempio
usermod -aG sudo esempioroot
Ecco una breve spiegazione dei suddetti comandi:
- useradd crea un nuovo utente e il -m il parametro crea una cartella sotto il casa directory per l'utente creato.
- Il passwd comando serve per assegnare una password al nuovo utente. Ricorda che le password che assegni agli utenti dovrebbero essere complesse e difficili da indovinare.
- usermod -aG sudo aggiunge l'utente appena creato al gruppo di amministratori.
Dopo il processo di creazione dell'utente, è necessario apportare alcune modifiche al file sshd_config file. Puoi trovare questo file all'indirizzo /etc/ssh/sshd_config. Apri il file con qualsiasi editor di testo e apporta le seguenti modifiche:
# Autenticazione:
#LoginGraceTime 2m
PermitRootLogin n
AllowUsers esempioroot
PermitRootLogin line impedirà all'utente root di ottenere l'accesso remoto tramite SSH. Compreso esempioroot nel Consenti utenti list concede le autorizzazioni necessarie all'utente.
Infine, riavvia il servizio SSH usando il comando seguente:
sudo systemctl restart ssh
Se ciò non riesce e ricevi un messaggio di errore, prova il comando seguente. Questo può variare in base alla distribuzione Linux che usi.
sudo systemctl restart sshd
2. Modifica della porta predefinita
La porta di connessione SSH predefinita è 22. Naturalmente, tutti gli aggressori lo sanno e, pertanto, è necessario modificare il numero di porta predefinito per garantire la sicurezza SSH. Anche se un attaccante può facilmente trovare il nuovo numero di porta con una scansione Nmap, l'obiettivo qui è rendere più difficile il lavoro dell'attaccante.
Per modificare il numero di porta, aprire /etc/ssh/sshd_config e apportare le seguenti modifiche al file:
Includere /etc/ssh/sshd_config.d/*.conf
Porto 5922
Dopo questo passaggio, riavvia nuovamente il servizio SSH con sudo systemctl restart ssh. Ora puoi accedere al tuo server utilizzando la porta che hai appena definito. Se si utilizza un firewall, è necessario apportare le modifiche alle regole necessarie anche lì. Durante l'esecuzione del netstat -tlpn comando, puoi vedere che il tuo numero di porta per SSH è cambiato.
3. Blocca l'accesso per gli utenti con password vuote
Potrebbero esserci utenti senza password sul tuo sistema che potresti aver creato accidentalmente. Per impedire a tali utenti di accedere ai server, è possibile impostare il PermitEmptyPasswords valore di riga nel sshd_config archiviare in No.
PermitEmptyPasswords n
4. Limita i tentativi di accesso/accesso
Per impostazione predefinita, puoi accedere al server effettuando tutti i tentativi di password che desideri. Tuttavia, gli aggressori possono utilizzare questa vulnerabilità per forzare il server. Puoi terminare automaticamente la connessione SSH dopo un certo numero di tentativi specificando il numero di tentativi di password consentiti.
Per questo, cambia il MaxAuthTries valore nel sshd_config file.
MaxAuthTries 3
5. Utilizzo di SSH versione 2
La seconda versione di SSH è stata rilasciata a causa delle numerose vulnerabilità della prima versione. Per impostazione predefinita, puoi consentire al server di utilizzare la seconda versione aggiungendo il file Protocollo parametro al tuo sshd_config file. In questo modo, tutte le tue connessioni future utilizzeranno la seconda versione di SSH.
Includere /etc/ssh/sshd_config.d/*.conf
Protocollo 2
6. Disattivazione dell'inoltro della porta TCP e dell'inoltro X11
Gli aggressori possono tentare di accedere agli altri tuoi sistemi tramite il port forwarding tramite connessioni SSH. Per evitare ciò, è possibile disattivare il Consenti inoltro TCP e X11 Inoltro caratteristiche nel sshd_config file.
X11 Inoltro n
AllowTcpInoltro n
7. Connessione con una chiave SSH
Uno dei modi più sicuri per connettersi al server è utilizzare una chiave SSH. Quando utilizzi una chiave SSH, puoi accedere al server senza password. Inoltre, puoi disattivare completamente l'accesso tramite password al server modificando i parametri relativi alla password in sshd_config file.
Quando crei una chiave SSH, ci sono due chiavi: Pubblico e Privato. La chiave pubblica viene caricata sul server a cui ci si vuole connettere e la chiave privata viene salvata sul computer tramite il quale si stabilirà la connessione.
Crea una chiave SSH con ssh-keygen comando sul tuo computer. Non lasciare il Frase d'accesso campo vuoto e ricorda la password che hai inserito qui. Se lo lasci vuoto, potrai accedervi solo con il file della chiave SSH. Tuttavia, se imposti una password, puoi impedire a un utente malintenzionato con il file chiave di accedervi. Ad esempio, puoi creare una chiave SSH con il seguente comando:
ssh-keygen
8. Restrizioni IP per le connessioni SSH
Il più delle volte, il firewall blocca l'accesso utilizzando framework dei propri standard e mira a proteggere il server. Tuttavia, questo non è sempre sufficiente ed è necessario aumentare questo potenziale di sicurezza.
Per fare ciò, apri il /etc/hosts.allow file. Con le aggiunte apportate a questo file, puoi limitare l'autorizzazione SSH, consentire un blocco IP specifico o inserire un singolo IP e bloccare tutti gli indirizzi IP rimanenti con il comando nega.
Di seguito vedrai alcune impostazioni di esempio. Dopo aver eseguito queste operazioni, riavvia il servizio SSH come al solito per salvare le modifiche.
L'importanza della sicurezza dei server Linux
I problemi relativi alla sicurezza dei dati e dei dati sono piuttosto dettagliati e dovrebbero essere presi in considerazione da tutti gli amministratori del server. La sicurezza dei server è una questione molto delicata poiché l'obiettivo principale degli attacchi sono i server Web e contengono quasi tutte le informazioni su un sistema. Poiché la maggior parte dei server viene eseguita sull'infrastruttura Linux, è molto importante avere familiarità con il sistema Linux e l'amministrazione del server.
La sicurezza SSH è solo uno dei modi per proteggere i server. È possibile ridurre al minimo i danni subiti fermando, bloccando o rallentando un attacco. Oltre a fornire la sicurezza SSH, ci sono molti metodi diversi che puoi implementare per proteggere i tuoi server Linux.