Як не дати користувачам розширити вікно дійсного входу


14

Я працював над деякими процедурами посилення безпеки для вікна RedHat, і я хотів знати, чи вдасться запобігти користувачеві змінювати свій пароль, як тільки він закінчиться.

Для одного з наших клієнтів вимога полягає в тому, що вони повинні мати доступ до сервера лише через тимчасові облікові записи, тобто, щойно створені облікові дані користувачів, термін дії пароля повинен закінчитися протягом 4 годин, а після закінчення терміну дії пароля, лише root повинен мати змогу змінити його .

Перша вимога (термін дії паролів закінчується через 4 години), я думаю, це можна було досягти, встановивши passwordMaxAge = 144000 . Але я все ще не міг знайти спосіб запобігти користувачам змінити термін дії паролів, не вимикаючи термін дії пароля.

Хтось може допомогти?


4
Чи гаразд, якщо користувач зберігає існуючі сеанси входу через 4-годинне вікно? Термін дії пароля користувача не видалить їх, якщо вони вже увійшли. Я можу тримати сеанс SSH відкритим протягом тижнів.
Wyzard

Замість того, щоб покладатися на / cronjobs та модифікацію системних бінарних файлів, ви можете написати простий модуль пам’яті, а може бути, навіть один там (або, можливо, ви можете роздвоєти pam_time, щоб включити більше варіантів)
PlasmaHH

Відповіді:


21

Як правило, термін дії пароля використовується, щоб змусити користувачів змінювати свої паролі. Звучить так, як ви хочете зробити, це заблокувати обліковий запис, що перешкоджає входу в систему.

Я б запропонував вам зробити це, коли ви створюєте обліковий запис, також налаштуйте роботу, яка заблокує обліковий запис через чотири години.

Наприклад:

useradd temp8143
echo chage -E 0 temp8143 | at now + 4 hours

( chage -Eочікує, що терміни придатності будуть вказані в днях, тому ми працюємо над цим завданням на роботі.)


3
Це приємне рішення. +1 від мене.
Дженні Д

2
Ах, вибух - Мені подобається ця ідея , а також ; також +1. Ви можете навіть зробити atтед userdel, який мав би перевагу прибирати всі ці тимчасові акаунти, щоб вони не зависали назавжди.
MadHatter

2
Я думаю, що це краще, ніж моя пропозиція.
Дженні Д

Я думаю passwd -l temp813, що досягти того ж, що і chage -E 0 temp8143.
Нейт Елдредж

5
@NateEldredge Не зовсім. passwd -lНаприклад, не завадить ввійти ключ ключа ssh або вхід відбитків пальців, поки chage -E 0буде.
Майкл Хемптон

24

Якщо ви вилучите біт setuid з команди passwd, тільки root зможе ним скористатися. Це також заборонить користувачам змінювати пароль до його закінчення, що в іншому випадку може бути способом продовжити обліковий запис ще на чотири години.

[jenny@finch ~] sudo chmod -s /usr/bin/passwd
[jenny@finch ~]$ passwd
Changing password for user jenny.
Changing password for jenny.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: Authentication token manipulation error

Root все ще може змінити будь-який пароль:

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

5
Елегантний і дуже UNIX. +1 від мене. @borntohula, не забудьте прийняти цю відповідь, натиснувши на контур «галочку», якщо ви цим задоволені.
MadHatter

6
Це майже працює. Проблема в тому, що видалення встановленого біта буде скасовано, якщо система passwdколи-небудь оновиться.
Майкл Хемптон

3
@MichaelHampton True. Виправлення саме для цього, наприклад, лялька. Крім того, чи не кожен перевіряє свої системи на нові встановлені / встановлені жорсткі біти після кожного оновлення?
Дженні Д

1
@JennyD - вони, ймовірно, повинні перевірити, чи не змінюються встановлені / встановлені жорсткі біти, але це дуже мало колись
warren

2
@warren - у цьому реченні, можливо, був незначний слід сарказму. Дуже невеликий слід. Мінускул.
Jenny D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.