logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 13-05-2018 16:05:26

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Précision si nécessaire, je suis connecté au routeur par le wifi privé wlan0 (testtest) et il est connecté à la box par le wifi publique wlan1 (Livebox-XXXX). Eth1 (la clé 4G) n'est pas connecté.

Règles actuelles de iptables sur le routeur

# Generated by iptables-save v1.4.21 on Sun May 13 14:02:44 2018
*nat
:PREROUTING ACCEPT [2070:403652]
:INPUT ACCEPT [91:10113]
:OUTPUT ACCEPT [224:19859]
:POSTROUTING ACCEPT [10:2558]
-A POSTROUTING -o wlan1 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Sun May 13 14:02:44 2018
# Generated by iptables-save v1.4.21 on Sun May 13 14:02:44 2018
*filter
:INPUT DROP [964:140196]
:FORWARD DROP [0:0]
:OUTPUT DROP [117:8245]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -i wlan0 -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o wlan1 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i wlan0 -o eth1 -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o wlan0 -j ACCEPT
-A fail2ban-ssh -j RETURN
COMMIT
# Completed on Sun May 13 14:02:44 2018
 

Dernière modification par Henry33 (13-05-2018 16:09:35)

Hors ligne

#27 13-05-2018 16:17:44

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Je déconfirme... Désolé, je fais les choses trop rapidement sans méthodologie...

apt-get n'est plus fonctionnel... Je le vois travailler mais il doit le faire en local...


pi@raspberrypi:~ $ sudo apt-get update
Err http://mirrordirector.raspbian.org jessie InRelease

Err http://archive.raspberrypi.org jessie InRelease

Err http://mirrordirector.raspbian.org jessie Release.gpg
  Could not resolve 'mirrordirector.raspbian.org'
Err http://archive.raspberrypi.org jessie Release.gpg
  Could not resolve 'archive.raspberrypi.org'
Reading package lists... Done
W: Failed to fetch http://mirrordirector.raspbian.org/raspbian/dists/jessie/InRelease

W: Failed to fetch http://archive.raspberrypi.org/debian/dists/jessie/InRelease

W: Failed to fetch http://mirrordirector.raspbian.org/raspbian/dists/jessie/Release.gpg  Could not resolve 'mirrordirector.raspbian.org'

W: Failed to fetch http://archive.raspberrypi.org/debian/dists/jessie/Release.gpg  Could not resolve 'archive.raspberrypi.org'

W: Some index files failed to download. They have been ignored, or old ones used instead.
 




pi@raspberrypi:~ $ ping www.google.fr
ping: unknown host www.google.fr
 

Hors ligne

#28 13-05-2018 16:18:40

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Désolé de te faire perdre du temps...

Hors ligne

#29 13-05-2018 16:57:02

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Et le Windows, il a encore de la résolution DNS (avec de nouveaux sites pas en cache) ?

Il vaut mieux montrer que raconter.

Hors ligne

#30 13-05-2018 17:15:04

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Je navigue avec normalement sur Internet, c'est comme si j'étais connecté à la box (mais je suis connecté au routeur par wlan0 - testtest). J'ai ouvert des vieux favoris pour être sûr et tout passe.

Hors ligne

#31 13-05-2018 18:14:04

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Comme si dnsmasq n'était pas affecté par les règles iptables. Je sais que c'est le cas d'autre clients DHCP comme dhclient car c'est un peu nécessaire au fonctionnement du protocole DHCP, mais je suis surpris que la partie DNS de dnsmasq se comporte de la même façon. Je n'y crois pas beaucoup. Il doit y avoir quelque chose qui m'échappe encore...

Il vaut mieux montrer que raconter.

Hors ligne

#32 13-05-2018 18:21:01

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Je dois aller m'occuper d'autre chose (IRL) mais j'ai l'intention de refaire le routeur en repartant du début (sur une nouvelle carte sd tout en conservant celle-là, bien sûr) et préparer le tutoriel pas-à-pas que je souhaite faire. Je vais donc tout reprendre à zéro et on verra ce que ça donne. Tu t'en es aperçu, je ne peux pas garantir toute les opérations que j'ai réalisé sur la configuration actuelle donc ce "contournant de DNS" vient peut-être d'une de mes manipulations.

Quand j'en serai revenu au même point, je te dirai ce qu'il est en.

Merci pour ton aide et surtout pour ta patience wink

Hors ligne

