Миграция хэшей NIS yppasswd из крипты в md5

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

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

2 ответа

Я понял это сейчас:

  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.

Последние дистрибутивы 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 аутентификация" и включите ваш новый профиль.

Другие вопросы по тегам