Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:fail2map

fail2map

fail2map ist die grafische Darstellung aller geblockten IP-Adressen von fail2ban über eine Website mit GEO Daten. Es werden auf einer Weltkarte alle geblockten IP-Adressen anhand deren verfügbarer GEO Daten, lokalisierten und dargestellt.

fail2ban untersucht LOG-Dateien wie z.B. (/var/log/httpd/error.log) und schließt diejenigen IP-Adressen vom Zugriff aus, welche beim Zugriff bestimmt Schlüsselwörter innerhalb des Zugriffes und der Protokollierung innerhalb der LOG-Datei ausweisen. fail2ban nutzt zum Ausschluss von bestimmten IP-Adressen den Paketfilter iptables und fügt hierzu gewisse Einträge, zum Regelwerk von iptables für eine definierte Zeit hinzu. fail2ban kann gleichzeitig auch bestimmte Aktionen, wie Benachrichtigung per e-Mail auslösen.

Siehe auch den internen Link:

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Voraussetzungen

Als Voraussetzung für die Installation von fail2map sind folgende Komponenten erforderlich:

Herunterladen

Mit nachfolgendem Befehl kann direkt von fail2map eine gepackte Datei als Archiv direkt in das temporäre Verzeichnis /tmp heruntergeladen werden:

# wget -P /tmp https://github.com/tachtler/fail2map/archive/master.zip
--2016-11-25 05:49:48--  https://github.com/tachtler/fail2map/archive/master.zip
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/tachtler/fail2map/zip/master [following]
--2016-11-25 05:49:49--  https://codeload.github.com/tachtler/fail2map/zip/master
Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120
Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 29966 (29K) [application/zip]
Saving to: ‘/tmp/master.zip’

100%[======================================>] 29,966      --.-K/s   in 0.1s    

2016-11-25 05:49:49 (227 KB/s) - ‘/tmp/master.zip’ saved [29966/29966]

Installation

Nachdem fail2map erfolgreich in das Verzeichnis /tmp heruntergeladen wurden, kann dies mit nachfolgendem Befehl entpackt werden:

# unzip /tmp/master.zip 

Anschließend sollte nun im Verzeichnis /tmp ein Verzeichnis mit dem Namen fail2ban-master entstanden sein, was mit nachfolgendem Befehl überprüft werden kann:

# ls -l /tmp | grep fail2map
drwxr-xr-x 3 root  root    130 Aug 15  2015 fail2map-master

Anschließend soll nun das neu entstandene Verzeichnis nach

  • /var/www

verschoben werden und dabei gleichzeitig nach fail2map umbenannt werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# mv /tmp/fail2map-master /var/www/fail2map

Eine Überprüfung, ob das Verschieben und Umbenennen auch funktioniert hat, kann mit nachfolgendem Befehl durchgeführt werden:

# ls -l -d /var/www/fail2map
drwxr-xr-x 3 root root 130 Aug 15  2015 /var/www/fail2map

Konfiguration: fail2ban

Damit die Ereignisse welche zum blocken einer IP-Adresse durch fail2ban auch in die grafische Darstellung von fail2map einfließen können, ist es erforderlich nachfolgende Änderungen bzw. Ergänzungen in der fail2ban-Konfiguration durchzuführen.

/etc/fail2ban/actions.d/fail2map-action.conf

Zuerst soll nachfolgende mitgelieferte vorbereitete Kofnigurationsdatei fail2map-action.conf in nachfolgendes Verzeichnis von fail2ban kopiert werden, bevor diese angepasst werden soll, was mit nachfolgendem Befehl durchgeführt werden kann:

# cp -a /var/www/fail2map/fail2map-action.conf /etc/fail2ban/action.d/fail2map-action.conf

Anschließend muss der Inhalt der Konfigurationsdatei

  • /etc/fail2ban/action.d/fail2map-action.conf

wie folgt angepasst werden:

(Komplette Konfigurationsdatei)

# Fail2Ban configuration file
#
# Author: Manuel Vonthron
#
 
[Definition]
#
actionstart =
#
actionstop =
#
actioncheck =
#
actionban = <fail2map> add <ip>
#
actionunban =
 
[Init]
#
# Tachtler
# default: fail2map = cd **FAIL2MAP PATH** && python fail2map.py
fail2map = cd /var/www/fail2map && python fail2map.py

:!: HINWEIS - In oben genannter Konfigurationsdatei /etc/fail2ban/action.d/fail2map-action.conf muss nur der Pfad zum Python-Skript fail2map.py angepasst werden!

/etc/fail2ban/jail.local

Damit nun die neue „action“ in /etc/fail2ban/action.d/fail2map-action.conf auch jedes mal, wenn eine neue IP-Adresse geblockt wird, auchgerufen wird, muss die in fail2ban verwendete „action“ entsprechend erweitert werden.

:!: HINWEIS - Alle Konfigurationsänderungen von fail2ban werden in /etc/fail2ban/jail.local und nicht in /etc/fail2ban/jail.conf durchgeführt!

