Gerenciamento de Acesso Seguro com JumpServer

Hoje venho apresentar o JumpServer, uma ferramenta que foi me apresentada por André Dias CEO da Hexa Networks. Similar ao Apache Guacamole.

Introdução ao JumpServer


O JumpServer é uma solução open-source de Gerenciamento de Acesso Seguro (Secure Access Management – SAM) projetada para fornecer uma plataforma centralizada para controle de acesso e auditoria em ambientes de TI. Ele atua como um bastião, oferecendo um ponto único de entrada para administradores e operadores, permitindo a gestão eficiente e segura de servidores, dispositivos de rede e outros recursos críticos.

Principais Benefícios do JumpServer

  • Segurança e Controle de Acesso: O JumpServer reforça a segurança ao centralizar e controlar o acesso aos recursos, garantindo que apenas usuários autorizados possam interagir com os sistemas críticos.
  • Auditoria e Monitoramento: Cada sessão é registrada e monitorada, oferecendo uma trilha de auditoria detalhada para investigações e conformidade com regulamentos de segurança.
  • Gerenciamento de Senhas: Com o JumpServer, é possível gerenciar e rotacionar senhas de maneira segura, minimizando os riscos associados ao uso de senhas estáticas.
  • Integração com Sistemas Existentes: Ele suporta integração com diversos sistemas de autenticação, como LDAP, Active Directory e multifatores de autenticação (MFA), facilitando a incorporação em ambientes já existentes.
  • Facilidade de Uso: A interface intuitiva do JumpServer permite que administradores e operadores configurem e utilizem a plataforma com facilidade, reduzindo a curva de aprendizado.

Como o JumpServer Funciona

O JumpServer opera como um gateway seguro entre os usuários e os recursos de TI. Quando um usuário precisa acessar um servidor ou dispositivo, ele se conecta primeiro ao JumpServer. Após a autenticação bem-sucedida, o JumpServer estabelece a conexão segura com o recurso desejado. Durante essa sessão, todas as atividades são registradas, permitindo auditoria e monitoramento contínuos.

Cenários de Uso Comuns

  • Ambientes Corporativos: Empresas que precisam gerenciar o acesso a uma grande quantidade de servidores e dispositivos de rede.
  • Provedores de Serviços Gerenciados (MSPs): Provedores que gerenciam infraestrutura de TI para múltiplos clientes e precisam garantir a segurança e conformidade.
  • Organizações com Requisitos de Conformidade: Entidades que devem cumprir normas rigorosas de segurança e auditoria, como PCI-DSS, HIPAA, e GDPR.

O JumpServer se destaca como uma ferramenta essencial para organizações que buscam melhorar a segurança, o controle de acesso e a conformidade com regulamentações de TI. Ele oferece uma plataforma robusta e flexível para gerenciar o acesso a recursos críticos, mantendo a integridade e a segurança dos sistemas.

Instalação

Para rodar o JumpServer, é recomendado ter um hardware com as seguintes especificações mínimas:

– CPU: 2 núcleos
– Memória: 8 GB de RAM
– Armazenamento: 60 GB

Irei fazer a instalação em um Debian 12, mas ele roda em Ubuntu, RedHat ou CentOS. O kernel deve ser superior ou igual a versão 4.0.

# apt install curl
# curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash

Aguarde a magia acontecer, ele irá fazer tudo para você. Ao final você terá 8 containers (jms_koko jms_redis jms_postgresql jms_celery jms_chen jms_lion jms_core jms_web)

Ao finalizar acesse em seu navegador o IP do seu servidor exemplo http://seu-ip/
Usuário: admin Senha: ChangeMe

Habilitando IPv6

Para ativar o suporte IPv6 nos containers do JumpServer vamos editar o arquivo /opt/jumpserver/config/config.txt e fazer alguns ajustes. Para facilitar a vida vou utilizar o comando sed, para alterar USE_IPV6=0 por USE_IPV6=1 e fc00:1010:1111:200 por fc00:bebe:cafe:d0ce.

# sed -i 's/USE_IPV6=0/USE_IPV6=1/' /opt/jumpserver/config/config.txt
# sed -i 's/fc00:1010:1111:200/fc00:bebe:cafe:d0ce/' /opt/jumpserver/config/config.txt
# cd /opt/jumpserver-installer-v4.0.1
# bash jmsctl.sh stop
# bash jmsctl.sh start

Habilitando HTTPS

Aponte em seu DNS Autoritativo as entradas A (IPv4) e AAAA (IPv6) apontando para os IPs públicos de seu servidor.

Antes de gerar o certificado pare todos os contêineres do JumpServer.

# cd /opt/jumpserver-installer-v4.0.1
# bash jmsctl.sh stop

Em seguida iremos instalar o certbot (Let’s Encrypt) para gerar nosso certificado, no exemplo irei utilizar “jump.remontti.com.br”.

# apt install certbot python3-certbot-apache
# certbot certonly --standalone -d jump.remontti.com.br

Para poder usar os certificados gerados pelo certbot, vamos precisar copia-los em /opt/jumpserver/config/nginx/cert. Atalho não funciona devido as permissões. Faça o seguinte:
Remova os certificados inválidos:

# rm /opt/jumpserver/config/nginx/cert/server.crt
# rm /opt/jumpserver/config/nginx/cert/server.key

Copie os os novos:

# cd /etc/letsencrypt/live/jump.remontti.com.br/
# cp fullchain.pem /opt/jumpserver/config/nginx/cert/server.crt
# cp privkey.pem /opt/jumpserver/config/nginx/cert/server.key
# chmod 600 /opt/jumpserver/config/nginx/cert/*

