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
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3fail2ban [2017/03/12 02:17] Wolfgang Pempede:shibidp3fail2ban [2019/01/11 13:23] – [Config Shibboleth IdPv3] Wolfgang Pempe
Zeile 7: Zeile 7:
 ==== Config Shibboleth IdPv3 ==== ==== Config Shibboleth IdPv3 ====
  
-Dazu muss das IdP-Logformat etwas angepasst werden: +Dazu muss das IdP-Logformat etwas angepasst werden. Siehe dazu die [[de:shibidp3config-log|IdP-Konfigurationsanleitung in diesem 
- +Wiki]]!
-<file xml ./conf/logback.xml> +
-<appender name="IDP_PROCESS" class="ch.qos.logback.core.rolling.RollingFileAppender"> +
- <File>${idp.logfiles}/idp-process.log</File> +
- +
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> +
-  <fileNamePattern>${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz</fileNamePattern> +
-  <maxHistory>${idp.loghistory:-180}</maxHistory> +
- </rollingPolicy> +
- +
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> +
-  <charset>UTF-8</charset> +
-  <Pattern>%date{ISO8601} - %level [%logger:%line- IP:%mdc{idp.remote_addr:-n/a} | %msg%n%ex{short}</Pattern> +
- </encoder> +
-</appender> +
-</file> +
- +
-Entscheidend dabei ist die Angabe "IP:%mdc{idp.remote_addr:-n/a}" damit die Client-IP mitgelogged wird.+
  
 ==== Config fail2ban ==== ==== Config fail2ban ====
Zeile 46: Zeile 29:
 maxretry = 5 maxretry = 5
 </file> </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>