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.3.

# 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.5.0
# 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.5.0
# 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.5.0
# 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.5.0
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.5.0/jumpserver-installer-v4.5.0.tar.gz
tar -xf jumpserver-installer-v4.5.0.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.5.0
# 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...

11 Resultados

  1. Rafael disse:

    Tentando apenas habilitar o acesso na 443 mas não funciona de jeito nenhum. Mesmo alterando o arquivo de configuração como diz no tutorial oficial ele não funciona, no meu caso eu não precisaria de um certificado público, só queria habilitar o acesso seguro com um certificado auto assinado mesmo. Mas ele nunca funciona na 443 só roda na 80. 😕

  2. Willian disse:

    Consegui configurar e usar os acessos SSH, mas não consegui configurar para acessar um site que tem auteenticação, não entendi muito bem como que configura. Passei os parêmetros do http que tem nos campos de usuário e senha e da ação do botão, tentei também usando as variáveis que tem, mas em nenhum dos casos tive sucesso.
    Alguem conseguiu fazer este acesso funcionar? Se sim, consegue compartilhar como configurou?

  3. Bom dia a todos, preciso de uma proposta HOJE por gentileza por e-mail:

    JumpServer: (100 servidores) que contenha:
    Senha Segura
    Beyond Trust
    Fornecedore
    Nome das soluções,

  4. gabriele_kohl disse:

    Olá, preciso de ajuda. Esta é minha primeira experiência usando o jumpServer.

    A conexão foi bem-sucedida.

    2025-05-22 22:30:09 >>> Preparando para executar tarefas
    2025-05-22 22:30:09 >>> Começando a executar tarefas
    2025-05-22 22:30:10
    JOGAR [todos] *****************************************************************************
    2025-05-22 22:30:10
    TAREFA [Ping Posix] **************************************************************************
    22/05/2025 22:30:11 ok: [teste2]
    2025-05-22 22:30:11
    RESUMO DO JOGO *****************************************************************************
    test2: ok=1 alterado=0 inacessível=0 falhou=0 ignorado=0 salvo=0 ignorado=0
    2025-05-22 22:30:11
    Verão:
    – total_ativos: 1
    – Tempo de uso: 2,45 seg.
    2025-05-22 22:30:11 Tarefa assets.tasks.ping.test_assets_connectivity_task[95aba94d-2a46-4afa-abf4-bd903d8eb233] concluída com sucesso em 2.5044402650000848 s: Não

    mas o terminal ssh não mostra nada quando tento conectar no dispositivo.

  5. JOSUE disse:

    Uma questão que não entendi é que o login ao dispositivo é feito com um login predefinido, para acesso ao ASSET ? ou seja sempre vai logar com um um unico usuario ao dispositivo ?

  6. Neirivaldo disse:

    root@JumpServer:~# curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
    curl: (35) Recv failure: Conexão fechada pela outra ponta

  7. 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!

  8. 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 =/

  9. 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 *