#33 13-05-2018 18:26:24

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Test :
Faire des requêtes DNS depuis le routeur.

dig debian-facile.org


Ça devrait échouer, les règles iptables interdisant à un processus local d'interroger dnsmasq.

Ajouter les deux règles suivantes pour autoriser l'accès des processus locaux à dnsmasq (et d'autre choses peut-être passées inaperçues) :

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


Refaire des requêtes DNS depuis le routeur avec des noms jamais utilisés (pas dans le cache de dnsmasq).
Si ça répond, alors dnsmasq se joue des règles iptables.
Si ça part en time-out ou SERVFAIL, alors les règles iptables bloquent les flux sortants de dnsmasq mais alors le fait que la résolution DNS marche depuis Windows reste inexplicable.


Il vaut mieux montrer que raconter.

Hors ligne

#34 15-05-2018 17:39:35

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Salut,

J'ai refait le routeur tout en préparant le tutoriel, j'en suis maintenant au peaufinage de mes réglages. J'ai pas encore tout essayé mais ça fonctionne bien pour l'utilisation que j'en ai fait jusqu'à maintenant.

Merci encore pour ton aide.


Pour ce qui est de la navigation depuis le PC: en refaisant le routeur, j'ai pû à nouveau naviguer depuis le poste Windows sans que dnsmasq ne fasse barrage. Je n'ai pas vraiment de réponse mais d'après les docs que j'ai consulté, il peut arriver que dnsmasq ne bloque pas les requêtes de DNS quand il vient juste d'être installé et qu'il n'a pas de serveur DNS configuré, même après les premiers redémarrages. Ca a un rapport avec resolv.conf ou/et resolvconf qui efface (vide...) le fichier resolv.conf dont se sert dnsmasq. Il en résulte une sorte de confusion qui fait qu'il laisse passer les requêtes DNS. Quand j'ai suivi les docs et que je suis allé mettre mon nez par-là, au redémarrage suivant je n'ai plus pû naviguer depuis le PC.

J'ai fini d'écrire le tutoriel mais il me manque encore les deux clés wifi "définitives" et rendre automatique les paramètres de la clé 4G alors je vais être amené à refaire le système entièrement (pour faire le tutoriel pas-à-pas). J'essaierai de repérer le moment où la navigation est possible malgré dnsmasq.

Hors ligne

#35 15-05-2018 17:58:40

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

D'ailleurs, voici mes règles iptables actuelles

# Generated by iptables-save v1.4.21 on Tue May 15 16:58:16 2018
*nat
:PREROUTING ACCEPT [4126:1104072]
:INPUT ACCEPT [502:68361]
:OUTPUT ACCEPT [280:24177]
:POSTROUTING ACCEPT [37:5447]
-A POSTROUTING -o wlan1 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Tue May 15 16:58:16 2018
# Generated by iptables-save v1.4.21 on Tue May 15 16:58:16 2018
*filter
:INPUT ACCEPT [3080:364940]
:FORWARD DROP [50:4715]
:OUTPUT ACCEPT [593:46620]
-A INPUT -i lo -j ACCEPT
-A INPUT -i wlan1 -p icmp -j DROP
-A INPUT -i wlan1 -p tcp -m tcp --sport 22 -j DROP
-A INPUT -i eth1 -p icmp -j DROP
-A INPUT -i eth1 -p tcp -m tcp --sport 22 -j DROP
-A INPUT -i wlan0 -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o wlan1 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i wlan0 -o eth1 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o wlan1 -p icmp -j DROP
-A OUTPUT -o wlan1 -p tcp -m tcp --dport 22 -j DROP
-A OUTPUT -o eth1 -p icmp -j DROP
-A OUTPUT -o eth1 -p tcp -m tcp --dport 22 -j DROP
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o wlan0 -j ACCEPT
COMMIT
# Completed on Tue May 15 16:58:16 2018
 

Hors ligne

#36 16-05-2018 10:49:10

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Henry33 a écrit :

il peut arriver que dnsmasq ne bloque pas les requêtes de DNS


Je n'ai jamais prétendu que dnsmasq pouvait bloquer des requêtes DNS, mais que les règles iptables en place devraient bloquer les requêtes DNS relayées vers l'extérieur par dnsmasq.

Henry33 a écrit :

voici mes règles iptables actuelles


