Bloccare gli accessi indesiderati con .htaccess

Quello della sicurezza è un problema fondamentale da affrontare quando si mette in opera un sito web.
Quando, poi, si lavora con un CMS open source, come Joomla! o WordPress, la questione diventa più impellente, dato che i bug vengono periodicamente resi pubblici.

Oltre ai tentativi di intrusione diretta da parte di hacker senza altri modi di impegnare il tempo, spesso bisogna affrontare il problema di robot e spider.

Prelievo di dati (come indirizzi email) non autorizzato, commenti spam, iscrizione di nuovi utenti inesistenti, possono dare più noie di quanto si possa immaginare, indipendentemente dalle finalità che si propongono.

Una delle soluzioni che si prospettano è quella di utilizzare il file .htaccess di Apache per inibire gli accessi non desiderati in base ad una serie di parametri, quali il nome del dominio di provenienza della richiesta, o l’indirizzo IP.

Il problema che si può presentare è che questi attacchi possono provenire da una miriade di indirizzi IP, che, quindi, bisogna individuare uno per uno andando ad analizzare i dati dei file .log.

La direttiva da inserire nel file .htaccess è la seguente:

<Limit GET POST>
order allow,deny
allow from all
deny from 111.222.333.444
</Limit>

Con la direttiva possono essere bloccati quanti indirizzi (o domini) si vogliono. Il risultato di una settimana di analisi di un file di log, può essere il seguente:

########## Begin - Blocca IP maligni
#
<Limit GET POST>
order allow,deny
allow from all
deny from 59.60.7.
deny from 60.169.75.
deny from 60.169.78.
deny from 61.147.111.
deny from 61.160.
deny from 66.96.201.
deny from 88.190.21.
deny from 91.236.74.
deny from 93.80.177.
deny from 93.182.
deny from 94.28.117.
deny from 108.171.255.
deny from 110.88.236.
deny from 112.101.64.
deny from 117.40.184.
deny from 119.97.
deny from 120.38.
deny from 121.251.
deny from 122.224.
deny from 124.160.147.
deny from 125.88.74.
deny from 125.210.130.
deny from 142.4.117.
deny from 173.199.
deny from 176.123.
deny from 176.97.212.
deny from 178.137.81.
deny from 182.84.98.
deny from 188.92.75.
deny from 188.143.234.
deny from 188.165.246.
deny from 195.43.128.
deny from 199.15.234.
deny from 208.115.111.
deny from 208.115.113.
deny from 211.167.112.
deny from 216.99.145.
deny from 216.244.81.
deny from 218.25.59.
deny from 218.93.127.
deny from 222.186.27.
deny from 222.187.221.
deny from jingquin\.com
</Limit>
#
########## End - Blocca IP maligni

Alla fine si è venuta a creare una blacklist di indirizzi IP (e un dominio) cui in risposta viene inviato un messaggio di errore 403 Forbidden. Nel caso affrontato dal sottoscritto, nella giornata di ieri il server ha inviato 199 errori 403 e questa mattina si è registrato un solo accesso anomalo.

Per chi volesse approfondire, rinvio al numero di ioProgrammo in edicola a fine mese, in cui affronterò nel dettaglio le tecniche di messa in sicurezza dei siti web, con specifica attenzione ai siti sviluppati con WordPress. Risorse online, invece, sono disponibili ai seguenti indirizzi:

Annunci