温馨提示×

Debian PgAdmin如何配置防火墙规则

小樊
45
2026-01-03 04:23:43
栏目: 智能运维

Debian 上 pgAdmin 防火墙规则配置

一、确认 pgAdmin 监听端口

  • 常见安装方式下,pgAdmin 4 的 Web 服务默认监听 TCP 5050;若你修改过端口,请以实际配置为准。常见修改方式包括编辑 /etc/pgadmin4/pgadmin4.confSERVER_PORT,或在 /etc/pgadmin4/config_local.py 中设置 WEB_PORT。修改后需重启服务生效。示例(若使用 config_local.py):
    • 编辑配置:sudo nano /etc/pgadmin4/config_local.py
    • 设置端口:WEB_PORT = 5051
    • 重启:sudo systemctl restart pgadmin4 以上端口与配置路径为 pgAdmin 在 Debian 的常见做法,请据你的实际环境核对。

二、使用 UFW 放行端口

  • 允许 pgAdmin 端口(以 5050 为例;若你改为 5051,将端口号替换即可):
    • 放行端口:sudo ufw allow 5050/tcp
    • 启用防火墙:sudo ufw enable
    • 查看状态:sudo ufw status verbose
  • 若 pgAdmin 启用了 HTTPS,通常还需放行 443/tcp(或你自定义的 HTTPS 端口)。UFW 是 Debian 上常用的简易防火墙工具,上述命令可直接使用。

三、使用 nftables 放行端口

  • 适用于不使用 UFW、直接管理 nftables 的场景。以下规则仅允许来自 192.168.1.0/24 的管理网段访问 5050/tcp,并放行已建立的连接与回环接口;其余入站默认丢弃。可按需调整网段与端口。
    • 创建表与链:
      • sudo nft add table inet filter
      • sudo nft add chain inet filter input { type filter hook input priority 0 ; }
    • 放行规则:
      • sudo nft add rule inet filter input iif lo accept
      • sudo nft add rule inet filter input ct state established,related accept
      • sudo nft add rule inet filter input ip saddr 192.168.1.0/24 tcp dport 5050 accept
      • sudo nft add rule inet filter input ip6 saddr 2001:db8:1::/64 tcp dport 5050 accept # 可选:IPv6 网段
    • 默认策略(谨慎:确保已通过控制台/带外可恢复访问):
      • sudo nft chain inet filter input { policy drop ; }
  • 持久化(Debian 10+/nftables 默认使用 nft 持久化机制):
    • 保存规则:sudo nft list ruleset > /etc/nftables.conf
    • 启用开机加载:sudo systemctl enable --now nftables
  • 提示:若你使用 iptables 而非 nftables,思路相同(放行 5050/tcp 及已建立连接),但命令语法不同。

四、验证与常见排错

  • 本机验证:
    • 本地访问:curl -I http://127.0.0.1:5050
    • 远程访问(从另一台主机):curl -I http://服务器IP:5050
  • 服务与端口检查:
    • 查看 pgAdmin 状态:sudo systemctl status pgadmin4
    • 查看端口监听:ss -ltnp | grep :5050
  • 防火墙状态检查:
    • UFW:sudo ufw status verbose
    • nftables:sudo nft list ruleset
  • 若访问被拒或超时,优先核对:pgAdmin 实际监听端口、UFW/nftables 是否放行对应端口、云厂商安全组/本机外部防火墙是否限制。

0