Hardening operačního systému

Do IAM appliance je možné doinstalovat volitelný balíček, který zvýší bezpečnost operačního systému platformy tak, že upraví některé z jejích politik.

  • Zakáže přístup na uživatele root přes SSH.

  • Pro přístup přes SSH vytvoří speciálního uživatele iamadmin. Administrátor appliance pak může, dle svého uvážení, vytvářet další účty pro vzdálený přístup.

  • Vypne sftp subsystém SSH démona.

  • Definuje politiky pro lockout uživatelů a požadavky na jejich hesla. Politiku lze částečně přizpůsobit konkrétnímu nasazení pomocí volitelných features.

Postup nasazení hardeningu
  1. Instalace balíčku.

  2. Nastavení hesla uživatele iamadmin.

  3. Aplikace nové konfigurace SSHd.

  4. Aplikace výchozích politik hesel a přihlášení.

  5. Donastavení politik dle prostředí.

Instalace balíčku

Balíček nainstalujte standardním způsobem. V průběhu instalace budete informováni o dodatečných akcích, které musíte provést.

[root@localhost ~]# dnf install iam-security-settings
... zkráceno ...
NOTICE: SSHd configuration updated. Please verify configuration with 'sshd -t' and restart sshd daemon.
NOTICE: New user 'iamadmin' created. Please set its password.
NOTICE: No authselect profile in use, set it by calling 'authselect select iamappliance -f'.
... zkráceno ...

Nastavení hesla uživatele iamadmin

Pokud neexistuje uživatel iamadmin, instalace balíčku ho vytvoří. Tento uživatel se zatím nemůže přihlašovat, protože nemá nastavené heslo. Nastavte heslo uživatele iamadmin.

[root@localhost ~]# passwd iamadmin
Changing password for user iamadmin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Otestujte přístup na uživatele pomocí SSH a přepnutí na uživatele root. Při přepnutí zadejte heslo pro uživatele iamadmin.

[root@localhost ~]# ssh iamadmin@appliance.bcv
iamadmin@appliance.bcv's password:
Last login: Wed Aug 18 11:08:43 2021 from 172.31.255.70

[iamadmin@localhost ~]$ sudo su
[sudo] password for iamadmin:

[root@localhost iamadmin]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Uživatel iamadmin nemusí být jediným uživatelem používaným pro vzdálený přístup. Další uživatele může administrátor zakládat dle libosti pomocí příkazu useradd například takto.

# "login" je loginem nového uživatele
# -G wheel přidává uživateli skupinu "wheel", která mu umožňuje používat příkaz "sudo"
# ostatní parametry příkazu useradd lze specifikovat dle libosti
[root@localhost ~]# useradd -m -s /bin/bash -G wheel login

# po vytvoření nastavíme uživateli heslo
# heslo si můžete vygenerovat například příkazem "pwgen"
# "login" je login čerstvě vytvořeného uživatele
[root@localhost ~]# passwd login
Changing password for user login.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Aplikování konfigurace SSHd

Pokud je přístup na uživatele iamadmin funkční, lze restartovat SSHd. Změny provedené v konfiguraci SSH serveru totiž zakazují přímé přihlášení na uživatele root. Po restartu démona musíte používat pro přístup uživatele iamadmin a pomocí sudo su přecházet na uživatele root.

# test konfigurace SSHd zda je validní
# pokud test neprojde, je potřeba konfiguraci opravit
# při instalaci balíčku se vytváří záloha původní konfigurace v /etc/ssh/sshd_config.YYYYmmdd_HHMM
[root@localhost ~]# sshd -t

# pokud je nová konfigurace v pořádku, restartujeme SSHd
[root@localhost ~]# systemctl restart sshd

Aplikování politik hesel a přihlášení

Politiky jsou do IAM appliance implementovány pomocí tzv. authselect profilu a lze je částečně customizovat. Při aplikaci politik dojde k přepsání některých souborů v adresářové struktuře /etc/pam.d/.

Custom úpravy provedené v konfiguraci PAM budou přepsány.

Aplikujte základní profil iamappliance.

[root@localhost ~]# authselect select iamappliance -f
Backup stored at /var/lib/authselect/backups/2021-08-18-11-31-23.AucMps
Profile "iamappliance" was selected.
... zkráceno ...

Features profilu iamappliance

Pomocí authselect enable-feature …​ a authselect disable-feature …​ donastavte profil dle požadavků. Plné readme je možné vždy získat přímo na systému spuštěním authselect show iamappliance. Informace o aktuálních nastaveních lze získat příkazem authselect current.

Stejné features s …​-lax a …​-strict v názvu se vzájemně vylučují. Pokud měníte jednu politiku za druhou, je potřeba jednu vypnout a druhou zapnout.

Napříč odlišnými features je možné …​-lax a …​-strict kombinovat.

Příklad validní politiky
iamappliance
- with-faillock-lax
- with-pwquality-strict
Příklad nevalidní politiky
iamappliance
- with-faillock-lax
- with-faillock-strict
Podporované features
  • Fail delay - Doba vynuceného čekání mezi pokusy o přihlášení uživatele.

    • with-faildelay-lax - čekání 2 sekundy.

    • with-faildelay-strict - čekání 10 sekund.

  • Fail lock - Dočasné uzamčení účtu po několika neúspěšných pokusech o přihlášení.

    • with-faillock-lax - 5 pokusů během 1 minuty uzamkne účet na 2 minuty.

    • with-faillock-strict - 5 pokusů během 5 minut uzamkne účet na 10 minut.

    • with-faillock-also-for-root - Zda bude nastavení faillock vynucováno i pro účet root. Tuto volbu lze připojit jak k "lax", tak ke "strict" variantě.

  • Password quality - Definuje požadavky na komplexitu hesel.

    • with-pwquality-lax

      • Minimální délka 12 znaků.

      • Alespoň 2 character classes (možnosti: malá písmena, velká písmena, čísla, speciání znaky).

    • with-pwquality-strict

      • Minimální délka 12 znaků.

      • Alespoň 3 character classes (možnosti: malá písmena, velká písmena, čísla, speciání znaky).

      • Heslo nesmí obsahovat GECOS údaje (jméno, příjmení, login, adresu, atd.). Informace je porovnávána se záznamem uživatele v OS.

      • Maximálně dva za sebou jdoucí znaky mohou být stejné. Např. heslo "aabccaad" je v pořádku. Heslo "aaabccaad" v pořádku není, protože je v něm třikrát těsně za sebou znak "a".

  • Password history - Definuje požadavky na kontrolu historie hesel.

    • with-pwhistory-lax - Heslo nesmí být stejné/podobné 6 předchozím heslům.

    • with-pwhistory-strict - Heslo nesmí být stejné/podobné 12 předchozím heslům.

    • with-pwhistory-also-for-root - Zda bude nastavení pwhistory vynucováno i pro účet root. Tuto volbu lze připojit jak k "lax", tak ke "strict" variantě.