Archivio

Archivio Articoli del Luglio 2025

Pagina 2 di 3

Maurizio Fonte - Consulente Informatico - Ingegnere del Software e Cyber Security Specialist Freelance

Migrazione sicura di VPS su diverso provider: guida completa a zero downtime per aziende

Migrazione sicura di VPS su diverso provider: guida completa a zero downtime per aziende Una PMI ligure con e-commerce Laravel su OVH VPS pagava 89€/mese per un server con problemi di I/O ricorrenti. Ho migrato tutto su Hetzner CPX31 a 16€/mese con rsync incrementale, replica MySQL e cutover DNS in finestra notturna. Zero downtime, zero ordini persi, metà del costo. Il protocollo operativo che uso per ogni migrazione VPS tra provider. Continua a leggere
Ultima modifica:

Gestione urgente di intrusioni su VPS: guida al ripristino rapido e sicuro per server Debian e Ubuntu

Gestione urgente di intrusioni su VPS: guida al ripristino rapido e sicuro per server Debian e Ubuntu VPS Hetzner compromesso: CPU al 100%, login SSH da IP ucraini, cryptominer nascosto in /dev/shm. Contenimento in 15 minuti, forensics, eradicazione, ripristino e hardening post-incidente seguendo il framework NIST SP 800-61. Il caso reale di una PMI piemontese e le cinque fasi operative che ho applicato. Continua a leggere
Ultima modifica:

Fail2ban fermo da mesi su un VPS con Laravel: come un brute force SSH da 14.000 tentativi al giorno è passato inosservato

Fail2ban fermo da mesi su un VPS con Laravel: come un brute force SSH da 14.000 tentativi al giorno è passato inosservato Fail2ban installato su un VPS Digital Ocean con SaaS Laravel ma fermo da sei mesi - disabilitato durante un aggiornamento e mai riattivato. 14.000 tentativi SSH brute force al giorno, inoffensivi solo perché l'autenticazione era a chiave. Ma il login web Laravel non aveva nessuna protezione. Diagnosi, riattivazione, jail SSH, jail custom per login web e ban progressivo con recidive. Continua a leggere
Ultima modifica:

Il portale è irraggiungibile ma il server è acceso: quando il problema è nel DNS e come diagnosticarlo in 10 minuti

Il portale è irraggiungibile ma il server è acceso: quando il problema è nel DNS e come diagnosticarlo in 10 minuti Un e-commerce Laravel era irraggiungibile da 6 ore - il server Hetzner era online, Nginx rispondeva, MySQL funzionava. Il problema: il dominio era stato trasferito a un nuovo registrar la sera prima, e il record NS ancora puntava ai nameserver del vecchio provider che aveva già cancellato la zona DNS. Diagnosi in 10 minuti con dig e whois, fix con TTL basso e propagazione controllata, e le 5 misconfigurazioni DNS che trovo più spesso su VPS di PMI. Continua a leggere
Ultima modifica:

Certificato HTTPS scaduto o mal configurato su VPS con Laravel: diagnosi, fix e hardening TLS nel 2025

Certificato HTTPS scaduto o mal configurato su VPS con Laravel: diagnosi, fix e hardening TLS nel 2025 Un portale B2B Laravel su Hetzner con certificato Let's Encrypt scaduto da 11 giorni - il rinnovo automatico di Certbot falliva perché la porta 80 era bloccata da una regola UFW aggiunta durante un hardening. HSTS attivo con max-age di un anno impediva il fallback a HTTP: il sito era un fantasma per tutti i browser. Diagnosi con openssl s_client, fix Certbot, rollout HSTS graduale e hardening Nginx per TLS 1.3 con A+ su SSL Labs. Continua a leggere
Ultima modifica:

MySQL esposto su un VPS Hetzner con root senza password: il CIS benchmark che applico nelle prime due ore di hardening

MySQL esposto su un VPS Hetzner con root senza password: il CIS benchmark che applico nelle prime due ore di hardening Su un VPS Hetzner AX41 con un e-commerce Laravel, MySQL 8.0 era raggiungibile da internet sulla porta 3306, l'utente root non aveva password, e l'applicazione usava root per tutte le operazioni - dal checkout alle migration. L'audit ha rivelato 14 violazioni del CIS Benchmark. Il protocollo di hardening che applico in due ore: mysql_secure_installation, segregazione utenti, bind su localhost, TLS obbligatorio, disabilitazione local_infile e audit log. Continua a leggere
Ultima modifica:

PHP-FPM che crasha sotto carico su VPS: come ho diagnosticato un OOM killer silenzioso su un portale Laravel con 200 utenti concorrenti

PHP-FPM che crasha sotto carico su VPS: come ho diagnosticato un OOM killer silenzioso su un portale Laravel con 200 utenti concorrenti Un portale B2B Laravel su VPS OVH andava in 502 Bad Gateway ogni giorno tra le 10 e le 11 del mattino - l'ora di punta degli ordini. PHP-FPM veniva ucciso dall'OOM killer del kernel perché pm.max_children era impostato a 200 su un server con 8 GB di RAM e worker da 80 MB ciascuno. La matematica non tornava: 200 × 80 MB = 16 GB, il doppio della RAM disponibile. Diagnosi con dmesg, tuning di pm.max_children, auto-restart con systemd e prevenzione. Continua a leggere
Ultima modifica:

Backup Laravel su VPS che falliscono da tre mesi senza che nessuno se ne accorga: diagnosi e strategia di ripristino

Backup Laravel su VPS che falliscono da tre mesi senza che nessuno se ne accorga: diagnosi e strategia di ripristino Su un VPS Contabo con un gestionale Laravel 10, i backup automatici con spatie/laravel-backup fallivano da tre mesi - disco pieno sullo storage S3, credenziali scadute, e il notification channel configurato su un webhook Slack che non esisteva più. Il titolare l'ha scoperto quando ha avuto bisogno di un restore. Diagnosi delle cause di fallimento, ripristino della pipeline, test di restore verificato e monitoring che avvisa davvero quando qualcosa non funziona. Continua a leggere
Ultima modifica:

Redis esposto senza password su un VPS Hetzner: come un cryptominer ha messo in ginocchio un'applicazione Laravel

Redis esposto senza password su un VPS Hetzner: come un cryptominer ha messo in ginocchio un'applicazione Laravel Un VPS Hetzner con Redis 6 esposto su 0.0.0.0:6379 senza password. Un attaccante ha usato il motore Lua integrato per scrivere un crontab che scaricava un cryptominer Monero. CPU al 100%, Laravel a 12 secondi di response time, e nessuno sapeva perché. Il caso reale di un SaaS piemontese del luglio 2025, la diagnosi in 40 minuti, l'eradicazione e l'hardening di Redis per impedire che succeda di nuovo. Continua a leggere
Ultima modifica: