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

Opublikowany: 2022-01-29
Wiadomość „nieudane hasło” od sshd.
Ilya Titchev/Shutterstock

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ę podaje, od połowy lat sześćdziesiątych, kiedy po raz pierwszy wprowadzono hasło. Konieczność będąca matką wynalazku, kompatybilny system podziału czasu, opracowany w Massachusetts Institute of Technology, potrzebował sposobu na identyfikację różnych osób w systemie. Musiał również uniemożliwić innym oglądanie swoich plików.

Fernando J. Corbato zaproponował schemat, w którym każdej osobie przypisywana jest unikalna nazwa użytkownika. Aby udowodnić, że ktoś był tym, za kogo się podawał, musieli 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 z niego korzystać. Jeśli ktoś znajdzie, odgadnie lub odgadnie Twoje hasło, może uzyskać dostęp do Twojego konta. Dopóki uwierzytelnianie wieloskładnikowe nie będzie powszechnie dostępne, hasło jest jedyną rzeczą, dzięki której osoby nieupoważnione (takie jak cyberprzestępcy) nie przedostaną się do systemu.

Reklama

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 logowania lokalnego.

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

POWIĄZANE: Jak tworzyć i instalować klucze SSH z powłoki systemu Linux

Anatomia hasła

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

  • Nie da się zgadnąć ani rozgryźć.
  • Nie używałeś go nigdzie indziej.
  • Nie brała udziału w wycieku danych.

Witryna Have I Been Pwned (HIBP) zawiera ponad 10 miliardów zestawów naruszonych danych uwierzytelniających. Przy tak wysokich liczbach istnieje prawdopodobieństwo, że ktoś inny użył tego samego hasła, co Ty. Oznacza to, że Twoje hasło może znajdować się w bazie danych, nawet jeśli to nie Twoje konto zostało naruszone.

Jeśli Twoje hasło znajduje się w witrynie HIBP, oznacza to, że znajduje się na liście haseł, których używają narzędzia ataku brute-force i słownikowego, gdy próbują złamać konto.

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

W przypadku kont lokalnych każda osoba musi wygenerować własne hasło. Muszą także wiedzieć, jakie hasło jest akceptowalne, a jakie nie. Trzeba im powiedzieć, aby nie używali ponownie haseł na innych kontach i tak dalej.

Reklama

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

Jednak według najnowszego artykułu zespołu z Carnegie Mellon University wszystkie te sztuczki niewiele lub wcale nie dodają solidności hasła. Naukowcy odkryli, że dwa kluczowe czynniki decydujące o odporności haseł to to, że mają one co najmniej 12 znaków i są wystarczająco silne. Mierzyli siłę hasła za pomocą wielu 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 hasła składającego się z trzech lub czterech niepowiązanych ze sobą słów oddzielonych interpunkcją.

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

POWIĄZANE: Dlaczego powinieneś używać menedżera haseł i jak zacząć

Przeglądanie bieżących ustawień

Zanim zmienisz cokolwiek związanego z hasłem danej osoby, rozsądnie jest przyjrzeć się jej bieżącym ustawieniom. Za pomocą polecenia passwd możesz przejrzeć ich bieżące ustawienia za pomocą opcji -S (stan). Pamiętaj, że będziesz musiał również użyć sudo z passwd , jeśli pracujesz z ustawieniami haseł innych osób.

Wpisujemy:

 sudo passwd -S mary 

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

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

  • Nazwa logowania osoby.
  • Tutaj 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 root.
    • NP: Hasło nie zostało ustawione.
  • Data ostatniej zmiany hasła.
  • Minimalny wiek hasła: minimalny okres czasu (w dniach), który musi upłynąć między resetami hasła wykonanymi przez właściciela konta. Właściciel konta root może jednak zawsze zmienić czyjeś hasło. Jeśli ta wartość wynosi 0 (zero), nie ma ograniczeń co do częstotliwości zmian hasła.
  • Maksymalny wiek hasła: właściciel konta jest proszony o zmianę hasła, gdy osiągnie ten wiek. Ta wartość 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 zostanie narzucony maksymalny wiek hasła, właściciel konta otrzyma przypomnienia o zmianie hasła. Pierwsza z nich zostanie wysłana w podanej liczbie dni przed datą resetu.
  • Okres nieaktywności hasła: jeśli ktoś nie uzyska dostępu do systemu przez okres czasu, który pokrywa się z terminem resetowania hasła, hasło tej osoby nie zostanie zmienione. Ta wartość wskazuje, ile dni okresu prolongaty przypada po dacie wygaśnięcia hasła. Jeśli konto pozostanie nieaktywne przez tę liczbę dni po wygaśnięciu hasła, konto zostanie 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 zostawiasz spacji między -x a cyframi, więc wpiszesz to w następujący sposób:

 sudo passwd -x45 mary 

Reklama

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

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

 sudo passwd -S mary 

