31 votes

Comment vider des requêtes HTTP entières avec Apache ?

Est-il possible de vider des requêtes HTTP entières par apache ? J'ai besoin de suivre tous les en-têtes HTTP des requêtes en cours. Comment faire ?

35voto

Kyle Brandt Points 81077

Je pense que ce que vous voulez à la place d'Apache pourrait être un analyseur de paquets Aussi connu sous le nom de renifleur de paquets. Deux des plus populaires sont probablement TCPDump et Wireshark qui sont tous deux gratuits et ont des versions pour les systèmes d'exploitation Windows et *nix. Ils vous montreront tout le trafic entrant sur une interface, et pas seulement ce que voit Apache. Mais vous pouvez utiliser des filtres pour restreindre à un port spécifique, tel que 80 pour http.

tcpdump :
La commande suivante exécutée depuis le serveur vous montrera tous les paquets destinés au port 80 :

sudo tcpdump -s 0 -X 'tcp dst port 80'

Le commutateur X majuscule transmet les données utiles en hexadécimal et ASCII. Le commutateur s avec 0 signifie obtenir le paquet entier. 'tcp dst port 80' signifie filtrer et afficher uniquement les paquets destinés au port 80 dans l'en-tête tcp.

Wireshark :
Pour une version plus conviviale, si vous disposez d'une interface graphique, pensez à wireshark (anciennement connu sous le nom d'ethereal).

13voto

pQd Points 29251

Peut-être le déversement de cookies ? sinon - regardez mod_dumpio .

8voto

Ali Mezgani Points 3770

Le reniflage basique de paquets est facile avec ngrep, un hybride de tcpdump et grep. Dans certains scénarios, si vous êtes désireux de voir comment les navigateurs web communiquent avec les serveurs web, et d'inspecter les en-têtes HTTP.
Dans cet exemple, exécutez un ngrep sur un serveur web comme ceci :

$ ngrep port 80

vous pouvez également choisir de filtrer la demande http à la demande "GET /" au port 80 par :

$ ngrep -q '^GET .* HTTP/1.[01]'

Côté client, il existe un outil utile appelé Tamper Data. Il s'agit d'une extension Firefox qui vous permet de visualiser, d'enregistrer et même de modifier les requêtes HTTP sortantes.
Vous pouvez trouver plus d'informations ici

7voto

David Pashley Points 22851

Plutôt que d'utiliser tcpdump ou wireshark, utilisez tcpflow. Il s'agit d'un remplacement direct de tcpdump, mais il crée un fichier pour chaque côté de chaque connexion, de sorte que vous n'avez pas à essayer de décoder le flux vous-même.

1voto

Wouter Verhelst Points 418

Apache intègre cette fonctionnalité ; il suffit d'augmenter la valeur de l'adresse IP de l'utilisateur. niveau du journal a trace7 o trace8 :

LogLevel trace8

Notez que cela va vider un lot de données. Vous avez été prévenus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X