自分でサーバーを購入してサイトを構築するサーバーのセキュリティ問題が発生します。自分では気づかないかもしれませんが、サーバーは毎日いくつかのボットによってスキャンされています。本記事では、Naibaがサーバースキャンを防ぐためのいくつかのNginxルールを紹介します。
1、デフォルトでのIPアドレスによるサーバーアクセスを禁止する各サーバーにはIPアドレスがあり、一部のボットはIPアドレスに直接アクセスすることでサイトの内容を探知しようとします。 Nginxの設定情報に以下のコードを追加することで、IPアドレスによるサーバーアクセスを禁止できます。
#别人如果通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500
server {
listen 80 default;
server_name _;
return 500;
}
#开放一个或多个真实的希望被访问的域名配置,设置如下:
server {
linten 80;
server_name naibabiji.com;
}
2、ボットによるサイトの圧縮ファイルスキャンを禁止する同様に、多くのボットがあなたのドメインの特定のファイルに直接アクセスしようとします。例えば、下の画像は誰かがNaiba サイト構築ノートのwwwroot.zipファイルをスキャンしている様子です。

これらの圧縮ファイルへのリンクを、非常に大きなファイルへのダウンロードにリダイレクトすることで、ボットにゆっくりとダウンロードさせることができます。
rewrite \.asp/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.zip/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.gz/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.7z/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.sql/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.rar/?$ http://speedtest.tele2.net/50GB.zip permanent;
rewrite \.tar/?$ http://speedtest.tele2.net/50GB.zip permanent;上記のコードは、サイト上の.asp/zip/gz/7z/sql/rar/tar形式のファイルにアクセスすると、自動的に50GBのzipファイルへのリンクにリダイレクトします。ボットに好きなだけクロールさせましょう。 また、1000GBなど、さらに大きなファイルを指定して、ボットのハードディスクを圧迫させることもできます。
http://speedtest.tele2.net/1000GB.zip
http://speedtest.tele2.net/100GB.zip
http://speedtest.tele2.net/50GB.zip
もちろん、これらのボットをブロックするために
Defender Securityこのプラグインをインストールすることもできます。リダイレクトルールの追加方法がわからない場合は、例えば
RanK Mathのリダイレクト機能。
9月20日更新:本日、新しいボットがサイトをスキャンする際に上記の301を無視している(あるいは量が多すぎる?)ことが発見され、Naiba サイト構築ノートのサーバーCPUが数回満杯になりました。そのため、別の方法を使用するしかありませんでした。最もシンプルで直接的な方法は、nginx設定に以下のルールを追加し、サーバー上のファイルダウンロードリンクに対して直接アクセスを禁止することです(リソースをローカルダウンロード提供するサイトは注意して使用してください)。
location ~ \.(zip|rar|sql|bak|gz|7z)$ {
return 444;
}ユーザーがサイト上のzip、rarなどのリソースにアクセスした場合、直接444エラーコードを返します。
444 No Response Nginx上のHTTPサーバー拡張。サーバーはクライアントに何の情報も返さず、接続を閉じます(マルウェアの阻止に役立ちます)。
もう一つの方法は、Nginxにwafファイアウォールをインストールすることです。もしあなたが
宝塔パネルを使用しているなら、直接管理画面のソフトウェアストアからインストールできます。もしLNMPワンクリックパッケージを使用しているなら、以下の方法に従ってインストールしてください。LNMPワンクリックインストールパッケージはバージョン1.5からluaサポートオプションが追加されました。lnmp.conf内のEnable_Nginx_Luaの後のパラメータを y に変更することでluaを有効にできます。lnmpをまだインストールしていない場合、lnmp.confを変更して保存し、lnmpのインストールが完了するとluaがサポートされます。すでにlnmpをインストール済みの場合も、前述のようにlnmp.confを変更し、lnmpインストールパッケージディレクトリで ./upgrade.sh nginx を実行してnginxをアップグレードし、現在のnginxバージョン番号またはそれ以降のバージョン番号を入力します。アップグレードが完了するとluaがサポートされます。ngx_lua_wafのインストール ngx_lua_wafをダウンロードしてインストール:
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip -O ngx_lua_waf.zip
unzip ngx_lua_waf.zip
mv ngx_lua_waf-master /usr/local/nginx/conf/waf
nginx上でngx_lua_wafを設定して有効化 /usr/local/nginx/conf/nginx.conf を編集し、server_tokens off; の下に以下のコードを追加:
lua_package_path "/usr/local/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
変更を保存 特定の仮想ホストでngx_lua_wafを有効にしたい場合は、対応する仮想ホストのserverセクションを変更し、そのserverセクション内の root ウェブサイトディレクトリ行の下に以下のコードを追加:
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
変更を保存 nginx設定ファイルのテスト:/usr/local/nginx/sbin/nginx -t nginx設定のリロードを有効化:/usr/local/nginx/sbin/nginx -s reload テストとリロードでエラーがなければ、すでに有効になっています。 http://ドメイン/test.php?id=../etc/passwd にアクセスしてテストできます。より詳細な情報は
この記事を参照してください。
コメントは終了しました
この記事のコメント機能は終了しています。ご質問がある場合は、他の方法でお問い合わせください。