IP-Adressen von ahrefs.com aussperren

  • Hi an alle Profis,


    in meinen Apache Errorlogs stehen immer solche Einträge: --> Siehe Pastebin: OSSEC - Pastebin.com


    Es sind immer die IPs aus dem Range 51.255.65.0/24


    Eine Recherche hat ergeben, dass das der Range eines Spiders ist --> Ahrefs - backlinks research tool


    Ich würde jetzt gerne diesen Robot von meinem Server verbannen. Dazu habe ich eine robots.txt erstellt die so ausschaut:

    Code
    user-agent: AhrefsBot
    disallow: /


    In den Logs sehe ich auch, dass ahrefs.com diese robots.txt schon mehrfach abgerufen hat. Das Problem ist jetzt, dass ihn das nur nicht interessiert. Mein Server wird immer noch von denen abgegriffen.


    Habt ihr eine Idee, wie ich ahrefs.com, also den kompletten IP-Range aussperren kann?


    Für fail2ban habe ich eine ip.blacklist wo ich einzelne IPs sperre. Dort habe ich bereits den kompletten Range eingegeben. Nur irgendwie funktioniert das im Vergleich zu den anderen eingepflegten IPs nicht.


    Vielen Dank und Gruß
    Hount

  • Richte für iptables eine DROP Regel ein.


    Dazu gibt es zahlreiche Anleitungen online.
    Such mal nach "iptables drop".


    Das führt dazu dass Dein Server alle Daten-Pakete die aus der betreffenden IP Range kommen unbeantwortet fallen lässt (ignoriert).
    Für den Server des Spiders sieht es so aus als würden da garkeine Dienste mehr laufen.


    Wenn du willst, dass der Spider merkt, dass Du ihn ablehnst richte anstelle von DROP eine REJECT Regel ein.
    Dann bekommt der Spider eine Rückmeldung, dass Dein Server ihm nicht antworten möchte.


    Wenn das nicht reicht oder Du nicht damit zurecht kommst kannst du Dich gerne hier nochmal melden.

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

    Einmal editiert, zuletzt von schentuu ()

  • Der Ansatz von Killerbees ist meinem vorzuziehen.
    Via Firewall jemanden Aussperren kommt eigentlich nur in Frage wenn er sich weigert die robots.txt zu befolgen.

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

  • Und noch etwas, was ich vorhin vergessen habe: Es kann durchaus 24-48 Stunden dauern, bis so große Bots die robots.txt wirklich befolgen. Auch wenn sie vorher schon abgerufen wird, muss die darin enthaltene Info nicht sofort bei allen Crawler-Nodes ankommen.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Danke KB19
    Ich bin mir fast sicher, dass ich in einer meiner ersten Versionen der robots.txt die Groß-/Kleinschreibung beachtet habe. Trotzdem habe ich es jetzt mal angepasst und warte ab.
    Die robots.txt existiert jetzt schon über zwei Wochen. Von daher denke ich mal, dass sie schon greifen sollte?


    schentuu
    Danke für den Tipp. :)
    Sollte das mit der robots.txt überhaupt nicht funktionieren, werde ich mich mal an iptables ran wagen müssen. ;)


    Mich wundert nur, warum in diesem Fall die ip.blacklist bei fail2ban nicht greift. Die anderen IPs die dort eingetragen sind, greifen ja auch. Es betrifft wirklich nur die IPs von diesem Ahrefs Dingens.


    Gruß

  • Nachdem die robots.txt absolut ignoriert wird, wollte ich jetzt mal den Lösungsansatz bezüglich iptables testen.
    Habe mich dazu jetzt mal versucht zum Thema iptables einzulesen.
    Bevor ich das jetzt anwende und ich mich aussperre, wollte ich mal bei euch Profis nachfragen, ob das so richtig wäre:

    Code
    iptables -A INPUT -s 51.255.65.0/24 -j DROP


    Damit sollte ich doch den kompletten eingehenden Verkehr aus dem IP-Bereich 51.255.65.0/24 verwerfen.
    Ist das richtig bzw würdet ihr das anders machen?


    Vielen Dank und liebe Grüße
    Hount :)

  • Ja, sollte funktionieren. Wenn Du sowieso keine anderen Regeln verwendest, die explizit etwas zulassen, ist die Reihenfolge auch egal.


    Du musst nur bedenken, dass die Regel nach einem Neustart wieder weg ist! Um das zu umgehen gibt es z.B. iptables-persistent unter Debian/Ubuntu. Bei anderen Betriebssystemen gibt es sicher ähnliche Pakete.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Vielen Dank killerbees19 :)


    Ah gut zu wissen. Wusste ich noch gar ned, dass die Regeln nach einem Neustart wieder weg sind.


    Noch eine Frage: Kann ich an diesem Befehl noch was ergänzen, damit dieser auch in einem Logfile auftaucht? Also expliziet das Logging nur für diese Regel aktivieren.
    Dazu hab ich irgendwie nichts gefunden.


    Hatte gestern mal probeweise das Logging für iptables eingeschalten und das dann mit fwlogwatch kombiniert. Aber zum einen kamen dann im Sekundentakt Mails rein und das Logfile (/var/log/kern) ist fast explodiert.


    Gruß
    Hount

  • Bezüglich Loggen: Suche einmal nach dem Ziel ULOG! ;)


    Das würde ich generell aber nur in Kombination mit Connection Tracking (z.B. State = NEW) verwenden und mit Limits arbeiten, damit Dir das Log nicht zugemüllt wird.


    Wobei die Connection Tracking Sache bei Dir auch egal ist, Du hast sonst eh keine Regeln und willst alles von der IP aussperren. Lies Dich auch einmal in das LIMIT Modul ein.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)