Tworzenie polityki haseł w systemie Linux

Witam ponownie! Już jutro ruszają zajęcia w nowej grupie kursowej „Administrator Linuksa”w związku z tym publikujemy przydatny artykuł na ten temat.

Tworzenie polityki haseł w systemie Linux

W poprzednim samouczku powiedzieliśmy Ci, jak używać pam_cracklibaby hasła w systemach były bardziej złożone Red Hat 6 lub CentOS. W Red Hatu 7 pam_pwquality zastąpiony cracklib jak pam domyślny moduł do sprawdzania haseł. Moduł pam_pwquality obsługiwane również w Ubuntu i CentOS, a także wielu innych systemach operacyjnych. Moduł ten ułatwia tworzenie zasad haseł, aby mieć pewność, że użytkownicy akceptują Twoje standardy siły haseł.

Przez długi czas powszechnym podejściem do haseł było zmuszanie użytkownika do używania wielkich i małych liter, cyfr lub innych symboli. Te podstawowe zasady dotyczące złożoności haseł były szeroko promowane w ciągu ostatnich dziesięciu lat. Odbyło się wiele dyskusji na temat tego, czy jest to dobra praktyka, czy nie. Głównym argumentem przeciwko ustalaniu tak skomplikowanych warunków było to, że użytkownicy zapisują hasła na kartkach papieru i przechowują je w sposób niepewny.

Inna polityka, która została ostatnio zakwestionowana, zmusza użytkowników do zmiany haseł co x dni. Przeprowadzono badania, które wykazały, że ma to również szkodliwy wpływ na bezpieczeństwo.

Na temat tych dyskusji napisano wiele artykułów, które uzasadniają ten czy inny punkt widzenia. Ale nie o tym będziemy rozmawiać w tym artykule. W tym artykule omówimy, jak poprawnie ustawić złożoność hasła, zamiast zarządzać polityką bezpieczeństwa.

Ustawienia zasad haseł

Poniżej zobaczysz opcje polityki haseł i krótki opis każdej z nich. Wiele z nich ma parametry zbliżone do parametrów modułu cracklib. Takie podejście ułatwia przenoszenie zasad ze starszego systemu.

  • Przykro mi – Liczba znaków w nowym haśle, które NIE powinny znajdować się w starym haśle. (Domyślnie 5)
  • Minlen – Minimalna długość hasła. (Domyślnie 9)
  • ukredytować – Maksymalna liczba kredytów za użycie wielkich liter (jeśli parametr > 0) lub minimalna wymagana liczba wielkich liter (jeśli parametr < 0). Wartość domyślna to 1.
  • l kredyt — Maksymalna liczba kredytów za użycie małych liter (jeśli parametr > 0) lub minimalna wymagana liczba małych znaków (jeśli parametr < 0). Wartość domyślna to 1.
  • kredyt — Maksymalna liczba punktów za użycie cyfr (jeśli parametr > 0) lub minimalna wymagana liczba cyfr (jeśli parametr < 0). Wartość domyślna to 1.
  • on wierzy — Maksymalna liczba kredytów za użycie innych symboli (jeśli parametr > 0) lub minimalna wymagana liczba pozostałych symboli (jeśli parametr < 0). Wartość domyślna to 1.
  • minklasa – Ustawia wymaganą liczbę zajęć. Klasy zawierają powyższe parametry (duże i małe litery, cyfry, inne znaki). Wartość domyślna to 0.
  • maks.powtórz – Maksymalna liczba powtórzeń znaku w haśle. Wartość domyślna to 0.
  • maksymalne powtórzenie klasy — Maksymalna liczba kolejnych znaków w jednej klasie. Wartość domyślna to 0.
  • gecoscheck – Sprawdza, czy hasło zawiera jakieś słowa z ciągów GECOS użytkownika. (Informacje o użytkowniku, tj. prawdziwe imię i nazwisko, lokalizacja itp.) Wartość domyślna to 0 (wyłączone).
  • dykt – Przejdźmy do słowników cracklib.
  • BADWORDS – Słowa oddzielone spacjami, które są zabronione w hasłach (nazwa firmy, słowo „hasło” itp.).

Jeśli koncepcja pożyczek brzmi dziwnie, to jest w porządku, jest to normalne. Porozmawiamy o tym więcej w kolejnych sekcjach.

Konfiguracja zasad haseł

Przed rozpoczęciem edycji plików konfiguracyjnych dobrą praktyką jest wcześniejsze zapisanie podstawowej polityki haseł. Na przykład zastosujemy następujące reguły trudności:

  • Hasło musi mieć minimalną długość 15 znaków.
  • Ten sam znak nie powinien powtarzać się w haśle więcej niż dwa razy.
  • Klasy znaków mogą powtarzać się maksymalnie cztery razy w haśle.
  • Hasło musi zawierać znaki z każdej klasy.
  • Nowe hasło musi mieć 5 nowych znaków w porównaniu do starego.
  • Włącz sprawdzanie GECOS.
  • Zabroń słów „hasło, hasło, słowo, putorius”

