Apache+TomcatでIPアドレスでアクセス制限をかける方法

TomcatのWeb Application ManagerはブラウザからWebアプリをデプロイしたり何かと便利ですが、Basic認証だけだとちょっとセキュリティ的にどうなの感があります。アクセスしてくるマシンのIPアドレスで制限をかけると、安心感がちょっとアップしますよね。

Apacheと連携しているTomcatだったら、ApacheIPアドレス制限する方法と、Tomcatのコンテキストで制限する方法があるので、以下でご紹介します。

Apacheでブロックする方法

Webアプリがhogeへのアクセスをローカルだけに制限する場合には、httpd.confにあるmod_ajp_proxyの転送先設定のところにAllowを追記するだけ。

<Location /hoge>
  ProxyPass ajp://localhost:8009/hoge
  Order Allow,Deny
  Allow from 127.0.0.1
</Location>

Tomcatでブロックする方法

Webアプリがhogeへのアクセスをローカルだけに制限する場合には、
$TOMCAT_HOME/conf/Catalina/localhost/hoge.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127.0.0.1" />
</Context>

を追記するだけ。


全部のコンテキストでIPアドレス制限するときにはserver.xmlの中か、context.xmlの中に

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127.0.0.1" />

を追加するだけ。