Document toolboxDocument toolbox

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

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:

  1. příkaz activate pro integraci agenta s 2Element serverem pomocí aktivačního klíče

  2. příkaz authorized_keys určený pro konfigurační parametr AuthorizedKeysCommand serveru OpenSSH

  3. modul pro PAM (Pluggable Authentication Modules) pro více-faktorové ověření uživatelů

  4. 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.