前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库PostrageSQL-使用SSH隧道的安全 TCP/IP 连接

数据库PostrageSQL-使用SSH隧道的安全 TCP/IP 连接

作者头像
cwl_java
发布2020-09-17 17:33:49
8460
发布2020-09-17 17:33:49
举报
文章被收录于专栏:cwl_Javacwl_Java

18.10. 使用SSH隧道的安全 TCP/IP 连接

可以使用SSH来加密客户端和PostgreSQL服务器之间的网络连接。如果处理得当,这将提供一个足够安全的网络连接,即使是对那些无 SSL 能力的客户端。

首先确认在PostgreSQL服务器的同一台机器上正确运行着一个SSH服务器,并且你可以使用ssh作为某个用户登入。然后你可以从客户端机器采用下面这种形式的命令建立一个安全的隧道:

代码语言:javascript
复制
ssh -L 63333:localhost:5432 joe@foo.com

-L参数中的第一个数(63333)是隧道在你那一端的端口号,它可以是任意未用过的端口(IANA 把端口 49152 到 65535 保留为个人使用)。第二个数(5432)是隧道的远端:你的服务器所使用的端口号。在端口号之间的名字或 IP 地址是你准备连接的数据库服务器的主机,至于你是从哪个主机登入的,在这个例子中则由foo.com表示。为了使用这个隧道连接到数据库服务器,你在本地机器上连接到端口

代码语言:javascript
复制
63333:psql -h localhost -p 63333 postgres

对于数据库服务器,在这个环境中它将把你看做是连接到localhost的主机foo.com上的真实用户joe,并且它会使用被配置用于来自这个用户和主机的连接的认证过程。注意服务器将不会认为连接是 SSL 加密的,因为事实上SSH服务器和PostgreSQL服务器之间没有加密。只要它们在同一台机器上,这就不会造成任何额外的安全风险。

为了让隧道设置成功,你必须允许通过ssh作为joe@foo.com连接,就像你已经尝试使用ssh来创建一个终端会话。

你应当也已经设定好了端口转发:

代码语言:javascript
复制
ssh -L 63333:foo.com:5432 joe@foo.com

但是数据库服务器则将会看到连接从它的foo.com接口进来,它没有被默认设置listen_addresses = 'localhost'所打开。这通常不是你想要的。

如果你必须通过某个登录主机“跳”到数据库服务器,一个可能的设置看起来像:

代码语言:javascript
复制
ssh -L 63333:db.foo.com:5432 joe@shell.foo.com

注意这种从shell.foo.com到db.foo.com的连接的方法将不会被 SSH 隧道加密。当网络被限制于各种方法时,SSH 提供了相当多的配置可能性。详情请参考 SSH 的文档。

一些其他的应用可以提供安全隧道,它们使用和刚刚描述的 SSH 概念上相似的过程。

18.11. 在Windows上注册Event Log

要为操作系统注册一个Windows 事件日志库,发出这个命令:

代码语言:javascript
复制
regsvr32 pgsql_library_directory/pgevent.dll

这会创建被事件查看器使用的注册表项,默认事件源命名为PostgreSQL。要指定一个不同的事件源名称(见event_source)。使用/n和/i选项: regsvr32 /n /i:event_source_name pgsql_library_directory/pgevent.dll

代码语言:javascript
复制
在这里插入代码片

要从操作系统反注册事件日志库,发出这个命令:

代码语言:javascript
复制
regsvr32 /u [/i:event_source_name] pgsql_library_directory/pgevent.dll

要启用数据库服务器中的事件日志,在postgresql.conf中修改log_destination来包括eventlog。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 18.10. 使用SSH隧道的安全 TCP/IP 连接
  • 18.11. 在Windows上注册Event Log
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档