温馨提示×

如何加固Debian Tomcat

小樊
52
2026-08-05 08:24:56
栏目: 智能运维

加固 Debian 上的 Apache Tomcat 需要从 系统层、Tomcat 配置、应用层、网络层 多方面入手。下面给你一套生产环境常用加固清单,按重要程度排序,适合 Debian 10/11/12。


一、系统层加固(Debian)

1. 使用专用用户运行 Tomcat(必须)

不要用 root 运行 Tomcat

sudo useradd -r -m -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat

修改 systemd 服务:

User=tomcat
Group=tomcat

2. 限制 Tomcat 文件权限

chmod -R 750 /opt/tomcat
chmod 600 /opt/tomcat/conf/*

3. 关闭不必要的系统服务

systemctl disable bluetooth
systemctl disable cups

也即:最小安装原则


二、Tomcat 配置加固(核心)

4. 删除默认应用(非常重要)

rm -rf /opt/tomcat/webapps/ROOT
rm -rf /opt/tomcat/webapps/docs
rm -rf /opt/tomcat/webapps/examples
rm -rf /opt/tomcat/webapps/host-manager
rm -rf /opt/tomcat/webapps/manager

如果必须使用 manager,务必限制 IP 和账号。


5. 禁用 AJP 连接器(除非你明确需要)

编辑:

vim /opt/tomcat/conf/server.xml

注释或删除:

<!-- <Connector protocol="AJP/1.3" port="8009" ... /> -->

Tomcat 9+ 已默认关闭 AJP


6. 修改默认端口

不建议使用 8080:

<Connector port="8080" … />

改为:

<Connector port="8899" … />

7. 禁用目录列表

conf/web.xml

<init-param>
  <param-name>listings</param-name>
  <param-value>false</param-value>
</init-param>

8. 限制 Tomcat 版本信息泄露

conf/server.xml

<Connector server="Unknown" />

或在 conf/web.xml 中关闭错误详情。


三、用户与权限管理

9. 禁用或加固 Manager 用户

conf/tomcat-users.xml

❌ 不推荐:

<user username="tomcat" password="tomcat" roles="manager-gui"/>

✅ 推荐:

<user username="admin"
      password="强密码"
      roles="manager-gui"/>

并限制 IP:

<Context>
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.0\.0\.1|10\.0\.0\.0"/>
</Context>

四、HTTPS / TLS 加固

10. 强制 HTTPS(推荐)

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150"
           SSLEnabled="true">
  <SSLHostConfig>
    <Certificate certificateKeystoreFile="conf/keystore.jks"
                 certificateKeystorePassword="密码"
                 type="RSA" />
  </SSLHostConfig>
</Connector>

并配置 HTTP → HTTPS 跳转。


五、日志与审计

11. 开启访问日志

server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="access_log"
       suffix=".txt"
       pattern="combined" />

12. 日志权限

chown -R tomcat:tomcat /opt/tomcat/logs
chmod 750 /opt/tomcat/logs

六、防火墙 & 网络层

13. Debian 防火墙(ufw / nftables)

ufw allow 22
ufw allow 8443
ufw enable

只允许:

  • 应用端口
  • 管理端口(内网)

七、JVM 安全加固

14. 禁用 JMX(除非必要)

-Dcom.sun.management.jmxremote=false

15. 设置 JVM 安全参数

CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"

八、定期维护

16. 定期更新

apt update && apt upgrade

Tomcat 本身:

  • 订阅 Apache Tomcat 安全公告
  • 升级到最新稳定版

九、快速检查清单 ✅

项目 状态
非 root 运行
删除默认应用
禁用 AJP
禁用目录浏览
强密码
HTTPS
防火墙
日志开启

十、进阶(生产级)

  • 使用 Nginx / Apache 反向代理
  • 使用 fail2ban
  • 使用 SELinux / AppArmor
  • 容器化(Docker + 非 root)

如果你愿意,我可以: ✅ 给你 Debian + Tomcat 9/10 的最小安全配置示例
✅ 帮你 审计现有 server.xml / tomcat-users.xml
✅ 给你 等保 / 安全基线对照表

直接告诉我你的 Tomcat 版本即可。

0