De:YaCy-Tor

Aus YaCyWiki
Wechseln zu: Navigation, Suche
Icon info.png Note: Bislang gibt es keine Erkennung von Tor-URLs in Yacy, daher kann YaCy nur "tor-only" verwendet werden, da es sonst "nutzlose" Urls an normale Peers versenden würde. Halten Sie daher bitte alle Schritte genau ein und beachten sie die Hinweise.

Leute mit Peers im öffentlichen Cluster sollten URLs aus Tor auf die Blacklist setzen um zu verhindern das durch falsch konfigurierte Tor-Peers URLs aus dem Tor-Netz im öffentlichen Cluster verteilt werden. Der Eintrag muß etwa so aussehen: *.onion/.*

Icon info.png Note: Diese Anleitung gliedert sich in zwei große Teile. Bitte schliessen sie erst Teil 1 vollständig ab bevor sie mit Teil 2 beginnen.
Icon info.png Note: Bitte auch immer englische Version aktualisieren.
Warning.png Leider gibt es aktuell keine Blackliste, welche Whitelisting erlaubt, alternativ könnte man alle Domains auflisten, die nicht erlaubt sind, diese müsste dann immer gepflegt werden.

Zum Thema Whitlisting:

Kaskelix tor.png

Informationen

ToDOs

  • Ziel-Erklärung: Warum das ganze?

Ziel

Es soll ein eigenständiges YaCy-Netz aufgebaut werden, welches die Hidden Services innerhalb von Tor (Onion) indiziert. Dabei sollen keine anderen Seite des normalen Internets indiziert werden.

Es gibt ein weiteres Netz um Tor-Intern gemischt zu indizieren. Hinweise hierzu findest Du unter Ähnliche YaCy Netze.

Hilfe

Bei Fragen und Hilfesuche bitte ans Forum wenden: Komplett getrenntes YaCy-Netz für Tor und I2P?

Teil 1 - Tor und Privoxy konfigurieren

Installieren sie bitte zuerst Tor und Privoxy. Die Installation ist abhängig von ihrem Betriebssystem. Lesen sie bitte dazu die zu ihrem Betriebssystem passende Dokumentation der Software.

Tor konfigurieren

Es reicht vollkommen Tor als Client zu betreiben, obwohl wir später einen Hidden-Service einrichten wollen. Standardmäßig wird die Tor-Software so aufgeliefert das sie als Client sofort betriebsbereit ist. Sie sollten dennoch die Konfigurationsdatei von Tor (z.B. /etc/tor/torrc) editieren, um die Sicherheit für Ihr System zu erhöhen.

Suchen sie in der Konfigurationsdatei nach der Portangabe für den Socksport, als Standard ist hier 9050 angeben.

SocksPort 9050

Merken sie sich diese Portangabe.

Das sie sicher nur über einen Rechner verfügen sollten die den Port an localhost binden, damit Tor nur auf Verbindungen von localhost hört.

SocksListenAddress 127.0.0.1:9050

Als zusätzliche Sicherheitsmaßnahme sollte der Zugriff auf den Socksport zusätzlich entsprechend beschränkt sein.

SocksPolicy accept 127.0.0.0/8
SocksPolicy reject *

Die Angaben zu ORPort, ORListenAddress, DirPort oder DirListenAddress brauchen nur für einen Tor-Server gesetzt werden und sollten auskommentiert sein.

ControlPort sollte auskommentiert sein wenn sie kein Tool zur Verwaltung von Tor einsetzen.

Achten sie darauf das sie Logfiles nur für Debugzwecke aktivieren, ansonsten lassen sich ihre Aktivitäten später zurückverfolgen. Die Angabe

Log notice syslog

schreibt minimale Statusausgaben ins Systemlog. Das Log notice muß anscheinend gesetzt sein, sonst startet evt. Tor nicht korrekt. Die Angaben können je nach Betriebssystem verschieden sein.

Wer sich wirklich sicher beim Betrieb seines Tor-Client fühlen möchte, setzt am Anfang der Konfigurationsdatei optional noch ein

ExitPolicy reject *:*

Und am Ende optional noch ein

BandwidthRate 50 KB

