一、允許遠程訪問
默認情況下,PostgreSQL只允許本地訪問數據庫。如果需要從其他機器上訪問數據庫,需要進行配置。
首先,需要修改PostgreSQL配置文件,找到pg_hba.conf文件,該文件控制PostgreSQL的客戶端認證。在該文件中找到類似以下規則的行:
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
在最後兩行規則的下方,添加如下規則:
# Allow remote access to PostgreSQL host all all 0.0.0.0/0 md5
最後一行表示允許所有IP地址的遠程訪問,使用md5加密密碼進行認證。
完成後,需要重新啟動PostgreSQL服務,使修改的配置生效。
二、配置防火牆
開啟遠程訪問後,為了保證數據安全,需要對PostgreSQL進行防火牆設置,只允許有權限的IP地址訪問。
假設PostgreSQL服務器的IP地址為192.168.0.100,需要在防火牆中添加如下規則:
sudo ufw allow from <>/32 to any port 5432
其中,<>表示允許訪問的IP地址。該規則表示只允許來自指定IP地址的訪問,其他IP地址一律禁止。
三、修改默認端口號
默認情況下,PostgreSQL使用5432端口號,為了增加安全性,可以修改默認端口號。
修改端口號需要修改PostgreSQL配置文件,在postgresql.conf文件中找到以下行:
#listen_addresses = 'localhost' #port = 5432
將其中的端口號修改為其他端口號,例如修改為8888端口:
#listen_addresses = 'localhost' port = 8888
修改完畢後,需要重新啟動PostgreSQL服務,使配置生效。
四、使用SSL加密
為了保護數據的安全性,可以使用SSL加密數據傳輸。
首先需要確認PostgreSQL服務已經安裝了SSL支持,然後在postgresql.conf文件中添加以下行:
ssl = on #ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' #ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
其中,ssl = on表示啟用SSL支持,#ssl_cert_file和#ssl_key_file表示SSL證書和私鑰的路徑。可以使用自己的證書和私鑰。
然後需要修改pg_hba.conf文件中用於客戶端認證的行,添加ssl選項並重啟PostgreSQL服務:
hostssl all all <>/32 md5
其中<>表示需要訪問的IP地址,hostssl表示使用SSL加密連接訪問。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/286348.html