Ubuntu中pgAdmin的安全设置指南
postgres
)密码,使用强密码(包含大小写字母、数字和特殊字符,长度不少于12位),避免使用默认密码。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 # 启用防火墙
.crt
)和私钥(.key
)存放在安全目录(如/etc/pgadmin/
)。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
pg_hba.conf
文件(通常位于/etc/postgresql/<version>/main/
),限制允许连接到数据库的用户和IP地址。例如,仅允许本地用户通过密码认证连接:# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
admin
账户或修改其密码。sudo apt update && sudo apt upgrade -y
/var/log/pgadmin/
目录下,定期检查日志文件(如pgadmin4.log
),关注异常登录、未授权操作等行为。logwatch
、fail2ban
),自动分析日志并报警,及时发现潜在安全威胁。pg_dump
工具创建完整备份或增量备份,将备份文件存储在安全位置(如异地服务器、云存储)。例如:pg_dump -U postgres -h localhost -F c -b -v -f /backup/pgdb_backup.dump mydatabase
postgresql.conf
文件,关闭未使用的功能:wal_level = replica # 仅保留必要的WAL级别
max_replication_slots = 0 # 禁用复制槽
server {
listen 443 ssl;
server_name pgadmin.example.com;
ssl_certificate /etc/letsencrypt/live/pgadmin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pgadmin.example.com/privkey.pem;
location / {
proxy_pass http://localhost:5050;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}