Das bewart im Falle von "Fehlkonfigurationen" besser vor evt. Schäden durch hohen Traffic oder ungewollte Verbindungen.


Hier noch einmal die komplette Konfigurationsdatei (abhängig vom Betriebssystem, hier Linux)

ExitPolicy reject *:*
User tor
Group tor
PIDFile /var/run/tor.pid
SocksPort 9050
SocksListenAddress 127.0.0.1:9050
SocksPolicy accept 127.0.0.0/8
SocksPolicy reject *
Log notice syslog
DataDirectory   /var/lib/tor/data
# ControlPort 9051
# RunAsDaemon 1 # muß abhängig vom Betriebssystem gesetzt sein
BandwidthRate 50 KB

Privoxy konfigurieren

Für die folgende Konfiguration von Privoxy gehe ich davon aus dass sie Privoxy ausschliesslich zur Benutzung von Tor einsetzen wollen.

Editieren sie die Konfigurationsdatei von Privoxy (z.B. /etc/privoxy/config). Prüfen sie bzw. bearbeiten sie folgende Angaben.

Kommentieren sie auf jeden Fall das Logging von allen Seitenaufrufen (debug 1) aus. Sinnvoll ist nur das Loggen von Startmeldungen oder Fehlern im Bedarfsfall. Sinnvollerweise wird das Logging ganz deaktiviert.

debug 0 

Da der Proxy nur für Localhost erreichbar sein soll und unter dem Port 8118 laufen soll kontrollieren sie folgende Angabe für listen-adress.

listen-address 127.0.0.1:8118

Da Privoxy nicht als Filter eingesett werden soll, sondern nur als "Vermittler" zwischen YaCy und Tor sollten die Filter deaktiviert werden. Dies geschieht durch toggle. Auch alle Remote-Möglichkeiten hierfür benötigen sie nicht.

toggle 0
enable-remote-toggle 0
enable-remote-http-toggle 0

Das editieren von Filter oder Regeln können sie ebenfalls deaktivieren.

enable-edit-actions 0

Das wichtigste ist das alle Anfrage an den Sockport von Tor (9050) weitergeleitet werden sollen. (Nicht zu vergessen, mit dem Punkt am Ende)

forward-socks4a / 127.0.0.1:9050 .

Der Wert forwarded-connect-retries bestimmt wie oft versucht wird eine angefragte Seite zu erreichen. Den Wert sollte man leicht erhöhen, was sich (nach meiner subjectiven Erfahrung) positiv auf die Erreichbarkeit von Tor-Seiten auswirkt. Ich empfehle den Wert 2 oder 3.

forwarded-connect-retries 2

Hier noch einmal die komplette Konfigurationsdatei mit den Standard- und unseren Vorgaben (ggf. abhängig vom Betriebssystem, hier Linux)

confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile standard
actionsfile default
actionsfile user
filterfile default.filter
logfile privoxy.log
debug 0
# debug 1 # debug 1 unbedingt auskommentieren!
listen-address 127.0.0.1:8118
toggle  0
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
buffer-limit 4096
forward-socks4a / 127.0.0.1:9050 .
forwarded-connect-retries 2

Konfiguration testen

Bevor sie mit der Konfiguration von YaCy fortfahren, sollten sie die Funktion ihrer Konfiguration testen. Starten sie hierzu Tor und Privoxy. Warte sie ca. 1 Minute, damit Tor sich mit dem Tor-Netzwerk verbinden kann. Öffnen sie dann ihren Browser und tragen sie in der Browserkonfiguration Privoxy, mit der Angabe des Proxyhost localhost und dem Proxyport 8118, als Proxy ein. Rufen sie eine Seite aus dem Onion-Netz auf, z.B.

Wenn sie eine der Seiten erfolgreich aufrufen können, können sie mit Teil 2 fortfahren. Andernfalls prüfen sie ihre Konfiguration und ziehen ggf. die Dokumentation von Tor und Privoxy zu Rate.

Vergessen sie nicht Privoxy wieder aus ihrer Browserkonfiguration zu entfernen.

Teil 2 - Hidden-Service und YaCy einrichten

Icon info.png Note: Sie sollten mit diesem Teil erst beginnen wenn sie die Konfiguration aus Teil 1 erfolgreich getestet haben.

