Archives de catégorie : Réseau

IPv6 – Sécurité

Un petit article pour vous mettre en garde contre le danger de l’IPv6 tel qu’il est proposé par les FAI.

Mon objectif n’est pas de critiquer l’IPv6, ce protocole offre de grandes perspectives pour l’avenir, je souhaite simplement que son adoption ne se fasse pas au détriment de votre sécurité à cause du manque de communication de la part des FAI.

L’IPv6 c’est bien car :

En théorie :

  1. c’est pratique : tous nos équipements peuvent avoir une adresse publique sur Internet
  2. c’est sécurisé : l’IPsec est directement intégré dans la norme
  3. c’est plus simple : la configuration est automatique (pas de dhcp, …)

Passons à la vraie vie :

  1. c’est pratique : tous nos équipements peuvent être accédés depuis Internet
  2. c’est sécurisé : intégré à la norme ne veut pas dire obligatoire ni utilisable
  3. c’est plus simple : on passe d’adresses du type 192.168.123.18 à des adresses du type fc00:a1bc:d852:358f:85ac:d35f:cd18:e561

Sans compter les problèmes de configuration en entreprise (filtrage des RA, configuration DNS, routes statiques, …).

Mais ne vous arrêtez pas là, l’IPv6 c’est aussi l’avenir, ça serait dommage de s’en passer.

Avec un peu de bonne volonté (de la part des FAI et des équipementiers), l’IPv6 peut très bien être déployé massivement sans créer de nouveaux problèmes.

Nous pourrons ainsi profiter de nouveaux services, comme :

  • la diffusion multicast : plus besoin d’avoir une bande passante proportionnelle au nombre de visiteurs pour diffuser une vidéo,
  • le VPN natif : sans avoir à passer des heures de configuration,
  • de meilleures performances : le protocole dispose de nombreuses optimisations,

Le problème

Actuellement de ce que j’ai pu constater, il n’y a qu’un problème majeur avec l’IPv6, c’est la sécurité. Il touche essentiellement les particuliers ou les petites entreprises car ils n’ont que rarement les connaissances, le temps ou les moyens de s’occuper de la sécurité de leurs données. C’est une erreur, mais c’est un fait !

En version courte :

  • Les systèmes récents ont presque tous la couche IPv6 activée par défaut (y compris les tablettes et les smartphones)
  • Les trucBOX sont rarement pourvues d’un vrai pare feu, en général elles proposent au mieux de faire un peu de translation (pour que vous ayez accès à Internet) et de filtrage (contrôle parental).
  • En IPv4, votre réseau local est « protégé » (à prendre avec les guillemets) des attaques directes depuis Internet, non pas grâce à votre trucBOX, mais grâce aux normes qui imposent qu’une adresse de type privé (un 192.168.x.x par exemple) ne doit pas circuler sur Internet.
  • Comme les adresses IPv4 sont une denrée de plus en plus rare, votre FAI vous en distribue une seule (sauf exceptions), voir aucune (si si ça existe, y compris en France)
  • En IPv6, la norme dit la même chose qu’en IPv4, ce qui est privé doit rester privé, mais comme il n’y a pas de pénurie d’adresse, votre FAI vous octroie une plage d’adresse public (souvent un simple /64), vos machines sont donc directement exposées à Internet.
  • Les trucBOX deviennent alors de simples commutateurs (switch) qui relient vos machines à Internet.
  • Dès que vous connectez un équipement compatible IPv6 (ils le sont presque tous maintenant) à votre box, cet équipement devient directement accessible depuis Internet.

Concrètement ça veut dire que tous les équipements branchés à une, par exemple, Freebox révolution (qui a l’IPv6 activé par défaut) sont directement accessible depuis Internet.

Le second problème de sécurité nous vient tout droit de Microsoft. Par défaut Windows  tente de monter un tunnel Teredo entre votre machine et Microsoft (teredo.ipv6.microsoft.com) afin de vous faire profiter de l’IPv6 au travers d’une connexion IPv4, que l’IPV6 soit activé ou non sur votre poste (c’est une interface « cachée »).

En pratique, quand vous voyez une adresse qui commence par 2001:0000:, c’est probablement une adresse qui sort de chez Microsoft.

Si l’idée est louable, permettre à de nombreuse personnes de disposer d’une adresse IPv6, il faut tout de même se poser une question : est il normal qu’une partie de notre trafic Internet passe par des serveurs étrangers sans notre consentement ?

