10 passi per rendere sicuro il server Linux per l’ambiente di produzione


Securare il server Linux è essenziale per proteggere i nostri dati dagli hacker. Ma mettere in sicurezza un server non richiede di essere complicato. Dovremmo adottare un metodo che protegga il nostro server dagli attacchi più frequenti con un’amministrazione efficiente.
Tuttavia, non date le cose per scontate. Anche i server più resistenti possono essere dirottati sfruttando qualsiasi componente vulnerabile in esecuzione su quel server.
Installate ciò che vi serve
La prima regola è quella di mantenere il vostro server snello. Installate solo i pacchetti di cui avete veramente bisogno. Se ci sono pacchetti indesiderati, eliminateli. Meno pacchetti ci sono, meno possibilità ci sono di codice non patchato.
Accendi SELinux
Security-Enhanced Linux (SELinux) è un meccanismo di sicurezza di controllo degli accessi fornito nel kernel.
SELinux fornisce 3 modalità base di funzionamento :
- Enforcing: Questa è la modalità predefinita che abilita e fa rispettare la politica di sicurezza SELinux sulla macchina.
- Permissivo: In questa modalità, SELinux non farà rispettare la politica di sicurezza sul sistema, solo avverte e registra le azioni.
- Disabilitato: SELinux è disattivato.
Può essere gestito dal file ‘/etc/selinux/config’, dove è possibile abilitarlo o disabilitarlo.
Secure Console Access
È necessario proteggere l’accesso alla console dei server Linux disabilitando l’avvio da dispositivi esterni come DVD / CD / penna USB dopo la configurazione del BIOS. Inoltre, imposta la password del BIOS e del boot loader grub per proteggere queste impostazioni.
Restriziona l’uso delle vecchie password
Possiamo limitare gli utenti ad usare le stesse vecchie password. Il file delle vecchie password si trova in /etc/security/opasswd. Questo può essere fatto usando il modulo PAM.
Aprire il file ‘/etc/pam.d/system-auth’ sotto RHEL / CentOS / Fedora.
# vi /etc/pam.d/system-auth
Aprire il file ‘/etc/pam.d/common-password’ sotto Ubuntu/Debian/Linux.
# vi /etc/pam.d/common-password
Aggiungi la seguente linea alla sezione ‘auth’.
auth sufficient pam_unix.so likeauth nullok
Aggiungi la seguente linea alla sezione ‘password’ per impedire ad un utente di riutilizzare le ultime 3 password.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3
Le ultime 3 password sono ricordate dal server. Se provi ad usare una qualsiasi delle ultime 3 vecchie password, otterrai un errore del tipo.

Check Listening Ports
Usa il comando ‘netstat’ per vedere le porte aperte e i servizi corrispondenti.
netstat -tunlp
Disabilitate i servizi indesiderati dal sistema usando il comando ‘chkconfig’ e chiudete le porte che non sono necessarie.
chkconfig serviceName off
Disabilitate il login di Root
Non è consigliabile fare ssh nel vostro server come superuser (root). Dovremmo disabilitare ssh come utente root sul server, ma prima di farlo, creiamo un utente con poteri di sudo in modo da poter sshtare nel server ed eseguire compiti amministrativi. Una volta entrati nel server, si può sempre cambiare utente in root, se necessario.
Creare un nuovo utente :
useradd user1
Creare la password per l’utente aggiunto :
passwd user1
Fornire i permessi sudo al nuovo utente aggiunto :
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers
SSH al server con il nuovo utente e assicurarsi che il login funzioni.
Ora stiamo per disabilitare il login di root, il che significa che nessuno può ssh o accedere al server come utente root. Per farlo, aprite il file di configurazione di sshd:
nano /etc/ssh/sshd_conf
Poi, decommenta la linea che dice
PermitRootLogin no

Poi salva e chiudi questo file e riavvia il servizio
service sshd restart
Importante: Non uscire ancora dal server. Prima prova se puoi entrare con successo nel server usando l’utente creato in precedenza. Aprite un’altra istanza del terminale ed effettuate lo ssh nel server con l’utente creato in precedenza. Se tutto funziona bene, puoi tranquillamente uscire dal server come root.
Cambiare la porta
Possiamo cambiare la porta SSH di default per aggiungere uno strato di opacità per mantenere il tuo server sicuro.
Aprire il file /etc/ssh/sshd_config
sostituire la porta 22 di default con un numero di porta diverso, ad esempio 1110
salvare & uscire dal file
service sshd restart
Ora per accedere definire la porta No.
ssh username@IP -p 1110
Disabilita Ctrl+Alt+Canc in Inittab
Premendo Ctrl+Alt+Canc porterà il tuo server al processo di riavvio. Quindi è sempre consigliabile disabilitare questa azione perché qualcuno può erroneamente riavviare il sistema.
L’azione ctrl+Alt+Del è definita in /etc/init/control-alt-delete.conf .Commentate la linea sottostante

Password-less Login
Possiamo facilmente accedere al nostro server tramite SSH senza alcuna password generando le ssh-keys. Fai solo attenzione che puoi accedere al tuo server solo dalla macchina su cui hai generato le chiavi ssh
Generazione delle chiavi SSH:
ssh-keygen - t rsa

Copia la tua chiave SSH pubblica, poi aggiungete la stessa nel server
cat ~/.ssh/id_rsa.pub
Per aggiungere le chiavi ssh nel server
Supponiamo di avere l’utente-utente1 per fornire l’accesso con chiave ssh al server
cd /home/user1
ls -ll
Create una directory .ssh e al suo interno creare un file chiamato authorized_keys e aggiungere la chiave ssh pubblica dell’utente nella stessa
mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys
Aggiungere la chiave SSH pubblica e poi cambio il proprietario del
chown user1 authorized_keys
Disabilita il login ssh
Modifica /etc/ssh/sshd_config
Passwordauthentication no
PermitRootLogin no

Ora, solo l’utente autorizzato può accedere al server con il comando
ssh user-name@serverIP -p(port Number)

Fail2Ban per il login SSH
Fail2ban funziona modificando dinamicamente le regole del firewall per bandire gli indirizzi che hanno tentato senza successo di accedere un certo numero di volte.
Installa Fail2ban :
sudo apt-get update
apt-get install fail2ban
Crea un nuovo file jail.local e copia il contenuto di jail.config nello stesso e fai le modifiche solo nel file jail.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Modifica /etc/fail2ban/jail.local
Apporta le modifiche desiderate:
enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)
Poi riavvia i servizi fail2ban
service fail2ban restart
L’IP può essere bloccato permanentemente impostando bantime = -1.
Nota: FAIL2BAN bloccherà l’IP globale.
La sicurezza era un inconveniente a volte, ma ora è una necessità continua – Martina Navratilova
Grazie per aver letto. Se hai trovato questo articolo utile, qualche applauso significherebbe molto!
Stai sintonizzato 🙂
.