:!: WICHTIG - Es muss die verwendete „action“ angepasst werden, dies kann z.B.

  • action_
  • action_mw
  • action_mwl
  • action_xarf
  • action_cf_mwl

sein!

:!: HINWEIS - Hier soll die „action“ - action_mwl - angepasst werden!

Nachfolgende Anpassung muss durchgeführt werden:

VORHER:

# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]

NACHHER:

# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             %(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
             fail2map-action

:!: HINWEIS - In oben genannter Konfigurationsdatei /etc/fail2ban/jail.local muss nur der Eintrag fail2map-action angehängt werden!

/var/www/fail2map/fail2map.py

Um eine andere GEO-Lokalisations API nutzen zu können, kann nachfolgender Eintrag in der Konfigurationsdatei /var/www/fail2map/fail2map.py wie folgt geändert werden:

(Nur relevanter Ausschnitt)

VORHER: - Anbieter: http://www.telize.com/

...
GEOIP_API = "http://www.telize.com/geoip/%s"
...

NACHHER: - Anbieter: http://ip-api.com

...
# Tachtler
# default: GEOIP_API = "http://www.telize.com/geoip/%s"
GEOIP_API = "http://ip-api.com/json/%s"
...

:!: WICHTIG - Der Wechsel der API hat auch eine Änderung des Skripts - /var/www/fail2map/fail2map.py zur Folge. Die folgende Zeile (Zeile 32) muss, wie nachfolgende beschrieben, abgeändert werden:

(Nur relevanter Ausschnitt)

        # Tachtler
        # default: point["geometry"]["coordinates"] = [float(geo_value['longitude']), float(geo_value['latitude'])]
        point["geometry"]["coordinates"] = [float(geo_value['lon']), float(geo_value['lat'])]

:!: WICHTIG - Der Wechsel der API hat auch noch eine Änderung des Skripts - /var/www/fail2map/fail2map.py zur Folge. Die folgende Zeile (Zeile 33) muss, wie nachfolgende beschrieben, abgeändert werden:

:!: HINWEIS - Die Änderungen erlaubt mehr als nur ASCII-Zeichen im Namen der Stadt und des Landes!

(Nur relevanter Ausschnitt)

       # Tachtler
        # default: point["properties"]["place"] = "{0}, {1}".format(geo_value.get('city', ''), geo_value.get('country', ''))
        point["properties"]["place"] = "{0}, {1}".format(geo_value.get('city', '').encode('utf-8'), geo_value.get('country', '').encode('utf-8'))

/var/www/fail2map/js/maps.js

Falls gewünscht, kann auch die zur Anzeige verwendete „Weltkarte“ angepasst werden. Hierzu muss in der Konfigurationsdatei /var/www/fail2map/js/maps.js nachfolgende Änderung durchgeführt werden:

Siehe auch den nachfolgenden externen Link: (mit Beispielen)

...
    // list of tile providers can be seen here: http://leaflet-extras.github.io/leaflet-providers/preview/
    baseLayer = L.tileLayer.provider('Thunderforest.Landscape', {
        // write options and credentials here
        // id: 'MAPBOX_ID',
        // accessToken: 'MAPBOX_TOKEN'
    }).addTo(map);
...

Neustart: fail2ban

Nach Durchführung der vorhergehenden Konfigurationsschritte, muss ein Neustart von fail2ban durchgeführt werden, damit die Änderungen wirksam werden:

# systemctl restart fail2ban.service

Konfiguration: Apache Webserver

/etc/httpd/conf.d/vhost.conf

Es soll ein virtueller Host im Apache HTTP Server eingerichtet werden.

Siehe dazu auch nachfolgende interne Links:

Dazu kann der Inhalt einer möglichen Konfigurationsdatei

  • /etc/httpd/conf.d/fail2map.conf

wie nachfolgend dargestellt entsprechend erstellt werden:

(Komplette Konfigurationsdatei)

#
# fail2map.tachtler.net (Fail2Map for Fail2Ban)
#
<VirtualHost *:80>
        ServerAdmin webmaster@tachtler.net
        ServerName fail2map.tachtler.net
        ServerAlias www.fail2map.tachtler.net
        ServerPath /
 
        DocumentRoot "/var/www/fail2map"
        <Directory "/var/www/fail2map">
                Options -Indexes +FollowSymLinks
                # Tachtler (enable for .htaccess file support)
                # AllowOverride AuthConfig
                AllowOverride None
                # Tachtler (enable for unlimited access)
		Require all granted 
        </Directory>
 
        DirectoryIndex index.html
 
        ErrorLog logs/fail2map_error.log
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
        CustomLog logs/fail2map_access.log combined env=!forwarded
        CustomLog logs/fail2map_access.log combined_proxypass env=forwarded
</VirtualHost>

Neustart: Apache Webserver

Nach Durchführung der vorhergehenden Konfigurationsschritte, sollte einem Neustart nichts im Wege stehen und die Apache VHOST-Konfiguration angezogen werden:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Erster Aufruf

Nachfolgender Aufruf zeigt die Ausgabe durch fail2map:

Fail2Map

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/fail2map.txt · Zuletzt geändert: 2017/07/28 16:14 von klaus