Ultimamente ho iniziato a prestare maggiore attenzione a ciò che accade sui blog sul server. Ho notato che ho un blog molto letto, con moltissime visite. Un esempio evidente è nell’immagine qui sotto:

Come bot spam ce ne sono molti e i loro commenti si sommano a centinaia Akismet. Lo so WordPress, c'è la sua opzione bloccare un IP chi vuole commentare, ma questo non aiuta molto, per due motivi.
1. L'IP se è bloccato da WordPress –> Dashboard, raggiunge il server e c'è traffico.
2. Se ci sono 100 blog su un server... ognuno deve bloccare lo stesso IP. (headaches)
3. Dallo stesso IP può provare a cercare punti di sicurezza vulnerabili, su altre porte aperte. (So di aver detto due motivi. Uno è un bonus)
Un altro metodo per bloccare l'accesso di un IP a un sito è modificare il file .htaccess, dalla cartella principale, dove si trovano i file del sito web (solitamente public_html). Avevo fantasie come questa, intorno a giugno 2007, mentre scrivevo il post"Nega l'accesso all'IP dello spammer".
Non consiglio a nessuno il metodo di blocco IP .htaccess, per un motivo: più il file .htaccess è caricato, più aumenta il tempo di caricamento del sito. Se 100 file .htaccess avessero 50 direttive ciascuno, su Apache (server HTTP), puoi mettere caramelle e due candele :)
Penso che il terzo metodo sia il migliore. Blocco IP-s a livello di server, tutti quanti porti, usando iptables.
Nell'immagine sopra si vede l'IP 194.8.74.158 mentre tenta di spammare alcune pagine del blog. Il suo blocco, a livello di server, avviene nel modo seguente.
root@server [~]# /sbin/iptables -I INPUT -s 194.8.74.158 -j DROP
root@server [~]# /sbin/service iptables save
Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
root@server [~]#
Naturalmente non bloccheremo ogni singolo IP. Da quello che ho visto, i bot utilizzano diversi IP dello stesso blocco. In questo caso c'è ARIN E MATURO.
whois (ripe.net): 194.8.74.158
inetnum: 194.8.74.0 - 194.8.75.255
netname: DRAGONARA-NET
descr: Dragonara Alliance Ltd
country: GB
OK. Se l'IP proviene da una regione in cui sono sicuro di non volere visitatori sul server (né via web né via email), ho la possibilità di bloccare l'accesso di due classi C (sottorete Classe C), che comprende l'intero intervallo di IP compreso tra 194.8.74.0 e 194.8.75.255.
/sbin/iptables -I INPUT -s 194.8.74.0/24 -j DROP
/sbin/iptables -I INPUT -s 194.8.75.0/24 -j DROP
/sbin/service iptables save
iptables –L, per vedere l'elenco degli IP “Chain INPUT”.