Я ненавижу PAM, так как он появился.
Как включить отладку PAM в Debian Squeeze на уровне администратора?
Я проверил все ресурсы, которые мне удалось найти. Google, manpages, что угодно. Единственное, что я еще не попробовал (я просто не осмелился упомянуть, что я ненавижу PAM?), Копаться в источнике библиотеки PAM.
Я пытался найти решение для Google, ничего. Что я нашел до сих пор:
http://www.bitbull.ch/wiki/index.php/Pam_debugging_funktion ( /etc/pam_debug
) и
http://nixdoc.net/man-pages/HP-UX/man4/pam.conf.4.html ( debug
опция для записей PAM в /etc/pam.d/
)
Нет, не работает. Нет выхода PAM, ничего, абсолютная тишина.
В поисках решения я даже перешел по ссылкам на Пэм, которые находятся в Германии. Ну, да, возможно, во всех этих миллиардах хитов может быть скрыта зацепка, но пристрелите меня, я умру, пока не обнаружу.
Отдых для вас:
Какая проблема у меня была?
После обновления до Debian Squeeze что-то стало странным (ну, эй, когда-то это было что-то вроде того, что было над Etch ... ах, да, Вуди). Так что, вероятно, это не вина Debian, просто долгожданная испорченная установка. У меня сразу возникло впечатление, что это связано с PAM, но я действительно не знал, что происходит. Я был полностью в темноте, остался один, беспомощный, как ребенок, YKWIM. Некоторые логины ssh работали, некоторые нет. Это было довольно забавно. Никаких подсказок ssh -v
, никаких подсказок /var/log/*
, ничего. Просто «аутентификация завершилась успешно» или «аутентификация завершилась неудачей», иногда один и тот же пользователь, входящий в систему, параллельно преуспевал в одном сеансе и одновременно в другом. И ничего, что вы действительно можете получить.
После раскопок поездов других вариантов я смог выяснить. Существует nullok
и nullok_secure
специальная версия Debian. Что-то напортачило /etc/securetty
и в зависимости от tty
(что несколько случайно) входа было отклонено или нет. ДЕЙСТВИТЕЛЬНО Ницца, фу!
Исправить было легко, и теперь все снова хорошо.
Однако это оставило меня с вопросом, как отладить такой беспорядок в будущем. Это не первый раз, когда PAM сводит меня с ума. Поэтому я хотел бы увидеть окончательное решение. Финал, как в «решено», а не финал, как в «Армагеддоне». Спасибо.
Ах, кстати, это снова укрепило мою веру в то, что хорошо ненавидеть PAM с тех пор, как он появился. Я упоминал, что я делаю?
passwd -d user
а затем попробуйте выполнить команду sshuser
. Вывод «сбой пароля» в системном журнале никак не связан с отладкой PAM, поэтому PAM хранит молчание.PermitEmptyPasswords yes
в/etc/ssh/sshd_config
конечно, то PAM выходов что - то вродеpam_unix(sshd:auth): authentication failure
, но до сих пор ничего для отладки канала , ни какого - либо намека какого PAM модуль вызвало сбой./var/log/auth.log
файл? Недавно я обнаружил, что в Ubuntu он есть, и регистрирует там все, что связано с pam. Ни один из ответов здесь не помог мне, но поиск/var/log/auth.log
помог мне решить мою проблему./var/log/auth.log
естьsyslog
. Проблема не в журнале, а в отладке. Если, например, стек PAM выходит из строя рано, вы ничего не увидите, потому что модули, выводящие данные,syslog
вообще не вызываются. Или что-то терпит неудачу, а что-то нет, но в обоих журналах записаны одни и те же строки. Правильно, что, я думаю, 95% всех случаев можно решить, просматривая обычные журналы, а 5% - нет, поскольку просто нет никаких следов того, что действительно происходит за кулисами.Ответы:
Несколько вещей для вас, чтобы попробовать:
Вы включили запись отладочных сообщений в системный журнал?
Добавьте следующую строку:
Выход с
:wq!
.Вы можете включить отладку для всех модулей следующим образом:
ИЛИ вы можете включить отладку только для интересующих вас модулей, добавив «debug» в конец соответствующих строк
/etc/pam.d/system-auth
или других/etc/pam.d/*
файлов:Тогда отладочные сообщения должны начать появляться в
/var/log/debug.log
. Надеюсь, что это помогает вам!источник
nullok
особенное, что просто этот модуль не нуждается в отладке. Позвольте мне сказать это следующими словами: отсутствие отладки в таком важном фрагменте кода - страшный кошмар, чем просто преследование Фредди Крюгера.PAM
немой. Так что пока я принимаю это как «решение», пока неPAM
капитулирует. Спасибо.По крайней мере, на CentOS 6.4,
/etc/pam_debug
НЕ используется.Если модуль pam_warn.so установлен, вы можете получить некоторые данные журнала следующим образом:
и т.д. Этот модуль гарантирует, что он не будет вмешиваться в процесс аутентификации в любой момент, но он регистрирует значимые вещи через системный журнал.
Обновить
Изучив код и выполнив некоторую компиляцию, я обнаружил, что (1) возможно включить этот режим отладки через источник, и (2) патч RHEL делает эту функцию почти неиспользуемой (по крайней мере, модуль pam_unix) и (3) это вероятно, лучше все-таки исправить код.
Чтобы заставить это работать для RHEL, вы можете получить Linux-PAM ... src.rpm (для любой версии 1.1) и изменить файл спецификации следующим образом:
Найдите строку, начинающуюся с
% configure \
и после этого добавьте --enable-debug \
Затем соберите rpm и установите (с силой, чтобы перезаписать существующие пакеты). Теперь создайте файл /var/run/pam-debug.log:
Если файл не существует, выходные данные отладки будут отправлены в stderr.
Эта отправка в stderr, на мой взгляд, глупа и является причиной конфликта патчей. Вы можете изменить это поведение, перейдя в файл libpam / include / security / _pam_macros.h и заменив 4 строки
logfile = stderr;
с
При сборке вы получите предупреждения о недостижимых утверждениях, но их можно игнорировать. Вы можете внести это изменение в сценарий sed (и поместить его в раздел% prep RPM после исправлений) ...
Если вы сделаете этот маленький патч, вы можете восстановить% patch2, так как он снова должен работать правильно.
источник
Мне довелось потратить несколько часов, пытаясь выяснить, как включить журналы отладки в PAM на CentOS 6.4. Хотя этот вопрос для Debian, я все же напишу, как это сделать в CentOS, в надежде, что другие люди не должны тратить время, которое у меня уже есть.
Как в конечном итоге оказалось, включить журналы отладки в
pam
пакете CentOS несложно. Сложность связана с тем, что он включает в себя перекомпиляцию пакета. Итак, сначала найдите SRPM (напримерpam-1.1.1-13.el6.src.rpm
) отсюда . Люди, которые не знают о компиляции пакетов из SRPM, могут обратиться к инструкциям по настройке среды сборки RPM .Вот главный шаг. Откройте файл спецификации и добавьте
--enable-debug
его в%build
разделconfigure
вызова. Рекомпилированные! Переустановите вновь созданный пакет. Наконец, создайте файл, в который будут записываться журналы отладки.Если вы не создадите файл, на терминале будет пролетать множество журналов, что может быть не очень полезно.
источник
Debian и Ubuntu (и, возможно, другие дистрибутивы) имеют специальный файл журнала, в который записываются все выходные данные pam:
/var/log/auth.log
Я полтора дня боролся с проблемой, связанной с pam, наконец-то узнал об этом файле журнала и спас себя от безумия.
Вот пример содержимого этого файла, когда все идет не так, как планировалось.
Вот как это выглядит, когда работает:
Обратите внимание, что ни одна из других возможностей включения ведения журнала отладки pam не работала для меня.
источник
pam_*
самом деле, PAM реализованы. Все равно строки выводятся инструментами, независимо от того, используют они PAM или нет. Это означает: если PAM отрицает, по какой-либо причине, действительно трудно найти реальную причину, если она находится в PAM. Линии, не относящиеся к PAM, не являются полезными (поскольку проблема заключается в PAM), и линии PAM также часто оказываются бесполезными, поскольку они часто слишком тихие. При наличии многих модулей PAM вам действительно трудно угадать, какой модуль может быть виновником, не говоря уже о том, чтобы выяснить, как включить отладку, поскольку это отличается для каждого из них.Не могли бы вы немного рассказать об этом?
За страницу безопасности securetty :
Поведение, которое вы описываете, очень похоже на то, что securetty работает нормально (при условии, что вы действительно вошли в систему как root).
Здесь также могут быть ограничения, не связанные с PAM, так что это может помочь дать представление о том, как вы
/etc/ssh/sshd_config
выглядите.В частности, из вашего описания:
sshd_config
:PermitRootLogin no
sshd_config
вAllowGroups
илиAllowUsers
. Пример строки может выглядеть так:AllowGroups users admins
Конечно, вполне возможно, что PAM является частью проблемы, но ваши основные «симптомы» звучат для меня так, будто их можно объяснить другими способами.
источник
Аскет ... Мне очень понравился твой пост :) Я боролся с такими вещами в течение последних 15 часов ... (хотя, возможно, у меня был 30-минутный перерыв)
Каким-то образом я получил это, выполнив все то, что вы сделали, что означает, что у меня есть / etc / pam_debug и отладка записей pam. НО, как и в моем случае, с которым я боролся
pam_mysql
, мне пришлось поставить еще одинverbose=1
послеdebug
на мои записи Пэм:Это "sqllog" просто для записи логов в БД.
Так что, может быть, это поможет вам немного.
Мы все ненавидим PAM. Удачи!
источник
pam_unix(sshd:auth): unrecognized option [verbose=1]