====== 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 =====
root@idp:~# apt install fail2ban
===== Konfiguration von fail2ban =====
[Definition]
failregex = IP\: .* Login by .* failed
IP\: .* No password available
ignoreregex =
[idp]
enabled = true
port = http,https
filter = idp
logpath = /opt/shibboleth-idp/logs/idp-process.log
maxretry = 5
===== 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: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]
AllowOverride
Require all granted
* neue Datei im Verzeichnis ''/etc/fail2ban/action.d'' erstellen, die regelt, wie eine IP-Adresse gebannt und wieder freigegeben wird:actionban = printf %%b " -\n" >>
actionunban = sed -i "/^ -$/d"
deny-config = /etc/apache2/conf.d/shib.deny