Executando o tcpdump na máquina remota sem tty usando ssh

0

Estou tentando iniciar o tcpdump em várias máquinas remotas para executar alguma análise de rede com um script, mas não consigo executá-lo corretamente. O comando que eu gostaria de usar é:

ssh user@host "nohup sudo /usr/sbin/tcpdump udp -l -s 68 -n -v -i eth0 1>tcpdump.txt 2>tcpdump.err &"

Com a intenção de iniciar o tcpdump remotamente, canalize os resultados para o arquivo e retorne imediatamente. Não tendo um teclado instalado na máquina remota, tudo que eu obtenho é

sudo: no tty present and no askpass program specified

escrito em tcpdump.err. Eu também tentei:

  • escrevendo o comando em um script bash e executando o script remotamente
  • encerrando a parte sudo no comando 'script' (script -c 'nohup sudo ...')

mas sem sucesso. Há outras alternativas que eu possa tentar?

    
por Satto 14.01.2013 / 09:47

1 resposta

0

Você está usando sudo em seu comando, o que exigirá autenticação, a menos que seja configurado de outra forma no host remoto. Você será forçado a digitar uma senha para autenticar, a menos que você tente algo como

user NOPASSWD: /usr/sbin/tcpdump

no arquivo sudoers no host remoto.

Isso pode ter sérias implicações de segurança; se alguém invadisse o sistema como este usuário (ou simplesmente sentasse em um de seus consoles conectados), eles poderiam enviar todo o tráfego para / daquele host sem autenticar como root ou usuário.

Confira a seção tag_spec da página man do sudoers para mais detalhes.

    
por 17.06.2013 / 17:57

Tags