首页主机资讯centos postgresql安全加固措施

centos postgresql安全加固措施

时间2025-10-16 00:07:03发布访客分类主机资讯浏览1314
导读:CentOS环境下PostgreSQL安全加固措施 1. 用户认证与权限管理 设置强密码策略:修改默认postgres超级用户密码(避免空密码),要求密码包含大小写字母、数字和特殊字符(如ALTER USER postgres WITH...

CentOS环境下PostgreSQL安全加固措施

1. 用户认证与权限管理

  • 设置强密码策略:修改默认postgres超级用户密码(避免空密码),要求密码包含大小写字母、数字和特殊字符(如ALTER USER postgres WITH PASSWORD 'Complex@123'; );配置password_encryption = scram-sha-256(PostgreSQL 10+推荐),强制使用更安全的哈希算法存储密码。
  • 最小权限原则:按需创建角色并分配权限,避免过度授权。例如,仅为应用用户授予特定数据库的SELECTINSERT权限(GRANT SELECT, INSERT ON database_name.table_name TO app_user; ),禁用默认的PUBLIC角色对敏感表的操作权限。
  • 启用行级安全性(RLS):对敏感表(如用户信息表)启用RLS,通过策略限制用户只能访问自己的数据(如CREATE POLICY user_access_policy ON users USING (user_id = current_setting('app.current_user_id')::int); )。

2. 网络与连接安全

  • 限制监听地址:修改postgresql.conf中的listen_addresseslocalhost或特定可信IP(如192.168.1.100),避免数据库监听所有网络接口(listen_addresses = 'localhost'; ),减少暴露风险。
  • 配置防火墙规则:使用firewalld(CentOS 7+)或iptables限制PostgreSQL端口(默认5432)的访问,仅允许必要IP段(如公司内网192.168.1.0/24)访问。例如,firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port=5432 protocol=tcp accept',然后firewall-cmd --reload
  • 禁用不安全认证方法:编辑pg_hba.conf,移除trust(无密码认证)、ident(基于主机认证)等方法,统一使用md5(密码加密)或scram-sha-256(更安全)认证。例如,host all all 192.168.1.0/24 scram-sha-256

3. 数据传输加密

  • 启用SSL/TLS:生成自签名或CA签名的证书(openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key -subj "/CN=your_server_hostname"),修改postgresql.conf启用SSL:ssl = on,指定证书和密钥路径(ssl_cert_file = '/var/lib/pgsql/data/server.crt'ssl_key_file = '/var/lib/pgsql/data/server.key');强制客户端使用SSL连接(ssl_min_protocol_version = TLSv1.2),防止数据在传输过程中被窃取或篡改。

4. 审计与日志监控

  • 启用详细日志记录:修改postgresql.conf,开启日志收集(logging_collector = on),设置日志目录(log_directory = 'pg_log')和文件名格式(log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log');记录关键操作(如log_statement = 'all'记录所有SQL语句,log_connections = on记录连接事件,log_disconnections = on记录断开事件),便于后续审计。
  • 使用pgAudit扩展:安装pgAuditsudo yum install pgaudit),在postgresql.conf中配置(shared_preload_libraries = 'pgaudit'pgaudit.log = 'all'),记录详细的审计信息(如用户执行的SQL、访问的表、操作时间),并将日志输出到单独文件(pgaudit.log_file = 'pgaudit.log'),提升审计粒度。

5. 系统与配置加固

  • 定期更新补丁:使用sudo yum update -y定期更新PostgreSQL和CentOS系统,及时修补已知安全漏洞(如CVE-2023-1427、CVE-2024-1577等),降低被攻击的风险。
  • 禁用不必要的超级用户:删除或禁用默认的postgres超级用户以外的多余超级用户账户(如DROP USER unused_superuser; ),减少潜在的攻击入口。
  • 配置SELinux:若系统启用SELinux,设置为permissive模式测试(SELINUX=permissive),或为PostgreSQL创建自定义SELinux策略模块,允许其接受特定IP的连接(如semanage port -a -t postgresql_port_t -p tcp 5432),防止SELinux阻止合法访问。

6. 数据备份与恢复

  • 定期备份数据库:使用pg_dump工具备份数据库(如pg_dump -U postgres -F t -f /backup/mydb_backup.tar mydb),支持文本格式(-F p)或归档格式(-F t,便于恢复单个表);备份文件存储在安全位置(如异地服务器、加密存储设备),避免单点故障。
  • 测试备份恢复:定期执行恢复测试(如pg_restore -U postgres -d mydb_restore /backup/mydb_backup.tar),确保备份文件的完整性和可恢复性,避免因备份失效导致数据丢失。

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


若转载请注明出处: centos postgresql安全加固措施
本文地址: https://pptw.com/jishu/727569.html
centos postgresql网络设置指南 centos postgresql内存配置技巧

游客 回复需填写必要信息