Złożoność i historia haseł użytkowników

Damian Stlemach

Domyślnie w systemie Ubuntu można nadawać hasła składające się przynajmniej z 6 znaków. Nie ma natomiast konieczności stosowania haseł złożonych, czyli taki, które muszą składać się np. przynajmniej z jednej cyfry, dużej litery czy znaku specjalnego (!, @, $,*, itp.). Jeśli chcemy wymusić stosowanie dłuższych haseł oraz wymagań co do złożoności to musimy doinstalować pakiet libpam-pwquality.

Możemy to zrobić wydając takie polecenie:

sudo apt install libpam-pwquality

Po instalacji, edytujemy plik z ustawieniami tego pakietu (tutaj przez edytor mcedit):

sudo mcedit /etc/pam.d/common-password

na końcu linii 25 możemy dopisać następujące parametry:

  • minlen – określający minimalną długość hasła, np. minlen=8
  • dcredit – wymuszający zastosowanie cyfr, np. dcredit=-1
  • lcredit – wymuszający zastosowanie małych liter, np. lcredit=-1
  • ucredit – wymuszający zastosowanie wielkich liter, np. ucredit=-1
  • ocredit – wymuszający zastosowanie znaków specjalnych, np. ocredit=-1

Aby system nie przyjmował haseł niespełniających zadanych wymagań, po takich ustawieniach były by tylko monity ze hasła nie spełniają reguł, ale i tak byłyby przyjmowane, musimy jeszcze dopisać na koniec linii enforce_for_root.

Przykład konfiguracji widać poniżej, zakłada ona stosowanie 8 znaków w haśle, przynajmniej jedną cyfrę, przynajmniej jedną wielką literę oraz przynajmniej jeden znak specjalny:

Common password

Włączenie tego pakietu powoduje również, że zablokowane jest podawanie haseł które zawierają następujące po sobie znaki np. qwerty123 – takie hasło nie zostanie przyjęte.

Niedozwolone jest również stosowanie w haśle nazw użytkowników, jeśli przykładowo mamy w systemie użytkownika bolek, to nie możemy ustawić dla niego hasła bolek.

Projektując politykę haseł w firmowej sieci warto pomyśleć czy nie ustawić również opcji, która pozwoli zapisywać historię tworzonych haseł, a także uniemożliwi stosowanie kilku zastosowanych poprzednio. Dla użytkowników to zmora, ale dla osób dbających o bezpieczeństwo środowiska IT super opcja. Dla przykładu skonfigurujmy sobie hasła tak aby system pamiętał 5 zastosowanych wcześniej, a dzięki temu nie pozwoli na użycie tych samych przez 5 kolejnych zmian.

Zaczynamy od utworzenia pliku (jeśli nie istnieje), który przechowa nam zaszyfrowane, stare hasła. Plik ten powinien znajdować się w lokalizacji /etc/security a jego nazwa to opasswd. Tworzymy plik:

sudo touch /etc/security/opasswd

Następnie musimy przekazać własność pliku root'owi, zrobimy to wykonują takie polecenie:

sudo chown root:root /etc/security/opasswd

Na koniec jeszcze ustawiamy dla pliku takie uprawnienia:

sudo chmod 600 /etc/security/opasswd

Teraz ponownie edytujemy plik common-password, znajdujący się w lokalizacji /etc/pam.d:

sudo mcedit /etc/pam.d/common-password

W linii 26, po frazie pam_unix.so dodajemy opcję remember i przypisujemy dla niej wartość liczbową odpowiadającą ilości pamiętanych haseł, u nas będzie to 5:

remember=5

Zapisujemy zmiany w pliku i od teraz nasze ustawienia haseł powinny działać.