Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:fail2map

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:fail2map [2016/11/25 06:23] klaustachtler:fail2map [2017/07/28 16:14] (aktuell) – [fail2map] klaus
Zeile 1: Zeile 1:
 ====== fail2map ====== ====== fail2map ======
  
-[[tachtler:fail2map|{{:tachtler:index:fail2ban-48x48.png }}]] [[https://github.com/mvonthron/fail2map|fail2map]] ist die grafische Darstellung aller geblockten IP-Adressen von [[http://www.fail2ban.org|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.+[[tachtler:fail2map|{{:tachtler:index:fail2ban-48x48.png }}]] [[https://github.com/tachtler/fail2map|fail2map]] ist die grafische Darstellung aller geblockten IP-Adressen von [[http://www.fail2ban.org|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.
  
 [[http://www.fail2ban.org|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. [[http://www.fail2ban.org|fail2ban]] nutzt zum Ausschluss von bestimmten IP-Adressen den Paketfilter [[tachtler:iptables|iptables]] und fügt hierzu gewisse Einträge, zum Regelwerk von [[tachtler:iptables|iptables]] für eine definierte Zeit hinzu. [[http://www.fail2ban.org|fail2ban]] kann gleichzeitig auch bestimmte Aktionen, wie Benachrichtigung per e-Mail auslösen. [[http://www.fail2ban.org|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. [[http://www.fail2ban.org|fail2ban]] nutzt zum Ausschluss von bestimmten IP-Adressen den Paketfilter [[tachtler:iptables|iptables]] und fügt hierzu gewisse Einträge, zum Regelwerk von [[tachtler:iptables|iptables]] für eine definierte Zeit hinzu. [[http://www.fail2ban.org|fail2ban]] kann gleichzeitig auch bestimmte Aktionen, wie Benachrichtigung per e-Mail auslösen.
Zeile 16: Zeile 16:
 ===== Voraussetzungen ===== ===== Voraussetzungen =====
  
-Als Voraussetzung für die Installation von [[https://github.com/mvonthron/fail2map|fail2map]] sind folgende Komponenten erforderlich:+Als Voraussetzung für die Installation von [[https://github.com/tachtler/fail2map|fail2map]] sind folgende Komponenten erforderlich:
   * Lauffähiger Web-Server z.B. [[http://httpd.apache.org/|Apache HTTP Server]]   * Lauffähiger Web-Server z.B. [[http://httpd.apache.org/|Apache HTTP Server]]
     * Siehe auch den internen Link: [[tachtler:apache_http_server_centos_7|Apache HTTP Server CentOS 7]]     * Siehe auch den internen Link: [[tachtler:apache_http_server_centos_7|Apache HTTP Server CentOS 7]]
Zeile 24: Zeile 24:
 ===== Herunterladen ==== ===== Herunterladen ====
  
-Mit nachfolgendem Befehl kann direkt von [[https://github.com/mvonthron/fail2map|fail2map]] eine gepackte Datei als Archiv direkt in das **temporäre Verzeichnis ''/tmp''** heruntergeladen werden:+Mit nachfolgendem Befehl kann direkt von [[https://github.com/tachtler/fail2map|fail2map]] eine gepackte Datei als Archiv direkt in das **temporäre Verzeichnis ''/tmp''** heruntergeladen werden:
 <code> <code>
-# wget -P /tmp https://github.com/mvonthron/fail2map/archive/master.zip +# wget -P /tmp https://github.com/tachtler/fail2map/archive/master.zip 
---2016-11-25 05:49:48--  https://github.com/mvonthron/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 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. Connecting to github.com (github.com)|192.30.253.112|:443... connected.
 HTTP request sent, awaiting response... 302 Found HTTP request sent, awaiting response... 302 Found
-Location: https://codeload.github.com/mvonthron/fail2map/zip/master [following] +Location: https://codeload.github.com/tachtler/fail2map/zip/master [following] 
---2016-11-25 05:49:49--  https://codeload.github.com/mvonthron/fail2map/zip/master+--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 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. Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected.
Zeile 46: Zeile 46:
 ===== Installation ===== ===== Installation =====
  
-Nachdem [[https://github.com/mvonthron/fail2map|fail2map]] erfolgreich in das Verzeichnis ''/tmp'' heruntergeladen wurden, kann dies mit nachfolgendem Befehl entpackt werden:+Nachdem [[https://github.com/tachtler/fail2map|fail2map]] erfolgreich in das Verzeichnis ''/tmp'' heruntergeladen wurden, kann dies mit nachfolgendem Befehl entpackt werden:
 <code> <code>
 # unzip /tmp/master.zip  # unzip /tmp/master.zip 
Zeile 72: Zeile 72:
 ===== Konfiguration: fail2ban ===== ===== Konfiguration: fail2ban =====
  
-Damit die Ereignisse welche zum blocken einer IP-Adresse durch [[http://www.fail2ban.org|fail2ban]] auch in die grafische Darstellung von [[https://github.com/mvonthron/fail2map|fail2map]] einfließen können, ist es erforderlich nachfolgende Änderungen bzw. Ergänzungen in der [[http://www.fail2ban.org|fail2ban]]-Konfiguration durchzuführen.+Damit die Ereignisse welche zum blocken einer IP-Adresse durch [[http://www.fail2ban.org|fail2ban]] auch in die grafische Darstellung von [[https://github.com/tachtler/fail2map|fail2map]] einfließen können, ist es erforderlich nachfolgende Änderungen bzw. Ergänzungen in der [[http://www.fail2ban.org|fail2ban]]-Konfiguration durchzuführen.
  
 ==== /etc/fail2ban/actions.d/fail2map-action.conf ==== ==== /etc/fail2ban/actions.d/fail2map-action.conf ====
Zeile 121: Zeile 121:
 :!: **WICHTIG** - Es muss die verwendete "action" angepasst werden, dies kann z.B. :!: **WICHTIG** - Es muss die verwendete "action" angepasst werden, dies kann z.B.
   * ''action_''   * ''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__**: 
 +<code ini> 
 +# 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"
 +</code> 
 + 
 +**__NACHHER__**: 
 +<code ini> 
 +# 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 
 +</code> 
 + 
 +:!: **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/|http://www.telize.com/]] 
 +<code python> 
 +... 
 +GEOIP_API = "http://www.telize.com/geoip/%s" 
 +... 
 +</code> 
 + 
 +**__NACHHER__**: - **Anbieter**: [[http://ip-api.com/docs/|http://ip-api.com]] 
 +<code python> 
 +... 
 +# Tachtler 
 +# default: GEOIP_API = "http://www.telize.com/geoip/%s" 
 +GEOIP_API = "http://ip-api.com/json/%s" 
 +... 
 +</code> 
 + 
 +:!: **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**) 
 +<code python> 
 +        # Tachtler 
 +        # default: point["geometry"]["coordinates"] = [float(geo_value['longitude']), float(geo_value['latitude'])] 
 +        point["geometry"]["coordinates"] = [float(geo_value['lon']), float(geo_value['lat'])] 
 +</code> 
 + 
 +:!: **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**) 
 +<code python> 
 +       # 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')) 
 +</code> 
 + 
 +==== /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) 
 +  * [[http://leaflet-extras.github.io/leaflet-providers/preview/|Leaflet Provider Demo]] 
 + 
 +<code ini> 
 +... 
 +    // 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); 
 +... 
 +</code> 
 + 
 +==== Neustart: fail2ban ==== 
 + 
 +Nach Durchführung der vorhergehenden **Konfigurationsschritte**, muss ein Neustart von [[http://www.fail2ban.org|fail2ban]] durchgeführt werden, damit die Änderungen wirksam werden: 
 +<code> 
 +# systemctl restart fail2ban.service 
 +</code>
  
 ===== Konfiguration: Apache Webserver ===== ===== Konfiguration: Apache Webserver =====
Zeile 170: Zeile 261:
 </VirtualHost> </VirtualHost>
 </code> </code>
 +
 +==== Neustart: Apache Webserver ====
  
 Nach Durchführung der vorhergehenden **Konfigurationsschritte**, sollte einem **Neustart** nichts im Wege stehen und die **Apache VHOST-Konfiguration** angezogen werden: Nach Durchführung der vorhergehenden **Konfigurationsschritte**, sollte einem **Neustart** nichts im Wege stehen und die **Apache VHOST-Konfiguration** angezogen werden:
 <code> <code>
-# systemctl restart httpd.service +# systemctl restart httpd.service</code>
-</code>+
  
 :!: **HINWEIS** - **Es erfolgen __keine__ weiteren Ausgaben, wenn der Start erfolgreich war !** :!: **HINWEIS** - **Es erfolgen __keine__ weiteren Ausgaben, wenn der Start erfolgreich war !**
 +
 +===== Erster Aufruf =====
 +
 +Nachfolgender Aufruf zeigt die Ausgabe durch [[https://github.com/tachtler/fail2map|fail2map]]:
 +
 +{{:tachtler:fail2map:fail2map.png|Fail2Map}}
  
tachtler/fail2map.1480051396.txt.gz · Zuletzt geändert: 2016/11/25 06:23 von klaus