1. 修改默认密码策略
postgres等默认管理员账户密码,设置强密码(包含大小写字母、数字、特殊字符,长度≥12位),避免使用默认密码。2. 防火墙访问控制
ufw(Uncomplicated Firewall)限制pgAdmin访问:仅允许特定IP地址或IP段(如公司办公IP、个人常用IP)访问pgAdmin服务;允许pgAdmin使用的端口(默认为5050,建议修改为非标准端口如5433)通过防火墙,阻止其他不必要端口。示例命令:sudo ufw allow from 192.168.1.100 to any port 5050(允许特定IP访问)、sudo ufw enable(启用防火墙)。3. SSL加密通信
.crt)和私钥(.key)存放在安全目录(如/etc/pgadmin/ssl/)。示例命令:mkdir -p /etc/pgadmin/ssl && openssl req -new -x509 -days 365 -nodes -newkey rsa:2048 -keyout /etc/pgadmin/ssl/pgadmin.key -out /etc/pgadmin/ssl/pgadmin.crt -subj "/CN=pgadmin.example.com"。/etc/pgadmin/pgadmin.conf),开启SSL并指定证书路径:[server] ssl = on ssl_cert_file = /etc/pgadmin/ssl/pgadmin.crt ssl_key_file = /etc/pgadmin/ssl/pgadmin.key。sudo systemctl restart pgadmin4。4. 访问权限管理
pg_hba.conf文件(通常位于/etc/postgresql/<version>/main/),限制允许连接到数据库的用户和IP地址。例如,仅允许本地用户通过密码认证连接:host all all 127.0.0.1/32 md5、host all all ::1/128 md5。admin账户或修改其密码。setfacl命令设置pgAdmin配置文件(如/etc/pgadmin/目录)的访问控制列表,限制仅管理员可访问。5. 定期更新与补丁管理
sudo apt update && sudo apt upgrade -y。6. 审计日志与监控
/var/log/pgadmin/目录下,定期检查日志文件(如pgadmin4.log),关注异常登录、未授权操作等行为。logwatch、fail2ban),自动分析日志并报警,及时发现潜在安全威胁(如频繁登录失败)。7. 数据备份策略
pg_dump工具创建完整备份或增量备份,将备份文件存储在安全位置(如异地服务器、云存储)。示例命令:pg_dump -U postgres -h localhost -F c -b -v -f /backup/pgdb_backup.dump mydatabase。8. 其他增强安全措施
/etc/ssh/sshd_config文件,设置PermitRootLogin no),使用普通用户通过sudo命令执行管理任务;修改SSH默认端口(如从22改为59222),启用SSH密钥认证(禁用密码登录)。