Apache Tomcat 9 (9.0.53) - Security Considerations
在tomcat-users.xml中停用所有用户,默认就没开
推荐加固方式:
另一种方法:
还可以设置port属性为 -1 ,关闭 shutdown port
将host节点的autoDeploy属性设置为“false”
如果存在deployOnStartup属性,也将其更改为“false”
server.xml
默认就有如下配置,不用修改
server="" 也行
server.xml
https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Error_Report_Valve
修改Error_Report_Valve属性为 false ,解决报错泄露
添加好host部分
web.xml
修改DefaultServlet 配置 showServerInfo 属性为 false
或者,创建文件 CATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.properties ,内容为:
或者
进入 apache-tomcat-9.0.53/lib/ 目录,执行如下:
如上会从 catalina.jar 解压 org/apache/catalina/util/ServerInfo.properties 文件,文件内容如下:
修改 server.info 和 server.number
执行如下,将 org/apache/catalina/util/ServerInfo.properties 打包进 catalina.jar
编辑web.xml 文件中配置,将readonly 的param-value值设为false
org.apache.catalina.servlets.DefaultServlet的
conf/web.xml
将listings的值设置为false。
conf/web.xml
web-app添加子节点:
在webapps目录下创建 ROOT/404.html ,定义自定义错误信息。范例如下:
添加 64*64 的LOGO到 <Tomcat_Home>/webapps/ROOT/favicon.ico
安全加固,Tomcat是重灾区。所以整理下Tomcat的安全加固。
1. 升级到最新稳定版,这个是老生常谈了。目前Tomcat支持6.0和7.0两个版本。
1) 出于稳定性考虑,不建议进行跨版本升级,如果之前是6.0系列版本,最好还是使用该系列的最新版本。
2) 在统计目录部署最新的Tomcat,将conf目录下的文件和webapp复制过来,之后修改server.xml,修改监听端口进行测试,无误后关闭Tomcat并改回端口。接下来就可以在发布的时候停止旧的Tomcat并开启新的Tomcat,至此升级完毕。
2. 从监听端口上加固
1) 如果Tomcat不需要对外提供服务,则监听在本地回环,前面放Nginx。如果需要对外提供访问,比如一个Nginx挂多个Tomcat,那么在服务器上用iptables只允许负载均衡器的IP来访问
<Connector port="8080" address="127.0.0.1"
maxHttpHeaderSize="8192" URIEncoding="UTF-8"
maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="10000" disableUploadTimeout="true" />
2) 现在我们一般不用Apache通过AJP协议来调用Tomcat了,所以AJP端口可以关闭。
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
3) 在新版的Tomcat中,SHUTDOWN端口默认就是监听在127.0.0.1的,所以不需要修改。如果还想加固,那可以把SHUTDOWN换成其它的字符串。
<Server port="8005" shutdown="YourString">
3. 自定义错误页面,隐藏Tomcat信息
编辑conf/web.xml,在</web-app>标签上添加以下内容:
?
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>
4. 禁用Tomcat管理页面
1) 删除webapps目录下Tomcat原有的所有内容
2) 删除conf/Catalina/localhost/下的host-manager.xml和manager.xml这两个文件
5. 用普通用户启动Tomcat
?
useradd -M -s /bin/false tomcat
chown -R tomcat.tomcat /usr/local/src/apache-tomcat-6.0.37
su - tomcat -c "/usr/local/src/apache-tomcat-6.0.37/bin/catalina.sh start"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)