Ubuntu中Tomcat的安全设置怎么做
1. 最小权限原则配置Tomcat运行用户
创建专用低权限用户(如tomcat)及同组,用于运行Tomcat服务,避免以root身份启动。执行以下命令:
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
sudo chown -R tomcat:tomcat /opt/tomcat # 将Tomcat安装目录所有权赋予该用户/组
若使用系统服务(如systemd),需在服务文件(如/etc/systemd/system/tomcat.service)中明确指定用户:
[Service]
User=tomcat
Group=tomcat
修改后重载systemd并重启Tomcat:
sudo systemctl daemon-reload
sudo systemctl restart tomcat
2. 移除默认内置应用及禁用不必要组件
Tomcat默认安装的docs、examples、ROOT、host-manager、manager等应用可能存在安全风险,生产环境应删除:
sudo rm -rf /opt/tomcat/webapps/docs /opt/tomcat/webapps/examples /opt/tomcat/webapps/ROOT
sudo rm -rf /opt/tomcat/webapps/host-manager /opt/tomcat/webapps/manager
同时,禁用AJP连接器(默认端口8009),编辑/opt/tomcat/conf/server.xml,注释或删除AJP配置段:
<
!-- <
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
3. 强化Tomcat用户认证与管理
编辑/opt/tomcat/conf/tomcat-users.xml,设置复杂密码并仅授权必要角色(避免使用manager-script、manager-jmx等高权限角色):
<
tomcat-users>
<
role rolename="manager-gui"/>
<
!-- 仅允许通过GUI管理 -->
<
role rolename="admin-gui"/>
<
user username="secure_admin" password="YourStrongPassword123!" roles="manager-gui,admin-gui"/>
<
/tomcat-users>
修改Tomcat关闭指令(/opt/tomcat/conf/server.xml中的<
Server>
标签),避免暴力破解:
<
Server port="8005" shutdown="ComplexShutdownCode123">
# 替换为随机复杂字符串
4. 配置SSL/TLS加密通信
生成自签名证书(生产环境建议使用CA颁发的证书),执行以下命令:
sudo keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore /opt/tomcat/keystore.jks -validity 365
按提示输入信息(如姓名、组织、密码等),默认密钥库密码为changeit。
编辑/opt/tomcat/conf/server.xml,取消注释并修改SSL连接器配置:
<
Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/opt/tomcat/keystore.jks"
keystorePass="YourKeystorePassword"
clientAuth="false" sslProtocol="TLS"/>
可选:配置HTTP重定向到HTTPS(编辑/opt/tomcat/conf/web.xml),添加以下内容强制所有流量使用HTTPS:
<
security-constraint>
<
web-resource-collection>
<
web-resource-name>
Protected Context<
/web-resource-name>
<
url-pattern>
/*<
/url-pattern>
<
/web-resource-collection>
<
user-data-constraint>
<
transport-guarantee>
CONFIDENTIAL<
/transport-guarantee>
<
/user-data-constraint>
<
/security-constraint>
5. 配置防火墙限制访问端口
使用UFW(Uncomplicated Firewall)仅允许必要端口(如HTTP 8080、HTTPS 8443、SSH 22)访问:
sudo ufw allow 22/tcp # 允许SSH远程管理
sudo ufw allow 8080/tcp # 允许HTTP访问(若未配置重定向)
sudo ufw allow 8443/tcp # 允许HTTPS访问
sudo ufw enable # 启用防火墙
sudo ufw status # 验证规则(应显示ALLOW规则)
6. 调整日志与文件权限防止泄露
修改/opt/tomcat/bin/catalina.sh,设置更宽松的umask(如0022),确保日志文件可被监控用户读取:
umask 0022
调整日志目录权限(/opt/tomcat/logs),允许组内用户读取:
sudo chmod -R 755 /opt/tomcat/logs
配置日志级别为WARN(减少敏感信息输出),编辑/opt/tomcat/conf/logging.properties:
org.apache.catalina.level = WARN
org.apache.coyote.level = WARN
org.apache.jasper.level = WARN
7. 禁用自动部署与远程管理
编辑/opt/tomcat/conf/server.xml,关闭自动部署(避免未经授权的WAR文件部署):
<
Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">
禁用远程管理接口(如JMX远程访问),编辑/opt/tomcat/conf/context.xml,添加以下内容:
<
Context antiResourceLocking="false" privileged="false">
<
Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1"/>
<
/Context>
8. 定期更新Tomcat与系统组件
定期检查Tomcat官方更新,升级至最新稳定版本(如Tomcat 10.1.x),修复已知漏洞:
# 若使用apt安装(Ubuntu 22.04+默认仓库版本较旧,建议手动下载)
wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
sudo tar xzvf apache-tomcat-10.1.20.tar.gz -C /opt/
sudo mv /opt/apache-tomcat-10.1.20 /opt/tomcat-new
sudo systemctl stop tomcat
sudo rm -rf /opt/tomcat
sudo mv /opt/tomcat-new /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo systemctl start tomcat
同时,更新系统软件包:
sudo apt update &
&
sudo apt upgrade -y
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Tomcat的安全设置怎么做
本文地址: https://pptw.com/jishu/742619.html
