1. 系统与pgAdmin版本更新
保持Debian系统和pgAdmin为最新版本是安全基础。定期执行sudo apt update && sudo apt upgrade
安装安全补丁,修复已知漏洞,降低被攻击风险。
2. 修改pgAdmin默认端口
pgAdmin默认使用5050端口,易成为攻击目标。通过编辑/etc/pgadmin4/config_local.py
文件,将WEB_PORT
修改为未被使用的端口(如5051),并重启pgAdmin服务使变更生效,减少端口扫描攻击概率。
3. 启用SSL/TLS加密
为保障数据传输安全,需为pgAdmin配置SSL证书。使用openssl
生成自签名证书(server.key
和server.crt
),然后在/etc/pgadmin4/config_local.py
中指定证书路径:SSL_CERTFILE = '/etc/pgadmin4/server.crt'
、SSL_KEYFILE = '/etc/pgadmin4/server.key'
,重启服务后强制使用HTTPS访问,防止数据被窃听或篡改。
4. 配置防火墙限制访问
使用ufw
(Uncomplicated Firewall)工具限制pgAdmin端口(如5051)的访问,仅允许可信IP地址或网络段连接。例如,执行sudo ufw allow 5051/tcp
允许指定端口,sudo ufw deny 5050/tcp
禁止默认端口(若修改过),并启用防火墙(sudo ufw enable
),阻断非法网络访问。
5. 强化PostgreSQL服务器安全
pgAdmin需连接PostgreSQL数据库,因此需同步加固数据库安全:
pg_hba.conf
文件,添加hostssl all all 0.0.0.0/0 md5
行,强制要求客户端使用SSL连接;postgresql.conf
文件,设置ssl = on
并指定证书路径(ssl_cert_file
、ssl_key_file
),重启PostgreSQL服务启用SSL;6. 用户权限与访问控制
sudo
执行管理任务;7. 监控与日志管理
启用pgAdmin日志功能,记录用户登录、操作等行为,便于追溯异常事件;使用Logwatch
或Fail2ban
工具监控系统日志,自动检测并阻止暴力破解、非法访问等行为;配置logrotate
定期归档日志,避免日志文件过大导致信息泄露。
8. 其他安全措施
PermitRootLogin no
),将pgAdmin端口转发至本地,通过SSH加密通道访问;/etc/pgadmin4/
)、PostgreSQL数据目录备份至安全位置,防止数据丢失或篡改。