加固 Debian 上的 Apache Tomcat 需要从 系统层、Tomcat 配置、应用层、网络层 多方面入手。下面给你一套生产环境常用加固清单,按重要程度排序,适合 Debian 10/11/12。
不要用 root 运行 Tomcat。
sudo useradd -r -m -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
修改 systemd 服务:
User=tomcat
Group=tomcat
chmod -R 750 /opt/tomcat
chmod 600 /opt/tomcat/conf/*
systemctl disable bluetooth
systemctl disable cups
也即:最小安装原则。
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 和账号。
编辑:
vim /opt/tomcat/conf/server.xml
注释或删除:
<!-- <Connector protocol="AJP/1.3" port="8009" ... /> -->
✅ Tomcat 9+ 已默认关闭 AJP
不建议使用 8080:
<Connector port="8080" … />
改为:
<Connector port="8899" … />
conf/web.xml:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
conf/server.xml:
<Connector server="Unknown" />
或在 conf/web.xml 中关闭错误详情。
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>
<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 跳转。
server.xml:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="access_log"
suffix=".txt"
pattern="combined" />
chown -R tomcat:tomcat /opt/tomcat/logs
chmod 750 /opt/tomcat/logs
ufw allow 22
ufw allow 8443
ufw enable
只允许:
-Dcom.sun.management.jmxremote=false
CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"
apt update && apt upgrade
Tomcat 本身:
| 项目 | 状态 |
|---|---|
| 非 root 运行 | ✅ |
| 删除默认应用 | ✅ |
| 禁用 AJP | ✅ |
| 禁用目录浏览 | ✅ |
| 强密码 | ✅ |
| HTTPS | ✅ |
| 防火墙 | ✅ |
| 日志开启 | ✅ |
如果你愿意,我可以:
✅ 给你 Debian + Tomcat 9/10 的最小安全配置示例
✅ 帮你 审计现有 server.xml / tomcat-users.xml
✅ 给你 等保 / 安全基线对照表
直接告诉我你的 Tomcat 版本即可。