Configurazione del firewall, SELinux e regole ACL di base
1. Passo 1: Installazione e configurazione del firewall
Ciao! Oggi ci dedicheremo alla pratica reale e applicheremo tutto ciò che hai imparato sulla sicurezza di Linux fino ad oggi. Configureremo il firewall, valuteremo il funzionamento di SELinux e capiremo quanto sia comodo usare ACL per la gestione dei permessi sui file. Questa lezione è il tuo "campo di addestramento". È ora di indossare i nostri "gradi di sicurezza admin" e iniziare!
Lo sai già: un buon firewall è come un buttafuori all’ingresso. Decide chi può entrare e chi si becca un bel "No, grazie!". Per iniziare, configuriamo la protezione del nostro sistema, limitando l'accesso solo ai servizi SSH e HTTP.
Lavora con UFW
Controlla lo stato di UFW. Non è installato? Installiamolo!
# Controllo di UFW sudo ufw status
Installazione e avvio di UFW.
# Installazione (se necessario) sudo apt install ufw # Abilitare il firewall sudo ufw enable
Configura l'accesso. Vogliamo consentire solo SSH (porta 22) e HTTP (porta 80), bloccando tutto il resto. Logica semplice: il server non è un hotel tre stelle per tutti.
# Consenti SSH sudo ufw allow 22 # Consenti HTTP sudo ufw allow 80 # Verifica delle impostazioni sudo ufw status
Verifica: Dopo la configurazione, dovresti vedere qualcosa del genere:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Se il comando ti dice che "il firewall è disattivato", dobbiamo correggere la situazione.
Se usi iptables
, la configurazione è un po' più complicata, ma la logica rimane la stessa: creiamo regole per SSH e HTTP, bloccando tutto il resto.
2. Passaggio 2: Lavorare con SELinux
SELinux è quel severo insegnante che controlla il comportamento dei file e degli utenti sul tuo server. Il suo motto è: "Fidati, ma verifica". Attiviamo SELinux e vediamo come funziona.
Attivare SELinux
Controllare lo stato attuale:
# Verifichiamo se SELinux è attivato sestatus
Se la modalità mostra
disabled
, è necessario abilitarla tramite il file di configurazione.Abilitare SELinux tramite la configurazione:
Il file di configurazione di SELinux si trova nel percorso
/etc/selinux/config
. Aprilo con un editor di testo (ad esempionano
).sudo nano /etc/selinux/config
Trova la riga:
SELINUX=disabled
Sostituiscila con:
SELINUX=enforcing
Salva le modifiche e riavvia il sistema per applicarle:
sudo reboot
Controllare dopo il riavvio.
Dopo il caricamento del server, verifica di nuovo lo stato di SELinux:
getenforce
Se il sistema risponde Enforcing, congratulazioni, sei in prima linea per la sicurezza!
Esempio con SELinux e un server web
Supponiamo che tu abbia un server web che memorizza file nella directory /var/www/html
. Verifichiamo come SELinux lo protegge.
Visualizzare il contesto dei file: SELinux utilizza i contesti per gestire l'accesso. Vediamo quale contesto ha la directory
/var/www/html
.ls -Z /var/www/html
Esempio di output:
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
Se qualcosa non va, puoi temporaneamente modificare il contesto:
sudo chcon -t httpd_sys_content_t /var/www/html
Controllare il funzionamento del server web: Dopo aver configurato il contesto, verifica se il tuo server funziona correttamente e se non ci sono errori di accesso.
3. Passo 3: Gestione dei diritti con ACL
ACL (Access Control List) è come una "chiave aggiuntiva" per la gestione dell'accesso. Quando i diritti standard rwx
sono limitati, ACL ti permette di configurare finemente l'accesso per utenti specifici.
Crea una directory di test
Creiamo una directory chiamata project_dir
e configuriamola per l'accesso di due utenti: user1
e user2
.
Crea la directory:
sudo mkdir /project_dir
Imposta i permessi di accesso:
Concediamo a
user1
pieno accesso, e auser2
solo accesso in lettura:# Pieno accesso per user1 sudo setfacl -m u:user1:rwx /project_dir # Solo lettura per user2 sudo setfacl -m u:user2:r-- /project_dir
Verifica ACL:
# Verifica dei permessi attuali getfacl /project_dir
L'output dovrebbe mostrare le tue configurazioni:
# file: /project_dir user::rwx user:user1:rwx user:user2:r--
Imposta diritti predefiniti:
Affinché tutti i nuovi file nella directory ereditino automaticamente i diritti ACL, impostiamoli come predefiniti:
sudo setfacl -d -m u:user1:rwx /project_dir sudo setfacl -d -m u:user2:r-- /project_dir
4. Verifica della configurazione finale
Firewall:
- Assicurati che le porte SSH e HTTP siano accessibili e che le altre siano bloccate. Prova a connetterti al server tramite SSH e apri il sito web nel browser.
SELinux:
- Controlla i contesti dei file per assicurarti che SELinux stia limitando correttamente gli accessi.
ACL:
- Accedi con gli utenti
user1
euser2
e prova a leggere e scrivere un file nella directory/project_dir
.
- Accedi con gli utenti
Compiti pratici
- Configura il firewall in modo che consenta solo accessi tramite SSH e HTTP.
- Abilita SELinux in modalità
enforcing
e verifica che il server web funzioni correttamente. - Configura ACL per la directory
/project_dir
affinchéuser1
abbia accesso completo euser2
solo permessi di lettura. - Controlla gli utenti attivi nel sistema usando il comando
who
.
Questi esercizi ti aiuteranno a rafforzare le conoscenze e a capire come applicarle in pratica. E ricordati: la sicurezza in Linux non è solo configurazione, ma anche un'attenzione costante ai dettagli. Buona fortuna!
GO TO FULL VERSION