Ubuntu PostgreSQL 防火墙配置指南

ubuntu postgresql 防火墙配置

Ubuntu PostgreSQL 防火墙配置指南

在 Ubuntu 系统上配置 PostgreSQL 的防火墙设置主要涉及到 UFW (Uncomplicated Firewall) 的配置。以下是详细步骤:

1. 检查防火墙状态

首先,检查当前的防火墙状态:

sudo ufw status

2. 启用防火墙(如果尚未启用)

sudo ufw enable

3. 允许 PostgreSQL 端口访问

PostgreSQL 默认使用 5432 端口。根据您的需求,可以选择以下配置方式:

允许特定 IP 地址访问 PostgreSQL

sudo ufw allow from 192.168.1.100 to any port 5432

允许特定子网访问 PostgreSQL

sudo ufw allow from 192.168.1.0/24 to any port 5432

允许所有 IP 访问 PostgreSQL(不建议在生产环境使用)

sudo ufw allow 5432/tcp

4. 验证规则已添加

sudo ufw status

5. PostgreSQL 配置文件修改

除了防火墙设置外,您还需要确保 PostgreSQL 被配置为接受远程连接:

  1. 编辑 PostgreSQL 配置文件:
sudo nano /etc/postgresql/{version}/main/postgresql.conf

修改 listen_addresses 参数:

listen_addresses = '*'    # 允许所有 IP 连接,或指定特定 IP
  1. 编辑客户端认证配置文件:
sudo nano /etc/postgresql/{version}/main/pg_hba.conf

添加适当的访问控制条目,例如:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.0/24          md5
  1. 重启 PostgreSQL 服务:
sudo systemctl restart postgresql

6. 安全建议

  • 总是使用强密码保护数据库用户
  • 尽可能限制特定 IP 或子网的访问,而不是开放给所有 IP
  • 考虑使用 SSL 连接增加安全性
  • 定期检查和更新防火墙规则

这样配置后,PostgreSQL 应该能够根据您设置的防火墙规则接受远程连接了。