Ubuntu中Tomcat安全设置有哪些
Ubuntu中Tomcat安全设置关键措施
1. 运行权限控制:以非root用户启动Tomcat
Tomcat不应以root用户身份运行,否则一旦被入侵,攻击者可获得系统最高权限。需创建专用低权限用户(如tomcat
),并将其设置为Tomcat的所有者和运行用户:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat # 创建用户及同组
sudo chown -R tomcat:tomcat /opt/tomcat # 赋予目录所有权
修改Tomcat启动脚本(如startup.sh
或catalina.sh
),确保以tomcat
用户身份启动服务。
2. 删除默认应用与目录
Tomcat默认安装包含docs
、examples
、ROOT
、host-manager
、manager
等目录,这些目录可能暴露敏感信息或成为攻击入口。安装完成后应立即删除:
rm -rf /opt/tomcat/webapps/*
若需保留部分功能(如manager
),需严格限制访问权限(见下文“限制管理界面访问”)。
3. 禁用自动部署
自动部署(autoDeploy="true"
)会自动解压上传的WAR文件,易被恶意利用。需修改server.xml
中的Host
配置,关闭自动部署:
<
Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false">
同时关闭deployOnStartup
属性(默认true
),避免服务器启动时自动部署。
4. 隐藏Tomcat版本信息
攻击者可通过版本信息识别已知漏洞。修改server.xml
中的Connector
配置,添加server
字段覆盖默认版本:
<
Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="Custom Server" />
或修改catalina.jar
中的ServerInfo.properties
文件(需解压jar包编辑)。
5. 配置防火墙限制端口访问
使用ufw
(Ubuntu防火墙)仅允许必要端口(如HTTP的8080、HTTPS的8443、AJP的8009)对外开放,阻止非法访问:
sudo ufw allow 8080/tcp # 允许HTTP访问
sudo ufw allow 8443/tcp # 允许HTTPS访问
sudo ufw allow 8009/tcp # 允许AJP访问(若使用Apache反向代理可关闭)
sudo ufw enable # 启用防火墙
若无需AJP协议,可直接注释server.xml
中的AJP连接器。
6. 启用HTTPS加密通信
通过SSL/TLS证书启用HTTPS,加密客户端与服务器之间的数据传输,防止中间人攻击。步骤如下:
- 生成密钥库(Keystore):
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks -validity 365
- 修改
server.xml
,添加HTTPS连接器:< Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/opt/tomcat/keystore.jks" keystorePass="your_keystore_password" clientAuth="false" sslProtocol="TLS" />
7. 强化管理界面安全
Tomcat的manager
和host-manager
应用需严格限制访问:
- 设置复杂密码:编辑
tomcat-users.xml
,为用户分配最小必要角色(如仅manager-gui
,避免manager-script
等高危角色):< tomcat-users> < user username="admin" password="StrongPassword123!" roles="manager-gui"/> < /tomcat-users>
- 限制访问IP:在
server.xml
的Host
或Context
配置中添加address
属性,仅允许可信IP访问:< Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />
8. 自定义错误页面防止信息泄露
默认错误页面(如404、500)可能暴露Tomcat版本、服务器路径等信息。修改web.xml
文件,自定义错误页面:
<
error-page>
<
error-code>
404<
/error-code>
<
location>
/error/404.html<
/location>
<
/error-page>
<
error-page>
<
error-code>
500<
/error-code>
<
location>
/error/500.html<
/location>
<
/error-page>
将自定义页面放置在webapps/ROOT/error/
目录下。
9. 禁止目录列示
防止攻击者通过目录遍历查看应用文件结构。在web.xml
中添加以下配置,默认情况下Tomcat高版本已开启:
<
init-param>
<
param-name>
listings<
/param-name>
<
param-value>
false<
/param-value>
<
/init-param>
10. 定期更新与监控
- 更新Tomcat与JDK:定期检查并安装Tomcat(如通过
apt
或官网下载)和JDK的最新稳定版本,修复已知漏洞。 - 监控日志:定期审查
catalina.out
、localhost_access_log
等日志文件,使用工具(如fail2ban
)检测暴力破解行为。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Tomcat安全设置有哪些
本文地址: https://pptw.com/jishu/728603.html