Archives For Gioxx’s Wall

Qualche tempo fa ho avuto un problema piuttosto fastidioso: qualcuno ha deciso che uno specifico articolo di questo blog era poco gradito, buon (?) motivo per rompermi le scatole e saturare le risorse messe a disposizione dal mio hosting provider (che ringrazio per la pazienza). Per cercare di correre ai ripari, ho incattivito l’opzione di un plugin che già utilizzavo e che utilizzo ancora oggi, iThemes Security (ex Better WP Security).

Proteggere WordPress da login non autorizzati

Ci sono molteplici modi per proteggere l’accesso al wp-login.php, questo è uno tra i tanti attuabili senza molta fatica, una soluzione tutto sommato semplice da mettere in piedi.

Il mio consiglio? Fallo dopo aver chiuso l’accesso al sito web “al pubblico“, perché se è vero che sei sotto attacco, è anche vero che le risposte del tuo blog potrebbero andare in timeout, non arrivare mai. Per chiudere l’accesso a tutti tranne che a te dovrai conoscere il tuo indirizzo IP (mioip.it aiuta in questi casi) e sbarrare le porte grazie al file htaccess. Farlo è semplice, ti basterà creare (o modificare quello esistente) il file inserendo questo pezzo di codice:

order deny,allow
deny from all
allow from 127.0.0.1

Sostituisci il 127.0.0.1 con il tuo IP, carica il file .htaccess nel tuo spazio web (ripeto: se lo hai già, modifica quello che hai e non sovrascriverlo) e il gioco è fatto. Nessuno potrà visitare il tuo sito web a eccezione di te. Così facendo dovresti tagliare fuori il resto del mondo e avere campo libero per lavorare.

Installa iThemes Security e attivalo, così possiamo passare alla sua configurazione, e nello specifico quella utile a proteggere il blog da ripetuti tentativi di accesso alla dashboard di amministrazione o a un URL in particolare (giocando un pelo in contropiede e cambiando le carte in corsa, per poi rimetterle al loro posto).

Il plugin propone moltissime opzioni che ti consiglio caldamente di analizzare, ragionare e attivare secondo tue necessità, io preferisco saltare sulla singola esigenza di stavolta, andiamo con ordine.

404 detection

Servirà a proteggerti da chi tenta di raggiungere costantemente URL non esistenti, le sue impostazioni (e i limiti oltre i quali mandare in ban l’IP di chi ci sta provando) si trovano però in Global Settings, nello specifico parlo di:

  • Blacklist Repeat Offender, che deve essere assolutamente attivo.
  • Blacklist Threshold, che corrisponde al numero di tentativi da abbuonare all’IP prima di escluderlo in maniera definitiva (impedendogli di visualizzare il sito web).
  • Blacklist Lookback Period, che corrisponde al numero di giorni durante i quali quell’IP continuerà a rimanere sotto controllo (per capirci: se il limite di lockout è 2, per il numero specificato di giorni basterà farne un altro per andare in ban, una soluzione molto secca, tanto chi attacca generalmente raggiunge il limite di lockout nel giro di qualche minuto al massimo).
  • Lockout Period, che corrisponde all’intervallo di tempo (in minuti) di allontanamento di quell’IP dal blog.
  • Lockout White List è invece il box adatto a raccogliere gli IP che non devono essere soggetti alle impostazioni sopra riportate.

In tutto questo, nella stessa tab (Global Settings, nda), potrai scegliere di essere avvisato dei lockout e dei ban a mezzo posta elettronica (l’opzione da spuntare è Enable Email Lockout Notifications), che poi è un po’ come avere l’immediato polso della situazione …

Proteggere WordPress da login non autorizzati 1

e pensa che quella che vedi qui sopra è solo una parte dei ban a me notificati nel periodo dell’attacco, in pratica un campo di battaglia senza esclusione di colpi (sono arrivato a toccare quota 400 ban circa in un paio di giorni).

Banned Users

