Mate o processo tcpdump gerado pelo ssh quando o ssh morre

Mate o processo tcpdump gerado pelo ssh quando o ssh morre

Estamos fazendo uma captura remota tcpdumpno unix. Sempre que o ssh é eliminado (qualquer interrupção, ou seja, por ctrl c ou qualquer outro), precisamos que tcpdumpo outro lado seja interrompido/eliminado.

Tentamos a maioria das opções listadas para eliminar um processo gerado pelo SSH quando o ssh é eliminado. Para tcpdump, ssh com -t não é viável, pois prefixa uma linha no início, o que não é esperado.

Portanto, se alguém já trabalhou nesse tipo de problema, gostaríamos de saber alguma boa solução para conseguir isso.

Estou executando tcpdumpremotamente como root assim:

ssh {remotehost} "tcpdump -i eth0 -s 0 -w - " > /tmp/local_file

Obrigado.

Responder1

Executando-o remotamente, se você encerrar o sshprocesso, a outra extremidade deverá morrer. A menos que você deixe esse fim suspenso por algum motivo. Se for esse o caso, você pode querer executá-lo como parte de um script maior em segundo plano.

Você também não deve usar root remotamente e certamente não precisa de root ao lado do ssh. Evite trabalhar o mais root possível. Use um usuário remoto com sudorecursos.

Você provavelmente também não precisa de "w -", pois tcpdumppor padrão grava no stdout.

Você também pode limitar tcpdumpo número de pacotes capturados para controlar melhor a sessão. Observe que você deve excluir a porta 22 do sistema, caso sshcontrário, o sistema remoto capturará a sessão atual de uma forma recursiva de autoalimentação.

Então, para capturar 1000 pacotes, você poderia fazer:

$ssh [email protected] "sudo tcpdump -i eth0 -s0 -c 1000 not port 22" > /tmp/local_file

Outra alternativa menos limpa é executar depois de um pkill:

$ssh ..."sudo tcpdump"
$ssh ..."pkill tcpdump"

Como último aviso, /tmpou a raiz onde reside, geralmente está em sistemas de arquivos limitados ou na RAM; também é um risco de segurança criar nomes previsíveis em um diretório /tmp, especificamente como um usuário privilegiado. Você pode querer usar outro local para o arquivo de captura.

Você também pode obter melhores resultados como administrador de sistema investindo em uma ferramenta como o ansible. Para automatizar ou usar ferramentas mais complexas para administração remota, consulteLinux equivalente à comunicação remota "um para muitos" do PowerShell

informação relacionada