Ir para o conteúdo
sisGP

SSH e shell pelo navegador, com cada sessão gravada

Concentradores Mikrotik e Huawei, servidores Linux e o banco do Radius num terminal dentro do sisGP. Sem cliente SSH instalado em cada máquina e sem porta exposta: a sessão passa pelo WebSocket do próprio sistema e fica gravada, com usuário, IP de origem, hora e toda a saída da tela.

Como funciona

Um comando no servidor, um pty no navegador

Cada terminal é um comando cadastrado que roda no servidor do sisGP. Quem abre vê o nome e as instruções; o comando, o destino e o usuário Linux ficam no cadastro.

1. Cadastra o comando

ssh noc@10.10.0.1, o cliente do banco, o que estiver instalado no servidor. O processo sobe com o UID e o GID informados no cadastro e com timeout em minutos. O comando não vai para a tela de quem usa.

2. Libera por usuário

Os grupos organizam a lista (Concentradores, Servidores, POP Norte). Cada terminal diz quais usuários abrem; sem ninguém marcado, vale para todos com o app Terminal. A permissão é conferida a cada chamada: tirou o app, perdeu o acesso na hora.

3. Abre via WebSocket

O clique em abrir sobe o processo num ttyd preso ao 127.0.0.1, que aceita um cliente só, e entrega o terminal numa janela xterm pelo WebSocket do sisGP. Funciona atrás de proxy reverso, sem regra nova no firewall.

A janela do terminal

Quem abre sabe que está sendo gravado

O selo Sessão gravada fica no alto da janela o tempo todo, e a primeira linha do terminal avisa que o que aparece na tela fica registrado com o usuário de quem abriu.

  • Uma janela por sessãoCada abrir é um pop-up com o seu terminal: o BRAS e o servidor lado a lado, com o tamanho acompanhando a janela e colar de script grande.
  • Nada fica penduradoO processo morre no timeout do cadastro ou quando a janela fecha. Sessão criada e não conectada em 2 minutos é descartada, e conexão que não se identifica em 15 segundos cai.
  • Sem porta expostaO ttyd escuta só no 127.0.0.1 e só aceita a janela do mesmo usuário, no mesmo ambiente, que abriu a sessão.
Sessões gravadas

O que foi feito no equipamento, com hora e autor

Toda sessão é gravada, sem escolher quais e sem teto de tamanho. A saída do terminal vira texto, linha a linha com [HH:mm:ss], e vai para o banco a cada 5 segundos: se o servidor cair, perde-se no máximo o último intervalo.

grep em todas as sessões

A busca é no texto que apareceu na tela, o eco dos comandos inclusive, com --quem, --de e --ate. A lista já traz as linhas em que o texto aparece.

  • Quem, quando e de ondeUsuário, início, fim, duração, tamanho e IP de origem, lido do X-Real-IP ou do X-Forwarded-For quando há proxy na frente.
  • Como terminouEncerrada pelo usuário, tempo esgotado, o comando terminou ou servidor reiniciou. A que está em curso aparece como aberta agora.
  • Só o administrador vêAs sessões gravadas são do administrador do sistema; quem usa o terminal não vê as dos colegas.

A transcrição inteira, para ler e para baixar

A sessão aberta mostra a saída linha a linha, com a hora do Enter. A busca dentro dela vai de um achado ao outro, e o botão baixar entrega tudo num .txt.

  • Só a saída é gravadaGrava-se o que o terminal mostrou. Senha sem eco, como a do ssh ou do sudo, não aparece e não é gravada.
  • A linha como ficouBackspace, setas e retorno de carro são aplicados: o comando corrigido na digitação sai como foi executado, e a barra de progresso não vira cem linhas.
  • Tela cheia fica marcadavim, htop e mc usam a tela alternativa do terminal: a gravação marca a entrada e a saída, sem o que foi feito dentro.
No resto do sistema

O mesmo terminal, nas telas de rede

A janela gravada também abre a partir do Gestor de Servidores e da Consulta do Radius, sempre para quem tem o app Terminal.

SSH no NAS pela chave do sistema

No Gestor de Servidores, cada concentrador Mikrotik ou Huawei tem o botão Terminal. A entrada é por SSH com a chave do sistema: ninguém digita nem vê a senha do equipamento, e a sessão é gravada.

Chave no RouterOS com um clique

Instalar chave põe a chave do sistema no Mikrotik e confere logando por ela. A senha SSH do cadastro do NAS só serve para isso e não sai da API. No Huawei, a chave vai pela Consulta do Radius, com um administrador do equipamento digitado na hora.

Banco do Radius sem senha na linha de comando

Acessar Banco de Dados do Radius abre o cliente mariadb já conectado ao banco do Radius, rodando como nobody. A senha vai num arquivo temporário que só ele lê, apagado no fim: não passa pela linha de comando nem aparece no ps.

Ações no NAS com registro

Reiniciar NAS e Instalar chave no Huawei rodam interativos na janela, gravados. Na Central de Atendimento, o log do Radius do login abre na mesma janela, só para acompanhar.

Perguntas

O que o NOC costuma perguntar

Preciso de cliente SSH na máquina?

Não. A janela é um xterm no navegador, e o tráfego é WebSocket pelo endereço do sisGP: funciona atrás do nginx ou de outro proxy reverso, sem porta nova no firewall. O navegador só precisa permitir o pop-up do sisGP.

Que protocolos e equipamentos dá para abrir?

O app roda o comando cadastrado no servidor do sisGP, então vale o que estiver instalado lá: ssh, o cliente do banco, um shell local. Mikrotik e Huawei têm ainda o terminal pronto no Gestor de Servidores, por SSH com a chave do sistema. Telnet só se o cliente estiver instalado no servidor e cadastrado como comando; Winbox não faz parte.

A senha fica gravada?

A gravação guarda o que o terminal mostrou. Senha digitada sem eco, como a do ssh ou do sudo, não aparece e não é gravada. Nos concentradores do Gestor de Servidores ninguém digita senha: a entrada é pela chave do sistema.

Quem vê as sessões gravadas?

Só o administrador do sistema. Quem usa o terminal vê o selo Sessão gravada no alto da janela e o aviso na primeira linha.

É um replay, tipo asciinema?

Não: é a transcrição em texto, com a hora de cada linha, para procurar, ler e baixar. Programas de tela cheia ficam marcados com a entrada e a saída. Também não há acompanhamento ao vivo da sessão de outro usuário.

Veja o sisGP com o seu provedor em mente

A demonstração é feita por quem implanta o sistema. Conte como o seu provedor trabalha hoje e a gente mostra como fica.