захист паролів

Багато операційних систем для надання доступу користувача до системи використовують аутентифікацію по імені користувача і паролю, і Linux не є винятком.







В даний момент розглянемо механізм / etc / passwd і все, що пов'язано з паролями.

Серцем Linux-безпеки є файл / etc / passwd, в якому містяться деталі всіх користувачів, зареєстрованих в системі. Щоб користувач міг увійти в систему, він повинен бути зареєстрований в цьому файлі. Ранні версії Linux використовували наступний формат цього файлу (поля розділяються двокрапкою):

Подивимося на типовий приклад файлу / etc / passwd:

Якщо користувач входить в систему, введений пароль шифрується (або хешіруется) і порівнюється зі значенням другого поля. Якщо значення збігаються, користувачеві дозволяється доступ. Якщо замість пароля варто зірочка, то цей користувач не зможе увійти в систему (при спробі увійти в систему під таким ім'ям користувача ви отримаєте повідомлення password incorrect).

Все добре, якби файл / etc / passwd не був доступний для читання будь-якому користувачеві. Будь-який користувач може скопіювати цей файл, а пізніше, використовуючи brute-force атаку (перебір пароля), «вирахувати» паролі інших користувачів. Для цього є багато програм, найпопулярнішою є John Ripper, що дає можливість за пару днів зламати паролі всіх користувачів.

Для вирішення цієї проблеми в сучасних версіях Linux використовуються тіньові паролі. Механізм тіньових паролів наступний: файл / etc / passwd і раніше використовується, але всі паролі з нього «переїхали» в файл / etc / shadow, який доступний для читання лише користувачеві root (і програм, запущеним від його імені). Замість паролів і зірочок у другому полі файлу / etc / passwd в даний час знаходиться символ х. Подивимося на такий файл / etc / passwd:







Відповідний йому файл / etc / shadow виглядає так:

root: $ l $ 9R6CkJpT $ 6mglIAM00eFwYWmJLLuLz /. 12 937. 0. 99999. 7.

Тут друге поле - це закодований пароль, всі інші поля використовуються для наступних цілей:

Включення тіньових паролів.

Тепер напевно немає Linux-систем, які не підтримують тіньові паролі. Але може попастися дистрибутив, в якому підтримка тіньових паролів є, але не включена за замовчуванням. Для її включення треба використовувати команду pwconv (також не забудьте виконати команду grpconv для перетворення файлу / etc / grpconv).

Якщо у вас включені тіньові паролі, то все одно залишаються дірки в безпеці. Істотно зменшити ризик злому облікового запису дозволяють правильні правила зміни паролів, тобто потрібно встановити значення для всіх полів файлу / etc / shadow. Але запам'ятати призначення кожного поля важко.

Для спрощення цього завдання можна використовувати програму chage. що входить до складу Shadow Suite. Синтаксис її такий:

chage [-m mindays] [-M maxdays] [-d lastday] [-1 inactive] [-E expiredate] [-W warndays] користувач

  • -m - мінімальний термін дії пароля;
  • -М - максимальний термін дії пароля;
  • -W - за скільки днів до останнього дня попередити користувача;
  • -Е - дата закінчення дії пароля.

Password Expires: Never

Password Inactive: Never

Account Expires: Never

Рекомендується встановити мінімальну довжину пароля, рівну 8 символів, і змусити користувачів змінювати свої паролі кожні 6-7 тижнів. Більш повний контроль над правилами зміни паролів можна отримати за допомогою файлу /etc/login.defs.

Ще записи по темі







Схожі статті