Перейти к содержанию

CAEman

Members
  • Постов

    49
  • Зарегистрирован

  • Посещение

    Никогда

Весь контент CAEman

  1. Скачал (http://sourceforge.net/projects/pamntlm/) на всякий случай pam_ntlm. Кстати, параллельно нашёл статью (http://www.opennet.ru/base/net/ad_postfix_auth.txt.html), где описывается использование sasl при проверке паролей пользователей на AD, правда для postfix (жаль, что, как Вы утверждаете, нельзя его использовать для логина новых пользователей, а то было бы как раз, что нужно). Проштудировал мануал по mount.cifs, но опции -k не нашёл. Зато нашёл опцию sec=krb5 (или krb5i). При этом он использует не только что получившего по kinit билет пользователя сервера, а запрашивает пароль для залогиненного пользователя Линукса. В принципе, в дальнейшем, когда, я надеюсь, всё-таки удастся заставить Линукс создавать и загружать новых пользователей, идентичных логинищимся пользователям сервера, использование текущего пользователя будет оправданным (только вот лишний запрос пароля, конечно, не хотелось бы). Кстати, раньше, кажется, монтировался ресурс с указанием в виде //server/..., а теперь - //server.domain/..., или я ошибаюсь, и быть такого не могло? Хочу добавить, что у меня в nsswitch.conf в данный момент практически везде стоит winbind. Это не помеха при текущем развитии дел? И, если можно, уточнение по последнему пункту. Значит, мне необходимо создать вручную одного локального пользователя с именем, совпадающим с таковым какого-либо пользователя сервера (меня, например), но без пароля. Затем, исправив текущее содержимое файлов на предоставленное Вами, я пытаюсь залогиниться, введя свои имя регистрации и пароль (с сервера, естественно). В случае удачи происходит стандартная первая загрузка данного пользователя, за исключением того, что ему устанавливается пароль с сервера, и система получает керберосовый билет. В дальнейшем этот пользователь будет уже стандартно логиниться, используя свой профиль, а любой впервые логинищийся на данном комп-е пользователь сервера теперь будет автоматически создаваться (в связи с этим возникает дополнительный вопрос: следует ли настроить керберос, чтобы срок действия билета был, например, многолетним?), получать свой билет и загружаться, а затем, кто не впервые - см. начало этого предложения. Я всё правильно понял?
  2. gogi писал(а) Fri, 30 October 2009 21:51 Вам стоит определиться. Либо аутентификация kerbetos, либо ntlm. Windows сервер поддерживает и то, и другое, Вам достаточно выбрать одну. Если Вы собираетесь монтировать каталоги с ntlm аутентификацией (с указанием логина и пароля), то kerberos можно было и не устанавливать вовсе. Мне совершенно индеферентно, какой конкретно будет использоваться модуль для аутентификации, - лишь бы он (или несколько последовательно задействованных) мог обеспечить решение поставленной задачи (напоминание о которой в, на мой взгляд, недопускающей неоднозначной трактовки форме содержалось в использованной Вами в последнем сообщении цитате, но если Вы обнаружили там какую-либо двусмысленность, то укажите мне, пожалуйста, в чём именно она заключается). Без указания логина и пароля mount.cifs ничего не монтирует даже после непосредственно перед этим полученного с помощью kinit билета. pam_ntlm я не нашёл даже во всех сетевых репозиториях. Единственное, что там, может быть, имеет сходные функции - cyrus-sasl-ntlm (http://asg.web.cmu.edu/sasl/). Вы, случайно, не знаете, можно ли его использовать для поставленной задачи, и, если возможно, то - как конкретно? Цитата: Для входа в систему с керберос аутентификацией в самом простом случае Вам нужно 1. Создать локального пользоватеся с тем же логином, что и в АД и без пароля. 2. Настроить pam_krb5, отредактировав файлы из /etc/pam.d примерно так: ... Входить в систему, естественно, нужно не под рутом, а с тем же логином, который создали в п.1. Под рутом при правильных настройках Вы, конечно, войдете, но керберос здесь не у дел. Пользователей в АД - тысяча. Выбрать можно любого? А остальные после этого смогут зайти под своим логином? Спасибо за предоставленные образцы. Если ответ на последний вопрос будет положительным, то попробую их задействовать.
  3. И для полноты картины: man pam_ntlm No manual entry for pam_ntlm
  4. Решил до переделки исходников винбинда попробовать ограничиться керберосом. Напоминаю решаемую задачу. При аутентификации на локальной лин.машине в случае необнаружения локального пользователя, идентичного введённому, произвести поиск такового на вин.сервере и в случае удачи создать соответствующую локальную постоянную учётную запись и произвести первую загрузку пользователя (с созданием домашней директории с профилем по умолчанию и далее всё как положено...). Имеем следующее. Настроенный керберос, выдающий билеты (и mount.cifs, монтирующий ресурсы сервера по ntlm). Проблемы следующие. Даже при ЗАКОММЕНТИРОВАННЫХ "include"ах в файле login: " #%PAM-1.0 auth requisite pam_nologin.so password requisite pam_pwcheck.so nullok auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securetty.so password [default=ignore success=1] pam_succeed_if.so uid > 999 quiet auth required pam_env.so auth sufficient pam_unix2.so password sufficient pam_unix2.so nullok account sufficient pam_unix2.so session optional pam_unix2.so #auth include common-auth #password include common-password #account include common-account #session include common-session session required pam_loginuid.so session required pam_lastlog.so nowtmp never session required pam_limits.so session optional pam_umask.so session optional pam_mail.so standard session optional pam_ck_connector.so auth optional pam_warn.so password optional pam_warn.so " при изменении стандартного содержания файлов на следующее: common-account-pc - " ... # account sufficient /lib64/security/pam_krb5.so " common-auth-pc - " ... # auth sufficient /lib64/security/pam_krb5.so " common-password-pc - " ... # password sufficient /lib64/security/pam_krb5.so #password required pam_make.so /var/yp " common-session-pc - " ... # session optional /lib64/security/pam_krb5.so " при попытке регистрации даже root'а выдаётся окно со следующим сообщением: "Произошла критическая ошибка. Просмотрите журналы работы KDM или обратитесь к системному администратору" без, естественно, последующего осуществления входа в систему. Что-нибудь можете посоветовать?
  5. А Вы не знаете синтаксис и основные конструкции языка C достаточно хорошо, чтобы подсказать мне, что нужно искать?
  6. Монтирование я собираюсь сделать автоматическое - при регистрации. Если winbind.c содержит только #include "pam_winbind.h", то в pam_winbind.h имеются: #include "../lib/replace/replace.h" #include "system/syslog.h" #include "system/time.h" #include <talloc.h> #include "libwbclient/wbclient.h" #include "localedir.h" #include <iniparser.h> #include <libintl.h> #include <security/pam_appl.h> #include <pam/pam_appl.h> #include <security/pam_modules.h> #include <pam/pam_modules.h> #include <security/_pam_macros.h> #include <pam/_pam_macros.h> #include <security/pam_ext.h> #include "winbind_client.h" По ним всем тоже нужно искать? И какие там ключевые слова могут определять членство (включение) комп-а в домене? Кстати, а /etc/security/pam_winbind.conf в ручном редактировании не нуждается?
  7. Всё монтирует (только с опцией user). Причём, и когда winbind status running, и когда - dead (т.е. и при security=SERVER, и ADS). Теперь можно приступить к изучению C исходников на предмет, как они работают, или ещё что нужно сделать (исправить)?
  8. kinit проходит (билет получаю) Команда "net ads info" выдаёт следующее: LDAP server: ххх.ххх.х.ххх LDAP server name: server.domain Realm: DOMAIN Bind Path: dc=DOMAIN LDAP port: 389 Server time: Sat, 03 Oct 2009 13:24:57 MSD KDC server: ххх.ххх.х.ххх Server time offset: -10 Всё в порядке?
  9. Скачал я самбу. Есть там всякие pam_winbind.h, pam_winbind.c и др. Что конкретно мне теперь нужно делать (пошагово, если можно)?
  10. А какого-нибудь образца или ссылки у Вас не найдётся случайно?
  11. А можно просто создать скрипт, не использующий winbindd, но обеспечивающий при вводе в регистрационном окне графического DM имени и пароля пользователя в случае отсутствия такого зарегистрированного локального пользователя сверку введённых имени и пароля с находящимся на win сервере списком и в случае их наличия и соответсвия, создание такого же (имя и пароль) локального пользователя с настройками по умолчанию для вновь создаваемых и его загрузку? Причём доступ к списку получать, например, при помощи Кербероса. Если нельзя, то в чём конкретно заключается загвоздка?
  12. Т.е., если я Вас правильно понял, можно только путём правки исходников для бинарника winbindd, в котором уже забит этот обязательный ввод машины в домен, и последующей их компиляции? А с помощью создания скриптового модуля (с использованием или без существующего winbindd) никак нельзя добиться желаемого результата?
  13. Но Вы писали-то свой модуль? Или можно ли взять за основу etc\init.d\winbind и, что-то изменив в нём (и что конкретно), добиться нужного результата?
  14. Керберос у меня прекрасно настроился прямо из-под Yast (без всяких дедовских способов, таких как редактирование файлов конфигурации) и выдаёт tgt билет. А вот дальше начинаются проблемы. В и-нете нашёл только описание авторизации через winbind. Через Yast без ввода машины в домен обойтись нельзя, а значит - это "не для нас". Путём ручного редактирования smb.conf, но без последующего запуска "net ads join", winbind после запуска выдаёт в "messages": "initialize_winbindd_cache: clearing cache and re-creating with version number 1 winbindd/winbindd_util.c:init_domain_list(740) Could not fetch our SID - did we join? winbindd/winbindd.c:main(1285) unable to initialize domain list" и выгружается (хотя на некоторых форумах утверждают, что должен работать). Вы писали, что подсоединялись без winbind с помощью "nss модуля": "Необходимо найти (скорее всего придется написать самому) модуль nss для базы passwd, чтобы он вёл локальную базу вендовых пользователей и на запросы выдавал uid,gid,shell,home." Этот модуль настраивается через nsswitch.conf? Среди служб в Yast я ничего связанного с nss, кроме winbind, не нашёл. Не могли бы Вы уточнить название модуля (или привести его содержание), а также более подробно описать его настройку? Заранее благодарю.
  15. А Вы не могли бы тогда дать пошаговое руководство настройки кербероса с кинитом без ввода пароля серверного админ-а?
  16. gogi писал(а) Fri, 11 September 2009 19:54 1. Необходимо найти (скорее всего придется написать самому) модуль nss для базы passwd, чтобы он вёл локальную базу вендовых пользователей и на запросы выдавал uid,gid,shell,home. Если имеете даже небольшие навыки программирования на C, то это вполне решаемая задача. 2. Нужно установить и настроить pam_krb5 или аналогичный модуть для аутентификации в AD. Если он не будет стыковаться с вашим модулем nss, то, возможно, самому написать ещё модуль pam для аутентификации в kerberos,например, на основе вызова kinit. 1. А нельзя ли этот модуль nss (или его содержание) как-нибудь "подцепить" из winbind (там так всё удобно настраивается в yast2, а к программированию я не имею никакого отношения)? 2. Если я Вас правильно понял из последующих сообщений, упомянутой здесь аналогичной альтернативы kerberos'у оказывается нет (без пароля серверного админ-а). В связи с этим возникает вопрос, а вызов kinit не требует ли получения так называемого "билета" с соответствующим вводом пароля серверного админ-а? Уточните, пожалуйста.
  17. Но в моём случае такая аутентификация пройдёт (по LDAP же не проходила, а openLDAP, судя по всему приведённому там нет, или я ошибаюсь?)?
  18. gogi писал(а) Fri, 11 September 2009 19:54 Нужно установить и настроить pam_krb5 или аналогичный модуть для аутентификации в AD. Т.е., если я Вас правильно понял, Вы считаете, что у линуксовских модулей kerberos 5 или аналогичных (Winbind, LDAP?) проблем с аутентификацией на виндовском сервере нет? Проблема только в создании новых пользователей по результатам этой аутентификации? Уточните, пожалуйста.
  19. gogi писал(а) Fri, 11 September 2009 17:57 Если в домене оставлена только kerberos аутентификация, то можно поступить, как я писал в прошлый раз (kinit + mount.cifs -k). Логиниться на юникс машину в этих случаях можно с любым логином (напр. одним для всех, или даже автологином). Однозначно нужно, чтобы у каждого пользователя, зарегистрированного на сервере, создавался свой локальный профиль при первом входе, которым он в дальнейшем мог пользоваться (я не говорю о сохранении его на сервере - пусть на каждой машине будет свой локальный профиль). Всё, что нужно, - это чтобы Linux при вводе в регистрационном окне графического DM имени и пароля пользователя при отсутствии такого зарегистрированного локального пользователя мог сверить введённые имя и пароль с находящимся на win сервере списком и в случае их наличия и соответсвия, создать такого же (имя и пароль) локального пользователя с настройками по умолчанию для вновь создаваемых и его загрузить (с созданием на /home настроенного по умолчанию профиля, например, из /etc/skel). При повторном же входе пользователя (т.е. при уже наличии такого локального пользователя) Linux'у даже не обязательно обращаться к серверу для проверки (с монтированием же сетевых папок, как я понял, проблем нет). Достаточно ли я чётко изложил задачу минимума (т.е. нет ли мест, допускающих неоднозначное толкование)? Решаема ли она в принципе, и если - да, то как конкретно? Если не было опыта практического её решения, то, хотя бы - теоретические соображения (с учётом всех описанных мной ранее попыток и результатов её решения).
  20. При попытке настройки через winbind выдаётся сообщение: This host is not a member of the domain... Join the domain ...? После утвердительного ответа и ввода имени и пароля пользователя сервера (естественно, не администратора): Failed to join domain: Failed to set account flags for machine account (NT_STATUS_ACCESS_DENIDED) При попытке подключения с того же компьютера, но из-под Windows (c тем же именем комп-а): В домене "..." обнаружена учётная запись для данного компьютера. Использовать её? А после утвердительного ответа и ввода пользователя: Не удалось присоединить этот компьютер к домену из-за следующей ошибки: Отказано в доступе (Хотя он уже присоединён через эту Windows, в которой все загружаются нормально.) Что нужно делать?
  21. А по приведённым ниже портам сервера, полученным с помощью PortScan, можно определить, какие там возможны аутентификация и авторизация? 42 open name 53 open domain 88 open kerberos 135 open epmap 139 open netbios-ssn 389 open ldap 445 open microson-ds 464 open kpasswd 593 open hnp-rpc-epmap 636 open ldaps 1025 open blackjack 1027 open unknawn 1034 open activesync 1038 open mtqp 1048 open neod2 3268 open msn-qc 3269 open msn-qc-ssl 3389 open ms-wbt-server Нужно, в принципе, только, чтобы Linux просто после первого ввода в окне регистрации DM имени и пароля серверного пользователя автоматически создавал одноимённого локального пользователя с uid и gid, которые стоят у него по умолчанию для вновь создаваемых локальных пользователей, и имеющего такой же доступ к папкам сервера, как и зарегистрированный на сервере пользователь. Можно ли этого добиться с какой-либо установкой аутентификации + авторизации в Linux'e и без каких-либо изменений на Windows сервере?
  22. На клиентской машине, на которой стояла WinXP32 с аутентификацией с помощью LDAP на Windows сервере, установил openSUSE11.1x86_64. Задача состоит в том, чтобы вход пользователей оставался прежним - с аутентификацией на сервере windows. Дополнительная информация. Нужный windows домен системой обнаруживается, но к LDAP не подключается: "udevd[719]: llnss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server udevd[719]: nss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server udevd[719]: nss_ldap: could not search LDAP server - Server is unavailable udevd[719]: error resolving user 'root, GROUP=': Connection refused" Запустил (под wine) ldp.exe (которая подключается к этому LDAP сервису даже с машин, не подключавшихся к серверу вообще), но она выдаёт: "Error <0x51>: Fail to connect to ...", а в консоли, из-под которой я её запустил: "fixme:winsock:WSALookupServiceBeginW (0x32f8bc 0x00000710 0x32f914) Stub! fixme:advapi:LsaOpenPolicy ((nu),0x32f834,0x00000001,0x32f84c) stub fixme:advapi:LsaClose (0xcafe) stub" С DHCP всё нормально - всё получает с этого win сервера и в и-нет выходит... Что делать для решения данной задачи (не имея админ-ских прав на сервере)? Заранее благодарю.
  23. На клиентской машине, на которой стояла WinXP32 с аутентификацией с помощью LDAP на Windows сервере, установил openSUSE11.1x86_64. Задача состоит в том, чтобы вход пользователей оставался прежним - с аутентификацией на сервере windows. Дополнительная информация. Нужный windows домен системой обнаруживается, но к LDAP не подключается: "udevd[719]: llnss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server udevd[719]: nss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server udevd[719]: nss_ldap: could not search LDAP server - Server is unavailable udevd[719]: error resolving user 'root, GROUP=': Connection refused" Запустил (под wine) ldp.exe (которая подключается к этому LDAP сервису даже с машин, не подключавшихся к серверу вообще), но она выдаёт: "Error <0x51>: Fail to connect to ...", а в консоли, из-под которой я её запустил: "fixme:winsock:WSALookupServiceBeginW (0x32f8bc 0x00000710 0x32f914) Stub! fixme:advapi:LsaOpenPolicy ((nu),0x32f834,0x00000001,0x32f84c) stub fixme:advapi:LsaClose (0xcafe) stub" С DHCP всё нормально - всё получает с этого win сервера и в и-нет выходит... Что делать для решения данной задачи (не имея админ-ских прав на сервере)? Заранее благодарю.
×
×
  • Создать...