PostgreSQL本地连接建议

时间:2014-04-30 17:16:17

标签: postgresql

好的,我们有一台VPS Linux机器,我们将在那里安装一个PostgreSQL人作为数据源。

我们当然不会更改任何默认连接设置,而pg只接受本地连接。

所以问题是,我们是否应该使用postgresql保护(SSL)连接,而除了localhost之外不会接受任何IP?

2 个答案:

答案 0 :(得分:1)

您应该问问自己,您在保护PostgreSQL的攻击方式是什么?

您是否准备好保护服务器机器免受损害,或者是否有物理访问它的人?如果是,那么您需要的不仅仅是SSL加密。如果没有,那么你必须假设本地机器相对安全,并且不需要在那里加密。另请参阅this answer

通常,不需要加密本地连接。加密连接的主要目的是保护您的数据(和密码)免受有权访问服务器或在您的PostgreSQL服务器和客户端之间的行的人的侵害。

答案 1 :(得分:1)

目前尚不清楚为什么本地主机上的SSL是可取的。

另一方面,性能是在检索大量数据时使用它的一个很好的理由。这是一个小型演示。

我从表bintest(b bytea)中获取4.64 MB的单行 通过未加密的Unix域套接字执行此操作大约需要25毫秒:

CPU:Intel(R)Xeon(R)CPU E31230 @ 3.20GHz(显然包括AES instructions)。

$ psql -d demoml
psql (9.3.4)
Type "help" for help.

demoml=> \o /dev/null
demoml=> \timing
Timing is on.
demoml=> select * from bintest;
Time: 26.713 ms
demoml=> select * from bintest;
Time: 25.613 ms

现在与加密的localhost相同:

$ psql -h localhost -d demoml
Password for user manitou: 
psql (9.3.4)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

demoml=> \o /dev/null
demoml=> \timing
Timing is on.
demoml=> select * from bintest;
Time: 464.545 ms
demoml=> select * from bintest;
Time: 462.927 ms

在此测试中,TCP + SSL比未加密的Unix域套接字(与未加密的localhost没有明显不同)大约460/18 = 18x慢

在其他测试中,我还计划在PostgreSQL和libpq客户端之间建立连接,使用SSL的速度大约慢了5倍。