De:YaCy-Tor
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. |
Note: Bitte auch immer englische Version aktualisieren. |
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:
Inhaltsverzeichnis
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
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
Whitelist aktivieren
Standardmäßig kann YaCy nur eine Blacklist führen.
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
(alsoDATA/LISTS
) - Erstellen der darunterliegenden Datei
url.default.black
(alsoDATA/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.
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:
- Neue Hidden-Services ankündigen
- Diskussion über YaCy im Tor-Netzwerk und Bekanntgabe einiger YaCy-Server
anonymworld
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:
- Keine Whitelist: Alle Angaben bzgl. Blacklist/Whitelist (auch die extra Jar-File) sind hinfällig
- 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
- https://www.awxcnx.de/tor-i2p-proxy.htm - Proxy-Seite zum Surfen im Tor-Netzwerk ohne eigener Tor-Installation
- http://tor.eff.org/download.html.de -- Tor herunterladen mit Installationsaleitungen für verschiedene Systeme
- http://rabe.supersized.org/archives/683-Mini-DNS-Server-fuer-Tor.html -- Hinweis auf die DNS-Lücke und deren Behebung
- APE Wiki - Hidden Services - Search Engines
- Komplett getrenntes YaCy-Netz für Tor und I2P?
- core.onion - Build decentral search engine network to index hidden services
There is an english version of this page.