Jak egzekwować zasady złożoności haseł?

14

Muszę skonfigurować serwer Ubuntu, aby przestrzegał ścisłej polityki haseł firmy, która określa następujące kwestie:

  • co najmniej jedna wielka litera
  • przynajmniej jedna mała litera
  • co najmniej jedna cyfra
  • co najmniej jeden znak specjalny

Rozejrzałem się i znalazłem tylko instrukcje dotyczące określania długości hasła; ale muszę jeszcze znaleźć coś, co dotyczy określenia treści hasła w odniesieniu do powyższych punktów.

Każda pomoc będzie mile widziana.

Stephen RC
źródło

Odpowiedzi:

19

Złożoność hasła jest wymuszana przez pam_cracklibmoduł.

Aby zmodyfikować zasady haseł na komputerze lokalnym, musisz zmodyfikować /etc/pam.d/common-passwordplik.

W oknie terminala ( Ctrl+ Alt+ T) wprowadź następujące polecenie:

sudo -i gedit /etc/pam.d/common-password

Dodaj następujący wiersz do pliku (wcześniej pam_unix.solub w zależności od tego, który moduł PAM jest używany głównie do uwierzytelniania, jak widać z przykładów na stronie podręcznika) i zapisz plik:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

To oświadczenie implementuje następujące wymagania dotyczące hasła:

  • dcredit == cyfra
  • ucredit == wielkie litery
  • lcredit == małe litery
  • ocredit== inny znak (w tym znaki specjalne ! , @ # $ %)

To powinno spełnić twoje wymagania.

Możesz także użyć zmiennych minlengthi retriesdodatkowo ograniczyć wymagania dotyczące hasła.

Oto kolejny dobry przykład modyfikacji zasady haseł w ten sposób, umieszczenie następującego /etc/pam.d/common-passwordpliku w pliku:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Wpis ten określa maksymalnie trzy próby uzyskania akceptowalnego hasła o minimalnej długości 10 znaków.

To określa, że ​​użytkownicy muszą mieć co najmniej trzy znaki inne niż ostatnie hasło.

Spełni to również wymaganie, aby hasło zawierało co najmniej jedną cyfrę, małe litery i wielkie litery.

Zobacz także ten artykuł na temat konfigurowania silniejszych reguł polityki haseł w systemie Linux .

Kevin Bowen
źródło
3
Doskonała odpowiedź! Dodam, w odniesieniu do ponownych prób, że należy zachować ostrożność przy rozważaniu zasad uniemożliwiających zalogowanie się użytkownikom, którzy mieli zbyt wiele ostatnich nieudanych prób logowania. Może to prowadzić do rentowności jednego z najprostszych i najłatwiejszych do przeprowadzenia ataków typu „odmowa usługi” na konto (spróbuj zalogować się X razy tyle razy, aż konto zostanie „zablokowane”, a wtedy legalny użytkownik nie będzie mógł się zalogować) .
Eliah Kagan
Fantastyczna odpowiedź, dziękuję :) Jedno pytanie wydaje się, że rootużytkownik jest w stanie zignorować wymagania dotyczące hasła ... Czy można to również wymusić dla użytkownika root?
Stephen RC
@Valorin Jakiej części wymagań dotyczących hasła nie przestrzega użytkownik root?
Kevin Bowen
@maggotbrain Wszystko, rzuca ostrzeżenie, ale wciąż je zapisuje, to było hasło „snare”: paste.ubuntu.com/1543154
Stephen RC
@Valorin Tak więc włączyłeś konto o nazwie „root” i możesz używać tego konta z tym hasłem, prawda? Jakie otrzymujesz ostrzeżenia? Niestety nie mam komputera z włączonym kontem root, aby samemu to przetestować. Brzmi jak błąd, ale potrzebujesz więcej informacji.
Kevin Bowen,
0

Jest widelec pam_cracklib autorstwa Tomasa Mraza: pam_pwquality z nieco lepszymi opcjami.

Dodaj za pomocą apt install libpam-pwquality lub passwd będzie narzekać:

Moduł jest nieznany

kaduceusz
źródło