CentOS 8のNginxでIPアドレスによるアクセス制限

Facebooktwittermail

先日、CentOS 8のNginxでBasic認証を設定してみましたが、今回はIPアドレスによるアクセス制限です。
Module ngx_http_access_module
https://nginx.org/en/docs/http/ngx_http_access_module.html

Combining Basic Authentication with Access Restriction by IP Address
https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/#configuring-nginx-and-nginx-plus-for-http-basic-authentication
折角なので上記ドキュメントのようにBasic認証との組み合わせを確認してみました。

環境
・CentOS Linux release 8.2.2004 (Core)
・Kernel 4.18.0-193.6.3.el8_2.x86_64
・nginx version: nginx/1.18.0(Nginx repository)

  1. IPアドレス制限
  2. 前回、Basic認証を設定した領域に192.168.100.0/24からのアクセスは許可、それ以外はすべて拒否の設定を追加します。

  3. reload
  4. 確認
  5. http://IP_Address//Restricted/ にアクセスするとログイン画面が表示されずに403 Forbiddenになりました。ちなみにクライアント側は192.168.1.0/24です。


  6. satisfy directive
  7. satisfy any; を追加するとBasic認証あるいはクライアントIPアドレスが192.168.100.0/24のどちらかを満たせばアクセスできます。


    satisfy directiveは省略した場合はallなので「Basic認証とクライアントIPアドレスの両方を満たす」必要があります。

Leave a Reply