Hasła stanowią fundament zabezpieczeń kont użytkowników. W tym artykule pokażemy, jak resetować hasła, ustalać okresy ich ważności oraz wymuszać zmiany haseł w systemie Linux.
Hasło ma już prawie 60 lat
Od połowy lat sześćdziesiątych udowadniamy komputerom, że jesteśmy tym, za kogo się podajemy, korzystając z haseł. Wynalezienie hasła było odpowiedzią na potrzebę identyfikacji użytkowników w Zgodnym systemie podziału czasu, stworzonym w MIT, które wymagało metody, aby uniemożliwić użytkownikom dostęp do plików innych osób.
Fernando J. Corbató zaproponował system nadawania unikalnych nazw użytkowników, w którym każda osoba musi użyć prywatnego hasła, aby uzyskać dostęp do swojego konta.
Hasła działają jak klucze – każdy, kto je posiada, może uzyskać dostęp. Jeżeli ktoś odkryje lub zgadnie Twoje hasło, ma możliwość zalogowania się na Twoje konto. Dopóki nie wprowadzi się uwierzytelniania wieloskładnikowego, hasło pozostaje jedyną przeszkodą, która chroni przed nieautoryzowanym dostępem do systemu.
Połączenia zdalne przez Secure Shell (SSH) mogą być skonfigurowane do używania kluczy SSH zamiast haseł, co jest korzystne, ale to tylko jedna metoda logowania, która nie obejmuje dostępu lokalnego.
Zarządzanie hasłami jest kluczowym elementem bezpieczeństwa, podobnie jak nadzorowanie użytkowników korzystających z tych haseł.
Budowa hasła
Co sprawia, że hasło jest dobre? Dobre hasło powinno spełniać następujące kryteria:
- Nie powinno być łatwe do odgadnięcia.
- Nie powinno być używane w innych miejscach.
- Nie powinno brać udziału w naruszeniach danych.
Serwis Czy zostałem oszukany (HIBP) zawiera ponad 10 miliardów zarejestrowanych naruszeń danych. Przy tak dużych liczbach możliwe, że ktoś użył tego samego hasła co Ty, co oznacza, że Twoje hasło może być w bazie danych, mimo że Twoje konto nie zostało naruszone.
Jeśli Twoje hasło znajduje się w HIBP, oznacza to, że mogło zostać wykorzystane przez aktorów ataków słownikowych i brutalnej siły przy próbie włamania się na Twoje konto.
Prawdziwie losowe hasło (np. 4HW @ HpJDBr% * Wt @ # b ~ aP) jest praktycznie niemożliwe do złamania, ale bardzo trudno je zapamiętać. Zdecydowanie zaleca się korzystanie z menedżera haseł, który generuje złożone, losowe hasła dla wszystkich kont online, eliminując potrzebę ich zapamiętywania – menedżer haseł sam podaje prawidłowe hasło.
Dla kont lokalnych każda osoba musi stworzyć swoje hasło. Muszą również znać zasady dotyczące haseł, aby wiedzieć, które hasła są akceptowalne, a które nie. Powinno się im przypomnieć, aby nie używali tych samych haseł w różnych miejscach.
Te informacje zazwyczaj znajdują się w politykach haseł w organizacji, które instruują pracowników, by stosowali minimalną liczbę znaków, mieszali duże i małe litery, używali symboli i znaków interpunkcyjnych itd.
Choć minimum 12 znaków może na początku wydawać się zniechęcające, warto podejść do tego jak do hasła utworzonego z trzech lub czterech niepowiązanych słów oddzielonych znakami interpunkcyjnymi.
Na przykład Experte Password Checker wskazuje, że złamanie hasła „chicago99” zajmie 42 minuty, podczas gdy „chimney.purple.bag” zajmie aż 400 miliardów lat. Takie hasło jest również łatwe do zapamiętania i wpisania, a zawiera 18 znaków.
Analiza aktualnych ustawień
Zanim wprowadzisz jakiekolwiek zmiany w hasłach użytkowników, warto zapoznać się z ich obecnymi ustawieniami. Możesz to zrobić za pomocą polecenia passwd z opcją -S (status). Pamiętaj, aby używać sudo, gdy pracujesz z hasłami innych użytkowników.
Wprowadź:
sudo passwd -S mary
W odpowiedzi w terminalu pojawi się krótka informacja, jak pokazano poniżej.
W tej odpowiedzi znajdziesz następujące informacje (od lewej do prawej):
- Nazwa użytkownika.
- Wskaźnik statusu konta, który może być jednym z trzech:
- P: Konto ma ważne, działające hasło.
- L: 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 czas (w dniach), który musi upłynąć przed resetem hasła przez właściciela konta. Właściciel konta roota zawsze może zmienić hasło. Jeśli wartość wynosi 0, nie ma ograniczeń.
- Maksymalny wiek hasła: czas (w dniach), po którym użytkownik powinien zmienić hasło. Wartość 99 999 oznacza, że hasło nigdy nie wygasa.
- Okres ostrzeżenia przed wymianą hasła: liczba dni przed wygaśnięciem hasła, w której użytkownik otrzyma przypomnienia o konieczności zmiany hasła.
- Okres nieaktywności hasła: jeśli użytkownik nie korzysta z systemu przez czas odpowiadający dacie resetowania hasła, jego hasło nie ulegnie zmianie. Wartość -1 wyłącza okres karencji.
Ustalanie maksymalnego wieku hasła
Aby ustawić maksymalny czas ważności hasła, użyj opcji -x (maksymalna liczba dni) z liczbą dni. Pamiętaj, aby nie zostawiać spacji między -x a cyframi, tak jak w poniższym przykładzie:
sudo passwd -x45 mary
Otrzymasz potwierdzenie zmiany wartości, jak pokazano poniżej.
Aby sprawdzić, czy wartość wynosi teraz 45, użyj opcji -S:
sudo passwd -S mary
Teraz hasło dla tego konta musi zostać zmienione za 45 dni. Przypomnienia rozpoczną się siedem dni przed datą wygaśnięcia. Jeśli nowe hasło nie zostanie ustawione na czas, konto zostanie natychmiast zablokowane.
Wymuszanie natychmiastowej zmiany hasła
Możesz również zmusić innych użytkowników w Twojej sieci do zmiany haseł przy następnym logowaniu. Aby to zrobić, użyj opcji -e (expire) w następujący sposób:
sudo passwd -e mary
Otrzymasz potwierdzenie o zmianie stanu wygaśnięcia hasła.
Aby sprawdzić status z opcją -S:
sudo passwd -S mary
Data ostatniej zmiany hasła została ustawiona na 1 stycznia 1970 roku. Użytkownik będzie musiał zmienić hasło przy następnej próbie logowania, a także podać obecne hasło przed wprowadzeniem nowego.
Czy wymuszać zmiany haseł?
Wymuszanie regularnych zmian haseł było kiedyś powszechnie uznawane za dobry pomysł. Była to jedna z podstawowych praktyk bezpieczeństwa w wielu organizacjach.
Obecnie jednak podejście to uległo zmianie. W Wielkiej Brytanii Narodowe Centrum Cyberbezpieczeństwa zdecydowanie zaleca unikanie wymuszania regularnej zmiany haseł, co popiera również Narodowy Instytut Standardów i Technologii w USA. Obie organizacje sugerują wymuszać zmianę hasła jedynie w przypadku, gdy istnieje podejrzenie, że hasło mogło być już ujawnione.
Wymuszanie zmian haseł może prowadzić do monotonii, co skłania do tworzenia słabszych haseł. Użytkownicy często zaczynają ponownie używać starych haseł z nową datą lub innym numerem. Często zapisują je, ponieważ zmieniają je tak często, że nie są w stanie ich zapamiętać.
Obie wspomniane wcześniej organizacje zalecają następujące zasady dotyczące bezpieczeństwa haseł:
- Korzystaj z menedżera haseł: dla kont online oraz lokalnych.
- Włącz uwierzytelnianie dwuskładnikowe: korzystaj z tej opcji wszędzie, gdzie to możliwe.
- Używaj silnych haseł: doskonałą alternatywą są hasła składające się z trzech lub więcej słów oddzielonych znakami interpunkcyjnymi lub symbolami.
- Nie używaj ponownie haseł: unikaj używania tego samego hasła, które stosujesz gdzie indziej, a zwłaszcza tych, które były publikowane w Czy zostałem oszukany.
Stosując się do tych wskazówek, możesz zapewnić sobie bezpieczny dostęp do swoich kont. Kiedy już ustalisz skuteczne zasady, trzymaj się ich. Po co zmieniać hasło, jeśli jest silne i bezpieczne? W przypadku podejrzenia, że mogło trafić w niepowołane ręce, możesz je zmienić.
Czasami jednak decyzja o zmianie hasła nie leży w Twoich rękach. Jeśli polityka firmy wymusza zmianę hasła, nie masz zbyt wielu możliwości. Możesz zgłosić swoje wątpliwości, ale jeśli nie jesteś przełożonym, musisz podporządkować się zasadom organizacji.
Polecenie chage
Mozesz użyć polecenia chage do zmiany ustawień dotyczących wygaśnięcia haseł. Nazwa tego polecenia pochodzi od „zmień starzenie się” i działa podobnie jak passwd, ale z pominięciem opcji tworzenia haseł.
Opcja -l (lista) wyświetla te same informacje, co polecenie passwd -S, ale w bardziej przejrzysty sposób.
Wprowadzamy:
sudo chage -l eric
Możesz również ustawić datę wygaśnięcia konta, korzystając z opcji -E (wygaśnięcie). Podaj datę (w formacie rok-miesiąc-dzień), aby ustawić datę wygaśnięcia na 30 listopada 2020 roku, po której konto zostanie zablokowane.
Wprowadzamy:
sudo chage eric -E 2020-11-30
Aby upewnić się, że zmiana została wprowadzona, wprowadzamy:
sudo chage -l eric
Widzimy, że data wygaśnięcia konta zmieniła się z „nigdy” na 30 listopada 2020 roku.
Aby ustawić maksymalny okres ważności hasła, użyj opcji -M (maksymalna liczba dni) z maksymalną liczbą dni, przez które hasło może być używane przed koniecznością zmiany.
Wprowadzamy:
sudo chage -M 45 mary
Aby sprawdzić efekt swojego polecenia, użyj opcji -l (lista):
sudo chage -l mary
Data wygaśnięcia hasła została teraz ustawiona na 45 dni od daty, którą wprowadziliśmy, co odpowiada 8 grudnia 2020 roku.
Dokonywanie zmian haseł dla wszystkich użytkowników w systemie
Podczas tworzenia kont, hasła są ustawiane na wartości domyślne. Możesz zdefiniować te wartości dla minimalnych, maksymalnych dni oraz dni ostrzegawczych, które są przechowywane w pliku „/etc/login.defs”.
Aby otworzyć ten plik w edytorze gedit, wpisz:
sudo gedit /etc/login.defs
Przewiń do sekcji dotyczącej ustawień wygaśnięcia haseł.
Możesz dostosować te wartości do swoich potrzeb, a następnie zapisać zmiany i zamknąć edytor. Następnym razem, gdy utworzysz konto, będą one stosowane jako domyślne.
Jeśli chcesz zmienić daty ważności hasła dla wszystkich istniejących kont, możesz to łatwo zrobić za pomocą skryptu. Wprowadź następujące polecenie, aby otworzyć edytor gedit i stworzyć plik o nazwie „password-date.sh”:
sudo gedit password-date.sh
Następnie skopiuj poniższy kod do swojego edytora, zapisz plik i 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
Skrypt ten zmieni maksymalną liczbę dni dla każdego użytkownika na 28 dni, co wpłynie na częstotliwość resetowania haseł. Możesz dostosować wartość zmiennej reset_days.
Aby uczynić skrypt wykonywalnym, wpisz:
chmod +x password-date.sh
Teraz możesz uruchomić skrypt, wpisując:
sudo ./password-date.sh
Każde konto zostanie przetworzone, jak pokazano poniżej.
Aby sprawdzić konto dla „mary”, wpisz:
sudo chage -l mary
Maksymalny czas ważności hasła został ustawiony na 28 dni, co wypada na 21 listopada 2020 roku. Możesz również łatwo zmodyfikować skrypt, aby dodać więcej poleceń chage lub passwd.
Zarządzanie hasłami to zadanie, które należy traktować poważnie. Teraz posiadasz narzędzia do skutecznego zarządzania bezpieczeństwem haseł.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.