Teraz, za 45 dni, trzeba ustawić nowe hasło do tego konta. Przypomnienia rozpoczną 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 także użyć polecenia, aby inne osoby w Twojej sieci musiały zmienić swoje hasła przy następnym logowaniu. Aby to zrobić, użyj opcji -e (wygaśnięcie) w następujący sposób:

 sudo passwd -e mary 

Następnie dowiadujemy się, że informacje o wygaśnięciu hasła uległy zmianie.

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

 sudo passwd -S mary 

Reklama

Data ostatniej zmiany hasła jest ustawiona na pierwszy dzień 1970 roku. Przy następnej próbie logowania będzie musiała zmienić swoje 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 zwykle zdrowym rozsądkiem. Był to jeden z rutynowych kroków bezpieczeństwa dla większości instalacji i uważany za dobrą praktykę biznesową.

Myślenie teraz jest biegunowym przeciwieństwem. W Wielkiej Brytanii Narodowe Centrum Bezpieczeństwa Cybernetycznego zdecydowanie odradza wymuszanie regularnego odnawiania haseł, a Narodowy Instytut Standardów i Technologii w USA zgadza się z tym. Obie organizacje zalecają wymuszenie zmiany hasła tylko wtedy, gdy znasz lub podejrzewasz, że istniejące jest 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 przypisaną datą lub innym numerem. Albo spiszą je, ponieważ muszą je tak często zmieniać, że nie mogą ich zapamiętać.

Dwie wspomniane wyżej organizacje zalecają następujące wytyczne dotyczące bezpieczeństwa haseł:

  • Użyj menedżera haseł: zarówno dla kont internetowych, jak i lokalnych.
  • Włącz uwierzytelnianie dwuskładnikowe: używaj go wszędzie tam, gdzie jest to możliwe.
  • Użyj silnego hasła: doskonała alternatywa dla kont, które nie będą działać z menedżerem haseł. Co najmniej trzy słowa oddzielone 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 do innego konta, i zdecydowanie nie używaj hasła wymienionego na Have I Been Pwned.
Reklama

Powyższe wskazówki pozwolą Ci ustanowić bezpieczny sposób 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 nie jest w twoich rękach. Jeśli uprawnienia, które wymuszają zmianę hasła, nie masz wielkiego wyboru. Możesz bronić swojej sprawy i przedstawić swoje stanowisko, ale jeśli nie jesteś szefem, będziesz musiał przestrzegać polityki firmy.

POWIĄZANE: Czy należy regularnie zmieniać hasła?

Polecenie chage

Możesz użyć polecenia chage , aby zmienić ustawienia dotyczące starzenia się hasła. To polecenie ma swoją nazwę od „zmień starzenie się”. Przypomina to 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 

Kolejnym fajnym akcentem jest ustawienie daty wygaśnięcia konta za pomocą opcji -E (wygaśnięcie). Podamy datę (w formacie rok-miesiąc-data), aby ustawić datę wygaśnięcia 30 listopada 2020 r. W tym dniu konto zostanie zablokowane.

Wpisujemy:

 sudo chage eric -P 2020-11-30 

Następnie wpisujemy następujące polecenie, aby upewnić się, że ta zmiana została wykonana:

 sudo chage -l eric 

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

Reklama

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 zostać zmienione, zanim będzie musiało zostać zmienione.

Wpisujemy:

 sudo chage -M 45 mary 

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

 sudo chage -l mary 

Data wygaśnięcia hasła jest teraz ustawiona na 45 dni od daty, w której je ustawiliśmy, czyli, jak pokazano, 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 dni minimalnych, maksymalnych i ostrzegawczych. Są one następnie przechowywane w pliku o nazwie „/etc/login.defs”.

Możesz wpisać następujące polecenie, aby otworzyć ten plik w gedit :

 sudo gedit /etc/login.defs 

Przewiń do kontrolek starzenia się hasła.

Kontrola starzenia się hasła w edytorze gedit.

Możesz je edytować zgodnie z własnymi wymaganiami, zapisać zmiany, a następnie zamknąć edytor. Przy następnym utworzeniu konta użytkownika zostaną zastosowane te wartości domyślne.

Reklama

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

 sudo gedit hasło-data.sh 

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

 #!/kosz/bash

reset_dni=28

dla nazwy użytkownika w $(ls /home)
robić
  sudo chage $ nazwa użytkownika -M $ reset_dni
  echo $username wygaśnięcie hasła zostało zmienione na $reset_days
Gotowe

Zmieni to maksymalną liczbę dni dla każdego konta użytkownika na 28, a tym samym częstotliwość resetowania hasła. Możesz dostosować wartość zmiennej reset_days do własnych potrzeb.

Najpierw wpisujemy następujące polecenie, aby nasz skrypt był wykonywalny:

 chmod +x hasło-data.sh 

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

 sudo ./data-hasła.sh 

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

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

 sudo zmiana -l mary 

Reklama

Maksymalna wartość dni została ustawiona na 28 i powiedziano nam, że wypada ona 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.