在Linux上安全配置GitLab涉及多个步骤,包括安装必要的软件包、配置防火墙、设置访问控制、启用SSH认证、定期备份、更新GitLab版本、监控日志、使用双因素认证等。以下是一个详细的指南:
iptables
或 ufw
限制外部访问GitLab服务器的端口。建议只允许HTTP(80端口)和HTTPS(443端口)访问。# 使用iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save /etc/iptables.rules
sudo systemctl restart iptables
# 使用ufw
sudo apt-get install ufw # 安装ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# 生成SSL证书
mkdir -p conf/ssl
cd conf/ssl
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out cert_req.csr -subj "/C=CN/ST=TEST/L=TEST/O=test/OU=main/CN=*.gitpool.com/emailAddress=root@localhost.com"
openssl x509 -req -days 365 -in cert_req.csr -signkey server.key -out server_cert.crt
# 修改gitlab-compose.yaml配置参数
vim docker-compose.yaml
# ...
# 修改gitlab配置文件
vim /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_shell_ssh_port'] = 2022
# ...
# 重新加载配置文件
sudo gitlab-ctl reconfigure
# 创建.ssh目录并添加授权密钥
ssh git@address
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
ssh-keygen -t rsa
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
.gitignore
文件忽略敏感信息文件,检查提交内容,防止敏感信息上传。使用Docker可以简化GitLab的安装过程,并且可以更容易地管理和更新GitLab实例。
# Ubuntu
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# CentOS
curl -L "https://yum.docker.com/linux/centos/docker-ce.repo" -o /etc/yum.repos.d/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# 编辑/etc/gitlab/gitlab.rb文件,设置外部URL
external_url 'http://your_server_ip'
# 重新配置并重启GitLab
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
通过上述步骤,您可以在Linux系统上安全地配置GitLab,确保数据的安全性和系统的稳定性。