基础安全配置
iptables或ufw等工具限制外部访问,仅开放GitLab必需的HTTP(80端口,用于HTTP访问)、HTTPS(443端口,用于加密访问)端口,关闭不必要的端口(如FTP、Telnet等),降低攻击面。external_url设置为https://开头,并在/etc/gitlab/gitlab.rb中指定证书路径(如nginx['ssl_certificate'] = "/etc/gitlab/ssl/server_cert.crt"、nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/private.key"),强制数据传输加密,防止中间人攻击。/etc/gitlab/gitlab.rb中设置ssh_port为自定义端口,如2222,并配置sshd_config文件),用户通过生成SSH密钥对(公钥添加至GitLab账户,私钥保存在本地),实现无密码登录,提升身份认证安全性。gitlab-rake gitlab:backup:create手动备份,或通过cron定时任务自动备份(如每天凌晨2点执行),备份内容包括仓库数据、数据库(PostgreSQL)、上传文件、CI/CD配置等,备份文件存储至异地(如云存储、另一台服务器),防止数据丢失。/var/log/gitlab/,包括gitlab-rails/production.log、gitlab-shell.log等),使用监控工具(如Prometheus+Granafa、Zabbix)实时监测系统性能(CPU、内存、磁盘使用率)、服务状态(如Nginx、PostgreSQL是否正常),设置日志告警规则(如异常登录尝试、大量失败请求),及时发现并响应安全事件。进阶安全措施
/etc/gitlab/gitlab.rb中配置密码复杂度规则(如要求密码长度≥12位、包含大小写字母、数字和特殊字符),启用密码过期策略(如每90天强制更换密码),禁止用户使用弱密码(如“123456”、“password”)。.gitignore文件过滤敏感文件(如*.key私钥、*.env环境变量文件、*.sql数据库备份文件),在GitLab项目设置中开启提交内容扫描(Scan commits for sensitive data),禁止上传包含敏感信息的文件,防止敏感数据泄露。ansible-vault、git-crypt工具),只有授权用户才能解密查看,降低敏感信息泄露风险。apt update && apt upgrade或yum update),约束root账户权限(禁用root直接登录,使用普通用户+sudo提权),推行强密码策略(系统用户密码复杂度要求),使用SSH密钥认证替代密码认证。