no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


de:shibidp:fail2ban [2020/04/07 14:51] (aktuell) – angelegt Silke Meyer
Zeile 1: Zeile 1:
 +====== Abwehr von Brute Force Attacken ======
  
 +Da der IdP weltweit erreichbar ist, ist es einem Angreifer prinzipiell möglich, Usernamen/Passwörter beliebig lange durchzuprobieren. Solche Angriffe können z.B. mithilfe der Intrusion Prevention-Software [[http://www.fail2ban.org|fail2ban]] abgewehrt werden. Fail2ban sperrt dann IP-Adressen, von denen zu viele Fehlversuchen kommen.
 +
 +===== Anpassen des Logformats von Shibboleth =====
 +
 +Das IdP-Logformat muss angepasst werden, wie unter [[de:shibidp:config-log|Logging]] beschrieben.
 +
 +===== Installation von fail2ban =====
 +
 +<code bash>
 +root@idp:~# apt install fail2ban
 +</code>
 +
 +===== Konfiguration von fail2ban =====
 +
 +<file ini /etc/fail2ban/filter.d/idp.conf>
 +[Definition]
 +failregex = IP\:<HOST> .* Login by .* failed
 +            IP\:<HOST> .* No password available
 +ignoreregex =
 +</file>
 +
 +<file ini /etc/fail2ban/jail.local>
 +[idp]
 +enabled  = true
 +port     = http,https
 +filter   = idp
 +logpath  = /opt/shibboleth-idp/logs/idp-process.log
 +maxretry = 5
 +</file>
 +
 +===== Fail2ban über Apache =====
 +
 +Ein Teilnehmer der DFN-AAI hat eine Lösung erarbeitet, mit der gesperrte Nutzer*innen darüber informiert werden können, warum sie den IdP nicht mehr erreichen können: Er hat fail2ban genutzt, um auf eine Informationsseite umzuleiten. Die Vorgehensweise in Stichworten:
 +
 +  * Anleitung, um alle Anfragen von geblacklisteten IPs umzuleiten: https://httpd.apache.org/docs/2.4/rewrite/access.html#host-deny
 +  * Erklärung auf Zielseite stellen, aus der hervorgeht, dass zu viele Anmeldeversuche fehlgeschlagen sind und wann die Person es erneut versuchen kann.
 +  * Apache-Konfiguration:<code bash>RewriteEngine on
 +RewriteMap hosts-deny "txt:/etc/apache2/conf.d/shib.deny"
 +RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND"
 +RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/Blockiert/index.html [L]
 +<Directory "/srv/www/htdocs/Blockiert">
 +    AllowOverride
 +    Require all granted
 +</Directory></code>
 +  * neue Datei im Verzeichnis ''/etc/fail2ban/action.d'' erstellen, die regelt, wie eine IP-Adresse gebannt und wieder freigegeben wird:<code bash>actionban = printf %%b "<ip> -\n" >> <deny-config>
 +actionunban = sed -i "/^<ip> -$/d" <deny-config>
 +deny-config = /etc/apache2/conf.d/shib.deny
 +</code>
  • Zuletzt geändert: vor 4 Jahren