Mo. Okt 26th, 2020
Mastodon
0
(0)

Wenn man seinen Server absichern möchte, will man auch seine Webseiten absichern. Um das umzusetzen, habe ich kurz das Internet bemüht und folgende schlichte Anleitung gefunden.

Folgende Anleitung habe ich gefunden von Sergej Müller. Hier beschreibt er, wie man sogenannte Badbots aussperren kann.

sergejmueller/sergejmueller.github.io
Contribute to sergejmueller/sergejmueller.github.io development by creating an account on GitHub.

Im ersten Schritt wird eine Map Datei angelegt, wo alle Bots definiert werden. Diese kann natürlich jederzeit erweitert werden.

sudo vi /etc/nginx/conf.d/bots.map

map $http_user_agent $is_bot {
    default 0;

    ~Sogou 1;
    ~Abonti 1;
    ~Pixray 1;
    ~Python 1;
    ~Spinn3r 1;
    ~libwww-perl 1;
    ~Wget 1;
    ~Curl 1;
    ~Ezooms 1;
    ~mShots 1;
    ~SemrushBot 1;
    ~Exabot 1;
    ~ZmEu 1;
    ~iCjobs 1;
    ~QuerySeekerSpider 1;
    ~Baiduspider 1;
    ~AhrefsBot 1;
    ~CareerBot 1;
    ~coccoc 1;
    ~MJ12bot 1;
    ~SeznamBot 1;
    ~spbot 1;
    ~ShowyouBot 1;
    ~adressendeutschland 1;
    ~PagesInventory 1;
    ~aboutWebSearch 1;
    ~Java 1;
    ~JCE 1;
    ~bitlybot 1;
    ~WeSEE 1;
    ~updown_tester 1;
    ~200PleaseBot 1;
    ~Nutch 1;
    ~HTTP_Request 1;
    ~AnyOther 1;
    ~Crawler 1;
    ~BLEXBot 1;
    ~yacybot 1;
    ~Cliqzbot 1;
}

Anschließend muss Nginx mitgeteilt werden welche Bots ausgeschlossen werden sollen. Das geht so; innerhalb des Serverblocks wird die Dateien, die oben bearbeitet wurde, angegeben:

sudo vi /etc/nginx/nginx.conf

 server { 
 
 [...]
 
 # load configs
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
        include /etc/nginx/conf.d/bots.map;
 }

Dann wird die Konfiguration der Webseite angepasst. Dies muss natürlich mit jeder Webseite geschehen die vor Badbots geschützt werden soll.

sudo vi /etc/nginx/sites-available/domain.tld.conf

server {
    ###

    if ( $is_bot ) {
        return 444;
    }
}

Damit werden alle Badbots lokalisiert und mit dem Error Code 444 versehen und vom Server abgewiesen. Mit Fail2ban können diese dann gänzlich vom Server ausgeschlossen werden.
Dazu wird ein Filter angelegt.

sudo vi /etc/fail2ban/filter.d/nginx-bots.conf

# Fail2Ban configuration file
#
# List of bad requests
#
# Server: Nginx
# Author: Sergej Müller
#

[Definition]

# Option:  failregex
# Notes :  Detection of 444 requests.
# Values:  TEXT
#

failregex = ^<HOST> - .+ 444 0 ".+"$

# Option:  ignoreregex
# Notes :  Regex to ignore.
# Values:  TEXT
#

ignoreregex =

Und ein entsprechendes Jail, damit Fail2ban weiß, wo es nach den Fehler-Codes schauen soll.

sudo vi /etc/fail2ban/jail.local

[nginx-bots]

enabled  = true
port = http
filter = nginx-bots
logpath = /var/log/nginx/access.log
maxretry = 0
findtime = 86400
bantime  = -1

anschließend alles neu  starten

sudo nginx -t && sudo service nginx reload
sudo service fail2ban restart

Quelle: github

Comments from Mastodon:

Wie fandest du den Post?

Auf einen Stern klicken zum bewerten

durchschnittlich 0 / 5. bereits abgestimmt haben: 0

Keine Bewertungen bisher, sei der erste

Von lars

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.