- Avec les politiques par défaut d'INPUT et OUTPUT à ACCEPT, les règles ACCEPT dans ces chaînes sont inutiles.
- Quel est l'objectif des règles DROP dans ces chaînes ?


Il vaut mieux montrer que raconter.

Hors ligne

#37 16-05-2018 13:34:32

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

raleur a écrit :


Je n'ai jamais prétendu que dnsmasq pouvait bloquer des requêtes DNS, mais que les règles iptables en place devraient bloquer les requêtes DNS relayées vers l'extérieur par dnsmasq.



Ha mais oui, mais je mélange les fonctions des deux... Je pensais (en dehors du sujet) que dnsmasq pouvait bloquer les requêtes si il n'était pas configuré comme il faut... Donc c'est normal qu'il les laisse passer (ça commence à rentrer, sisi...). Pour le non filtrage d'iptables, j'en ai aucune idée...


- Avec les politiques par défaut d'INPUT et OUTPUT à ACCEPT, les règles ACCEPT dans ces chaînes sont inutiles.

Oui, c'est sûr, ce sont les règles temporaire d'un apprenti qui apprend...
Je suis en train d'apprendre et de faire les règles de filtrage d'iptables en même temps, donc je bascule ces règles de ACCEPT à DROP et de DROP à ACCEPT, sinon j'ai plus de navigation Web... Je configure les règles de filtrage en ACCEPT car les règles par défaut seront DROP. En clair, je veux tout filtrer en DROP et n'ouvrir que ce dont j'ai besoin depuis le routeur.

J'ai (un peu) fait évoluer les règles depuis. Maintenant, je peux pinguer les adresses extérieures (IP et DNS) depuis le routeur et il ne répond pas au ping venant de l'extérieur. Mais j'étais en train de chercher la liste des protocoles contenu dans le Raspberry/Linux. Dans une doc, j'ai vu passer cette liste, c'est celle qui permet de faire le lien entre "-p icmp" et les ports correspondants. Je voudrai configurer iptables avec les noms des protocoles pour pouvoir changer les numéros de ports indépendamment sans avoir à modifier les règles avec les numéros correspondant... Mais je ne l'ai pas encore retrouvé...


- Quel est l'objectif des règles DROP dans ces chaînes ?

Rejeter sans message pour l'expéditeur les requêtes icmp et SSH. C'était pour tester (et comprendre) le fonctionnement des règles, mais je vais faire l'inverse, tout DROPer et n'ACCEPTer que ce dont j'ai besoin.

Je n'ai beaucoup avancé sur les règles car j'ai passé la matinée pour (en autres) trouver comment attribuer les noms des interface réseau par adresse MAC (et donc mettre à jour le brouillon de mon tutoriel) et à régler un problème avec un fournisseur. En plus j'ai encore une chose cette après midi dans le monde réel, donc je ne vais pas pouvoir me remettre dessus tout de suite...

Vu qu'en plus il me faut à chaque fois un moment pour me rappeler ce que je veux faire, comment le faire et, du coup, quoi faire, j'avance pas vite...

Hors ligne

#38 16-05-2018 13:52:10

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Henry33 a écrit :

Mais j'étais en train de chercher la liste des protocoles contenu dans le Raspberry/Linux


Qu'entends-tu par "contenu dans le Raspberry/Linux" ?

Henry33 a écrit :

Dans une doc, j'ai vu passer cette liste, c'est celle qui permet de faire le lien entre "-p icmp" et les ports correspondants.


Quelle doc ? Quel lien ? Les ports n'existent pas dans le protocole ICMP.

Henry33 a écrit :

Je voudrai configurer iptables avec les noms des protocoles pour pouvoir changer les numéros de ports indépendamment sans avoir à modifier les règles avec les numéros correspondant


Je n'ai rien compris. Un exemple concret peut-être ?

Henry33 a écrit :

Rejeter sans message pour l'expéditeur les requêtes icmp et SSH


Pour info, cela bloque les demandes de connexion SSH sortantes émises par le routeur. Pas les demandes de connexion entrantes reçues par le routeur.


Il vaut mieux montrer que raconter.

Hors ligne

#39 16-05-2018 20:02:22

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

- Qu'entends-tu par "contenu dans le Raspberry/Linux" ?

Le fichier qui contient les correspondances entre le nom des protocoles et les numéros de ports.

- Quelle doc ? Quel lien ?

