por Rudimar Remontti · Published 29 de julho de 2024 · Updated 24 de dezembro de 2024
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 | bashAguarde 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 startHabilitando 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 stopEm 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.brPara 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:
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_keyEdite /opt/jumpserver/config/config.txt
# vim /opt/jumpserver/config/config.txtExemplo de configuração:
HTTPS_PORT=443 SERVER_NAME=jump.remontti.com.br SSL_CERTIFICATE=server.crt SSL_CERTIFICATE_KEY=server.keyAgora vamos iniciar novamente os contêineres
# cd /opt/jumpserver-installer-v4.5.0 # bash jmsctl.sh startScript para renovação do certificado
# mkdir /opt/renew-cert # vim /opt/renew-cert/renew-cert.shNã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 startDe permissão para ser executado.
# chmod +x /opt/renew-cert/renew-cert.shAdicione 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.shReinicie o cron
# systemctl restart cronAtualizaçã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.gzEntre 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 startSe 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/