Como Instalar Gitlab com Segurança (Um Tutorial)

Você decidiu que precisa começar a usar o GitLab para o gerenciamento do seu projeto, mas não tem certeza de como instalar o GitLab com segurança? Não apenas instalar o GitLab é um processo complexo, mas se não for feito corretamente, seus dados podem estar em risco. Mas não se preocupe, você veio ao lugar certo!

Neste tutorial, você aprenderá todo o processo de instalação do GitLab com segurança, para que possa configurar a criptografia SSL e configurar o GitLab para obter o melhor desempenho.

Parece interessante? Vamos lá!

Pré-requisitos

Este tutorial será uma demonstração prática. Se você deseja acompanhar, certifique-se de ter o seguinte:

  • A Linux server with root access – This demo uses Ubuntu 20.04 LTS, but any Linux distribution will work.
  • A fully qualified domain name (FQDN) pointing to your server.
  • Let’s Encrypt instalado no servidor.
  • Requisitos mínimos – 8 GB de RAM, largura de banda de 50-100 Mb/s, processador de 2 GHz e 20 GB de espaço em disco.

Instalando a Edição Comunitária do GitLab

Agora que você tem um FQDN e seu servidor preparado, é hora de instalar o GitLab. Existem várias maneiras de instalar o GitLab, como usar o pacote Omnibus ou compilar a partir do código-fonte. Mas este tutorial se concentra na instalação do GitLab usando o repositório GitLab de seu desenvolvedor.

GitLab está disponível em duas distribuições:

  • GitLab Community Edition (CE) – para usuários que preferem uma versão de código aberto, suportada pela comunidade, do GitLab.
  • GitLab Enterprise Edition (EE) – para usuários que necessitam das funcionalidades extras fornecidas pela GitLab Enterprise Edition.

Mas esta demonstração utiliza a Community Edition para testar a aplicação no ambiente de desenvolvimento.

1. Abra seu terminal e execute o comando apt update abaixo para garantir que seu sistema tenha acesso a todas as atualizações mais recentes do software.

O comando apt update atualiza os arquivos de índice de pacotes usados pela utilidade apt para obter informações sobre os pacotes disponíveis.

sudo apt update -y
Updating your package index

2. Em seguida, execute o comando apt install abaixo para baixar (curl) e instalar as dependências necessárias a seguir para a instalação do GitLab:

  • openssh-server pacote – Contém o daemon do servidor OpenSSH e ferramentas relacionadas, como a ferramenta de gerenciamento de chaves de host e o servidor, para fornecer acesso remoto de login aos usuários.
  • O pacote ca-certificates – Contém uma lista de certificados CA. Este pacote fornece os arquivos necessários para habilitar o suporte HTTPS no seu servidor.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. Execute o comando curl abaixo para baixar (curl) o script de instalação do GitLab (https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce). O comando então salva o script de instalação como um script de shell (script.deb.sh) e o executa como superusuário (sudo bash).

sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Assim que o comando curl for concluído, você receberá a seguinte saída.

Adding the GitLab repository to your system

4. Execute o comando apt-cache abaixo para verificar se você adicionou o repositório do GitLab com sucesso.

apt-cache policy docker-ce
Verifying if GitLab Repository Exists

5. Agora, execute novamente o comando apt update para atualizar a lista de pacotes disponíveis. Este comando garante que o seu sistema usará o repositório do GitLab recém-adicionado ao instalar o GitLab.

sudo apt update -y

6. Por fim, execute o comando apt install abaixo para instalar o GitLab (gitlab-ce) no seu sistema.

sudo apt install gitlab-ce -y
Installing GitLab

A instalação levará algum tempo, mas você verá a seguinte saída quando a instalação estiver completa. Esta saída confirma que você agora instalou o GitLab com sucesso no seu sistema.

Getting the Welcome Page after Installing GitLab

Configurando sua Instalação do GitLab

Você agora tem o GitLab instalado em seu sistema, mas precisará fazer algumas alterações de configuração antes de usar o GitLab. O arquivo de configuração do GitLab (/etc/gitlab/gitlab.rb) contém as configurações globais do GitLab que não são específicas do ambiente do seu servidor GitLab.

Você vai modificar o arquivo de configuração do GitLab para definir o nome de domínio FQDN e a conexão segura com o seu domínio.

1. Abra o arquivo de configuração /etc/gitlab/gitlab.rb no seu editor de texto favorito.

