Wie "Ansturm" auf gitweb verhindern?

  • Hiermit scheint zumindest die HTML-seite zu funktionieren:

    Jetzt muss ich nur noch des Apache-Setup hinbekommen.

  • Im Zuge dieses Beitrages habe ich mir eben das Anubis-Wiki noch mal näher angesehen und eventuell ist das auch hier eine brauchbare Lösung.

    Ich möchte es den Bots schwer machen, nicht den Usern.

    Anubis quält den Besucher mit Javascript-Berechnungen (How Anubis works).
    Bei einem normalen Browser fällt das nicht ins Gewicht (bei mir deutlich unter 1s und der Rechner ist nicht der Schnellste.)
    Bei einem Server mit ein paar tausend Bots drauf läppert sich das aber.
    Weitere Tests, ob es ein echter Browser ist, sind wohl auch noch geplant.

    Nachdem ich Google-Maps für den Counter losgeworden bin möchte ich mir da nicht gerne wieder was "einfangen" ;-).

    Nach der Beschreibung ist Anubis open source Software (MIT License) und läuft lokal auf dem Webserver.
    Auch setzten einige bekannte Seiten aus dem open source Bereich die Software ein.
    (Wirklich beurteilen kann ich das Javascript selber aber nicht!)

    Die haben auch eine detaillierte Installations-Anleitung für Apache-Server.
    Und für OpenSuSE Tumbelweed gibt es das sogar als Paket.

    Evtl. lohnt sich das mal anzusehen, ehe man das Rad neu erfindet.
    Auf Dauer ist das vermutlich auch weniger Aufwand gelegentlich mal ein Update zu machen als sich immer selber mit den Bots rum zu schlagen.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Hiermit scheint zumindest die HTML-seite zu funktionieren:

    Das setzt aber voraus, dass die "Browser" der Bots überhaupt Javascript unterstützen bzw. ("lokal") ausführen, oder?
    Ich bin immer noch geflasht, von der schieren Anzahl der Requests - immerhin gehts hier um VDR und nicht irgendeine millionfach verbreitete (Standard)Bibliothek.

    MyVDR: yaVDR-Ansible (Ubuntu 20, VDR 2.4.8) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr (tvm) - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 21 - xstream
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Man weiß nicht was die "Bots" können. Da hilft wohl nur ausprobieren.

    Pragmatische Idee:

    • Mit "Mod Rewrite" über "RewriteCond" auf ein "Magic String" in "HTTP_COOKIE" matchen.
    • Wird dieser String NICHT gefunden, dann wird die aktuelle URL weitergeleitet auf ein HTML (z.B. "captcha.html") aber mit der URL von der weggeleitet wird als Parameter.
    • Auf dem HTML liegt JavaScript welches nun erstmal das Cookie mit dem "Magic String" setzt, sich dann die ursprüngliche URL aus dem Parameter holt und dahin umleitet
    • Ab jetzt ist das Cookie passend gesetzt und es erfolgen keine Weiterleitungen mehr.

    Vorteil dieser Lösung: Man kann (zumindest bei Arch) dieses Cookie auch in einem Build-Script setzen und somit ohne ein Redirect an das ".tar.bz2" kommen ohne über einen Mirror zu gehen.

    Edited once, last by M-Reimer (January 26, 2026 at 10:58 PM).

  • Post by kls (January 27, 2026 at 10:14 AM).

    This post was deleted by the author themselves (January 27, 2026 at 10:17 AM).
  • Post by kls (January 27, 2026 at 10:17 AM).

    This post was deleted by the author themselves (January 27, 2026 at 10:17 AM).
  • Inzwischen hat sich die Lage wieder beruhigt. Anscheinend haben jetzt die Bots alle Links durchforstet.

    Hier für die, die es interessiert, der Verlauf der letzten Tage (wieso das Bild "blocked" ist, weiß ich nicht):

    Normalerweise habe ich den Apache Server auf 150 Clients eingestellt, was völlig ausreicht. In der Nacht vom 21. zum 22. stieg die Zahl der gleichzeitigen Zugriffe dann langsam immer weiter an, um dann am 23. ständig alle 150 Clients zu belegen und damit sehr träge zu werden. Ich habe das dann schrittweise erhöht, bis es bei 800 dann nicht mehr permanent in der Sättigung war. Mit der Zeit ging es dann langsam wieder runter und seit letzter Nacht ist wieder "Ruhe" eingekehrt.

    Die Seite ist jetzt wieder normal zugänglich.

  • Bei einem kurzen Test hat sich die Bedienung flüssig und ohne spürbare Verzögerung angefühlt. Aus meiner Sicht wäre dein Einbau in Ordnung. :thumbup:

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.9 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • git clone git://git.tvdr.de/vdr.git -> funktioniert

    tarball downloaden -> funktioniert


    Keine spürbare Einschränkung.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Ja, geht problemlos, man muss jetzt halt Javascript im Browser erlauben, was kein Problem ist.

    Gibt es eigentlich einen Link um direkt einen tarball als vdr-2.7.8.tar.bz2 runterzuladen?
    Wenn man auf den Snapshot tar.bz2 klickt wird vdr-77bfbc9.tar.bz2 runtergeladen (und alles ist im Unterverzeichnis vdr-77bfbc9).
    Wenn man (wie hier im Forum mal beschrieben) per Hand https://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.8;sf=tbz2 im Browser eingibt bekommt man ein vdr-2.7.8.tar.bz2 mit allem im Unterverzeichnis vdr-2.7.8 wie ich es zum Compilieren nutze.

  • Auf https://github.com/vdr-projects/vdr gibt es einen Mirror von @M-Reimer, der maximal ein-zwei Tage hinterher sein wird und auf den einige von uns Nutzern ab&&zu draufschauen, wie aktuell der ist.

    Magst du den als zweite Download Quelle vermerkern?

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Also hier funktioniert es im Browser auch.

    Ich sehe jetzt 5 "Project"s auf der Übersichtsseiten, in der Erinnerung hatte ich aber nur 3.
    Wobei es auch seinen kann, dass ich die letzten 3 Monate nicht auf der Übersichtsseite war.

    Gibt es eigentlich einen Link um direkt einen tarball als vdr-2.7.8.tar.bz2 runterzuladen?
    Wenn man auf den Snapshot tar.bz2 klickt wird vdr-77bfbc9.tar.bz2 runtergeladen (und alles ist im Unterverzeichnis vdr-77bfbc9).
    Wenn man (wie hier im Forum mal beschrieben) per Hand https://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.8;sf=tbz2 im Browser eingibt bekommt man ein vdr-2.7.8.tar.bz2 mit allem im Unterverzeichnis vdr-2.7.8 wie ich es zum Compilieren nutze.

    Das Herunterladen des tarball mit wget funktioniert bei mir jetzt nicht mehr, egal mit welchem Link. Im Browser geht es.
    Wer sowas in seinem Buildscript einsetzt muss sich also wohl was überlegen...

    Sowas hab ich in gitweb leider nicht gefunden.

    Und ich dachte bislang, ich bin zu blöd den zu finden....
    Ein fester Link, der immer den aktuellen tarball liefert wäre echt praktisch.


    In der Nacht vom 21. zum 22. stieg die Zahl der gleichzeitigen Zugriffe dann langsam immer weiter an ...

    Das müssen recht große, stark verteilte Systeme sein, das hätte einem eigentlich gleich klar sein müssen.
    Nach der ersten Entdeckung der neuen Links dauert es eine Weile, bis der Scan-Auftrag an die ganzen Bots verteilt ist. Die dürften den dann wohl eigenständig abarbeiten.
    Und da pro IP nur eine Anfrage kam, hat jeder der Bots wohl auch nur diese eine Seite als Auftrag bekommen.

    Das dürfte auch der Grund gewesen sein, warum das Passwort nichts gebracht hat.
    Auch wenn die Seite schon lange nicht mehr erreichbar ist, weiß der einzelne Bot gar nichts davon. Der wird stumpf seine Liste abarbeiten und es ggf. (nach Wechsel der PI) sogar mehrfach probieren und erst dann einen Fehler melden.

    Ich gehe inzwischen davon aus, dass das Passwort doch was gebracht hätte, wenn man es vor dem einspielen der neuen VDR-Version gesetzt hätte.
    Dann hätte niemand die Änderungen gesehen und der "Ansturm" hätte gar nicht erst angefangen.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Das Herunterladen des tarball mit wget funktioniert bei mir jetzt nicht meh

    Wie sieht denn der URL aus, den du dafür verwendest?

    Ein fester Link, der immer den aktuellen tarball liefert wäre echt praktisch.

    Den gibt es:

    https://git.tvdr.de/?p=vdr.git;a=s…/latest;sf=tbz2

    Der Dateiname enthält halt leider nur einen Hash und nicht die Versionsnummer.

  • Wie sieht denn der URL aus, den du dafür verwendest?

    wget https://git.tvdr.de/?p=vdr.git;a=snapshot;h=HEAD;sf=tbz2
    wget https://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.8;sf=tbz2
    wget https://git.tvdr.de/?p=vdr.git;a=snapshot;h=stable/latest;sf=tbz2
    Als Ergebnis bekomme ich immer die "neue" HTML-Seite mit dem Javascript drin.

    Das war auch primär als Hinweis für diejenigen gedacht, die so etwas machen.
    Ich hab es nur getestet, weil ich vermutete, dass wget an dem Javascript scheitern könnte. Aktuell benötige/verwende ich das nicht.

    Der Dateiname enthält halt leider nur einen Hash und nicht die Versionsnummer.

    Sorry, mit "sauberer" Versionsnummer meinte ich.
    (Die Pakete mit Hash finde einfach nicht wieder und habe sie öfters schon mehrfach runter geladen.)

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Zumindest der letzte Download klappt mit

    wget 'https://git.tvdr.de/?p=vdr.git;a=snapshot;h=stable/latest;sf=tbz2'

    (man beachte, dass der URL in Hochkommas ist, sonst wäre es wegen des ';' nur https://git.tvdr.de/?p=vdr.git, was den Mechanismus triggert)

    Der Pattern snapshot.*stable/latest ist von dem Mechanismus ausgenommen, weil das immer nur eine Datei ist. Wenn ich snapshot generell ausnehme, dann wären das wieder sehr viele Dateien.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!