Créer un Moteur de Recherche Sécurisé sur le Réseau Tor

Dans ce tutoriel, nous allons vous guider à travers toutes les étapes nécessaires pour créer un moteur de recherche sécurisé et anonyme sur le réseau Tor. L'accent sera mis sur la sécurité, l'éthique, et l'importance de respecter la vie privée des utilisateurs.

🎯 Objectif

Créer un moteur de recherche sécurisé sur le réseau Tor qui explore et indexe des sites Onion de manière anonyme, tout en assurant une protection maximale contre les abus et les fuites de données.

🛠️ Matériel nécessaire

🔧 Étapes de réalisation

1. Installation de Tor et Sécurisation

Tout d'abord, installez Tor et configurez-le pour sécuriser les communications. Sur Kali Linux, utilisez les commandes suivantes :

sudo apt update
sudo apt install tor

Vérifiez que Tor fonctionne correctement :

sudo systemctl status tor

2. Configuration du service caché (Onion)

Pour que votre moteur de recherche soit accessible via une adresse .onion, vous devez configurer un service caché sur Tor. Modifiez le fichier de configuration de Tor :

sudo nano /etc/tor/torrc

Ajoutez les lignes suivantes :

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

Après avoir configuré le service caché, redémarrez Tor :

sudo systemctl restart tor

Votre adresse .onion sera générée automatiquement. Vous pouvez la consulter avec la commande suivante :

cat /var/lib/tor/hidden_service/hostname

3. Installation d'un Serveur Web Sécurisé (Apache ou Nginx)

Pour héberger l'interface de recherche, installez un serveur Web sécurisé. Choisissez Apache ou Nginx. Par exemple, pour installer Apache :

sudo apt install apache2

Configurez le serveur pour qu'il n'écoute que sur localhost (127.0.0.1) :

sudo nano /etc/apache2/ports.conf

Remplacez la ligne suivante :

Listen 80

Par :

Listen 127.0.0.1:80

Redémarrez Apache :

sudo systemctl restart apache2

4. Installation de Python et des Bibliothèques pour le Crawling

Nous allons utiliser Python avec Scrapy et Stem pour crawler le réseau Tor en toute sécurité. Installez Python et les bibliothèques nécessaires :

sudo apt install python3-pip
pip3 install scrapy stem requests

5. Utilisation de Scrapy et Stem pour Crawler Tor

Créez un nouveau projet Scrapy :

scrapy startproject tor_crawler

Dans le fichier spiders/onion_spider.py, configurez votre crawler :

import scrapy
from stem import Signal
from stem.control import Controller
import os
import requests

TOR_PASSWORD = os.getenv('TOR_PASSWORD')

class OnionSpider(scrapy.Spider):
    name = 'onion'
    start_urls = ['http://exampleonion.onion/']

    def parse(self, response):
        yield {
            'title': response.css('title::text').get(),
            'url': response.url
        }

    def change_ip(self):
        with Controller.from_port(port=9051) as controller:
            controller.authenticate(password=TOR_PASSWORD)  # Assurez-vous de définir une variable d'environnement pour le mot de passe Tor
            controller.signal(Signal.NEWNYM)
            print("Nouvelle IP obtenue")

Ce script va non seulement crawler les sites .onion, mais aussi changer régulièrement d’adresse IP pour éviter d'être bloqué ou identifié. Pour encore plus d'anonymat, désactivez les logs de Scrapy en ajoutant la configuration suivante dans le fichier `settings.py` :

LOG_ENABLED = False

6. Configuration SSL avec Let's Encrypt ou Certificat Auto-signé

Bien que le réseau Tor chiffre déjà les connexions, il est recommandé d'ajouter une couche de chiffrement SSL pour renforcer la sécurité. Vous pouvez choisir d'utiliser Let’s Encrypt pour les domaines publics ou des certificats auto-signés pour les services cachés `.onion`. Pour installer et configurer Let's Encrypt :

sudo apt install certbot python3-certbot-apache

Exécutez la commande suivante pour générer un certificat SSL :

sudo certbot --apache

Si vous ne disposez pas d’un domaine public, utilisez des certificats auto-signés :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

7. Déploiement et Sécurisation des Pages Web

Placez vos fichiers HTML dans le répertoire racine d’Apache pour déployer l’interface de recherche. Exemple simple d'interface HTML :

<!DOCTYPE html>
<html>
<head>
  <title>Recherche Tor Sécurisée</title>
  <meta charset="UTF-8">
</head>
<body>
  <h1>Moteur de Recherche Tor</h1>
  <form method="GET" action="/search">
    <input type="text" name="q" placeholder="Rechercher..." required>
    <input type="submit" value="Rechercher">
  </form>
</body>
</html>

8. Intégration avec la Base de Données pour l'Indexation

Les résultats du crawler peuvent être stockés dans une base de données pour permettre des recherches futures. Utilisez une base de données légère comme SQLite ou une base plus robuste comme MySQL :

sudo apt install sqlite3
sqlite3 tor_search.db

Créez une table pour stocker les résultats :

CREATE TABLE search_results (id INTEGER PRIMARY KEY, title TEXT, url TEXT);

9. Optimisation et Sécurisation

Suivez les bonnes pratiques de sécurité suivantes :

10. Éthique et Utilisation Responsable

Il est essentiel de souligner l'importance de respecter la vie privée et de ne pas utiliser cet outil à des fins illégales ou non éthiques. Ce projet est avant tout éducatif et conçu pour protéger l'anonymat des utilisateurs. Nous ne cautionnons aucune activité illicite.

Avertissement : Les résultats du crawler sur le réseau Tor peuvent inclure des sites non sécurisés ou illégaux. En tant qu'utilisateur, il est de votre responsabilité de ne pas visiter ou promouvoir des contenus illicites.

💡 Conseils