Tomcat的安全
生产环境tomcat规范
1.更改服务监听端口
若 Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址
标准配置:
<Connector port="10000" server="webserver"/>
2.telnet管理端口保护
修改默认的 8005 管理端口不易猜测(大于1024),但要求端口配置在8000~8999之间
修改SHUTDOWN命令为其他字符串
标准配置:<Server port="8578" shutdown="dangerous">
3.AJP连接端口的保护
修改默认的ajp 8009端口为不易冲突(大于1024),但要求端口配置在8000~8999之间
通过iptables规则限制ajp端口访问的权限仅为线上机器,目的在于防止线下测试流量被apache的mod_jk转发至线上tomcat服务器
标准配置:
<Connector port="8349" protocol="AJP/1.3"/>
4.禁用管理端
删除默认$CATALINA_HOME/conf/tomcat-users.xml文件,重启tomcat将会自动生成新的文件
删除$CATALINA_HOME/webapps下载默认的所有目录和文件
将tomcat应用根目录配置为tomcat安装目录以外的目录
标准配置:
a.server.xml
配置
一种直接修改Host
节点信息,表示全局配置
<Host name="localhost" appBase="/data/www/tomcat_webapps" unpackWARs="true" autoDeploy="false"></Host>
另一种直接在Host
节点中新增Context
节点,指定具体的项目
<Context path="" docBase="/usr/local/tomcat/webapps/jenkins" debug="0" reloadable="false" crossContext="true">
</Context>
b.在$CATALINA_HOME/conf/Catalina/locathost目录下新增文件 test##20160506172651.xml
<Context displayName="test" docBase="/data/www/tomcat_webapps/test##20160506172651.war" reloadable="false" />
5.隐藏Tomcat的版本信息
针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息
$ cd $CATAL