以下是Debian中PostgreSQL的安全设置步骤:
更新系统
sudo apt update && sudo apt upgrade
安装PostgreSQL
sudo apt install postgresql postgresql-contrib
强化默认用户安全
postgres
用户设置强密码:sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'strong_password';"
配置访问控制
/etc/postgresql/{version}/main/pg_hba.conf
,限制连接方式(如仅允许本地或使用MD5加密的远程连接):# 仅允许本地连接(示例)
host all all 127.0.0.1/32 md5
/etc/postgresql/{version}/main/postgresql.conf
,设置listen_addresses
(谨慎使用'*'
,建议限制为必要IP):listen_addresses = 'localhost' # 或指定IP
启用SSL加密
mkdir /etc/postgresql/ssl
openssl req -new -x509 -days 365 -nodes -text -subj '/CN=postgres' -out /etc/postgresql/ssl/server.crt -keyout /etc/postgresql/ssl/server.key
chmod 600 /etc/postgresql/ssl/server.key
postgresql.conf
启用SSL:ssl = on
ssl_cert_file = '/etc/postgresql/ssl/server.crt'
ssl_key_file = '/etc/postgresql/ssl/server.key'
sudo systemctl restart postgresql
用户与权限管理
sudo -u postgres psql -c "CREATE USER app_user WITH PASSWORD 'app_password';"
sudo -u postgres psql -c "GRANT SELECT, INSERT ON mytable TO app_user;"
防火墙配置
sudo ufw allow 5432/tcp
审计与监控
postgresql.conf
中设置):log_statement = 'all'
log_connections = true
log_disconnections = true
sudo tail -f /var/log/postgresql/postgresql-{version}-main.log
定期备份
pg_dump
备份数据库:sudo -u postgres pg_dump mydatabase > /path/to/backup.sql
注意:根据实际需求调整配置,定期审查安全策略以应对新威胁。[1,2,3,4,5,6,7,8,9,10]