Hidden-Service konfigurieren

Stoppen sie Tor. Editieren sie die Tor-Konfigurationsdatei und legen sie einen Eintrag für YaCy als Hidden-Service an, etwa so:

HiddenServiceDir /var/lib/tor/yacy/
HiddenServicePort 8181 127.0.0.1:8181

Die Portangabe 8181 ist der Port von YaCy den wir später verwenden werden.

Nach einem Neustart von Tor finden sie in dem angegebenen Ordner HiddenServiceDir eine Datei mit Namen hostname. Den in dieser Datei enthaltenen Hostname (als Beispiel 1a2b3c4d5e6f7g89.onion) merken sie sich bitte für die spätere Konfiguration.

YaCy konfigurieren

Vorwort

Als erstes möchte ich erwähnen das es mehrere Varianten gibt, die Konfiguration von YaCy entsprechend anzupassen. Einmal über die Datei yacy.init und einmal direkt in der httpProxy.conf. Welche der beiden Varianten sie wählen bleibt ihnen überlassen.

Zu empfehlen ist aber eine aktuelle Version von YaCy herunterzuladen, zu entpacken und nicht zu starten, sondern erst die yacy.init zu bearbeiten, da sichergestellt werden kann, dass YaCy noch keine Kontakte aufgebaut und noch nicht indiziert hat. Diese in yacy.init stehenden Informationen werden beim ersten Mal in die Datei DATA/SETTINGS/httpProxy.conf geschrieben.

Auch für das Anpassen der superseed.txt gibt es mehrere Möglichkeiten, auch hier beschriebe ich einen anderen als den üblichen Weg um zu verhindern das bei Updates die original superseed.txt wiederhergestellt und anschließend benutzt wird.

Die vorn mir vorgeschlagenen Anpassungen stellen für mich die Optimallösung dar. Wenn sie davon abweichen wollen, können sie dies tun, allerdings sollten sie wirklich genau wissen was sie tun.

Desweiteren gehe ich davon aus es handelt sich um eine frische, noch nie gestartete Version von YaCy. Falls dieses bei ihnen nicht zutrifft sollten sie ihre bisherge YaCy-Installation verschieben oder bei Bedarf sogar löschen. Keinesfalls sollten sie versuchen diese umzubauen, da es mehrere hier nicht dokumentierte "Stolperfallen" gibt, wodurch ihr Tor-YaCy dann Verbindung zu öffentlichen YaCy-Cluster aufnehmen wird.

Ok, fangen wir an. Als Erstes wechseln sie in das YaCy-Verzeichnis. Alle folgenden Pfadangaben sind relative Angaben, basierend auf das YaCy-Verzeichnis.

Konfigurationsdateien ändern

Als nächstes ändern wir die yacy.init, damit die spezifischen Konfigurationen geladen werden können. IN der folgenden Anleitung werden nur die zuändernden Eigenschaften aufgeführt.

Als erstes legen wir den Port fest, über welchen unsere YaCy Installation erreichbar sein soll. Dieser muss sich von der ggf. vorhanden normalen YaCy Installation unterscheiden. In unseren Beispiel ist der Port 8181:

port = 8181

Wir müssen die Netzdefinitionen verlegen, da diese Standarddateien bei jedem Update überschrieben werden, und diese Installation befindet sich wieder im normalen Netz:

network.unit.definition = ../yacy.network.unit.tor
network.group.definition = ../yacy.network.group.tor

Da es aktuell noch nicht genügend getestet wurde, sollte man das automatische Update der YaCy Installation deaktivieren, bis sicher ist, dass dieses nichts zerstört, aber es sollte auch mit auto gehen:

update.process = manual

Ganz wichtig ist auch das Ersetzen des Blacklistfilters. Statt einer Blackliste ersetzen wir den Filter durch eine Whiteliste, so dass nur noch alle Domains indiziert werden, welche in der Liste stehen, anstatt, dass alle Seiten nicht indiziert werden, die in der Liste stehen. So können wir sicherstellen, dass nur Hidden Services indiziert werden, da diese durch die Domain Onion definiert sind. Es folg später noch die Konfiguration der Whitelist:

