PostgreSQL数据库安全加固(十)——终止数据库空连接


前言

数据库会话可以在“重放”攻击中重用,会话ID可解决中间人攻击,包括会话劫持或将错误信息插入会话。如果攻击者无法识别或猜测与待处理的应用程序流量相关的会话信息,则他们将更难以劫持会话或以其他方式操纵有效会话。

一、检查配置

以数据库管理员身份(此处显示为“postgres”),运行以下SQL:

# 切换用户
su - postgres
# 查看tcp_keepalives_idle配置
psql -c "SHOW tcp_keepalives_idle"
# 查看tcp_keepalives_interval配置
psql -c "SHOW tcp_keepalives_interval"
# 查看tcp_keepalives_count配置
psql -c "SHOW tcp_keepalives_count"

这些参数默认值为0,如果未设置这些参数,则存在安全风险。

二、加固建议

以数据库管理员(此处显示为“postgres”)身份,编辑postgresql.conf:

# 切换postgres用户
su - postgres 
# 编辑postgresql.conf配置文件,$PGDATA为环境变量
vi $PGDATA/postgresql.conf 

将postgresql.conf 文件中以下参数设置为:

tcp_keepalives_idle = 60 # seconds 
tcp_keepalives_interval = 10 # seconds 
tcp_keepalives_count = 10 

现在,以系统管理员身份,使用新配置重新启动服务器:
$ pg_ctl reload

总结

当用户注销或发生任何其他会话终止事件时,PostgreSQL必须终止用户会话以最大限度地减少会话被劫持的可能性。

猜你喜欢

转载自blog.csdn.net/ma286388309/article/details/129124347
今日推荐