8

Я использую Fedora 19. По умолчанию он настроен с помощью pam, чтобы отключить неверные пароли, такие как "пароль". Это хорошо. Попытки изменить это значение по умолчанию приводят в бешенство. Это коробка для тестирования внутренних вещей, не подключенных к интернету, ни к какой машине. Плохие пароли облегчают процесс тестирования. Альтернативно, как, черт возьми, вы вообще меняете требования к паролю ??

системы аутентификации

man pam_cracklib есть несколько замечательных примеров установки различных требований к паролю. Поэтому я открываю /etc/pam.d/system-auth , где вы видите такие строки:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* Headdesk *. По моему опыту, подобные предупреждения означают, что ваши изменения стираются каждый раз, когда менеджер пакетов запускается и / или случайно.

AuthConfig

Так что ... authconfig - это следующий шаг. Я ищу все файлы с именем "authconfig". /etc/sysconfig/authconfig выглядит многообещающе. И нет никакого предупреждения наверху о разрушении моих правок по прихоти. Я нахожу эту строку USEPWQUALITY=yes и меняю ее. Теперь я бегу:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

WTF. Итак, давайте немного подробнее прочитаем man authconfig . Ой! Похоже, этот файл не читается authconfig, он изменился . Итак .... как вы настраиваете authconfig? В руководстве предлагается system-config-authentication , которую я устанавливаю, и она не содержит ничего похожего на флажок для отключения pam_pwquality. Следующее предложение из руководства - параметры командной строки. Большой! Я люблю инструменты командной строки. Только ни один из задокументированных параметров командной строки не отключает pam_pwquality.

pwquality.conf

Благодаря ответ Ааронова, я узнал , что пару лет назад фетровая шляпа решила сделать /etc/security/pwquality.conf место для настройки требований к качеству паролей. К сожалению, как описано в файле и в man 5 pwquality.conf , там (1) нет способа отключить проверку словаря, а (2) не может установить допустимую длину пароля ниже шести.

5 ответов5

4

После беглого взгляда на исходный код в /usr/sbin/authconfig и /usr/share/authconfig/authinfo.py:

  • Страница man неполная, полный список опций, принятых скриптом, находится в authconfig --help
  • Все может быть переопределено в командной строке (даже параметры /etc/security/pwquality.conf , например, минимальная длина пароля), кроме самого pwquality. ИМХО, это ошибка и о ней нужно сообщать.
  • Из authinfo.py 2489 и 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...
    

    Сначала readSysconfig читает /etc/sysconfig/authconfig ; тогда то, что вы помещаете туда, перезаписывается readPAM с тем, что находится в /etc/pam.d/* (особенно password_auth* и system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)
    

TL; DR: для параметров, которые не переопределяются (или не могут быть), параметры берутся из текущей конфигурации, включая файлы, помеченные как автоматически сгенерированные. Чтобы заставить это работать, отредактируйте /etc/sysconfig/authconfig и удалите строки, показанные как grep -E pwq\|crack /etc/pam.d/*


Редактировать: есть вторая ошибка, из-за которой приведенный выше совет все еще не работает: строка 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

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

1

Он выглядит настраиваемым через /etc/security/pwquality.conf

Источник: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

1

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

1

Вы можете взять ручное управление вашим файлом system-auth . Создайте новый файл (вы можете начать с копирования system-auth-ac) и измените символическую ссылку system-auth чтобы она указывала на новый файл.

Это делает вашу ответственность за обновление этой части вашей конфигурации PAM, так как authconfig больше не будет касаться символической ссылки или файла, на который она указывает. Однако authconfig по-прежнему будет обновлять файл system-auth-ac , поэтому при необходимости вы можете продолжать использовать его в качестве справочного материала. С некоторой сообразительностью вы даже сможете include ее в свою локальную копию, но как это сделать выходит за рамки этого вопроса.

Вы также должны проверить другие символические ссылки, такие как password-auth . Возможно, вам придется дать им такое же лечение.


Из authconfig(8) разделе Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Таким образом, если system-auth - это файл, authconfig изменяет его так, чтобы он ссылался на system-auth-ac . Но если system-auth является символической ссылкой, то authconfig оставляет ее в покое.

0

Я только что нашел этот вопрос на основе соответствующего поиска, и я думаю, что у меня есть для вас ответ.

Fedora создает символические ссылки на созданные файлы authconfig. то есть. system-auth ссылки на system-auth-ac . Если вы делаете system-auth своим собственным файлом, то теоретически любые будущие изменения, сделанные auth-config все равно будут обновлять system-auth-ac но оставят ваши измененные файлы без изменений.

Это на самом деле довольно элегантно, но я обнаружил это, только задаваясь вопросом, что делают файлы *-ac .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .