Forum Linux.général IPv6 Privacy Extensions, P2P et firewall

Posté par .
Tags : aucun
2
2
août
2010
Salut,

J'ai un petit problème sur lequel je butte depuis un certain temps et ça m'énerve.

J'ai installé un routeur sur mon réseau (une fonera de premières générations) qui est chargé d'annoncer mon préfixe IPv6, d'assurer le routage entre mon réseau local et mon tunnel he.net et aussi de faire office de première ligne de firewall.

C'est pour faire fonctionner le firewall avec les "Privacy Extensions" que je sèche.

Le principe des Privacy Extensions est simple : en plus de mon adresse fixe auto-configurée à partir de mon adresse MAC, j'ai plusieurs adresses aléatoires d'une durée de vie limitée, utilisées pour les connexions sortantes.

À l'époque l'idée était d'avoir une IP fixe accessible depuis l'extérieur pour les services (HTTP, FTP, SSH) et les ports associés ouverts dans le firewall.
Et une IP aléatoire pour les connexions initialisés depuis le client, à charge du traqueur de connexions d'assurer le routage correct des réponses.

Mais l'IPv6 est aussi censée faciliter les communications directes de peer à peer (partage de fichiers, téléphonie...) et là ça bouscule un peu le schéma.

Si par exemple je lance un client bittorrent sur un de mes PC, il va envoyer au tracker une requête avec comme source mon IP aléatoire (vu qu'il s'agit d'une connexion sortante), et attendre les connexions entrantes des autres clients sur cette IP, hors au niveau du routeur mes ports sont ouverts uniquement sur mon IP auto-configurée.

L'exemple de bittorrent est mauvais, car certains clients permettent de spécifier l'IP à utiliser pour les réponses (principe rendu célèbre par IPfuck), mais tous les clients bittorrent ne proposent pas cette option et certains réseaux P2P ne la proposerons certainement jamais !

Il faudrait donc que je puisse autoriser, au niveau du routeur, les connexions entrante à destination de machine:port sur mon réseau local, mais "machine" ne serait pas identifiée pas son IP, mais plutôt par son adresse @MAC, hors ip(6)tables ne permet de filtrer que sur l'adresse @MAC source.

Une idée ?
  • # Peut-être quelques pistes...

    Posté par . Évalué à 2.

    La première solution (et à mon avis la plus efficace pour ce que tu recherches), c'est un /64 par machine. Ainsi tu ouvres les ports que tu souhaites sur tout le /64 où se trouve la machine, et le problème est réglé sans pour autant permettre l'accès aux autres machines de ton réseau (qui seront sur d'autres sous-réseaux). On peut même généraliser à "un /64 par politique de sécurité". Avec he.net, tu as un /48 il me semble, soit plus de 65000 sous-réseaux possibles, pour un besoin domestique cela devrait suffire.

    La seconde c'est un firewall/routeur d'entrée un peu moins parano, et qui autorise pour l'ensemble du réseau les ports des applications que tu utilises (à charge ensuite à chaque machine locale de fermer ce port avec un firewall personnel si elles le souhaitent). On revient à la notion de firewall de "première ligne" qui filtre le gros en laissant un peu de flexibilité derrière.

    La troisième c'est la mise à jour en temps réel du firewall. Il n'existe pas de solutions pour l'instant pour ce que j'en sais (hormis un script un peu brouillon que tu pourrais écrire pour remettre à jour le firewall, une solution un peu lourde...). On peut espérer qu'on pourra un jour utiliser de l'UPNP ou un mécanisme approchant dans le futur pour demander l'ouverture de ports à la demande.
    • [^] # Re: Peut-être quelques pistes...

      Posté par . Évalué à 2.

      Intéressant tout ça, je vais approfondir (surtout le /64 par machine)
      • [^] # Re: Peut-être quelques pistes...

        Posté par . Évalué à 2.

        J'ai oublié un truc, c'est le défaut du /64 par machine. Quand tu utilises les Privacy Extensions, c'est a priori pour que ton ordinateur ne soit plus discernable parmi l'ensemble des machines de ton réseau (au moins sur l'adresse IP, les autres moyens de traces sur Internet sont laissées au lecteur en exercice).

        Quand tu définis un /64 par machine, tu « casses » cette protection. Pour peu que l'on sache que tu utilises ce /64 pour cette machine, on est certain que c'est toujours elle qui communique. À mon avis ce n'est pas très grave, car qui serait en mesure d'obtenir cette information (par analyse de la signature TCP, par analyse des flux, de l'entropie de ton navigateur, etc) te trace de toutes façons déjà...

        • [^] # Re: Peut-être quelques pistes...

          Posté par . Évalué à 2.

          L'autre problème c'est qu'on ne peut donner un /64 par machine via l'auto-configuration, donc obligé de passer par une configuration statique ou DHCPv6 (ce que je voulais éviter) et les "Privacy Extensions" sont une extension de l'auto-configuration, donc marchent-elle seulement avec l'auto-configuration ou il suffit d'avoir un suffixe assez large ?
          • [^] # Re: Peut-être quelques pistes...

            Posté par . Évalué à 1.

            D'après le point 12 de la RFC rfc3315, c'est possible de faire des adresses temporaires en DHCPv6. Mais j'ai personnellement jamais testé. Autrement, un vlan par machine avec les bonnes RA... (oui, ceci est une machine à gaz)

            Bonne question si les Privacy Extensions fonctionnent sans auto-conf avec un préfixe "en dur". Je ne vois pas techniquement ce qui empêcherait que ça marche, j'essaierai ce soir tiens.

  • # MAC source

    Posté par (page perso) . Évalué à 1.

    or ip(6)tables ne permet de filtrer que sur l'adresse @MAC source

    Vraiment ? Je cite le manuel ip6tables(8) :


    mac
    [!] --mac-source address
    Match source MAC address. It must be of the form XX:XX:XX:XX:XX:XX. Note that this only makes sense for packets coming from an Ethernet device and entering the PREROUTING, FORWARD or INPUT chains.
    • [^] # Re: MAC source

      Posté par . Évalué à 3.

      Et ? C'est bien ce que je dit. (a moins qu'une négation de trop se soit glissée dans cette phrase, si c'est le cas je m'en excuse)


      Et pour être plus clair, c'est surtout d'un "--mac-destination" dont j'aurais besoin !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.