mata o processo tcpdump gerado por ssh quando o ssh morre

1

Estamos fazendo uma captura remota de tcpdump no unix, Sempre que o ssh é eliminado (qualquer interrupção, por exemplo, ctrl c ou qualquer outra), precisamos que o tcpdump na outra extremidade seja interrompido / interrompido.

Nós tentamos a maioria das opções listadas para matar um processo gerado pelo SSH quando o ssh é eliminado. Para tcpdump ssh com -t não é viável como seu prefixo de uma linha no começo que não é esperada.

Então, se alguém já trabalhou com esse tipo de problema, gostaríamos de saber algumas boas soluções para conseguir isso.

Estou executando o tcpdump remotamente como root assim:

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

Obrigado.

    
por sapna 13.04.2017 / 09:50

1 resposta

1

Rodando remotamente, se você matar o processo ssh , a outra extremidade deve morrer. A menos que você esteja deixando esse fim suspender 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 você certamente não precisará do root ao lado do ssh. Evite trabalhar como root quanto possível. Use um usuário remoto com recursos sudo .

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

Você também pode limitar tcpdump no número de pacotes capturados para controlar melhor a sessão. Por favor, note que você tem que excluir a porta 22 do sistema fazendo ssh , caso contrário o sistema remoto irá capturar a sessão atual de uma forma recursiva de auto-alimentação.

Então você pode capturar 1000 pacotes que você pode fazer:

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

Outra alternativa menos limpa é executar depois um pkill:

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

Como último aviso, /tmp ou 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 um administrador de sistema que investe em uma ferramenta como ansible . Para automatizar ou usar ferramentas mais complexas para administração remota, consulte Linux equivalente ao remoting "one-to-many" do PowerShell

    
por 13.04.2017 / 10:34