Si je savais dans laquelle j'ai lu cette ligne, ça serait beaucoup plus facile pour moi... Je viens de rentrer donc je vais reprendre ma recherche. Il faut que je ressorte toutes les pages que j'ai mis en favoris et toutes celles que j'ai enregistré en espérant retrouver les deux lignes de textes qui en parlent... T'aurais pas une idée de quel fichier je parle ?

- Les ports n'existent pas dans le protocole ICMP.

Ha... ça passe par où alors, pour savoir ?

- Je n'ai rien compris. Un exemple concret peut-être ?

Non, je n'en ai pas encore, je vais me remettre dessus pendant les heures qui viennent. C'est lié avec le fichier dont je parle au dessus. Mais en même temps, tu l'auras compris, il ne faut pas se baser sur ma compréhension actuelle. Je voudrai faire règle du style "-A OUTPUT -d wlan1 -p http -j ACCEPT" plutôt que de faire "-A OUTPUT -d wlan1 -p tcp -m tcp --dport xx -j ACCEPT" (<- cette règle n'est certainement pas exacte, c'est pour la forme c'est tout)

- Pour info, cela bloque les demandes de connexion SSH sortantes émises par le routeur. Pas les demandes de connexion entrantes reçues par le routeur.

Et ça ? C'est sensé les bloquer ?

-A OUTPUT -o wlan1 -p tcp -m tcp --dport 22 -j DROP

Mais je me mets à comprendre l'utilité de NEW, RELATED et de ESTABLISHED, ça va m'aider je pense...
De ce que j'ai déjà compris, je peux filtrer NEW en DROP et accepter RELATED et de ESTABLISHED. Je sais pas encore ou ça va me mener, mais j'y vais.

Hors ligne

#40 17-05-2018 13:59:24

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Henry33 a écrit :

Le fichier qui contient les correspondances entre le nom des protocoles et les numéros de ports.


Tu veux parler du fichier /etc/services ?

Henry33 a écrit :

Les ports n'existent pas dans le protocole ICMP.


Ha... ça passe par où alors, pour savoir ?


Désolé, je ne comprends pas la question. Les messages ICMP sont des paquets IP et sont routés comme les paquets des autres protocoles basés sur IP (TCP, UDP...). Les ports n'interviennent pas dans le routage des paquets IP.

Henry33 a écrit :

Je voudrai faire règle du style

-A OUTPUT -d wlan1 -p http -j ACCEPT


plutôt que de faire

-A OUTPUT -d wlan1 -p tcp -m tcp --dport xx -j ACCEPT


