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 [2017/03/24 16:32]
Raoul Gunnar Borenius
— (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 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 4 Jahren