Expertise

Suite à cette Vidéo et cette Publication portant de lourdes accusations sur Windows 10 de la société Microsoft, j'ai décidé d'en vérifier moi-même le contenu.

Pour faire cette expertise, j'ai donc mis en place une infrastructure technique dont voici le schéma ci-dessous.
L'ensemble est composé de 3 éléments :
  • Un ordinateur portable Marque HP modèle PROBOOK dans lequel tourne Windows 10
  • Une ordinateur fixe Marque ARTIC modèle MC101 dans lequel tourne une distribution Ubuntu version 14.04 LTS dont l'installation est expliquée ici à laquelle j'ai rajouter les fonctions de passerelle pour servir d'intermédiaire entre Windows 10 et l'Internet.
  • Une borne 4G Bouygues télécom pour toutes les communications sur l'Internet.
Rajout de la fonction de passerelle dans l'ordinateur fixe

J'en suis désolé pour les jeunes s'essayant à l'informatique, je suis de la vieille école et je fais la majorité de mes commandes sur la console, que l'on lance par le menu "Applications" -> "Accessoires" -> "Terminal".

Rajout du mur pare -feu

En premier lieu, pour assurer une parfaite sécurité, j'installe le mur pare-feu shorewall par la commande :
    sudo apt-get install shorewall

Ensuite on passe aux fichiers de configuration
On définit les zones à l'aide du fichier /etc/shorewall/zones
    net    ipv4                #
    local    ipv4                #
    fw    firewall            #
Nous créons ainsi 3 zones :
  • net : c'est la zone internet
  • local : c'est la zone du réseau local
  • fw : c'est la zone définissant cet ordinateur fixe
Ensuite nous associons les zones aux cartes réseau par le fichier /etc/shorewall/interfaces dans lequel nous tapons :
    net    wlan0
    local    eth0

Ensuite nous définissons les règles générales par le fichier /etc/shorewall/policy dans lequel nous tapons :
    local    net    ACCEPT
    local    $FW    DROP
    $FW    all    ACCEPT
    net    all    DROP

Dans ce fichier nous voyons que nous autorisons l'ordinateur fixe ($FW all ACCEPT) à accéder partout. Nous interdisons l'accès à tout ce qui vient de l'extérieur (net all DROP). Nous autorisons tout ce qui est sur le réseau local d'aller sur l'Internet (local net ACCEPT). Et enfin nous interdisons  à tout ce qui est sur le réseau local d'accèder à la passerelle (local $FW DROP).

Ensuite, nous masquons les demandes de Windows 10. C'est à dire que le net verra non pas un paquet venant de Windows 10 mais de la passerelle elle-même. Pour cela nous créons le fichier /etc/shorewall/masq dans lequel nous tapons :
    wlan0    eth0
et dans le fichier /etc/shorewall/shorewall.conf, nous autorisons le transfert en recherchant FORWARDING et en mettant sa valeur à On et aussi à programmer son redémarrage automatique lorsqu'on relance l'ordinateur :
    IP_FORWARDING=On
   
STARTUP_ENABLED=Yes

Ensuite ouvrez le fichier  /etc/default/shorewall et fixez à 1 la valeur
    startup=1

Il nous reste plus alors qu'à lancer notre mur parfe-feu par la commande
    sudo /etc/init.d/shorewall start

Rajout du serveur DHCP

Maintenant, nous allons installer un serveur DHCP (distributeur de numéro IP aux ordinateurs du réseau local). Pour cela nous lançons la commande
    sudo apt-get install isc-dhcp-server

Puis bien sur, nous paramètrons le fichier de configuration /etc/dhcp/dhcpd.conf
    ddns-update-style none;
    option domain-name-servers 192.168.0.1;
   
option domain-name "local.lan";
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
    log-facility local7;
    subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.120;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
        option routers 192.168.0.1;
    }
Nous voyons que nous allons distribuer des numéro IP aux ordinateurs venant d'être mis sous tension dans une plage comprise entre 192.168.0.100 jusqu'à 192.168.120. Ce qui veut dire que le premier ordinateur qui va faire la demande aura comme numéro IP 192.168.0.100, le suivant 192.168.0.101, et ainsi de suite.
Nous voyons aussi qu'un ordinateur ne peut utiliser ce numéro IP que 7200 secondes, et passé ce délai, il refait sa demande pour retrouver son numéro IP.
Enfin nous voyons que le serveur va libérer le numéro IP si l'ordinateur l'utilisant ne s'en sert plus au-delà de 600 secondes (on suppose que l'ordinateur est éteint).

Et pour définir sur quelle interface notre serveur DHCP doit founir des numéros IP, dans le fichier /etc/default/isc-dhcp-server, nous désignons l'interface
    INTERFACES="eth0"

Voilà notre serveur DHCP est installé, il ne reste plus qu'à le relancer pour prendre en compte notre configuration
    sudo /etc/init.d/isc-dhcp-server restart

Rajout du tranfert de requètes DNS