BlackLists.class=de.lulabad.blacklist.advancedWhiteURLPattern

Nun stellen wir ein, dass diese YaCy-Installation nicht direkt auf das Internet zugreift, sondern Privoxy nutzt, sonst kann YaCy nicht auf die Hidden Services zugreifen:

remoteProxyUse=true
remoteProxyHost=localhost
remoteProxyPort=8118

Da die DNS-Auflösung nun immer einen Netzwerk-lokale Adresse liefert, muss die IP-Adressen-Sperrliste für den Proxy geleert werden, da sonst YaCy versucht direkt ohne Proxy auf die Seiten zuzugreifen und diese somit nicht finden kann:

remoteProxyNoProxy=

Jetzt folgen die Angaben um das Seedfile des YaCy im Tor-Netzwerk zugänglich zu machen.

seedUploadMethod=File
seedFilePath=htroot/seed.txt
seedURL=http://1a2b3c4d5e6f7g89.onion:8181/seed.txt

Nun vergeben wir unseren YaCy auch einen Namen, der freiwählbar ist, aber möglichst einmalig sein sollte:

peerName=TorYaCy

Jetzt fügen wir eine Option ein, so dass YaCy im Debug-Modus laufen wird. Das hat zur Begründung das YaCy nur im Debug-Modus mit lokalen Adressen, wie sie von Tor benutzt werden, richtig umgeht.

yacyDebugMode=true

YaCy muss mitgeteilt werden, über welchen Hostnamen (Domain) dieser erreichbar ist, da sonst keine Verbindungen zu der Installation aufgebaut werden können:

staticIP=1a2b3c4d5e6f7g89.onion

Nun stellen wir ein, dass kein Browser-Fenster geöffnet werden soll, wenn YaCy gestartet wird. Wer will, dass dies geschieht, kann diesen Punkt ohne Bedenken überspringen:

browserPopUpTrigger=false

Jetzt setzen wir alle Timeout entsprechend hoch, da das Tor-Netzwerk nicht zu den schnellsten gehört.

clientTimeout=90000
crawler.clientTimeout=90000
proxy.clientTimeout=90000
indexControl.timeout = 180000
indexDistribution.timeout = 180000
indexTransfer.timeout = 360000

Nun fügen wir die Optionen ein die sehr wichtig sind, damit unser Peer keinen Kontakt zu öffentlichen Cluster aufnimmt, sonderen nur zu den andernen Tor-YaCy.

CRDistOn = false
CRDist1Target  =

Aus Sicherheitsgründen ist es auch wichtig, dass der Proxy nicht über das Tor-Netzwerk erreichbar ist. Nachfolgende Konfiguration beschreibt das Szenario, dass YaCy auf dem gleichen Rechner läuft, wie Tor. Dann muss man beim Browser ggf. localhost als Adresse für den Server angeben sondern die lokale IP bspw. 192.168.1.2:

proxyClient=192.168.*,10.*

Als Letztes setzen wir noch einige Optionen um die Anonymität im Tor-Netz zu erhöhen.

proxy.sendViaHeader=false
proxy.sendXForwardedForHeader=false
useYacyReferer=false
useYacyReferer__pro = false

Optional können wir noch folgende Optionen setzen, die zum einen die maximale Dateigröße (hier ~10MB) beschränken, zum anderen den Cache von YaCy aus Sicherhitsgründen auf ein Minimum (hier 4MB) reduzieren, da sonst die angesurften Seiten dort zu finden sind

crawler.ftp.maxFileSize=10000000
crawler.http.maxFileSize=10000000
proxyCacheSize=4
Icon info.png Note: Läuft ihr YaCy unter einem Linux oder einem vergleichbarem Betriebssystem vergessen sie nicht die Rechte und/oder den Besitzer des YaCy-Verzeichnisses, insbesondere DATA/SETTINGS sowie die darin enhaltenen Datei httpProxy.conf, so zu setzen das Account unter dem YaCy läuft hier Lese- und Schreibrechte hat. Beispiel: chown -R yacy: ./

Whitelist aktivieren

Standardmäßig kann YaCy nur eine Blacklist führen.

