Anubis vor SearXNG: Bots mit Proof of Work ausbremsen

  Lars Müller   Lesezeit: 2 Minuten  🗪 11 Kommentare Auf Mastodon ansehen

Meine Entdeckung des Jahres um ungewollten Traffic von Bots und Crawlern von einer Webseite herauszufiltern. Anubis

anubis vor searxng: bots mit proof of work ausbremsen

Öffentlich erreichbare Selfhosted-Dienste, wie auch meine, haben immer öfter Probleme. Scraper und automatisierte Clients erzeugen inzwischen deutlich mehr Traffic als echte Nutzer. Besonders unangenehm wird das bei Diensten wie SearXNG, denn jede automatisierte Suchanfrage wird wiederum an externe Suchmaschinen weitergereicht. 

Das Ergebnis wird schnell ernüchternd aussehen. So hatte meine Searxng Instanz https://suche.dasnetzundich.de immer mehr HTTP 429 Fehler, Suchmaschinen, die meine Server-IP gesperrt haben. 

Eine interessante Lösung dafür ist Anubis.

Was macht Anubis?

Anubis wird als zusätzliche Schicht vor die eigentliche Webanwendung gesetzt. Statt jeden Client direkt zur Webseite durchzulassen, kann Anubis eine Proof-of-Work-Challenge ausführen.

Für einen normalen Besucher ist diese zusätzliche Berechnung kaum relevant. Ein Scraper, der jedoch tausende Seiten oder Suchanfragen automatisiert abrufen möchte, muss die Berechnung immer wieder durchführen. Damit wird massenhaftes Scraping deutlich unattraktiver.

Der Aufbau kann beispielsweise so aussehen:

Internet
   ↓
Nginx
   ↓
Anubis
   ↓
SearXNG

Anubis übernimmt dabei nicht die eigentliche Anwendungssicherheit von SearXNG, sondern dient als vorgeschalteter Türsteher.

Installation mit Docker Compose

Anubis lässt sich problemlos zusammen mit der eigentlichen Anwendung in einer Compose-Datei betreiben. Ein vereinfachtes Beispiel:

services:

  searxng:
    image: searxng/searxng:latest
    restart: unless-stopped
    networks:
      - search

  anubis:
    image: ghcr.io/techarohq/anubis:latest
    restart: unless-stopped

    environment:
      BIND: ":8080"
      TARGET: "http://searxng:8080"
      DIFFICULTY: "4"

    ports:
      - "127.0.0.1:8383:8080"

    networks:
      - search

networks:
  search:

Der eigentliche SearXNG-Container benötigt dadurch keinen Port mehr auf dem Host. Nur Anubis lauscht lokal auf Port 8383.

Der vorhandene Nginx-Reverse-Proxy zeigt anschließend auf Anubis:

