Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
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.