2

nginx を使用すると、範囲と IP を許可および拒否できます ( https://www.nginx.com/resources/admin-guide/restricting-access/ )。realip モジュールを使用すると、使用する ip を cloudflare の後で実際の ip に変更できます。( http://nginx.org/en/docs/http/ngx_http_realip_module.html )

ここで、Cloudflare または localhost 以外の IP をブラックリストに登録したいと思います。これはかなり難しいことがわかりました.real_ipモジュールのセットアップを設定する前にそれを入れてみましたが、葉巻はありません.

これはまったく可能ですか?ユーザーが cloudflare を使用していない場合、これは欠陥のように思えます。これにより、特定の vhost に対するより多くの悪用が可能になります。

$realip_remote_addr 変数がありますが、通常の $remote_addr の代わりに許可/拒否を使用する方法を見つけることはできません。

編集:ファイアウォールがこれを支援できることに注意を向けました。残念ながら、これは本当にいくつかの仮想ホストにしか必要ありません。

4

3 に答える 3

2

ジオブロックで簡単にできます

geo $realip_remote_addr $giveaccess {
      default 0;
      IPBLOCK1 1;
      IPBLOCK2 1;
      …
    }
    server {
       …
       location / {
         if ($giveaccess = 0){
          return 403 "$realip_remote_addr";
          #use it for debug
        }
    }
于 2016-08-30T14:05:46.407 に答える
1

マシンへの直接アクセス、つまりマシンの IP を介したアクセスをブロックしたいと考えています。

これには、cloudflare によって設定された http ヘッダーを使用できます。cloudflare を介してリクエストがある場合は常に$http_cf_connecting_ip、マシンにアクセスしているマシンの IP に設定されます。

したがって、条件を記述して、空の を持つすべてのリクエストを拒否できます$http_cf_connecting_ip

于 2016-08-27T09:33:03.377 に答える