Comment empêcher les utilisateurs d'étendre leur fenêtre de connexion valide

14

J'ai travaillé sur certaines procédures de renforcement de la sécurité pour une boîte RedHat, et je voulais savoir s'il serait possible d'empêcher un utilisateur de changer son mot de passe, une fois qu'il est expiré.

Pour l'un de nos clients, l'exigence est qu'ils ne doivent avoir accès au serveur que via des comptes temporaires, ce qui signifie qu'une fois les informations d'identification de l'utilisateur créées, le mot de passe doit expirer dans les 4 heures, et une fois le mot de passe expiré, seule la racine doit pouvoir le changer. .

Pour la première exigence (les mots de passe expirant après 4 heures), je suppose que cela pourrait être atteint en définissant passwordMaxAge = 144000 . Mais je ne pouvais toujours pas trouver un moyen d'empêcher les utilisateurs de changer les mots de passe expirés, sans désactiver l'expiration des mots de passe.

Quelqu'un peut-il aider?

né à hula
la source
4
Est-ce correct si l'utilisateur garde les sessions de connexion existantes ouvertes après la fenêtre de 4 heures? Expiration du mot de passe de l'utilisateur ne les expulsera pas s'ils sont déjà connectés. Je pourrais garder une session SSH ouverte pendant des semaines.
Wyzard
Au lieu de s'appuyer sur at / cronjobs et sur la modification des binaires système, vous pourriez être en mesure d'écrire un module pam simple, ou peut-être qu'il y en a même un (ou vous pouvez peut-être bifurquer pam_time pour inclure plus d'options)
PlasmaHH

Réponses:

21

Généralement, l'expiration du mot de passe est utilisée pour forcer les utilisateurs à modifier leur mot de passe. Il semble que vous vouliez faire est de verrouiller le compte, ce qui empêche toute connexion.

Ce que je vous suggère de faire à la place, c'est que, lorsque vous créez le compte, configurez également un travail qui verrouillera le compte après quatre heures.

Par exemple:

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

( chage -Es'attend à ce que les dates d'expiration soient données en jours, donc nous travaillons autour de cela avec un travail au travail.)

Michael Hampton
la source
3
Voilà une bonne solution. +1 de moi.
Jenny D
2
Ah, explosion - Je aime cette idée aussi bien ; également +1. Vous pourriez même faire un atted userdel, ce qui aurait l'avantage de ranger tous ces comptes temporaires afin qu'ils ne traînent pas éternellement.
MadHatter
2
Je pense que c'est mieux que ma suggestion, en fait.
Jenny D
Je pense que passwd -l temp813va réaliser la même chose que chage -E 0 temp8143.
Nate Eldredge
5
@NateEldredge Pas exactement. passwd -ln'empêchera pas les connexions ssh ou les empreintes digitales, par exemple, tandis que chage -E 0will.
Michael Hampton
24

Si vous supprimez le bit setuid de la commande passwd, seul root pourra l'utiliser. Cela empêchera également les utilisateurs de modifier le mot de passe avant son expiration - ce qui pourrait sinon être un moyen pour les utilisateurs d'étendre le compte pendant quatre heures supplémentaires.

[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 peut toujours changer n'importe quel mot de passe:

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
Jenny D
la source
5
Élégant et très UNIX. +1 de moi. @borntohula, n'oubliez pas d'accepter cette réponse en cliquant sur le contour "tick" si vous en êtes satisfait.
MadHatter
6
Cela fonctionne presque . Le problème est que votre suppression du bit setuid sera annulée si elle passwdest mise à jour par le système.
Michael Hampton
3
@MichaelHampton True. C'est à cela que sert la marionnette. De plus, tout le monde ne vérifie-t-il pas les nouveaux bits de setuid / setgid dans leur système après chaque mise à jour?
Jenny D
1
@JennyD - ils devraient probablement vérifier que les bits setuid / setgid changent, mais très peu le font
warren
2
@warren - il peut y avoir eu une légère trace de sarcasme dans cette phrase. Une toute petite trace. Minuscule.
Jenny D