Le DNS est l'outil qui permet de convertir une URL (exemple : microsoft.com) en son numéro IP correspondant. Cela permet d'utiliser des URL plutot que des numéros IP. Le but de ce petit service est de relayer les demandes de numéros IP en fonction des URL de Windows 10.

Nous avons presque fini. Il nous reste une dernière étape, consiste à transférer les requètes DNS, pour se faire nous installons le paquet dnsmasq :
    sudo apt-get install dnsmasq
C'est une opération masquerade, c'est à dire que là aussi, le net verra la demande comme émanant de la passerelle et non de Windows 10.

Nous modifions le fichier de configuration /etc/dnsmasq en retirant les # (commentaires) devant :
    domain-needed
    bogus-priv

Il nous reste plus qu'à relancer ce service
    sudo  /etc/init.d/dnsmasq restart

Rajout du snifer

Enfin, il ne nous reste plus qu'à installer le snifer :
    sudo apt-get install tcp-dump

Voilà, notre passerelle est terminée (ouf !).
Désormais votre passerelle est totalement configurée, et tout les services redémarrent automatiquement à la prochaine mise sous tension.


Commandes pour intercepter les paquets provenant de Windows 10

Limite légale

Attention, tcpdump fait parti de ces outils d'espionnage que vous n'avez PAS le droit d'utiliser pour intercepter des paquets venant d'autrui, sauf si vous êtes un expert mandaté par un juge.
Toutefois, nous sommes ici dans la légalité, car vous analysez vos PROPRES paquets.

Utilisation

La commande pour intercepter les paquets peut s'écrire très simplement :
    sudo tcpdump -i eth0

Pour arrêter cette commande tapez Ctrl+C.

-i signifie l'interface réseau à snifer. eth0 est l'interface de notre passerelle qui est connectée à l'ordinateur portable faisant tourner Windows 10.

Observez bien le flux. Une ligne commence toujours par l'heure, suivie d'un code d'identification, puis le numéro IP de la source suivi du numéro IP de la destination.

Vous constatez que Windows 10 envoie et reçoit des informations.

De plus, il n'y a pas que Windows qui envoie et reçoit, il y a aussi les logiciels eux-mêmes.
Aussi, nous allons installer des filtres pour ne voir que les informations qui nous intéressent.
Le premier filtre concerne la source. En effet, seuls les paquets IP émis par Windows 10 nous intéressent.

Toutefois, dans cet énorme flux, nous pouvons repérer le numero IP local de l'ordinateur portable faisant tourner Windows 10. Sachant que le numéro IP de notre passerelle est 192.168.0.1 l'autre numéro IP de la forme 192.168.0.xxx (il est fort possible que ce soit 192.168.0.100) est forcément celui de l'ordinateur portable.

Repérez-le et notez-le.

Aussi, nous allons considérablement diminuer le flux en utilisant la commande :
    sudo tcpdump -i eth0 src 192.168.0.xxx
src signifie la source, et 192.168.0.xxx est le numéro IP que vous avez repéré dans le flux précédent.

Arrêtez le flux en tapant Ctrl+C.

Désormais le flux est déjà nettement moins important, étant donné que nous n'interceptons plus les paquets de retour.

Si nous lisons ce nouveau flux, nous constatons que Windows 10 lance beaucoup de requêtes sur le réseau local.

Toutefois ces échanges locaux ne nous intéressent pas, donc nous allons rajouter un deuxième filtre pour ne plus intercepter les paquets locaux et ainsi alléger encore notre flux.
    sudo tcpdump -i eth0 src 192.168.0.xxx and not dst 192.168.0

Nous constatons que nous avons tapé le deuxième filtre "not dst 192.168.0" dont le "not" veut dire qu'on ne veut pas le paquet, "dst" veut dire la destination du paquet, et "192.168.0" est le numéro IP partiel pour définir toutes les requètes locales.

Arrêtez le flux par Ctrl+C

Maintenant vous avez compris le principe de fonctionnement.
Si vous voulez rajouter un autre filtre sous la forme d'une URL, n'oubliez pas de mettre le mot clé host devant. Exemple :
    sudo tcpdump src 192.168.0.xxx and not dst 192.168.0 and not dst host microsoft.com


Et pour que vous puissiez lire tout ce flux à tête reposée dans un fichier, il suffit de rajouter la commande Unix :
    sudo tcpdump -i eth0 src 192.168.0.xxx and not dst 192.168.0 > monFichierContenantLeFlux


Utilisation de Webmin

Si vous êtes un inconditionnel des interfaces, vous pouvez utiliser webmin.

Editez le fichier suivant avec gedit
    sudo gedit /etc/apt/sources.list

Puis copiez coller la ligne suivante à la fin de ce fichier
    deb http://download.webmin.com/download/repository sarge contrib

Enregistrez et quittez

Tapez la ligne suivante pour enregistrer la clé de sécurité
    wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -

Mettez à jour la base
    sudo apt-get update

Et enfin installez webmin lui-même
    sudo apt-get install webmin

Dès lors vous pouvez lancer votre navigateur et ouvrir webmin par
    https://localhost:10000