![Installa LibreOffice 6.0.4 in RHEL/CentOS/Fedora e Debian/Ubuntu/Linux Mint](/f/41ec5447ef821587cbbb3bc9c75e3cab.png?width=100&height=100)
Server in esecuzione SSH di solito sono un bersaglio debole per gli attacchi di forza bruta. Gli hacker escogitano costantemente strumenti software e bot innovativi per automatizzare gli attacchi di forza bruta che aumentano ulteriormente il rischio di intrusione.
In questa guida, esploriamo alcuni dei suggerimenti che puoi implementare per salvaguardare i tuoi server SSH dagli attacchi di forza bruta Distribuzioni Linux basate su RHEL E Derivati Debian.
Il metodo di autenticazione predefinito per SSH è l'autenticazione con nome utente/password. Ma come abbiamo visto, l'autenticazione della password è soggetta ad attacchi di forza bruta. Per essere sicuri, si consiglia di implementare l'autenticazione SSH basata su chiave in cui l'autenticazione è resa possibile da coppie di chiavi SSH pubbliche e private. La chiave privata rimane sul PC del cliente mentre la chiave pubblica viene copiata sul server.
Durante l'autenticazione della chiave SSH, il server controlla se il PC client possiede la chiave privata. Se il controllo ha esito positivo, viene creata una sessione di shell o il comando inviato al server remoto viene eseguito correttamente. Abbiamo una guida completa su
come configurare l'autenticazione basata su chiave SSH.Anche dopo aver configurato l'autenticazione basata su chiave, il tuo server è ancora suscettibile agli attacchi di forza bruta per il semplice motivo che l'autenticazione della password è ancora attiva. Questo deve essere disabilitato.
Pertanto, modifica il file di configurazione SSH predefinito.
$ sudo vim /etc/ssh/sshd_config.
Impostare il Autenticazione password parametro a NO
come mostrato.
PasswordAutenticazione n.
Quindi salva il file e ricarica SSH per applicare le modifiche.
$ sudo systemctl ricarica ssh.
Scritto in Pitone, Fail2ban è un framework di prevenzione delle intrusioni open source che esegue la scansione dei file di registro dei servizi per l'autenticazione fallimenti e ban IP che falliscono ripetutamente i controlli di autenticazione della password per un determinato numero di tempo.
Fail2ban monitora costantemente i file di registro del server per tentativi di intrusione e altre attività nefaste, dopo un numero predefinito di autenticazione fallimenti – nella maggior parte dei casi, 3 tentativi di accesso falliti – Fail2ban impedisce automaticamente all'host remoto di accedere al server e l'host è tenuto in un 'Prigione‘ per un determinato periodo di tempo.
Così facendo, Fail2ban riduce significativamente il tasso di tentativi di autenticazione della password errati. Consulta la nostra guida su come puoi installare e configurare Fail2ban su Linux per proteggere il tuo server dagli attacchi Bruteforce.
Un altro modo semplice per proteggere il tuo server dagli attacchi di forza bruta è limitare il numero di tentativi di accesso SSH. Per impostazione predefinita, questo è impostato su 3, ma se per caso questo è impostato su un valore più alto, impostalo su 3 tentativi di connessione al massimo.
Ad esempio, per impostare il numero massimo di tentativi di connessione su 3, impostare il file MaxAuthTries parametro a 3 come mostrato
MaxAuthTries = 3.
Ancora una volta, salva le modifiche e ricarica il servizio SSH.
$ sudo systemctl ricarica ssh.
TCP wrappers è una libreria che fornisce un file basato su host Elenco di controllo degli accessi (LCA) che limita l'accesso ai servizi TCP da parte dei client remoti in base ai loro indirizzi IP
Host remoti dall'accesso ai servizi sul sistema. I wrapper TCP utilizzano l'estensione /etc/hosts.allow E /etc/hosts.deny file di configurazione (in quest'ordine) per determinare se il client remoto può accedere o meno a un servizio specifico.
Di solito, questi file sono commentati e tutti gli host sono autorizzati attraverso il livello wrapper TCP. Le regole per consentire l'accesso a un determinato servizio sono inserite nel file /etc/hosts.allow file e hanno la precedenza sulle regole in /etc/hosts.deny file.
La best practice consiglia di bloccare tutte le connessioni in entrata. Pertanto, apri il file /etc/hosts.deny file.
$ sudo vim /etc/hosts.deny.
Aggiungi la seguente riga.
TUTTO TUTTO.
Salva le modifiche ed esci dal file.
Quindi accedi al /etc/hosts.allow file.
$ sudo vim /etc/hosts.allow.
Configura gli host o i domini che possono connettersi al server tramite SSH come mostrato. In questo esempio, stiamo consentendo solo a due host remoti di connettersi al server (173.82.227.89 E 173.82.255.55) e negando il resto.
sshd: 173.82.227.89 173.82.255.55. sshd: TUTTI: NEGA.
Salva le modifiche ed esci dal file di configurazione.
Per provarlo, prova a connetterti al server da un host che non è tra quelli a cui hai consentito l'accesso. Dovresti ottenere un errore di autorizzazione come mostrato.
$ssh [e-mail protetta] kex_exchange_identification: lettura: connessione ripristinata dal peer. Connessione ripristinata dalla porta 22 173.82.235.7. Connessione persa.
Autenticazione a due fattori fornisce un ulteriore livello di sicurezza all'autenticazione della password, rendendo così il tuo server più sicuro dagli attacchi di forza bruta. Un ampiamente utilizzato Autenticazione a due fattori soluzione è Applicazione Google Authenticator e abbiamo una guida ben documentata su come puoi configurare l'autenticazione a due fattori.
Questo era un riepilogo di 5 best practice che puoi implementare per prevenire SSH Forza Bruta attacchi di accesso e garantire la sicurezza del tuo server. Puoi anche leggere Come proteggere e rafforzare il server OpenSSH.