让gitlab中的PostgreSQL能够远程连接管理

来源:互联网 发布:ye2系列电机绕组数据 编辑:程序博客网 时间:2024/06/11 15:35

本示例中:

系统/软件 版本 Centos 6.5 Gitlab 8.9


Gitlab 自带了 Postgresql, 作为缺省的内部数据存储, 比如用户信息, 源码仓库信息等。 为防止非法访问, 需要对其进行访问控制.


Peer Authentication:

Gitlab 缺省将Postgresql配置为Peer Authentication, 这意味着客户端只能以Postgresql所在主机上的Linux系统账号访问数据库, 无法远程访问。 Postgresql连同Gitlab将被安装在内网某服务器上。 保护好该服务器的访问权限将保证Postgresql的数据安全。该验证方式的一大优点是并没有引入额外的风险, 保护好服务器即保护好自身.


Password/Md5 Authentications:

还可以将 Postgresql 配置为更多的认证方式, Gitlab 支持其中的 Password/Md5 方式(其中, password 是传输明文密码, md5是传输哈希值).

具体配置步骤如下:

1).设置数据库用户gitlab的密码:

#切换到可通过Peer方式连接到Postgresql的系统账号,在gitlab中是:gitlab-psql$ su  - gitlab-psql#连接到gitlab的数据库$ psql gitlabhq_production#使用Postgresql内置的命令设置gitlab用户的密码$ \password gitlab#退出$ \q

2).配置Gitlab使其使用新设置的密码:

#编辑 /etc/gitlab/gitlab.rb来修改其中的############################# GitLab database settings #############################下面的: gitlab_rails['db_password'] = '这个就是你刚刚在Postgresql中设置的密码'#但是有时候修改这个地方可能会不起作用。#那么这时就可以采用下面的操作:#编辑 /var/opt/gitlab/gitlab-rails/etc/database.yml 文件#将password值改为刚刚在Postgresql中设置的密码#注: 该文件不应直接修改, 因为在下次 gitlab-ctl reconfigure 的时候将被覆盖.     应编辑/etc/gitlab/gitlab.rb 来改变配置. 但在实际操作过程中,      有时候 gitlab 并没有完全按照 gitlab.rb 中的配置去生成 database.yml,      因此采用直接修改 database.yml 的方式.

3).将Postgresql的验证方式更改为MD5:

#编辑 /var/opt/gitlab/postgresql/data/pg_ident.conf,在# "local" is for Unix domain socket connections onlylocal   all         all                               peer map=gitlab后面添加一行:local   all         all                               md5

4).重启gitlab:

$ sudo gitlab-ctl restart

该方式可以让我们控制数据库用户的密码, 但引入了额外的风险. 比如现在database.yml 里包含了明文密码.

保护好/var/opt/gitlab/postgresql/data/pg_ident.conf


Trust Authentication

不要将认证方式设置为 Trust Authentication, 这将绕开系统账号密码验证过程, 不适合企业使用.

0 0
原创粉丝点击