Vytvoření zásady hesla v Linuxu

Ahoj znovu! Výuka v nové skupině kurzů začíná zítra "Správce Linuxu", v tomto ohledu k tématu publikujeme užitečný článek.

Vytvoření zásady hesla v Linuxu

V předchozím tutoriálu jsme vám řekli, jak používat pam_cracklibaby byla hesla v systémech složitější Red Hat 6 nebo CentOS. V Red Hat 7 pam_pwquality nahrazeno cracklib jak pam výchozí modul pro kontrolu hesel. Modul pam_pwquality podporováno také na Ubuntu a CentOS, stejně jako na mnoha dalších OS. Tento modul usnadňuje vytváření zásad hesel, které zajistí, že uživatelé přijmou vaše standardy síly hesla.

Po dlouhou dobu bylo běžným přístupem k heslům nutit uživatele používat velká, malá písmena, čísla nebo jiné symboly. Tato základní pravidla pro složitost hesel byla v posledních deseti letech široce propagována. Hodně se diskutovalo o tom, zda je to dobrá praxe nebo ne. Hlavním argumentem proti nastavování takto složitých podmínek bylo, že si uživatelé zapisují hesla na kousky papíru a nezabezpečeně je ukládají.

Další zásada, která byla nedávno zpochybněna, nutí uživatele měnit svá hesla každých x dní. Byly provedeny některé studie, které ukázaly, že je to také škodlivé pro bezpečnost.

Na téma těchto diskuzí bylo napsáno mnoho článků, které zdůvodňují ten či onen úhel pohledu. Ale to není to, o čem budeme v tomto článku diskutovat. Tento článek bude hovořit o tom, jak správně nastavit složitost hesla, spíše než spravovat bezpečnostní politiku.

Nastavení zásad hesla

Níže uvidíte možnosti zásad hesla a jejich stručný popis. Mnoho z nich je podobných parametrům v modulu cracklib. Tento přístup usnadňuje portování vašich zásad ze staršího systému.

  • difok – Počet znaků ve vašem novém hesle, které NESMÍ být obsaženy ve vašem starém hesle. (Výchozí 5)
  • minlen – Minimální délka hesla. (Výchozí 9)
  • ukreditovat – Maximální počet kreditů za použití velkých písmen (pokud parametr > 0), nebo minimální požadovaný počet velkých písmen (pokud parametr < 0). Výchozí hodnota je 1.
  • lkredit — Maximální počet kreditů za použití malých písmen (pokud je parametr > 0), nebo minimální požadovaný počet malých písmen (pokud je parametr < 0). Výchozí hodnota je 1.
  • dcredit — Maximální počet kreditů za použití číslic (pokud parametr > 0), nebo minimální požadovaný počet číslic (pokud parametr < 0). Výchozí hodnota je 1.
  • okreditovat — Maximální počet kreditů za použití jiných symbolů (pokud parametr > 0), nebo minimální požadovaný počet jiných symbolů (pokud parametr < 0). Výchozí hodnota je 1.
  • minclass – Nastavuje požadovaný počet tříd. Třídy obsahují výše uvedené parametry (velká písmena, malá písmena, čísla, další znaky). Výchozí hodnota je 0.
  • maxrepeat – Maximální počet opakování znaku v hesle. Výchozí hodnota je 0.
  • maxclassrepeat — Maximální počet po sobě jdoucích znaků v jedné třídě. Výchozí hodnota je 0.
  • gecoscheck – Zkontroluje, zda heslo obsahuje nějaká slova z uživatelských řetězců GECOS. (Informace o uživateli, tj. skutečné jméno, umístění atd.) Výchozí hodnota je 0 (vypnuto).
  • diktátorská cesta – Pojďme do cracklibových slovníků.
  • BADWORDS – Slova oddělená mezerami, která jsou v heslech zakázána (název společnosti, slovo „heslo“ atd.).

Pokud vám koncept půjček zní divně, je to v pořádku, je to normální. Více si o tom povíme v následujících částech.

Konfigurace zásad hesla

