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/tomcat9/server.xml Folgendes ergänzt:

FIXME prüfen!

/etc/tomcat9/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" />
    ...
    <!-- IdP-Loglevel muss auf "INFO" stehen damit die Brute-Force-Abwehr greift. -->
    <variable name="idp.loglevel.idp" value="INFO" />
 
    <!-- LDAP-Loglevel auf "INFO" ändern damit mehr LDAP-Meldungen kommen -->
    <variable name="idp.loglevel.ldap" value="INFO" />
    ...
    <!-- 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>

Triggern Sie das Neuladen des Servlets im Tomcat und beobachten Sie die Logs:

root@idp:~# touch /opt/shibboleth-idp/war/idp.war

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" />
    ...
  • Zuletzt geändert: vor 6 Monaten