Tomcat控制台安全解决办法

删除Tomcat默认管理控制台或管理员帐户 默认情况下,Tomcat存在管理控制台,其地址一般为http://[IP]:[Port]/admin。管理台的应用文件,在#TOMCAT_HOME#\server\webapps下,有admin和manager两个应用。其用户密码,在$tomcat\conf/tomcat-users.xml中定义。在$tomcat\webapps下的admin.xml和manager.xml文件,定义了可以通过访问/admin和/manager进入控制台的通道。默认情况下,可以轻易的登录tomcat管理台,造成严重安全问题。 "方法一:本方法适用于完全不需要使用默认控制台及相关功能的应用场景。
1.删除#TOMCAT_HOME#\webapps下admin.xml和manager.xml文件;
2.删掉#TOMCAT_HOME#\conf\tomcat-users.xml中的用户和密码;
3.删除#TOMCAT_HOME#\server\webapps下的admin和manager两个应用;
4.删除#TOMCAT_HOME#\webapps下的admin和manager两个应用。
方法二:本方法适用于需要保留默认控制台和相关程序的应用场景。
1.在#TOMCAT_HOME#\conf\Catalina\localhost\manager.xml的Context标签内增加如下一行,限制只能有内网特定IP或IP端才能访问控制台:
<Valve className=""org.apache.catalina.valves.RemoteHostValve"" allow=""10.70.107.*"" />
备注:RemoteAddrValve过滤的是IP地址,多个ip或多个域名之间,可以使用“,”分隔。
2.配置#TOMCAT_HOME#\conf\tomcat-users.xml中的用户名和密文的密码(用#TOMCAT_HOME#\bin目录下的digest.sh对密码进行加密,得到密文,例如:digest.sh -a sha Ryoukk_195,其中蓝色的密码自行设置,保证密码长度大于8位,包含大小写字符、数字和特殊字符)。在#TOMCAT_HOME#\conf\server.xml中的UserDataBase-Realm指定密码的摘要算法(新增蓝色部分):<Realm className=""org.apache.catalina.realm.UserDatabaseRealm"" digest=""sha"" resourceName=""UserDatabase""/>
3.当tomcat已经配置了SSL,则对登录管理应用强制使用SSL,配置方法如下:
在#TOMCAT_HOME#\webapps\manager\WEB-INF\web.xml的security-constraint标签内,增加如下内容:
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/manager/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
4.重命名管理控制台
# 进入目录\webapps\host-manager
# 重命名 manager.xml 文件            //并检查是否存在默认管理控制台或管理员帐户。

猜你喜欢

转载自jerry-2011.iteye.com/blog/2205053