Notícias
Novos modelos de linguagem da API Serverspace GPT
DF
março 24, 2023
Atualizado janeiro 31, 2025

Configuração da segurança do Concourse CI com SSL

Debian Linux Ubuntu

Introdução.

A montagem automática de projetos após a atualização do código é, na verdade, um procedimento padrão que permite visualizar e testar o produto desenvolvido em qualquer lugar, examinar imediatamente os erros e, como resultado, encontrar e corrigir rapidamente o problema. Com o advento do Docker, eles não se tornaram menos relevantes e procurados. Atualmente, existem dezenas de sistemas de CI: Jenkins, Atlassian Bamboo, Bitbucket Pipelines e assim por diante. O problema é que eles são bastante complexos, a maioria deles é comercial e custa uma certa quantia e, o mais importante, exige um especialista e tempo para configurar e ajustar constantemente, o que geralmente não é possível em projetos pequenos e, mais ainda, no desenvolvimento individual.

O Concourse CI é um sistema de integração contínua necessário para automatizar pipelines de teste usando uma sintaxe declarativa unificada. O Concourse CI simplifica o processo de implementação da integração contínua e quase não requer tempo para implantação e estudo.

Em nosso guia anterior, vimos a instalação e a configuração do Concourse CI em um servidor Debian 10. Descobrimos como executá-lo a partir da CLI e usar a interface da Web.
Nesta instrução, veremos como proteger a interface gráfica configurando o servidor proxy reverso por meio do Nginx.
O uso do proxy reverso tem algumas vantagens, como: restringir o acesso a determinado conteúdo, permitir permanecer anônimo, evitar restrições de visualização de conteúdo, reduzir a carga nos servidores principais devido ao armazenamento em cache de conteúdo estático e dinâmico, compactar o conteúdo para reduzir o tempo de download e usar um firewall de software, que pode proteger contra os ataques mais comuns da Web.

Antes de começarmos

Em primeiro lugar, devemos implantar um servidor virtual com o sistema operacional Debian 10. Deve haver pelo menos 1 GB de RAM. Siga os tutoriais de acordo com as instruções para configurar uma conta simples sem direitos de superusuário.

Instale e configure o Concourse CI usando o site oficial ou o GitHub.

Instalação do Nginx e configuração de uma conexão criptografada.

Você deve obter um nome de domínio para acessar por domínio, não por endereço IP.

Especificação de proxy reverso

Vamos começar editando o arquivo de bloco do servidor para configurar o SSL e redirecionar o tráfego para o servidor Concourse CI.

O diretório /etc/nginx/sites-enabled contém o arquivo, que é o arquivo padrão depois que o nginx é instalado.

Vamos fazer edições no arquivo para configurar um servidor proxy. Ele encaminhará o tráfego para o site por nome de domínio.

Vamos começar. Adicione linhas na parte superior do arquivo padrão do diretório /etc/nginx/sites-enabled antes da parte principal do bloco do servidor. Especifique o endereço IP do servidor local e a porta em que nosso servidor Concourse está escutando:

upstream concourse {
server 127.0.0.1:8080;
}

Você precisa encontrar o bloco responsável pela manutenção do SSL. Por padrão, a linha com listen 443 é usada. Certifique-se de que, após server_name, haja seu nome de domínio.

Configure o bloco "location /" nesse bloco. Ele envia solicitações para o servidor Concourse:

location / {
include proxy_params;
proxy_http_version 1.1;
proxy_read_timeout 90;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://concourse;
}

Depois de fazer as edições, não se esqueça de salvar o arquivo e sair dele.

Usando o comando, vamos verificar a exatidão do arquivo:

nginx -t

Como resultado, obtemos a sintaxe ok. O teste foi bem-sucedido.

Você precisa reiniciar o nginx para aplicar as alterações

service nginx restart

Você configurou o servidor Concourse para o domínio.

Vinculação de um domínio a uma interface de rede

Depois de todas as definições de configuração, precisamos vincular nosso endereço local ao nosso domínio. Abra o arquivo de ambiente da Web no diretório /etc/concourse e converta a string CONCOURSE_EXTERNAL_URL para o seguinte e adicione o endereço IP local:

CONCOURSE_EXTERNAL_URL=https://serverspace.tm
CONCOURSE_BIND_IP=127.0.0.1

Vamos sair e salvar as alterações.

Precisamos reiniciar o serviço concourse-web para aplicar as edições.

service concourse-web restart

Vamos verificar qual endereço funciona com a porta 8080 usando o comando:

netstat -tlnup | grep :8080

Como saída, temos a seguinte linha

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 1781/concourse

A interface só escuta o endereço IP local.

Agora faremos edições no firewall, excluindo a regra para a porta 8080:

ufw delete allow 8080

Todas as solicitações serão processadas pelo Nginx, que é executado na porta 80.

Verificação da interface

A interface oferece a capacidade de navegar por todos os pipelines e tarefas e monitorar os resultados.
Vamos abrir um navegador e inserir nosso nome de domínio. Chegaremos à página de boas-vindas do Concourse:

1
Tela 1 - Página de boas-vindas do Concourse

Em seguida, digite o login e a senha que você especificou durante a configuração do Concourse:

2
Tela 2 - Campo para login e senha

Após a autorização bem-sucedida, podemos abrir a interface:

3
Tela 3 - Página com nosso pipeline

Agora você tem acesso ao gui do Concourse por meio do domínio.

Conclusões

Demos uma olhada em:

  • Alteração do arquivo Nginx para rotear o tráfego por padrão;
  • Vincular um endereço IP local a um domínio;
  • Teste de GUI por meio de um domínio.
Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 2
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA
Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.