Passa ora alla tab Banned Users e imposta ciò che credo possa esserti più utile, ovvero:

  • Default Blacklist, che ti permetterà di sfruttare liste già popolate e verificate, offerte da HackRepair.com.
  • Enable Ban Lists, che manco a dirlo è tutto ciò che serve per iniziare a fare la raccolta differenziata di IP che servono evidentemente poco alle tue visite, ma che minano per troppo tempo la tua pazienza.

Volutamente non ho specificato (almeno fino a oggi) degli User Agents specifici. Generalmente quelli più fastidiosi vengono lasciati liberi nel web da player molto grandi, motori di ricerca, servizi. Ricorda che potrai comunque appoggiarti a questa ulteriore funzione in qualsiasi momento, in caso di necessità.

Local Brute Force Protection

Ciò che più va a “braccetto” con la protezione relativa agli errori 404, opzioni che riguardano stavolta il login alla Dashboard amministrativa di WordPress e che –secondo me– devono essere altrettanto restrittive e di difficile perdono, perché se sei davvero il gestore del blog, hai anche la possibilità di chiuderti fuori dalla porta ma conoscere il trucco delle chiavi sotto al tappeto, andando a disabilitare il plugin (rinominando la sua cartella nello spazio FTP) in caso di errore ripetuto e non voluto.

  • Max Login Attempts Per Host: specifica qui il numero di tentativi massimi di login per un singolo host (IP) prima di finire nella lista dei cattivi, in alternativa puoi lasciarlo a zero per evitare di mandare in ban l’indirizzo IP e decidere di rendere sufficientemente cattivo il Max Login Attempts Per User, che si riferisce invece al numero massimo di login di uno specifico utente (che può utilizzare più IP sorgenti, giusto per capirci).
  • Minutes to Remember Bad Login (check period) indica, come per il Blacklist Lookback Period di prima, il tempo che deve passare prima che il plugin dimentichi uno dei tentativi andati a male precedentemente.
  • Automatically ban “admin” user è –infine– quella che preferisco, perché la prima regola di qualsivoglia installazione di WordPress è quella di andare a disattivare o eliminare completamente l’admin creato di default dall’installazione, creandone uno che abbia uno username del tutto differente. Se qualcuno tenta di entrare come “admin” nel tuo blog, probabilmente si tratta di un bot, meglio estirparlo sul nascere, senza pensarci due volte.

C’è altro?

Si, molto. C’è da dare un’occhiata alla Network Brute Force Protection, alla File Change Detection (ciò che ti avvisa nel caso in cui vengano modificati dei file), alla WordPress Tweaks (per disattivare opzioni non necessarie e regolare l’accesso a risorse di WordPress) e tanto altro ancora, davvero. Prenditi il tempo necessario, studia tutte le possibilità offerte dal plugin, valuta se l’opzione Pro (a pagamento) proposta dallo stesso sviluppatore fa al caso tuo, imposta la migliore configurazione tenendo presente che in caso di configurazione errata o particolarmente cattiva, potrebbe chiuderti fuori dalla porta senza neanche passare dal via e prendere le duemila lire.

Quanto fatto però non basta, perché se l’attacco è verso uno specifico URL esistente, dovrai temporaneamente mettere offline il contenuto, oppure scegliere di cambiargli indirizzo, almeno per un periodo durante il quale ogni attacco non andrà a buon fine e porterà direttamente al ban, raccogliendo una serie di IP dai quali proteggersi. Concludi l’operazione andando a rimettere a posto il file .htaccess precedentemente modificato, per permettere a tutti di accedere nuovamente al blog. Le risorse del provider saranno ora più che sufficienti e potrai sopportare nuovamente il tuo carico di visite, quelle vere e assolutamente gradite.

Dopo aver adottato la soluzione, ho potuto rimettere abbastanza rapidamente online il contenuto precedentemente attaccato, che ancora oggi fa parte degli archivi di questo blog e che spero possa rimanere lì per molto altro tempo (no, non dirò di quale si tratta) :-)

L’area commenti è –come sempre– a totale disposizione per ulteriori soluzioni, alternative, commenti, critiche costruttive e per raccolte di “beneficenza“, che Natale si avvicina e sta baracca bisogna pur pagarla per tenerla viva e vegeta.

Estote parati (cit.).

G

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!

