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;
}
}