Apacheで構築したリバースプロキシにIPアドレスやBASIC認証などのアクセス制限をかける方法を紹介します。
Proxyディレクティブは動作しない!
Apacheの公式ドキュメントを見ると、Proxyディレクティブを使うように記載されています。しかし、実際にやってみると、Proxyディレクティブではアクセス制限がかかりませんでした。
mod_proxy - Apache HTTP サーバ バージョン 2.4
設定方法
Locationタグを使って、リバースプロキシにアクセス制限をかけることができます。
たとえば、
- /fuwaへのアクセスをhttp://192.168.1.1:1337にプロキシ
- /fuwaへのアクセスはすべて許可
- /fuwa/chanへのアクセスは192.168から始まるIPアドレスに制限
としたいときなら、以下のようになります。なお、Apacheのバージョンは2.4です。
<VirtualHost *>
ProxyRequests Off
ProxyPass /fuwa http://192.168.1.1:1337
ProxyPassReverse /fuwa http://192.168.1.1:1337
<Location "/fuwa">
Require all granted
</Location>
<Location "/fuwa/chan">
Require ip 192.168.1
</Location>
</VirtualHost>
Locationディレクティブを使うことで、リバースプロキシでもアクセス制限をかけることができます。もちろん、BASIC認証やDigest認証といったことも対応できます。
まとめ
Locationディレクティブを使用すれば、リバースプロキシについてもアクセス制限をかけることができます。もちろんBASIC認証など、ほかの方式のアクセス制限も使用できます。
ぜひお試しください。
コメント