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
- Une machine Linux (Kali Linux recommandé)
- Tor installé
- Un serveur Web sécurisé (Apache ou Nginx)
- Python avec les bibliothèques Scrapy, Stem et Requests
- Un certificat SSL (Let’s Encrypt ou certificat auto-signé)
🔧 É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 :
- Limiter l'accès : Configurez un pare-feu avec
UFW
pour limiter les connexions à votre serveur. - Protection contre les attaques : Utilisez Fail2Ban pour bloquer les attaques par force brute .
sudo apt install fail2ban
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
- Utilisez une **passphrase sécurisée** pour vos services cachés et changez régulièrement d’adresse IP avec Tor.
- Activez le **chiffrement HTTPS** même sur les sites Onion pour garantir une couche supplémentaire de sécurité.
- Vérifiez régulièrement les mises à jour de sécurité de votre serveur et de Tor pour éviter les failles.