Dies ist eine alte Version des Dokuments!


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.

Dazu muss das IdP-Logformat etwas angepasst werden:

./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>

Entscheidend dabei ist die Angabe „IP:%mdc{idp.remote_addr:-n/a}“ damit die Client-IP mitgelogged wird.

/etc/fail2ban/filter.d/idp.conf
[Definition]
 
failregex = IP\:<HOST> .* Login by .* failed
            IP\:<HOST> .* No password available
ignoreregex =
/etc/fail2ban/jail.local
[idp]
 
enabled  = true
port     = http,https
filter   = idp
logpath  = /opt/shibboleth-idp/logs/idp-process.log
maxretry = 5
  • Zuletzt geändert: vor 7 Jahren