Jak zmusić użytkowników do zmiany haseł w systemie Linux

Hasła są podstawą bezpieczeństwa konta. Pokażemy Ci, jak resetować hasła, ustawiać okresy ważności haseł i wymuszać zmiany haseł w sieci Linux.

Hasło istnieje od prawie 60 lat

Udowadniamy komputerom, że jesteśmy tym, za kogo się podajemy od połowy lat sześćdziesiątych, kiedy po raz pierwszy wprowadzono hasło. Konieczność bycia matką wynalazku Zgodny system podziału czasu opracowany w Instytut Technologii w Massachusetts potrzebował sposobu na identyfikację różnych osób w systemie. Musiał także uniemożliwić ludziom przeglądanie plików innych osób.

Fernando J. Corbató zaproponował schemat, który przydzielał unikalną nazwę użytkownika każdej osobie. Aby udowodnić, że ktoś jest tym, za kogo się podaje, musiał użyć prywatnego, osobistego hasła, aby uzyskać dostęp do swojego konta.

Problem z hasłami polega na tym, że działają one jak klucz. Każdy, kto ma klucz, może go użyć. Jeśli ktoś znajdzie, zgadnie lub odgadnie Twoje hasło, może uzyskać dostęp do Twojego konta. Aż do uwierzytelnianie wieloskładnikowe jest powszechnie dostępne, hasło jest jedyną rzeczą uniemożliwiającą niepowołanym osobom (aktorzy zagrożeń, w języku cyberbezpieczeństwa) z systemu.

Połączenia zdalne nawiązywane przez Secure Shell (SSH) można skonfigurować tak, aby używały kluczy SSH zamiast haseł i to świetnie. Jest to jednak tylko jedna metoda połączenia i nie obejmuje ona logowania lokalnego.

Oczywiście zarządzanie hasłami ma kluczowe znaczenie, podobnie jak zarządzanie ludźmi, którzy używają tych haseł.

Anatomia hasła

Co właściwie sprawia, że ​​hasło jest dobre? Cóż, dobre hasło powinno mieć wszystkie następujące atrybuty:

Nie można zgadnąć ani dowiedzieć się.
Nie używałeś go nigdzie indziej.
Nie był zaangażowany w naruszenie danych.

Plik Czy zostałem oszukany (HIBP) zawiera ponad 10 miliardów zestawów naruszonych danych uwierzytelniających. Przy tak wysokich liczbach prawdopodobnie ktoś użył tego samego hasła, co Ty. Oznacza to, że Twoje hasło może znajdować się w bazie danych, mimo że to nie Twoje konto zostało naruszone.

Jeśli Twoje hasło znajduje się w witrynie HIBP, oznacza to, że znajduje się na listach haseł aktorów brutalna siła i atak słownikowy narzędzia używane, gdy próbują złamać konto.