Warning.png Leider gibt es aktuell keine Blackliste, welche Whitelisting erlaubt, alternativ könnte man alle Domains auflisten, die nicht erlaubt sind, diese müsste dann immer gepflegt werden.

Aus diesem Grunde muss man die advancedBlacklist-0.3.jar (oder höher) herunterladen und in das Verzeichnis libx kopieren. Danach steht einem der oben in der yacy.init konfigurierte Filter zur Verfügung.

Aktuell funktioniert diese Funktion nicht und somit kann YaCy auch nicht für die Indizierung von Tor eingesetzt werden:

Nun müssen wir noch den Eintrag machen, damit nur Onion-Seiten indiziert werden:

  • Erstellen des Unterverzeichnisses DATA
  • Erstellen des darunterliegenden Verzeichnisses LISTS (also DATA/LISTS)
  • Erstellen der darunterliegenden Datei url.default.black (also DATA/LISTS/url.default.black) mit folgenden Inhalt:
*.onion/.*

Ein Workaround zu einer Blacklist in YaCy ist ein vorgeschalteter filternder Proxy, der nur *.onion Domains akzeptiert und alle anderen verweigert.

Definieren des YaCy-Tor-Netzwerkes

Mittlerweile kann YaCy getrennte Netzwerke aufbauen und definieren: Netzdefinition

Die aktuellen Definitionen gibt es unter [1] und [2] zum Herunterladen.

yacy.network.group.tor ist im Endeffekt leer und yacy.network.unit.tor hat effektiv folgenden Inhalt:

network.unit.name = torworld
network.unit.description = Yacy network for TOR https://www.torproject.org/
network.unit.domain = any
network.unit.search.time = 4
network.unit.dhtredundancy.junior = 1
network.unit.dhtredundancy.senior = 3
network.unit.bootstrap.seedlist0 =  http://byi4akelnxrz5tab.onion:8081/seed.txt
network.unit.bootstrap.seedlist1 = http://pah22f4rpnz4hoyn.onion:8084/seed.txt
network.unit.bootstrap.seedlist2 = http://zxbagwypsfbicebv.onion:8091/seed.txt
network.unit.update.location0 = http://yacy.net/Download.html
network.unit.update.location1 = http://latest.yacy.de
network.unit.update.location2 = http://www.findenstattsuchen.info/YaCy/latest/index.php
network.unit.protocol.control = uncontrolled

YaCy starten

Jetzt kann YaCy gestartet werden. Beobachten sie das Logfile und ggf. die Netzwerkgrafik, da hier andere Tor-YaCy in wenigen Minuten angezeigt werden sollten. Beim Logfile sollten sie darauf achten, dass hier keine öffentlichen Adressen angezeigt werden. Fehlermeldungen bei den Seedfiles sind zu Anfang oft normal und können vernachlässigt werden sobald das erste andere Tor-YaCy gefunden wurde.

Icon info.png Note: Rufen sie nach dem ersten Start zuerst http://localhost:8181/ auf und vergeben sie ein Admin-Passwort.

YaCy benutzen

Tragen sie nun YaCy mit den Proxyhost 192.168.1.2 (bzw. die richtige IP Ihres Servers) und dem Proxyport 8181 in ihrer Browserkonfiguration ein. Nun sollten sie in der Lage sein Tor-Seiten über YaCy aufzurufen.

Hinweise

Wichitg:

Tor ist ein langsames und ein bisschen instabiles System. So dauert es eine Weile, bis die Server sich finden und auch dann Daten austauschen können. Daher habt ein bisschen Geduld.

Weitere Hinweise:

  • Nicht alle Tor-Seiten können sofort aufgerufen werden, evtl. laden sie die Seite mehrfach neu
  • DHT-Transfer zu anderen Tor-YaCy funktioniert (Ungetestet)
  • RankingDistibution zu anderen Tor-YaCy funktioniert (Ungetestet)
  • Der Status eines Peer ist in Tor abhängig von der Qualität der Verbindung wechselhaft, wundern sie sich also nicht wenn sie einmal Principal sind und wenige Minuten später nur Junior
  • Vermeiden sie es Seiten aus dem Internet über Tor-YaCy zu indizieren. Das zerstört den "Tor-internen" Index. Filterregeln welche Seiten aus dem Internet blockieren finden sie ggf. auf anderen Tor-Peers. Nutzen sie diese.

