Ricerca nel sito web

Le 5 migliori pratiche di sicurezza per i server OpenSSH


SSH (Secure Shell) è un protocollo di rete open source utilizzato per connettere server Linux locali o remoti per trasferire file, eseguire backup remoti, eseguire comandi remoti e altre attività relative alla rete tramite il comando scp o il comando sftp tra due server che si connettono su un canale sicuro sulla rete.

In questo articolo ti mostrerò alcuni semplici strumenti e trucchi che ti aiuteranno a rafforzare la sicurezza del tuo server ssh. Qui troverai alcune informazioni utili su come proteggere e prevenire i server ssh da attacchi di forza bruta e dizionari.

1. NegaHost

DenyHosts è uno script di sicurezza di prevenzione delle intrusioni open source basato su log per server SSH scritto in un linguaggio di programmazione Python destinato ad essere eseguito da amministratori e utenti di sistema Linux per monitorare e analizzare l'accesso al server SSH i registri per i tentativi di accesso non riusciti sono noti come attacchi basati su dizionario e attacchi di forza bruta.

Lo script funziona vietando gli indirizzi IP dopo un determinato numero di tentativi di accesso falliti e impedendo inoltre a tali attacchi di accedere al server.

Funzionalità di DenyHosts
  • Tiene traccia di /var/log/secure per trovare tutti i tentativi di accesso riusciti e non riusciti e li filtra.
  • Tiene d'occhio tutti i tentativi di accesso non riusciti da parte dell'utente e dell'host offensivo.
  • Continua a monitorare ogni utente esistente e inesistente (ad es. xyz) quando un tentativo di accesso non riesce.
  • Tiene traccia di ciascun utente, host offensivo e tentativi di accesso sospetti (in caso di numerosi tentativi di accesso falliti) vieta l'indirizzo IP dell'host aggiungendo una voce in /etc/hosts.deny fascicolo.
  • Facoltativamente, invia una notifica e-mail degli host appena bloccati e degli accessi sospetti.
  • Mantiene inoltre tutti i tentativi di accesso degli utenti non riusciti, validi e non validi, in file separati in modo da facilitare l'identificazione dell'utente valido o non valido sotto attacco. Quindi, possiamo eliminare quell'account o modificare la password o disabilitare la shell per quell'utente.

2. Fail2Ban

Fail2ban è uno dei framework di rilevamento/prevenzione delle intrusioni open source più popolari scritto in un linguaggio di programmazione python. Funziona eseguendo la scansione di file di registro come /var/log/secure, /var/log/auth.log, /var/log/pwdfail ecc. per troppi tentativi di accesso falliti.

Fail2ban viene utilizzato per aggiornare Netfilter/iptables o il file hosts.deny di TCP Wrapper, per rifiutare l'indirizzo IP di un utente malintenzionato per un determinato periodo di tempo. Ha anche la capacità di sbloccare un indirizzo IP bloccato per un certo periodo di tempo impostato dagli amministratori. Tuttavia, un certo minuto di sblocco è più che sufficiente per fermare tali attacchi dannosi.

Funzionalità di Fail2Ban
  • Multi-thread e altamente configurabile.
  • Supporto per la rotazione dei file di registro e possibilità di gestire più servizi come (sshd, vsftpd, apache, ecc.).
  • Monitora i file di registro e cerca modelli noti e sconosciuti.
  • Utilizza la tabella Netfilter/Iptables e TCP Wrapper (/etc/hosts.deny) per vietare l'IP degli aggressori.
  • Esegue gli script quando un determinato modello è stato identificato per lo stesso indirizzo IP più di X volte.

3. Disabilita l'accesso root

Per impostazione predefinita, i sistemi Linux sono preconfigurati per consentire accessi remoti ssh a tutti, compreso l'utente root stesso, che consente a tutti di accedere direttamente al sistema e ottenere l'accesso root. Nonostante il fatto che il server ssh consenta un modo più sicuro per disabilitare o abilitare gli accessi root, è sempre una buona idea disabilitare l'accesso root, mantenendo i server un po' più sicuri.

Ci sono così tante persone che cercano di forzare gli account root tramite attacchi SSH semplicemente fornendo nomi di account e password diversi, uno dopo l'altro. Se sei un amministratore di sistema, puoi controllare i log del server ssh, dove troverai una serie di tentativi di accesso non riusciti. Il motivo principale dietro una serie di tentativi di accesso falliti è avere password sufficientemente deboli ed è logico che hacker/aggressori ci provino.

Se disponi di password complesse, probabilmente sei al sicuro, tuttavia, è meglio disabilitare l'accesso root e avere un account separato e regolare a cui accedere, quindi utilizzare sudo o su per ottenere l'accesso root quando richiesto.

4. Visualizza il banner SSH

Questa è una delle funzionalità più vecchie disponibili dall'inizio del progetto ssh, ma non l'ho vista quasi mai utilizzata da qualcuno. Ad ogni modo, ritengo che sia una funzionalità importante e molto utile che ho utilizzato per tutti i miei server Linux.

Questo non è per scopi di sicurezza, ma il vantaggio più grande di questo banner è che viene utilizzato per visualizzare messaggi di avviso ssh all'accesso autorizzato dall'ONU e messaggi di benvenuto agli utenti autorizzati prima della richiesta della password e dopo che l'utente ha effettuato l'accesso.

5. Accesso SSH senza password

Un accesso SSH senza password con keygen SSH stabilirà una relazione di fiducia tra due server Linux che effettua il trasferimento di file e la sincronizzazione molto più semplice.

Ciò è molto utile se si ha a che fare con backup automatizzati remoti, esecuzione di script remoti, trasferimento di file, gestione di script remoti, ecc. senza inserire ogni volta la password.

Per proteggere ulteriormente il tuo server SSH, leggi il nostro articolo su Come proteggere e rafforzare il server OpenSSH