Adresářový server LDAP

Součástí IAM appliance je od verze 0.6 adresářový server OpenLDAP. Ten je používán jak samotnou appliance, tak ho lze využívat pro poskytování dat jiným infrastrukturním aplikacím - např. autentizačním serverům (RADIUS, …​), linuxovým operačním systémům, externím access managerům, apod.

Ovládání adresářového serveru

Z pohledu IAM appliance jde o službu iam-directory-server.service, ta se ovládá stejně jako ostatní služby appliance příkazem systemctl. Služba adresářového serveru musí vždy běžet, jinak se uživatelé nejsou schopni autentizovat ani do jednotlivých částí appliance.

LDAP má svou vlastní databázi, která se v pravidelných intervalech zálohuje.

  • iam-directory-server-backup.service - Služba provádějící zálohu, součástí služby je i retence záloh. Vytváří se dva soubory se zálohou, záloha konfigurace a záloha dat.

  • iam-directory-server-backup.timer - Konfigurace naplánované úlohy; v jakých intervalech se má spouštět iam-directory-server-backup.service.

Stav zálohování

Zálohy se provádějí do adresáře /data/volumes/directory-server/backup/ ve formě gzipovaných LDIF souborů. Stav pravidelné úlohy je možné zjistit pomocí příkazů:

[root@localhost ~]# systemctl status iam-directory-server-backup.service
[root@localhost ~]# systemctl status iam-directory-server-backup.timer
[root@localhost ~]# systemctl list-timers --all

Aktivace pravidelných záloh

Pro aktivaci pravidelných záloh spusťte timer a aktivujte jeho automatické spouštění po startu operačního systému. Deaktivaci proveďte stejným způsobem, ale použijte stop, respektive disable.

[root@localhost ~]# systemctl start iam-directory-server-backup.timer
[root@localhost ~]# systemctl enable iam-directory-server-backup.timer

Zálohu je možné provést i ad-hoc ručním spuštěním služby iam-directory-server-backup.service. Služba provede retenci záloh, pak vytvoří novou zálohu a opět se vypne.

Obnova ze zálohy

Obnovu je v této verzi nutné provádět ručně. Po dobu obnovy je nedostupná autentizace uživatelů a případně data o jejich profilech. Již přihlášení uživatelé mohou v appliance stále pracovat. Některé aplikace (např. CzechIdM) budou hlásit, že je adresářový server nedostupný.

Proces obnovy trvá zpravidla jednotky minut.

  1. Přepněte se do kontejneru s adresářovým serverem.

    [root@localhost ~]# docker exec -it directory-server bash
  2. Ověřte, že jsou uvnitř kontejneru vidět zálohy a vyberty zálohy, které chcete obnovit.

    root@directory-server:/# ls -l /data/backup/
    total 28
    -rw-------. 1 root root 23052 Mar  2 11:46 20210302T114658-config.gz
    -rw-------. 1 root root   742 Mar  2 11:46 20210302T114659-data.gz
  3. Obnovte zálohu konfigurace LDAPu. Restore skriptu se zadává název zálohy bez určení cesty k souboru.

    root@directory-server:/# rm -r /etc/ldap/slapd.d/cn*
    root@directory-server:/# /sbin/slapd-restore-config 20210204T090611-config.gz
  4. Obnovte data LDAPu. Restore skriptu se zadává název zálohy bez určení cesty k souboru.

    root@directory-server:/# rm /var/lib/ldap/*
    root@directory-server:/# /sbin/slapd-restore-data 20210204T090615-data.gz

Šifrování záloh

Tato funkce je dostupná od iam-app-directory-server verze 0.2-0 a pouze pokud se používá kontejnerový image bcv-openldap:1.4.0-r2 nebo novější. Verzi image lze zjistit z konfigurace služby (soubor /data/registry/node-active-config/docker-compose-directory-server.yml).

Při instalaci updatu je automaticky vygenerován nový šifrovací klíč pro zálohy. Tento šifrovací klíč je unikátní a lze ho rovnou používat. Pokud přesto chcete klíč změnit, lze to provést následujícím příkazem.

[root@localhost ~]# openssl rand -base64 32 > /data/volumes/directory-server/secrets-enc/ldap-backup-symkey.pwfile

Šifrování záloh je nutné aktivovat na úrovni kontejneru.

  1. Editujte soubor /data/registry/node-active-config/docker-compose-directory-server.yml.

    • Nastavte proměnnou LDAP_ENCRYPT_BACKUP na hodnotu true.

  2. Zastavte službu CAS pomocí systemctl stop iam-cas.

  3. Restartujte LDAP službu příkazem systemctl restart iam-directory-server.

  4. Spusťte službu CAS pomocí systemctl start iam-cas.

  5. Další vytvořená záloha už bude zašifrovaná.

Šifrovanou zálohu lze rozpoznat podle koncovky souboru. Nešifrované zálohy mají suffix .gz, šifrované zálohy mají suffix .gz.e. Obnova šifrované zálohy se provádí stejně jako obnova zálohy nešifrované. Obnovovací skripty samy rozpoznají šifrovanou zálohu a pokusí se ji dešifrovat pomocí dostupného klíče.