(<- cette règle n'est certainement pas exacte, c'est pour la forme c'est tout)


En effet elle ne l'est pas car le protocole HTTP n'est pas transporté directement sur IP (comme TCP, UDP, ICMP...) mais sur un protocole de transport (TCP) lui-même transporté sur IP. On ne peut donc pas le spécifier dans l'option -p. Ce qu'on peut faire en revanche, c'est remplacer le numéro du port par le nom du service correspondant dans le fichier /etc/services :

-A OUTPUT -d wlan1 -p tcp -m tcp --dport http -j ACCEPT


Si tu envisages de modifier des numéros de ports dans ce fichier, je te le déconseille car ce fichier est utilisé par d'autres programmes que iptables pour faire la correspondance entre les noms de services/protocoles et les numéros de ports. Par contre tu peux y ajouter tes propres ports et services.

Henry33 a écrit :

Et ça ? C'est sensé les bloquer ?


Seulement les sortantes, pas les entrantes.


Il vaut mieux montrer que raconter.

Hors ligne

#41 17-05-2018 18:11:02

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Salut,

- Tu veux parler du fichier /etc/services ?

Oui, c'est celui là

-Désolé, je ne comprends pas la question.

Tu y as malgré tout répondu wink

- ( -A OUTPUT -d wlan1 -p tcp -m tcp --dport http -j ACCEPT )

Merci !

- Si tu envisages de modifier des numéros de ports dans ce fichier...

Merci du conseil, j'aurai tout de même suivi les divers doc/tutoriaux disponible sur Internet avant de le faire.

---

Après plusieurs heures à essayer différentes combinaisons et échecs, j'ai enfin compris que --sport n'est pas seulement pour INPUT, que --dport n'est pas que pour OUTPUT, que la majorité des tutoriaux/docs que je suis concernent le filtrage sur serveur et que ce n'est pas la même chose qu'un filtrage "pare-feu" sur un routeur... Bon, maintenant que j'ai compris ça, ça devrait mieux filtrer...

Je continue à faire ma sauce.

Merci pour ton aide !

Hors ligne

#42 19-05-2018 06:18:38

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Salut,

J'ai passé la journée d'hier a suivre ce tuto et j'ai rencontré pas mal de difficultés car finalement, ce qui marche chez moi, c'est plutôt l'inverse... C'est dit sans prétention, mais ça à l'air d'un brouillon aurait besoin d'une relecture.

Exemple: dans l'encadré avec toutes les règles de filtrage, en milieu de page et plus bas, il y a ces deux règles :

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT



suivit entre autres de :

iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
 
iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
 
iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
 
iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
 
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT
 
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state ESTABLISHED -j ACCEPT
 
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT

iptables -A INPUT -i eth1  -p tcp -m multiport --sports 80,443,8000 -j ACCEPT



Alors que ce qui fonctionne chez moi (eth1=eth0, eth0=wlan1)


-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 67:68 -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT
-A INPUT -i wlan1 -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -i wlan1 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -i wlan1 -p udp -m udp --sport 67:68 -j ACCEPT
-A INPUT -i wlan1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT
...
-A OUTPUT -o eth0 -p tcp -m tcp --sport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 67:68 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT
-A OUTPUT -o wlan1 -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -o wlan1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o wlan1 -p udp -m udp --dport 67:68 -j ACCEPT
-A OUTPUT -o wlan1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT
...
 



A force d'essai, j'ai fini par enlever les NEW, RELATED etc. car j'ai eu du mal à faire fonctionner les filtres indiqués dans ce tutoriel. Ca vient de moi ?

PS: Je m'y recolle, a plus tard.

Hors ligne

#43 19-05-2018 07:12:59

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Henry33 a écrit :

J'ai passé la journée d'hier a suivre ce tuto


Quel tutoriel ?
Si on commence par tout accepter en entrée et en sortie sur une interface, ce n'est pas la peine d'ajouter des règles ensuite pour cette même interface.

Henry33 a écrit :

A force d'essai, j'ai fini par enlever les NEW, RELATED etc. car j'ai eu du mal à faire fonctionner les filtres indiqués dans ce tutoriel. Ca vient de moi ?


Oui. S'il faut enlever quelque chose, c'est plutôt le --sport. Il n'a pas vraiment d'utilité quand on utilise les états de suivi de connexion, et quand on ne les utilise pas il peut constituer une brèche. Ce n'est pas pour rien qu'on a développé le suivi de connexion.

Si je prends en exemple tes deux règles suivantes :

-A INPUT -i wlan1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT
-A OUTPUT -o wlan1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT


Pour toi, elles autorisent les connexions sortantes vers un serveur HTTP ou HTTPS. La règle OUTPUT accepte les paquets sortants vers le serveur, et la règle INPUT accepte les paquets entrants provenant du serveur.
Mais pour un attaquant, elles permettent de se connecter à n'importe quel port TCP de ta machine du moment qu'on utilise un de ces ports sources. La raison est que tes règles ne vérifient pas l'état des paquets ; or elles devraient n'accepter un paquet entrant que s'il appartient à une connexion établie. Et si c'est une connexion établie, c'est que le paquet initial avec son port de destination a été accepté, donc il est inutile de contrôler le port source. C'est pourquoi il est courant de n'avoir qu'une seule règle commune pour accepter tous les paquets des connexions établies.

Note : pour éviter de multiplier les règles pour chaque interface, tu peux définir des chaînes utilisateur, par exemple :

-N output_pub
-A OUTPUT -i eth0 -j output_pub
-A OUTPUT -i wlan1 -j output_pub
-A output_pub -p tcp -m multiport --dports 80,443,8000 -j ACCEPT
-A output_pub -p udp --dport 53 -j ACCEPT


Il vaut mieux montrer que raconter.

Hors ligne

#44 19-05-2018 08:10:16

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

Arf... J'ai modifié mon texte sans remettre l'adresse... Le voici :

https://debian-facile.org/doc:reseau:ip … passerelle

J'ai repris mon fichier de règles pour inclure les états des paquets mais je me bats avec iptables depuis une heure à cause d'une erreur à la ligne COMMIT... J'ai fait une recherche sur Internet et il n'y a pas d'espace en trop dans cette ligne. J'ai fini par faire un Ctrl+K et un Ctrl+U de la ligne du dessous et par recopier (Ctrl+Shift+C / V) le code depuis un ficher valable, je problème est toujours là, iptables refuse de valider mon fichier. L'erreur vient donc du code... Je continue à chercher mais si tu as une idée, je suis preneur...

Je tiens compte de ta réponse. Je me mets à l'inclure dans la table de filtrage, ça résoudra peut-être le problème avec COMMIT.

Voici le contenu de mon fichier /etc/iptables.rules.encours que iptables ne valide pas:

- les $ le sont pas dans le fichier, ils viennent du format de la console
- les états NEW etc sont à l'état de brouillon et je ne peux pas les tester à cause de la non validation du fichier...


# Generated by iptables-save v1.4.21 on Thu May 17 18:14:32 2018
*filter
:INPUT DROP [19:1400]
:FORWARD DROP [0:0]
:OUTPUT DROP [18:1368]
# --- INPUT loopback
-A INPUT -i lo -j ACCEPT


# ---INPUT eth0 ---
#-A INPUT -i eth0 -j ACCEPT

# - ICMP -
-A INPUT -i eth0 -p icmp -m state --state ESTABLISHED -j ACCEPT

# - DNS - OK
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 67:68 -m state --state ESTABLISHED -j AC$

# - WEB -
-A INPUT -i eth0  -p tcp -m multiport --sports 80,443,8000 -m state --state EST$

# - SSH - OK
-A INPUT -i eth0 -p tcp --dport ssh -m state --state ESTABLISHED -j ACCEPT

# --- INPUT wlan1 ---

# - ICMP -
-A INPUT -i wlan1 -p icmp -m state --state ESTABLISHED -j ACCEPT

# - DNS -
-A INPUT -i wlan1 -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCE$
-A INPUT -i wlan1 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCE$
-A INPUT -i wlan1 -p udp -m udp --sport 67:68 -m state --state ESTABLISHED -j A$

# - WEB -
-A INPUT -i wlan1 -p tcp -m multiport --sports 80,443,8000 -m state --state EST$

# --- FORWARD eth0 vers wlan1 ---
-A FORWARD -i eth0 -o wlan1 -s 192.168.200.0/24 -d 0.0.0.0/0 -p tcp -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -s 0.0.0.0/0 -d 192.168.200.0/24 -p tcp -j ACCEPT

# - ICMP -
-A FORWARD -i eth0 -o wlan1 -s 192.168.200.0/24 -d 0.0.0.0/0 -p icmp -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -s 0.0.0.0/0 -d 192.168.200.0/24 -p icmp -j ACCEPT

# - DNS - ??
-A FORWARD -i eth0 -o wlan1 -p tcp -m tcp --sport 53 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -p tcp -m udp --sport 53 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m tcp --sport 53 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m udp --sport 53 -j ACCEPT

# - WEB -
-A FORWARD -i eth0 -o wlan1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT


# --- OUTPUT loopback ---
-A OUTPUT -o lo -j ACCEPT

# --- OUTPUT eth0 ---
#-A OUTPUT -o eth0 -j ACCEPT

# - ICMP -
-A OUTPUT -o eth0 -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

# - DNS -
-A OUTPUT -o eth0 -p tcp -m tcp --sport 53 -m state --state NEW,ESTABLISHED -j $
-A OUTPUT -o eth0 -p udp -m udp --sport 53 -m state --state NEW,ESTABLISHED -j $
-A OUTPUT -o eth0 -p udp -m udp --sport 67:68 -m state --state NEW,ESTABLISHED $

# - WEB -
-A OUTPUT -o eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state NEW$

# - SSH -
-A OUTPUT -o eth0 -p tcp --sport ssh -m state --state NEW,ESTABLISHED -j ACCEPT

# --- OUTPUT wlan 1 ---
# - ICMP -
-A OUTPUT -o wlan1 -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

# - DNS -
-A OUTPUT -o wlan1 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j$
-A OUTPUT -o wlan1 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j$
-A OUTPUT -o wlan1 -p udp -m udp --dport 67:68 -m state --state NEW,ESTABLISHED$

# - WEB -
-A OUTPUT -o wlan1 -p tcp -m multiport --dports 80,443,8000 -m state --state NE$
COMMIT
# Completed on Thu May 17 18:14:32 2018
# Generated by iptables-save v1.4.21 on Thu May 17 18:14:32 2018
*nat
:PREROUTING ACCEPT [54:7572]
:INPUT ACCEPT [3:729]
:OUTPUT ACCEPT [41:3543]
:POSTROUTING ACCEPT [26:2283]
-A POSTROUTING -o wlan1 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Thu May 17 18:14:32 2018
 



Merci du coup de main.


EDIT :

raleur a écrit :

-N output_pub
-A OUTPUT -i eth0 -j output_pub
-A OUTPUT -i wlan1 -j output_pub
-A output_pub -p tcp -m multiport --dports 80,443,8000 -j ACCEPT
-A output_pub -p udp --dport 53 -j ACCEPT



C'est bien OUTPUT -i ? pas -o ?

Dernière modification par Henry33 (19-05-2018 08:16:48)

Hors ligne

#45 19-05-2018 08:54:54

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Erreur de ma part. Avec OUTPUT c'est -o évidemment.

Les $ sont affichés par l'éditeur nano quand une ligne est plus longue que la largeur du terminal. Il ne faut pas faire le copier coller depuis nano mais depuis un éditeur graphique ou directement depuis le terminal après affichage du fichier par cat (si pas trop long).

Il vaut mieux montrer que raconter.

Hors ligne

#46 19-05-2018 09:30:08

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

raleur a écrit :

Avec OUTPUT c'est -o évidemment.



Pas de soucis, ça montre que j'ai au moins compris quelque chose...


Copier / coller corrigé


# Generated by iptables-save v1.4.21 on Thu May 17 18:14:32 2018
*filter
:INPUT DROP [19:1400]
:FORWARD DROP [0:0]
:OUTPUT DROP [18:1368]
# --- INPUT loopback
-A INPUT -i lo -j ACCEPT


# ---INPUT eth0 ---
#-A INPUT -i eth0 -j ACCEPT

# - ICMP -
-A INPUT -i eth0 -p icmp -m state --state ESTABLISHED -j ACCEPT

# - DNS - OK
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 67:68 -m state --state ESTABLISHED -j ACCEPT

# - WEB -
-A INPUT -i eth0  -p tcp -m multiport --sport 80,443,8000 -m state --state ESTABLISHED -j ACCEPT

# - SSH - OK
-A INPUT -i eth0 -p tcp --dport ssh -m state --state ESTABLISHED -j ACCEPT

# --- INPUT wlan1 ---

# - ICMP -
-A INPUT -i wlan1 -p icmp -m state --state ESTABLISHED -j ACCEPT

# - DNS -
-A INPUT -i wlan1 -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i wlan1 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i wlan1 -p udp -m udp --sport 67:68 -m state --state ESTABLISHED -j ACCEPT

# - WEB -
-A INPUT -i wlan1 -p tcp -m multiport --sport 80,443,8000 -m state --state ESTABLISHED -j ACCEPT

# --- FORWARD eth0 vers wlan1 ---
-A FORWARD -i eth0 -o wlan1 -s 192.168.200.0/24 -d 0.0.0.0/0 -p tcp -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -s 0.0.0.0/0 -d 192.168.200.0/24 -p tcp -j ACCEPT

# - ICMP -
-A FORWARD -i eth0 -o wlan1 -s 192.168.200.0/24 -d 0.0.0.0/0 -p icmp -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -s 0.0.0.0/0 -d 192.168.200.0/24 -p icmp -j ACCEPT

# - DNS - ??
-A FORWARD -i eth0 -o wlan1 -p tcp -m tcp --sport 53 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -p tcp -m udp --sport 53 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m tcp --sport 53 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m udp --sport 53 -j ACCEPT

# - WEB -
-A FORWARD -i eth0 -o wlan1 -p tcp -m multiport --sport 80,443,8000 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m multiport --sport 80,443,8000 -j ACCEPT



# --- OUTPUT loopback ---
-A OUTPUT -o lo -j ACCEPT


# --- OUTPUT eth0 ---
#-A OUTPUT -o eth0 -j ACCEPT
# - ICMP -
-A OUTPUT -o eth0 -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

# - DNS -
-A OUTPUT -o eth0 -p tcp -m tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 67:68 -m state --state NEW,ESTABLISHED -j ACCEPT

# - WEB -
-A OUTPUT -o eth0 -p tcp -m multiport --sport 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT

# - SSH -
-A OUTPUT -o eth0 -p tcp --sport ssh -m state --state NEW,ESTABLISHED -j ACCEPT

# --- OUTPUT wlan 1 ---
# - ICMP -
-A OUTPUT -o wlan1 -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

# - DNS -
-A OUTPUT -o wlan1 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o wlan1 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o wlan1 -p udp -m udp --dport 67:68 -m state --state NEW,ESTABLISHED -j ACCEPT

# - WEB -
-A OUTPUT -o wlan1 -p tcp -m multiport --dport 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu May 17 18:14:32 2018
# Generated by iptables-save v1.4.21 on Thu May 17 18:14:32 2018
*nat
:PREROUTING ACCEPT [54:7572]
:INPUT ACCEPT [3:729]
:OUTPUT ACCEPT [41:3543]
:POSTROUTING ACCEPT [26:2283]
-A POSTROUTING -o wlan1 -j MASQUERADE
COMMIT
# Completed on Thu May 17 18:14:32 2018

 



Je ne vais pas suivre ton conseil avec "-N output_pub" pour l'instant. J'ai déjà du mal à suivre et à comprendre, je vais en rester à la méthode basique, même si elle est répétitive. Je reviendrai dessus quand j'aurai résolu ce [hum-hum de] problème de COMMIT et que j'aurai établi des règles qui fonctionnent.

Hors ligne

#47 19-05-2018 09:35:14

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

L'erreur ne vient pas de la ligne COMMIT mais de deux des règles précédentes :

-A FORWARD -i eth0 -o wlan1 -p tcp -m udp --sport 53 -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -p tcp -m udp --sport 53 -j ACCEPT


Tu as oublié de changer tcp en udp.
Note : l'option -m tcp/udp n'est pas nécessaire, elle est implicite avec -p tcp/udp.

EDIT : explication : la vérification de la cohérence entre -p et -m est faite par le noyau et non par iptables-save, donc l'erreur ne se manifeste que lors du COMMIT quand iptables-save essaie de charger l'ensemble des règles dans le noyau.

Dernière modification par raleur (19-05-2018 09:54:30)


Il vaut mieux montrer que raconter.

Hors ligne

#48 19-05-2018 09:50:04

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

A part ça, j'ai du mal à assimiler l'emploi de --sport et --dport (en mettant l'état des paquets de coté pour l'instant). Je ne formule pas les action de filtrage donc ça me complique la compréhension...

Avec l'exemple de SSH.

Pour qu'un client depuis eth0 se connecte et dialogue avec le routeur, les règles doivent être :

-A INPUT -i eth0 -p tcp --dport ssh -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport ssh -j ACCEPT

"Ca veut dire que les règles de filtrage acceptent que le routeur reçoive des paquets par eth0 à destination de son port ssh et qu'elles acceptent qu'il en envoie à travers eth0 depuis son port ssh." Il manque la notion de "source" dans ma phrase, du coup, je me perds.

Quelle est la bonne formulation, stp ?

Hors ligne

#49 19-05-2018 09:58:50

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Configuration iptables à 4 réseaux

Henry33 a écrit :

Il manque la notion de "source" dans ma phrase


"depuis son port ssh", ce n'est pas une source ?


Il vaut mieux montrer que raconter.

Hors ligne

#50 19-05-2018 10:03:03

Henry33
Membre
Inscription : 23-12-2016

Re : [Résolu] Configuration iptables à 4 réseaux

raleur a écrit :

L'erreur ne vient pas de la ligne COMMIT mais de deux des règles précédentes :

Tu as oublié de changer tcp en udp.
Note : l'option -m tcp/udp n'est pas nécessaire, elle est implicite avec -p tcp/udp.

EDIT : explication : la vérification de la cohérence entre -p et -m est faite par le noyau et non par iptables-save, donc l'erreur ne se manifeste que lors du COMMIT quand iptables-save essaie de charger l'ensemble des règles dans le noyau.



Wahou, je ne l'avais pas trouvé celle-là ! Trois heures que je suis bloqué à cause de ça... Je cherchais du coté des états de paquets. Ca va m'apprendre !


Merci pour les explications, c'est donc normal que iptables ne me donne pas la source de mon erreur. Si ça avait été une erreur d'états de paquets, il ne m'aurait rien dit, c'est ça ?

Au fait, tu as été voir le tutoriel https://debian-facile.org/doc:reseau:ip … passerelle. Il est juste ??

Hors ligne

Pied de page des forums