検索
ホームページ運用・保守NginxNginxサーバーのブラックリストまたはホワイトリスト機能を設定する方法

1. ブラックリストまたはホワイトリストの定義方法:
1. 設定形式
キーワード ブラックリストまたはホワイトリスト ファイルの保存スペースを設定
white_black_list_conf conf/white.listzone =white:2m ;
| | | |
| | | -------------------------------- ---- --ここでの保管スペースのサイズは 2m です。スペースのサイズによって白黒リストの容量が決まります
| | ----------------------- --- --------------------------------------------------- --- ------------------ストレージスペース名
| ----------- ------ -------------------------------------------- ---ブラックリストまたはホワイトリスト構成ファイルのパス
- ------------------------------------- -------------設定コマンド
2. キーワードwhite_black_list_confを設定します。
3. http{} でのみ使用できます。
4. White_black_list_conf は、値が異なる限り、複数のzones=valueで設定できます。
5. 設定例:

http{
    ......
    white_black_list_conf conf/white.list zone=white:4m;
    white_black_list_conf conf/black.list zone=black:4m;
    ......
    server{
    .......
    }
    .......
}

2. ブラック リストとホワイト リストの範囲
1. 設定形式
設定キーワード on/off
設定キーワードは次のとおりです:white_list と black_list はホワイト リストを表すために使用されます。
2. http{}、server{}、location{} で使用できますが、この機能はデフォルトでオフになっています
3. 設定例:

http{
    ......
    white_black_list_conf conf/white.list zone=white1:4m;
    white_black_list_conf conf/black.list zone=black1:4m;
    white_list white1 on; #白名单 white1 在整个http{} 中都开启
    black_list black1 on; #黑名单 black1 在整个http{} 中都开启
    server{
        .......
    }
    .......
}
http{
    ......
    white_black_list_conf conf/white.list zone=white2:4m;
    white_black_list_conf conf/black.list zone=black2:4m;
    server{
        .......
        white_list white2 on; #白名单 white1 在整个server{} 中都开启
        black_list black2 on; #黑名单 black1 在整个server{} 中都开启
        .......
    }
    .......
}
http{
    ......
    white_black_list_conf conf/white.list zone=white3:4m;
    white_black_list_conf conf/black.list zone=black3:4m;
    white_black_list_conf conf/black.list zone=black2:4m;
    white_black_list_conf conf/white.list zone=white2:4m;
    server{
        .......
        location /do {
            ........
            white_list white3 on; #白名单 white3 在location /do{} 中开启
            black_list black3 on; #黑名单 black3 在location /do{} 中开启
            ........
        }
        location /do1{
            white_list white2 on; #白名单 white2 在整个server{} 中都开启
            black_list black2 on; #黑名单 black2 在整个server{} 中都开启
        }
        .......
    }
    .......
}

4.http 設定インターフェースの説明:
(1) 設定設定インターフェース

http{
    .......
    server{
        ......
        location /sec_config{
            sec_config on;
        }
        ......
    }
    .......
}

(2) 設定方法:
a. http://xxx/sec_config 白黒確認リスト定義
返される結果は次のとおりです

{
    "version":    "nginx/1.3.0",
    "code":    "0",
    "item":    {
        "conf_type":    "white_black_list_conf",
        "zone_name":    "white",
        "list_path":    "/home/john/nginx/conf/white.list"
    },
    "item":    {
        "conf_type":    "white_black_list_conf",
        "zone_name":    "black",
        "list_path":    "/home/john/nginx/conf/black.list"
    },
    "item":    {
        "conf_type":    "white_black_list_conf",
        "zone_name":    "ex",
        "list_path":    "/home/john/nginx/conf/status_ex"
    }
}

b. http://xxx/sec_config?zone_name=white list_path の特定のコンテンツ (zone_name が白) を表示します
c. http://xxx/sec_config?zone_name=white&add_item=192.168. 141.23 192.168.141.23
d をゾーン名が白に追加 http://xxx/sec_config?zone_name=white&delete_item=192.168.141.23 192.168.141.23
を削除設定方法 2:
http://xxx/sec_config?for_each
3 を表示します。黒と白のリスト ファイル
conf/black.list の内容ファイルの内容は次のとおりです

2.2.2.2
192.168.141.1
3.3.3.3
4.4.4.5
2.3.4.4

