Миграция хэшей NIS yppasswd из крипты в md5 - PullRequest
3 голосов
/ 26 мая 2011

Представьте себе пользовательскую базу данных NIS /var/yp/input-files/passwd, состоящую из старых криптованных хэшей DES. Цель состоит в том, чтобы перенести эту базу данных в md5 или sha-хэши. При изменении пароля с помощью yppasswd он генерируется с использованием того же алгоритма, что и для существующей записи (вероятно, по старым причинам), то есть crypt остается crypt, md5 остается md5 .

Наш текущий план заключается в написании специального сценария смены пароля, заключающего в себя yppasswd. Есть ли более элегантный способ указать yppasswd генерировать измененные пароли в формате md5 по умолчанию?

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Я уже понял:

  1. Загрузите nis-пакет вашего дистрибутива, например. apt-get source nis под Debian.
  2. Редактировать соответствующий yp-tools-2.9 ​​/ src / yppasswd.c
  3. Заменить int has_md5_passwd = 0; на int has_md5_passwd = 1; в начале int main (int argc, char **argv)

yppasswd затем всегда создает хэши md5.

1 голос
/ 26 января 2013

Последние дистрибутивы Linux поддерживают обновления пароля NIS через PAM, что означает, что вы можете использовать локальную программу passwd вместо yppasswd.Это также означает, что вы можете настроить алгоритм хеширования, который по-прежнему (по состоянию на yp-tools 2.12) невозможен с yppasswd.

В вашей системе должен быть файл /etc/pam.d/passwd, который будет содержать илиболее вероятно, обратитесь к другому файлу, который содержит строку вида:

password  sufficient  pam_unix.so md5 nis

Второе поле может отличаться, и в конце могут быть другие параметры, но вы хотите строку password, котораязагружает pam_unix.so, и в нем должен быть хотя бы параметр nis, а также хеш-функция, соответствующая вашему NIS-серверу (md5, sha256 и т. д.)

Возможно, ваш дистрибутив лучшеспособ настройки этого, однако, убедитесь, что ваши изменения не будут перезаписаны автоматическим процессом позже.

В системах, производных от RedHat (включая, по крайней мере, RHEL, CentOS, Scientific Linux и Fedora), вам нужно использовать программу authconfig как минимум с параметром --enablenis.Для приведенного выше сценария с хэшами MD5 будет достаточно следующей командной строки:

authconfig --enablenis --usemd5 --update

В системах Debian (и, возможно, производных Debian, но я не могу проверить в данный момент), правильный способ сделать этоэто похоже на то, что нужно скопировать /usr/share/pam-configs/unix во что-то другое (скажем, /usr/share/pam-configs/nis), отредактировать новый файл, присвоив ему соответствующие настройки и новое имя профиля, затем запустить pam-auth-update, отключить профиль «Аутентификация Unix» и включитьваш новый профиль.

...