首页主机资讯PostgreSQL在Linux上的安全设置

PostgreSQL在Linux上的安全设置

时间2025-11-17 16:28:04发布访客分类主机资讯浏览1306
导读:PostgreSQL 在 Linux 上的安全设置 一 基础安全基线 保持系统与数据库更新:执行系统包更新(如 yum update -y 或 apt-get update && apt-get upgrade),及时修补...

PostgreSQL 在 Linux 上的安全设置

一 基础安全基线

  • 保持系统与数据库更新:执行系统包更新(如 yum update -yapt-get update & & apt-get upgrade),及时修补漏洞。
  • 最小权限原则:仅授予业务所需权限,避免使用 superuser 连接应用。
  • 强口令与轮换:为数据库角色设置复杂口令并定期更换,禁止共享账号。
  • 本地安全:限制 postgres 系统账号登录,仅用于运维;应用与数据库分离账号体系。
  • 备份与恢复演练:定期使用 pg_dump 做逻辑备份,验证可恢复性并保留多份副本。

二 网络与防火墙

  • 监听范围最小化:在 postgresql.conf 中设置 listen_addresses 仅包含必要地址,若仅本机访问可设为 localhost 或空以仅用 Unix 域套接字。
  • 防火墙精准放行:
    • firewalld(RHEL/CentOS 7+):仅允许受控来源访问 5432/tcp,例如:
      • 按端口:sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp & & sudo firewall-cmd --reload
      • 按服务:sudo firewall-cmd --permanent --add-service=postgresql & & sudo firewall-cmd --reload
    • 验证:sudo firewall-cmd --list-all
  • 边界与跳板:生产环境优先将数据库置于私有子网,通过跳板机或内网代理访问;必要时使用 SSH 反向端口转发 做临时维护通道。
  • 连接测试:从受控主机验证 nc -zv your_db_host 5432telnet your_db_host 5432

三 认证与访问控制

  • 配置文件分工:
    • postgresql.conf:控制监听地址与端口(如 listen_addressesport)。
    • pg_hba.conf:控制“谁(用户/组)从哪(来源网段)用哪种方式(METHOD)连哪些库”。
  • 推荐做法:
    • 本地连接优先使用 peerident;远程连接使用 scram-sha-256(较 md5 更强)。
    • 示例(仅示例,生产请进一步收敛网段与用户):
      • 本地:local all all peer
      • 内网应用:hostssl all app_user 192.168.1.0/24 scram-sha-256
      • 管理通道:hostssl all admin_user 203.0.113.10/32 scram-sha-256
  • 变更生效:修改 pg_hba.conf 后执行 SELECT pg_reload_conf(); 或重启服务。

四 传输加密与证书配置

  • 启用 TLS:在 postgresql.conf 中开启 ssl = on,并配置证书与密钥:
    • 示例:
      • ssl = on
      • ssl_cert_file = ‘/path/to/server.crt’
      • ssl_key_file = ‘/path/to/server.key’
      • 如需双向认证:ssl_ca_file = ‘/path/to/ca.crt’
  • 密码学建议:启用 ssl_prefer_server_ciphers = on,优先使用 TLS 1.2/1.3 与高强套件。
  • 证书获取:可使用 Let’s EncryptOpenSSL 自建 CA 与服务器/客户端证书;客户端证书 CN 建议与数据库角色名一致以便映射身份。

五 审计监控与备份恢复

  • 审计与日志:
    • 启用数据库日志(如 log_min_messages、日志目录等),并结合 pg_stat_statements 做慢查询与异常检测。
    • 系统级审计:启用 auditd,记录关键命令与登录,使用 ausearch/aureport 分析 /var/log/audit/audit.log
  • SELinux:若启用,按需放行数据库端口或创建自定义策略,避免直接改为 permissive 模式。
  • 备份与演练:
    • 逻辑备份:pg_dump -U user -W -F t -f backup.tar dbname;定期异地/离线保存。
    • 恢复验证:定期在隔离环境演练恢复流程,校验数据一致性与可用性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PostgreSQL在Linux上的安全设置
本文地址: https://pptw.com/jishu/749060.html
Linux系统如何备份PostgreSQL MongoDB在Linux上的日志轮转如何设置

游客 回复需填写必要信息