Monitorar uma sessão SSH recebida em tempo real


21

Existe algum software linux para monitorar uma sessão ssh recebida? Em um trabalho anterior, disseram-me que, se você precisasse de suporte da Red Hat, por exemplo, poderia colocá-los SSH em sua máquina e ver o que eles estavam fazendo.

Estou em uma situação semelhante em que quero entrar na máquina dos meus amigos para ajudá-lo, mas quero que ele seja capaz de observar o que estou fazendo para fins educacionais e garantir que não faça nada malicioso.

Alguma sugestão?

obrigado


havia o anúncio ObserveIT nesta página, e eles são uma solução agradável o suficiente para tentar se algo SaaSish queria.
kagali-san

Respostas:


15

O GNU Screen tem essa capacidade, você pode permitir que um usuário de shell específico opere apenas através da tela.

https://www.linux.com/learn/tutorials/442418-using-screen-for-remote-interaction


1
O único problema da tela é que eles precisarão iniciar a sessão de tela assim que fizerem login para ver a sessão. Além disso, como um técnico que forneceu suporte remoto e o fez, não é possível monitorar todas as janelas da tela de uma só vez, para que eles ainda possam executar comandos em outra tela e ocultá-la.
Cidadão Kepler

3

Eu acho que tela é o que você procura, mas se você não quer ficar sentado assistindo e quer "filmar" a sessão de um usuário, pode ver o sudo shell.

Se você configurar o usuário com isso como seu shell, poderá ter uma gravação completa de tudo o que ocorreu, e poderá "reproduzi-lo" novamente e assistir quando / se for necessário.

A única desvantagem possível disso é que os logs podem crescer muito, por exemplo, se eles executarem um comando como find /, você também terá tudo isso gravado - portanto, você provavelmente terá que escolher quais contas habilitá-lo, em vez de fazê-lo globalmente.

Quanto a permitir que os fornecedores acessem o acesso, isso provavelmente é perfeito, porque você tem uma trilha de auditoria completa de tudo o que fizeram, tudo (até o backspacing) é gravado e armazenado para reprodução.

log_outputé a sua opção de gravador de sudoers e sudoreplay(8)é o seu player.

De acordo com a sudoerspágina de manual:

log_output: Se definido, o sudo executará o comando em uma pseudo-tty e registrará toda a saída que é enviada para a tela, semelhante ao comando script (1). Se a saída padrão ou o erro padrão não estiver conectado ao tty do usuário, devido ao redirecionamento de E / S ou porque o comando faz parte de um pipeline, essa saída também será capturada e armazenada em arquivos de log separados.

No arquivo sudoers, você colocaria algo como isto:

User_Alias SHELL_ACCOUNTS = root,jack
Defaults: SHELL_ACCOUNTS log_output

Ou para log baseado em grupo

Defaults:%shellusers log_output

Consulte http://www.gratisoft.us/sudo/sudoers.man.html para obter detalhes.


Você poderia dar um pouco mais de informação? O que exatamente você quer dizer com "sudo shell"? Como eu definiria o shell de um usuário para isso? Onde os logs seriam salvos?
GJ.

Atualizei minha resposta com alguns detalhes para esclarecer.
Xerxes


2

Você pode usar o comando script. Crie uma linha em .login ou .profile do usuário cuja sessão ssh você deseja monitorar. Quando ele faz logon, um script / log é gerado de suas E / S, o que fornece comandos de execução e a saída desses comandos. Em tempo real, você pode apenas seguir o script e observar o que o usuário faz em tempo real.

Não foi possível colar um link para a sua referência, mas você pode simplesmente pesquisar no Google no comando "script" e obterá as referências.


1

Você pode usar o kibitz . Citando a partir da página de manual:

O kibitz permite que duas (ou mais) pessoas interajam com um shell (ou qualquer programa arbitrário).

No Fedora, ele está incluído no pacote expect .



0

tela ou tmux.

O compartilhamento tmux é um pouco mais fácil.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.