Upgrade IAM appliance na verzi 1.0

IAM appliance ve verzi 1.0 přináší opravy a vylepšení celkového běhu appliance. V této verzi také dochází ke sjednocení názvů služeb na úrovni systemd. Názvy czechidm, czechidm-db a web-proxy a s nimi související naplánované úlohy mají nově jednotný prefix iam-.

  • Úpravy chování

    • Odstranění krajních případů při načítání důvěryhodných certifikátů do kontejnerů.

    • Možnost nastavit časovou zónu appliance pomocí iam-firstboot.

    • Opravy automatického relinku aplikace CzechIdM.

    • Opravy pro nahrávání příloh do CzechIdM, komprese HTTP komunikace, atd.

    • Opravy redirectů CAS access manageru.

    • Opravy integrace CzechIdM a CAS.

    • Vylepšená konfigurace logování CAS access manageru.

  • Nové funkce

    • Hlavní stránka appliance s rozcestníkem aplikací. Rozcestník monitoruje, zda aplikace běží, a podle toho zpřístupňuje uživateli klikatelný odkaz.

    • Služba interního DNS serveru, do kterého lze přidávat záznamy pomocí editace /etc/hosts.

    • Podpora pro aplikační kontejnery s CzechIdM 11.

    • Automatické mazání nepoužívaných kontejnerových imagů.

  • Volitelné funkce

    • Možnost šifrovat zálohy adresářového serveru (více zde).

    • Možnost bezpečnostního hardeningu SSH přístupu do OS appliance (více zde).

Prerekvizity

Prerekvizity pro upgrade.

Síťové prostupy

Appliance komunikuje do internetu se serverem repo.iamappliance.com na portech 443/tcp a 8443/tcp. Tato komunikace musí být funkční.

Ověření funkční komunikace pomocí nástroje tcptraceroute
[root@localhost ~]# tcptraceroute repo.iamappliance.com 443
traceroute to repo.iamappliance.com (87.236.196.108), 30 hops max, 60 byte packets
... zkráceno ....
 7  neon.bcvsolutions.eu (87.236.196.108) <syn,ack>  2.728 ms  3.013 ms  2.160 ms

[root@localhost ~]# tcptraceroute repo.iamappliance.com 8443
traceroute to repo.iamappliance.com (87.236.196.108), 30 hops max, 60 byte packets
... zkráceno ...
 7  neon.bcvsolutions.eu (87.236.196.108) <syn,ack>  1.995 ms  2.427 ms  2.235 ms

Připojení Docker repozitářů

Zkontrolujte, že máte funkční napojení Docker repozitáře umístěného na serveru repo.iamappliance.com:8443. Stáhněte jakýkoliv image, např. busybox:latest image. Po úspěšném stažení lze image ihned smazat.

Stažení malého image pro ověření funkčnosti
[root@localhost ~]# docker pull repo.iamappliance.com:8443/busybox
Using default tag: latest
latest: Pulling from busybox
9ea23c65b705: Pull complete
Digest: sha256:540f2e917216c5cfdf047b246d6b5883932f13d7b77227f09e03d42021e98941
Status: Downloaded newer image for repo.iamappliance.com:8443/busybox:latest
repo.iamappliance.com:8443/busybox:latest
Smazání staženého image
[root@localhost ~]# docker rmi repo.iamappliance.com:8443/busybox:latest
Untagged: repo.iamappliance.com:8443/busybox:latest
Untagged: repo.iamappliance.com:8443/busybox@sha256:540f2e917216c5cfdf047b246d6b5883932f13d7b77227f09e03d42021e98941
Deleted: sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749
Deleted: sha256:8ac8bfaff55af948c796026ee867448c5b5b5d9dd3549f4006d9759b25d4a893

Povýšení konfigurace softwarových repozitářů

Ověřte, že definice RPM repozitářů ve vaší appliance jsou alespoň ve verzi 0.3. Pokud ne, proveďte jejich update dle tohoto postupu.

Zjištění verze balíčku iam-appliance-repos
[root@localhost ~]# rpm -qi iam-appliance-repos
Name        : iam-appliance-repos
Version     : 0.1
Release     : 1.el8
Architecture: noarch
... zkráceno ...

Upgrade

Vypnutí appliance

Appliance vypněte běžným způsobem, například zadáním příkazu poweroff na konzoli, nebo přes ACPI shutdown.

Vytvoření snapshotu

Vytvořte snapshot vypnutého virtuálního serveru.

Spuštění appliance

Spusťte appliance standardním způsobem. Po nastartování zkontrolujte, že všechny služby běží.

Zastavení služeb

Zastavte všechny služby appliance.

