Filtrer certains protocoles Debian
Résolu
Lordanonymous
Messages postés
198
Date d'inscription
Statut
Membre
Dernière intervention
-
Lordanonymous Messages postés 198 Date d'inscription Statut Membre Dernière intervention -
Lordanonymous Messages postés 198 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
(Je précise que je suis propriétaire de l'ensemble du réseau, machines comprises).
Mise en situation : Un utilisateur souhaite faire une partie de jeux en ligne, seulement voila, une personne sur le réseau local effectue des téléchargements via bittorent. C'est embêtant car ce protocole a tendance à saturer la bande passante et à provoquer un ping désastreux. Le but est de bloquer le seul protocole bittorent et ceux, d'une seul manière, faire passer l'ensemble des paquets du pollueur sur le PC du joueur et filtrer le protocole bittorent pour qu'il ne pollue pas le réseau.
Le réseau est composé de 2 PC linux (192.168.1.25 [le pollueur] et 192.168.1.26 [l'attaquant/joueur]) et 1 passerelle (192.168.1.15).
Je fait appel aux connaisseurs afin de m'éclairer sur la manière de réaliser cette opération. Pour le moment, je parvient à effectuer une attaque man in the middle via arp spoofing par cette commande :
arpspoof -i eth0 -t 192.168.1.25 192.168.1.15
(j'ai l'ensemble de son trafic réseau qui transite par ma machine).
À ce stade, deux choix s'offrent à moi :
-Forwarder les paquets (echo 1 > /proc/sys/net/ipv4/ip_forward). Ce qui revient à ne rien danger puisque le pollueur peut toujours télécharger (et c'est la que vous intervenez pour m'expliquer comment on bloque juste le protocole en question)
-Ne pas forwarder les paquets (echo 0 > /proc/sys/net/ipv4/ip_forward). Ce qui règle mon problème mais en pose un autre : le pollueur n'a plus du tout accès au réseau (ce que je ne veux pas).
Recherches personnelles : j'ai effectué des recherches avant de solliciter votre aide et je me suis dit qu'une règle iptables devrai répondre à mes attentes mais tout ce que j'ai tenté c'est soldé par un échec. Le parefeux UFW ne m'a pas plus satisfait également. Il y a probablement quelque chose de tout bête à faire mais je n'arrive pas à mettre la main dessus.
Voici les règles iptables qui me semblais les plus pertinentes (il en avais d'autres mais je ne les aient pas notées) :
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -j DROP
iptables -A OUTPUT -p udp -j DROP
Merci de votre aide. Cordialement.
(Je précise que je suis propriétaire de l'ensemble du réseau, machines comprises).
Mise en situation : Un utilisateur souhaite faire une partie de jeux en ligne, seulement voila, une personne sur le réseau local effectue des téléchargements via bittorent. C'est embêtant car ce protocole a tendance à saturer la bande passante et à provoquer un ping désastreux. Le but est de bloquer le seul protocole bittorent et ceux, d'une seul manière, faire passer l'ensemble des paquets du pollueur sur le PC du joueur et filtrer le protocole bittorent pour qu'il ne pollue pas le réseau.
Le réseau est composé de 2 PC linux (192.168.1.25 [le pollueur] et 192.168.1.26 [l'attaquant/joueur]) et 1 passerelle (192.168.1.15).
Je fait appel aux connaisseurs afin de m'éclairer sur la manière de réaliser cette opération. Pour le moment, je parvient à effectuer une attaque man in the middle via arp spoofing par cette commande :
arpspoof -i eth0 -t 192.168.1.25 192.168.1.15
(j'ai l'ensemble de son trafic réseau qui transite par ma machine).
À ce stade, deux choix s'offrent à moi :
-Forwarder les paquets (echo 1 > /proc/sys/net/ipv4/ip_forward). Ce qui revient à ne rien danger puisque le pollueur peut toujours télécharger (et c'est la que vous intervenez pour m'expliquer comment on bloque juste le protocole en question)
-Ne pas forwarder les paquets (echo 0 > /proc/sys/net/ipv4/ip_forward). Ce qui règle mon problème mais en pose un autre : le pollueur n'a plus du tout accès au réseau (ce que je ne veux pas).
Recherches personnelles : j'ai effectué des recherches avant de solliciter votre aide et je me suis dit qu'une règle iptables devrai répondre à mes attentes mais tout ce que j'ai tenté c'est soldé par un échec. Le parefeux UFW ne m'a pas plus satisfait également. Il y a probablement quelque chose de tout bête à faire mais je n'arrive pas à mettre la main dessus.
Voici les règles iptables qui me semblais les plus pertinentes (il en avais d'autres mais je ne les aient pas notées) :
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -j DROP
iptables -A OUTPUT -p udp -j DROP
Merci de votre aide. Cordialement.
A voir également:
- Filtrer certains protocoles Debian
- Pourquoi certains sites sont inaccessibles - Guide
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Certains sites ne s'ouvrent pas ✓ - Forum Microsoft Edge / Internet Explorer
- Certains sites internet ne s'ouvrent plus - Forum Mozilla Firefox
- Debian freeze - Forum Debian
2 réponses
C'est bon ! Après un temps passé à comprendre le fonctionnement d'iptables et à chercher une solution à mon problème, j'ai enfin le plaisir de passer se sujet en résolut (même si la réponse diverge un peut du sujet).
Je poste la solution pour ceux que ça intéresse (On en est à l'étape du forwarding à 1) :
1) Changer le comportement par défaut d'iptables sur la chaine FORWARD pour qu'il n'accepte aucun paquet (on ouvrira les ports au compte goute) :
iptables -P FORWARD DROP
2) Autoriser les ports voulus (séparés par des virgules et sans espace pour un enchainement de port et séparé par deux point (":") pour une plage de port :
iptables -A FORWARD -p tcp -m multiport --dport 80,443,20,21 -j ACCEPT
3) Autoriser le port udp DNS (sans ça, les ports tcp ne servent pas à grand chose) :
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
4) Autoriser l'ICMP (pour les ping) :
iptables -A FORWARD -p icmp -j ACCEPT
PS1 : Pour visualiser les règles iptables : iptables -L (ajouter l'option --line-numbers pour avoir les numéros de ligne)
PS2 : Pour supprimer une règle iptables : iptables -D FORWARD Numéro_Ligne_Règle. Pour vider toute les règles : iptables -F
Voila :) Merci.
Je poste la solution pour ceux que ça intéresse (On en est à l'étape du forwarding à 1) :
1) Changer le comportement par défaut d'iptables sur la chaine FORWARD pour qu'il n'accepte aucun paquet (on ouvrira les ports au compte goute) :
iptables -P FORWARD DROP
2) Autoriser les ports voulus (séparés par des virgules et sans espace pour un enchainement de port et séparé par deux point (":") pour une plage de port :
iptables -A FORWARD -p tcp -m multiport --dport 80,443,20,21 -j ACCEPT
3) Autoriser le port udp DNS (sans ça, les ports tcp ne servent pas à grand chose) :
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
4) Autoriser l'ICMP (pour les ping) :
iptables -A FORWARD -p icmp -j ACCEPT
PS1 : Pour visualiser les règles iptables : iptables -L (ajouter l'option --line-numbers pour avoir les numéros de ligne)
PS2 : Pour supprimer une règle iptables : iptables -D FORWARD Numéro_Ligne_Règle. Pour vider toute les règles : iptables -F
Voila :) Merci.
Hello,
Les deux premières manips sont les bonnes (arpspoof et activer le forward).
Cependant, avec ces règles iptables, ça ne marchera jamais. Pour comprendre, il faut analyser le fonctionnement d'iptables. Quand un paquet arrive, il passe par plusieurs "tables" mais le chemin diffère selon le couple source/destination (schéma simplifié) :
- source ou destination = ton PC : PREROUTING -> INPUT -> OUTPUT -> POSTROUTING
- source ou destination = un autre PC : PREROUTING -> FORWARD -> POSTROUTING
Dans ton cas, il ne faut pas non plus couper tous les flux UDP, c'est violent et brutal -> le pollueur va tout de suite le voir.
Enfin, iptables n'est pas la solution car tu pourras autoriser/bloquer un flux et éventuellement limiter le nombre d'établissement de nouvelles connexions autorisées en un temps donné.
Pour limiter le débit, regardes plutôt du côté de TC.
Bonne recherche (je ne peux pas t'en dire plus, je suis déjà limite au niveau charte) ...
Les deux premières manips sont les bonnes (arpspoof et activer le forward).
Cependant, avec ces règles iptables, ça ne marchera jamais. Pour comprendre, il faut analyser le fonctionnement d'iptables. Quand un paquet arrive, il passe par plusieurs "tables" mais le chemin diffère selon le couple source/destination (schéma simplifié) :
- source ou destination = ton PC : PREROUTING -> INPUT -> OUTPUT -> POSTROUTING
- source ou destination = un autre PC : PREROUTING -> FORWARD -> POSTROUTING
Dans ton cas, il ne faut pas non plus couper tous les flux UDP, c'est violent et brutal -> le pollueur va tout de suite le voir.
Enfin, iptables n'est pas la solution car tu pourras autoriser/bloquer un flux et éventuellement limiter le nombre d'établissement de nouvelles connexions autorisées en un temps donné.
Pour limiter le débit, regardes plutôt du côté de TC.
Bonne recherche (je ne peux pas t'en dire plus, je suis déjà limite au niveau charte) ...