Searx: Suchmaschinen-Traffic durch das Tor-Netzwerk leiten

Nach der Installation einer Searx-Instanz wird der Datenverkehr zwischen Searx und den Suchmaschinen standardmäßig auf normalem Weg durch die unendlichen Weiten des Internets geleitet. Wer seine Searx-Instanz also in einem Netzwerk betreibt, dessen WAN-Adresse auf euch als Person schließen lassen könnte, der möchte den Datenverkehr vermutlich durch das Tor-Netzwerk leiten. Da Searx sowohl SOCKS- als auch HTTP-Proxys unterstützt, ist das kein Problem.

Bei der Verwendung des Tor-Netzwerks für ausgehenden Datenverkehr der Searx-Instanz besteht der Vorteil darin, dass die Suchmaschinen nicht immer die selbe IP-Adresse (z.B. von eurem VPS) sehen und somit keine Rückschlüsse wie „Ah, von der IP-Adresse kommen immer solche und solche Suchanfragen; das ist bestimmt die selbe Person“ ziehen können. Oder: „Ah! Diese IP-Adresse hat diesen PTR-Record (02.nmnd.de). Das ist dieser Kerl mit seinem Blog.“

Meiner Einschätzung nach wäre das schlimmer, als wenn man die Suchmaschinen direkt über ihre URL vom privaten Internetanschluss aus besucht. Dann sehen die Suchmaschinen zwar die IP-Adresse des Anschlusses, aber diese ist „von außen“ erst einmal keiner bestimmten Person zuordenbar. Wenn ich aber von meinem VPS – auf dem der Blog läuft und dessen IP-Adresse mit der Domain nerdmind.de in Verbindung steht – eine Suchanfrage tätige, dann ist das Mapping von IP-Adresse auf Person viel einfacher, als wenn ich mit meiner „anonymen“ Vodafone-IP unterwegs bin.

Andererseits wäre die Verwendung einer Searx-Instanz ohne Tor-Proxy pauschal aber immer noch besser, als die Suchmaschinen direkt im Webbrowser aufzurufen, wenn man das Problem des Browser-Fingerprintings bedenkt. Vermutlich wird der Nutzer eher automatisiert über Javascript und Tracking-URLs (wie z.B. bei Google) im Browser getrackt, als dass geguckt wird, ob die IP-Adresse zu einem VPS gehört und welche Domains diesem zugeordnet sind.

Es kommt also für die Entscheidung auf das „Threat-Model“ an, also gegen was man sich schützen möchte. Für mein Setup (Searx-Instanz auf VPS, dessen IP auf mich als Person schließen lässt) ist die Lösung mit dem Tor-Proxy ideal.

Das wären meine Überlegungen zu der Thematik. Falls ich da einen Denkfehler drin habe oder jemand noch Anregungen hat, kann er es mir gerne per Mail mitteilen. Nun geht es aber weiter mit der Anleitung!

Tor installieren und Searx-Konfiguration anpassen

Zur Installation des Tor-Clients muss unter Debian-artigen Linux-Distributionen lediglich das Paket tor installiert werden (wer möchte, kann vorher auch noch das eigene Package-Repository vom Tor-Projekt aktivieren):

sudo apt install tor

Der Tor-Dienst ist danach automatisch gestartet und aktiviert. An der Konfiguration von Tor muss nichts geändert werden, da Tor mit vernünftigen Standard-Einstellungen daherkommt. Standardmäßig startet der Tor-Dienst einen SOCKS5-Proxy auf localhost:9050, den wir nun in der Searx-Konfiguration (settings.yml) wie folgt ansprechen:

outgoing:
    proxies:
        all://: 'socks5h://localhost:9050'
    extra_request_timeout: 5.0

Nun sollte der Datenverkehr zwischen Searx und den Suchmaschinen durch das Tor-Netzwerk fließen. In Ergänzung hierzu empfiehlt es sich noch, den Bilder-Proxy in der Searx-Konfiguration standardmäßig einzuschalten, damit auch die in den Suchergebnissen eingebundenen Bilder über die Searx-Instanz (und somit über Tor) geladen werden:

sed -i 's/image_proxy : False/image_proxy : True/' ~/settings.yml

Nachteile bei der Verwendung des Tor-Proxys

Ein Nachteil bei der Verwendung des Tor-Proxys ist, dass manche Suchmaschinen absichtlich oder unabsichtlich Tor-Exit-Nodes blockieren und die Searx-Instanz dann keine Ergebnisse von diesen Suchmaschinen zurückliefert. Daher ist hier noch ein bisschen Feintuning in den Einstellungen angesagt. Meine Konfiguration der Suchmaschinen sieht momentan wie folgt aus und liefert zuverlässig Ergebnisse (zumindest für die Kategorien „Allgemein“ und „Bilder“):

engines:
    - name: google
      disabled: True
    - name: yahoo
      disabled: False
    - name: qwant
      disabled: False
    - name: duckduckgo
      disabled: False
    - name: startpage
      disabled: False
    - name: reddit
      disabled: False
    - name: dictzone
      disabled: True
    - name: ccengine
      disabled: True
    - name: qwant images
      disabled: False
    - name: library of congress
      disabled: True
    - name: duckduckgo images
      disabled: False
Der Autor

Hi. Ich bin Thomas. Hier veröffentliche ich in unregelmäßgen Abständen mehr oder weniger interessante Beiträge über Dies und Jenes, hauptsächlich über Computer und IT. Außerdem mag ich die Linux-Kommandozeile, vor allem wenn ich mit (m)einer mechanischen Tastatur darauf herumhacken kann. 😀