Upgrade IAM appliance na verzi 0.6
IAM appliance ve verzi 0.6
přináší tři nové služby: adresářový server LDAP, access manager a konektor server.
Z důvodu větších změn je nutné projít specifikým upgrade postupem (viz. níže).
-
Adresářový server LDAP
-
Komponenta je povinnou součástí appliance a musí vždy běžet. V případě že nefunguje, nemohou se do služeb appliance autentizovat uživatelé (a to ani administrátoři).
-
Komponenta vystavuje své rozhraní na portu
636/tcp
a je možné ji použít jako datový zdroj pro jiné prvky infrastruktury (např. RADIUS server, Linuxové OS, apod.)
-
-
Access manager
-
Komponenta je povinnou součástí appliance a musí vždy běžet. V případě že nefunguje, nemohou se do služeb appliance autentizovat uživatelé (a to ani administrátoři).
-
Access manager je dostupný na HTTPS rozhraní appliance, za fragmentem
/cas/
. -
Access manager lze použít pro centralizaci autentizace do dalších aplikací infrastruktury.
-
-
Konektor server
-
Nepovinná komponenta; není ve výchozím stavu instalována.
-
Samostatný kontejner pro identity konektory, tato služba podporuje nasazení WinRM+AD identity konektoru.
-
Tato verze IAM appliance přechází na autentizaci pomocí služby access manageru, přihlašování do CzechIdM nebude nadále řešeno prostředky aplikace CzechIdM. Všem uživatelům, kteří již do aplikace přistupují, je nutno nastavit a distribuovat nové heslo. |
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í.
[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.
[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
[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.
[root@localhost ~]# rpm -qi iam-appliance-repos Name : iam-appliance-repos Version : 0.1 Release : 1.el8 Architecture: noarch ... zkráceno ...
Ověření hostname a HTTPS certifikátu appliance
Od této verze používají služby appliance k autentizaci užvatelů centrální access manager. S ním komunikují přes HTTPS na doménovém jménu, pod kterým je appliance vystavena uživatelům.
-
Doménové jméno appliance musí být vystaveno v DNS.
-
Appliance musí být schopna v DNS resolvovat své doménové jméno na IP adresu.
-
Doménové jméno v HTTPS certifikátu musí odpovídat DNS názvu, aby bylo možné ustavit důvěryhodnou komunikaci po HTTPS.
[root@localhost ~]# ping -c1 moje-appliance.bcv PING appliance (172.31.255.123) 56(84) bytes of data. 64 bytes from appliance (172.31.255.123): icmp_seq=1 ttl=64 time=0.141 ms --- appliance ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.141/0.141/0.141/0.000 ms
[root@localhost ~]# ping -c1 doesnotexist.tld ping: doesnotexist.tld: Name or service not known
[root@localhost ~]# openssl x509 -in /data/volumes/web-proxy/secrets/current_web_cert.crt -text -noout Certificate: Data: ... zkráceno ... Subject: CN = moje-appliance.bcv ... zkráceno ... X509v3 extensions: X509v3 Subject Alternative Name: DNS:moje-appliance.bcv
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.
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.
[root@localhost ~]# systemctl stop czechidm [root@localhost ~]# systemctl stop czechidm-db web-proxy [root@localhost ~]# systemctl stop docker
Upgrade RPM balíčků
Aktualizujte softwarové balíčky náležející do IAM appliance.
[root@localhost ~]# dnf update iam-*
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í tedy možné paušálně ponechat původní verze konfigurací.
Rekonfigurace prostředí
Kvůli začlenění nových aplikací je nutné provést dodatečnou konfiguraci.
Konfigurace firewallu
Pokud se v průběhu instalace objevilo hlášení NOTICE: Firewall rules were updated. This change requires restart of the firewall and Docker.
, je potřeba restartovat firewall appliance, aby se projevily změny v jeho konfiguraci.
Restart firewallu by neměl (ale může, zvláště v případě konfigurační chyby) způsobit nedostupnost SSH. Mějte pro jistotu zajištěn přístup na lokální konzoli serveru. |
[root@localhost ~]# iptables -nL INPUT | grep 443 (žádný výpis)
[root@localhost ~]# systemctl restart iptables
[root@localhost ~]# iptables -nL INPUT | grep 443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
Konfigurace access manageru
Editujte soubor /data/registry/node-active-config/docker-compose-cas.yml
(např. editorem nano
nebo vim
) a nastavte parametr CAS_SERVER_NAME
.
Nová hodnota parametru zohledňuje protokol a hostname, kde appliance běží z pohledu uživatelů. Hodnota nesmí končit lomítkem.
- CAS_SERVER_NAME=https://moje-appliance.bcv
Editujte soubor /data/volumes-shared/cas-services/idm-200.json
a přidejte do něj parametr redirectUrl
s hodnotou https://HOSTNAME/idm/#/login
, kde HOSTNAME
je doménové jméno, na kterém je appliance přístupná.
Soubor má formát JSON a musí být syntakticky správně.
Klíče i hodnoty uzavřete do uvozovek |
{ "@class" : "org.apereo.cas.services.RegexRegisteredService", "serviceId" : "https://.+/idm.+", "name" : "CzechIdM", "id" : 200, "evaluationOrder" : 1, "redirectUrl": "https://moje-appliance.bcv/idm/#/login" }
Konfigurace CzechIdM
Editujte soubor /data/registry/node-active-config/docker-compose-czechidm.yml
(např. editorem nano
nebo vim
) a nastavte následující parametry. Nové hodnoty parametrů zohledňují protokol a hostname, kde appliance běží z pohledu uživatelů. Hodnoty je nutno v tomto smyslu doplnit, zpravidla půjde jen o nahrazení http
za https
v nastavení protokolu a nahrazení localhost
za DNS název appliance.
Tato nastavení jsou velmi náchylná na překlepy a přebývající nebo chybějící znaky. Věnujte proto zvýšenou pozornost syntaxi. Slovem |
-
CZECHIDM_CAS_URL
- Aby CzechIdM vědělo, kde běží access manager.-
Musí být ve formátu
https://HOSTNAME/cas/
.
-
-
CZECHIDM_CAS_IDM_URL
- Identifikace, kterou CzechIdM předává access manageru.-
Musí být ve formátu
https://HOSTNAME/idm/
.
-
-
CZECHIDM_CAS_HEADER_PREFIX
- Prefix session tiketů, které access manager vydává.-
Musí být ve formátu
https://HOSTNAME/idm/?ticket=
.
-
- CZECHIDM_CAS_URL=https://moje-appliance.bcv/cas/ - CZECHIDM_CAS_IDM_URL=https://moje-appliance.bcv/idm/ - CZECHIDM_CAS_HEADER_PREFIX=https://moje-appliance.bcv/idm/?ticket=
Import certifikátu IAM appliance do důvěryhodných certifikátů
Protože komponenty appliance jsou samostatně kontejnerizované celky, je nutné zajistit, aby navzájem důvěřovaly svým SSL certifikátům. Naimportujte proto certifikát webové proxy (resp. kořenový certifikát z jeho řetězu důvěry) mezi důvěryhodné.
Pokud již máte kořenový certifikát mezi důvěryhodnými importován, můžete tento krok přeskočit. |
[root@localhost ~]# cp /data/volumes/web-proxy/secrets/current_web_cert.crt /data/volumes-shared/cacerts/
Následně soubor editujte a ponechte zde pouze kořenový certifikát.
[root@localhost ~]# nano /data/volumes-shared/cacerts/current_web_cert.crt
Kontrolovaný start služeb
Nastartujte kontejnerovou platformu. Použijte příkaz restart
místo příkazu start
.
[root@localhost ~]# systemctl restart docker
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 startujeme i nové služby - iam-directory-server a iam-cas .
|
[root@localhost ~]# systemctl start czechidm-db 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.
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
.
[root@localhost ~]# systemctl start czechidm iam-cas
Úspěšný start služeb opět ověřte v jejích logách.
Služba |
Aktivace autostartu nových služeb
Pro nové služby je nutné aktivovat automatický start po startu operačního systému.
[root@localhost ~]# systemctl enable iam-directory-server iam-cas
Aktivace zálohování
Služba adresářového serveru má svou vlastní databázi, kterou je nutné pravidelně zalohovat. Povolte a spusťte naplánovanou úlohu.
[root@appliance ~]# systemctl start iam-directory-server-backup.timer [root@appliance ~]# systemctl enable iam-directory-server-backup.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 do CzechIdM a budete vpuštěni rovnou do agendy, odhlašte se.
Budete přesměrováni na login dialog, který je jiný než doposud. Tento stav je žádoucí, jde o login dialog access manageru. Zde se přihlaste jako uživatel admin
s heslem admin
, aplikace vás autentizuje a předá zpět do CzechIdM.
Zabezpečte aplikaci změnou administrátorského hesla! |
Přechodem na autentizaci pomocí access manageru došlo k resetu hesla uživatele admin
. V CzechIdM mu proto nastavte nové, odhlašte se, a ověřte že se novým heslem dokážete přihlásit.
Uživatelům je v tomto kroku vygenerováno nové heslo a je uloženo do adresářového serveru appliance. Do služeb appliance se tedy nebudou moci přihlásit. Výjimkou je, pokud jsou uživatelé autentizováni proti externí databázi (např. AD, AD pomocí Kerberos, apod.). |
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.