Uma das entradas mais importantes no arquivo de configuração do GitLab é a diretiva external url, como mostrado abaixo. Esta diretiva permite que os usuários acessem o GitLab através de um navegador da web.

Altere o valor da diretiva external url de http://gitlab.example.com para https://gitlab.yourdomain.com, onde yourdomain.com é o nome de domínio FQDN.

Setting FQDN domain name in the external URL directive

2. Em seguida, navegue até a seção de integração do Let’s Encrypt localizada na parte inferior e configure as diretivas com o seguinte:

  • Remova o # precedente e altere o valor de letsencrypt['enable'] de nil para true. Esta diretiva diz ao GitLab para configurar o HTTPS em seu servidor automaticamente.
  • Remova o # precedente da diretiva letsencrypt['contact_emails'] e coloque seu endereço de e-mail como o valor. O Let’s Encrypt usará este endereço de e-mail para entrar em contato com você quando precisar renovar seu certificado SSL (a cada 90 dias).
  • Salve as alterações e saia do editor.
Configuring Let’s Encrypt Integration

3. Por último, execute o comando abaixo para reconfigurar e aplicar as alterações no arquivo de configuração do GitLab em /etc/gitlab/gitlab.rb ao GitLab.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

Configurando seu Firewall para Conexões SSL

Agora que você configurou o GitLab, precisará configurar as regras do seu firewall para permitir conexões SSL e seguras com o seu servidor. O Firewall Descomplicado (UFW) é o programa padrão para gerenciar regras de firewall no Ubuntu.

Se você colocou seu servidor atrás de um firewall, precisará abrir a porta HTTP 80 e a porta HTTPS 443 para conexões SSL.

Execute o seguinte comando para abrir as portas OpenSSH, HTTP e HTTPS para o seu servidor GitLab.

sudo ufw allow OpenSSH && sudo ufw allow http && sudo ufw allow http
Adding new firewall rule

Agora, execute o seguinte comando para verificar o status do seu firewall.

sudo ufw status 
Checking the status of your firewall

Assegurando o GitLab via Interface Web

Seu firewall está ativo, mas isso significa que o seu GitLab está seguro? Adicionar camadas de segurança nunca é demais. Então, você irá garantir ainda mais a sua instalação do GitLab via interface web.

1. Abra seu navegador web favorito e acesse o seu servidor GitLab. Por exemplo, http://gitlab.example.com, onde example.com é o nome de domínio FQDN.

Cescolha entre o Chrome ou o Firefox ao acessar seu servidor GitLab para melhor segurança. Esses navegadores da web utilizam seus próprios protocolos HTTP/HTTPS, que ajudam a aplicar políticas de segurança.

Abaixo, você pode ver a página de login do GitLab.

Accessing the GitLab Log in screen

2. Em seguida, clique no ícone do cadeado (no canto superior esquerdo) ao lado da barra de endereço e você verá o status da sua conexão. Esta demonstração mostra que a Conexão é segura, indicando que sua conexão com o servidor é via HTTPS.

Checking your connection status

Volte ao seu terminal e execute o comando cat abaixo para obter sua initial_root_password.

Por padrão, a instalação do GitLab vem com uma senha raiz inicial gerada automaticamente.

 cat /etc/gitlab/initial_root_password

Copie e salve sua senha raiz inicial em um local seguro. Você usará esta senha para fazer login no GitLab (passo quatro).

Getting your initial root password

4. Volte ao seu navegador da web, digite root como nome de usuário e insira sua senha raiz inicial como senha. Clique em Entrar para acessar seu servidor GitLab.

Logging in to your GitLab server

Após fazer login em seu servidor GitLab, seu navegador será redirecionado para o painel do GitLab, como mostrado abaixo.

Viewing GitLab Dashboard

Adicionando uma Chave SSH à sua Conta GitLab

Além da interface web, você também pode acessar o GitLab via ambiente de linha de comando de forma segura. Como? Primeiro, você precisará adicionar uma chave SSH à sua conta, permitindo que você acesse o GitLab executando um comando no seu terminal sem precisar inserir uma senha.

1. Execute o comando ssh-keygen para gerar um par de chaves SSH adequado para uso em conexões SSH. Quando solicitado, pressione a tecla Enter para manter o local de salvamento padrão para a chave SSH (/root/.ssh/id_rsa) e não adicione uma frase secreta.

