前回、Locationを使ってIP制限をかける方法を紹介しました
http://kakakikikeke.blogspot.jp/2013/07/apachex-forwarded-for.html
今回は更にLocation+Limitを使ってアクセスされたパスとHTTPメソッドを
判断してアクセス制御する方法を紹介します
http://kakakikikeke.blogspot.jp/2013/07/apachex-forwarded-for.html
今回は更にLocation+Limitを使ってアクセスされたパスとHTTPメソッドを
判断してアクセス制御する方法を紹介します
■設定
vim /etc/httpd/sites-enabled/000-default
上記設定後にターミナルから以下を実行して設定が反映されているか確認します
結果の通りですが、POSTをHTTPメソッドで指定した場合はエラーが返却されます
また設定に際してLimitとLimitExceptは基本ペアで設定するようにしてください
参考サイト:http://httpd.apache.org/docs/2.2/ja/mod/core.html
<VirtualHost *:80> SetEnvIf X-Forwarded-For "192.168.10.101" deny_ip SetEnvIf X-Forwarded-For "192.168.10.102" deny_ip <Location /test> <Limit POST> Order deny,allow Deny from all Allow from env=deny_ip ProxyPass ajp://192.168.20.100:8009/sample-app/ </Limit> <LimitExcept POST> Order allow,deny Allow from all </LimitExcept> </Location> </VirtualHost>
上記設定後にターミナルから以下を実行して設定が反映されているか確認します
- curl -X GET https://192.168.20.100/ ⇒deny_ipに登録されていればアクセスできる
- curl -X POST https://192.168.20.100/ ⇒deny_ipに登録されていないとアクセスできない(apacheの403がそのまま返ってくることを確認する)
結果の通りですが、POSTをHTTPメソッドで指定した場合はエラーが返却されます
また設定に際してLimitとLimitExceptは基本ペアで設定するようにしてください
参考サイト:http://httpd.apache.org/docs/2.2/ja/mod/core.html