È che se non c’è un appuntamento con Disqus di tanto in tanto, è come se mancasse qualcosa. Nulla di complesso, ancora una volta: si tratta infatti di impostare dei filtri sui contenuti dei commenti che vengono pubblicati sul vostro blog o sito web. La moderazione non è mai cosa bella, bisognerebbe permettere a tutti di dire la propria, limitando però –quando possibile– l’utilizzo di termini non consoni a una discussione civile. Vale anche per parole che proprio non sopportate, c’è stato il periodo dell’invasione dei prestiti da queste parti, cosa affatto bella.

Disqus: abilitare i filtri sui commenti

L’immagine non è aggiornata. Ora l’interfaccia è leggermente cambiata, più pulita e immediata.

Partendo dalla propria area amministrativa, vi basterà selezionare la voce “World filters” (la raggiungete anche andando all’indirizzo VOSTROUTENTE.disqus.com/admin/settings/access/#!/?l=). Inserite nel blocco disponibile tutta la serie di parole suggerite (a.disquscdn.com/1447462530/sample-badwords.txt), e aggiungete in coda quelle che ritenete opportuno fermare, distanziando una parola dall’altra con una semplice virgola. Io ho personalmente inserito in lista la parola “prestito”, così come già detto, quindi questo è il mio gruppo:

.*fuck.*, .*whore.*, 5h1t, 5hit, a55, anal, anus, ar5e, arrse, arse, ass, asses, assfukka, asshole.*, b!tch, b00bs, b17ch, b1tch, ballsack, bastard, beastial.*, bestial.*, bi+ch, biatch, bitch.*, blow job, blowjob, blowjobs, bollock, bollok, boner, buceta, bukkake, butthole, buttmunch, buttplug, c0ck, c0cksucker, carpet muncher, chink, cl1t, clit, cock, cock-sucker, cockface, cockhead, cockmunch.*, cocks, cocksuck.*, cocksuka, cocksukka, cok, cokmuncher, coksucka, coon, cox, cum, cummer, cumming, cums, cumshot, cunilingus, cunillingus, cunnilingus, cunt, cuntlick.*, cunts, cyalis, cyberfuc, d1ck, dick, dickhead, dirsa, dlck, donkeypunch.*, doosh, duche, dyke, ejaculat.*, ejakulate, f u c k, f u c k e r, f_u_c_k, fag, fagging, faggitt, faggot, faggs, fagot, fagots, fags, fatass, fcuker, fcuking, feck, fecker, felch.*, fellate, fellatio, flange, fleshflute, fook, fooker, fudge packer, fudgepacker, fuk, fuker, fukker, fukkin, fuks, fukwhit, fukwit, fux, fux0r, gangbang.*, gaylord, gaysex, goatse, hardcoresex, hell, heshe, hoar, hoare, homo, horniest, horny, hotsex, jack-off, jackoff, jap, jerk-off, jizz, kike, knob, knobead, knobed, knobend, knobhead, knobjocky, kondum, kondums, kum, kummer, kumming, kums, kunilingus, m0f0, m0fo, m45terbate, ma5terb8, ma5terbate, masochist, master-bate, masterb8, masterbat.*, mo-fo, mof0, mofo, muff, mutha, muthafecker, nazi, nigga, niggah, niggas, niggaz, nigger, niggers, nob, nob jokey, nobhead, nobjocky, nobjokey, numbnuts, nutsack, orgasim, orgasims, orgasm, orgasms, p0rn, phonesex, phuck, phuk, phuked, phuking, phukked, phukking, phuks, phuq, pimpis, poop, porn, porno, pornography, pornos, prestito, prick, pricks, pube, pusse, pussi, pussies, pussy, pussys, rectum, retard, rimjaw, rimming, s_h_i_t, sadist, schlong, screwing, scroat, scrote, scrotum, semen, sex, sh!+, sh!t, sh1t, shemale, shi+, shit, shitdick, shite, shithead, shiting, shitings, shits, shitted, shitter.*, shitting.*, shitty, skank.*, slut, sluts, smegma, smut, snatch, son-of-a-bitch, spic, spunk, t1tt1e5, t1tties, tit, tits, titt, tittie5, titties, tittywank, titwank, tosser, tw4t, twat, twathead, twatty, twunt.*, v14gra, viagra, wank.*, whoar, willies, xrated, xxx

Lista che può solo crescere, lista all’interno della quale possono esistere anche gli asterischi come carattere jolly e siti web (per intero, o anche solo in parte). Salvate il vostro lavoro, la modifica sarà così operativa e riceverete una nuova notifica ogni volta che qualcuno proverà a inserire un commento contenente anche solo una delle parole dell’elenco.

Avete una doppia installazione di WordPress. Magari una di queste è comune a molti autori, un progetto, un qualcosa di costantemente mantenuto in parallelo al sito web che tutti possono vedere perché così sarete in grado di testare modifiche prima di portarle in produzione. Non è fantascienza, è pura necessità quando si vuole evitare di andare offline per uno stupido errore dovuto a un plugin, una modifica al tema grafico o chissà cosa. Dalla stessa necessità nasce anche “Environment Notice“, banale plugin che permette di mostrare a chiunque sia collegato in Dashboard un messaggio che gli ricorda che è attualmente loggato nell’installazione “di test” di WordPress.

Environment Notice

Environment Notice è attualmente utilizzato anche su Gioxx’s Wall e Fuorigio.co, ed è stato realizzato basandomi sull’idea dello storico plugin di @fullo (anche se il suo avvisava di un articolo più vecchio di un certo numero di mesi).

Il codice è stato interamente pubblicato sul Wiki ed è possibile scaricare una copia del file PHP da caricare poi sul proprio spazio web: public.gfsolone.com/wiki/doku.php?id=wordpress:environmentnotice.

Attivazione ed utilizzo

Potete scaricare il file del plugin direttamente facendo clic qui, dovrete poi caricarlo nella cartella wp-content/plugins del vostro spazio web. Entrate nella Dashboard del vostro WordPress e attivatelo:

Environment Notice per WordPress 1

In Plugins / Environment Notice potrete (e dovrete, nda) specificare l’URL dell’installazione di produzione di WordPress alla quale intendete rimandare l’utente collegato in Dashboard:

Environment Notice per WordPress 2

Inutile dire che il risultato è già visibile nello screenshot appena inserito, ma se non dovesse essere sufficientemente chiaro, sappiate che tutti gli utenti che navigano la Dashboard di WordPress vedranno il messaggio che li esorta a passare all’installazione di produzione nel caso in cui vogliano pubblicare qualcosa di nuovo:

Environment Notice per WordPress 3

Il messaggio è predefinito ma potete sempre cambiarlo modificando il codice sorgente PHP del plugin (nessuno ve lo vieta), le informazioni riguardo l’URL dell’installazione WordPress di test vengono invece prese automaticamente. L’immagine viene caricata direttamente da questo blog che spero possa essere sempre online, magari una prossima versione la caricherà da una apposita cartella, vedremo :-)