Prawdziwie losowe hasło (takie jak 4HW @ HpJDBr% * Wt @ # b ~ aP) jest praktycznie nietykalne, ale oczywiście nigdy go nie zapamiętasz. Zdecydowanie zalecamy korzystanie z menedżera haseł do kont online. Generują złożone, losowe hasła do wszystkich kont online i nie musisz ich pamiętać – menedżer haseł podaje poprawne hasło.

W przypadku kont lokalnych każda osoba musi wygenerować własne hasło. Będą również musieli wiedzieć, jakie hasło jest dopuszczalne, a które nie. Trzeba będzie im powiedzieć, aby nie używali ponownie haseł na innych kontach i tak dalej.

Te informacje zwykle znajdują się w zasadach dotyczących haseł organizacji. Instruuje ludzi, aby używali minimalnej liczby znaków, mieszali wielkie i małe litery, włączali symbole i znaki interpunkcyjne i tak dalej.

Jednak zgodnie z zupełnie nowy papierr z zespołu o Carnegie Mellon University, wszystkie te sztuczki dodają niewiele lub nic do niezawodności hasła. Badacze odkryli, że dwa kluczowe czynniki wpływające na niezawodność hasła to to, że mają one co najmniej 12 znaków i są wystarczająco silne. Zmierzyli siłę hasła za pomocą różnych programów do łamania oprogramowania, technik statystycznych i sieci neuronowych.

Minimum 12 znaków może początkowo wydawać się zniechęcające. Jednak nie myśl w kategoriach hasła, ale raczej jako hasło składające się z trzech lub czterech niepowiązanych ze sobą słów oddzielonych znakami interpunkcyjnymi.

Na przykład Experte Password Checker powiedział, że pęknięcie „chicago99” zajmie 42 minuty, ale 400 miliardów lat, aby złamać „chimney.purple.bag”. Jest również łatwy do zapamiętania i wpisania i zawiera tylko 18 znaków.

Przegląd aktualnych ustawień

Zanim zmienisz cokolwiek w związku z hasłem danej osoby, dobrze jest przyjrzeć się jej aktualnym ustawieniom. Za pomocą polecenia passwd możesz przejrzyj ich bieżące ustawienia z opcją -S (status). Pamiętaj, że będziesz musiał również używać sudo z passwd, jeśli pracujesz z ustawieniami haseł innych osób.

Wpisujemy:

sudo passwd -S mary

sudo passwd -S mary w oknie terminala.

Pojedyncza linia informacji jest drukowana w oknie terminala, jak pokazano poniżej.

Wyjście z sudo passwd -S mary w oknie terminala.

W tej krótkiej odpowiedzi widzisz następujące informacje (od lewej do prawej):

Nazwa logowania osoby.
W tym miejscu pojawia się jeden z trzech możliwych wskaźników:
P: Wskazuje, że konto ma ważne, działające hasło.
L: Oznacza, że ​​konto zostało zablokowane przez właściciela konta roota.
NP: Hasło nie zostało ustawione.

Data ostatniej zmiany hasła.
Minimalny wiek hasła: minimalny okres (w dniach), który musi upłynąć między resetami hasła wykonanymi przez właściciela konta. Jednak właściciel konta roota zawsze może zmienić czyjeś hasło. Jeśli ta wartość wynosi 0 (zero), nie ma ograniczenia częstotliwości zmiany hasła.
Maksymalny wiek hasła: właściciel konta jest proszony o zmianę hasła, gdy osiągnie ten wiek. Wartość ta jest podawana w dniach, więc wartość 99 999 oznacza, że ​​hasło nigdy nie wygasa.
Okres ostrzeżenia o zmianie hasła: jeśli obowiązuje maksymalny wiek hasła, właściciel konta otrzyma przypomnienia o zmianie hasła. Pierwszy z nich zostanie wysłany na podaną tutaj liczbę dni przed datą resetowania.
Okres nieaktywności hasła: jeśli ktoś nie uzyskuje dostępu do systemu przez okres, który pokrywa się z terminem resetowania hasła, hasło tej osoby nie zostanie zmienione. Ta wartość wskazuje, przez ile dni okres karencji przypada po dacie wygaśnięcia hasła. Jeśli konto pozostanie nieaktywne przez tę liczbę dni po wygaśnięciu hasła, zostanie ono zablokowane. Wartość -1 wyłącza okres karencji.

Ustawianie maksymalnego wieku hasła

Aby ustawić okres resetowania hasła, możesz użyć opcji -x (maksymalna liczba dni) z liczbą dni. Nie pozostawiasz spacji między -x a cyframi, więc wpisz ją w następujący sposób:

sudo passwd -x45 mary

sudo passwd -x45 mary w oknie terminala.

Powiedziano nam, że wartość wygaśnięcia została zmieniona, jak pokazano poniżej.

Powiadomienie o zmianie wygaśnięcia hasła w oknie terminala.

Użyj opcji -S (status), aby sprawdzić, czy wartość wynosi teraz 45:

sudo passwd -S mary

sudo passwd -S mary w oknie terminala.

Teraz za 45 dni należy ustawić nowe hasło dla tego konta. Przypomnienia zaczną się siedem dni wcześniej. Jeśli nowe hasło nie zostanie ustawione na czas, to konto zostanie natychmiast zablokowane.

Wymuszanie natychmiastowej zmiany hasła

Możesz również użyć polecenia, aby inni w Twojej sieci musieli zmienić swoje hasła przy następnym logowaniu. Aby to zrobić, użyj opcji -e (expire) w następujący sposób:

sudo passwd -e mary

sudo passwd -e mary w oknie terminala.

Następnie otrzymujemy informację o zmianie informacji o wygaśnięciu hasła.

Wyjście z sudo passwd -e mary w oknie terminala.

Sprawdźmy z opcją -S i zobaczmy, co się stało:

sudo passwd -S mary

sudo passwd -S mary w oknie terminala.

Datę ostatniej zmiany hasła ustawiono na pierwszy dzień 1970 roku. Przy następnej próbie logowania osoba ta będzie musiała zmienić hasło. Muszą również podać swoje aktualne hasło, zanim będą mogli wpisać nowe.

Ekran resetowania hasła.

Czy należy wymusić zmiany hasła?

Zmuszanie ludzi do regularnej zmiany haseł było kiedyś zdrowym rozsądkiem. Był to jeden z rutynowych kroków bezpieczeństwa w większości instalacji i uznany za dobrą praktykę biznesową.

Myślenie teraz jest przeciwieństwem. W Wielkiej Brytanii Narodowe Centrum Cyberbezpieczeństwa zdecydowanie radzi przeciwko wymuszaniu regularnego odnawiania hasełi Narodowy Instytut Standardów i Technologii w USA się zgadza. Obie organizacje zalecają wymuszanie zmiany hasła tylko wtedy, gdy wiesz lub podejrzewasz, że już istnieje znane innym.

Zmuszanie ludzi do zmiany haseł staje się monotonne i zachęca do słabych haseł. Ludzie zwykle zaczynają ponownie używać hasła podstawowego z oznaczoną datą lub innym numerem. Albo zapiszą je, ponieważ muszą je zmieniać tak często, że ich nie pamiętają.

Dwie organizacje, o których wspomnieliśmy powyżej, zalecają następujące wytyczne dotyczące bezpieczeństwa hasła:

Użyj menedżera haseł: dla kont internetowych i lokalnych.
Włącz uwierzytelnianie dwuskładnikowe: wszędzie, gdzie jest to opcja, używaj jej.
Używaj silnego hasła: doskonała alternatywa dla tych kont, które nie działają z menedżerem haseł. Trzy lub więcej wyrazów oddzielonych interpunkcją lub symbolami to dobry szablon do naśladowania.
Nigdy nie używaj ponownie hasła: unikaj używania tego samego hasła, którego używasz na innym koncie, i zdecydowanie nie używaj hasła wymienionego na Czy zostałem oszukany.

Powyższe wskazówki pozwolą Ci ustalić bezpieczny sposób uzyskiwania dostępu do swoich kont. Gdy już masz te wytyczne, trzymaj się ich. Po co zmieniać hasło, jeśli jest silne i bezpieczne? Jeśli wpadnie w niepowołane ręce – lub podejrzewasz, że tak – możesz to zmienić.

Czasami jednak ta decyzja jest poza twoimi rękami. Jeśli uprawnienia wymuszają zmianę hasła, nie masz dużego wyboru. Możesz wnieść sprawę i przedstawić swoje stanowisko, ale jeśli nie jesteś szefem, będziesz musiał przestrzegać polityki firmy.

Polecenie chage

Możesz użyć polecenie chage zmienić ustawienia dotyczące przedawnienia hasła. Nazwa tego polecenia pochodzi od „zmień starzenie się”. To jest jak polecenie passwd z usuniętymi elementami tworzenia hasła.

Opcja -l (lista) przedstawia te same informacje, co polecenie passwd -S, ale w bardziej przyjazny sposób.

Wpisujemy:

sudo chage -l eric

sudo chage -l eric w oknie terminala.

Kolejnym fajnym akcentem jest to, że możesz ustawić datę wygaśnięcia konta za pomocą opcji -E (wygaśnięcie). Przekażemy datę (w formacie rok-miesiąc-data), aby ustawić datę wygaśnięcia na 30 listopada 2020 r. W tym dniu konto zostanie zablokowane.

Wpisujemy:

sudo chage eric -E 2020-11-30

sudo chage eric -E 2020-11-30 w oknie terminala.

Następnie wpisujemy co następuje, aby upewnić się, że zmiana została wprowadzona:

sudo chage -l eric

sudo change -l eric w oknie terminala.

Widzimy, że data wygaśnięcia konta zmieniła się z „nigdy” na 30 listopada 2020 r.

Aby ustawić okres ważności hasła, możesz użyć opcji -M (maksymalna liczba dni) wraz z maksymalną liczbą dni, przez które hasło może być używane, zanim będzie trzeba je zmienić.

Wpisujemy:

sudo chage -M 45 mary

sudo change -M 45 mary w oknie terminala.

Wpisujemy co następuje, używając opcji -l (lista), aby zobaczyć efekt naszego polecenia:

sudo chage -l mary

sudo change -l mary w oknie terminala.

Data wygaśnięcia hasła jest teraz ustawiona na 45 dni od daty, którą ustawiliśmy, czyli jak pokazano na 8 grudnia 2020 r.

Dokonywanie zmian hasła dla wszystkich w sieci

Podczas tworzenia kont do haseł używany jest zestaw wartości domyślnych. Możesz zdefiniować wartości domyślne dla dni minimalnych, maksymalnych i ostrzegawczych. Są one następnie przechowywane w pliku o nazwie „/etc/login.defs”.

Aby otworzyć ten plik w gedit, możesz wpisać:

sudo gedit /etc/login.defs

  w oknie terminala w oknie terminala

Przewiń do elementów sterujących przedawnieniem hasła.

Kontrola przedawnienia hasła w edytorze gedit.

Możesz je edytować zgodnie ze swoimi wymaganiami, zapisać zmiany, a następnie zamknąć edytor. Następnym razem, gdy utworzysz konto użytkownika, zostaną zastosowane te wartości domyślne.

Jeśli chcesz zmienić wszystkie daty ważności hasła dla istniejących kont użytkowników, możesz to łatwo zrobić za pomocą skryptu. Po prostu wpisz następujące polecenie, aby otworzyć edytor gedit i utworzyć plik o nazwie „password-date.sh”:

sudo gedit password-date.sh

sudo gedit password-date.sh w oknie terminala.

Następnie skopiuj następujący tekst do swojego edytora, zapisz plik, a następnie zamknij gedit:

#!/bin/bash

reset_days=28

for username in $(ls /home)
do
  sudo chage $username -M $reset_days
  echo $username password expiry changed to $reset_days
done

Spowoduje to zmianę maksymalnej liczby dni dla każdego konta użytkownika na 28, a tym samym częstotliwość resetowania hasła. Możesz dopasować wartość zmiennej reset_days.

Najpierw wpisujemy co następuje, aby nasz skrypt był wykonywalny:

chmod +x password-date.sh

chmod + x password-date.sh w oknie terminala.

Teraz możemy wpisać następujące polecenie, aby uruchomić nasz skrypt:

sudo ./password-date.sh

sudo ./password-date.sh w oknie terminala.

Każde konto jest następnie przetwarzane, jak pokazano poniżej.

Cztery konta użytkowników z wartościami ważności hasła zmienionymi na 28 w oknie terminala.

Wpisujemy następujące polecenie, aby sprawdzić konto dla „mary”:

sudo change -l mary

sudo chage -l mary w oknie terminala.

Maksymalna wartość dni została ustawiona na 28 i powiedziano nam, że przypadnie ona na 21 listopada 2020 r. Możesz także łatwo zmodyfikować skrypt i dodać więcej poleceń chage lub passwd.

Zarządzanie hasłami to coś, co należy traktować poważnie. Teraz masz narzędzia potrzebne do przejęcia kontroli.