F FabGPT-FAQ

Firewall e SSH

UFW, nftables, fail2ban e l'operatività SSH quotidiana senza chiudersi fuori. Ogni comando è verificato e copiabile; in chat basta descrivere cosa vuoi fare.

11 comandi in questa pagina

# Come vedo lo stato e le regole di UFW?

ufw status verbose
ufw status numbered    # coi numeri, per cancellare

verbose mostra anche le policy di default: quelle contano più delle singole regole.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?

# Come attivo UFW senza chiudermi fuori?

ufw allow OpenSSH     # PRIMA di tutto
ufw default deny incoming
ufw default allow outgoing
ufw enable

L'ordine è la differenza tra hardening e lockout: la regola SSH va messa PRIMA di enable.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?Come si mette in sicurezza SSH su un server esposto?

# Come apro una porta con UFW (anche solo per un IP)?

ufw allow 443/tcp
ufw allow from 192.168.1.50 to any port 5432 proto tcp

La forma from ... to any port ... è il minimo privilegio applicato al firewall: apri a CHI serve, non al mondo.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?Cos'è il principio del minimo privilegio?

# Come cancello una regola UFW?

ufw status numbered
ufw delete 3

I numeri si RICALCOLANO dopo ogni delete: cancella dal numero più alto verso il basso.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?

# Come vedo le regole nftables attive?

nft list ruleset

Anche UFW e Docker scrivono qui: questa è la verità effettiva del firewall, qualunque frontend usi.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?

# Perché Docker ignora le regole UFW?

# Docker scrive in una chain propria (DOCKER) che precede UFW.
# La soluzione pulita: pubblica su localhost e metti un reverse proxy davanti
#   ports: ['127.0.0.1:8080:80']

È il gotcha di sicurezza Docker più comune in self-hosting: -p 8080:80 apre la porta al mondo ANCHE con UFW attivo.

Approfondisci: Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?Cosa sono le porte TCP e UDP (e quali sapere a memoria)?

# Come mi semplifico la vita con ~/.ssh/config?

# ~/.ssh/config
Host web
  HostName 203.0.113.10
  User mario
  Port 2222
  IdentityFile ~/.ssh/id_ed25519

# poi basta: ssh web

Vale anche per scp/rsync/git; con ProxyJump bastione attraversi il bastion host in trasparenza.

Approfondisci: Come funzionano le chiavi SSH (e perché abbandonare le password)?Come si mette in sicurezza SSH su un server esposto?

# SSH non si connette: come lo debuggo?

ssh -vvv mario@server
# lato server: journalctl -u ssh -e

In -vvv cerca quale chiave sta offrendo; Permission denied (publickey) = chiave non in authorized_keys o permessi sbagliati (600/700).

Approfondisci: Come si mette in sicurezza SSH su un server esposto?Come funzionano le chiavi SSH (e perché abbandonare le password)?

# Come modifico sshd_config senza chiudermi fuori?

sshd -t                      # valida la sintassi
systemctl reload ssh         # reload, NON restart
# e prova il login da un SECONDO terminale, tenendo aperto il primo

La sessione aperta sopravvive al reload: è la tua rete di sicurezza. Chiudila solo dopo il login di prova riuscito.

Approfondisci: Come si mette in sicurezza SSH su un server esposto?

# Come vedo chi ha bannato fail2ban?

fail2ban-client status
fail2ban-client status sshd

La jail sshd è quella di default; Currently banned sono gli IP fuori dalla porta in questo momento.

Approfondisci: Fail2ban: cos'è e quali alternative esistono?Come si fa security logging fatto bene?Cos'è un attacco brute force (e il credential stuffing)?

# Come sbanno un IP da fail2ban?

fail2ban-client unban 203.0.113.7
# preventivo: ignoreip = 192.168.1.0/24 in jail.local

Il classico è bannarsi da soli sbagliando password: metti la tua rete in ignoreip PRIMA che succeda.

Approfondisci: Fail2ban: cos'è e quali alternative esistono?Come si imposta il firewall dell'host (tramite ufw o regole native nftables) secondo il principio di default deny su tutto il traffico?Come si mette in sicurezza SSH su un server esposto?

Chiedi in chat