Ubuntu中pgAdmin安全設置步驟
sudo -u postgres psql
進入PostgreSQL命令行,執行\password postgres
命令,設置復雜密碼(包含大小寫字母、數字和特殊字符)。ufw
(Uncomplicated Firewall)工具限制pgAdmin的訪問范圍:sudo ufw allow from <trusted_ip> to any port 5050/tcp # 僅允許特定IP訪問pgAdmin端口
sudo ufw enable # 啟用防火墻
替換<trusted_ip>
為你的實際可信IP地址(如公司IP或家庭IP),避免暴露pgAdmin到公網。sudo mkdir -p /etc/ssl/private/pgadmin /etc/ssl/certs/pgadmin
sudo openssl genrsa -out /etc/ssl/private/pgadmin/pgadmin.key 2048 # 生成2048位私鑰
sudo openssl req -new -key /etc/ssl/private/pgadmin/pgadmin.key -out /etc/ssl/certs/pgadmin/pgadmin.csr # 創建證書簽名請求(CSR)
sudo openssl x509 -req -days 365 -in /etc/ssl/certs/pgadmin/pgadmin.csr -signkey /etc/ssl/private/pgadmin/pgadmin.key -out /etc/ssl/certs/pgadmin/pgadmin.crt # 生成自簽名證書(有效期365天)
sudo cat /etc/ssl/private/pgadmin/pgadmin.key /etc/ssl/certs/pgadmin/pgadmin.crt > /etc/ssl/certs/pgadmin/pgadmin.pem # 合并為PEM格式
/etc/pgadmin/pgadmin.conf
),添加以下內容:[server]
ssl = on
ssl_cert_file = /etc/ssl/certs/pgadmin/pgadmin.pem
ssl_key_file = /etc/ssl/private/pgadmin/pgadmin.key
保存后重啟pgAdmin服務:sudo systemctl restart pgadmin4
訪問pgAdmin時使用https://your_server_ip:5050
,瀏覽器會提示自簽名證書風險,選擇“繼續訪問”即可。pg_hba.conf
文件(路徑通常為/etc/postgresql/<version>/main/pg_hba.conf
),限制允許連接的IP和用戶。例如:# 僅允許本地和特定IP通過密碼認證連接
host all all 127.0.0.1/32 md5
host all all <trusted_ip>/32 md5
保存后重啟PostgreSQL服務:sudo systemctl restart postgresql
sudo apt update && sudo apt upgrade -y # 更新系統
sudo pip3 install --upgrade pgadmin4 # 更新pgAdmin(若通過pip安裝)
建議開啟自動更新(如sudo apt install unattended-upgrades
),確保及時獲取安全補丁。pgadmin.conf
,設置日志路徑和級別:[logging]
log_file = /var/log/pgadmin/pgadmin.log
log_level = INFO
postgresql.conf
,開啟日志記錄:logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_error_statement = error
/var/log/pgadmin/pgadmin.log
和/var/lib/pgsql/<version>/main/pg_log/
),及時發現異常登錄、未授權操作等行為。