
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.
1 # apt install curl 2 # curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash Copiar
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.
1 # sed -i 's/USE_IPV6=0/USE_IPV6=1/' /opt/jumpserver/config/config.txt
2 # sed -i 's/fc00:1010:1111:200/fc00:bebe:cafe:d0ce/' /opt/jumpserver/config/config.txt
3 # cd /opt/jumpserver-installer-v4.5.0
4 # bash jmsctl.sh stop
5 # 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.
1 # cd /opt/jumpserver-installer-v4.5.0
2 # 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”.
1 # apt install certbot python3-certbot-apache
2 # 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:
1 # rm /opt/jumpserver/config/nginx/cert/server.crt
2 # rm /opt/jumpserver/config/nginx/cert/server.key
Copie os os novos:
1 # cd /etc/letsencrypt/live/jump.remontti.com.br/
2 # cp fullchain.pem /opt/jumpserver/config/nginx/cert/server.crt
3 # cp privkey.pem /opt/jumpserver/config/nginx/cert/server.key
4 # 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.
1 # HTTPS_PORT=443
2 # SERVER_NAME=your_domain_name
3 # SSL_CERTIFICATE=your_cert
4 # SSL_CERTIFICATE_KEY=your_cert_key
Edite /opt/jumpserver/config/config.txt
1 # vim /opt/jumpserver/config/config.txt
Exemplo de configuração
1 HTTPS_PORT=443
2 SERVER_NAME=jump.remontti.com.br
3 SSL_CERTIFICATE=server.crt
4 SSL_CERTIFICATE_KEY=server.key
Agora vamos iniciar novamente os contêineres
1 # cd /opt/jumpserver-installer-v4.5.0
2 # bash jmsctl.sh start
Script para renovação do certificado
1 # mkdir /opt/renew-cert
2 # vim /opt/renew-cert/renew-cert.sh
Não esqueça de ajustar a versão e se domínio.
1 #!/bin/bash
2
3 VERSAO_JUMP=4.5.0
4 DOMINIO=jump.remontti.com.br
5
6 # Para Jumpserver
7 /opt/jumpserver-installer-v${VERSAO_JUMP}/jmsctl.sh stop
8
9 # Renova certificado
10 /usr/bin/certbot renew -q
11
12 # Remove certificados velhos
13 rm /opt/jumpserver/config/nginx/cert/server.crt
14 rm /opt/jumpserver/config/nginx/cert/server.key
15
16 # Copia certificados novos
17 cp /etc/letsencrypt/live/${DOMINIO}/fullchain.pem /opt/jumpserver/config/nginx/cert/server.crt
18 cp /etc/letsencrypt/live/${DOMINIO}/privkey.pem /opt/jumpserver/config/nginx/cert/server.key
19
20 # Altera permissão
21 chmod 600 /opt/jumpserver/config/nginx/cert/*
22
23 # Inicia Jumpserver
24 /opt/jumpserver-installer-v${VERSAO_JUMP}/jmsctl.sh start
De permissão para ser executado.
1 # chmod +x /opt/renew-cert/renew-cert.sh
Adicione ao cron, para que todo o Domingo ele tentar renovar às 3:30 da manhã.
1 # crontab -e Copiar
1 # m h dom mon dow command 2 #┌──────────────────── m (minute): Minuto do horário (0 a 59) 3 #│ ┌───────────────── h (hour): Hora do dia (0 a 23) 4 #│ │ ┌────────────── dom (day of month): Dia do mês (1 a 31) 5 #│ │ │ ┌───────── mon (month): Mês do ano (1 a 12) 6 #│ │ │ │ ┌───── dow (day of week): Dia da semana (0 a 6, sendo 0 domingo) 7 #│ │ │ │ │ ┌─ command 8 30 3 * * 0 /opt/renew-cert/renew-cert.sh 9 Copiar
Reinicie o cron
1 # 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
1 # cd /opt
2 wget https://github.com/jumpserver/installer/releases/download/v4.5.0/jumpserver-installer-v4.5.0.tar.gz
3 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.
1 # cd /opt/jumpserver-installer-v4.5.0
2 # bash jmsctl.sh upgrade
3 # bash jmsctl.sh start
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!