温馨提示×

CentOS中GitLab的安全设置方法

小樊
74
2025-06-14 08:00:57
栏目: 智能运维

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

基础安全配置

  • 禁用非必要的超级用户:确保系统中只有必要的超级用户,通过查看 /etc/passwd 文件来检测并管理这些账户。
  • 删除不必要的账户:删除所有不必要的默认账户,如 adm, lp, sync 等,以减少系统受攻击的风险。
  • 强化用户口令:设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于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 下的相应程序的访问控制文件,防止普通用户执行关机、重启等敏感操作。
  • 配置HTTPS:为GitLab配置SSL证书,以保障数据传输的加密安全性。

GitLab特定安全设置

  • 配置防火墙:使用 firewalld 管理防火墙规则,仅允许必要的端口访问,如HTTP(80)和HTTPS(443)。
  • 设置访问控制:通过GitLab的用户和组织管理功能,精细控制谁可以访问仓库和项目。
  • 配置SSH认证:使用SSH密钥认证增强安全性,避免频繁输入用户名和密码。

高级安全措施

  • 强化密码策略:设置复杂的密码复杂度规则,并定期更改密码。
  • 限制文件上传:通过 .gitignore 文件忽略敏感信息文件,检查提交内容,防止敏感信息上传。
  • 加密敏感文件:对必须上传的敏感文件进行加密处理。
  • 安全审查:定期进行代码审查,检查潜在的安全风险。
  • 实时监控和日志记录:使用监控工具实时监测系统状态,保留日志记录以便追踪问题。

具体配置步骤

  1. 安装依赖包

    sudo yum install -y curl policycoreutils-python openssh-server postfix wget vim
    
  2. 安装GitLab

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.1.0-ce.0.el7.x86_64.rpmsudo rpm -ivh gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm
    
  3. 配置GitLab

    sudo vim /etc/gitlab/gitlab.rb
    # 修改 external_url 为你的GitLab访问地址
    external_url 'http://your_server_ip'
    # 配置邮件服务器
    gitlab_rails['smtp_enable'] true
    gitlab_rails['smtp_address'] "smtp.qq.com"
    gitlab_rails['smtp_port'] 465
    gitlab_rails['smtp_user_name'] "your_email@example.com"
    gitlab_rails['smtp_password'] "your_password"
    gitlab_rails['smtp_domain'] "example.com"
    gitlab_rails['smtp_authentication'] "login"
    gitlab_rails['smtp_enable_starttls_auto'] true
    gitlab_rails['smtp_tls'] true
    gitlab_rails['gitlab_email_from'] 'your_email@example.com'
    
  4. 重置并启动GitLab服务

    gitlab-ctl reconfigure
    gitlab-ctl restart
    
  5. 配置SSH认证

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    

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

0