ssh-keygen
Generating an SSH keypair

2. Execute o comando cat abaixo para imprimir sua chave pública na tela, conforme mostrado abaixo. Copie toda a sequência de chave pública ssh-rsa e salve-a em um local seguro. Você adicionará esta chave pública ao seu GitLab posteriormente (passo três).

 cat ~/.ssh/id_rsa.pub
Viewing the entire ssh-rsa public key string

3. Volte ao painel do GitLab em seu navegador para adicionar sua chave pública com o seguinte:

  • Clique no menu Chaves SSH no painel esquerdo da página de Configurações de Usuário para acessar a página de Chaves SSH.
  • Cole a chave pública que você copiou (passo dois) no campo Chave, conforme mostrado abaixo
  • Forneça o nome preferido para a chave no campo Título. Mas para esta demonstração, o nome é definido como ATAGitHub.
  • Clique em Adicionar Chave para finalizar a adição da chave pública à sua conta.
Adding SSH Keys

Desativando Inscrições Públicas

Para segurança adicional, você pode desativar inscrições públicas no GitLab. Por quê? A função de inscrições públicas no GitLab permite que qualquer pessoa crie uma conta no servidor do GitLab. Desativar essa função permite que você evite ataques de força bruta em seu servidor.

1. No painel do GitLab, clique em Menu —> Admin para acessar o painel de administração, em seguida, clique em Configurações para acessar a página de configurações Gerais do painel de administração (passo dois).

Viewing the GitLab Admin panel

2. Desative a opção Habilitar inscrição na seção Restrições de inscrição. Fazendo isso, desabilita a funcionalidade de inscrições públicas do GitLab.

Disabling GitLab Public Sign-ups

3. Role para baixo e clique em Salvar alterações (na parte inferior) para salvar as alterações feitas nas configurações de restrições de inscrição.

Saving your changes

4. Por fim, faça logout de sua conta e acesse a tela de login do seu GitLab.

Como você pode ver abaixo, o link Registrar agora desapareceu.

Verifying if the Register now link is gone

Testando seu Servidor GitLab

Neste ponto, você já configurou e protegeu seu servidor GitLab, o que é ótimo! Mas como saber se o servidor GitLab está realmente funcionando? Você testará seu servidor criando um projeto GitLab através do painel do GitLab e clonando o projeto para seu servidor.

1. No painel do GitLab, clique no ícone de mais (+) ao lado da caixa de pesquisa, em seguida, clique em Novo projeto, como mostrado abaixo, para criar um novo projeto GitLab.

Adding New GitLab Project

2. Em seguida, forneça o seu Nome do projeto preferido, mas para esta demonstração, o nome do projeto é definido como ATA GitLab, e o Slug do projeto é definido como (atagitlab).

Clique em Criar projeto para criar seu novo projeto.

Creating a new project

3. Retorne ao seu terminal e execute os seguintes comandos para configurar seu nome de usuário global (--global user.name) e email (--global user.email) para o Git. Cada nome de usuário e email são globalmente únicos em todas as contas no servidor do GitLab.

git config --global user.name "ATA"
git config --global user.email "[email protected]"

4. Agora, execute o comando git clone abaixo para clonar o projeto ATA GitLab que você criou (passo dois) para o seu diretório atual. Substitua seudominio.com pelo seu FQDN.

git clone http://gitlab.yourdomain.com/root/ATA-GitLab.git

Se tudo correr bem, você verá uma saída semelhante à abaixo. Quando a clonagem estiver completa, você terá um novo diretório chamado ATA-GitLab.

Cloning the ATA GitLab project

5. Por fim, execute o comando ls para verificar se o diretório ATA-GitLab existe.

ls

Dado que você pode clonar o novo projeto ATA GitLab e que o diretório ATA GitLab existe, a saída abaixo confirma que seu servidor GitLab está funcionando corretamente.

Listing new directory ATA-GitLab

Conclusão

Neste tutorial, você aprendeu como realizar uma instalação segura do GitLab em seu sistema Ubuntu Linux. Você garantiu a segurança do seu servidor GitLab através da interface web, adicionou chaves SSH à sua conta do GitLab e testou se o seu servidor GitLab está funcionando.

Com este novo conhecimento, talvez você queira aprender como configurar sistemas automatizados de Integração Contínua (CI) com o GitLab?

Source:
https://adamtheautomator.com/install-gitlab/