Паролі відіграють ключову роль у захисті ваших облікових записів. У цій статті ми розглянемо, як можна скидати паролі, встановлювати терміни їхньої дії, а також впроваджувати зміни паролів у вашій Linux-мережі.
Історія паролів налічує майже 60 років
Починаючи з середини 1960-х років, коли вперше виникла потреба в паролях, ми доводимо комп’ютерам свою ідентичність. Сумісна система розподілу часу, розроблена в Массачусетському технологічному інституті, зіткнулася з необхідністю ідентифікації різних користувачів у системі, а також забезпечення конфіденційності їхніх файлів.
Фернандо Дж. Корбато запропонував рішення, яке полягало у присвоєнні кожному користувачеві унікального імені. Щоб підтвердити свою ідентичність, користувачі повинні були використовувати особистий пароль для доступу до свого облікового запису.
Основна проблема паролів полягає в тому, що вони працюють як ключі. Будь-хто, хто отримає доступ до вашого пароля, зможе отримати доступ до вашого облікового запису. Хоча багатофакторна аутентифікація стає все більш поширеною, пароль залишається основним засобом захисту від несанкціонованих осіб (суб’єктів загроз у термінології кібербезпеки).
Віддалені з’єднання, встановлені за допомогою Secure Shell (SSH), можуть використовувати SSH-ключі замість паролів, що є чудовою альтернативою. Проте, це лише один із способів підключення, який не охоплює локальних входів до системи.
Зрозуміло, що ефективне управління паролями, так само як і управління користувачами, які їх застосовують, є надзвичайно важливим.
Яким має бути надійний пароль?
Які характеристики визначають надійність пароля? Надійний пароль повинен відповідати наступним вимогам:
- Його неможливо вгадати або підібрати.
- Ви не використовуєте його деінде.
- Він не скомпрометований у результаті витоку даних.
Веб-сайт Have I Been Pwned (HIBP) містить інформацію про понад 10 мільярдів скомпрометованих облікових даних. З огляду на такі значні цифри, цілком імовірно, що хтось інший вже використовує ваш пароль. Це означає, що ваш пароль може бути у базі даних, навіть якщо ваш обліковий запис не був безпосередньо зламаний.
Якщо ваш пароль є на сайті HIBP, це означає, що він включений до списків паролів, що є потенційно небезпечними. Такі списки часто використовуються в інструментах атак грубою силою та словникових атак при спробах зламу облікових записів.
Пароль, згенерований випадковим чином (наприклад, [email protected]%*[email protected]#b~aP), майже неможливо зламати, але, звичайно, його буде дуже важко запам’ятати. Ми наполегливо радимо використовувати менеджери паролів для онлайн-облікових записів. Вони створюють складні випадкові паролі для всіх ваших облікових записів, і вам не потрібно їх запам’ятовувати – менеджер паролів надає вам потрібний пароль у потрібний момент.
Для локальних облікових записів кожна особа повинна створювати свій власний пароль. Вони також повинні знати, який пароль є прийнятним, а який ні. Вони повинні бути проінструктовані не використовувати повторно паролі в інших облікових записах і т.д.
Ця інформація зазвичай викладена в політиці паролів організації. Вона встановлює вимоги до мінімальної довжини пароля, використання великих і малих літер, включення символів та розділових знаків і т.д.
Однак, згідно з нещодавнім дослідженням, проведеним командою з Університету Карнегі-Меллона, усі ці хитрощі мають невеликий або зовсім не мають впливу на надійність пароля. Дослідники встановили, що два ключові фактори, що впливають на надійність пароля, полягають у тому, що він повинен мати не менше 12 символів і бути дійсно випадковим. Вони оцінювали надійність пароля за допомогою різноманітних програм-зломщиків, статистичних методів і нейронних мереж.
Мінімальна довжина у 12 символів спочатку може здатися складною. Проте, краще думати про пароль як про кодову фразу, що складається з трьох або чотирьох непов’язаних слів, розділених розділовими знаками.
Наприклад, Експертна перевірка паролів стверджує, що на злом пароля “chicago99” потрібно 42 хвилини, а на злом “chicago.purple.bag” – 400 мільярдів років. При цьому, останній пароль легко запам’ятати і ввести, хоча він складається лише з 18 символів.
Перевірка поточних налаштувань пароля
Перш ніж вносити будь-які зміни, пов’язані з паролем користувача, корисно перевірити його поточні налаштування. За допомогою команди passwd ви можете переглянути їхні поточні налаштування, використовуючи опцію -S (статус). Зауважте, що вам також потрібно буде використовувати sudo з командою passwd, якщо ви працюєте з налаштуваннями паролів інших користувачів.
Введіть наступне:
sudo passwd -S mary
У вікні терміналу з’явиться один рядок інформації, як показано нижче.
У цій короткій відповіді ви бачите наступну інформацію (зліва направо):
- Ім’я користувача.
- Тут з’являється один із трьох можливих індикаторів:
- P: вказує, що обліковий запис має дійсний робочий пароль.
- L: означає, що обліковий запис заблоковано власником root.
- NP: пароль не встановлено.
- Дата останньої зміни пароля.
- Мінімальний вік пароля: мінімальний проміжок часу (у днях), який повинен пройти між скиданнями пароля, ініційованими власником облікового запису. Власник облікового запису root завжди може змінити пароль будь-кого. Якщо це значення дорівнює 0 (нуль), немає обмежень щодо частоти зміни пароля.
- Максимальний вік пароля: власнику облікового запису буде запропоновано змінити свій пароль, коли він досягне цього віку. Це значення вказано в днях, тому значення 99999 означає, що термін дії пароля ніколи не закінчується.
- Період попередження щодо зміни пароля: якщо встановлено максимальний термін дії пароля, власник облікового запису отримуватиме нагадування про зміну свого пароля. Перше нагадування буде надіслано за кількість днів, вказану тут, до дати скидання.
- Період неактивності для пароля: якщо користувач не звертається до системи протягом періоду часу, який виходить за рамки терміну скидання пароля, то пароль цієї особи не буде змінено. Це значення вказує на кількість днів після закінчення терміну дії пароля, протягом яких надається пільговий період. Якщо обліковий запис залишається неактивним протягом цієї кількості днів після закінчення терміну дії пароля, то обліковий запис буде заблоковано. Значення -1 вимикає пільговий період.
Встановлення максимального віку пароля
Щоб встановити період скидання пароля, ви можете використовувати параметр -x (максимальна кількість днів) з зазначенням кількості днів. Не залишайте пробіл між -x і цифрою, тому введіть його так:
sudo passwd -x45 mary
Нам повідомили, що значення терміну дії було змінено, як показано нижче.
Використовуйте параметр -S (статус), щоб перевірити, чи тепер значення становить 45:
sudo passwd -S mary
Тепер, через 45 днів, для цього облікового запису потрібно буде встановити новий пароль. Нагадування почнуться за сім днів до цієї дати. Якщо вчасно не ввести новий пароль, цей обліковий запис буде негайно заблоковано.
Примусова негайна зміна пароля
Ви також можете скористатися командою, щоб зобов’язати користувачів вашої мережі змінити свої паролі під час наступного входу до системи. Для цього потрібно скористатися параметром -e (expire), як показано нижче:
sudo passwd -e mary
Після цього з’явиться повідомлення про те, що інформація щодо терміну дії пароля була змінена.
Перевіримо, що сталося, за допомогою параметра -S:
sudo passwd -S mary
Дата останньої зміни пароля встановлена на перший день 1970 року. Наступного разу, коли цей користувач спробує увійти, йому потрібно буде змінити свій пароль. Перед тим, як вводити новий пароль, користувач також повинен буде надати свій поточний пароль.
Чи варто примусово змінювати паролі?
Раніше примусова регулярна зміна паролів вважалася стандартною процедурою. Це був один із звичайних заходів безпеки у більшості організацій та вважався гарною бізнес-практикою.
Проте, сучасний підхід до цього питання є кардинально протилежним. У Великобританії Національний центр кібербезпеки настійно рекомендує уникати регулярного оновлення паролів, і Національний інститут стандартів і технологій у США підтримує цю точку зору. Обидві організації рекомендують примусову зміну пароля лише у випадках, коли ви знаєте або підозрюєте, що пароль був скомпрометований.
Примусова зміна паролів стає рутиною і може провокувати користувачів на використання слабких паролів. Люди часто починають повторно використовувати базовий пароль, додаючи до нього дату чи інший номер. Або ж вони записують їх, оскільки їх потрібно змінювати так часто, що вони просто не можуть їх запам’ятати.
Дві вищезгадані організації рекомендують дотримуватися наступних правил щодо безпеки паролів:
- Використовуйте менеджер паролів: як для онлайн, так і для локальних облікових записів.
- Увімкніть двофакторну аутентифікацію: використовуйте її всюди, де це можливо.
- Використовуйте надійну парольну фразу: це чудова альтернатива для тих облікових записів, які не сумісні з менеджерами паролів. Три або більше слів, розділених розділовими знаками або символами, є гарним шаблоном.
- Ніколи не використовуйте один і той же пароль повторно: не використовуйте той самий пароль, що й для інших облікових записів, і тим паче не використовуйте той, що є в базі Have I Been Pwned.
Дотримання наведених вище рекомендацій дозволить вам створити надійний спосіб доступу до ваших облікових записів. Якщо у вас є надійний і безпечний пароль, немає необхідності його змінювати. Змінювати пароль слід лише в тому випадку, якщо він потрапив до чужих рук, або якщо ви підозрюєте, що це могло статися.
Однак, іноді це рішення не залежить від вас. Якщо існують вимоги щодо примусової зміни паролів, у вас немає іншого вибору. Ви можете висловити свою думку і навести свої аргументи, але якщо ви не є керівником, вам доведеться дотримуватися політики компанії.
Команда chage
Ви можете використовувати команду chage для зміни налаштувань, що стосуються терміну дії пароля. Ця команда отримала свою назву від «зміни старіння». Це схоже на команду passwd, але без функціоналу створення пароля.
Параметр -l (список) надає ту саму інформацію, що й команда passwd -S, але у більш зручному форматі.
Введіть наступне:
sudo chage -l eric
Ще одна корисна функція: ви можете встановити дату закінчення дії облікового запису за допомогою параметра -E (термін дії). Ми передаємо дату (у форматі рік-місяць-день), щоб встановити дату закінчення терміну дії на 30 листопада 2020 року. У цю дату обліковий запис буде заблоковано.
Введіть наступне:
sudo chage eric -E 2020-11-30
Далі ми вводимо наступне, щоб переконатися, що зміна була внесена:
sudo chage -l eric
Ми бачимо, що термін дії облікового запису змінився з “ніколи” на 30 листопада 2020 року.
Щоб встановити термін дії пароля, ви можете використовувати параметр -M (максимум днів), а також максимальну кількість днів, протягом яких можна використовувати пароль до моменту його заміни.
Введіть наступне:
sudo chage -M 45 mary
Введемо наступне, використовуючи параметр -l (список), щоб побачити ефект нашої команди:
sudo chage -l mary
Термін дії пароля тепер становить 45 днів від дати його встановлення, тобто, як бачимо, 8 грудня 2020 року.
Зміна паролів для всіх користувачів мережі
Під час створення облікових записів для паролів використовується набір значень за замовчуванням. Ви можете визначити значення за замовчуванням для мінімальних, максимальних і попереджувальних днів. Ці значення зберігаються у файлі під назвою “/etc/login.defs”.
Введіть наступне, щоб відкрити цей файл у gedit:
sudo gedit /etc/login.defs
Перейдіть до елементів керування терміном дії пароля.
Ви можете відредагувати їх відповідно до ваших вимог, зберегти зміни, а потім закрити редактор. Наступного разу, коли ви створюватимете обліковий запис користувача, будуть застосовані ці значення за замовчуванням.
Якщо ви хочете змінити всі терміни дії паролів для існуючих облікових записів користувачів, ви можете легко зробити це за допомогою сценарію. Введіть наступне, щоб відкрити редактор gedit і створити файл під назвою “password-date.sh”:
sudo gedit password-date.sh
Далі скопіюйте наступний текст у редактор, збережіть файл та закрийте 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
Це змінить максимальну кількість днів для кожного облікового запису користувача на 28, і, таким чином, змінить частоту скидання пароля. Ви можете налаштувати відповідне значення змінної reset_days.
Спочатку ми вводимо наступне, щоб зробити наш скрипт виконуваним:
chmod +x password-date.sh
Тепер ми можемо ввести наступне, щоб запустити наш скрипт:
sudo ./password-date.sh
Потім кожен обліковий запис буде оброблено, як показано нижче.
Ми вводимо наступне, щоб перевірити обліковий запис “mary”:
sudo chage -l mary
Максимальна кількість днів встановлена на 28, і нам повідомляють, що термін дії пароля закінчиться 21 листопада 2020 року. Ви також можете легко змінити сценарій та додати більше команд chage або passwd.
Управління паролями – це питання, до якого потрібно ставитися серйозно. Тепер у вас є інструменти, необхідні для контролю над ситуацією.