
Fresh Onions è un crawler TOR / servizio nascosto onion crawler open source ospitato su zlal32teyptf4tvi.onion
Questa è una copia del sorgente del servizio nascosto http://zlal32teyptf4tvi.onion, che implementa un crawler / spider per servizi nascosti TOR e un sito web.
Questo software è disponibile sotto la licenza GNU Affero GPL 3.. Ciò significa che se distribuisci questo software come parte di software in rete accessibile al pubblico, devi rendere disponibile il codice sorgente (e qualsiasi modifica).
Dal sito GNU:
La GNU Affero General Public License è una versione modificata della normale GNU GPL versione 3. Ha un requisito aggiuntivo: se esegui un programma modificato su un server e permetti ad altri utenti di comunicare con esso, il tuo server deve anche consentire loro di scaricare il codice sorgente corrispondente alla versione modificata in esecuzione.
pip install -r requirements.txt
Crea un database MySQL da schema.sql
Modifica etc/database per la configurazione del database
Modifica etc/proxy per la configurazione TOR
script/push.sh someoniondirectory.onion
script/push.sh anotheroniondirectory.onion
Modifica etc/uwsgi_only e imposta BASEDIR sulla directory di installazione di torscraper (es. /home/user/torscraper)
Esegui:
init/scraper_service.sh # per avviare la scansione
init/isup_service.sh # per mantenere aggiornato lo stato del sito
Il torscraper include la capacità opzionale di utilizzare Elasticsearch (abilitato per impostazione predefinita). Modifica etc/elasticsearch e imposta le variabili o imposta ELASTICSEARCH_ENABLED=false per disabilitare. Esegui scripts/elasticsearch_migrate.sh per eseguire la configurazione iniziale dopo la modifica.
Se Elasticsearch è disabilitato, non ci sarà la ricerca full-text, ma la scansione e la scoperta di nuovi siti continueranno a funzionare.
# raccogli onion da varie fonti
1 18 * * * /home/scraper/torscraper/scripts/harvest.sh
# ottieni impronte SSH per nuovi siti
1 4,16 * * * /home/scraper/torscraper/scripts/update_fingerprints.sh
# segna siti come genuini / falsi dalla superlist di /r/darknetmarkets
1 9 * * 1 /home/scraper/torscraper/scripts/get_valid.sh
# raspa pastebin per onion (richiede account a pagamento / whitelist IP)
*/5 * * * * /home/scraper/torscraper/scripts/pastebin.sh
# esegui portscan su nuovi onion
1 */6 * * * /home/scraper/torscraper/scripts/portscan_up.sh
# raspa stronghold paste
32 */2 * * * /home/scraper/torscraper/scripts/stronghold_paste_rip.sh
# rileva cloni
16 3 * * * /home/scraper/torscraper/scripts/detect_clones.sh
Fresh Onions è eseguito su due server: un host frontend che ospita il database e il sito web del servizio nascosto, e un host backend che esegue il crawler. Probabilmente la parte più interessante per il lettore è la configurazione del backend. TOR come client è COMPLETAMENTE MONOTHREAD. Lo so! Siamo nel 2017, e insieme a una totale mancanza di auto volanti, TOR viene eseguito in un singolo thread. Ciò significa che se provi a eseguire un crawler su una singola istanza TOR, ti ritroverai rapidamente a saturare la CPU al 100%.
La soluzione a questo problema è eseguire più istanze TOR e connettersi a esse tramite un qualche tipo di frontend che esegua il round-robin delle richieste. Il crawler di Fresh Onions esegue otto istanze TOR.
Debian (e Ubuntu) viene fornito con un utile programma "tor-instance-create" per creare rapidamente più istanze di TOR. Ho usato Squid come proxy frontend, ma sfortunatamente non può connettersi direttamente a SOCKS, quindi ho usato "privoxy" come proxy intermedio. Avrai bisogno di un'istanza di privoxy per ogni istanza TOR. C'è uno script in "scripts/create_privoxy.sh" per aiutare a creare istanze privoxy su sistemi Debian. Aiuta anche sostituire /etc/privoxy/default.filter con un file vuoto, per ridurre il carico della CPU rimuovendo regex non necessari.
Inoltre, questa risorsa https://www.howtoforge.com/ultimate-security-proxy-with-tor potrebbe essere utile per configurare squid. Se tutto ciò che fai è eseguire la scansione e non ti interessa l'anonimato, ti consiglio anche di eseguire TOR in modalità tor2web (richiede ricompilazione) per una maggiore velocità.