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.
Config Shibboleth IdPv3
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.
Config fail2ban
- /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