4. 動的ブラックリスト
この機能を使用するには、ngx_http_limit_req_module.c
の ngx_http_limit_req_module.c
にパッチを適用する必要があります。 #include
を追加し、次のコードを見つけるようにコードを変更します。

  "
  if (rc == ngx_busy) {
    ngx_log_error(lrcf->limit_log_level, r->connection->log, 0,
           "limiting requests, excess: %ui.%03ui by zone \"%v\"",
           excess / 1000, excess % 1000,
           &limit->shm_zone->shm.name);
    "

その下に追加します:

  ngx_black_add_item_interface(r, 1);

装備されているキーワード:
dyn_black
形式:
dyn_black $zone_name time;
例:
Dyn_black Black 60; // 60 秒間アクセスが禁止され、自動的に閉じられます
60 秒後の注:
はBLACK_LIST で構成
構成例:

## PS PS: lua-nginx-module に基づく ngx_lua_waf ファイアウォール

プロジェクト アドレス: https://github. com/loveshell/ngx_lua_waf?utm_source=tuicool&utm_medium=referral

推奨インストール:

lua サポートには lujit2.1 の使用を推奨

ngx_lua がバージョン 0.9.2 以降の場合、通常のフィルター関数を ngx.re.find に変更することをお勧めします。これにより、マッチング効率が約 3 倍向上します。

使用説明:

nginx インストール パスは次のように想定されます:/usr/local/nginx/conf/

ngx_lua_waf を conf ディレクトリにダウンロードし、解凍して名前を付けます。 it waf

nginx.conf の http セクションを追加します

http{
            ....
            white_black_list_conf conf/black.list zone=black:4m;
            limit_req_zone $binary_remote_addr zone=one:8m rate=4r/s;
            ...
            server {
                location / {
         black_list black on;
         limit_req zone=one burst=6;
         dyn_black black 60; //禁止访问60秒,60秒后自动解除
         ...
         }
         location /xxx {
         sec_config on;
         }
         ...
            }
            ...
        }

config.lua で waf ルール ディレクトリを構成します (通常は waf/conf/ ディレクトリにあります)

  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; 
  access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

絶対パスは変更される可能性があります。それに応じて変更する必要があります。

その後、nginx

構成ファイルの詳細な説明:

  rulepath = "/usr/local/nginx/conf/waf/wafconf/"
  --规则存放目录
  attacklog = "off"
  --是否开启攻击信息记录,需要配置logdir
  logdir = "/usr/local/nginx/logs/hack/"
  --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
  urldeny="on"
  --是否拦截url访问
  redirect="on"
  --是否拦截后重定向
  cookiematch = "on"
  --是否拦截cookie攻击
  postmatch = "on"
  --是否拦截post攻击
  whitemodule = "on"
  --是否开启url白名单
  ipwhitelist={"127.0.0.1"}
  --ip白名单,多个ip用逗号分隔
  ipblocklist={"1.0.0.1"}
  --ip黑名单,多个ip用逗号分隔
  ccdeny="on"
  --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
  ccrate = "100/60"
  --设置cc攻击频率,单位为秒.
  --默认1分钟同一个ip只能请求同一个地址100次
  html=[[please go away~~]]
  --警告内容,可在中括号内自定义
  备注:不要乱动双引号,区分大小写

检查规则是否生效

部署完毕可以尝试如下命令:

  curl http://xxxx/test.php?id=../etc/passwd

    返回"please go away~~"字样,说明规则生效。
注意:默认,本机在白名单不过滤,可自行调整config.lua配置

Nginxサーバーのブラックリストまたはホワイトリスト機能を設定する方法

Nginxサーバーのブラックリストまたはホワイトリスト機能を設定する方法

规则更新:

考虑到正则的缓存问题,动态规则会影响性能,所以暂没用共享内存字典和redis之类东西做动态管理。

规则更新可以把规则文件放置到其他服务器,通过crontab任务定时下载来更新规则,nginx reload即可生效。以保障ngx lua waf的高性能。

只记录过滤日志,不开启过滤,在代码里在check前面加上--注释即可,如果需要过滤,反之

一些说明:

过滤规则在wafconf下,可根据需求自行调整,每条规则需换行,或者用|分割

  •   global是全局过滤文件,里面的规则对post和get都过滤 

  •   get是只在get请求过滤的规则  

  •   post是只在post请求过滤的规则  

  •   whitelist是白名单,里面的url匹配到不做过滤   

  •   user-agent是对user-agent的过滤规则

默认开启了get和post过滤,需要开启cookie过滤的,编辑waf.lua取消部分--注释即可

日志文件名称格式如下:虚拟主机名_sec.log

以上がNginxサーバーのブラックリストまたはホワイトリスト機能を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:長所と短所を調べますNginx vs. Apache:長所と短所を調べますApr 27, 2025 am 12:05 AM

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApache:重要な違​​いを理解するNginxとApache:重要な違​​いを理解するApr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxユニット:主要な機能と機能Nginxユニット:主要な機能と機能Apr 25, 2025 am 12:17 AM

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

Nginxユニットvs他のアプリケーションサーバーNginxユニットvs他のアプリケーションサーバーApr 24, 2025 am 12:14 AM

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxユニット:アーキテクチャとその仕組みNginxユニット:アーキテクチャとその仕組みApr 23, 2025 am 12:18 AM

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

Nginxユニットの使用:アプリケーションの展開と管理Nginxユニットの使用:アプリケーションの展開と管理Apr 22, 2025 am 12:06 AM

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

Nginx vs. Apache:Webサーバーの比較分析Nginx vs. Apache:Webサーバーの比較分析Apr 21, 2025 am 12:08 AM

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要な​​シナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxユニットの利点:柔軟性とパフォーマンスNginxユニットの利点:柔軟性とパフォーマンスApr 20, 2025 am 12:07 AM

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール