Nginx サーバーで 2 つの雑種を実行しています。存在しないファイルへのリクエストを受け取り続けています。IP アドレスは頻繁に変更されますが、参照 URL は同じままです。これを解決したいと思います。
4 に答える
Nginxマップ モジュールを使用すると、リストが長くなるため、もう少し効率的で管理しやすくなります。
これを 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;
}
これをサーバー {} ブロックに入れます。
if ($bad_referer) {
return 444; # emtpy response
}
それは私のために働いた。
これはhttp://fadeit.dk/blog/post/nginx-referer-spam-blacklistから取得しました
https://calomel.org/nginx.html
ほとんどの「リファラー スパム」をブロックする -- 「問題というより迷惑」
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; }
ブラックリストで着信IPをチェックするためのモジュールを作成しましたhttps://github.com/oneumyvakin/ngx_http_blacklist_lookup_module
projecthoneypot.org、blocklist.de、および uceprotect.net のブラックリストを使用しています。
私は以前、ファイアウォールが独自に整理できる他の恣意的なルールではなく、行動に基づいて人々をブロックする必要があるという同様の状況にありました。
私が問題を回避した方法は、私のロジック(あなたの場合はRails)にブロッキングをさせることでした...しかし、長い道のり:
- ブロック リストを改行で区切られたプレーンテキスト ファイルとして保持するロジックを作成します。
- root として bash (またはその他の) スクリプトを作成して、このファイルを読み取り、そのリスト対象をファイアウォールのブロックリストに追加します。
- root としてスクリプトを呼び出す cron ジョブを作成します。
私がこの方法で (ファイアウォールの設定を変更する権限を Django に与えるのではなく) 行う理由は、単にセキュリティのためです。もし私のアプリケーションがハッキングされたとしても、他の何かに害を与えたくありません。
bash スクリプトは次のようなものです。
exec < /path/to/my/djago-maintained/block-list
while read line
do
iptables -A INPUT --source $line/32 -j DROP
done