最近,我写了一个概述您需要了解什么PostgreSQL安全。对于这篇文章,我想写PostgreSQL身份验证。它分为三个类别:1。PostgreSQL内部认证,2。OS-based认证,和3。外部服务器的身份验证。在大多数情况下,PostgreSQL配置为使用内部身份验证,这里我们将详细讨论每一个内部身份验证方法。接下来的博客将覆盖操作系统身份验证方法如PAM、同行和鉴别。

图1:PostgreSQL认证方法。

以下是支持PostgreSQL内部认证方法列表。

  • 信任
  • 拒绝
  • md5
  • 急停
  • Cert

PostgreSQL称为pg_hba.conf有一个配置文件来配置身份验证。所有与设置是这个配置文件的一部分。这是示例pg_hba。配置文件:

第一列的“pg_hbaa.conf“文件“主机”。它可以是本地或主机。Unix-Domain插座的地方是固定的,在很多的情况下,您需要指定主机IP地址在地址栏。第二列是数据库,用于指定数据库名称。您可以设置基于数据库的身份验证方法,这意味着您的数据库可以有它自己的身份验证方法。如果这些值设置为all,那么所有的数据库将使用相同的身份验证方法。第三列是用户的文件,这意味着您可以为不同的用户设置不同的身份验证方法和“所有”意味着适用于所有用户。第四个参数是指定的IP地址,也就是说哪个IP地址可以使用身份验证方法。第二列是auth方法可以是任何的身份验证方法如图1所示。最后一列是auth-options,以防任何身份验证方法有一些选项。

信任和拒绝

当你指定身份验证方法信任满足要求,那么任何用户不需要任何密码。同样,在的情况下拒绝满足要求,任何用户不允许登录到系统中。这是信任和拒绝的例子:

pg_hba。配置文件有两个条目;第一个身份验证方法的信任,第二个身份验证方法拒绝。本地主机的用户不再需要密码和许可没有密码登录到系统。但以外的任何计算机主机将被拒绝,因为pg_hba的第二行。conf文件。

信任的认证

拒绝认证

md5

的md5认证,您需要提供密码。让我们看一个简单的例子。

急停

急停,或更具体地说,安全- sha - 256是一个质询-响应方案,防止不可信连接的密码嗅探。它是一种最安全的身份验证方法,使用安全,cryptographically-hashed安全、存储服务器上的密码。

步骤1:更改用户的密码

步骤2:改变pg_hba。conf文件。

步骤3:测试连接

雷竞技下载官网PostgreSQL Percona分布是免费下载和使用。它是最好的和最重要的企业级组件从开源社区,设计和测试一起工作在一个单一的来源。

CERT

服务器密钥和证书

第一步:生成服务器密钥

步骤2:生成服务器证书

客户端密钥和证书

第三步:生成一个客户机证书

第四步:复制根。crt到客户机。

PostgreSQL的设置

第五步:在postgrsql。配置文件设置ssl =

第六步:重启PostgreSQL

连接

现在,所有设置,您可以使用psql命令测试连接。

结论

本系列的第二部分安全博客,和第一篇博文,我们看到安全我们需要考虑的主要特点。在这个博客中,我们开始验证,只集中在PostgreSQL验证机制,仍然需要在PostgreSQL看到外部身份验证方法是如何工作的。请继续关注!

雷竞技下载官网Percona分布PostgreSQL提供最好的和最重要的开源社区的企业组件,在一个单一的分布,设计和测试一起工作。

raybet52

订阅
通知的
客人

2评论
最古老的
最新的<跨度类="wpdiscuz-sort-button wpdiscuz-vote-sort-up" data-sorting="by_vote">大多数投票
内联反馈
查看所有评论
Mauricio Cacho

谢谢你的文章,很好,帮助了很多更好的理解不同的方法用于内部身份验证。我只是困惑在示例中使用的“信任和拒绝”部分;不是“拒绝”pg_hba线。配置错了吗?还是我遗漏了什么东西?我认为pg_hba。配置文件PostgreSQL永远不会达到第二行,因为它总是允许连接使用第一行从localhost。

谢谢!

ibrar

谢谢,是的这是错误拒绝线
10.0.2.2/32 |拒绝