🏠 Infrastruttura Linux in autogestione
Due server Debian (Raspberry Pi 4) in funzione 24/7. L'obiettivo: rendere i servizi raggiungibili da Internet in modo sicuro senza aprire nessuna porta sul router – e gestirli in modo che un guasto venga notato e possa essere risolto. Questo sito gira su questa infrastruttura.
Struttura
- Servizi: web server (nginx), password manager (Vaultwarden), filtro DNS (AdGuard Home), condivisione file, monitoraggio (Uptime Kuma, Netdata) – tutti come container Docker, gestiti con Compose e Portainer.
- Accesso: pubblicazione tramite Cloudflare Tunnel (zero trust) invece del port forwarding; amministrazione remota tramite Tailscale con subnet router verso la rete di casa.
- Secondo server: si occupa del monitoraggio e riceve i backup del primo server.
Sicurezza
- SSH solo con chiavi, login con password e come root disattivati; fail2ban contro attacchi brute force.
- TLS ≥ 1.2, HSTS e header di sicurezza incl. Content Security Policy per il sito.
- Container esposto senza privilegi di root, con file system in sola lettura e limite di processi.
- Segreti (token API) separati dagli script, in file leggibili solo dall'utente del servizio.
Backup e monitoraggio
- Script Bash via cron: snapshot coerente del database, archivio dei dati più un archivio di sistema (configurazione, crontab, inventario dei container).
- Il secondo server preleva gli archivi tramite accesso rsync in sola lettura, ne verifica l'integrità e ruota le versioni vecchie.
- Notifica di successo o errore via messenger; Uptime Kuma dà l'allarme se un backup non viene eseguito.
- Inventario di rete giornaliero con nmap/ndiff – nuovi dispositivi o porte aperte vengono segnalati.
Cosa ho imparato
Una verifica di sicurezza della mia infrastruttura ha rivelato, tra l'altro, un servizio raggiungibile pubblicamente con privilegi eccessivi, file di backup nella directory web e un database in un volume Docker non persistente. Tutto risolto, documentato e inserito nel piano di backup – da allora verifico le modifiche in modo mirato anche dall'esterno.