GNU/Linux >> Linux Esercitazione >  >> Linux

7 passaggi per proteggere il tuo server Linux

Questo manuale ti introdurrà alla sicurezza di base del server Linux. Sebbene si concentri su Debian/Ubuntu, puoi applicare tutto ciò che viene presentato qui ad altre distribuzioni Linux. Ti incoraggio anche a ricercare questo materiale e ad estenderlo ove applicabile.

1. Aggiorna il tuo server

La prima cosa da fare per proteggere il server è aggiornare i repository locali e aggiornare il sistema operativo e le applicazioni installate applicando le patch più recenti.

Su Ubuntu e Debian:

$ sudo apt update && sudo apt upgrade -y

Su Fedora, CentOS o RHEL:

$ sudo dnf upgrade

2. Crea un nuovo account utente privilegiato

Quindi, crea un nuovo account utente. Non dovresti mai accedere al tuo server come root . Crea invece il tuo account (" "), dagli sudo diritti e utilizzalo per accedere al tuo server.

Inizia creando un nuovo utente:

$ adduser <username>

Assegna al tuo nuovo account utente sudo diritti aggiungendo (-a ) il sudo gruppo (-G ) all'appartenenza al gruppo dell'utente:

$ usermod -a -G sudo <username>

3. Carica la tua chiave SSH

Ti consigliamo di utilizzare una chiave SSH per accedere al tuo nuovo server. Puoi caricare la tua chiave SSH pregenerata sul tuo nuovo server utilizzando ssh-copy-id comando:

$ ssh-copy-id <username>@ip_address

Ora puoi accedere al tuo nuovo server senza dover digitare una password.

4. SSH sicuro

Quindi, apporta queste tre modifiche:

  • Disabilita l'autenticazione della password SSH
  • Limita root dall'accesso remoto
  • Limita l'accesso a IPv4 o IPv6

Apri /etc/ssh/sshd_config utilizzando il tuo editor di testo preferito e assicurati queste righe:

PasswordAuthentication yes
PermitRootLogin yes

assomiglia a questo:

PasswordAuthentication no
PermitRootLogin no

Successivamente, limita il servizio SSH a IPv4 o IPv6 modificando AddressFamily opzione. Per cambiarlo per utilizzare solo IPv4 (che dovrebbe andare bene per la maggior parte delle persone) apporta questa modifica:

AddressFamily inet

Riavvia il servizio SSH per abilitare le modifiche. Nota che è una buona idea avere due connessioni attive al tuo server prima di riavviare il server SSH. Avere quella connessione extra ti consente di riparare qualsiasi cosa se il riavvio dovesse andare storto.

Su Ubuntu:

$ sudo service sshd restart

Su Fedora o CentOS o qualsiasi altra cosa che usi Systemd:

$ sudo systemctl restart sshd

5. Abilita un firewall

Ora devi installare un firewall, abilitarlo e configurarlo solo per consentire il traffico di rete che hai designato. Uncomplicated Firewall (UFW) è un'interfaccia facile da usare per iptables che semplifica notevolmente il processo di configurazione di un firewall.

Puoi installare UFW con:

$ sudo apt install ufw

Per impostazione predefinita, UFW nega tutte le connessioni in entrata e consente tutte le connessioni in uscita. Ciò significa che qualsiasi applicazione sul tuo server può raggiungere Internet, ma qualsiasi cosa che tenti di raggiungere il tuo server non può connettersi.

Innanzitutto, assicurati di poter accedere abilitando l'accesso a SSH, HTTP e HTTPS:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Quindi abilita UFW:

$ sudo ufw enable

Puoi vedere quali servizi sono consentiti e negati con:

$ sudo ufw status

Se vuoi disabilitare UFW, puoi farlo digitando:

$ sudo ufw disable

Puoi anche usare firewall-cmd, che è già installato e integrato in alcune distribuzioni.

6. Installa Fail2ban

Fail2ban è un'applicazione che esamina i log del server alla ricerca di attacchi ripetuti o automatizzati. Se ne vengono trovati, modificherà il firewall per bloccare l'indirizzo IP dell'attaccante in modo permanente o per un determinato periodo di tempo.

Puoi installare Fail2ban digitando:

$ sudo apt install fail2ban -y

Quindi copia il file di configurazione incluso:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

E riavvia Fail2ban:

$ sudo service fail2ban restart

Questo è tutto ciò che c'è da fare. Il software esaminerà continuamente i file di registro alla ricerca di attacchi. Dopo un po', l'app creerà un bel elenco di indirizzi IP vietati. Puoi visualizzare questo elenco richiedendo lo stato corrente del servizio SSH con:

$ sudo fail2ban-client status ssh

7. Rimuovi i servizi di connessione alla rete inutilizzati

Quasi tutti i sistemi operativi per server Linux sono dotati di alcuni servizi di rete abilitati. Ti consigliamo di tenerne la maggior parte. Tuttavia, ce ne sono alcuni che potresti voler rimuovere. Puoi vedere tutti i servizi di rete in esecuzione utilizzando il ss comando:

$ sudo ss -atpu

L'output di ss differirà a seconda del tuo sistema operativo. Questo è un esempio di ciò che potresti vedere. Mostra che i servizi SSH (sshd) e Ngnix (nginx) sono in ascolto e pronti per la connessione:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

Come rimuovere un servizio inutilizzato (" ") differirà a seconda del tuo sistema operativo e del gestore di pacchetti che utilizza.

Per rimuovere un servizio inutilizzato su Debian/Ubuntu:

$ sudo apt purge <service_name>

Per rimuovere un servizio inutilizzato su Red Hat/CentOS:

$ sudo yum remove <service_name>

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Esegui ss -atup di nuovo per verificare che i servizi inutilizzati non siano più installati e funzionanti.

Pensieri finali

Questo tutorial presenta il minimo indispensabile per rafforzare un server Linux. Ulteriori livelli di sicurezza possono e devono essere abilitati a seconda di come viene utilizzato un server. Questi livelli possono includere elementi come le configurazioni delle singole applicazioni, il software di rilevamento delle intrusioni e l'abilitazione dei controlli di accesso, ad esempio l'autenticazione a due fattori.


Linux
  1. Configura il tuo server OpenVPN su Linux

  2. Installa OpenVPN sul tuo PC Linux

  3. 9 cose da fare nei tuoi primi 10 minuti su un server Linux

  4. Come monitorare il tuo server Linux?

  5. Come installare Nginx Web Server su Linux

Come controllare il carico del tuo server in Linux

Come controllare il carico del server nel sistema Linux

Guida per la configurazione del server SFTP in Linux

Come controllare il tempo di attività del tuo server Linux

Come configurare un demone Rsync sul tuo server Linux

Come configurare un firewall sul tuo server Linux