Tomcat安全优化

本文详细介绍了Tomcat的安全优化措施,包括更改管理端口和shutdown命令、保护ajp连接端口、禁用默认管理应用、降权启动Tomcat、控制文件列表访问、隐藏版本信息、设置错误页面重定向、修改server头、限制访问IP、权限回收启动脚本、规范访问日志以及编写清理脚本等,以增强服务器安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 telnet管理端口 强制
vim /usr/local/tomcat/conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">

修改 修改端口 修改shutdown对应命令改为任意字符串

 <Server port="8527" shutdown="dangerous">

2 ajp连接端口保护 推荐

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

修改 修改端口 删除redirectPort

<Connector port="8009" protocol="AJP/1.3" />

3 禁用管理端 强制
删除{Tomcat安装目录}/webapps下默认的所有目录和文件;
将tomcat 应用根目录配置为tomcat安装目录以外的目录;

<Context path="" docBase="/home/work/local/tomcat_webapps"
debug="0"
reloadable="false"
crossContext="true"/>

4 降权启动
[root@tom01 conf]# cp -a /usr/local/tomcat/ /home/tomcat/
[root@tom01 home]# chown -R tomcat.tomcat /home/tomcat/
[root@tom01 conf]#useradd tomcat -u 1000
[root@tom01 conf]# su - tomcat
[tomcat@tom01 ~]$ /usr/local/tomcat-shell/start_tomcat.sh /home/tomcat/
ps -aux|grep java

5 文件列表访问控制 强制
conf/web.xml文件中default部分listings的配置必须为false
vim /usr/local/tomcat/conf/web.xml
<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>
false为不列出目录文件,true为允许列出,默认为false

6版本信息隐藏 强制
vim /usr/local/tomcat/conf/web.xml
重定向403、404以及500等错误到指定的错误页面
也可以通过修改应用程序目录下的WEB-INF/web.xml下的配置进行错误页面的重定向
1 进入tomcat的lib目录找到catalina.jar文件
2 unzip catalina.jar之后会多出两个文件夹 META-INF org
3 进入org/apache/catalina/util 编辑配置文件ServerInfo.properties
4 修改
server.info=Apache Tomcat
server.number=0.0.0.0
server.built=Nov 7 2016 20:05:27 UTC
5 将修改后的信息压缩回jar包
cd /tomcat/lib
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
6 重启Tomcat

<error-page>
<error-code>403</error-code>
<location>/forbidden.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/notfound.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/systembusy.jsp</location>
</error-page>

在配置中对一些常见错误进行重定向,避免当出现错误时tomcat默认显示的错误页面暴露服务器和版本信息必须确保程序根目录下的错误页面已经存在

7 server header重写 推荐
vim /usr/local/tomcat/conf/server.xml

<Connector port="8083" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改

<Connector port="8083" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" server="webserver" />

8 访问限制 可选

<Context path="" docBase="/home/work/tomcat" debug="0" reloadable="false" crossContext="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="61.148.18.138,61.135.165.*" deny="*.*.*.*"/>
</Context>

通过配置信任ip的白名单,拒绝非白名单ip的访问,此配置主要是针对高保密级别的系统,一般产品线不需要

9启停脚本权限回收 推荐
chmod 744 /usr/local/tomcat/bin/*
防止其他用户有起停线上Tomcat的权限

10 访问日志的规范 推荐
vim /usr/local/tomcat/conf/server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

修改 开启Tomcat默认访问日志中的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 %D" resolveHosts="false"/>

开启Referer和User-Agent是为了一旦出现安全问题能够更好的根据日志进行问题排查

11 编写启动脚本 每次关闭tomcat的时候删除tomcat安装路径下的/tmp/* work/* 如果不删除的话在启动后可能会有一些意想不到的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值