Teraz, gdy ustaliliśmy zasady, możemy edytować plik /etc/security/pwquality.confw celu zwiększenia wymagań dotyczących złożoności haseł. Poniżej znajduje się przykładowy plik z komentarzami dla lepszego zrozumienia.

# 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 zapewne zauważyłeś, niektóre parametry w naszym pliku są zbędne. Na przykład parametr minclass jest zbędne, ponieważ używamy już co najmniej dwóch znaków z klasy za pomocą pól [u,l,d,o]credit. Nasza lista słów, których nie można użyć, jest również zbędna, ponieważ zabraniamy powtarzania dowolnej klasy 4 razy (wszystkie słowa na naszej liście są pisane małymi literami). Uwzględniłem te opcje tylko po to, aby zademonstrować, jak ich używać do konfigurowania polityki haseł.
Po utworzeniu zasad możesz zmusić użytkowników do zmiany haseł przy następnym logowaniu. system.

Kolejną dziwną rzeczą, którą mogłeś zauważyć, są pola [u,l,d,o]credit zawierać liczbę ujemną. Dzieje się tak dlatego, że liczby większe lub równe 0 uznają użycie znaku w haśle. Jeżeli w polu znajduje się liczba ujemna oznacza to, że wymagana jest określona ilość.

Co to są pożyczki?

Nazywam je pożyczkami, ponieważ to możliwie najdokładniej oddaje ich cel. Jeżeli wartość parametru jest większa niż 0, do długości hasła dodawana jest liczba „znaków” równa „x”. Na przykład, jeśli wszystkie parametry (u,l,d,o)credit ustaw na 1, a wymagana długość hasła wynosiła 6, będziesz potrzebować 6 znaków, aby spełnić wymagania dotyczące długości, ponieważ każda wielka, mała litera, cyfra lub inny znak zapewni Ci jeden kredyt.

Jeśli zainstalujesz dcredit przy 2 teoretycznie możesz użyć hasła o długości 9 znaków i uzyskać 2 znaki za cyfry, a wtedy długość hasła może już wynosić 10.

Spójrz na ten przykład. Ustawiłem długość hasła na 13, ustawiłem dcredit na 2, a wszystko inne na 0.

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

$ pwscore
 Th1sistwelve
 18

Moja pierwsza kontrola nie powiodła się, ponieważ hasło miało mniej niż 13 znaków. Następnym razem zamieniłem literę „I” na cyfrę „1” i otrzymałem dwa kredyty za cyfry, co dało hasło równe 13.

Testowanie hasła

Pakiet libpwquality zapewnia funkcjonalność opisaną w artykule. Do zestawu dołączony jest także program pwscore, który ma na celu sprawdzenie złożoności hasła. Użyliśmy go powyżej, aby sprawdzić pożyczki.
Użyteczność pwscore czyta z stdin. Po prostu uruchom narzędzie i wpisz hasło, wyświetli się błąd lub wartość od 0 do 100.

Wynik jakości hasła jest powiązany z parametrem minlen w pliku konfiguracyjnym. Ogólnie rzecz biorąc, wynik mniejszy niż 50 jest uważany za „normalne hasło”, a wynik powyżej niego jest uważany za „silne hasło”. Każde hasło, które przeszło kontrolę jakości (zwłaszcza weryfikację wymuszoną cracklib) musi wytrzymać ataki słownikowe, a hasło z wynikiem powyżej 50 z ustawieniem minlen nawet domyślnie brute force ataki.

wniosek

regulacja pwquality – jest to łatwe i proste w porównaniu z niedogodnościami użytkowania cracklib z bezpośrednią edycją plików pam. W tym przewodniku omówiliśmy wszystko, czego potrzebujesz podczas konfigurowania zasad haseł w systemach Red Hat 7, CentOS 7, a nawet Ubuntu. Rozmawialiśmy także o pojęciu pożyczki, o którym rzadko się pisze szczegółowo, dlatego temat ten często pozostawał niejasny dla tych, którzy wcześniej się z nim nie zetknęli.

Źródła:

strona podręcznika pwquality
strona podręcznika pam_pwquality
strona podręcznika pwcore

Przydatne linki:

Wybór bezpiecznych haseł – Bruce Schneier
Lorrie Faith Cranor omawia studia nad hasłami na CMU
Niesławna kreskówka xkcd na Entropy

Źródło: www.habr.com

Dodaj komentarz