Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 08/12/2012, à 22:52

Dominique49

iptables débloque ip mais pas dns ...

Bonjour,
je voudrais configurer iptables pour ne rien laisser sortir de la machine, à part les paquets à destination de certains sites. J'ai donc autorisé les  paquets à destination de 'ip_site'. L'ennui c'est que quand on y va en utilisant un navigateur ... ça ne passe qu'avec l'ip et pas avec le nom de domaine. J'ai essayé de remplacer ip_table par le nom_de_domaine dans iptables ... mais ça ne passe pas.

Est-il possible d'autorisé des nom de domaine aussi bien que des ip ? iptables n'est pas la seule alternative, je suis prêt à utiliser un autre pare feu si cela peu résoudre le problème ...

Au passage le problème est le même si on bloque le traffic entrant au lieu du traffic sortant.

Merci d'avance,
Dominique.

Hors ligne

#2 Le 08/12/2012, à 23:24

xavier4811

Re : iptables débloque ip mais pas dns ...

Bonsoir,

Soit tu laisse aussi passer le 53 udp pour les requêtes DNS, soit tu utilise un outil fait pour ce que tu veut obtenir (un proxy squid par exemple smile )

Hors ligne

#3 Le 09/12/2012, à 09:43

Dominique49

Re : iptables débloque ip mais pas dns ...

Merci !
Effectivement si je bloquais aussi le service de DNS ... (je ne savais pas encore que ça marchais comme ça yikes )
Donc en autorisant le port 53 en sortie pour le service DNS ça marche smile
Par contre, niveau sécurité, est-il possible pour quelqu'un qui s'y connais d'utiliser cette ouverture pour communiquer avec internet ... Alors déjà vu que c'est du udp ça ne va pas lui faciliter la tâche ... car il faudrait que le site cible accepte les connexions en UDP. Pour éviter "une fuite d'information" (même si c'est un peu parano ^^ ), il faudrait en fait n'autoriser les connexion du service DNS par le port 53 unique ment vers les serveurs DNS (<x>.root-servers.net il me semble) ... Je n'ai donc autorisé que les ip des serveurs présentés sur cette page : http://www.root-servers.org/ , mais ça ne marche pas .. il faudrait que j'analyse les paquets sortant par le ports 53 pour les ip utilisées ... Devant partir tout de suite je n'ai pas le temps, mais je le ferais ce soir.

Merci beaucoup !

Hors ligne

#4 Le 09/12/2012, à 17:31

PascalHambourg

Re : iptables débloque ip mais pas dns ...

Par contre, niveau sécurité, est-il possible pour quelqu'un qui s'y connais d'utiliser cette ouverture pour communiquer avec internet

Oui. Si on autorise les paquets UDP en se basant uniquement sur le port 53 sans vérifier le protocole réel, alors il est possible d'établir un tunnel entre la machine et un serveur distant avec n'importe quel VPN utilisant un transport UDP (ex: openvpn, vtun).

Si on n'autorise les paquets UDP que vers les adresses IP d'un ou plusieurs vrais serveurs DNS récursifs déterminés, il existe des techniques de tunnel sur DNS via un domaine servi par un serveur DNS complice (ex: dns2tcp). Ça marche plus ou moins bien.

A noter qu'en toute rigueur il faudrait aussi autoriser le trafic DNS en TCP car certaines réponses peuvent dépasser la taille maximum d'un paquet DNS de base en UDP qui est de 512 octets (c'était rare mais moins maintenant avec DNSSEC), et tous les serveurs et clients ne supportent pas forcément l'extension EDNS qui permet d'augmenter la taille des paquets UDP. Dans ce cas le client doit refaire la requête en TCP.

Ce ne sont pas des serveurs DNS racines ("root servers", qui ne connaissent que le contenu de la racine, pas tout l'arbre du DNS) qu'il faut interroger mais des serveurs DNS caches récursifs comme ceux des FAI capables de parcourir l'arbre ou d'interroger d'autres serveurs récursifs pour trouver la réponse à une requête.

Et pour identifier les paquets reçus contenant les réponses à des requêtes DNS émises, il ne faut évidemment pas se baser sur le port source 53 car n'importe quel attaquant peut utiliser ce port. Il faut utiliser le suivi de connexion comme d'habitude (-m state --state ESTABLISHED).

Pour en revenir au problème initial, si les noms et adresses des sites autorisés sont connus et fixes, il suffit de les renseigner dans /etc/hosts et pas besoin de résolution DNS.

Dernière modification par PascalHambourg (Le 09/12/2012, à 19:54)

Hors ligne

#5 Le 09/12/2012, à 21:16

Dominique49

Re : iptables débloque ip mais pas dns ...

ok ... merci. Si, j'ai bien spécifier le protocol (DNS) ... mais je crains que même en ne permettant que le protocole DNS, on pourrait envisager de sortir des infos vers un serveur non autorisé ... je suis en train de me renseigner poour étudier les possibilités.

Hors ligne

#6 Le 10/12/2012, à 00:22

PascalHambourg

Re : iptables débloque ip mais pas dns ...

Dominique49 a écrit :

Si, j'ai bien spécifier le protocol (DNS)

Comment ? Avec l7-filter ou une expression u32 ? De base iptables ne permet pas de spécifier le protocole applicatif, seulement le protocole de transport (TCP, UDP...) et le port, ce qui n'est pas suffisant pour caractériser le protocole applicatif.

Dominique49 a écrit :

mais je crains que même en ne permettant que le protocole DNS, on pourrait envisager de sortir des infos vers un serveur non autorisé

En effet si on autorise les requêtes DNS qui doivent être résolues par un serveur DNS extérieur alors des informations peuvent être échangées avec ce serveur.

Hors ligne

#7 Le 10/12/2012, à 09:52

Dominique49

Re : iptables débloque ip mais pas dns ...

ok, alors en fait par manque de temps et souci de simplicité pour l'utilisateur (il faut que la technique soit ensuite utilisable par qq qui ne  connais rien au lignes de commandes), j'utilise firestarter, et j'ai ajouté une règles "pour le service DNS par le port 53 vers anyone". Bref je pensais qu'il allait ainsi autoriser uniquement le service DNS ... mais en allant voir dans la liste des règles en ligne de commande, je m’aperçoit que le port 53 est effectivement ouvert .. Bref c'est belle et bien une faille béante ^^ .

Je ne connais pas terriblement bien les firewalls ... je pense qu'il va falloir que je me mette aux lignes de commandes au lieu d'utiliser une interface graphique (c'est pas que ça me fasse peur mais je manque déjà de temps wink )

"Comment ? Avec l7-filter ou une expression u32 ?"

Je ne connais pas encore ... je vais donc aussi me renseigner sur ce point.
Merci pour tout ! big_smile

Dernière modification par Dominique49 (Le 10/12/2012, à 09:53)

Hors ligne

Haut de page ↑