Zastavení služeb včetně kontejnerizace
[root@localhost ~]# systemctl stop czechidm iam-cas
[root@localhost ~]# systemctl stop czechidm-db web-proxy iam-directory-server
[root@localhost ~]# systemctl stop docker

Odinstalování nepotřebných balíčků a korekce spouštěných služeb

Odinstalujte nepotřebné softwarové balíčky, povolte a zakažte služby dle příkladu níže.

Explicitně vypínáme některé služby související s CzechIdM kvůli jejich přejmenování při update. V dalších krocích je opět aktivujeme.
[root@localhost ~]# dnf remove firewalld firewalld-filesystem
[root@localhost ~]# systemctl enable --now haveged rngd fstrim.timer
[root@localhost ~]# systemctl disable --now kdump microcode nis-domainname dnf-makecache.timer
[root@localhost ~]# systemctl disable czechidm-db czechidm web-proxy czechidm-db-backup.timer

Upgrade RPM balíčků

Aktualizujte softwarové balíčky náležející do IAM appliance.

Aktualizace balíčků IAM appliance
[root@localhost ~]# dnf update iam-appliance iam-docker-settings

Vyřešte konfigurační konflikty stejně jako při běžných aktualizacích. Dejte pozor na to, že se v nových verzích software mohou objevit nové konfigurační položky; není možné paušálně ponechat původní verze konfigurací.

Pro správnou funkci služby CzechIdM je nutno použít kontejnerový image bcv-czechidm:10.8.2-r2 nebo novější. Zkontrolujte v souboru /data/registry/node-active-config/docker-compose-czechidm.yml, že se tento image opravdu používá. Podrobnosti viz seznam známých problémů.

Rekonfigurace prostředí

Kvůli začlenění nových aplikací je nutné provést dodatečnou konfiguraci.

Úprava konfigurace časové zóny RTC

Appliance počítá s během v prostředí, kde jsou lokální hardwarové hodiny nastaveny na časovou zónu UTC. Nastavte interní konfiguraci appliance, aby tomuto faktu odpovídala. Tato konfigurační změna ovlivňuje pouze způsob, jakým virtuální server s appliance "vnímá" informace o čase přicházející z hw hodin hypervizoru; nastavení nemá žádný vliv na hypervizor.

V prostředí MS Windows / Hyper-V zpravidla není RTC v UTC režimu, ale v lokální časové zóně. Nastavení není pro tuto platformu relevantní.
Nastavení appliance pro RTC v UTC zóně
[root@localhost ~]# timedatectl set-local-rtc 0

Úprava časové zóny OS appliance

Základní instalace appliance má jako časovou zónu vedenou zónu UTC. Tuto zónu je vhodné přenastavit. Přenastavení proveďte pomocí nástroje iam-firstboot. Tento krok nepřeskakujte ani v případě, že chcete appliance provozovat v časové zóně UTC, protože nástroj iam-firstboot provádí na pozadí další kroky, které je nutné v procesu upgradu dokončit.

Použití konfiguračního nástroje je v tomto kroku velmi specifické:

  • Pomocí volby n přeskočte již dříve nakonfigurované možnosti. Je zapotřebí konfigurovat pouze časovou zónu.

  • Při konfiguraci časové zóny vyberte požadovanou zónu pomocí interaktivního menu.

  • Při přeskočení změny hesla uživatele root vypíše nástroj varování o výchozím hesle. Toto varování ignorujte.

  • Po dokončení konfigurace vás nástroj vyzve k restartu operačního systému. Restart neprovádějte.

Nastavení časové zóny a dorovnání prostředí pomocí iam-firstboot
[root@localhost ~]# iam-firstboot
...
Configure network? [Y/n]: n
Configure hostname? [Y/n]: n
Configure NTP time synchronization? [Y/n]: n
Configure time zone? [Y/n]: y
... zkráceno ...
Set new root password [Y/n]: n

Upravte nastavení DNS

V této verzi appliance je nově zavedena služba interního DNS serveru. Z toho důvodu je potřeba přesunout konfiguraci DNS serverů vašeho prostředí, pokud byla definována staticky.

Pokud appliance přebírá síťovou adresu a adresy DNS serverů z DHCP, konfiguraci pomocí nmtui (kroky 2-7) přeskočte a pokračujte restartem Network Manageru.
  1. Odstraňte konfigurační soubor určující statickou konfiguraci rm /etc/NetworkManager/conf.d/appliance-dns.conf.

  2. Vypište si aktuální nastavení pomocí cat /etc/resolv.conf.

  3. Spusťte grafickou terminálovou aplikaci nmtui.

  4. V seznamu Ethernetových připojení nalezněte záznam, který odpovídá síťovému rozhraní appliance, a otevřete jej.

  5. V oddílu pro konfiguraci IPv4 (a případně IPv6) nastavte odpovídající hodnoty u položek "DNS servers" a "Search domains". IP adresa by měla být již předvyplněna.

  6. Konfiguraci uložte pomocí OK.

  7. Ukončete nástroj nmtui.

