Сегодня вечером я заметил странное поведение в моей системе Ubuntu 18.04.3 LTS. Когда я пытался выполнить команду sudo, я обнаружил, что мне нужны только первые 8 символов моего пароля. Углубившись вглубь, я обнаружил, что мой пароль был зашифрован и, похоже, был DES. Я использую OpenLDAP, но я не думаю, что здесь проблема.
Например, если я установлю свой пароль на «pass1234»:
johndoe@server:~$ passwd
Enter login(LDAP) password:
New password:
Retype new password:
LDAP password information changed for johndoe
passwd: password updated successfully
johndoe@server:~$ sudo getent shadow johndoe
johndoe:e7U.n9HW4nHM2:18155::99999:7:::
johndoe@server:~$
Обратите внимание, что нет кода алгоритма - просто хэш DES, который, вероятно, взломает 2 секунды. Кроме того, я могу войти, набираю ли я «pass1234» или «pass12345678» - без разницы. Я не могу использовать «pass12» или более короткие пароли.
Теперь, если я захожу в LDAP Account Manager и меняю свой пароль, используя его (где я явно указал использование CRYPT-SHA512), я получаю нечто более разумное:
johndoe@server:~$ sudo getent shadow johndoe
johndoe:$6$Erkaijrv5357u/kR$Sl7IP25j5zWgwKT2kfr8yeCjHWGI2eMA/ELIvSGyuAeiI4sVyTPEtBa6kwvHc.updtnhohMr4ZkJML04FCMK80:18155::99999:7:::
johndoe@server:~$
I У меня также нет проблем с входом в систему, и он работает с любого компьютера в моей сети.
Глядя на login.defs, у меня, кажется, есть правильная настройка:
# Note: It is recommended to use a value consistent with
# the PAM modules configuration.
#
ENCRYPT_METHOD SHA512
И мой pam_common также, кажется, согласуется с тем, что я видел онлайн:
password requisite pam_pwquality.so retry=3
password [success=2 default=ignore] pam_unix.so obscure sha512 use_authtok try_first_pass
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
password optional pam_gnome_keyring.so
# end of pam-auth-update config
Файл passwd
в каталоге pam.d просто включает в себя common-password
.
Любая помощь будет высоко ценится!