1. 安装Tomcat及基础准备
在Debian系统上,优先通过官方软件源安装Tomcat(如tomcat9
),确保后续更新便捷:
sudo apt update && sudo apt install tomcat9 tomcat9-admin -y
安装完成后,Tomcat服务会自动启动,可通过systemctl status tomcat9
验证状态。
2. 创建专用Tomcat用户并设置权限
为避免以root身份运行Tomcat(高风险),需创建专用系统用户:
sudo adduser --system --group --shell /bin/false tomcat # 创建无登录权限的系统用户
修改Tomcat关键目录(安装目录、日志、配置、webapps)的所有权至tomcat
用户/组:
sudo chown -R tomcat:tomcat /var/lib/tomcat9 /var/log/tomcat9 /etc/tomcat9 /opt/tomcat/webapps/
编辑Tomcat服务文件(/etc/systemd/system/tomcat9.service
),指定运行用户/组:
[Service]
User=tomcat
Group=tomcat
UMask=0007 # 限制组外用户访问
Restart=always
重新加载systemd并重启Tomcat使配置生效:
sudo systemctl daemon-reload && sudo systemctl restart tomcat9
验证Tomcat进程是否以tomcat
用户运行:
ps -ef | grep tomcat
应显示tomcat
用户对应的进程。
3. 基础安全配置(修改默认端口/隐藏版本/禁用默认应用)
/etc/tomcat9/server.xml
,调整HTTP(默认8080)和HTTPS(默认8443)端口,降低被扫描工具发现的概率:<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" />
server.xml
的<Connector>
标签中添加server
属性,掩盖服务器版本:<Connector ... server="CustomTomcatServer" />
webapps
目录下的默认示例应用(docs
、examples
),避免暴露敏感信息:sudo rm -rf /var/lib/tomcat9/webapps/docs /var/lib/tomcat9/webapps/examples
manager
/host-manager
,可重命名对应目录:sudo mv /var/lib/tomcat9/webapps/manager /var/lib/tomcat9/webapps/manager_disabled
sudo mv /var/lib/tomcat9/webapps/host-manager /var/lib/tomcat9/webapps/host-manager_disabled
4. 配置SSL/TLS加密通信
为避免数据传输被窃听,需启用HTTPS。首先生成自签名证书(生产环境建议使用Let’s Encrypt免费证书):
sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -storepass changeit -keypass changeit
编辑server.xml
,添加SSL连接器:
<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/tomcat9/keystore.jks"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
重启Tomcat后,通过https://服务器IP:8444
访问即可看到加密连接。
5. 配置防火墙限制访问
使用ufw
(Ubuntu防火墙)限制仅允许必要端口访问:
sudo apt install ufw -y
sudo ufw allow 8081/tcp # HTTP端口
sudo ufw allow 8444/tcp # HTTPS端口
sudo ufw allow 22/tcp # SSH端口(用于远程管理)
sudo ufw enable # 启用防火墙
验证规则:
sudo ufw status
应显示上述端口为ALLOW
状态。
6. 强化用户认证与权限
编辑/etc/tomcat9/tomcat-users.xml
,配置管理用户角色及权限(避免使用弱密码):
<tomcat-users>
<role rolename="manager-gui"/> <!-- 允许访问管理界面 -->
<role rolename="admin-gui"/> <!-- 允许访问管理员界面 -->
<user username="secureAdmin" password="ComplexPassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
重启Tomcat使用户配置生效:
sudo systemctl restart tomcat9
注意:生产环境中应使用更复杂的密码,并定期更换。
7. 定期更新与监控
sudo apt update && sudo apt upgrade tomcat9 -y
journalctl
查看Tomcat日志,或使用logwatch
工具发送每日日志摘要:sudo apt install logwatch -y
sudo logwatch --service tomcat --output mail # 发送邮件报告(需配置邮件服务)
server.xml
、tomcat-users.xml
等关键配置文件,防止配置丢失。