防止服务器欺骗

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 17. 服务器设置和操作 | 下一页

# 17.7. 防止服务器欺骗

当服务器正在运行时，恶意用户代替正常的数据库服务器是不可能的。然而，当服务器关闭时， 本地用户通过启动他们自己的服务器欺骗正常的服务器是可能的。行骗服务器可以读取客户端发来的查询和密码， 但不能返回任何数据，因为`PGDATA`目录因为目录存取权限仍然是安全的。 因为任何用户都可以启动一个数据库服务器，所以欺骗是可能的；客户端不能识别无效的服务器， 除非它是专门配置的。

为`local`连接防止欺骗的最简单的方法是使用Unix域套接字目录 (unix_socket_directories)，这个目录只为受信任的本地用户写入了权限。 如果你担心一些应用可能仍然参考`/tmp`为套接字文件，并且因此很容易受欺骗， 那么在操作系统启动时创建一个符号链接`/tmp/.s.PGSQL.5432`指向重定位的套接字文件。 您还可能需要修改`/tmp`清理脚本以防止删除符号链接。

要在TCP连接上防止欺骗，最好的解决方法是使用SSL认证，并确保客户检查服务器的证书。 要做到这一点，服务器必须配置为只接受`hostssl`连接(第 19.1 节)， 并且有SSL秘钥和证书文件(第 17.9 节)。TCP客户必须使用`sslmode=verify-ca` 或`verify-full`连接，并且有适当的根证书文件安装(第 31.18.1 节)。

上一页 | 起始页 | 下一页
升级一个 PostgreSQL 集群 | 上一级 | 加密选项