Po dokončení konfigurace restartujte síťovou vrstvu operačního systému. Po restartu ověřte správnost přidělených IP adres a funkčnost DNS serveru.

# restart síťové vrstvy
[root@localhost ~]# systemctl restart NetworkManager

# "nameserver" musí mířit na 127.0.0.1
[root@localhost ~]# cat /etc/resolv.conf
...zkráceno...
nameserver 127.0.0.1

# ve výpisu stavu aplikace NetworkManager musí být vidět proces "dnsmasq"
[root@localhost ~]# systemctl status NetworkManager | grep -A3 CGroup
   CGroup: /system.slice/NetworkManager.service
           ├─892 /usr/sbin/NetworkManager --no-daemon
           └─942 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts ...zkráceno...

# překlad doménových jmen musí fungovat obvyklým způsobem
[root@localhost ~]# getent hosts repo.iamappliance.com
87.236.196.108  iamappliance.com repo.iamappliance.com

Po úpravě DNS restartujte kontejnerovou platformu.

[root@localhost ~]# systemctl restart docker

Kontrolovaný start služeb

V rámci aktualizací mohou konfigurace služeb odkazovat na nové Docker image - ty systém musí v tuto chvíli stáhnout. Protože není možné předem říci, jak dlouho bude stahování Docker image trvat, mohlo by dojít k předběhnutí startu jednotlivých služeb. Proto provedeme jejich kontrolovaný start.

Povšimněte si, že došlo k přejmenování služeb czechidm, czechidm-db a web-proxy na úrovni systemd (a příkazu systemctl).
Kontrolovaný start nezávislých služeb
[root@localhost ~]# systemctl start iam-czechidm-db iam-web-proxy iam-directory-server

Pokud dochází ke stažení nového Docker image, objeví se v logu /var/log/messages záznam podobný následujícímu.

Systém stahuje kontejnerový image
Jan 28 09:42:32 localhost docker-compose[5967]: 12-r1: Pulling from bcv-postgres

Po stažení image dojde k automatickému vytvoření kontejneru a startu služby. To, že služba nastartovala korektně, ověřte v jejím logu v adresářích /data/logs/NÁZEVSLUŽBY/NÁZEVSLUŽBY.log.

Spuštění zbývajících služeb
[root@localhost ~]# systemctl start iam-czechidm iam-cas

Úspěšný start služeb opět ověřte v jejích logách.

Služba iam-czechidm bude startovat poměrně dlouho, protože bude probíhat relink aplikace CzechIdM. Při této operaci je nutný přístup na repozitáře repo.iamappliance.com, jinak relink selže. Celá operace může, v závislosti na výkonu virtuálního serveru, trvat i déle než deset minut.

Aktivace autostartu služeb

Pro přejmenované služby je nutné aktivovat automatický start po startu operačního systému.

Povolení autostartu služeb
[root@localhost ~]# systemctl enable iam-czechidm iam-czechidm-db iam-web-proxy

Aktivace zálohování

Protože došlo k přejmenování služeb, není v tuto chvíli spuštěna původně funkční služba zálohování provozní CzechIdM databáze. Spusťte a naplánujte ji znovu.

Aktivace zálohování databáze pro CzechIdM
[root@appliance ~]# systemctl start iam-czechidm-db-backup.timer
[root@appliance ~]# systemctl enable iam-czechidm-db-backup.timer

Aktivace pravidelného čištění kontejnerových imagů

Již nepotřebné kontejnerové image není nutno uchovávat na disku appliance. Aktivujte pravidelnou mazací úlohu, která je čistí. Úloha maže všechny image, ke kterým neexistuje vytvořený (byť vypnutý) kontejner. Chybějící image se vždy mohou znovu stáhnout z oficiálních repozitářů repo.iamappliance.com.

[root@localhost ~]# systemctl start iam-docker-images-prune.timer
[root@localhost ~]# systemctl enable iam-docker-images-prune.timer

Kontrola funkčnosti a zabezpečení

Přistupte na web appliance tak, jak jste zvyklí. Pokud jste byli předtím přihlášeni, odhlašte se a zkuste provést zcela nové přihlášení.

Pokud je autentizace do CzechIdM pomocí access manageru funkční, upgrade proběhl v pořádku. Doporučujeme provést restart celého serveru a ověřit, že všechny služby byly korektně spuštěny.

Post-upgrade kroky

V rámci prací prováděných po upgrade je vhodné pořídit nový snapshot vypnutého serveru. Původní snapshot, pořízený před upgradem, doporučujeme uchovat alespoň jeden týden.