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 statusInstallazione e avvio di UFW.
# Installazione (se necessario) sudo apt install ufw # Abilitare il firewall sudo ufw enableConfigura 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 statusVerifica: 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 sestatusSe 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/configTrova la riga:
SELINUX=disabledSostituiscila con:
SELINUX=enforcingSalva le modifiche e riavvia il sistema per applicarle:
sudo rebootControllare dopo il riavvio.
Dopo il caricamento del server, verifica di nuovo lo stato di SELinux:
getenforceSe 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/htmlEsempio di output:
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/htmlSe qualcosa non va, puoi temporaneamente modificare il contesto:
sudo chcon -t httpd_sys_content_t /var/www/htmlControllare 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_dirImposta i permessi di accesso:
Concediamo a
user1pieno accesso, e auser2solo 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_dirVerifica ACL:
# Verifica dei permessi attuali getfacl /project_dirL'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
user1euser2e 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à
enforcinge verifica che il server web funzioni correttamente. - Configura ACL per la directory
/project_diraffinchéuser1abbia accesso completo euser2solo 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