Logging
Das Default-Logging sollte in folgenden Punkte angepasst werden:
- Loghistory aus Datenschutzgründen z.B. nur 7 Tage aufbewahren (die Länge dieses Zeitraums ggf. nach Rücksprache mit dem/der Datenschutzbeauftragten den lokalen Regularien anpassen!),
- LDAP-Client-Log von WARN auf INFO hochsetzen, damit mehr LDAP-Meldungen kommen,
- Client-IP-Adresse im Log protokollieren zur Vorbereitung der Brute-Force-Abwehr,
- Wenn der Tomcat hinter einem Loadbalancer betrieben wird, dann erscheint im Log in der Variable
idp.remote_addr
die IP des Loadbalancers. Um die Client-IP korrekt anzuzeigen, wird im Tomcat in der/etc/tomcat10/server.xml
Folgendes ergänzt:
prüfen!
- /etc/tomcat10/server.xml hinter Loadbalancer
... <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> ... <!-- forwarded remote ip --> <!--https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/valves/RemoteIpValve.html --> <Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="10\.0\.0\.1|10\.0\.0\.2" remoteIpHeader="x-forwarded-for" /> ... </Host> ...
- ./conf/logback.xml
... <!-- Aufbewahrungsdauer in Tagen --> <variable name="idp.loghistory" value="7" /> ... <!-- Process log. --> <appender name="IDP_PROCESS" class="... <File>... <rollingPolicy class="... <fileNamePattern>... <maxHistory>... </rollingPolicy> <encoder class="... <charset>... <!-- Client-IP-Adresse im Log mit protokollieren --> <Pattern>%date{ISO8601} - %level [%logger:%line] - IP:%mdc{idp.remote_addr:-n/a} - %msg%n%ex{short}</Pattern> </encoder> </appender>
- ./conf/idp.properties
idp.loglevel.idp = INFO idp.loglevel.ldap = INFO
Triggern Sie das Neuladen des Servlets im Tomcat und beobachten Sie die Logs:
root@idp:~# touch /opt/shibboleth-idp/war/idp.war
Optional: Abweichendes Log-Verzeichnis
In ./conf/logback.xml
können Sie auch das Verzeichnis einstellen, in das der IdP loggt. Achtung: Auf Betriebssystemen mit systemd muss das Unit File noch einmal angepasst werden, wenn Sie hier den Standardpfad abändern. Der Tomcat-Prozess hat sonst keine Schreibrechte in Ihrem Logverzeichnis (siehe die Instruktionen zur override.conf für Tomcat).
- ./conf/logback.xml
... <variable name="idp.logfiles" value="/var/log/shibboleth-idp" /> ...