regola iptables per vietare e reindirizzare il traffico dannoso

4

Sto eseguendo Apache 2 e dopo aver analizzato access_log ho scoperto che il mio sito web è visitato più di 800 volte al giorno (oggi 924) dal bot di majestic.co.uk. Il bot utilizza questo intervallo di indirizzi IP:

46.4.123.172
220.241.45.142
94.22.46.23
88.198.16.153
178.137.88.101
91.194.84.106
144.76.8.132
46.4.120.3
176.9.10.227
208.107.12.128
46.4.89.35
91.230.202.131
62.210.90.118
62.16.252.183
46.4.32.75
46.4.116.197
198.27.66.194
199.58.86.206
46.165.197.142
195.154.187.115
144.76.7.107
91.121.221.15
51.254.97.22
195.154.156.209
98.218.34.60
195.154.157.47
198.27.82.146
178.202.133.84
91.179.245.81


Dall'intervallo ho visto che l'IP continua a cambiare, un primo pensiero era per me (corretto se ho torto) di impostare una regola come questa sull'esempio del primo indirizzo IP:

route add -net 46.4.123.0/24 gw 127.0.0.1 lo


In questo modo avrei bloccato da 46.4.123.1 a 46.4.123.255, ma non avrei funzionato per me dato che ogni volta cambiavo l'IP, quindi ho bisogno di rintracciarlo e bloccarlo.
La mia domanda è, c'è un modo invece di instradare la richiesta per reindirizzare il traffico verso un dominio come blocked.xxx.com dove l'utente vede "Hey tu IP è bloccato non puoi visitare il sito web per favore se pensi che questo sia un errore contattami ".

    
posta Marcos Lamba 13.09.2015 - 18:59
fonte

3 risposte

9

Il Majestic progetto è un web crawler distribuito, il che spiega perché si ottengono così tanti diversi indirizzi IP sorgente. Non è malizioso, cioè non attacca il tuo sito e nemmeno utilizza molte risorse (800 richieste al giorno non sono molte).

Come la maggior parte dei bot corretti Majestic include anche un URL nella stringa user-agent e se visiti questo URL troverai argomenti come "Come posso bloccare MJ12bot?". Questo argomento spiega come puoi bloccare questo bot in modo sano e ti consiglio di seguire il consiglio lì. Nota che questo bot non è qualcosa di speciale, segue le stesse regole come la maggior parte degli altri innocenti crawler come i bot di google, yahoo , bing ecc.

A parte questo, la tua idea di bloccare in base all'IP di origine della richiesta non solo è inutile in questo caso, ma in realtà dannosa perché esclude gli utenti innocenti dal tuo sito web. Queste richieste per questo crawler distribuito vengono eseguite dai computer di volontari come gli utenti domestici. Si potrebbe vedere questo se si dovesse invertire la ricerca di alcuni degli indirizzi IP, ad es. 91.179.245.81 risolve anche 81.245-179-91.adsl-dyn.isp.belgacom.be. . Quindi se si bloccherebbe l'intera rete 24 per questo indirizzo IP, si escluderebbero molti utenti da questo ISP.

    
risposta data 13.09.2015 - 19:53
fonte
3

Se comprendo correttamente la tua domanda, desideri reindirizzare determinati indirizzi IP a un dominio diverso? Se questo è il caso, puoi usarlo nel tuo file .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} 46\.4\.123\.1
RewriteCond %{REQUEST_URI} /index\.html$
RewriteRule .* /blocked.html [R=301,L]

cambia RewriteCond e RewriteRule o in IPtables usando:

"# sysctl net.ipv4.ip_forward=1"
then
"# iptables -t nat -A PREROUTING -s 46.4.123.0/24 -p tcp --dport 80 -j DNAT --to-destination 1.1.1.1:80"

cambia -s il primo IP a quelli che vuoi reindirizzare e il 1.1.1.1 a dove vuoi reindirizzato

    
risposta data 13.09.2015 - 19:31
fonte
0

Non vi è alcun punto di blocco degli indirizzi IP dei bot in quanto Majestic è un progetto di indicizzazione di ricerca distribuito e chiunque può opt-in per configurare un bot sul proprio computer. Bloccando gli indirizzi IP di Majestic, blocca in modo efficace il normale accesso degli utenti al tuo sito web.

Come bloccare Majestic bot

Utilizza il file robots.txt per impedire l'accesso ai bot al tuo sito web. Questo è un modo molto più raccomandato e ha già risposto qui .

Come reindirizzare il bot Majestic

Usa Apache mod_rewrite per reindirizzare il bot in un'altra posizione, controllando il suo User-Agent Intestazione della richiesta HTTP. Crea un file .htaccess nella directory principale del tuo sito web con il seguente contenuto. Assicurati che mod_rewrite sia abilitato sul tuo host virtuale .

  RewriteEngine On
  RewriteBase /    
  RewriteCond %{HTTP_USER_AGENT} ^MJ12bot
  RewriteRule ^(.*)$ http://blocked.xxx.com [R=301,L]

Nota: non ho testato le voci sopra.

In entrambi i metodi sopra menzionati, puoi ancora vedere i bot accedere alle voci nei log di Apache di tanto in tanto a meno che il bot non sia programmato per ignorare completamente il tuo sito web per sempre.

    
risposta data 14.09.2015 - 00:15
fonte

Leggi altre domande sui tag