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

Nov 28, 2021
admin
Megha Pandey
Megha Pandey

Follow

5 ottobre, 2017 – 6 min read

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 🙂

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.