
Fresh Onions est un spider TOR / crawler de services cachés onion open source hébergé à zlal32teyptf4tvi.onion
Ceci est une copie de la source pour le service caché http://zlal32teyptf4tvi.onion, qui implémente un crawler / spider de services cachés TOR et un site web.
Ce logiciel est mis à disposition sous la licence GNU Affero GPL 3.. Cela signifie que si vous déployez ce logiciel dans le cadre d'un logiciel en réseau accessible au public, vous devez rendre le code source disponible (ainsi que toute modification).
Extrait du site GNU :
La GNU Affero General Public License est une version modifiée de la GNU GPL version 3 ordinaire. Elle ajoute une exigence : si vous exécutez un programme modifié sur un serveur et laissez d'autres utilisateurs communiquer avec lui, votre serveur doit également leur permettre de télécharger le code source correspondant à la version modifiée exécutée.
pip install -r requirements.txt
Créez la base de données MySQL à partir de schema.sql
Modifiez etc/database pour votre configuration de base de données
Modifiez etc/proxy pour votre configuration TOR
script/push.sh someoniondirectory.onion
script/push.sh anotheroniondirectory.onion
Modifiez etc/uwsgi_only et définissez BASEDIR sur l'endroit où torscraper est installé (par exemple /home/user/torscraper)
Exécutez :
init/scraper_service.sh # pour démarrer le crawling
init/isup_service.sh # pour maintenir le statut du site à jour
Le torscraper est livré avec une capacité Elasticsearch optionnelle (activée par défaut). Modifiez etc/elasticsearch et définissez les variables ou définissez ELASTICSEARCH_ENABLED=false pour désactiver. Exécutez scripts/elasticsearch_migrate.sh pour effectuer la configuration initiale après la configuration.
si Elasticsearch est désactivé, il n'y aura pas de recherche plein texte, mais le crawling et la découverte de nouveaux sites fonctionneront toujours.
# récolte les onions de diverses sources
1 18 * * * /home/scraper/torscraper/scripts/harvest.sh
# obtient les empreintes SSH pour les nouveaux sites
1 4,16 * * * /home/scraper/torscraper/scripts/update_fingerprints.sh
# marque les sites comme authentiques / faux à partir de la superliste /r/darknetmarkets
1 9 * * 1 /home/scraper/torscraper/scripts/get_valid.sh
# scrape pastebin pour les onions (nécessite un compte payant / liste blanche IP)
*/5 * * * * /home/scraper/torscraper/scripts/pastebin.sh
# scanne les ports des nouveaux onions
1 */6 * * * /home/scraper/torscraper/scripts/portscan_up.sh
# scrape stronghold paste
32 */2 * * * /home/scraper/torscraper/scripts/stronghold_paste_rip.sh
# détecte les clones
16 3 * * * /home/scraper/torscraper/scripts/detect_clones.sh
Fresh Onions fonctionne sur deux serveurs : un hôte frontal exécutant la base de données et le site web du service caché, et un hôte dorsal exécutant le crawler. Ce qui intéresse probablement le plus le lecteur est la configuration du backend. TOR en tant que client est COMPLÈTEMENT MONOTHREAD. Je sais ! Nous sommes en 2017, et en plus de l'absence totale de voitures volantes, TOR s'exécute en un seul thread. Cela signifie que si vous essayez d'exécuter un crawler sur une seule instance TOR, vous constaterez rapidement que votre CPU est saturé à 100%.
La solution à ce problème consiste à exécuter plusieurs instances TOR et à s'y connecter via une sorte de frontal qui répartira vos demandes en round-robin. Le crawler Fresh Onions exécute huit instances Tor.
Debian (et Ubuntu) est livré avec un programme utile "tor-instance-create" pour créer rapidement plusieurs instances de TOR. J'ai utilisé Squid comme proxy frontal, mais malheureusement il ne peut pas se connecter directement à SOCKS, donc j'ai utilisé "privoxy" comme proxy intermédiaire. Vous aurez besoin d'une instance privoxy pour chaque instance TOR. Il y a un script dans "scripts/create_privoxy.sh" pour aider à créer des instances privoxy sur les systèmes Debian. Il est également utile de remplacer /etc/privoxy/default.filter par un fichier vide, pour réduire la charge CPU en supprimant les regex inutiles.
De plus, cette ressource https://www.howtoforge.com/ultimate-security-proxy-with-tor pourrait être utile pour configurer squid. Si tout ce que vous faites est du crawling et que vous ne vous souciez pas de l'anonymat, je recommande également d'exécuter TOR en mode tor2web (nécessite une recompilation) pour une vitesse accrue.