PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
上一页 | 上一级 | 章 17. 服务器设置和操作 | 下一页 |
当服务器正在运行时,恶意用户代替正常的数据库服务器是不可能的。然而,当服务器关闭时, 本地用户通过启动他们自己的服务器欺骗正常的服务器是可能的。行骗服务器可以读取客户端发来的查询和密码, 但不能返回任何数据,因为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 节)。