温馨提示×

Debian Tomcat如何配置防火墙

小樊
33
2025-12-15 22:20:06
栏目: 智能运维

Debian 上 Tomcat 的防火墙配置

一、前置检查

  • 确认 Tomcat 正在监听的端口(默认 8080/8443),以及是否仅绑定在 127.0.0.10.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.108080/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/2410.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 应用。

0