Sicherheitshinweise

  • in allen verwendeten Programmen sollte das Logging deaktiviert sein oder die Logfiles auf einer Ramdisk liegen, das schließt YaCy ein
  • der HTCACHE von YaCy sollte sich auf einer Ramdisk befinden
  • werden Crawl angestoßen, sollten diese nur als lokale, nicht als globale Crawls gestartet werden, auch ist der Crawlingfilter auf Onion-Domains zu beschränken
  • Wiki oder Blog, sollten mit Vorsicht verwendet werden
  • öffentliche Bookmarks sollten nicht verwendet werden
  • Browsercache und Browserhistory sollten deaktiviert sein
  • paranoide Zeitgenossen benutzen ein verschlüsseltes Dateisystem für YaCy

Seeds für Tor-YaCy

Bitte hier nur möglichst gut verfügbare Seed-Dateien nennen, damit diese dann auch in die Unit-Datei eingepflegt werden können

http://byi4akelnxrz5tab.onion:8081/seed.txt
http://pah22f4rpnz4hoyn.onion:8084/seed.txt
http://zxbagwypsfbicebv.onion:8091/seed.txt

Wenn ihr Tor-YaCy funktioniert, posten sie den Link zu ihrem Seedfile (das ist der Wert aus seedURL) bitte hier.

Demo-Peers

Verfügbarkeit der Demo-Peers ohne Gewähr.

Ähnliche YaCy Netze

Bitte schließt Euch nach Möglichkeit immer einem bestehenden Netz an. Die Ressourcen bei Tor sind knapp und sollten geschont werden, und gleichzeitig ist es schon schwierig genug genügend Server zusammen zu bringen, um ein stabiles Netz innerhalb von Tor zu bilden.

freeworld

Also es ist nicht ein eigenes Netz in diesem Sinne, sondern hier sollen einfach alle Server gelistet werden, die auch über Tor erreichbar sind.

Diese indizieren nicht die Tor-Hidden-Services, aber sollen eine anonyme Suche ermöglichen.

Die neuen Server gerne auch im Tor-Netzwerk propagieren:

anonymworld

Icon info.png Note: Dieses Netz wurde abgeschalten, da die höhere Priorität bei dem allgemeinem freeworld und dem speziellen torworld Netzwerk liegen. Lieber sollte dann ein Node, welcher im freeworld liegt, über Tor verfügbar gemacht werden. Dies nutzt allen mehr.

Zielsetzung

Im Gegensatz zum obigen Netzwerk handelt es sich um ein Netz, welches neben Hidden Services auch das normale Netz indizieren soll, aber ausschließlich über Hidden Services erreichbar sein soll.

Unterschiede

Folgende Änderungen bzgl. der obigen Anleitung sind zu beachten:

  1. Keine Whitelist: Alle Angaben bzgl. Blacklist/Whitelist (auch die extra Jar-File) sind hinfällig
  2. Eigenes Netz: Es gibt spezielle Unit und Group Dateien

Wichtig: Dies sind nur die Unterschiede zur allgemeinen Beschreibung!

Unit/Group-Files

Die aktuellen Definitionen gibt es unter [3] und [4] zum Herunterladen.

yacy.network.group.tor ist im Endeffekt leer und yacy.network.unit.tor hat effektiv folgenden Inhalt:

network.unit.name = anonymworld 
network.unit.description = Yacy network for TOR https://www.torproject.org/ indexing whole world
network.unit.domain = any
network.unit.search.time = 4
network.unit.dhtredundancy.junior = 1
network.unit.dhtredundancy.senior = 3
network.unit.bootstrap.seedlist0 =  http://jarwf7lglg3lbujb.onion:8086/seed.txt

Demo Peers

Verfügbarkeit der Demo-Peers ohne Gewähr.

Seed-Liste

Bitte hier nur möglichst gut verfügbare Seed-Dateien nennen, damit diese dann auch in die Unit-Datei eingepflegt werden können:

http://jarwf7lglg3lbujb.onion:8086/seed.txt

Weiterführende Links

Flag-england.gif There is an english version of this page.