Debian Tomcat如何配置防火墙
小樊
33
2025-12-15 22:20:06
Debian 上 Tomcat 的防火墙配置
一、前置检查
- 确认 Tomcat 正在监听的端口(默认 8080/8443),以及是否仅绑定在 127.0.0.1 或 0.0.0.0。
- 检查 Tomcat 服务状态:sudo systemctl status tomcat9。
- 如需通过 80/443 对外提供访问,后续可结合反向代理或端口转发。
二、使用 UFW 快速放行
- 安装与启用(如未安装):sudo apt update && sudo apt install ufw;sudo ufw enable。
- 放行 Tomcat 端口与 SSH:
- sudo ufw allow 8080/tcp
- sudo ufw allow 8443/tcp(如启用 HTTPS)
- sudo ufw allow 22/tcp(务必先放行,避免锁死 SSH)
- 查看与验证:sudo ufw status verbose;必要时 sudo ufw reload。
- 仅允许特定来源访问某端口(示例仅放行 192.168.1.10 到 8080/tcp):sudo ufw allow from 192.168.1.10 to any port 8080。
三、使用 iptables 精细控制
- 放行访问与已建立连接(示例为 8080/tcp):
- sudo iptables -A INPUT -p tcp --dport 8080 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
- sudo iptables -A OUTPUT -p tcp --sport 8080 -m conntrack --ctstate ESTABLISHED -j ACCEPT
- 持久化规则(Debian 常用路径):sudo sh -c “iptables-save > /etc/iptables/rules.v4”。
- 按需扩展至 8443/tcp 或加入来源限制(在 INPUT 规则前添加 -s 源地址)。
四、结合 Tomcat 配置的访问控制
- 仅本机访问:编辑 /etc/tomcat9/server.xml,在 Connector 上设置 address:
修改后重启:sudo systemctl restart tomcat9。
- 基于 IP 的访问限制:在 server.xml 的 Host 内加入 RemoteAddrValve,例如仅允许 192.168.1.0/24 与 10.0.0.5:
。
- 通过反向代理统一到 80/443 并做访问控制:
- Nginx 示例(限制来源 + 基础认证):
- 在 location 内加入:allow 192.168.1.0/24; deny all; 以及 auth_basic 与 auth_basic_user_file。
- 对外仅暴露 80/443,由代理转发至 localhost:8080。
- 完成后重载 Nginx:sudo nginx -t && sudo systemctl reload nginx。
五、验证与常见问题
- 连通性测试:
- curl -I http://服务器IP:8080
- 如启用 HTTPS:curl -I https://服务器IP:8443(忽略证书校验可加 -k)
- 常见问题与处理:
- 规则未生效:确认已执行 sudo ufw enable 或已保存 iptables 规则,并重启 Tomcat/代理。
- 本机能访问、外网不能:检查云厂商安全组/本机防火墙、Tomcat 是否仅监听 127.0.0.1(若是,改为 0.0.0.0 或按需在 server.xml 设置 address)。
- 管理界面暴露风险:生产环境建议禁用或限制来源,可结合 RemoteAddrValve、反向代理认证或重命名 manager/host-manager 应用。