debian

Debian中PostgreSQL安全设置步骤

小樊
43
2025-09-01 11:00:47
栏目: 云计算

以下是Debian中PostgreSQL的安全设置步骤:

  1. 更新系统

    sudo apt update && sudo apt upgrade  
    
  2. 安装PostgreSQL

    sudo apt install postgresql postgresql-contrib  
    
  3. 强化默认用户安全

    • postgres用户设置强密码:
      sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'strong_password';"  
      
  4. 配置访问控制

    • 编辑/etc/postgresql/{version}/main/pg_hba.conf,限制连接方式(如仅允许本地或使用MD5加密的远程连接):
      # 仅允许本地连接(示例)  
      host    all             all             127.0.0.1/32            md5  
      
    • 编辑/etc/postgresql/{version}/main/postgresql.conf,设置listen_addresses(谨慎使用'*',建议限制为必要IP):
      listen_addresses = 'localhost'  # 或指定IP  
      
  5. 启用SSL加密

    • 生成证书和密钥:
      mkdir /etc/postgresql/ssl  
      openssl req -new -x509 -days 365 -nodes -text -subj '/CN=postgres' -out /etc/postgresql/ssl/server.crt -keyout /etc/postgresql/ssl/server.key  
      chmod 600 /etc/postgresql/ssl/server.key  
      
    • 修改postgresql.conf启用SSL:
      ssl = on  
      ssl_cert_file = '/etc/postgresql/ssl/server.crt'  
      ssl_key_file = '/etc/postgresql/ssl/server.key'  
      
    • 重启服务:
      sudo systemctl restart postgresql  
      
  6. 用户与权限管理

    • 创建普通用户并授予权限:
      sudo -u postgres psql -c "CREATE USER app_user WITH PASSWORD 'app_password';"  
      sudo -u postgres psql -c "GRANT SELECT, INSERT ON mytable TO app_user;"  
      
    • 遵循最小权限原则,避免滥用超级用户权限。
  7. 防火墙配置

    • 使用UFW允许PostgreSQL端口(默认5432):
      sudo ufw allow 5432/tcp  
      
  8. 审计与监控

    • 启用日志记录(在postgresql.conf中设置):
      log_statement = 'all'  
      log_connections = true  
      log_disconnections = true  
      
    • 定期查看日志:
      sudo tail -f /var/log/postgresql/postgresql-{version}-main.log  
      
  9. 定期备份

    • 使用pg_dump备份数据库:
      sudo -u postgres pg_dump mydatabase > /path/to/backup.sql  
      

注意:根据实际需求调整配置,定期审查安全策略以应对新威胁。[1,2,3,4,5,6,7,8,9,10]

0
看了该问题的人还看了