🛡️ Linux: Hardening & Network Security
::: info Questa pagina definisce i protocolli per blindare l’accesso remoto e proteggere i servizi di rete su macchine Debian/Ubuntu. Applichiamo il principio del Minimo Privilegio e della Difesa in Profondità. :::
1. SSH Hardening: Accesso Blindato
Il servizio SSH è la porta d’ingresso principale. Lasciarlo con le impostazioni di default è un rischio critico.
A. Utilizzo esclusivo di chiavi ED25519
Dimentica le password. Le chiavi ED25519 sono più corte, veloci e sicure delle vecchie RSA.
# Generazione sul client (PC di casa/Lavoro)
ssh-keygen -t ed25519 -C "nome_macchina_lavoro"
B. Configurazione del Demone SSH
Modifica /etc/ssh/sshd_config con questi parametri restrittivi:
# Disabilita il login come root
PermitRootLogin no
# Disabilita l'autenticazione tramite password
PasswordAuthentication no
# Forza l'uso di protocolli moderni
PubkeyAuthentication yes
# Limita il numero di tentativi di login
MaxAuthTries 3
# (Opzionale) Cambia la porta per ridurre il rumore nei log dei bot
Port 2222
Riavvia il servizio: sudo systemctl restart ssh
2. Firewall: UFW (Uncomplicated Firewall)
La politica di default deve essere: Nega tutto in ingresso, consenti tutto in uscita.
Configurazione delle regole base
# Imposta i default
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Consenti SSH (usa la porta corretta se l'hai cambiata)
sudo ufw allow 22/tcp
# Consenti traffico web (se necessario per il server)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Abilita il firewall
sudo ufw enable
3. Fail2Ban: Protezione contro Brute-Force
Fail2Ban scansiona i log di sistema e banna temporaneamente (o permanentemente) gli IP che mostrano comportamenti malevoli (troppi tentativi di login falliti).
Installazione e Setup
sudo nala install fail2ban -y
# Crea una configurazione locale (non modificare la .conf direttamente)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Configurazione jail.local
Configura il ban automatico per SSH:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
findtime = 10m
📉 Security Layering Model (Mermaid)
4. Aggiornamenti di Sicurezza Automatici
Per un server (come il tuo Mac Pro 2013), non puoi permetterti di lasciare vulnerabilità note aperte per settimane.
sudo nala install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
- Cosa fa: Scarica e installa automaticamente le patch di sicurezza ogni notte.
- Nota: Configuralo per inviarti una mail o una notifica su Home Assistant se il server richiede un riavvio dopo un update del kernel.
💡 Note dell’Ingegnere (Critical Thinking)
- SSH Port: Cambiare la porta (es. da 22 a 2222) non aumenta la sicurezza “reale” (security through obscurity), ma riduce drasticamente i log di sistema saturati dai botnet.
- Internal Hardening: Se hai container Docker, ricorda che Docker manipola direttamente
iptables. Verifica sempre che le porte esposte da Docker non scavalchino le regole di UFW. - Auditing: Esegui periodicamente
lynis audit system(visto nella Pagina Indice) per identificare nuovi punti deboli.
Tags: #Linux #Security #Hardening #UFW #SSH #Fail2Ban*