Руководство администратора Linux по безопасности

       

Пароли


Во всех UNIX-подобных ОС имеются несколько констант, и одна из них файл /etc/passwd, и как он работает. Для удостоверения пользователя, Вы нуждаетесь (минимально) в некотором подобии файла с соответствием UID username, GID groupname, паролями для пользователей и другой информации. Проблема с этим состоит в том, что каждый нуждается в доступе к passwd файлу! То есть, зашифрованные пароли доступны всем. Раньше было просто: зашифровал пароль и порядок. При входе введенный пароль шифровался и сравнивался с зашифрованной информацией в файле паролей. Если совпал, то это либо пользователь. либо хакер. Теперь, когда мощности систем возросли на порядки, уже можно попробовать шифровать слова, сравнивать их с зашифрованными, и таким способом за разумное время найти пароль. Называется "метод грубой силы" (brute force). Есть несколько решений такой проблемы:

  • Использовать сильный алгоритм шифрования, например MD5. Грабли: может развалить немало программ, если его не ждут.
  • Хранить пароли отдельно. Грабли: система и пользователи все еще должны к ним обращаться, так что программы без соответствующей поддержки работать не будут.

Многие OS применяют первое решение, Linux использует второе, оно получило название теневых паролей. В файле паролей Ваш пароль просто заменен на символ 'x', который сообщает, чтобы система проверила пароль по теневому файлу. Любой может читать файл passwd, но только root имеет доступ для чтения к теневому файлу (то же самое делается и с файлом group). Кажется достаточно простым, но до недавнего времени теневые пароли были кошмаром. Вы были должны перетранслировать все Ваши программы, которые проверяли пароли (login, ftpd, и много-много других. Вы даже не представляете сколько, пока не начнете). Но теперь проблема легко решаема в системах с поддержкой PAM.

Чтобы запустить теневые пароли, Вы должны сделать две вещи. Сначала надо внести правки в файлы паролей, выделив пароли в отдельный файл. Затем пойдет более сложная задача. Вы должны удостовериться, что все Ваши программы имеют поддержку теневых паролей, которая может быть КРАЙНЕ важна.

Поскольку Red Hat имеет PAM, все, что Вы должны сделать, чтобы запустить новую опознавательную схему это, добавить модуль PAM, который понимает ее и отредактировать файл конфигурации для любой программы (скажем, login), чтобы она использовала нужный модуль. Никакого перетранслирования, и минимальное количество суеты, правильно? В Red Hat 6.0 Вы можете указать опцию в течение установки, чтобы выбрать теневые пароли, или Вы можете добавить их позже через утилиты pwconv и grpconv, которые входят в пакет shadow-utils. Большинство других дистрибутивов также имеет поддержку теневых паролей. Иногда пароли даже при использовании затенения могут оказаться в файле /etc/passwd стараниями программ, не поддерживающими затенения. Следите, чтобы такого не было.



Содержание раздела