Tutto qui, il lavoro è già fatto ed è pronto chiavi in mano, come al solito se riscontrate problemi o avete domande l’area commenti è a vostra totale disposizione.

Buon lavoro!

Disqus è un ottimo sistema di commenti per il vostro blog (o per qualsiasi altro tipo di sito web, ndr) che io stesso utilizzo anche per Gioxx’s Wall o Fuorigio.co. C’è però un’opzione che spesso viene tralasciata quando in realtà la sua utilità è indubbia: la notifica dei commenti in ingresso che non siano di spam o in richiesta di approvazione (per i quali è già attivata di default una notifica a mezzo mail verso il vostro indirizzo di posta elettronica).

Disqus: abilitare le notifiche per ogni nuovo commento al vostro blog

Si perché, a meno che il vostro lavoro principale non sia costituito dal vostro blog, possono esserci quei periodi in cui siete talmente presi da altro tipo di attività che faticate ad aprire la pagina del vostro blog, che magari nel frattempo ha mandato in pubblicazione articoli precedentemente scritti e per i quali qualcuno ha chiesto informazioni o semplicemente fatto partire una discussione per uno scambio di opinioni. Maleducato non rispondere, spesso non lo si fa apposta proprio perché non si viene notificati dell’arrivo di quel commento.

Risolvere il problema è estremamente semplice e richiede poco sforzo. La notifica per ogni nuovo commento è disabilita di default quando create un nuovo account Disqus per il sito web che intendete servire. Per attivarla vi basterà accedere all’area di amministrazione Disqus.com (es: NOMESCELTO.disqus.com/admin) con il vostro account personale, spostarvi sotto “Comments” ed in seguito fare clic su “Email notifications“:

