2017年8月3日木曜日

nginx にIP 制限を入れる方法

概要

前回 nginx に証明書を設置して SSL を有効にしました
今回は nginx にアクセスする IP を制限したかったので試してみました

環境

  • Ubuntu 16.04
  • nginx 1.10.3

設定ファイル編集

前回の設定から以下のように編集します

  • vim /etc/nginx/sites-available/ssl
server {
        allow 192.168.100.110;
        deny all;
        listen       443;
        server_name  your.site.domain.com;

        ssl                  on;
        ssl_certificate      /etc/ssl/certs/chain_server.crt;
        ssl_certificate_key  /etc/ssl/certs/server.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;

        location / {
            proxy_pass http://localhost:9292/;
            proxy_redirect default;
        }
}

追記しているのは先頭の allow と deny の部分です
これだけで IP 制御ができます
今回は IP を直書きしていますが CIDR 形式でも記載することができます

設定を反映するには nginx を再起動します

  • systemctl restart nginx

上記の設定の場合 192.168.100.104 だけを許可していてそれ以外はすべて拒否する設定になります
先に deny を書いてしまうとすべて拒否して終了になってしまうので先に allow を記載するようにしてください

deny された場合には nginx が用意しているデフォルトの HTML が返却されます

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

最後に

nginx に IP 制限をしてみました

このあたりの設定方法は Web 上にゴロゴロ転がっていると思います
このままだとデフォルトの HTML が返却されてしまうので次回はレスポンスをカスタマイズしてみたいと思います

0 件のコメント:

コメントを投稿