首页主机资讯ubuntu postgresql安全设置怎么做

ubuntu postgresql安全设置怎么做

时间2025-10-02 01:36:03发布访客分类主机资讯浏览1478
导读:1. 修改PostgreSQL默认管理员密码 PostgreSQL默认超级用户为postgres,初始密码可能在安装时为空或简单。使用以下命令切换至postgres用户并修改密码: sudo -u postgres psql ALTER U...

1. 修改PostgreSQL默认管理员密码
PostgreSQL默认超级用户为postgres,初始密码可能在安装时为空或简单。使用以下命令切换至postgres用户并修改密码:

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'YourStrongPassword123!';
    
\q

确保密码包含大小写字母、数字和特殊字符,长度不少于12位。

2. 配置PostgreSQL仅允许本地连接(可选但推荐)
若无需远程访问,修改postgresql.conf限制监听地址,降低远程攻击风险:

sudo nano /etc/postgresql/<
    version>
    /main/postgresql.conf

找到listen_addresses行,修改为:

listen_addresses = 'localhost'

保存后重启服务:

sudo systemctl restart postgresql

若需远程访问,可将listen_addresses设为'*',但需配合后续安全措施。

3. 限制远程访问IP(若需远程连接)
编辑pg_hba.conf文件,仅允许信任的IP段通过密码认证访问:

sudo nano /etc/postgresql/<
    version>
    /main/pg_hba.conf

在文件末尾添加(示例:允许192.168.1.0/24网段访问所有数据库):

host    all             all             192.168.1.0/24           md5

保存后重启PostgreSQL服务:

sudo systemctl restart postgresql

避免使用0.0.0.0/0(允许所有IP),如需开放,需结合强密码和SSL加密。

4. 配置SSL加密传输
生成SSL证书和私钥(若已有证书可跳过生成步骤):

sudo mkdir -p /etc/postgresql/<
    version>
    /main/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/postgresql/<
    version>
    /main/ssl/server.key \
    -out /etc/postgresql/<
    version>
    /main/ssl/server.crt

设置证书权限(仅postgres用户可读):

sudo chmod 600 /etc/postgresql/<
    version>
    /main/ssl/*

修改postgresql.conf启用SSL:

sudo nano /etc/postgresql/<
    version>
    /main/postgresql.conf

取消注释并修改以下行:

ssl = on
ssl_cert_file = '/etc/postgresql/<
    version>
    /main/ssl/server.crt'
ssl_key_file = '/etc/postgresql/<
    version>
    /main/ssl/server.key'

重启服务使配置生效:

sudo systemctl restart postgresql

确保客户端连接时启用SSL(如pgAdmin中勾选“SSL”选项)。

5. 配置Ubuntu防火墙(UFW)
允许PostgreSQL默认端口(5432)通过防火墙,限制仅信任IP访问:

sudo ufw allow from 192.168.1.0/24 to any port 5432 proto tcp
sudo ufw enable
sudo ufw status  # 验证规则是否生效

若未安装UFW,可通过sudo apt install ufw安装。

6. 管理PostgreSQL用户与权限

  • 创建专用数据库用户:避免使用postgres超级用户执行日常操作,创建专用用户并授权:
    sudo -u postgres psql
    CREATE USER app_user WITH PASSWORD 'AppUserPassword123!';
        
    CREATE DATABASE app_db OWNER app_user;
        
    GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
        
    \q
    
  • 限制用户权限:遵循最小权限原则,仅授予用户必要的权限(如SELECTINSERT),避免使用GRANT ALL PRIVILEGES

7. 定期更新PostgreSQL与pgAdmin
保持软件版本最新,修复已知安全漏洞:

sudo apt update
sudo apt upgrade postgresql postgresql-contrib pgadmin4

建议开启自动更新:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

8. 启用审计日志记录
通过log_statement参数记录所有SQL语句,便于追踪异常操作:

sudo nano /etc/postgresql/<
    version>
    /main/postgresql.conf

修改以下行:

log_statement = 'all'
log_min_error_statement = 'error'
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

保存后重启服务,日志将保存至/var/log/postgresql/< version> /main/目录。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu postgresql安全设置怎么做
本文地址: https://pptw.com/jishu/716500.html
ubuntu如何解决postgresql连接问题 postgresql如何与ubuntu集成

游客 回复需填写必要信息