URL: https://linuxfr.org/forums/programmation-shell/posts/pour-un-mouchard-r%C3%A9seau Title: Pour un mouchard réseau... Authors: tchoutchou Date: 2008年08月25日T16:44:34+02:00 Tags: Score: 2 Bonjour à tous. Je désire renifler mon réseau pour connaître les différents flux qui s'y promènent. J'ai trouvé un petit outil trés sympathique qui se superpose à tcpdump afin de me fournir les infos dont j'ai besoin. L'outil en question est nstreams. Voici la commande qui permet de l'utiliser : $> tcpdump -l -n | nstreams Il s'agit donc d'un pipe qui récupère les infos fournis par tcpdump dans la console. Des paramètres à la suite de nstreams permettent de spécifier 2 fichiers de configuration et bien d'autre chose. Ici se trouve la documentation en ligne de nstreams : [http://www.hsc.fr/ressources/outils/nstreams/presentation/](http://www.hsc.fr/ressources/outils/nstreams/presentation/) Première difficulté : l'activité de nstreams génère un affichage dans la console. Pour plus de confort lors de l'analyse, je préférerais récupérer un fichier. Aussi je redirige la sortie de nstreams dans un fichier ce qui me donne la commande suivante : $> tcpdump -l -n | nstreams -c -n >> /var/log/fichier-nstreams.log Je désire transformer cet excellent outil en daemon sur une plate-forme à base de CentOS v5.1. Je me suis inspiré des scripts de daemon déjà présent dans le répertoire ~/init.d afin d'obtenir quelque-chose de correct. Voici le résultat : ################################################# #!/bin/sh # description: Start/stop nStreams Daemon # chkconfig: - 99 10 # pidfile: /var/run/nstreamsd.pid # J'appelle la bibliothèque de fonction. # Peut-être est-ce inutile ??? . /etc/rc.d/init.d/functions RETVAL=0 # Initialisation du nom du fichier log en vue d'une journalisation ladate=`date +"%Y-%m-%d"` NAME_LOG_FILE="nstreamsd-$ladate" #Initialisation de la commande à lancer selon l'éxistance du fichier log SCREEN_APPS1="tcpdump -l -n | nstreams -c /usr/local/etc/nstreamsd-services -n /usr/local/etc/nstreamsd-networks>> /var/log/$NAME_LOG_FILE.log" SCREEN_APPS1="tcpdump -l -n | nstreams -c /usr/local/etc/nstreamsd-services -n /usr/local/etc/nstreamsd-networks> /var/log/$NAME_LOG_FILE.log" start() { # Vérification de l'existance du processus if [ -f /var/run/nstreamsd.pid ]; then # Le processus existe echo -n $"nStreams Deamon (pid $(pgrep -o nstreams)) is running." else # Le processus n'existe pas echo -n $"Starting nstreamsd :" # Verification de l'existance du fichier log if [ -f /var/log/$NAME_LOG_FILE.log ]; then # Le fichier log existe screen -S nstreamsd -m -d $SCREEN_APPS1>/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 # Récupération du code retour de la verification RETVAL=$? # Traitement du code retour if [ "$RETVAL" "0" ]; then # Suppression du processus kill $(pgrep -o nstreams) # Suppression des fichiers affairant au déroulement du processus rm -f /var/lock/subsys/nstreamsd rm -f /var/run/nstreamsd.pid echo_success else echo_failure fi else # Le fichier n'existe pas echo -n $"nStreams Deamon is stopped." fi echo } status() { # Recherche du fichier PID - c'est peut-être maladroit en cas de processus craché if [ -f /var/run/nstreamsd.pid ]; then echo "nStreams Daemon (pid $(pgrep -o nstreamsd)) is running" RETVAL=0 else echo "nStreams Daemon is stopped" RETVAL=1 fi } restart() { stop start } case "1ドル" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "Usage: 0ドル { start | stop | restart | status}" RETVAL=1 ;; esac exit $RETVAL ################################################# Après lancement du service pour test, aucuns fichier log n'est généré. De plus, le pipe ne se lance pas non plus. La commande screen s'exécute visiblement bien mais ne lance pas le pipe. J'ai cherché sur internet de la documentation concernant screen, la programmation script, etc... mais pas d'info plus précise. Je suis persuadé que ce n'est peut-être pas grand chose, une virgule, un point d'exclamation ou encore un "&" manquant. Mais pour l'instant, je sèche complètement. Je vous remercie par avance de l'attention que vous porterez à mon problème. @ Bientôt.

AltStyle によって変換されたページ (->オリジナル) /