温馨提示×

Ubuntu中pgAdmin安全设置步骤

小樊
43
2025-10-01 07:15:47
栏目: 智能运维

Ubuntu中pgAdmin安全设置步骤

1. 修改默认密码

  • PostgreSQL默认管理员密码:使用sudo -u postgres psql进入PostgreSQL命令行,执行\password postgres命令,设置复杂密码(包含大小写字母、数字和特殊字符)。
  • pgAdmin自身密码:首次安装pgAdmin后,通过Web界面登录初始管理员账号(默认端口5050),立即修改密码,避免使用默认或弱密码。

2. 配置防火墙限制访问

  • 使用ufw(Uncomplicated Firewall)工具限制pgAdmin的访问范围:
    sudo ufw allow from <trusted_ip> to any port 5050/tcp  # 仅允许特定IP访问pgAdmin端口
    sudo ufw enable  # 启用防火墙
    
    替换<trusted_ip>为你的实际可信IP地址(如公司IP或家庭IP),避免暴露pgAdmin到公网。

3. 启用SSL加密通信

  • 生成SSL证书和私钥
    sudo mkdir -p /etc/ssl/private/pgadmin /etc/ssl/certs/pgadmin
    sudo openssl genrsa -out /etc/ssl/private/pgadmin/pgadmin.key 2048  # 生成2048位私钥
    sudo openssl req -new -key /etc/ssl/private/pgadmin/pgadmin.key -out /etc/ssl/certs/pgadmin/pgadmin.csr  # 创建证书签名请求(CSR)
    sudo openssl x509 -req -days 365 -in /etc/ssl/certs/pgadmin/pgadmin.csr -signkey /etc/ssl/private/pgadmin/pgadmin.key -out /etc/ssl/certs/pgadmin/pgadmin.crt  # 生成自签名证书(有效期365天)
    sudo cat /etc/ssl/private/pgadmin/pgadmin.key /etc/ssl/certs/pgadmin/pgadmin.crt > /etc/ssl/certs/pgadmin/pgadmin.pem  # 合并为PEM格式
    
  • 配置pgAdmin使用SSL: 编辑pgAdmin配置文件(路径通常为/etc/pgadmin/pgadmin.conf),添加以下内容:
    [server]
    ssl = on
    ssl_cert_file = /etc/ssl/certs/pgadmin/pgadmin.pem
    ssl_key_file = /etc/ssl/private/pgadmin/pgadmin.key
    
    保存后重启pgAdmin服务:
    sudo systemctl restart pgadmin4
    
    访问pgAdmin时使用https://your_server_ip:5050,浏览器会提示自签名证书风险,选择“继续访问”即可。

4. 配置访问控制列表(ACL)

  • PostgreSQL层面:编辑pg_hba.conf文件(路径通常为/etc/postgresql/<version>/main/pg_hba.conf),限制允许连接的IP和用户。例如:
    # 仅允许本地和特定IP通过密码认证连接
    host    all             all             127.0.0.1/32            md5
    host    all             all             <trusted_ip>/32         md5
    
    保存后重启PostgreSQL服务:
    sudo systemctl restart postgresql
    
  • pgAdmin用户权限:通过pgAdmin Web界面管理用户和角色:
    • 进入“服务器”→“用户”,创建新用户并分配最小必要权限(如仅允许访问特定数据库)。
    • 避免授予“超级用户”权限给非必要用户,降低数据库被误操作或攻击的风险。

5. 定期更新系统和软件

  • 定期更新Ubuntu系统、PostgreSQL数据库和pgAdmin到最新版本,修复已知安全漏洞:
    sudo apt update && sudo apt upgrade -y  # 更新系统
    sudo pip3 install --upgrade pgadmin4    # 更新pgAdmin(若通过pip安装)
    
    建议开启自动更新(如sudo apt install unattended-upgrades),确保及时获取安全补丁。

6. 启用日志审计

  • 配置pgAdmin和PostgreSQL的日志记录,监控访问和操作:
    • pgAdmin日志:编辑pgadmin.conf,设置日志路径和级别:
      [logging]
      log_file = /var/log/pgadmin/pgadmin.log
      log_level = INFO
      
    • PostgreSQL日志:编辑postgresql.conf,开启日志记录:
      logging_collector = on
      log_directory = 'pg_log'
      log_filename = 'postgresql-%Y-%m-%d.log'
      log_min_error_statement = error
      
    定期检查日志文件(如/var/log/pgadmin/pgadmin.log/var/lib/pgsql/<version>/main/pg_log/),及时发现异常登录、未授权操作等行为。

0