Než začnete upravovat konfigurační soubory, je dobré si předem sepsat základní zásady hesel. Použijeme například následující pravidla obtížnosti:

  • Heslo musí mít minimální délku 15 znaků.
  • Stejný znak by se v hesle neměl opakovat více než dvakrát.
  • Třídy znaků lze v hesle opakovat až čtyřikrát.
  • Heslo musí obsahovat znaky z každé třídy.
  • Nové heslo musí mít oproti starému 5 nových znaků.
  • Povolit kontrolu GECOS.
  • Zakázat slova „password, pass, word, putorius“

Nyní, když jsme stanovili zásady, můžeme soubor upravit /etc/security/pwquality.confzvýšit požadavky na složitost hesla. Níže je uveden příklad souboru s komentáři pro lepší pochopení.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Jak jste si možná všimli, některé parametry v našem souboru jsou nadbytečné. Například parametr minclass je nadbytečné, protože již používáme alespoň dva znaky z třídy pomocí polí [u,l,d,o]credit. Náš seznam slov, která nelze použít, je také nadbytečný, protože jsme zakázali opakovat jakoukoli třídu 4krát (všechna slova v našem seznamu jsou psána malými písmeny). Tyto možnosti jsem zahrnul pouze proto, abych ukázal, jak je použít ke konfiguraci zásad hesel.
Jakmile vytvoříte zásady, můžete přinutit uživatele, aby si při příštím přihlášení změnili svá hesla. systém.

Další zvláštní věc, které jste si mohli všimnout, jsou pole [u,l,d,o]credit obsahovat záporné číslo. Je to proto, že čísla větší nebo rovna 0 budou dávat kredit za použití znaku ve vašem hesle. Pokud pole obsahuje záporné číslo, znamená to, že je vyžadováno určité množství.

Co jsou půjčky?

Říkám jim půjčky, protože to co nejpřesněji vyjadřuje jejich účel. Pokud je hodnota parametru větší než 0, přidáte k délce hesla počet "znakových kreditů" rovný "x". Například pokud všechny parametry (u,l,d,o)credit nastavena na 1 a požadovaná délka hesla byla 6, pak budete potřebovat 6 znaků, abyste splnili požadavek na délku, protože každé velké, malé písmeno, číslice nebo jiný znak vám poskytne jeden kredit.

Pokud nainstalujete dcredit na 2 byste teoreticky mohli použít heslo dlouhé 9 znaků a získat 2 kredity za čísla, a pak by délka hesla už mohla být 10.

Podívejte se na tento příklad. Nastavil jsem délku hesla na 13, nastavil dcredit na 2 a vše ostatní na 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Moje první kontrola se nezdařila, protože heslo bylo kratší než 13 znaků. Příště jsem změnil písmeno „I“ na číslo „1“ a dostal jsem dva kredity za čísla, čímž se heslo rovnalo 13.

Testování hesel

Balíček libpwquality poskytuje funkce popsané v článku. Dodává se také s programem pwscore, který je určen pro kontrolu složitosti hesla. Použili jsme to výše ke kontrole půjček.
Užitečnost pwscore čte z stdin. Stačí spustit nástroj a napsat heslo, zobrazí se chyba nebo hodnota od 0 do 100.

Skóre kvality hesla souvisí s parametrem minlen v konfiguračním souboru. Obecně platí, že skóre nižší než 50 je považováno za „normální heslo“ a skóre nad ním je považováno za „silné heslo“. Jakékoli heslo, které projde kontrolami kvality (zejména nuceným ověřením cracklib) musí odolat slovníkovým útokům a heslo se skóre vyšším než 50 s nastavením minlen dokonce standardně brute force útoky.

Závěr

Nastavení pwquality – je to snadné a jednoduché ve srovnání s nepohodlným používáním cracklib s přímou editací souborů pam. V této příručce jsme pokryli vše, co budete potřebovat při nastavování zásad hesel v systémech Red Hat 7, CentOS 7 a dokonce i Ubuntu. Povídali jsme si také o konceptu půjček, o kterém se málokdy podrobně píše, a tak toto téma zůstávalo často nejasné i těm, kteří se s ním dříve nesetkali.

Zdroje:

manuálová stránka pwquality
manuálová stránka pam_pwquality
manuálová stránka pwscore

Užitečné odkazy:

Výběr bezpečných hesel – Bruce Schneier
Lorrie Faith Cranor probírá studium hesel na CMU
Hanebná karikatura xkcd o Entropii

Zdroj: www.habr.com

Přidat komentář