2 grands axes s’offrent à vous :

  • ne pas utiliser l’IPv6 – ça serait dommage, mais ça ne devrait pas poser de problèmes pour encore quelques années, vous pouvez alors :
    • désactiver l’IPv6 sur tous vos équipements : ce n’est pas toujours possible et cela reste risqué
    • désactiver l’IPv6 sur votre connexion : c’est la solution la plus simple si votre FAI le permet
    • mettre un équipement (typiquement un routeur wifi) qui bloque l’IPv6 entre votre box et votre réseau : c’est souvent déjà le cas pour d’autres raisons que de bloquer l’IPv6
  • utiliser l’IPv6 – vous pouvez alors :
    • ne rien faire et laisser n’importe qui accéder et utilisez directement vos équipements : je ne pense pas que beaucoup de personnes choisissent cette possibilité
    • installer un pare feu sur tous vos équipements : sur un ordinateur c’est assez simple à faire, sur votre imprimante, votre TV connecté, …, bon courage
    • investir (du temps et/ou de l’argent) dans un système vous permettant de profiter de l’IPv6 sans devoir intervenir sur tous vos équipements et sans les mettre en danger

Je recommande ce dernier choix à celles et ceux qui souhaite profiter pleinement des possibilités d’Internet. C’est aussi l’occasion d’apprendre (un article est disponible ici).

Quel que soit votre choix, passez le mot à vos proches : sans action de leur part, leurs équipements seront très vite la proie des pirates.

Mémo – Juniper NetworkConnect 64bits

Un petit mémo pour configurer un client Linux en 64bits afin que le client VPN Juniper NetworkConnect fonctionne.

————update————

Juniper a mis à jour son client NetworkConnect (depuis la version 7.3) pour qu’il prenne en charge les systèmes 64bits. Il continu à s’exécuter en 32bits, mais la manipulation a changé.

L’article a été mis à jour en conséquences avec plus de détails.

————————————

Installation de JAVA

On commence par installer les 2 versions de JAVA (32 et 64bits), par exemple dans :

  • java 7 32bits : /opt/java/32/…
  • java 7 64bits : /opt/java/64/…

On les déclare au niveau système, sur la plupart des distributions c’est à faire avec update-alternatives –install /usr/bin/java java <chemin vers l’exécutable java> <priority> :

update-alternatives --install /usr/bin/java java /opt/java/32/jdk7/jre/bin/java 327
update-alternatives --install /usr/bin/java java /opt/java/64/jdk7/jre/bin/java 647

Les chemins peuvent changer selon que vous installez le jdk ou la jre.

On spécifie la version de java à utiliser par défaut (normalement celle en 64 bits) :

update-alternatives --config java

Installation des lib 32

Comme le client est en 32bits, il a besoin des librairies 32bits :

Debian (ou dérivée) par trop ancienne :

ln -s /usr/bin/update-alternatives /usr/sbin/
dpkg --add-architecture i386
aptitude update
aptitude install libstdc++6:i386 lib32z1 lib32ncurses5 lib32bz2-1.0 libxext6:i386 libxrender1:i386 libxtst6:i386 libxi6:i386

Debian (ou dérivée) plus ancienne :

aptitude install ia32-libs

Pour RedHat (et ses dérivées) :

yum –y install xterm
yum –y ld-linux.so.2
yum –y libstdc++.so.6
yum –y libz.so.1
yum –y libXext.so.6
yum –y libXrender.so.1
yum –y libXtst.so.6

Pour les SuSE (et ses dérivées) :

zypper install libXi.so.6

Firefox

Pour que Firefox prenne en charge votre nouvelle installation de JAVA il peut être nécessaire de déclarer le plugin JAVA. Normalement update-alternatives s’en occupe, sinon il faut créer un lien dans le dossier des plugins de Firefox, par exemple :

mkdir -p ~/.mozilla/plugins/
ln -s /opt/java/64/jdk7/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/libnpjp2.so

NetworkConnect

Juniper SA >= 7.3

Normalement c’est fini.

Juniper < 7.3

On renomme le binaire java 64 en, par exemple, java.orig :

mv /opt/java/64/jdk7/jre/bin/java /opt/java/64/jdk7/jre/bin/java.orig

On créé un nouveau script nommé java au même endroit :

#!/bin/bash
if [ $3x = "NCx" ]
then
/opt/java/32/jdk7/jre/bin/java "$@"
else
/opt/java/64/jdk7/jre/bin/java.orig "$@"
fi

Il ne reste plus qu’à rendre le script exécutable :

chmod a+x /opt/java/64/jdk7/jre/bin/java

En cas de problèmes

Si le client ne fonctionne toujours pas, vérifiez que votre installation de JAVA fonctionne correctement :

En cliquant ici

Avec cette commande :

java -version

En consultant les logs de NetworkConnect (dans ~/.juniper_networks).

sources :