Edite o arquivo /opt/jumpserver/config/config.txt e altere as seguintes entradas, informando seu domínio bem como o caminho dos arquivos de certificado gerados no passo anterior.

# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key

Edite /opt/jumpserver/config/config.txt

# vim /opt/jumpserver/config/config.txt

Exemplo de configuração:

HTTPS_PORT=443
SERVER_NAME=jump.remontti.com.br
SSL_CERTIFICATE=server.crt
SSL_CERTIFICATE_KEY=server.key

Agora vamos iniciar novamente os contêineres

# cd /opt/jumpserver-installer-v4.0.1
# bash jmsctl.sh start

Script para renovação do certificado

# mkdir /opt/renew-cert
# vim /opt/renew-cert/renew-cert.sh

Não esqueça de ajustar a versão e se domínio.

#!/bin/bash

VERSAO_JUMP=4.0.1
DOMINIO=jump.remontti.com.br

# Para Jumpserver
/opt/jumpserver-installer-v${VERSAO_JUMP}/jmsctl.sh stop

# Renova certificado
/usr/bin/certbot renew -q

# Remove certificados velhos
rm /opt/jumpserver/config/nginx/cert/server.crt
rm /opt/jumpserver/config/nginx/cert/server.key

# Copia certificados novos
cp /etc/letsencrypt/live/${DOMINIO}/fullchain.pem /opt/jumpserver/config/nginx/cert/server.crt
cp /etc/letsencrypt/live/${DOMINIO}/privkey.pem /opt/jumpserver/config/nginx/cert/server.key

# Altera permissão
chmod 600 /opt/jumpserver/config/nginx/cert/* 

# Inicia Jumpserver
/opt/jumpserver-installer-v${VERSAO_JUMP}/jmsctl.sh start

De permissão para ser executado.

# chmod +x /opt/renew-cert/renew-cert.sh

Adicione ao cron, para que todo o Domingo ele tentar renovar às 3:30 da manhã.

# crontab -e
# m h  dom  mon dow   command 
#┌──────────────────── m (minute): Minuto do horário (0 a 59) 
#│  ┌───────────────── h (hour): Hora do dia (0 a 23)
#│  │  ┌────────────── dom (day of month): Dia do mês (1 a 31)
#│  │  │    ┌───────── mon (month): Mês do ano (1 a 12)
#│  │  │    │   ┌───── dow (day of week): Dia da semana (0 a 6, sendo 0 domingo)
#│  │  │    │   │   ┌─ command
30  3  *    *   0   /opt/renew-cert/renew-cert.sh

Reinicie o cron

# systemctl restart cron

Atualização futuras

Acesse https://github.com/jumpserver/jumpserver/releases para verificar se existe uma release mais recente.

Acesse o diretório da aplicação e baixe a versão mais nova, em seguida extraia o mesmo

# cd /opt 
wget https://github.com/jumpserver/installer/releases/download/v4.0.1/jumpserver-installer-v4.0.1.tar.gz
tar -xf jumpserver-installer-v4.0.1.tar.gz

Entre no diretório da versão extraída, execute os comando upgrade, e em seguida inicie o serviço.

# cd /opt/jumpserver-installer-v4.0.1
# bash jmsctl.sh upgrade
# bash jmsctl.sh start

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

FONTE:
https://www.jumpserver.com/
https://en-docs.jumpserver.org
https://docs.jumpserver.org/
https://jump.speedrs.com.br/core/download/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

5 Resultados

  1. Douglas disse:

    Boa tarde!

    Ao tentar o acesso através do navegador, aparece uma tela toda em branco, ao invés da tela de login. A URL original é direcionada para http://meu_ip/ui/#/.

    Através da console do navegador, identifiquei que está ocorrendo um erro 504 em 3 componentes: i18n/lina/?lang=pt&flat=0, user-session/ e open/.

    Fiz a instalação em um Ubuntu 24.04.1 LTS.

    Alguma ideia do que pode ser?

    Obrigado!

  2. Fábio disse:

    Já refiz a VM 3 vezes e sempre dá o mesmo problema: ao tentar gerar o certificado diz que a porta 80 está em uso… Então, paro o serviço apache2 e daí consigo gerar o certificado; depois disso nunca mais funciona o docker jms_web. Com o apache ainda desligado o docker até inicia, mas não abre página alguma, com o apache rodando não inicia o docker… não sei mais oq fazer =/

  3. Sandro Remontti disse:

    Consigo trocar os IPs do docker? Ele usa a mesma classe dos meus equipamentos.

    • Tente esses ajustes:

      # vim /etc/docker/daemon.json
      {
      	"data-root": "/var/lib/docker",
      	"live-restore": true,
      	"log-driver": "json-file",
      	"log-opts": {
      		"max-file": "3",
      		"max-size": "10m"
      	},
      	"iptables": true,
      	"ipv6": true,
      	"fixed-cidr-v6": "fc00:bebe:cafe:f0da::/64",
      	"default-address-pools": [
      		{
      			"base": "192.168.176.0/22",
      			"size": 24
      		}
      	]
      }

      Execute os comandos nessa ordem:

      # bash /opt/jumpserver-installer-v4.0.1/jmsctl.sh stop 
      # systemctl stop docker
      # ip link delete docker0 
      # rm -rf /var/lib/docker/network
      # systemctl start docker
      # docker network ls
      # bash /opt/jumpserver-installer-v4.0.1/jmsctl.sh start

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *