Integrace s OS Linux
Úvodní informace
Integrace s operačním systémem Linux je možná pomocí 2Element agenta který obsahuje:
příkaz activate pro jednoduchou hromadnou registraci systému
příkaz authorized_keys pro integraci do serveru OpenSSH
modul pro PAM (Pluggable Authentication Modules)
modul pro NSS (Name Service Switch)
Instalace, konfigurace a jednotlivé komponenty jsou popsané níže.
Obsah
- 1 Úvodní informace
- 2 Obsah
- 3 Instalace agenta
- 3.1 RHEL 7
- 3.2 RHEL 8
- 3.3 RHEL 9
- 3.4 Debian 11 (“bullseye”)
- 4 Nastavení integrace
- 5 Funkce 2Element agenta
- 5.1 Příkaz activate
- 5.2 Příkaz authorized_keys
- 5.3 Modul pro PAM (Pluggable Authentication Modules)
- 5.3.1 Příklad nastavení pro OpenSSH
- 5.3.1.1 Nastavení nezávislé na distribuci
- 5.3.1.2 Nastavení pro RHEL 8
- 5.3.1.3 Nastavení pro Debian 11
- 5.3.1 Příklad nastavení pro OpenSSH
- 5.4 Modul pro NSS (Name Service Switch)
- 5.4.1 Aktivace v RHEL 7
- 5.4.2 Aktivace v RHEL 8
- 5.4.3 Test nastavení
- 5.4.4 Rozsah UID a GID
Instalace agenta
Pro integraci OS Linux s aplikací 2Element je potřeba na daný systém nainstalovat 2Element agenta. Pro vybrané distribuce je k dispozici připravený balíček který je možné nainstalovat takto:
RHEL 7
yum-config-manager --add-repo https://yum.sonpo.cz/element2/element2-agent-el-7.repo
yum install element2-agent
RHEL 8
yum-config-manager --add-repo https://yum.sonpo.cz/element2/element2-agent-el-8.repo
yum install element2-agent
RHEL 9
yum-config-manager --add-repo https://yum.sonpo.cz/element2/element2-agent-el-9.repo
yum install element2-agent
Debian 11 (“bullseye”)
Instalací agenta nedojde ke změně nastavení systému.
Nastavení integrace
V aplikaci 2Element je potřeba systém zaregistrovat jako novou chráněnou aplikaci a to buď pomocí aktivačního klíče nebo ručně. Navázáním 2Element agenta na 2Element server nedojde samo o sobě ke změně konfigurace nebo chování operačního systému.
Přidání pomocí aktivačního klíče
Nastavení v aplikaci 2Element
Vytvoříme nový aplikační klíč (Aplikace a klíče - Aktivační klíče - Přidat) a jako typ chráněné aplikace vybereme Linux. Po přidání aktivačního klíče je zobrazen jeho detail.
Pomocí tlačítka Zobrazit vzorový CLI příkaz si necháme zobrazit příkaz pro spuštění na systému s OS Linux a zkopírujeme ho do schránky.
Pomocí jednoho aktivačního klíče je možné zaregistrovat libovolné množství systémů - např. automatizovaně pomocí nástroje na správu konfigurací (cfengine, puppet, ansible apod.).
Nastavení 2Element agenta
Jako uživatel root (nebo pomocí sudo) spustíme příkaz získaný v předchozím kroku, např.:
Po spuštění dojde k vytvoření nové chráněné aplikace na straně 2Element serveru a na systému s OS Linux vznikne konfigurační soubor /opt/element2-agent/element2.conf. Parametr fail_mode je nastaven na safe a parametr log_level na info (viz. Úprava konfigurace).
Ruční přidání chráněné aplikace
Nastavení v aplikaci 2Element
Vytvoříme novou chráněnou aplikaci (Aplikace a klíče - Chráněné aplikace - Přidat) typu Linux. Po přidání aplikace je zobrazen její detail ve kterém jsou údaje potřebné pro nastavení agenta.
Nastavení 2Element agenta
Vytvoříme nový konfigurační soubor ze vzorového souboru:
V souboru upravíme nastavení takto:
base_url - zapíšeme hodnotu Základní URL z aplikace 2Element
app_id - zapíšeme hodnotu ID aplikace z aplikace 2Element
app_secret - zapíšeme hodnotu Token z aplikace 2Element
Úprava konfigurace
Konfigurace agenta se načítá z konfiguračního souboru /opt/element2-agent/element2.conf. V souboru je možné nastavit tyto parametry:
base_url - hodnota odpovídající parametru Základní URL v detailu chráněné aplikace
app_id - hodnota odpovídající parametru ID aplikace v detailu chráněné aplikace
app_secret - hodnota odpovídající parametru Token v detailu chráněné aplikace
log_level - úroveň záznamů v logu, musí odpovídat jedné z hodnot: off, error, warn, info, debug, trace; záznamy se zapisují do syslog socketu /dev/log příp. /var/run/syslog s facility nastaveným na AUTHPRIV; nepovinný parametr, výchozí hodnota je “info”
fail_mode - chování v případě nedostupnosti 2Elementu serveru (platí pouze pro PAM modul), musí být jedna z hodnot (nepovinný parametr, výchozí hodnota je “secure”):
safe - akce je povolena
secure - akce je zakázána
Funkce 2Element agenta
2Element agent obsahuje následující funkce, které mohou fungovat samostatně nebo v libovolné kombinaci:
příkaz activate pro integraci agenta s 2Element serverem pomocí aktivačního klíče
příkaz authorized_keys určený pro konfigurační parametr AuthorizedKeysCommand serveru OpenSSH
modul pro PAM (Pluggable Authentication Modules) pro více-faktorové ověření uživatelů
modul pro NSS (Name Service Switch) pro použití vzdálených uživatelů z 2Element v místním systému
Příkaz activate
Příkaz activate slouží pro registraci systému v aplikaci 2Element pomocí aktivačního klíče, viz. sekce Přidání pomocí aktivačního klíče.
Příkaz authorized_keys
Příkaz authorized_keys slouží pro načítání uživatelských SSH klíčů z aplikace 2Element, kde jsou u uživatelů vedené jako autentizátory typu SSH klíč. Příkaz je určen pro konfigurační parametr AuthorizedKeysCommand serveru OpenSSH a slouží jako náhrada nebo doplněk k souborům ~/.ssh/authorized_keys.
Pro jeho použití je potřeba do konfiguračního souboru /etc/ssh/sshd_config přidat:
Po změně konfigurace je nutný reload konfigurace OpenSSH serveru:
Modul pro PAM (Pluggable Authentication Modules)
Modul podporuje více-faktorové ověření, a to jak místních, tak vzdálených, uživatelů. Z podstaty věci je jeho použití vhodné jen v případě, kdy je možná interakce s uživatelem - tj. např. pro OpenSSH, sudo nebo login a nikoliv např. pro IMAP nebo SMTP server.
Pro aktivaci modulu je nutné ho doplnit do PAM konfigurace požadované aplikace. Přesné nastavení je závislé na konkrétních podmínkách a požadavcích.
Příklad nastavení pro OpenSSH
Následující nastavení vynutí přihlášení SSH klíčem po kterém následuje ověření dalším faktorem z aplikace 2Element. Uživatelé ve skupině Admin můžou po úspěšném více-faktorovém ověření spustit libovolný příkaz pomocí sudo.
Nastavení nezávislé na distribuci
Konfigurační soubor /etc/ssh/sshd_config:
Konfigurační soubor /etc/sudoers (výňatek):
Nastavení pro RHEL 8
Konfigurační soubor /etc/pam.d/sshd:
Konfigurační soubor /etc/pam.d/sudo:
Nastavení pro Debian 11
Konfigurační soubor /etc/pam.d/sshd:
Konfigurační soubor /etc/pam.d/sudo:
Modul pro NSS (Name Service Switch)
Modul podporuje NSS databáze passwd a group. Použití modulu je potřeba aktivovat v souboru /etc/nsswitch.conf, přesný způsob je závislý na verzi OS.
Aktivace v RHEL 7
V souboru /etc/nsswitch.conf upravíme konfiguraci databází passwd a group např. takto:
Aktivace v RHEL 8
V souboru /etc/authselect/user-nsswitch.conf upravíme konfiguraci databází passwd a group např. takto:
a spustíme:
Test nastavení
Správnou funkčnost můžeme ověřit pomocí nástroje id se kterým se doptáme na existující uživatele v aplikaci 2Element, např.:
Rozsah UID a GID
Výchozí rozsah pro UID a GID je 10000 - 19999. Rozsah je sdílený pro UID a GID a každý uživatel je členem své vlastní stejnojmenné privátní skupiny. Rozsah zatím není možné měnit z administrační konzole, pouze úpravou sekvence v databázi.