Adachinですっ。
今回はNginxで特定IPを制限するために実際どうやって設定してるのかをブログします。
そもそもIP制限はアタックされたときに、よくhosts.allowやiptables(前回のブログより)
で拒否れるのですが、Nginxのconfファイルでも設定すれば拒否れるのです。
まずはNginxのconfファイルの構成から説明していきましょう。
■nginx.conf
Nginxは元々ディレクトリの集まりでできているのですが、
各モジュールによって導入されていて、
モジュールを有効にするとディレクティブが利用可能になります。
主に4つのモジュールがあります。
・Mainモジュール: プロセス管理やセキュリティなどの基本機能
・Eventsモジュール: ネットワーク機能の内部メカニズム
・Configurationモジュール: ファイルのInclude
・HTTPモジュール: HTTPサーバの基本ブロック、ディレクティブ、変数を格納しているコンポーネント
そうするとアクセス制限をする場合はどのモジュールを使えばいいのか、
HTTPモジュールの「HttpAccessモジュール」を使えばOKです。
■特定IPのみ拒否る
1 2 3 4 |
location /wordpress/ { deny xxx.xxx.xxx.xxx; allow all; } |
これでxxx.xxx.xxx.xxxのみ拒否して他はアクセスOKという記述になります。
■ちなみに
1 2 3 4 |
location /wordpress/ { allow xxx.xxx.xxx.xxx; deny all; } |
これだとxxx.xxx.xxx.xxxはアクセスできて、他はアクセスできなくなります。
■設定反映
1 |
# sudo /etc/init.d/nginx reload |
■拒否されるとどうなるのか
404となり、残念な状態に・・・
nginxのerrorログにも
1 |
2016/xx/xx 00:00:00 [error] 1948#0: *3458 access forbidden by rule, client: xxx.xxx.xxx.xxx,〜〜〜 |
となってアクセスてきてないよ!となってるはずです。
■まとめ
これでバッチグー(・∀・)b
参考:http://mogile.web.fc2.com/nginx/admin-guide/restricting-access.html
0件のコメント