怎样提高Ubuntu Tomcat安全性
1. 降权启动Tomcat:避免root权限风险
以非root用户运行Tomcat是基础安全措施,可防止服务被入侵后直接获取系统root权限。创建专用系统用户(如tomcat),并将其设为Tomcat目录的所有者:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat # 创建无登录权限的系统用户
sudo chown -R tomcat:tomcat /opt/tomcat # 设置目录属主
修改Tomcat启动脚本(如/opt/tomcat/bin/startup.sh),在首行添加su - tomcat -c,确保以tomcat用户身份启动服务。
2. 删除默认应用与禁用自动部署:减少攻击面
Tomcat默认安装的docs、examples、ROOT等应用包含敏感信息(如路径配置),易成为攻击入口。删除webapps目录下所有默认应用:
rm -rf /opt/tomcat/webapps/*
同时,在server.xml中禁用自动部署(避免未经审核的应用自动上线):
<
Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false">
3. 配置防火墙:限制端口访问
使用ufw(Uncomplicated Firewall)仅允许必要端口(如HTTP 8080、HTTPS 8443、SSH 22)对外开放,阻止非法IP访问:
sudo ufw allow 22/tcp # 允许SSH(管理服务器必需)
sudo ufw allow 8080/tcp # 允许HTTP(若未启用HTTPS)
sudo ufw allow 8443/tcp # 允许HTTPS
sudo ufw enable # 启用防火墙
sudo ufw status # 验证规则(应显示ALLOW规则)
4. 启用HTTPS与SSL/TLS:加密数据传输
使用Let’s Encrypt免费证书实现HTTPS,避免数据在传输过程中被窃取或篡改。获取证书并配置Tomcat:
sudo snap install --classic certbot # 安装Certbot
sudo certbot certonly --standalone -d yourdomain.com -m your@email.com --agree-tos # 获取证书
sudo cp /etc/letsencrypt/live/yourdomain.com/*.pem /opt/tomcat/conf/ # 复制证书到Tomcat目录
sudo chown -R tomcat:tomcat /opt/tomcat/conf/*.pem # 设置正确权限
修改server.xml,添加HTTPS连接器:
<
Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/opt/tomcat/conf/cert.pem"
keystorePass="your_cert_password"
clientAuth="false" sslProtocol="TLS"/>
5. 隐藏Tomcat版本信息:降低针对性攻击风险
修改server.xml中的Connector节点,添加server属性掩盖版本:
<
Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"
server="Custom Tomcat Server"/>
# 替换为自定义名称
进一步修改catalina.jar中的ServerInfo.properties文件(位于org/apache/catalina/util目录),替换版本信息(需解压jar包编辑后重新打包)。
6. 强化管理界面安全:限制访问与权限
仅在必要时启用manager-gui和admin-gui,并为管理用户设置强密码(包含大小写字母、数字、特殊字符)。编辑tomcat-users.xml:
<
tomcat-users>
<
role rolename="manager-gui"/>
<
role rolename="admin-gui"/>
<
user username="secure_admin" password="ComplexPass123!" roles="manager-gui,admin-gui"/>
<
/tomcat-users>
通过server.xml限制管理界面访问IP(如仅允许公司IP):
<
Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.1\.\d+" />
# 替换为允许的IP段
7. 定期更新与补丁管理:修复已知漏洞
保持Tomcat和Java为最新稳定版本,及时应用安全补丁。使用apt更新(若通过包管理器安装):
sudo apt update &
&
sudo apt upgrade tomcat9 openjdk-11-jdk # 根据实际版本调整
若手动安装,定期访问Apache Tomcat官网下载最新版本并替换旧文件。
8. 配置日志权限与监控:及时发现异常
修改Tomcat日志目录权限,确保tomcat用户可写入,同时限制其他用户访问:
sudo chown -R tomcat:tomcat /opt/tomcat/logs
sudo chmod -R 750 /opt/tomcat/logs
定期审查catalina.out和localhost_access_log文件(使用tail -f实时监控),设置日志轮转(通过logrotate工具)防止日志过大。
9. 禁用不必要的组件与服务:减少漏洞点
若无需AJP协议(常用于Apache反向代理),注释server.xml中的AJP连接器:
<
!-- <
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
关闭Tomcat的JMX远程管理(若未使用),编辑catalina.sh,注释-Dcom.sun.management.jmxremote相关配置。
10. 应用层安全配置:增强Web应用防护
在web.xml中配置自定义错误页面(避免暴露敏感信息),禁止目录列表:
<
error-page>
<
error-code>
404<
/error-code>
<
location>
/error/404.html<
/location>
# 自定义404页面
<
/error-page>
<
error-page>
<
error-code>
500<
/error-code>
<
location>
/error/500.html<
/location>
# 自定义500页面
<
/error-page>
<
security-constraint>
<
web-resource-collection>
<
web-resource-name>
Disable Directory Listing<
/web-resource-name>
<
url-pattern>
/*<
/url-pattern>
<
/web-resource-collection>
<
auth-constraint/>
<
/security-constraint>
启用Cookie的HttpOnly和Secure属性(在context.xml中):
<
Context useHttpOnly="true">
<
CookieProcessor sameSiteCookies="strict"/>
<
/Context>
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样提高Ubuntu Tomcat安全性
本文地址: https://pptw.com/jishu/737299.html
