Trouer un Fortigate ou un WatchGuard avec Tor et Privoxy

Ce que j’aime chez certains administrateurs système et réseau, c’est leur assurance définitive. Il y a de cela quelques semaines, alors que je donnais un cours « sécurité informatique », j’ai montré très simplement comment passer le pare-feu Fortigate qui semblait « infranchissable », bloquant l’accès à de très nombreux domaines. J’ai renouvelé l’expérience la semaine suivante sur un WatchGuard avec succès.

J’ai donc installé tor et privoxy, présents dans les dépôts d’une distribution Linux Fedora Server 29. Tor ne peut pas être directement utilisé à partir de Firefox. Il faut passer par le proxy privoxy pour pouvoir l’utiliser.

Configuration de tor et privoxy

Concernant la configuration de tor, je n’ai rien modifié aux fichiers de configuration /etc/tor/torrc et /etc/tor/torsockets.conf.

En revanche, j’ai apporté quelques modifications au fichier de configuration de privoxy /etc/privoxy/config pour le coupler à tor et augmenter les performances d’affichage des pages dans le navigateur, ralenti du fait de l’utilisation de tor :

hostname localhost
#L'ip de mon serveur Linux est, dans l'exemple, l'adresse 192.168.1.202
listen-address 192.168.1.202:8118
toggle 0 #N'apporte aucune modification aux entêtes envoyés par le navigateur
permit-access 192.168.1.0/24
forward-socks5t / 127.0.0.1:9050 .
keep-alive-timeout 900
default-server-timeout 900
socket-timeout 900
enable-compression 1
compression-level 9

Lancement des services Tor et Privoxy

Vous devez activer et démarrer les services Tor et Privoxy :

systemctl enable tor privoxy
systemctl start tor privoxy

Pensez également à ouvrir le port Tcp/8118 ou à couper le pare-feu. Attention, également à SELinux !

Configuration du proxy dans Firefox

Dans les options de Firefox, allez dans Général > Paramètres Réseau > Paramètres.

Firefox > Options >Général > Paramètres Réseau > Paramètres

Dans les paramètres de connexion, n’oubliez surtout pas de cocher tout en bas Utiliser un DNS distant lorsque SOCKS v5 est actif, faute de quoi vous risqueriez d’être bloqué par le firewall du fait de vos requêtes DNS.

Firefox > Options > Général > Paramètres Réseau > Paramètres de connexion > Utiliser un DNS distant lorsque SOCKS v5 est actif

Vérification de l’utilisation de Tor

Je vous ai fait un script PHP vous permettant de connaître l’IP publique associée à votre connexion. Pour ce test, je passe par une machine du MIT hébergée dans la ville de Boston aux Etats-Unis, au lieu d’utiliser l’IP publique fournie par mon FAI.

DBIP - IP Address Geolocation

Précaution d’emploi

Je ne vous recommande pas d’utiliser Tor pour vous connecter à vos comptes personnels. Tor doit être réservé à des usages, où les identifiants utilisés sont sans importance.

Tracking  / Fortigate Privoxy Tor WatchGuard 

Commentaires

Hello Denis,

Le Firewall dont tu fais mention avait il de l’IPS ou uniquement une fonction Firewall L3 ?

@Jérémy

Il s’agit plus certainement d’un Firewall L3. Je te confirme dans 15 jours. A la fois, je ne vois pas comment l’IPS pourrait détecter quoi que ce soit avec toggle à 0 (pas de modification d’entête) dans Privoxy et avec le mode remote DNS dans Firefox.

Hello, Pourquoi passer par privoxy avec toute tes extensions Firefox ? Une raison particulière ?

Ou c’est juste pour montrer que tu peux fournir a un panel de PC une connexion « non filtrée » ?

Merci :)

@hedilenoir

Mes extensions ne permettent d’éviter le tracking. C’est tout.

Pour la 2e question, je n’ai pas compris. Désolé.

L’IPS pourrait voir si tu encapsules de la donnée.

Après il il semble plus globalement y avoir un soucis dans l’architecture réseau du client qui permet de sortir du DNS en direct, et là tu fais ce que tu veux aussi… Seul le Proxy devrait pouvoir faire de la requête DNS externe, ça permet au passage d’empêcher les malwares d’aller voir les serveurs de C&C si les listes d’IOCs sont maintenues à jour et de voir aussi les PC’s qui requeteraient en direct … enfin après on dépasse le sujet :)

@Jeremy

En TLS/SSL ? Là, je pense qu’il faudrait déchiffrer pour qu’il puisse y voir quoi que ce soit !

Lors de la phase de négociation tout n’est pas immédiatement chiffré à priori, il y a donc des paquets que tu peux identifier comme justement initiant une connexion semblant anormale et donc faire tilter l’IPS. Je pense qu’un Suricata peut te faire ça pas cher :)

Après rien n’empeche le déchiffrement sur le firewall dès lors qu’il connaît ton AC locale.

@Jeremy

J’ai eu confirmation. Il faut dans ce cas un certificat, comme avec Snort. Aujourd’hui, si on ne dispose pas de certificats de type MTM, ça ne peut pas marcher. Or, à l’endroit, où j’ai fait le test, la question s’était posée et, finalement, pour des problèmes de confidentialité des données, ils ont fait marche arrière toutes. D’où ma trouée fantastique ! ;+)

Je te fais confiance mais il y’a p’tetre un truc quand même à faire avec de l’IPS (intra ou extra boîtier en place) ou de l’Application Control (dispo entre autres sur le Fortinet). A tester pour voir si tu ne peux pas expliquer aux organismes concernés par ces défauts comment ils pourraient au moins le détecter. Et quoiqu’il en soit il reste un sujet d’architecture à traiter :)

Laisser un commentaire

(requis)

(requis)