Jak uniemożliwić użytkownikom rozszerzenie okna ważnego logowania

14

Pracowałem nad niektórymi procedurami zwiększającymi bezpieczeństwo dla skrzynki RedHat i chciałem wiedzieć, czy będzie możliwe zapobieżenie zmianie hasła przez użytkownika po jego wygaśnięciu.

W przypadku jednego z naszych klientów wymaga się, aby mieli oni dostęp do serwera tylko za pośrednictwem kont tymczasowych, co oznacza, że ​​po utworzeniu poświadczeń użytkownika hasło musi wygasnąć w ciągu 4 godzin, a po wygaśnięciu hasła tylko root może go zmienić. .

Jeśli chodzi o pierwsze wymaganie (hasła wygasają po 4 godzinach), myślę, że można to osiągnąć poprzez ustawienie passwordMaxAge = 144000 . Ale nadal nie mogłem znaleźć sposobu, aby uniemożliwić użytkownikom zmianę wygasłych haseł bez wyłączenia ich wygasania.

Czy ktoś może pomóc?

urodzony dla hula
źródło
4
Czy to w porządku, jeśli użytkownik utrzymuje otwarte sesje logowania poza 4-godzinnym oknem? Wygaśnięcie hasła użytkownika nie spowoduje ich wyrzucenia, jeśli są już zalogowani. Mógłbym utrzymać sesję SSH otwartą przez tygodnie.
Wyzard,
Zamiast polegać na at / cronjobs i modyfikowaniu systemowych plików binarnych, możesz napisać prosty moduł pam, a może jest nawet jeden (lub możesz rozwidlić pam_time, aby dodać więcej opcji)
PlasmaHH

Odpowiedzi:

21

Zasadniczo wygasanie hasła służy do zmuszenia użytkowników do zmiany haseł. Wygląda na to, że chcesz zablokować konto, co uniemożliwia logowanie.

Sugeruję, abyś zamiast tego założył konto w miejscu pracy, które zablokuje konto po czterech godzinach.

Na przykład:

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

( chage -Eoczekuje się, że daty ważności będą podawane w dniach, więc obejdziemy to w miejscu pracy).

Michael Hampton
źródło
3
To miłe rozwiązanie. +1 ode mnie
Jenny D.
2
Ach, blast - Podoba mi się ten pomysł, jak dobrze ; także +1. Możesz nawet zrobić atTed userdel, co ma tę zaletę, że porządkuje wszystkie konta tymczasowe, aby nie kręciły się wiecznie.
MadHatter
2
Myślę, że tak naprawdę jest to lepsze niż moja sugestia.
Jenny D.
Myślę, że passwd -l temp813osiągnę to samo, co chage -E 0 temp8143.
Nate Eldredge
5
@NateEldredge Niezupełnie. passwd -lnie zapobiegnie na przykład logowaniu się za pomocą klucza ssh lub logowaniu na podstawie linii papilarnych chage -E 0.
Michael Hampton
24

Jeśli usuniesz bit setuid z polecenia passwd, tylko root będzie mógł go użyć. Uniemożliwi to również użytkownikom zmianę hasła przed jego wygaśnięciem - co w innym przypadku może być sposobem na przedłużenie konta o kolejne cztery godziny.

[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 nadal może zmienić dowolne hasło:

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
Jenny D.
źródło
5
Elegancki i bardzo UNIX. +1 ode mnie @ borntohula, nie zapomnij zaakceptować tej odpowiedzi, klikając kontur „zaznacz”, jeśli jesteś z niego zadowolony.
MadHatter
6
To prawie działa. Problem polega na tym, że usunięcie bitu setuid zostanie cofnięte, jeśli passwdzostanie kiedykolwiek zaktualizowane przez system.
Michael Hampton
3
@MichaelHampton True. Naprawianie, do czego jest np. Marionetka. Ponadto, czy nie każdy sprawdza swoje systemy pod kątem nowych bitów setuid / setgid po każdej aktualizacji?
Jenny D.
1
@JennyD - prawdopodobnie powinni sprawdzić zmiany bitów setuid / setgid, ale niewielu to robi
ostrzega
2
@warren - w tym zdaniu mógł być lekki sarkazm. Bardzo mały ślad. Minuskuła.
Jenny D.