Elimine el proceso tcpdump generado por ssh cuando ssh muera

Elimine el proceso tcpdump generado por ssh cuando ssh muera

Estamos realizando una captura remota tcpdumpen Unix. Cada vez que se elimina el ssh (cualquier interrupción, es decir, mediante Ctrl c o cualquier otro), necesitamos tcpdumpque se detenga/elimine el del otro extremo.

Probamos la mayoría de las opciones enumeradas para eliminar un proceso generado por SSH cuando se elimina ssh. Para tcpdump ssh con -t no es factible ya que antepone una línea al principio que no se espera.

Entonces, si alguien ya ha trabajado en este tipo de problemas, nos gustaría conocer alguna buena solución para lograrlo.

Estoy ejecutando tcpdumpremotamente como root así:

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

Gracias.

Respuesta1

Al ejecutarlo de forma remota, si finaliza el sshproceso, el otro extremo debería morir. A menos que dejes que este final se suspenda por algún motivo. Si ese es el caso, es posible que desees ejecutarlo como parte de un script más grande en segundo plano.

Tampoco debes usar root de forma remota, y ciertamente no necesitas root al realizar el ssh. Evite trabajar lo más root posible. Utilice un usuario remoto con sudocapacidades.

Probablemente tampoco necesite "w -", ya que tcpdumpde forma predeterminada escribe en la salida estándar.

También puede limitar tcpdumpla cantidad de paquetes capturados para controlar mejor la sesión. Tenga en cuenta que debe excluir el puerto 22 del sistema; de sshlo contrario, el sistema remoto capturará la sesión actual en una especie de forma recursiva de autoalimentación.

Entonces, para capturar 1000 paquetes, podrías hacer:

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

Otra alternativa menos limpia es ejecutar después de pkill:

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

Como última advertencia, /tmpla raíz donde reside, muchas veces se encuentra en sistemas de archivos limitados o en RAM; También es un riesgo para la seguridad crear nombres predecibles en un directorio /tmp, específicamente como usuario privilegiado. Es posible que desee utilizar otra ubicación para el archivo de captura.

También puede obtener mejores resultados como administrador de sistemas invirtiendo en una herramienta como ansible. Para automatizar o utilizar herramientas más complejas para la administración remota, consulteLinux equivalente a la comunicación remota "uno a muchos" de PowerShell

información relacionada