【事象】
Tomcat7のバージョンを7.0.107.0にバージョンアップを行った。
すると今までアクセスできていたと思われる(※1)Tomcatマネージャーにアクセスできなくなった。
結果、アクセスしても403エラーが返ってくる
※1 自分で管理しておらず、野ざらし鯖の対応をしたので
以下の痕跡があったので、以前はアクセスできていたと考えている
(${CATANILA_HOME}/conf/tomcat-user.xml)
(中略) <role rolename="manager-gui" /> <user username="hoge" password="hogehoge" roles="manager-gui" />
【原因】
Tomcatマネージャーに対するアクセス制御設定が足りていなかったため
【対応方法】
${CATALINA_HOME}/webapps/manager/META-INF/context.xml を修正する。
具体的には、コメントアウト対応するか、addressの値をアクセスしてくるIPを追加する。
(中略) <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
なお、host-manager側にも同様のファイルが存在するが、こちらは編集しなくても良さげである。
(デフォルトでコメントアウトされているため、制約がかかっていない)
【補記事項】
なお、${CATALINA_HOME/conf/}server.xmlにも以下の記載が必要である。(※3, 4)
(中略) <Connector protocol "AJP/1.3" secretRequired="false" address="::1" port="8009" redirectPort="8443" />
※3 Apaceh HTTP ServerがsecretRequired=trueに対応しているバージョンであれば変更しておくべき
※4 上記addressの値はガバガバ設定なので、きちんとアクセス制御する値に設定変更する必要有
【注意事項】
どうもmanager配下のcontext.xmlのallowは、ブラウザ側のIPを評価している模様である。
一方、conf配下のserver.xmlのaddressは、AJP通信元(当例ではhttpd)を評価している模様である。
そのため、どちらもローカルのIPアドレスを抜かす設定にしていたらTomcatマネージャーにアクセスできず、
context.xml側だけブラウザ側のIPアドレスを追加するとTomcatマネージャーにアクセスできる様になった。
(もしかしたら、自分のserver.xmlの設定が間違えているだけかもしれないが…)
できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ
- 作者:辻 秀典,渡辺 高志,鈴木 幸敏,できるシリーズ編集部
- 発売日: 2013/02/17
- メディア: Kindle版
なお、Tomcat7は2021/3/31で修正パッチが出なくなります。。。
yoneyore.hatenablog.com