Vous dire que je galère sur une application ici est doux euphémisme : J'en chie des rondins gros comme des cargos !
Pour trouver le problème[1] et sa résolution, j'en suis rendu à analyser les trames TCP/IP... Et comme une misère n'arrive jamais seule, il faut vérifier entre deux machines qui communique via un range de port[2]. Alors comme tout le monde sait comment fonctionne tcpdump sur linux, j'en profite pour tout de suite donner la solution sur la façon de dumper un range de ports : (tcp[0:2] >= 1500 and tcp[0:2] <= 2000).
Et là vous aller me dire Heu, j'ai rien compris, on utilise pas
. Bah, si. Mais, le port d'habitude pour ça ?portrange ne fonctionne pas sur tous les tcpdump. Sur des linux récents on aurait portrange 1500-2000, mais sur des vieux Linux ou AIX, ça passe pas.
Si vous ne connaissez pas les subtilités de TCP/IP, retenez juste que :
tcp[0:2] indique qu'il s'agit du port destination,tcp[2:2] indique qu'il s'agit du port source.Ainsi vi vous souhaitez analyser toutes les trames émises ou reçues sur le port 9001, sur le port 3000 et sur les ports 1500 à 2000, il ne vous reste plus qu'à taper la commande suivante :
tcpdump -nn -s 0 -i any '(tcp and port 9001 or port 3000 or (tcp[0:2] >= 1500 and tcp[0:2] <= 2000) or (tcp[2:2] >= 1500 and tcp[2:2] <= 2000))' -w /tmp/mon_fichier.dump
Ci dessous la même mais sur plusieurs lignes :
tcpdump -nn -s 0 -i any \ '(tcp and port 9001 or port 3000 \ or (tcp[0:2] >= 1500 and tcp[0:2] <= 2000) \ or (tcp[2:2] >= 1500 and tcp[2:2] <= 2000))' -w /tmp/mon_fichier.dump
Si vous avez besion de savoir à quoi servent les autres paramètres : man tcpdump
Juste pensez au -s 0 qui capture l'intégralité des paquets et pas justes les 96 premiers octets.
| |||
© 2003-2008, Flyounet.
Nombre de billets : 416
Nombre de commentaires : 1268
Ce site respecte les standards :