目录
4、关闭热部署,即每次变动的类需要重新启动才能生效,避免直接部署造成的不安全因素;
7、删除webapps下默认的样例及管理端(保持webapps下只有所需的项目即可,毕竟tomcat的管理端和样例报过不少漏洞,还是清理掉为妙。)
9、启用SSL传输加密。(可以使用网上免费的证书、或者使用jdk自带的keytool生成密钥证书、搭建局域网CA服务器来实现。)
tomcat加固
1、隐藏Response Header中server信息;
tomcat/conf/server.xml中编辑Connector中的值,增加server="*"
<Connector port="8080" protocol="HTTP/1.1" server="GW" connectionTimeout="20000" redirectPort="8443" />
2、隐藏tomcat版本信息;
1、进入tomcat的lib目录,进入catalina.jar\org\apache\catalina\util下,找到ServerInfo.properties 编辑info即可
2、修改conf/web.xml,但是这种方法是有缺点的,必须开启listing列表,但是开启listings会造成CPU资源的浪费,也会在错误的时候将项目列表列出来,所以此方法不建议使用。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>showServerInfo</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
3、禁用关闭端口及AJP端口(AJP无使用需求的情况下);
默认关闭端口8005 AJP端口8009 端口值设置为-1表示禁用此端口
<Server port="-1" shutdown="SHUTDOWN">
<Connector port="-1" protocol="AJP/1.3" redirectPort="8443" />
4、关闭热部署,即每次变动的类需要重新启动才能生效,避免直接部署造成的不安全因素;
server.xml中的host项中,修改autoDeploy="false"
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" >
5、限制访问IP;
在server.xml中的host段中加入如下内容,限制访问的ip
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.17.0.*,172.17.9.35" deny=""/>
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="www.test.com,*.test.com" deny=""/>
6、增加日志内容;
增加referer和user-agent的记录,用来进行外网访问的时候进行日志分析使用
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i " />
7、删除webapps下默认的样例及管理端(保持webapps下只有所需的项目即可,毕竟tomcat的管理端和样例报过不少漏洞,还是清理掉为妙。&