2017-05-10 1 views
-1

Je veux déboguer une autre machine sur mon réseau mais je dois passer par un ou plusieurs tunnels SSH pour y arriver.Comment capturer le trafic à distance sur plusieurs sauts SSH?

Actuellement:

# SSH into one machine 
    ssh -p 22 [email protected]_ip -i ~/.ssh/00_id_rsa 

    # From there, SSH into the target machine 
    # Note that this private key lives on this machine 
    ssh -p 1234 [email protected]_ip -i ~/.ssh/01_id_rsa 

    # Capture debug traffic on the target machine 
    tcpdump -n -i eth0 -vvv -s 0 -XX -w tcpdump.pcap 

Mais il est une douleur pour copier successivement que .pcap sur. Y at-il un moyen d'écrire le pcap directement sur ma machine locale, où j'ai installé wireshark?

Répondre

1

Vous devez utiliser ProxyCommand pour chaîner des hôtes ssh et pour diriger la sortie de tcpdump directement dans wireshark. Pour ce faire, vous devez créer le fichier de configuration ssh suivante:

Host some_ip 
    IdentityFile ~/.ssh/00_id_rsa 

Host another_ip 
    Port 1234 
    ProxyCommand ssh -o 'ForwardAgent yes' some_ip 'ssh-add ~/.ssh/01_id_rsa && nc %h %p' 

Je l'ai testé cela avec le chemin complet, alors soyez prudent avec ~

Pour voir la capture en direct, vous devez utiliser quelque chose comme

ssh another_ip "tcpdump -s0 -U -n -w - -i eth0 'not port 1234'" | wireshark -k -i - 

Si vous souhaitez juste vider pcap localy, vous pouvez rediriger stdout vers le nom de fichier de votre choix.

ssh another_ip "tcpdump -n -i eth0 -vvv -s 0 -XX -w -" > tcpdump.pcap 

Voir aussi: