温馨提示×

centos中pgadmin安全设置要点

小樊
47
2025-10-05 03:44:39
栏目: 智能运维

1. 及时更新系统与软件版本
保持CentOS系统、pgAdmin及PostgreSQL数据库为最新版本,优先安装官方发布的安全补丁(如修复CVE-2025-2945等漏洞),避免已知安全风险被利用。

2. 强化密码策略
为用户账户(包括PostgreSQL超级用户、pgAdmin管理员账户)设置强密码(组合大小写字母、数字、特殊字符,长度≥8位);定期更换密码(如每90天),禁用默认密码(如pgAdmin初始安装后的默认账号密码);可通过pgAdmin的“用户属性→定义→密码策略”设置密码复杂度要求(如最小大写字母数、数字数等)。

3. 配置防火墙限制访问
使用firewalldiptables配置防火墙规则,仅允许受信任的IP地址或IP段访问pgAdmin服务端口(默认5050或自定义端口);例如通过firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="5050" protocol="tcp" accept' --permanent添加规则,随后firewall-cmd --reload生效。

4. 启用SSL/TLS加密通信
为pgAdmin和PostgreSQL配置SSL/TLS加密,保护数据传输安全:

  • PostgreSQL端:生成自签名证书(openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key -subj "/CN=localhost"),修改postgresql.conf开启SSL(ssl = on; ssl_cert_file = 'server.crt'; ssl_key_file = 'server.key'),并设置pg_hba.conf强制加密连接(如hostssl all all 0.0.0.0/0 certfile='/path/to/server.crt');
  • pgAdmin端:编辑config_local.py添加SSL证书路径(SSL_CERT = '/etc/pgsql/ssl/server.crt'; SSL_KEY = '/etc/pgsql/ssl/server.key'),或通过Web界面配置(服务器属性→连接→SSL→勾选“Require a secure connection”)。

5. 实施严格的访问控制

  • pgAdmin用户权限:采用“最小权限原则”,仅为用户分配必要的操作权限(如只读、读写),避免过度授权;
  • PostgreSQL访问控制:修改pg_hba.conf文件,限制用户可从的IP地址连接数据库(如host all postgres 192.168.1.100/32 md5,仅允许指定IP的postgres用户连接);
  • 文件系统权限:设置pgAdmin配置文件(如/usr/lib/python2.7/site-packages/pgadmin4-web/config_local.py)及证书文件的权限为仅所有者可读(chmod 600 /path/to/config_filechmod 600 /path/to/cert_key_files)。

6. 启用日志审计与监控
开启pgAdmin和PostgreSQL的详细日志记录,监控异常活动:

  • pgAdmin日志默认位于/var/log/pgadmin/,可通过配置文件调整日志级别(如DEBUG);
  • PostgreSQL日志(log_directory = 'pg_log'log_statement = 'all')记录所有SQL操作,便于事后审计;
  • 使用auditd等工具监控关键文件(如/etc/passwd/etc/shadow、pgAdmin配置文件)的更改,及时发现未授权修改。

7. 限制远程访问与服务

  • SSH加固:若通过SSH反向隧道访问pgAdmin,修改SSH默认端口(如Port 59222)、禁用密码登录(PasswordAuthentication no)、限制允许登录的用户(AllowUsers admin@192.168.1.*),并启用密钥认证;
  • 禁用不必要的服务:关闭PostgreSQL中不需要的功能(如remote_connectremote_query),减少攻击面。

8. 定期备份与恢复演练
定期备份pgAdmin配置文件(如/usr/lib/python2.7/site-packages/pgadmin4-web/)及PostgreSQL数据库,使用pg_dump或第三方工具(如Barman)进行增量/全量备份;定期测试备份恢复流程,确保在安全事件(如数据泄露、系统崩溃)后可快速恢复数据。

0