location / {
    proxy_pass http://127.0.0.1:8383;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Der Effekt ist sofort sichtbar

Besonders interessant wird es beim Blick in die Logs. Während automatisierte Clients vorher direkt Suchanfragen an SearXNG schicken konnten, sieht man mit Anubis stattdessen Meldungen wie:

new challenge issued

Der Client muss also zunächst beweisen, dass er bereit ist, etwas Rechenarbeit zu investieren. Viele einfache Scraper kommen dadurch gar nicht mehr bis zur eigentlichen Anwendung. Hier ein kurzer Ausschnitt wie es aussieht wenn Anubis Bots filtert.

Kein vollständiger Bot-Schutz, aber sehr praktisch

Anubis ist kein Allheilmittel. Moderne Browser und JavaScript müssen funktionieren, und je nach Browser oder Datenschutzeinstellungen kann es gelegentlich Probleme mit Cookies oder der Challenge geben.

Auch vorhandene Rate-Limits oder Schutzmechanismen der eigentlichen Anwendung sollte man weiterhin verwenden.

Als zusätzliche Schutzschicht vor öffentlichen Selfhosted-Diensten ist Anubis jedoch ausgesprochen interessant. Gerade bei Anwendungen wie SearXNG, bei denen automatisierter Traffic indirekt weitere externe Requests erzeugt, kann eine vorgeschaltete Challenge viel Ärger verhindern. Nicht einbauen würde ich Anubis bei öffentlich erreichbaren Webseiten wie GNU‑Linux.ch. Das würde nämlich verhindern, dass die gewollten Bots der Suchmaschinen diese nicht mehr indexieren können. 

Wer öffentlich erreichbare Dienste betreibt und zunehmend mit Scrapern zu kämpfen hat, sollte sich Anubis definitiv einmal ansehen.

Quelle: https://anubis.techaro.lol/

Tags

Anubis, Self-Hosting, Reverse-Proxy

EinLeser
Geschrieben von EinLeser am 3. September 2026 um 11:47

"Moderne Browser und JavaScript müssen funktionieren, und je nach Browser oder Datenschutzeinstellungen kann es gelegentlich Probleme mit Cookies oder der Challenge geben." Ja. Was Anubis noch tut? Sämtliche Menschen, die zum Schutz ihrer Privatsphäre den Tor Browser nutzen, konsequent aussperren: https://github.com/TecharoHQ/anubis/issues/1645 Wirklich tolles Feature für Selfhosted-Dienste, zu deren primärer Zielgruppe ja gerade die jenigen gehören, die auf Privatsphäre bedacht sind!

(PS: diese Seite kann man übrigens auch nur noch von ca. einem von 30 Tor Exit Nodes erreichen. Alle anderen werden anscheinend ebenfalls geblockt. Sehr löblich...)

Lars Müller
Geschrieben von Lars Müller am 13. September 2026 um 21:21

Das mag alles sein, aber wenn man nicht mit Hilfe von Anubis Dienste Absichert gegen Bots usw. sind diese Dienste unbenutzbar, leider. Ich wünschte es würde auch anders gehen.

Lars Müller
Geschrieben von Lars Müller am 13. September 2026 um 21:41

Das „ kann es gelegentlich Probleme mit Cookies oder der Challenge geben.“ Hab ich auch ohne Tor zeitweise, aber nur im Firefox Browser am IPhone. Am Desktop hab ich keine Probleme.

Tobias
Geschrieben von Tobias am 5. September 2026 um 23:55

Wirklich einfach nur lächerlich: Eine Webseite, welche sich dem Leitmotiv "Freie Software, freie Gesellschaft" widmet. Dazu dann sich aber dadurch auszechnet Bilder durch Algorithmen generieren zu lassen - na immerhin wird das noch gerecht den aktuellen Regeln markiert. Dazu dann auch Artikel veröffentlicht, in welchen JavaScript-Projekte wie Anubis empfohlen werden. Übrigens wird Anubis selbst auch mittels stochastischen Algorithmen entwickelt (nichts Anderes ist hinter dem Mode- und Schlagwort "KI" zu sehen).

Wunderbar, die hübsche neue und tapfere Welt, in welcher sich geneigte NuterInnen nur noch mittels vorgefertigter Skripte irgendwelche Dienste sprichwörtlichst zusammen "klicken" statt selbst wirklich auch handwerklich tätig zu werden.

Ephraim Admin
Geschrieben von Ephraim am 6. September 2026 um 16:14

Wir freuen uns sehr über einen eigenen Artikel, der ein komplett selbst geschriebenes Projekt ohne KI aufzeigt.:D

Du musst den Artikel ja nicht lesen, wenn es dich nicht interessiert.

Lars Müller
Geschrieben von Lars Müller am 13. September 2026 um 21:22

So ist es @Ephraim

Froschi
Geschrieben von Froschi am 10. September 2026 um 21:45

Was ist dein Problem mit JavaScript? JavaScript ist extrem wichtig für das Web und der Satz „Dazu dann auch Artikel veröffentlicht, in welchen JavaScript-Projekte wie Anubis empfohlen werden“ im Zusammenhang mit „einfach nur lächerlich: Eine Webseite, welche sich dem Leitmotiv "Freie Software, freie Gesellschaft" widmet“ wirkt fast so, als wäre JavaScript in deinen Augen nicht vereinbar mit freier Software. PS: Das Wort »auszechnet" existiert im Deutschen nicht.

Tobias
Geschrieben von Tobias am 11. September 2026 um 16:42

Ich kann gerne mein Problem mit JavaScript konkret spezifizieren. Doch zunächst einmal: Natürlich existiert das Wort "auszechnet" in Deutsch nicht, weil eben das Zeichen "i" hier fehlt. Mea culpa für das Auslassen von eben diesem Zeichen und dann ist deine Aussage inwiefern besser? Im Gegensatz zu dir möchte ich aber die Sachebene gar nicht erst verlassen. Ergo kannst du dir den plump wirkenden Versuch der Agitation mit "argentum ad hominem" auch sparen, würde somit auch den vielleicht positiven Kernaspekt einer Unterhaltung wieder bestärken statt einen im besten Falle seltsam wirkenden Eindruck zu hinterlassen.

Aber eben die Sachebene: JavaScript ist eben rein zur Unterstützung gedacht gewesen. Vielleicht einfach dazu einmal die Historie nachschlagen? JavaScript wurde dazu verwendet HTML ursprünglich zu erweitern und wird heute für "mehr" verwendet. Ich habe zu keiner Zeit gesagt, dass JavaScript eben keine freie Software darstellt. Das ist nun deine Annahme und Projektion in meine Wortwahl und Ausgestaltung. Es ist aber faktisch so, dass es auch NutzerInnen gibt, die JavaScript aus guten Gründen (Sicherheit, Laufzeitumgebung und Anforderungen an eben diese) ablehnen. JavaScript gehört faktisch nur in einen Webbrowser, wenn überhaupt und sollte mit Vorsicht Verwendung finden. Die Anforderungen an einen sog. "modernen Webbrowser" sind mehr als nur fragwürdig, wenn es einzig darum gehen würde (und meiner Meinung nach auch nur sollte) Inhalte und damit Text in Kombination mit Bildern darzustellen. Eine freie Gesellschaft inkludiert soweit möglich und exkludiert nicht nach Wahl der Methodiken. Damit sollte das absolute Mindestmaß an Anforderungen immer der wichtigste Maßstab sein und nicht die Ausgestaltung mit überladenen JavaScript-Elementen, welche die Darstellung träge und die Systemanforderungen auch zudem noch erhöhen.

Tobias
Geschrieben von Tobias am 7. September 2026 um 01:30

Ich kann gerne eine Empfehlung hinterlassen und ich muss das nicht lesen, korrekt. Dennoch möchtet ihr / möchtest du doch bitte nicht anzweifeln wie sehr mediale Aufbereitung und Berichterstattung nicht nur Einfluss auf den Alltag nimmt sondern ihn auch zusehends prägt und vorantreibt. Will also sagen: Je mehr das Stichwort "KI" im Umlauf ist, desto mehr gewinnt dieses implizit an Bedeutung. Selbst wenn dahinter eben auch etwas vollkommen Anderes steckt und vornehmlich sehr viel Hochgejubeltes (nein, kein verschwörungtheoretischer Unsinn sondern schlicht die Mücke zum Elefanten gemacht).

Die gesellschaftlichen Implikationen sind noch längst nicht absehbar, abseits der Umweltschäden und der wirklich hohe Energieverbrauch. Und Anubis wird tatsächlich mittels stochastischer Algorithmen entsprechend verwaltet:

https://github.com/TecharoHQ/anubis/pull/321 https://github.com/TecharoHQ/anubis/pull/749 https://github.com/TecharoHQ/anubis/blob/main/AGENTS.md https://github.com/TecharoHQ/anubis/commit/d40b5cfdab11c62dc2ed226bde32b19ea7107f21

Guter Scherz also: Das Projekt hier setzt auf zweifelhaften Technologien auf und wir reden hier absolut nicht über schlicht neue Projekte, Software und Algorithmen. Wenn ihr schon solcherlei vorstellt, dann solltet ihr auch Möglichkeiten und Alternativen anbieten. Wie wäre es dann mit: https://git.gammaspectra.live/git/go-away

Und ich habe wie gesagt den Artikel gelesen, weil es mich interessiert hat wie weit weg die Webseite von ihrer Aussage entfernt ist: Freie Menschen in einer freien Gesellschaft betätigen sich handwerklich mit ihrem eigenen Sachverstand und arbeiten nicht auch noch mit der Methodik, welche riesige Umweltschäden erzeugt. Aber danke für den süffisanten Kommentar und zuletzt sei gesagt: Nein, ich werde mit Sicherheit jetzt keinen Artikel einreichen, um mich an diesem Schauspiel hier zu beteiligen. GNU/Linux, das ich nicht lache. Wie wäre es denn mit einem kritischen Blick auf die Zukunftsperspektiven? Oder kommt Strom aus der Steckdose und Wasser aus dem Wasserhahn? Exakt das ist nämlich das Problem: Menschen verlieren ihre Perspektiven, Versprechungen von Digitalisierung werden nicht eingehalten (das ist gar nicht möglich und war auch nie so gedacht), die Umwelt und der Planet erleiden irreperable Schäden und wir pudern Wahnsinnigen mit reichlich monetären Möglichen den Allerwertesten (ja auch im GNU/Linux Bereich, gerade da als Umfeld für Experimente). Aber okay, Traumschlösser lassen halt grüßen. Und bevor jetzt wieder die netten Vergleiche zu den Hufschmieden zu Beginn der Industrialisierung kommen: Hat sich Jemand den seitdem entstandenen Schaden an der Umwelt einmal angesehen? Es hat einen Preis, dies hatten beschleunigte Industrialisierung, Fahrzeuge, maschinelle Automatisierung auch. Jetzt kann sich jeder Interessierte dann auch ausmalen was dann riesige Rechenzentren an Energie und mehr benötigen und was dann die sog. Gegenreaktion wirklich erreicht in diesem üblen Wettkampf. Aber das suche ich hier wirklich vergeblich: Das Plädoyer für den eben anderen Ansatz. Hier eher Apologetentum für allerlei Begeisterung, die ich sogar verstehen kann - wirklich. Ich war auch dereinst begeistert 2010 und zuvor. Nur zu was sich das nun Alles entwickelt hat und entwickelt? Das löst keine Begeisterung mehr aus, nur noch Schrecken wie sehr wir Verantwortung negieren und auslagern andernorts oder später. Aber okay, dann macht mal.

Lars Müller
Geschrieben von Lars Müller am 13. September 2026 um 21:34

Ich glaube du hast meine Intention mit dem Artikel komplett missverstanden. Mit Anubis habe ich auf diese meine SearxNG Seite abgesichert so das sie für mich nutzbar ist. Ob andere diese nutzen ist mir relative egal zumal diese nicht gelistet ist.

Es ging mir nur um das Filtern von Bots/Scrapern usw. Das schöne ist ja an der freien Software und dem WWW, man kann sie nutzen, oder eben auch nicht und sucht sich bei Nichtgefallen was anders.

pdl
Geschrieben von pdl am 7. September 2026 um 10:48

Wer oder was geblockt wird, hängt einzig und allein vom Regelwerk ab, welches man in Anubis konfiguriert. Im Zweifel ist also nicht Anubis zu beschuldigen, sondern derjenige, der Anubis konfiguriert hat. Diese Seite kann ich per Tor-Browser überhaupt nicht aufrufen. Warum auch immer, ich bekomme ein Timeout. https://anubis.techaro.lol/docs/admin/installation/ wird ebenfalls per Anubis geschützt, auch das lässt sich per Tor-Browser aufrufen. Und ja, ich habe mich beim Schreiben der Anubis-Policy von KI unterstützen lassen.