Pergunta

Eu estou correndo dois mestiços sob um servidor Nginx. Eu continuo recebendo pedidos para um arquivo inexistente. Os endereços IP mudam com freqüência, mas o URL de referência permanece o mesmo. Eu gostaria de resolver isso.

Foi útil?

Solução

https://calomel.org/nginx.html

bloco mais "spam de referenciador" - "mais de um aborrecimento do que um 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;   }

Outras dicas

Usando Nginx mapear módulo é aa pouco mais eficiente e mais fácil de gerir como a lista fica por muito tempo.

Coloque isso no seu http {} bloco:

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;
}

Coloque isso no seu servidor {block}:

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

Ela trabalhou para mim.

Got isso http://fadeit.dk/blog/post/nginx-referer-spam- lista negra

Eu estive em uma situação semelhante antes de onde eu precisava para bloquear as pessoas com base no comportamento, em vez de outras regras arbitrárias que um firewall pode resolver por conta própria.

Eles maneira que eu trabalhei em torno do problema era fazer com que a minha lógica (Rails no seu caso) fazer o bloqueio ... Mas um longo caminho rodada:

  • Tenha sua lógica de manter uma lista de bloco como um novo-line separados arquivo de texto plano.
  • Criar um bash (ou outro) de script como root para ler este arquivo e adicionar seus listees para blocklist do seu firewall
  • Crie um trabalho cron para chamar o script, mais uma vez, como root

A razão de eu fazê-lo desta maneira ao redor (em vez de apenas dar permissões Django para alterar configuração de firewall) é simplesmente: segurança. Se a minha candidatura foram cortados, eu não iria querer isso para ferir qualquer outra coisa.

O script bash é algo como isto:

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

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

done

Eu criei módulo para verificação de IP de entrada em listas negras https://github.com/oneumyvakin/ngx_http_blacklist_lookup_module

é usos listas negras de projecthoneypot.org, blocklist.de e uceprotect.net

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top