Domanda

Sto eseguendo due bastardi sotto un server Nginx. Continuo a ricevere richieste per un file inesistente. Gli indirizzi IP cambiano frequentemente ma l'URL di riferimento rimane lo stesso. Vorrei risolverlo.

È stato utile?

Soluzione

https://calomel.org/nginx.html

Blocca la maggior parte di " spam referrer " - "più un fastidio che un problema"

nginx.conf

    ## Deny certain Referers (case insensitive)
    ## The ~* makes it case insensitive as opposed to just a ~
 if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo))
    {  return 403;   }

Altri suggerimenti

L'uso di Nginx modulo mappa è un po 'più efficiente e facile da gestire quando l'elenco si allunga.

Inseriscilo nel tuo blocco http {}:

map $http_referer $bad_referer {
    hostnames;

    default                           0;

    # Put regexes for undesired referers here
    "~social-buttons.com"             1;
    "~semalt.com"                     1;
    "~kambasoft.com"                  1;
    "~savetubevideo.com"              1;
    "~descargar-musica-gratis.net"    1;
    "~7makemoneyonline.com"           1;
    "~baixar-musicas-gratis.com"      1;
    "~iloveitaly.com"                 1;
    "~ilovevitaly.ru"                 1;
    "~fbdownloader.com"               1;
    "~econom.co"                      1;
    "~buttons-for-website.com"        1;
    "~buttons-for-your-website.com"   1;
    "~srecorder.co"                   1;
    "~darodar.com"                    1;
    "~priceg.com"                     1;
    "~blackhatworth.com"              1;
    "~adviceforum.info"               1;
    "~hulfingtonpost.com"             1;
    "~best-seo-solution.com"          1;
    "~googlsucks.com"                 1;
    "~theguardlan.com"                1;
    "~i-x.wiki"                       1;
    "~buy-cheap-online.info"          1;
    "~Get-Free-Traffic-Now.com"       1;
}

Inseriscilo nel blocco del tuo server {}:

if ($bad_referer) { 
    return 444; # emtpy response
}

Ha funzionato per me.

Ottenuto da http://fadeit.dk/blog/post/nginx-referer-spam- blacklist

Sono stato in una situazione simile prima in cui dovevo bloccare le persone in base al comportamento invece di altre regole arbitrarie che un firewall poteva risolvere da solo.

Il modo in cui ho aggirato il problema era di fare in modo che la mia logica (Rails nel tuo caso) facesse il blocco ... Ma molto lontano:

  • Chiedi alla tua logica di mantenere un elenco di blocchi come file di testo in chiaro separato da nuova riga.
  • Crea uno script bash (o altro) come root per leggere questo file e aggiungere i suoi listees alla block list del tuo firewall
  • Crea un cron job per chiamare nuovamente lo script come root

Il motivo per cui lo faccio in questo modo (piuttosto che concedere le autorizzazioni a Django per modificare la configurazione del firewall) è semplicemente: sicurezza. Se la mia applicazione fosse stata compromessa, non vorrei che danneggiasse qualcos'altro.

Lo script bash è qualcosa del genere:

exec < /path/to/my/djago-maintained/block-list
while read line
do

    iptables -A INPUT --source $line/32 -j DROP

done

Ho creato un modulo per controllare l'IP in arrivo nelle black list https://github.com/oneumyvakin/ngx_http_blacklist_lookup_module

utilizza liste nere di projecthoneypot.org, blocklist.de e uceprotect.net

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top