Skip to content

AI Bots aussperren

Linux
  • Ich glaube, wegen @thomas@metalhead.club bin ich über dieses Projekt gestolpert. Es gibt ja private Webprojekte im Netz, wo ich diesen AI-Bot-Besuch nicht so gerne möchte. Da ich gelesen habe, das sich diese Bots nicht an die robots.txt halten, muss man sich halt was einfallen um sie zu ärgern 🙂 Ich denke, das es kein 100%iger Schutz ist, aber evtl. ist es ein Anfang.

    Da ich Nginx nutze, benötige ich dieses File.

    nginx-block-ai-bots.conf
    

    Das muss dann noch in Nginx eingebaut werden und dann sollte es funktionieren. Mein Ansatz um das zu lösen, sieht so aus. Ich habe ein Script 😉

    ai-block.sh

    #!/bin/bash
    # Script um AI-Bots zu blocken
    # https://github.com/ai-robots-txt/ai.robots.txt/tree/main
    
    mkdir /root/AI-test
    cd /root/AI-test
    
    ## Daten holen
    curl -O https://raw.githubusercontent.com/ai-robots-txt/ai.robots.txt/master/nginx-block-ai-bots.conf
    
    ## Daten in nginx einbauen
    mv nginx-block-ai-bots.conf /etc/nginx/blocklists/
    
    ## NGINX neustarten
    systemctl restart nginx.service
    

    Das wird über einen crontab Eintrag jeden Tag aufgerufen.

    0 1 * * * /root/ai-block.sh
    

    Und in Nginx wird die Blocklist so geladen. Nur ein Ausschnitt aus dem Server Block.

    ## Server Block
    server {
       listen       443 ssl;
       listen  [::]:443 ssl;
       server_name  <DOMAIN>;
    
       # AI-Bots blockieren
        include /etc/nginx/blocklists/nginx-block-ai-bots.conf;
    

    Testen kann man das dann so.

      curl -A "ChatGPT-User" <DOMAIN>
      curl -A "Mozilla/5.0" <DOMAIN>
    

    Der erste Test bringt dann einen 403

    <html>
    <head><title>403 Forbidden</title></head>
    <body>
    <center><h1>403 Forbidden</h1></center>
    <hr><center>nginx/1.22.1</center>
    </body>
    </html>
    

    Der zweite Test ist ein erlaubter Zugriff.

    Danke an @thomas@metalhead.club für den Beitrag zu o.g. Projekt.

    Und zum Schluss noch die Frage "Was kann man noch machen?"

    Als Ergänzung noch, ich arbeite gerne mit diesen AI's an meinen Python Projekten, aber trotzdem gibt es private Webseiten von mir, wo ich das nicht möchte.

  • Wir können das noch für eine sanfte Methode erweitern, das ist die Datei robots.txt, wo man sich in alten Zeiten mal dran hielt. Einige Bots machen das, andere nicht. Praktisch, das o.g. Projekt bietet diese Datei auch an. Dann werden wir das kurz mal mit einbauen.

    ai-block.sh

    #!/bin/bash
    # Script um AI-Bots zu blocken
    # https://github.com/ai-robots-txt/ai.robots.txt/tree/main
    
    mkdir /root/AI-test
    cd /root/AI-test
    
    ## Daten holen
    curl -O https://raw.githubusercontent.com/ai-robots-txt/ai.robots.txt/master/nginx-block-ai-bots.conf
    curl -O https://raw.githubusercontent.com/ai-robots-txt/ai.robots.txt/master/robots.txt
    
    ## Daten in nginx einbauen
    mv nginx-block-ai-bots.conf /etc/nginx/blocklists/
    mv robots.txt /var/www/html
    
    ## NGINX neustarten
    systemctl restart nginx.service
    

    Damit das in nginx funktioniert. Den Server Block um folgendes erweitern.

    # Serve robots.txt directly from Nginx
    location = /robots.txt {
        root /var/www/html;
        try_files $uri =404;
    }
    

    Kurzer Test

    https://<DOMAIN>/robots.txt
    

    Ergebnis

    User-agent: AI2Bot
    User-agent: Ai2Bot-Dolma
    User-agent: Amazonbot
    User-agent: anthropic-ai
    User-agent: Applebot
    User-agent: Applebot-Extended
    User-agent: Brightbot 1.0
    User-agent: Bytespider
    User-agent: CCBot
    User-agent: ChatGPT-User
    User-agent: Claude-Web
    User-agent: ClaudeBot
    User-agent: cohere-ai
    User-agent: cohere-training-data-crawler
    User-agent: Crawlspace
    User-agent: Diffbot
    User-agent: DuckAssistBot
    User-agent: FacebookBot
    User-agent: FriendlyCrawler
    User-agent: Google-Extended
    User-agent: GoogleOther
    User-agent: GoogleOther-Image
    User-agent: GoogleOther-Video
    User-agent: GPTBot
    User-agent: iaskspider/2.0
    User-agent: ICC-Crawler
    User-agent: ImagesiftBot
    User-agent: img2dataset
    User-agent: imgproxy
    User-agent: ISSCyberRiskCrawler
    User-agent: Kangaroo Bot
    User-agent: Meta-ExternalAgent
    User-agent: Meta-ExternalFetcher
    User-agent: OAI-SearchBot
    User-agent: omgili
    User-agent: omgilibot
    User-agent: PanguBot
    User-agent: Perplexity-User
    User-agent: PerplexityBot
    User-agent: PetalBot
    User-agent: Scrapy
    User-agent: SemrushBot-OCOB
    User-agent: SemrushBot-SWA
    User-agent: Sidetrade indexer bot
    User-agent: Timpibot
    User-agent: VelenPublicWebCrawler
    User-agent: Webzio-Extended
    User-agent: YouBot
    Disallow: /
    
  • Minio - Objektspeicher selbst gehostet

    Linux minio linux restic
    1
    1
    0 Stimmen
    1 Beiträge
    118 Aufrufe
    Niemand hat geantwortet
  • Debian 12 Bookworm released

    Linux debian linux
    5
    0 Stimmen
    5 Beiträge
    394 Aufrufe
    FrankMF
    Mein persönliches Fazit, alles läuft rund mit Debian Bookworm 12 Alle meine Hetzner VMs sind jetzt auf Bookworm Ok, was schwer und zeitaufwendig war, war die Nextcloud Installation bzw. der ganze PHP-Server. Das ist echt jedes mal eine Herausforderung, aber auch dabei werde ich die letzten Jahre sicherer. Hier die Story zum Nextcloud Server https://linux-nerds.org/topic/1437/nextcloud-upgrade-auf-bookworm-12 Richtig rund lief das Upgrade des NodeBB-Servers, war einfach und direkt auf Node18 hochgezogen. https://linux-nerds.org/topic/1444/nodebb-upgrade-auf-debian-bookworm-12 Damit ist jetzt alles hier auf Debian Bookworm 12 Haupt-PC VMs bei Hetzner VMs in der Proxmox Oh, da fällt mir gerade ein, der Proxmox ist noch fällig. Aber, dazu habe ich mir was einfallen lassen, da ist noch ein neues Mainboard unterwegs und dann gibt es dazu einen etwas größeren Beitrag. Danke Debian-Team, Debian Bookworm 12 ist eine runde Sache! Spannend wird jetzt, wie lange ich auf meinem Haupt-PC (Bookworm, KDE, Wayland) bleibe. Ich habe da so eine unangenehme Eigenschaft, wenn es um veraltete Pakete geht. Diesmal werde ich dann wahrscheinlich auf den Debian Unstable Zweig (sid) wechseln. Aber das dürfte noch was dauern, da ja aktuell erst mal alles passt.
  • KDE Plasma setzt auf Wayland

    Linux kde linux
    1
    0 Stimmen
    1 Beiträge
    85 Aufrufe
    Niemand hat geantwortet
  • Manjaro Stable-Update vom 20.02.23

    Linux manjaro docker linux
    2
    0 Stimmen
    2 Beiträge
    162 Aufrufe
    FrankMF
    Ich konnte es nicht lassen, ich habe es mal getestet.    ~  docker version  ✔  1m 37s  Client: Version: 23.0.1 API version: 1.42 Go version: go1.20 Git commit: a5ee5b1dfc Built: Sat Feb 11 13:58:04 2023 OS/Arch: linux/amd64 Context: default In der aktuellen systemd Datei steht folgendes drin. Bei mir zu finden unter /usr/lib/systemd/system/docker.service LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Die override Dateien angelegt und durchgestartet. Läuft alles einwandfrei. Aber bitte fragt mich nicht, was dieser Wert da oben macht. Ich habe keine Ahnung. Update: Erklärung zu ulimits https://stackoverflow.com/questions/62127643/need-understand-ulimits-nofile-setting-in-host-and-container
  • NanoPi R5S - Samba

    NanoPi R5S nanopir5s linux
    5
    1
    0 Stimmen
    5 Beiträge
    441 Aufrufe
    FrankMF
    Test zu dem NFS Mount (240GB USB SSD an USB-Port) [frank-ms7c37 nfs]# dd if=/dev/zero of=sd.img bs=1M count=2048 oflag=direct,nonblock 2048+0 Datensätze ein 2048+0 Datensätze aus 2147483648 Bytes (2,1 GB, 2,0 GiB) kopiert, 20,0851 s, 107 MB/s Test zum NAS Mount (Samba) (2TB 2,5Zoll HDD am USB-Port) [frank-ms7c37 NAS]# dd if=/dev/zero of=sd.img bs=1M count=2048 oflag=direct,nonblock 2048+0 Datensätze ein 2048+0 Datensätze aus 2147483648 Bytes (2,1 GB, 2,0 GiB) kopiert, 21,4538 s, 100 MB/s Das für den NAS Mount (Samba) sollte die maximal Schreibgrenze der Festplatte sein. Mehr dürfte da nicht gehen. Das andere könnte an den Adaptern liegen, die ich dafür benutze. Bei mir ist NFS hier aktuell nicht viel schneller, oder ich bin zu doof dafür.
  • Debian Buster 10.9 released

    Linux debian linux
    1
    0 Stimmen
    1 Beiträge
    227 Aufrufe
    Niemand hat geantwortet
  • Restic & Rclone & Nextcloud

    Linux nextcloud rclone linux restic
    3
    0 Stimmen
    3 Beiträge
    816 Aufrufe
    FrankMF
    Hier mal eine Ausgabe vom ersten Durchgang root@frank-MS-7C37:~# restic --password-file /root/passwd -r rclone:Nextcloud:HOME_UBUNTU backup --files-from /root/includes.txt repository 99xxxxa0 opened successfully, password is correct created new cache in /root/.cache/restic rclone: 2020/05/08 17:47:57 ERROR : locks: error listing: directory not found rclone: 2020/05/08 17:47:58 ERROR : index: error listing: directory not found rclone: 2020/05/08 17:47:58 ERROR : snapshots: error listing: directory not found Files: 3503 new, 0 changed, 0 unmodified Dirs: 2 new, 0 changed, 0 unmodified Added to the repo: 16.872 GiB processed 3503 files, 21.134 GiB in 1:02:56 snapshot fdxxxxec saved Der erste Durchgang hat also etwa eine Stunde benötigt. Durch die Deduplikation der Daten, ist der Vorgang beim zweiten Durchgang viel schneller weil nur neue oder geänderte Daten gesichert werden. Und außerdem sind alle Daten AES-256 verschlüsselt. Also perfekt zur Ablage in irgendeiner Cloud root@frank-MS-7C37:~# restic --password-file /root/passwd -r rclone:Nextcloud:HOME_UBUNTU backup --files-from /root/includes.txt repository 99xxxxa0 opened successfully, password is correct Files: 57 new, 41 changed, 3449 unmodified Dirs: 0 new, 2 changed, 0 unmodified Added to the repo: 22.941 MiB processed 3547 files, 21.137 GiB in 0:13 snapshot c6xxxxe4 saved Wie ihr seht, hat der zweite Durchgang nur ein paar neue und geänderte Daten gesichert. Der Rest ist ja schon vorhanden. Und das kann man dann auch problemlos täglich, wöchentlich oder was auch immer mal eben schnell durchführen. Eines meiner absoluten Lieblingstool
  • Twitter-Beiträge in NodeBB anzeigen

    Verschoben NodeBB nodebb linux
    3
    0 Stimmen
    3 Beiträge
    394 Aufrufe
    FrankMF
    Endlich was gefunden um Twitter-Beiträge hier anzuzeigen. Beispiele siehe oben... YEAH Wie man das in NodeBB und dem Plugin nodebb-plugin-ns-embed einbaut, steht hier. https://community.nodebb.org/topic/7135/nodebb-plugin-ns-embed-ns-embed/39