Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp3fail2ban [2019/01/11 13:23]
Wolfgang Pempe [Config Shibboleth IdPv3]
— (aktuell)
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 des Tools '​fail2ban'​ abgewehrt werden. 
- 
-==== Config Shibboleth IdPv3 ==== 
- 
-Dazu muss das IdP-Logformat etwas angepasst werden. Siehe dazu die [[de:​shibidp3config-log|IdP-Konfigurationsanleitung in diesem 
-Wiki]]! 
- 
-==== Config 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 ===== 
- 
-Im Normalfall sperrt Fail2ban die user per iptables Regel auf IP-Ebene. D.h. der gesperrte User bekommt keine 
-Verbindung mehr zum IdP. Damit entfällt die Möglichkeit dem User eine Information zu geben warum er gesperrt ist 
-und was er machen kann um sich entsperren zu lassen. 
- 
-Alternativ kann fail2ban daher auch eingesetzt werden um den gesperrten nicht per iptables abzuweisen sondern ihn auf eine Info-Webseite zu leiten. 
- 
-Hier die Info eines DFN-AAI-Teilnehmers in Kurzform: 
- 
-<​code>​ 
-Also habe ich mich an folgende Anleitung gehalten: 
-https://​httpd.apache.org/​docs/​2.4/​rewrite/​access.html#​host-deny 
- 
-Dabei werden alle Anfragen an den Apache auf eine fest definierte Seite  
-weitergeleitet,​ sobald die anfragende IP-Adresse auf der Blacklist steht. 
-Auf der Zielseite habe ich dann einfach einen kurzen Erläuterungs-Text ​ 
-hinterlegt, der wie folgt aussieht: 
- 
-> Anmeldung zu oft fehlgeschlagen. 
-> Sie wurden für 10 Minuten gesperrt. 
-> Bitte versuchen Sie es später erneut. 
- 
-Die nötige Konfiguration im Apache sieht bei mir so aus: 
- 
-> 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>​ 
- 
-Im fail2ban habe ich dann noch unter action.d eine eigene Datei  
-angelegt, die beschreibt wie im Falle eine IP-Adresse gebannt und wieder ​ 
-freigegeben wird. 
- 
-> 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 19 Monaten