Archives For MySQL

Rispondo a una domanda abbastanza comune che viene generalmente rivolta a mezzo mail o tra una chiacchiera e l’altra quando ci si trova con conoscenti che muovono passi autonomi sul web. WordPress è meraviglioso, è adatto a qualsiasi tipo di sito web e sì, può contare su una miriade di temi e plugin disponibili gratuitamente e a pagamento.

Quali sono però i 5 passi comuni per evitare che qualcosa vada storto esponendosi a un attacco dall’esterno? Provo a darti una base –spero– solida.

WordPress: 5 step per la sua (e tua) sicurezza

Questo nuovo articolo va a riprendere (parzialmente) e fare coppia con uno più vecchio, che trovi ancora qui. Cominciamo?

Occhio a username e password

Che vuol dire tutto e nulla.

WordPress: 5 step per la sua (e tua) sicurezza 3

Ciò che intendo è, per esempio, non utilizzare l’account amministrativo di default (che va quanto prima degradato a semplice utente, se non addirittura eliminato), in favore di un nuovo account da te appositamente realizzato, amministrativo, con username non facilmente indovinabile e con una password complessa (parleremo anche di password robuste quanto prima, ma ti porto a questa vignetta, che tanto spiega in merito). Non utilizzare la stessa password che hai già usato in passato per altri servizi. Fatti aiutare da un buon password manager se ti serve.

Inutile dire che l’autenticazione e due fattori è ormai una cosa fondamentale. Dai un’occhiata qui per capire di cosa sto parlando: gioxx.org/2016/09/01/wordpress-e-authy-autenticazione-onetouch.

Verifica i plugin installati

Che si traduce con:

  • utilizza dei plugin costantemente mantenuti, che non superino (se possibile) i 6 mesi dall’ultima data di aggiornamento;
  • cancella quelli non più utilizzati, che non ti servono, non pensare che un domani possano tornarti utili ancora, perché si fa sempre in tempo a ricercarli nuovamente e reinstallarli;
  • cerca di rimanere informato in merito ai loro cambiamenti, perché è facile che un attacco possa sfruttare falle in loro integrate (oppure in servizi a cui si appoggiano).

Capisco che spesso non è cosa semplice, però potrai sempre chiedere un aiuto alle community di condivisione e assistenza sul mondo WordPress in giro per il web, già più approcciabile per chiunque.

Aggiorna WordPress

Ma anche i plugin, che poi potrebbe ricadere nella voce precedente.

WordPress: 5 step per la sua (e tua) sicurezza 2

Tenere aggiornato ogni sistema (non solo operativo) è fondamentale per tappare falle scoperte e dichiarate, prima che qualcuno le sfrutti nella peggior maniera possibile. Quando viene pubblicata una nuova versione di WordPress, questa va a correggere problemi e anomalie generalmente importanti, che ti permettono di dormire sonni tranquilli. Per fortuna, salvo problemi o limitazioni imposte, WordPress aggiorna automaticamente ogni minor release, lasciando a te l’onere di pensare alle major.

Aggiornare costa solo un paio di clic, ma prima di farlo ricorda di verificare che non ci sia del codice personalizzato che possa smettere di funzionare in seguito all’operazione (chiedi aiuto al tuo sviluppatore nel caso non sia tu direttamente a occuparti del tuo blog).

Tieni sempre un backup aggiornato

WordPress: 5 step per la sua (e tua) sicurezza 4

Sia del database, sia dei file salvati sullo spazio disco del server. Se i secondi cambiano forse meno spesso (occhio però alle immagini e più in generale ai media caricati online), il primo è in costante crescita e modifica. Avere una copia di backup aggiornata è fondamentale per evitare di incorrere in possibili disastri (causati da te, dal tuo provider o da qualcuno di completamente estraneo).

Per portare a termine questa operazione esistono decine di plugin, sia gratuiti che a pagamento. Io ho scelto di affidarmi a BackUpWordPress della Human Made.

BackUpWordPress
BackUpWordPress
Price: Free

Comodo, molto personalizzabile e disponibile anche in versione gratuita limitata (io uso questa), lasciando fare poi a SyncBack il lavoro sporco (quello del download totale di tutti i file, backup compresi). Ce ne sono anche altri (di plugin, intendo), magari prova a dare un’occhiata a questo articolo di ThemeTrust pubblicato qualche tempo fa: themetrust.com/wordpress-backup-plugins (e provali sempre in ambiente di test, mai di produzione!)

Utilizza un plugin di sicurezza

WordPress: 5 step per la sua (e tua) sicurezza 1

Che sembra una sciocchezza, forse, ma non lo è. Un plugin di sicurezza ti aiuta a prenderti cura della tua installazione WordPress, suggerendoti dove mettere mano per evitare sgradite sorprese. Ne esistono di ogni tipo, e generalmente sono tutti in grado di suggerire buone strategie di protezione della propria area amministrativa, fare scansioni alla ricerca di possibili anomalie (sfruttabili dall’esterno), limitare gli accessi di ogni utente conosciuto (e non, soprattutto).

Io utilizzo da tempo iThemes Security (ex Better WP Security). Ne ho parlato in maniera approfondita in un precedente articolo disponibile qui:

Proteggere WordPress da login non autorizzati

Tutto chiaro? Al solito: per consigli, suggerimenti e critiche costruttive, l’area commenti è a tua totale disposizione, sempre ben felice di leggere cose nuove e interessanti! Per il supporto, invece, vi rimando al forum di ogni singolo plugin, o genericamente al forum della community italiana di WordPress.

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

Per circa un giorno (qualcosina in più, in realtà), fuorigio.co è rimasto down a causa di OVH e dei problemi relativi agli storage che ospitano i database MySQL. No SLA, “no-excuses”, niente di niente. Una telefonata al supporto, un paio di pagine dedicate allo stato di “salute dei servizi” e a ciò che stanno facendo per riportare online (ancora adesso) un numero non meglio definito di siti web. Gli operatori non sanno più che raccontare, quasi sono stufi di stare a sentire l’ennesima lamentela di persona pagante che non può sfruttare il servizio, e non certo per “una manciata di minuti“.

Che cosa sta succedendo a Fuorigio.co (e OVH)?

Agevolo URL che passano da Google Translate per trasformare il francese in inglese (ma perché usare il francese per qualcosa che impatta mezzo mondo? Credo che l’inglese in questi casi sia un atto dovuto, nda):

113 VM with the databases were impacted.

We are sincerely sorry for this failure. The
The last breakdown of this magnitude dates from 2006 and
At the time, we questioned all the
Storage technologies that we use at Ovh.
This breakdown is one more lesson and we will
To communicate the changes that will take place
End of this incident to avoid relive the next
Breakdown of this magnitude in 10 years.

Che un danno simile non si verificasse dal 2006 è lodevole (anche se lo considero più che normale, quando si svolge questo tipo di lavoro e si ha a che fare con così tanti clienti), che tutte le buone intenzioni (“per evitare ulteriori disastri per almeno altri 10 anni”) ci siano lo è altrettanto, ma che un sito web non torni up&running in tempi più decenti proprio no. Il nostro è un progetto che gestiamo nel tempo libero, che portiamo avanti per pura passione, che non ci paga gli stipendi. Se fosse stato qualcosa di diverso, qualcosa che non necessitava delle risorse messe a disposizione da un server dedicato (VPS e famiglia) o un investimento più grande (necessario per salire lo scalino da hosting condiviso a dedicato), quanto sarebbe stato carino e cortese dire “Niente SLA, sono cose che possono succedere e non ci sarà rimborso alcuno“?

A questo punto non resta che aspettare. Il nostro piccolo progetto collaterale è ora online ma con una caterva di errori WordPress randomici dovuti alla mancata possibilità di scrivere nel database attualmente tornato inizialmente disponibile in sola lettura, con tanto di informazioni in bella vista che non posso andare a togliere se non oscurando completamente il sito web. Cambierò nome, password e qualsiasi altra informazione a quel database, per evitare possibili ulteriori problemi in futuro.

L’amaro in bocca me lo rimetto nel sacco, il tempo perso invece no, quello è certamente passato a miglior vita, ora non resta che lavorare.

Condividi l'articolo con i tuoi contatti:

Stavo facendo regolare manutenzione della macchina di HelpDesk (quella che in ufficio fa girare un’installazione di ServiceDesk Plus, te ne ho già parlato in passato) e mi sono accorto che nel database, la tabella relativa ai log di errore, era cresciuta fino a toccare quota 5,5 GB circa. Dato che con la migrazione a Windows 2012 Server ci siamo portati dietro lo storico di quanto operato fino a quel momento, ho contato nell’errorlog qualcosa come 200.000 eventi e più, circa 6 anni di onorato servizio. Era arrivato il momento di fare un po’ di pulizia.

ServiceDesk: una toolbar personalizzata sempre in vista 1

Per farla breve: utilizzare la GUI in questo caso è impossibile. Gli eventi sono troppi, il software di HelpDesk non è in grado di navigare correttamente tra le tab del log. È quindi consigliato operare direttamente sul database, dopo aver eseguito un backup dello stesso (non si sa mai, fallo senza pensarci due volte e mettiti al sicuro). L’operazione richiederà un rapido fermo dei servizi (immediatamente riavviabili) e non dovrebbe impattare troppo sull’attività dei tecnici e degli utenti, ammesso che il server che ospita l’applicazione abbia sufficiente RAM e CPU a disposizione per tenere a bada i consumi del motore SQL (nel mio caso MySQL) e Java.

Per effettuare una buona pulizia, sono stato anche costretto a un rapido tuning dell’applicativo, andando a modificare alcuni parametri consigliati da Manage Engine. Mettiti “comodo” (si fa per dire) e preparati a fare qualche ritocco sotto al cofano.

Pulizia e Tuning di sistema

Volendo tenere gli ultimi 60 giorni di log e quindi buttare via tutto il resto, sarà necessario dare alla macchina un attimo più di sprint, questo è necessario nel caso in cui quella tabella sia troppo ricca di eventi (puoi vederlo tu stesso con un semplice clic su Community (l’icona del supporto, nelle ultime versioni di ServiceDesk Plus) → System Log Viewer:

Pulizia e Tuning di ServiceDesk Plus

Come detto prima, quel numero “of 2368” superava i 200.000!

Una volta connesso al DB MySQL, l’operazione di pulizia fallirà quasi certamente a causa del buffer InnoDB “troppo stretto“. Puoi controllare tu stesso. Per connetterti al MySQL che sta girando sulla macchina dovrai aprire un prompt dei comandi, quindi andare in C:\ManageEngine\ServiceDesk\mysql\bin, ammesso che tu abbia installato tutto nel disco principale del server (altrimenti sostituisci C:\ con la lettera del drive all’interno del quale si trova ServiceDesk Plus).

Se anche il tuo ServiceDesk Plus utilizza MySQL, continua la lettura delle istruzioni di seguito, in caso contrario dovrai modificare il metodo di collegamento (consulta questa risposta sul forum ufficiale: forums.manageengine.com/topic/how-to-delete-all-log-files#49000007368489):

mysql.exe -u root -P 33366 servicedesk

Una volta connesso, lancia la cancellazione dell’intervallo desiderato (nell’esempio, ho mantenuto 60 giorni di storico, tu puoi ovviamente modificarlo aumentandolo o diminuendolo a piacere), l’istruzione di seguito è valida per MySQL:

delete from errorlog  WHERE DATEDIFF(NOW(),FROM_UNIXTIME(OCCURREDTIME/1000))  >60;

Quasi certamente arriverai a vedere l’errore 1206, causato dall’elevato numero di lock rispetto allo spazio a disposizione in tabella. Per verificare il perché, prova a lanciare uno show global variables like 'innodb_buffer%':

Pulizia e Tuning di ServiceDesk Plus 1

Quel valore (8,388,608 espresso in byte) è basso, è circa l’equivalente di 8MB, non è sufficiente. Per questo motivo sarai costretto a modificare il batch che si occupa di lanciare il motore SQL di ServiceDesk Plus, in base alla RAM a tua disposizione sul server, secondo quanto suggerito nel forum del prodotto: forums.manageengine.com/topic/manage-engine-supportcenter-plus-slowness-and-takes-ages-to-load-the-request-screen. La mia macchina ha più di 4GB di RAM, per questo motivo ho aperto C:\ManageEngine\ServiceDesk\bin\startDB.bat e ho inserito i vari parametri suggeriti:

@start "MySQL" /B "%DB_HOME%\bin\mysqld-nt" --standalone --lower-case-table-names=1 --basedir="%DB_HOME%" --port=%DB_PORT% --datadir="%DB_HOME%\data" --default-character-set=utf8 --set-variable=query-cache-type=2 --read_buffer_size=128K --read_rnd_buffer_size=2M --sort_buffer_size=4M --myisam_sort_buffer_size=8M --key_buffer_size=64M --innodb_buffer_pool_size=750M --bulk_insert_buffer_size=16M --table_cache=1024M --innodb_flush_log_at_trx_commit=0 --low-priority-updates

Stessa sorte toccata al file di configurazione del Wrapper Java, quello che trovi in C:\ManageEngine\ServiceDesk\server\default\conf\wrapper.conf, modificato alla stessa maniera e ritoccato sui due valori suggeriti, da:

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=128

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=256

a (nel caso della mia macchina con più di 4GB di RAM, occhio quindi alla tua):

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=256

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=1024

A questo punto potrai fermare e avviare nuovamente il tuo ServiceDesk Plus. Così facendo, collegandoti nuovamente al database, dovresti poter notare che il valore di innodb_buffer_pool_size è aumentato fino a toccare la quota richiesta dalla tua modifica nel file batch (startDB):

Pulizia e Tuning di ServiceDesk Plus 2

Ora potrai finalmente lanciare la pulizia, che non dovrebbe più bloccarsi, e che dovrebbe pulire quanto richiesto entro qualche minuto di lavoro al massimo:

Pulizia e Tuning di ServiceDesk Plus 3

Ora finalmente potrai navigare il System Log da interfaccia grafica di ServiceDesk Plus, avrai reso più rapidi i backup da eseguire quando si lancia un upgrade di prodotto e avrai risparmiato un po’ di spazio su disco, il tutto condito da una maggiore velocità di avvio della piattaforma.

Non male, vero? :-)

Condividi l'articolo con i tuoi contatti:

Altervista ha segnato per sempre la storia del free-hosting italiano quando anni fa (la sua creazione risale al 2000) è sceso in campo a combattere contro gente dal calibro decisamente più grosso, ma evidentemente meno preparata al rapido cambiamento del web e le costanti necessità dei suoi utilizzatori. Anche “gioxx”  ha fatto parte di Altervista, possiedo ancora quel dominio (gioxx.altervista.org), ma conservo al suo interno vecchie pagine che mettevo in piedi per raccogliere i materiali relativi alle prove di maturità delle scuole superiori (mi sono diplomato nel 2004, ho aggiornato quella raccolta fino al 2011).

Chevereto e Altervista: consigli per non perdere la testa 4

Su un diverso sito web (sempre ospitato sui server di Altervista) ho provato a installare Chevereto, un’applicazione di image hosting, che permette di caricare facilmente immagini sul web e ottenere collegamenti per ogni utilizzo (BBCode, HTML, ecc.). Lo usiamo già da anni per Mozilla Italia, ne avevo installato una versione molto vecchia per provarlo, ci è piaciuto, lo abbiamo tenuto e aggiornato (la licenza permette multiple installazioni, senza limiti).

Salto tutta la parte relativa all’installazione del software e ti dico già che lo script di installazione automatica non funziona correttamente su Altervista. Scarica autonomamente il pacchetto completo di script da installare e caricarlo sul tuo spazio web. A questo punto assicurati di avere una configurazione in grado di supportare un corretto funzionamento del software:

Senza queste, Chevereto non potrà lavorare correttamente e restituirà errori a video (o in alternativa dei semplici warning, alquanto fastidiosi in ogni caso). Ciò che in realtà devi sapere, è che quando aggiorni Chevereto dovrai rifare lo stesso mestiere, perché l’aggiornamento automatico non è in grado di funzionare correttamente.

Una volta caricati i file necessari sul server, otterrai molto probabilmente questo errore a video:

Chevereto e Altervista: consigli per non perdere la testa 2

Verifica che il file HTACCESS nella root dell’installazione di Chevereto abbia la RewriteBase / non commentata:

# If you have problems with the rewrite rules remove the "#" from the following RewriteBase line
# You will also have to change the path to reflect the path to your Chevereto installation
# If you are using alias is most likely that you will need this.
RewriteBase /

e che la versione del motore PHP utilizzato sia la 5.6, lasciando abilitate le register_globals:

# # av:php5-engine
AddHandler av-php56 .php

# # av:PHP-RG
php_flag register_globals on

Solo così potrai finalmente terminare l’operazione di update (quella che lanci tramite un URL ben preciso) e rendere perfettamente visibile e funzionante ogni URL legato al tuo hosting di immagini personali.

Respira, hai appena terminato di imprecare. Ah, consiglio spassionato per la prossima volta: se vuoi, tutela il tuo .htaccess evitando che i file aggiornati di Chevereto vadano a sovrascriverlo (solo lui eh, il resto va sovrascritto sul serio).

G

Condividi l'articolo con i tuoi contatti:

Non so se ti è mai capitato di dover sostituire in un solo colpo tutti i riferimenti a un testo o un link ben preciso all’interno degli articoli del tuo blog. A me si, è arrivata la richiesta (non molto tempo fa a dirla tutta) di modificare i puntamenti verso un sito web che ha cambiato dominio, e che avevo citato in diverse occasioni qui nel mio blog. Si è trattata di una domanda lecita alla quale ho dato risposta portando a termine la modifica. Ho eseguito una semplice query MySQL via phpMyAdmin, ma ho voluto cercare un’alternativa nel caso in cui di fronte al monitor ci sia una persona che non si fida delle operazioni a cuore aperto sul database.

WordPress: suggerimenti sulla gestione delle immagini 2

L’alternativa che ho trovato e provato si chiama Better Search Replace, è gratuita e si trova nel repository ufficiale dei plugin di WordPress:

Better Search Replace
Better Search Replace
Developer: Delicious Brains
Price: Free

È un plugin molto utilizzato, perfettamente compatibile anche con le ultime versioni di WordPress e non fa altro che simulare il tuo intervento sul database MySQL, facilitando (e di molto) la costruzione di ciò che si vuole ritoccare, lasciando al codice sorgente ciò che potrebbe esserti più ostico da imparare e saper maneggiare. L’utilizzo è banale e può simulare l’operazione prima di lanciarla sul serio, così da permetterti di capire cosa il programma andrà a ritoccare nel tuo database dove le tabelle di WordPress potrebbero contenere il testo o i collegamenti da modificare.

Dalla dashboard del blog, ti basterà accedere a ToolsBetter Search Replace, da qui potrai vedere le tabelle contenute all’interno del database (box Select Tables), le quali saranno selezionabili proprio per permettere al plugin di effettuare la ricerca al loro interno, con eventuale successiva sostituzione testo. Nel box Search for andrà inserito il testo da ricercare all’interno delle tabelle, mentre in Replace with ciò che prenderà il suo posto. Se vuoi assicurarti che nulla andrà storto, seleziona l’opzione in corrispondenza di Run as dry run? (If checked, no changes will be made to the database, allowing you to check the results beforehand), ti permetterà di ottenere comunque un risultato a video (potrai anche leggerne il dettaglio come da seconda schermata nella galleria di seguito), ma senza effettuare realmente la modifica al database.

Tutto pronto? Sei tranquillo? Ok, lancia la modifica allora, non impiegherà poi tanto (a meno di voler sostituire mezzo contenuto dei database). Al termine ti verrà notificato e potrai -se vorrai- disattivare o disinstallare il plugin se non lo ritieni più utile.

Questo tipo di modifiche le ho operate in passato anche tramite Redirection, il plugin ben più complesso e ideato per altri motivi, ma che può tornare utile anche per questo mestiere. Se lo utilizzi già, sappi che ti basterà cercare parte dell’URL che vuoi sostituire e farlo anche tramite lui, è solo un pelo più macchinoso e forse lento.

Condividi l'articolo con i tuoi contatti: