Bonjour Messieurs, Mesdames.
Je vous expose mon problème, je suis un débutant en programmation.
J'aimerai créer un script qui récupère grâce à TCPDUMP mon trafic DNS en .pcap et qui m'en extrait dans un .txt les différentes requêtes qui ont eu lieu avec leur nombre d’occurrence dans l'ordre décroissant tous les soirs.
exemple :
50 www.facebook.com
10 www.linuxfr.org
J'aimerai aussi si possible récupérer un peu de trafic (comme 250 000req), chaque heure 8h-9h-10h….22h, chaque jour 365/365j et en fin de journée avoir mon fichier .txt avec les informations souhaitées comme au dessus.
Si vous avez des questions n'hésitez pas,
Merci d'avance pour votre aide qui me sera précieuse.
Cordialement,
Bobmoutarde
# proxy + stats
Posté par NeoX . Évalué à 2.
regarde du coté des proxy, une fois installé de maniere transparente, il te sera possible de sortir des jolis graphes à partir de ses logs.
à une epoque j'avais installé un outil
ntop
sur la passerelle de l'entreprise ca sortait des pages webs toutes pretes qui disaient qui avait consommé quoi, dans quel sens, etcje vois aussi que mon parefeu me propose le plugin
darkstats
qui semble faire un truc similaire[^] # Re: proxy + stats
Posté par bobmoutarde . Évalué à 0.
D'accord mais en faite je souhaite juste avoir les noms des sites requêtés pour pouvoir faire une indexation plus précise pour un moteur de recherche.
Donc juste sortir un .txt avec dans la journée tous les sites qui ont été requêtés par mon serveur DNS avec leur nombre de fois où ils ont été demandés.
Logiquement un site comme facebook.com est plus demandé qu'un site comme toto.fr
Le problème c'est que j'ai pas forcément la main sur toute la config du linux, on est divisé en plusieurs équipes et on a une certaine zone d'action qui pour moi est le DNS.
Si j'installe un proxy ou autre, cela pourrai avoir un impact pour les autres services alors qu'un TCPDUMP est inoffensif (à part un peu de consommation CPU/mémoire).
C'est pour cela que j'étais parti sur le principe de tcpdump de temps en temps dans la journée une partie du trafic à différente heure pour avoir un bon échantillon des sites possibles visités par les clients et d'en extraire simplement les noms de domaines.
Je ne pense pas qu'un script soit très compliqué mais je n'ai pas vraiment de compétence dans ce domaine.
Je pensais planifier dans crontab tous les jours toutes les heures le script qui lance un TCPDUMP sur le port 53, qui enregistre les .pcap dans un dossier nommé le jour puis en fin de journée par exemple à 22h récupérer les 22 .pcap de 0h00 à 22h00 et d'extraire comme dit ci-dessus dans un .txt (requetesDNS_date.txt) mes réquêtes. Puis purger le répertoire de la journée pour enchainer et ça 365/365j.
[^] # Re: proxy + stats
Posté par NeoX . Évalué à 4.
et juste utiliser le log de ton logiciel de dns ? (bind, dnsmasq) ?
sachant que ton raisonnement est un peu faux dans le sens ou ton ordi va mettre en cache la requete dns, et tant que le navigateur est ouvert, ne devrait pas redemander de requete DNS
alors que le proxy te fera bien un decompte de ce qui est consommé en bande passante vers tel ou tel domaine.
[^] # Re: proxy + stats
Posté par bobmoutarde . Évalué à 1.
Bind ne me donne pas les noms des sites qui sont consultés c'est ça qui m'intéresse par contre le reste oui mais c'est déjà opérationnel.
Pour ce qui est du cache, ça ne change rien puisque j'analyse tout le trafic entrant, peu importe si les gens laissent leur navigateur ouvert ou non
Je ne cherche pas la bande passante ou quoi que ce soit.
Ce que je voudrais c'est la liste des sites qui sont consultés par les gens qui requête sur mon DNS (de façon anonyme bien sûr) pour ensuite pour indexer mon moteur de recherche.
Quand tu taperas "fac" dedans, la première suggestion sera facebook puisqu'il sera certainement dans le top des requêtes du DNS. Comme le système google en gros.
Pour ce qui est du proxy, j'ai déjà regardé mais comme j'ai dis plus haut. Je n'ai pas forcément tous les accès partout sur les machines. Je sais que je peux tcpdump et scripter du shell. Je pense qu'avec ça je devrais arriver à faire quelque chose.
As tu saisis ou je suis pas assez clair :s ?
En tout cas merci de t'intéresser à mon cas :)
[^] # Re: proxy + stats
Posté par NeoX . Évalué à 2. Dernière modification le 18 octobre 2013 à 16:43.
ca il doit y en avoir un trace dans le log de ton DNS,
sinon il faut juste le rendre plus verbeux pour qu'il enregistre plus de chose.
etre obligé de sortir tcpdump pour savoir ce qui est demandé à un DNS me semble certes tres geek mais un peu overkill
sauf peut-etre si ce ne sont pas les requetes DNS que tu veux avoir mais les sites consultés avec leur nom DNS
[^] # Re: proxy + stats
Posté par bobmoutarde . Évalué à 1.
Voilà c'est exactement ça ! Je crois que j'ai eu du mal à m'exprimer mais on y est. :D
J'ai fouillé un peu partout avant d'en arriver à ce point là parce que crois moi la programmation n'est pas mon fort… Mais rien n'y fait je pense que c'est une des seules solutions que de passer par le tcpdump pour récupérer le bouzin !
[^] # Re: proxy + stats
Posté par NeoX . Évalué à 2.
Pour quelqu'un qui n'y connait rien en programmation se lancer dans de la capture tcpdump, pour ensuite en reconstruire les requetes et en tirer des données sur des journées entieres, c'est quand meme contradictoire car tu es en train de refaire ce que font deja certains softs.
donc tu veux connaitre les sites les plus visités, et en faire des statistiques
c'est exactement ce que fait ntop ou darkstats.
je vais donc parler d'un logiciel que je connais :
tu installes ntop sur ta passerelle (ou ton proxy)
tu te loggues sur l'interface
et ca te dit quels sont les sites qui consomment le plus de bande passante, le nombre de demandes.
à l'inverse tu sais aussi que c'est le poste de M.Dupont qui a consommé le plus de bande passante ce mois ci.
# pom
Posté par Krunch (site web personnel) . Évalué à 2.
http://packet-o-matic.org/
http://wiki.packet-o-matic.org/pom-ng/getting_started
Sinon tu peux aussi t'amuser avec tshark|awk ou quoi.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: pom
Posté par bobmoutarde . Évalué à 1.
Merci mais pour récupérer le trafic DNS, j'utilise déjà tcpdump.
J'aimerais juste savoir comment je peux à partir des pcap récupérer sous forme de .txt les reqûetes avec leur nombre d'occurence comme je l'ai indiqué au début.
Merci :)
[^] # Re: pom
Posté par Benoît Sibaud (site web personnel) . Évalué à 4. Dernière modification le 14 novembre 2013 à 10:28.
Plus sobre mais moins explicite pour le quidam lambda :
[^] # Re: pom
Posté par bobmoutarde . Évalué à 1.
Merciii Benoit ! C'est exactement ce que je cherchais :)
Tu m'as été d'une grande aide. Encore merci !
[^] # Re: pom
Posté par NeoX . Évalué à 2.
attention, comme dit plus haut, avec cela tu ne remonte que les requetes DNS, pas le trafic vers les sites webs.
si je lances ma session à 9h, puis mon navigateur que je requete linuxfr.org
et que je laisses mon navigateur ou ma session ouverte, je ne suis pas sur que ma machine refasse une requete DNS plus tard dans la journée.
la faute aux divers cache DNS qui peuvent exister :
- dnsmasq en local sur ta machine
- cache du navigateur
[^] # Re: pom
Posté par bobmoutarde . Évalué à 0.
Oui je veux les requêtes DNS, sa commande me convient très bien. Merci à vous deux pour votre aide :)
# filtre
Posté par bobmoutarde . Évalué à 0. Dernière modification le 14 novembre 2013 à 10:23.
Bonjour,
Voilà Benoit m'avait donné cette commande, qui marche très bien
Mais j'aurais voulu savoir si on peut m'expliquer comment n'extraire que les requêtes A et AAAA de mon pcap. Je pense qu'il y a un paramètre dans cette commande mais je ne vois pas trop, j'ai essayé à "tâtons" mais rien de bien concluant..
Merci d'avance
Cordialement,
[^] # Re: filtre
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Dans ce cas là, la seconde commande que j'ai fournie est plus adaptée (mais il faut la comprendre et l'adapter à ta demande particulière). Actuellement elle demande à tshark de lire un fichier pcap en ne s'intéressant qu'à ce qui concerne le DNS sauf les réponses DNS (donc les requêtes DNS) et d'extraire certains champs de ces réponses, comme le type de requête (justement ce que tu veux) et ce qui a été demandé. Ensuite on trie et on compte les occurrences avec unicité.
(nb: j'ai modifié ton commentaire pour la coloration syntaxique)
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0.
Donc d'après ce que j'ai compris de ton message je dois trouver la valeur qui correspond aux requêtes A et AAAA et la remplacer à la place de "0x[0-9a-f ]".
Est ce que c'est ça ? Suis-je proche ? où complétement à côté ?
Mercii
[^] # Re: filtre
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0.
D'accord, je comprends clairement mieux maintenant.. Un grand merci à toi !
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0.
Par contre je n'arrive pas à renvoyer le résultat de mon analyse de .pcap dans un fichier txt, ce dernier est vide. Une idée du pourquoi ?
[^] # Re: filtre
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Quelle est la commande utilisée ?
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0. Dernière modification le 14 novembre 2013 à 14:26.
Voilà ce que j'utilise,
Mon txt est bien créé mais bel et bien vide malheureusement..
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0.
Hello,
Aucune idée sur le fait que cette commande ne m'enregistre rien dans mon txt
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 0.
Hello,
Je me permet de te relancer, je creuse je creuse mais je ne trouve pas pourquoi mon txt et vide. Je me dis que si je creuse encore je vais trouver du pétrole :/
Merci de ton aide
Cordialement,
[^] # Re: filtre
Posté par bobmoutarde . Évalué à 1.
Me revoilà :
Je pense avoir trouver
Ca me renvoit ce que je veux :)
Merci pour ton aide :D
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.