Disqus: abilitare le notifiche per ogni nuovo commento 1

A questo punto noterete che l’unica opzione a non essere attivata è proprio quella della notifica di ogni nuovo commento inserito (Newly posted) e che toccherà a voi spuntare prima di poter salvare:

Disqus: abilitare le notifiche per ogni nuovo commento

Un clic su Save confermerà la scelta e voi potrete ora mettervi comodi. Ogni nuovo commento vi verrà notificato e riuscirete così a rispondere in breve tempo al vostro lettore :-)

GioxxsWall-DisqusRecentsWidgetAh, prima di chiudere, vi ricordo che per WordPress ho sviluppato (ormai diverso tempo) il Widget “Disqus Recent Comments“, potete installarlo sul vostro blog, vi permetterà di mettere in evidenza gli ultimi commenti pubblicati comodamente in Sidebar al posto del widget di default di WordPress. Trovate tutti i dettagli nell’articolo all’indirizzo gioxx.org/2014/01/10/disqus-recent-comments-per-wordpress

Restart.

Gioxx  —  17/01/2014 — 7 Comments

sfiga

Definizioni web
  1. La sfortuna è la sorte avversa, la cattiva fortuna; Essa è un concetto non verificabile razionalmente ed oggettivamente, e consiste sempre nell’espressione soggettiva del punto di vista della persona che valuta gli eventi che stanno accadendo a se stesso o agli altri.

    http://it.wikipedia.org/wiki/Sfiga

Anche se -nella sfiga- bisogna sempre cercare di vedere il bicchiere mezzo pieno, ed è un po’ quello che devo e voglio fare. Un paio di giorni fa il server che ospitava Gioxx’s Wall è defunto ed insieme a lui i suoi dischi dai quali apparentemente non è possibile recuperare nulla. File, database, account di posta e chissà quanta altra roba. In un solo colpo sono “venuti a mancare” questo spazio, gxware.org, supportoinformatico.org e portami.li. Gli ultimi due non verranno ripristinati mentre i primi due hanno subito lo spostamento verso altri lidi.

In teoria ogni giorno viene effettuato un backup del database di questo blog insieme alla copia di sicurezza di tutti i file presenti sullo spazio FTP. Questi ultimi sono stati recuperati facilmente, zero problemi. Lo stesso in teoria per il database, peccato però che negli ultimi mesi il download automatizzato della copia del DB abbia corrotto puntualmente il file ZIP rendendolo di fatto inutilizzabile. L’ultima copia funzionante risale al primo settembre dello scorso anno ed è quella che state vedendo ora.

Niente ultimi approfondimenti, niente articoli di fine anno, niente guide tecniche che avevo scritto nell’ultimo periodo. In Romagna si dice “Ah dì, piutost che gnit le mei piutost” (vogliate perdonare eventuali errori di scrittura) che è facilmente interpretabile / traducibile.

Sto recuperando gli articoli tramite archive.org e lentamente ricomparirà tutto quanto (almeno ci proverò :-)).

Si riparte quindi. Il “blocco note” non è del tutto nuovo e ha tutto uno storico dietro che mi ricorderà di controllare più spesso ciò che viene conservato in cloud e sui dischi di backup. Bentrovati quindi, perdonate eventuali link rotti o mail non risposte in queste 48 ore circa, dovrebbe tutto lentamente tornare a funzionare.

Grazie a questi signori (dell’immagine qui di seguito), tutto è stato recuperato e integrato nel blog come nulla fosse mai accaduto. Grazie davvero a tutti per il sostegno e per la collaborazione, è sempre bello sapere di avere lettori che ci tengono e che non passano solo di qui per caso :-)

Enjoy.