GNU/Linux >> Linux Esercitazione >  >> Linux

[Linux]:le 12 principali funzionalità di sicurezza da abilitare nel server SSH!

Un paio di modi per accedere a una shell (riga di comando) in remoto sulla maggior parte dei sistemi Linux/Unix. Uno dei metodi più vecchi consiste nell'usare il programma telnet. L'accesso a una shell tramite telnet pone minacce alla sicurezza poiché i messaggi che passano tra client e server sono in testo normale! Quindi chiunque possa "annusare" la connessione nel mezzo può vedere il tuo nome utente, password e molti altri. Per questi motivi è necessario un programma più sofisticato di telnet per connettersi a un host remoto.

SSH, acronimo di Secure SHell, è stato progettato e creato per fornire la massima sicurezza quando si accede a un altro computer da remoto. Non solo crittografa la sessione, ma fornisce anche migliori funzionalità di autenticazione, oltre a funzionalità come il trasferimento sicuro di file, l'inoltro della sessione X, il port forwarding e altro in modo da poter aumentare la sicurezza di altri protocolli. Consentire l'accesso remoto tramite SSH è utile per scopi amministrativi, ma può rappresentare una minaccia per la sicurezza del tuo server. Spesso bersaglio di attacchi di forza bruta, l'accesso SSH deve essere adeguatamente limitato per impedire a terzi di accedere al tuo server. In questo articolo vedremo come proteggere SSH.

Ci sono due file di configurazione “ssh_config” e “sshd_config” nella directory /etc/ssh/. Il file ssh_config contiene la configurazione relativa alle connessioni SSH in uscita. dove as sshd_config file contiene parametri di configurazione che controllano le connessioni SSH in entrata al server stesso. ~/.ssh/ è directory di configurazione SSH degli utenti.

1. Come impostare nomi utente/password efficaci

Il server SSH in esecuzione ed esposto al mondo esterno sarebbe l'obiettivo principale degli attacchi di forza bruta! In genere un hacker eseguirà la scansione della porta 22 per trovare macchine con ssh in esecuzione, quindi tenterà un attacco di forza bruta contro di essa. Con password complesse, puoi negare agli hacker prima che abbiano successo. Si spera che utilizzi già password complesse, ma in caso contrario prova a scegliere password che contengano:

  1. Minimo di 8 caratteri
  2. Mix di lettere maiuscole e minuscole
  3. Mix di lettere e numeri
  4. Caratteri non alfanumerici (ad es. caratteri speciali come ! ” £ $ % ^ ecc.)

Se i tuoi utenti scelgono ancora password deboli, crea nomi utente che sarebbero difficili da indovinare dagli hacker! Ciò rende difficile agli hacker indovinare i nomi utente senza i quali non possono forzare la password (assicurati che gli utenti non perdano i nomi utente). Evita nomi utente comuni come admin, henry, bob, ecc.

2. Come impedire l'accesso remoto con password vuote

Questa funzione è necessaria per indicare esplicitamente al server SSH di non consentire l'accesso remoto per gli account con password vuote. Utilizzando il tuo editor preferito, apri /etc/ssh/sshd_config file e cerca le righe seguenti:

#PermitEmptyPasswords no

Rimuovi il simbolo # e cambia il no a .

PermitEmptyPasswords yes

Dopo la modifica, non dimenticare di riavviare sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

3. Come disabilitare l'accesso remoto per l'utente root su una macchina Linux

Puoi vedere il nostro articolo precedente: Come disabilitare l'accesso remoto per l'utente root su una macchina Linux

4. Come consentire solo a utenti specifici di accedere tramite SSH

Puoi vedere il nostro articolo precedente: come consentire o negare a specifici account utente di eseguire l'accesso remoto al server Linux.

5. Come modificare la porta di ascolto SSH predefinita

Per impostazione predefinita, il server SSH è in ascolto delle connessioni sulla porta 22. Gli aggressori utilizzano il software di scansione delle porte come nmap per cercare una porta aperta. Si consiglia di modificare la porta SSH con un numero maggiore di 1024 poiché la maggior parte dei port scanner non esegue la scansione di porte superiori.

Usando il tuo editor preferito, apri il file /etc/ssh/sshd_config e cerca la riga che dice:

Port 22

Modifica il numero di porta in modo simile a :

Port 2222

dopo la modifica non dimenticare di riavviare sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

Una volta modificato il numero di porta del server SSH, è possibile accedere in remoto specificando il numero di porta come mostrato di seguito:

ssh -p 2222 useranme@servername

6. Consenti solo il protocollo SSH 2

Il server SSH supporta due protocolli, ovvero 1 e 2. Il precedente protocollo 1 è soggetto a problemi di sicurezza tra cui man-in-the-middle e vulnerabilità di sicurezza. Il protocollo SSH 2 è più sicuro rispetto al protocollo 1. Il server SSH sul sistema operativo più recente viene fornito con il protocollo 2 abilitato. Nel caso in cui si riferisca a più protocolli come mostrato di seguito, modificare per abilitare solo il protocollo 2 come mostrato di seguito:

Usando il tuo editor preferito, apri il file /etc/ssh/sshd_config e cerca la riga che dice:

Protocol 2,1

Cambia la riga in modo che dica solo protocollo 2!

Protocol 2

Dopo la modifica, non dimenticare di riavviare sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

7. Come limitare l'accesso remoto solo a utenti specifici da un indirizzo IP specifico?

Se sei sicuro che, il tuo server SSH verrebbe utilizzato da utenti di host molto specifici Ad esempio:server SSH a cui accedono solo utenti da una LAN dell'organizzazione, allora è meglio consentire agli utenti di accedere da un host specifico. Per fare ciò, segui la procedura seguente:

Usando il tuo editor preferito, apri il file /etc/ssh/sshd_config e aggiungi la riga seguente:

AllowUsers [email protected]

Puoi anche bloccare un intervallo di IP come di seguito:

AllowUsers [email protected].*
AllowUsers [email protected].*.*

Dopo la modifica, non dimenticare di riavviare sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

8. Come fermare gli attacchi SSH automatizzati basati su bot ?

Puoi vedere il nostro articolo precedente – Come fermare gli attacchi SSH automatizzati basati su bot?

9. Come eseguire l'hashing di file host noti

Fare riferimento al nostro articolo precedente: Come eseguire l'hash dei file host conosciuti della directory ~/.ssh/

10. Come configurare l'intervallo di timeout di disconnessione inattiva per SSH

Gli utenti spesso effettuano il login remoto e dimenticano di disconnettersi! Una sessione inattiva potrebbe comportare rischi per la sicurezza. Gli amministratori devono impostare un intervallo di timeout di inattività per disconnettersi da quelle sessioni inattive. Per impostare l'intervallo di timeout per il logout inattivo, segui le linee guida seguenti:

Usando il tuo editor preferito, apri /etc/ssh/sshd_config file e cerca le righe seguenti:

#ClientAliveInterval 0

Rimuovere il simbolo # e modificare ClientAliveInterval su 300 (l'intervallo di timeout è in secondi, ovvero 300 sec =15 minuti). Trascorso questo intervallo, l'utente inattivo verrà disconnesso automaticamente.

ClientAliveInterval 300

Dopo la modifica, non dimenticare di riavviare sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

11. Come configurare Log Analyzer per SSH

La registrazione dell'attività dell'utente fornirà sempre all'amministratore informazioni aggiuntive sull'attività degli utenti sul server. Oltre a strumenti come LogWatch puoi semplificarti la vita per leggere tutti i registri per un determinato periodo di tempo e creare un rapporto in un formato leggibile e intuitivo.

Utilizzando il tuo editor preferito, apri /etc/ssh/sshd_config file e cerca le righe seguenti:

#LogLevel INFO

Rimuovi il simbolo # e riavvia il servizio sshd come mostrato di seguito:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

12. Verifica la configurazione SSH prima di riavviare il demone 'sshd'

Mentre apporti modifiche a sshd_config , assicurati di non aver lasciato errori. Esegui il comando seguente per verificare se sshd_config contiene eventuali errori prima di riavviare SSH server.

# /usr/sbin/sshd -t

ora, riavvia il servizio come di seguito:

# /etc/init.d/sshd restart

(o)

# service sshd restart

Linux
  1. Abilita l'accesso root SSH su Debian Linux Server

  2. Best practice per la sicurezza di OpenSSH

  3. Abilita SSH su CentOS 8 - Metodo migliore?

  4. Modificare il numero di porta del server SSH predefinito

  5. Come proteggere il servizio SSH con Port Knocking

Come installare il server SSH in Ubuntu 20.04

Come abilitare il server SSH su Ubuntu 22.04

Le 10 principali funzionalità SSH che DEVI conoscere per essere più produttivo

Utilizzo di SSH Port Forwarding come strumento di sicurezza in Linux

Come abilitare il ping su Windows Server 2008 R2

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi