======================================================================================================================== Ubuntu 18.04 - mit Paketinstallation openjdk-8-jdk - mit Paketinstallation tomcat8 ======================================================================================================================== Upgrade von Version 3.4.6 auf 4.0.1 ======================================================================================================================== ReleaseNotes: https://wiki.shibboleth.net/confluence/display/IDP4/ReleaseNotes Upgrading: (Muss InPlace sein) https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading https://wiki.shibboleth.net/confluence/display/IDP4/SystemRequirements !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Snapshot des Servers erstellen Irgendwas kann immer schief laufen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Wir versuchen, das Produktivsystem möglichst unterbrechungsfrei upzugraden. Der Idp soll nicht unnötig offline sein ------------------------------------------------------------------------------------------------------------------------ 1. Schritt: Dateien sichern ------------------------------------------------------------------------------------------------------------------------ - Wir erstellen eine Komplettsicherung mit Benutzerrechten. Dann müssen wir später nicht lange suchen ... mkdir ./save sudo cp -p -R /opt/shibboleth-idp ./save sudo cp -p -R /var/lib/tomcat8 ./save sudo cp -p -R /usr/share/tomcat8 ./save sudo cp -p -R /etc/tomcat8 ./save ------------------------------------------------------------------------------------------------------------------------ 2. Schritt: Java 11 parallel zu Java 8 installieren (der laufende tomcat8 bleibt davon unberührt) ------------------------------------------------------------------------------------------------------------------------ ... sudo apt-get update ... suso apt-get upgrade ... sudo apt-get install default-jre ... - Wollen wir Tools wie z.B. jar verwenden benötigen wir sudo apt-get install default-jdk ... ------------------------------------------------------------------------------------------------------------------------ 3. Schritt: Händische Installation tomcat9 ------------------------------------------------------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------- tomcat9: Gruppe und User ---------------------------------------------------------------------------------------------------- sudo groupadd tomcat9 sudo useradd -s /bin/false -g tomcat9 -d /opt/tomcat-latest tomcat9 ... - tomcat9 der Gruppe ssl-cert hinzufügen sudo usermod -aG ssl-cert tomcat9 ... ---------------------------------------------------------------------------------------------------- - Binary und PGP-Signatur herunterladen: - Idealerweise in z.B. einen Verzeichnis /opt/install welches root vorbehalten ist ---------------------------------------------------------------------------------------------------- cd /opt/install/ ... sudo curl -x http://:8080 -O http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz oder sudo curl -O http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz ... sudo curl -x http://:8080 -O http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz.asc oder sudo curl -O http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz.asc ... - Prüfen: gpg --verify apache-tomcat-9.0.37.tar.gz.asc apache-tomcat-9.0.37.tar.gz ... gpg: Signature made Tue 30 Jun 2020 10:15:07 PM CEST gpg: using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 gpg: Can't check signature: No public key ... - Holen wir uns den public key (kann manchmal dauern und klappt erst nach wiederholten Aufrufen) gpg --keyserver pgpkeys.mit.edu --keyserver-options http-proxy=http://:8080 --recv-key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 ... gpg --verify apache-tomcat-9.0.13.tar.gz.asc apache-tomcat-9.0.13.tar.gz ... - Erneut Prüfen: gpg: Signature made Tue 30 Jun 2020 10:15:07 PM CEST gpg: using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 gpg: Good signature from "Mark E D Thomas " [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7 ... - Gegenprüfung über Fingerprint des public key gpg --fingerprint A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 ... pub rsa4096 2009-09-18 [SC] A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7 uid [ unknown] Mark E D Thomas sub rsa4096 2009-09-18 [E] ... - OK: A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7 A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7 ... ---------------------------------------------------------------------------------------------------- - Binary bereitstellen ---------------------------------------------------------------------------------------------------- sudo mkdir /opt/tomcat-9.0.37 ... sudo tar xzvf apache-tomcat-9.0.37.tar.gz -C /opt/tomcat-9.0.37 --strip-components=1 ... - Das Verzeichnis ab jetzt über /opt/tomcat-latest ansprechen sudo ln -s /opt/tomcat-9.0.37 /opt/tomcat-latest ... sudo chown -hR tomcat9: /opt/tomcat-latest /opt/tomcat-9.0.37 ... ---------------------------------------------------------------------------------------------------- - Verzeichnis mit den Logdateien des tomcat besonders behandeln ---------------------------------------------------------------------------------------------------- sudo chown tomcat9:adm /opt/tomcat-latest/logs ... ---------------------------------------------------------------------------------------------------- - Wir benötigen auf Ubuntu 18.04 für tomcat 9.0.37 mindestens Version 1.2.23 von libtcnative-1 Der laufende tomcat8 bleibt vom Tausch der Datei unberührt ---------------------------------------------------------------------------------------------------- ==> Lösung: Pinning auf focal - Wir erweitern: sudo vi /etc/apt/sources.list am Ende mit: ... ###Stand: 04.08.2020 ###sev Wir benoetigen libtcnative-1 (1.2.23-1) aus focal deb http:///ubuntu/ focal main restricted universe deb http:///ubuntu/ focal-updates main restricted universe ... - Wir erstellen: sudo vi /etc/apt/preferences.d/focal.pref ... Package: * Pin: release n=focal Pin-Priority: -10 Package: libtcnative-1 Pin: release n=focal Pin-Priority: 500 ... sudo apt-get update ... sudo apt-get upgrade ... Sieht so aus als wären sich die Entwickler nun darüber einig, wer den symbolic link setzt: ... lrwxrwxrwx 1 root root 23 Jul 11 2019 /usr/lib/x86_64-linux-gnu/libtcnative-1.so -> libtcnative-1.so.0.2.23 ... Sonst: ... sudo ln -sv /usr/lib/x86_64-linux-gnu/libtcnative-1.so /usr/lib/ ... ---------------------------------------------------------------------------------------------------- - jstl-1.2.jar aus der Shibboleth-Installation bereitstellen TODO: Existiert auch eine aktuellere Version, oder muss es genau diese Version sein? ---------------------------------------------------------------------------------------------------- sudo wget -e use_proxy=on -e http_proxy=:8080 -e https_proxy=:8080 https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar sudo wget -e use_proxy=on -e http_proxy=:8080 -e https_proxy=:8080 https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar.asc sudo wget -e use_proxy=on -e http_proxy=:8080 -e https_proxy=:8080 https://shibboleth.net/downloads/PGP_KEYS ... gpg --import PGP_KEYS ... gpg --verify jstl-1.2.jar.asc jstl-1.2.jar ... gpg --fingerprint 378B845402277962 ... sudo cp jstl-1.2.jar /opt/tomcat-latest/lib/ sudo chown tomcat9: /opt/tomcat-latest/lib/jstl-1.2.jar ... ---------------------------------------------------------------------------------------------------- - die MySQL-Java-Library ( mysql-connector-java.jar) in das Runtime-Lib-Verzeichnis von Tomcat verlinken. sudo ln -s /usr/share/java/mysql.jar /opt/tomcat-latest/lib/mysql.jar ---------------------------------------------------------------------------------------------------- ... cd ~ ... ---------------------------------------------------------------------------------------------------- - Von überflüssigen webapps und Inhalten trennen ---------------------------------------------------------------------------------------------------- sudo rm -R /opt/tomcat-latest/webapps/docs sudo rm -R /opt/tomcat-latest/webapps/examples sudo rm -R /opt/tomcat-latest/webapps/host-manager sudo rm -R /opt/tomcat-latest/webapps/manager ... sudo -i ... cd /opt/tomcat-latest/webapps/ROOT/ rm *.* echo 'it works' > index.html chown tomcat9: index.html logout ... ----------------------------------------------------------------------------------------------------------------------------------------------------- - tomcat für die schibboleth-Installation vorbereiten und etwas sicherer machen ----------------------------------------------------------------------------------------------------------------------------------------------------- - Originale der Konfigurationsdateien sichern sudo cp /opt/tomcat-latest/conf/catalina.policy /opt/tomcat-latest/conf/catalina.policy.orig sudo cp /opt/tomcat-latest/conf/catalina.properties /opt/tomcat-latest/conf/catalina.properties.orig sudo cp /opt/tomcat-latest/conf/context.xml /opt/tomcat-latest/conf/context.xml.orig sudo cp /opt/tomcat-latest/conf/server.xml /opt/tomcat-latest/conf/server.xml.orig sudo cp /opt/tomcat-latest/conf/tomcat-users.xml /opt/tomcat-latest/conf/tomcat-users.xml.orig sudo cp /opt/tomcat-latest/conf/web.xml /opt/tomcat-latest/conf/web.xml.orig sudo cp /opt/tomcat-latest/conf/logging.properties /opt/tomcat-latest/conf/logging.properties.orig ... - Fuer den JSP-Compiler den Entwicklermodus deaktivieren sudo vi /opt/tomcat-latest/conf/web.xml ... Ca. Zeile 278: ... jsp org.apache.jasper.servlet.JspServlet fork false xpoweredBy false development false 3 ... - catalina.jar: Vortäuschen der verwendeten Server-Version: Die bei einem HTTP-Fehler 4xx oder 5xx ausgelieferten 'Dateien' sind fest als Ausgabestrings hinterlegt. Wir können aber die einkompilierten Konstanten für die Server-Version beeinflussen. In der Datei ServerInfo.properties die Informationen überschreiben. Dazu wird diese Datei aus- und nach dem Ändern wieder in das Jar-Archiv eingepackt. - Das ist aber nichts für Entwicklungsumgebungen mit z.B. Eclipse oder Netbeans. Die benötigen die Strings aus org/apache/catalina/util/ServerInfo.properties um die Version des Application-Servers zu erkennen. ... sudo jar xf /opt/tomcat-latest/lib/catalina.jar org/apache/catalina/util/ServerInfo.properties sudo vi org/apache/catalina/util/ServerInfo.properties ... ###server.info=Apache Tomcat/9.0.37 ###server.number=9.0.37.0 ###server.built=Feb 4 2019 16:30:29 UTC server.info=SomeWebServer server.number=0.0.0.0 server.built=Jan 01 1970 00:00:00 UTC ... sudo jar uf /opt/tomcat-latest/lib/catalina.jar org/apache/catalina/util/ServerInfo.properties ... sudo rm -R ./org ... - Port-Konfigurtion In der Tomcat-Configuration wird der Default-Port 8080 abgeschaltet und auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet. Es wird eingestellt, dass dieser Port nur über localhost erreichbar ist. Somit ist der tomcat9 nach außen nicht direkt sichtbar! ... sudo vi /opt/tomcat-latest/conf/server.xml ... - Um das IdP-Servlet im Tomcat zu aktivieren wird eine context-Datei hinterlegt. ... sudo mkdir -p /opt/tomcat-latest/conf/Catalina/localhost ... sudo vi /opt/tomcat-latest/conf/Catalina/localhost/idp.xml ... ... sudo chown -R tomcat9: /opt/tomcat-latest/conf/Catalina ... - IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher macht es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen) wenn alte Sessions bei einen Tomcat-Neustart weiter existieren. Wir deaktivieren dieses Tomcat-Feature: sudo vi /opt/tomcat-latest/conf/context.xml ... ... - Falls logcheck zum Einsatz kommt, logcheck zum Mitglied der Gruppe tomcat9 machen sudo usermod -a -G tomcat9 logcheck ... sudo vi /etc/logcheck/logcheck.logfiles ... ## Tomcat8 (Paketinstallation) /var/log/tomcat8/catalina.out # Tomcat9 (haendische Installation) /opt/tomcat-latest/logs/catalina.out ... cd ~ ... ---------------------------------------------------------------------------------------------------- - Tomcat: Konfigurationstest ---------------------------------------------------------------------------------------------------- sudo /opt/tomcat-latest/bin/configtest.sh ... - das sollte in der Ausgabe ohne >= WARNINGS sein außer, dass der Port 8009 derzeit anderweitig belegt ist: ... INFO: Initializing ProtocolHandler ["ajp-nio-127.0.0.1-8009"] Aug 05, 2020 11:28:06 AM org.apache.catalina.util.LifecycleBase handleSubClassException SEVERE: Failed to initialize component [Connector[AJP/1.3-8009]] ... ---------------------------------------------------------------------------------------------------- - Tomcat: logrotate für catalina.out und Löschen von alten Logdateien ---------------------------------------------------------------------------------------------------- sudo vi /etc/logrotate.d/tomcat9 ... /opt/tomcat-latest/logs/catalina.out { rotate 14 su tomcat9 adm create 0664 tomcat9 adm daily missingok notifempty compress delaycompress sharedscripts postrotate /usr/lib/rsyslog/rsyslog-rotate endscript } ==================================================================================================== Da die Datei mit copytruncate rotiert wird wollen wir in logcheck nicht ständig eine Fehlermneldung sehen - die ausführbaren Dateien des logcheck stehn in: ll /usr/sbin/log* Das muss immer dann neu durchgeführt werden, wenn es ein upgrade von logcheck gibt ==================================================================================================== sudo vi /usr/sbin/logtail2 ... ca. Zeile: 169 ... ### ###sev0001: Ausnahme fuer catalina.out hinzufuegen: Beginn ### ##$offset = 0; if ("$logfile" ne "/opt/tomcat-latest/logs/catalina.out") { print "***************\n"; print "*** WARNING ***: Log file $logfile is smaller than last time checked!\n"; print "*************** This could indicate tampering.\n"; } else { if (-e "${logfile}.1") { my ($lSize) = (stat("${logfile}.1"))[7]; if (defined($lSize) && ($offset > $lSize)) { print "------------ ${logfile}.1\n"; print_from_offset("${logfile}.1",$offset); } } } $offset = 0; ### ###sev0001: Ausnahme fuer catalina.out hinzufuegen: Ende ### ... - Filter für logcheck sudo vi /etc/logcheck/ignore.d.server/xxx_local ... - Wir kümmern uns immer zusätzlich um die Behandlung der tomcat-Logdateien sudo mkdir /usr/local/scripts ... sudo vi /usr/local/scripts/handletomcatlogs ... #!/bin/sh # /usr/local/scripts/handletomcatlogs # Überarbeiten der Besitz- und Zugriffsrechte der Logdateien des Tomcat9 # - die Dateien sollen für Hintergrundprozesse leichter lesbar sein # - Access-Logs enes händisch installierten tomcat werden nicht automatisch abgeräumt # Wir löschen also alle Dateien die älter als 8 Tage sind # - Kann regelmäßig von cron aufgerufen werden # Owner der Dateien chown -R tomcat9:adm /opt/tomcat-latest/logs # Zugriffsmasken auf Verzeichnis chmod 755 /opt/tomcat-latest/logs # Zugriffsmasken auf die Dateien chmod 644 /opt/tomcat-latest/logs/*.* # Alte Dateien löschen, wenn diese aelter als 8 Tage sind find /opt/tomcat-latest/logs/ -type f -mtime +8 -exec rm -f {} \; > /dev/null 2>&1 ... sudo chmod 750 /usr/local/scripts/handletomcatlogs ... sudo -u root crontab -e ... # m h dom mon dow command # Jede Stunde die Logdateien des Tomcat kuemmern 0 */1 * * * /usr/local/scripts/handletomcatlogs ... ---------------------------------------------------------------------------------------------------- Optional: Überflüssige Logdateien abstellen? Die Zugriffslogs des tomcat werden für den IdP eigentlich nicht benötigt Auf jeden Fall kann bei 'handlers' entfallen: 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler Diese Web-Applivationen haben wir ja gelöscht ---------------------------------------------------------------------------------------------------- sudo vi /opt/tomcat-latest/conf/logging.properties ... ###handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler handlers = java.util.logging.ConsoleHandler ####.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler .handlers = java.util.logging.ConsoleHandler ... ---------------------------------------------------------------------------------------------------- - Tomcat für den automatsichen Start konfigurieren (aber noch nicht in Betrieb nehmen) ---------------------------------------------------------------------------------------------------- - Welches Environment bringt tomcat9 von alleine mit? sudo /opt/tomcat-latest/bin/version.sh ... - Service-Datei(en) erstellen sudo vi /etc/systemd/system/tomcat9.service ... - Wir könnten das Environment auch aus einer separaten Datei einlesen lassen - Wir könnten das Environment auch in einer ausführbaren setenv.sh im bin-Verzeichnis von tomcat9 setzen - Wir können auch mehrzeilige Deklarationen direkt hier in der Datei setzen ... [Unit] Description=Apache Tomcat 9 Web Application Container After=network.target [Service] Type=forking User=tomcat9 Group=tomcat9 # Zeigt auf die per 'alternatives' gesetzte Version Environment=JAVA_HOME=/usr/lib/jvm/default-java Environment=JRE_HOME=/usr/lib/jvm/default-java # Zeigt auf die mit 'ln -s' gesetzte aktuelle Version von Tomcat 9 Environment=CATALINA_HOME=/opt/tomcat-latest Environment=CATALINA_BASE=/opt/tomcat-latest Environment=CATALINA_PID=/opt/tomcat-latest/tomcat9.pid # ---------------------------------------------------------------------------------------------------- # Optimieren der JVM # ---------------------------------------------------------------------------------------------------- # https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html # https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html # -server # Selects the Java HotSpot Server VM. # The 64-bit version of the JDK supports only the Server VM, so in that case the option is implicit. # -Xms= -Xmx= # Sets the initial size / the maximum size of the heap. # This values must be a multiple of 1024 and greater than 1 MB / 2 MB # -XX:MaxMetaspaceSize # Sets the maximum amount of native memory that can be allocated for class metadata. By default, the size is not limited. # -XX:NewSize -XX:MaxNewSize # Sets the initial size (in bytes) of the heap for the young generation. # The young generation region of the heap is used for new objects. # GC is performed in this region more often than in other regions. # If the size for the young generation is too small, then a lot of minor garbage collections will be performed. # If the size is too large, then only full garbage collections will be performed, which can take a long time to complete. # Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size # -Dfile.encoding=UTF-8 # java.nio # -Djava.awt.headless=true # Headless mode is a system configuration in which the display device, keyboard, or mouse is lacking. # -Djava.security.egd # You should be able to select the faster-but-slightly-less-secure /dev/urandom on Linux # -Djava.security.egd=file:/dev/./urandom # (note the extra /./) # -Djava.net.preferIPv4Stack # ToDo: benötigen wir das noch? Environment="JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=1024m \ -XX:NewSize=512m -XX:MaxNewSize=1024m \ -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom \ -Djava.net.preferIPv4Stack=true # ---------------------------------------------------------------------------------------------------- # https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug # Debuggen der SSL-Sitzung (hier der Teil fuer den trustmanager) # -Djavax.net.debug=ssl:trustmanager # ---------------------------------------------------------------------------------------------------- ExecStart=/opt/tomcat-latest/bin/startup.sh ExecStop=/opt/tomcat-latest/bin/shutdown.sh [Install] WantedBy=multi-user.target ... ------------------------------------------------------------------------------------------------------------------------ 4. Schritt: Schibboleth-Upgrade durchführen - Idealerweise in z.B. einem Verzeichnis /opt/install welches root vorbehalten ist ------------------------------------------------------------------------------------------------------------------------ ... By design, the idp.home/edit-webapp directory can be used to preserve changes across upgrades ... Wenn die Beschreibung so stimmt, sollten keine Anpassungen notwendig sein. Nur die Files welche wir unter den folgenden Pfaden angefasst oder zusätzlich erstellt haben sollten wir vorher sichern. idp.home/system idp.home/webapp ... cd /opt/install/ ... sudo wget -e use_proxy=on -e http_proxy=:8080 -e https_proxy=:8080 http://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-4.0.1.tar.gz sudo wget -e use_proxy=on -e http_proxy=:8080 -e https_proxy=:8080 http://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-4.0.1.tar.gz.asc ... - Prüfen: gpg --verify shibboleth-identity-provider-4.0.1.tar.gz.asc shibboleth-identity-provider-4.0.1.tar.gz ... gpg: Signature made Tue 02 Jun 2020 06:58:14 PM CEST gpg: using RSA key B77C52EEC21771DD gpg: Good signature from "philsmart (gpg key) " [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 8740 208C 0E93 FEC8 0EEB F913 B77C 52EE C217 71DD ... - Gegenprüfung über Fingerprint des public key gpg --fingerprint B77C52EEC21771DD ... pub rsa4096 2020-02-25 [SC] [expires: 2021-02-24] 8740 208C 0E93 FEC8 0EEB F913 B77C 52EE C217 71DD uid [ unknown] philsmart (gpg key) sub rsa4096 2020-02-25 [E] [expires: 2021-02-24] ... - OK: 8740 208C 0E93 FEC8 0EEB F913 B77C 52EE C217 71DD 8740 208C 0E93 FEC8 0EEB F913 B77C 52EE C217 71DD ... sudo tar -zxf shibboleth-identity-provider-4.0.1.tar.gz ... !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Tomcat 8 stoppen: Die Uhr für die Abwesenheit des Produktivsystems läuft !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! sudo systemctl stop tomcat8.service ... sudo JAVACMD=/usr/bin/java shibboleth-identity-provider-4.0.1/bin/install.sh -Didp.conf.filemode=644 ... cd ~ ... ------------------------------------------------------------------------------------------------------------------------ Manipulierte Systemdateien wiederherstellen ------------------------------------------------------------------------------------------------------------------------ - Wir hatten die Strings in den system/messages erweitert und eine zusätzliche Version für de hinterlegt sudo cp ./save/shibboleth-idp/system/messages/*.properties /opt/shibboleth-idp/system/messages/ ... - Optional: Das logo und favicon auf der obersten Ebene des des ROOT-Verzeichnis im tomcat sudo cp ./save/tomcat8/webapps/ROOT/favicon.ico /opt/tomcat-latest/webapps/ROOT sudo cp ./save/tomcat8/webapps/ROOT/logo80.png /opt/tomcat-latest/webapps/ROOT sudo chown tomcat9: /opt/tomcat-latest/webapps/ROOT/favicon.ico sudo chown tomcat9: /opt/tomcat-latest/webapps/ROOT/logo80.png ... ------------------------------------------------------------------------------------------------------------------------ Berechtigungen für den User tomcat9 nacharbeiten ------------------------------------------------------------------------------------------------------------------------ cd /opt/shibboleth-idp ... sudo chgrp -R tomcat9 conf credentials sudo chmod -R g+r conf credentials sudo chown tomcat9:tomcat9 logs metadata sudo chown tomcat9:tomcat9 logs/*.* metadata/*.* ... cd ~ ... ------------------------------------------------------------------------------------------------------------------------ tomcat9 als Service anmelden und starten (tomcat8 aus den runlevels nehmen) ------------------------------------------------------------------------------------------------------------------------ sudo update-rc.d -f tomcat8 remove sudo systemctl daemon-reload sudo systemctl enable tomcat9 sudo systemctl start tomcat9.service ... - 3-4 Sekunden Zeit geben sudo systemctl status tomcat9.service ... !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Produktivsystem ist wieder erreichbar !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ------------------------------------------------------------------------------------------------------------------------ 5. Schritt: Kontrolle ------------------------------------------------------------------------------------------------------------------------ sudo vi /opt/tomcat-latest/logs/catalina.out - sollte fehlerfrei sein ... sudo vi /opt/shibboleth-idp/logs/idp-warn.log - sollte fehlerfrei sein ... sudo vi /opt/shibboleth-idp/logs/idp-process.log - sollte aktuell sein ... ====Status https:///idp/status Funktionstest Identity Provider https://doku.tid.dfn.de/de:functionaltest_idp - https://testsp2.aai.dfn.de - https://testsp3.aai.dfn.de Welche Attribute werden für einen User generiert? https:///idp/profile/admin/resolvertest?requester=https%3A%2F%2Ftestsp3.aai.dfn.de%2Fshibboleth&principal= ... ------------------------------------------------------------------------------------------------------------------------ 6. Schritt: Tomcat8 deinstallieren ------------------------------------------------------------------------------------------------------------------------ - Falls Regeln für logcheck im Einsatz waren, dort Einträge für tomcat8 zurückziehen: sudo vi /etc/logcheck/logcheck.logfiles ... # Tomcat9 /opt/tomcat-latest/logs/catalina.out ... sudo vi /usr/sbin/logtail2 ... ### ###sev0001: Ausnahme fuer catalina.out etc. hinzufuegen: Beginn ### ##$offset = 0; if ("$logfile" ne "/opt/tomcat-latest/logs/catalina.out" && "$logfile" ne "/opt/shibboleth-idp/logs/idp-process.log" && "$logfile" ne "/opt/shibboleth-idp/logs/idp-warn.log") { print "***************\n"; print "*** WARNING ***: Log file $logfile is smaller than last time checked!\n"; print "*************** This could indicate tampering.\n"; } else { if (-e "${logfile}.1") { my ($lSize) = (stat("${logfile}.1"))[7]; if (defined($lSize) && ($offset > $lSize)) { print "------------ ${logfile}.1\n"; print_from_offset("${logfile}.1",$offset); } } } $offset = 0; ### ###sev0001: Ausnahme fuer catalina.out etc. hinzufuegen: Ende ### ... sudo apt-get remove --purge tomcat8 ... sudo apt-get autoremove --purge ... !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Aufpassen, dass dabei nicht libtcnative-1 entfernt wird !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! sudo apt-get install libtcnative-1 ... sudo rm -r /var/lib/tomcat8 ... sudo rm -r /usr/share/tomcat8 ... sudo rm -r /etc/tomcat8/ ... - Hier die Reihenfolge beachten! sudo deluser tomcat8 ssl-cert - Nur falls logcheck eingesetzt war und tomcat8 Mitglied von logcheck war sudo deluser logcheck tomcat8 - tomcat8 (ser und Gruppe) entfernen sudo deluser --remove-home tomcat8 ... - Run logrotate manually sudo logrotate -v -f /etc/logrotate.d/tomcat9 ... ------------------------------------------------------------------------------------------------------------------------ 7. Schritt: Java 8 deinstallieren ------------------------------------------------------------------------------------------------------------------------ java -version ... - Je nach vorher installierter Java-Version sudo apt-get remove --purge openjdk-8-jdk oder sudo apt-get remove --purge default-jre ... sudo apt-get autoremove --purge ... - Reste (passiert manchmal)? ll /usr/lib/jvm/ ... sudo rm /usr/lib/jvm/java-1.8.0-openjdk-amd64 sudo rm /usr/lib/jvm/.java-1.8.0-openjdk-amd64.jinfo sudo rm -r /usr/lib/jvm/java-8-openjdk-amd64/ ... ------------------------------------------------------------------------------------------------------------------------ 8. Schritt: Aufräumen ------------------------------------------------------------------------------------------------------------------------ cd ~ ... sudo rm -R ./save ...