OFFERTA LANCIO — LIMITATA Das Nest Lifetime 499 € 149 € Approfitta ora →
KakapoWP KakapoWP
Centro assistenza/Security/Configurare la sentinella dei file

Configurare la sentinella dei file

Vale per: Kakapo Security· 5 min di lettura

Prima acquisizione: creare lo stato di riferimento

Al primo avvio non c'è nulla da confrontare — il ciclo crea invece lo stato di riferimento: per ogni file un checksum (sha256 dove PHP lo mette a disposizione, altrimenti md5), più dimensione, data di modifica e area. Il tutto procede a porzioni, di fabbrica fino a 400 file o 5 secondi per passo; puoi chiudere la finestra e proseguire più tardi. Alla prima acquisizione non c'è una percentuale, perché il numero complessivo non lo conosce ancora nessuno — vengono mostrati i file letti e le directory ancora aperte. Importante da sapere prima: il guardiano si annota ciò che trova e lo considera corretto. Se non sei sicuro dello stato dell'installazione, fai girare prima l'integrità dei file (core contro WordPress.org) e la scansione malware. Dopo un trasloco o un ripristino la via pulita è «Scarta lo stato di riferimento»: tutti i checksum e i rilevamenti vengono meno, il ciclo successivo acquisisce da capo. È irreversibile.

Che cosa viene controllato — e che cosa no

Viene controllato l'albero a partire dalla directory di WordPress. Se presso il tuo hoster wp-content o la directory dei plugin si trovano al di fuori, si aggiungono come radice a sé e nella visualizzazione ricevono un proprio prefisso. Una wp-config.php che si trova un livello sopra l'installazione viene inclusa come singolo file indicato per nome e controllata per prima all'inizio di ogni ciclo — la directory superiore stessa non viene volutamente esaminata, perché presso la maggior parte degli hoster lì si trovano installazioni altrui e backup. Di fabbrica sono esclusi la directory degli upload e 15 modelli integrati per cache, file temporanei e log (tra gli altri wp-content/cache, wp-content/upgrade, node_modules, .git, *.log); puoi spegnere entrambi gli interruttori, ma allora il ciclo dura più a lungo e ogni caricamento di immagine genera un rilevamento. I modelli tuoi li aggiungi nell'elenco delle esclusioni: fino a 100 voci, ciascuna di massimo 200 caratteri. Un modello senza barra corrisponde a ogni segmento di percorso con quel nome, un modello con barra è ancorato alla radice, * vale all'interno di un segmento. Un modello che corrisponde a tutti i percorsi di esempio viene rifiutato — spegnerebbe la sorveglianza senza che lo si veda dall'elenco. Al momento dell'inserimento viene contato e mostrato quanti file dello stato di riferimento attuale vi ricadono. Non vengono letti i file oltre il limite di dimensione (di fabbrica 16 MB, regolabile da 1 a 512), i file illeggibili e tutto ciò che sta dietro un collegamento simbolico — questi casi compaiono nel risultato come numeri a sé e non valgono espressamente come «mancante».

Leggere e applicare i rilevamenti

Ci sono tre tipi: modificato, nuovo, mancante. Per ogni file compare nell'elenco al massimo un rilevamento aperto, con prima constatazione, ultima constatazione e contatore. Il confronto avviene con lo stato di riferimento confermato per ultimo, non con il ciclo precedente — perciò un rilevamento resta finché non lo applichi. Se il contenuto torna da sé a coincidere con lo stato di riferimento (aggiornamento annullato, file ripristinato), il rilevamento scompare; un nuovo file segnalato che poi sparisce di nuovo viene scritto con il suo percorso nel log delle attività invece di essere cancellato in silenzio. «Applica lo stato di riferimento» mostra prima che cosa succederebbe e lavora poi a blocchi da 500: i file modificati ricevono il loro nuovo checksum, quelli nuovi si aggiungono, quelli mancanti cadono. Ai file stessi non cambia nulla — ma il vecchio checksum dopo non c'è più, quindi guarda tutto ciò che non sai spiegarti prima di premere. Per l'archiviazione c'è un'esportazione CSV con fino a 2000 rilevamenti aperti, compresi vecchio e nuovo checksum. Due limiti li devi conoscere: oltre 3000 rilevamenti aperti il conteggio prosegue, ma non viene più salvato nulla (l'interfaccia lo dice), e della cronologia restano i 500 rilevamenti applicati più recenti. Un ciclo interrotto non individua i file mancanti — per questo serve un'esecuzione completa.

Segnalazione immediata per i file delicati

Acceso di fabbrica. «Delicato» qui non significa «importante», bensì: chi può modificare quel file esegue codice proprio o arriva ai dati di accesso. Sono wp-config.php, le configurazioni del server (.htaccess, .htpasswd, .user.ini, php.ini, web.config), i drop-in (db.php, object-cache.php, advanced-cache.php, sunrise.php e affini), i mu-plugin nonché i file PHP in punti in cui non dovrebbero essercene: nella directory degli upload, nella radice di WordPress e in wp-content al di fuori di plugins e themes. Queste segnalazioni partono alla fine di ogni porzione, non solo alla fine del ciclo — su un'installazione grande in mezzo ci sono ore. L'intervallo minimo è di fabbrica di 15 minuti (regolabile da 0 a 1440); ciò che si aggiunge in quel lasso di tempo viene raccolto e parte con la segnalazione successiva, non va perso nulla. Una segnalazione elenca al massimo 200 voci, il resto viene indicato come numero. Alla fine del ciclo e in caso di interruzione il resto viene svuotato senza riguardo per l'intervallo. Prova una volta il percorso con la segnalazione di prova: ti dice espressamente se wp_mail() ha accettato o rifiutato il messaggio — se poi venga recapitato lo decide il server a valle. Puoi indicare come delicati anche modelli tuoi; i rilevamenti aperti vengono subito riclassificati, così l'elenco non mostra due verità.

Automatismo e calendario

Di fabbrica il ciclo parte solo se lo avvii tu. Se accendi l'automatismo, scegli tra ogni ora, due volte al giorno, ogni giorno (impostazione predefinita) e ogni settimana. Il primo appuntamento è fissato di proposito 5 minuti nel futuro, così un ciclo non parte proprio mentre stai lavorando nel backend. Il conteggio parte dall'inizio dell'ultimo ciclo, con 5 minuti di tolleranza — altrimenti un ciclo lungo girerebbe ogni volta più di rado. Il cron elabora le stesse porzioni e si riprogramma ogni 30 secondi finché resta qualcosa in sospeso; se sei tu stesso al volante nel browser, aspetta 120 secondi e non mette le mani sullo sterzo. Due conducenti sullo stesso incarico li esclude un token che viaggia avanti con ogni risposta; il blocco scade dopo 60 secondi, così un browser chiuso di colpo non blocca l'incarico in modo permanente. Se nella tua installazione è impostato DISABLE_WP_CRON, al momento dell'accensione il messaggio ti avvisa che il ciclo parte solo se wp-cron.php viene richiamato dall'esterno — cioè se è configurato un cronjob sul server.

Questo articolo ti è stato utile?