温馨提示×

GitLab在CentOS上如何安全设置

小樊
52
2025-06-08 04:26:42
栏目: 智能运维

在CentOS上设置GitLab时,确保系统安全是非常重要的。以下是一些关键的安全设置步骤:

基础安全配置

  • 禁用非必要的超级用户:确保系统中只有必要的超级用户,通过查看 /etc/passwd 文件来检测并管理这些账户。
  • 删除不必要的账户:删除所有不必要的默认账户,如 admlpsync 等,以减少系统受攻击的风险。
  • 强化用户口令:设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。可以通过修改 /etc/login.defs 文件来强制执行这些要求。
  • 保护口令文件:使用 chattr 命令给 /etc/passwd/etc/shadow/etc/group,和 /etc/gshadow 文件加上不可更改属性。
  • 设置root账户自动注销时限:通过修改 /etc/profile 文件中的 TMOUT 参数,设置root账户的自动注销时限。
  • 限制su命令:通过编辑 /etc/pam.d/su 文件,限制只有特定组的用户才能使用 su 命令切换为root。
  • 限制普通用户的敏感操作:删除或修改 /etc/security/console.apps 下的相应程序的访问控制文件,防止普通用户执行关机、重启等敏感操作。

GitLab特定安全设置

  • 配置HTTPS:为GitLab配置SSL证书,以保障数据传输的加密安全性。可以使用Let’s Encrypt免费获取SSL证书,并通过Nginx或GitLab的配置文件来设置。
  • 启用防火墙:限制外部对服务器的访问,只允许必要的端口访问。使用 firewalld 管理防火墙规则。
  • 设置访问控制:通过GitLab的用户和组织管理功能,精细控制谁可以访问仓库和项目。配置SSH密钥认证,使用SSH密钥对进行身份验证,避免频繁输入用户名和密码。
  • 定期备份:定期备份GitLab数据,防止数据丢失。可以使用GitLab的备份工具或手动备份 /var/opt/gitlab 目录。
  • 更新GitLab:及时更新GitLab版本,安装最新补丁和更新,以确保系统的安全性和稳定性。

防火墙设置

使用 firewalld 配置防火墙规则:

# 安装firewalld
sudo yum install firewalld

# 启动firewalld服务
sudo systemctl start firewalld

# 设置firewalld开机自启
sudo systemctl enable firewalld

# 允许HTTP流量通过防火墙并使其永久生效
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

# 添加SSH端口(22)到防火墙
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload

GitLab配置文件修改

  • 修改外部URL:在GitLab配置文件 /etc/gitlab/gitlab.rb 中修改对外访问的域名或IP:
external_url 'http://your_server_ip:8080'
  • 重新配置GitLab:修改配置文件后,使用以下命令重新配置GitLab:
sudo gitlab-ctl reconfigure
  • 重启GitLab服务:重新配置后,重启GitLab服务以应用更改:
sudo gitlab-ctl restart

SSL证书配置

为GitLab安装SSL证书的步骤如下:

  1. 生成SSL证书和密钥
openssl genrsa -out /etc/gitlab/ssl/gitlab.key 2048
openssl req -new -key /etc/gitlab/ssl/gitlab.key -out /etc/gitlab/ssl/gitlab.csr
openssl x509 -req -days 3650 -in /etc/gitlab/ssl/gitlab.csr -signkey /etc/gitlab/ssl/gitlab.key -out /etc/gitlab/ssl/gitlab.crt
  1. 配置GitLab使用SSL证书

编辑 /etc/gitlab/gitlab.rb 文件,找到以下配置项并修改:

external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
  1. 重新配置并重启GitLab
gitlab-ctl reconfigure
sudo gitlab-ctl restart
  1. 验证SSL证书安装:访问 https://gitlab.example.com,确保浏览器显示安全锁图标,表示SSL证书安装成功。

通过上述步骤,你可以显著提高GitLab在CentOS上的安全性,保护你的代码和数据不受未授权访问和潜在威胁的侵害。

0