2010-04-19 3 views
0

Je ne suis pas sûr si cela est possible au niveau de la couche d'application. Un programme peut-il être écrit pour lire et analyser des paquets (peut-être interfacer avec wireshark via son API lua) et bannir les adresses MAC avec un trafic réseau suspect? (Définition du trafic réseau suspect en tant que modèles d'injection de paquets similaires aux attaques connues)écrire un programme pour interdire un utilisateur (par adresse MAC) à partir d'un réseau

+0

Je crois que le routeur peut être programmé pour ignorer certaines adresses IP, mais c'est une question pour ServerFault. –

+0

Je voudrais le faire au niveau de l'application, ne pas modifier le firmware du routeur – Gail

+0

Si c'est votre propre application, il est assez facile d'ignorer les paquets que vous ne voulez pas. Mais je suppose que vous voulez faire quelque chose de plus sophistiqué que cela, comme filtrer tout le trafic arrivant sur votre poste de travail. Pour cela, vous avez besoin d'un pare-feu logiciel. –

Répondre

0

Vous auriez besoin d'une combinaison libnetfilter_queue & règles iptables. libnetfilter_queue, via une règle Iptable, vous donnerait tous les paquets (dans l'espace utilisateur) qui ont été mis en file d'attente par le filtre de paquets du noyau. Il attendrait alors que vous envoyiez un verdict pour le paquet.

Une fois que vous avez netfilter_queue installé et avez écrit une écoute application userland, exécutez une règle iptables comme

iptable -t mangle -A PREROUTING -i eth0 -j NFQUEUE --queue-num 0 

Un mot d'avertissement, cela vous donnera tous les paquets et le noyau alors attendre que vous donnez un verdict ou si aucune application land user n'est en cours d'exécution, il suffit de la supprimer.Vous pouvez définir la règle iptables à différents niveaux de granularité comme src IP, protocole, etc

Une fois que vous avez déterminé qu'une adresse MAC particulière doit être banni, exécutez une règle iptables comme (à partir de votre application utilisateur, vous pouvez utiliser system() pour exécuter cette règle iptables)

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP 

Un exemple de programme sur netfilter_queue est here pour vous aider à démarrer. J'espère que cela aide. Un autre avertissement: Lisez sur iptables ou demandez à serverfault. Il y a plusieurs tables impliquées (entrée, sortie, mangle, prerouting, forward, nat etc.) et je peux me tromper en suggérant une table mangle pour la règle iptable.

Questions connexes