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