debian

Debian下Tomcat安全配置有哪些要点

小樊
46
2025-10-15 15:42:41
栏目: 智能运维

1. 安装Tomcat及依赖
在Debian上安装Tomcat前,需先更新软件源并安装OpenJDK(Tomcat的运行环境)及Tomcat本身。推荐使用apt包管理器安装,确保组件版本兼容且易于后续更新:

sudo apt update
sudo apt install tomcat9 tomcat9-admin default-jdk

2. 创建专用Tomcat用户
为避免以root权限运行Tomcat(降低被攻击后的影响范围),需创建专用系统用户及组,并将Tomcat目录所有权转移给该用户:

# 创建tomcat组及用户(禁用登录shell)
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

# 更改Tomcat目录所有权(若安装在/opt/tomcat)
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R 750 /opt/tomcat  # 限制目录权限

3. 配置Tomcat以专用用户运行
编辑Tomcat的systemd服务文件(/etc/systemd/system/tomcat9.service),确保UserGroup设置为tomcat,并添加UMask 0007(限制新文件权限):

[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

修改后需重新加载systemd并重启Tomcat:

sudo systemctl daemon-reload
sudo systemctl restart tomcat9

4. 修改默认端口
默认的8080(HTTP)和8009(AJP)端口易被扫描工具识别,需编辑/etc/tomcat9/server.xml,修改Connector标签的port属性(如将HTTP改为1234,AJP改为10009):

<Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="10009" protocol="AJP/1.3" redirectPort="8443" />

5. 隐藏Tomcat版本信息
server.xmlConnector标签中添加server属性,替换为自定义字符串(如MySecureTomcat),防止攻击者通过HTTP响应头识别Tomcat版本:

<Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="MySecureTomcat" />

6. 限制远程管理界面访问
Tomcat的managerhost-manager应用默认暴露在公网,易遭受暴力破解或未授权访问。可通过以下两种方式限制:

7. 配置SSL/TLS加密
为避免数据在传输过程中被窃取,需启用HTTPS。首先生成自签名证书(或使用Let’s Encrypt获取免费证书),然后编辑server.xml添加SSL连接器:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           keystoreFile="/path/to/your/keystore.jks" keystorePass="your_keystore_password"
           clientAuth="false" sslProtocol="TLS" />

8. 配置用户权限与认证
编辑/etc/tomcat9/tomcat-users.xml,添加管理用户并分配最小必要角色(如manager-gui仅允许访问管理界面,admin-gui允许访问主机管理):

<tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <user username="secureAdmin" password="StrongPassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>

注意:避免使用弱密码,建议使用密码管理器生成复杂密码。

9. 配置防火墙限制访问
使用ufw(Uncomplicated Firewall)限制仅允许必要端口(如80/443转发至Tomcat端口、SSH端口22)的流量,阻止非法访问:

# 允许HTTP(80)转发至Tomcat HTTP端口(如1234)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 1234/tcp
sudo ufw allow 8443/tcp
# 允许SSH(22)用于远程管理
sudo ufw allow 22/tcp
# 启用防火墙
sudo ufw enable
# 查看规则
sudo ufw status

10. 定期更新与监控

0
看了该问题的人还看了