Bonjour,
je fais appel à vous pour un problème sur iptables.
L'architecture de mon réseau est la suivante :
MODEM -> Routeur (iptables) -> Réseau (1 ou plusieurs PC)
Mon but est de réussir avec iptables à obtenir des courbes de trafic (conso...) par protocole et par utilisateur du réseau.
Par défaut, tout est filtré en sortie et redirigé vers une page web sur le routeur.
La personne peut alors cliquer sur un bouton de cette page web et accéder à Internet.(ici des règles de nat sont mises en place)
Tout fonctionne très bien à ce niveau là.
J'arrive également au niveau de la chaîne prerouting du NAT à obtenir pour chaque utilisateur du réseau les paquets envoyés pour établir les connexions aux serveurs et ce pour les protocoles à surveiller spécifiés (http, ftp, pop...).
Mon problème est que, si par exemple un téléchargement est lancé, je n'arrive à pas à obtenir la quantité d'octets téléchargée.
Je vois les paquets passer dans les chaînes INPUT et OUTPUT de la table FILTER mais impossible de les isoler dans une règle comprenant à la fois le port source et l'adresse de destination dans le réseau derrière le routeur.
En effet, dans INPUT je peux récupérer tout ce qui vient du --sport 80 par exemple mais le paquet est à ce niveau destiné à mon routeur (donc -d @IP derrière routeur ne fonctionne pas).
Dans la chaîne OUTPUT, je peux récupérer tout ce qui est à destination de l'@IP réseau local mais aucune correspondance avec le port d'origine ne fonctionne.
J'imagine que le NAT est à l'origine de ce problème (réalisé en MASQUERADE en sortie sur l'interface WAN dans la chaîne POSTROUTING de la table nat).
Y a-t-il donc un moyen de récupérer en même temps dans une même règle le trafic à destination d'une @IP précise du réseau local et originaire d'un port particulier?
Merci pour votre aide qui me serait très précieuse
Message édité par josephorfeuil le 06-09-2009 à 21:38:05