Debian系统GitLab安全设置指南
一 基础加固
sudo apt update && sudo apt full-upgrade -y && sudo rebootsudo apt install -y ufwsudo ufw default deny incomingsudo ufw allow httpsudo ufw allow httpssudo ufw limit ssh/tcpsudo ufw enable && sudo ufw statussudo nano /etc/ssh/sshd_configPermitRootLogin noPubkeyAuthentication yesPasswordAuthentication noProtocol 2Ciphers aes128-ctr,aes192-ctr,aes256-ctrKexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521Macs hmac-sha2-256,hmac-sha2-512AllowTcpForwarding noX11Forwarding nosudo systemctl restart sshsudo nano /etc/sysctl.d/99-gitlab-hardening.confvm.mmap_min_addr=4096kernel.randomize_va_space=2kernel.kptr_restrict=2kernel.dmesg_restrict=1kernel.unprivileged_bpf_disabled=1net.core.bpf_jit_harden=2vm.unprivileged_userfaultfd=0net.ipv4.tcp_syncookies=1net.ipv4.conf.all.rp_filter=1net.ipv4.conf.default.rp_filter=1net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.conf.all.send_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv6.conf.all.accept_ra=0net.ipv6.conf.default.accept_ra=0sudo sysctl --system二 传输加密与证书
sudo nano /etc/gitlab/gitlab.rbexternal_url 'https://your.domain.com'nginx['ssl_certificate'] = "/etc/letsencrypt/live/your.domain.com/fullchain.pem"nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your.domain.com/privkey.pem"sudo gitlab-ctl reconfiguresudo apt install -y certbot python3-certbot-nginxsudo certbot --nginx -d your.domain.comsudo nginx -t && sudo systemctl reload nginxsudo crontab -e0 0,12 * * * root certbot renew --post-hook "systemctl reload nginx"https://your.domain.com,确认证书有效与链完整。三 GitLab内置安全配置
sudo gitlab-rake gitlab:backup:createsudo tail -f /var/log/gitlab/gitlab-rails/production.log四 网络与邮件安全
/etc/gitlab/gitlab.rb):
gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.yourprovider.com"gitlab_rails['smtp_port'] = 587gitlab_rails['smtp_authentication'] = "plain"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_domain'] = "yourdomain.com"sudo gitlab-ctl reconfigure五 维护与审计清单
sudo apt update && sudo apt full-upgrade -y && sudo rebootsudo ufw status verbosesudo gitlab-ctl reconfiguresudo certbot certificates