Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Игорь Полянский
В данной статье речь пойдет о том, как управлять единой учетной записью пользователя посредством MS Active Directory вне зависимости от того, на какой платформе он работает, будь то Windows или UNIX-подобные системы. Забегая вперед, скажу, что если с Windows-клиентами все ясно, то интеграция с каталогом от Microsoft тем способом, который будет здесь описан, подходит не для всех UNIX-подобных операционных систем. Так уж сложилось – все они разные, да и Active Directory вовсе не идеальная среда для интеграции разнородных систем. Тогда зачем я все это пишу? А за тем, что очень многие организации изначально ориентированы на платформу Windows и в качестве каталога применяют Active Directory, а когда в сети начинает появляться UNIX, то встает вопрос об интеграции, и не всегда хорошие коммерческие решения подходят, либо из-за стоимости, либо в силу других причин. Я изначально рассматривал вариант с ведением второго каталога для UNIX-клиентов на базе OpenLdap, но хотелось все-таки управлять учетными записями из единой точки, а именно из Active Directory, потому что этот каталог широко используется у нас в сети.
Вариант Samba + winbind меня не устраивал, поскольку по роду задач samba вообще не нужна, к тому же это лишние службы на каждой машине, использование которых все-таки не решает проблем с централизованным управлением пользовательскими данными, поэтому это решение мне показалось неразумным и неизящным.
Более всего привлекал вариант с использованием сервера NIS, который входит в продукт, известный как Services For Unix от компании Microsoft и синхронизация записей Active Directory to NIS. Зайдя на microsoft.com в надежде скачать SFU3.5, которая в отличие от предыдущей версии SFU3.0 бесплатна, я набрел на ряд интересных статей, прочитав которые, пошел по другому пути.
Как уже говорилось в начале, не все UNIX-подобные системы могут проходить аутентификацию и запрашивать данные о пользователе в Active Directory описанным здесь способом, а только те, которые умеют работать с PAM и pam-модулями. Как вы, наверное, догадались, я буду описывать способ взаимодействия с ldap-сервером, входящим в Active Directory через модули pam_ldap и nss_ldap.
Итак, начнем. В качестве подопытных будут
выступать MS Windows 2000 Server Standart с установленной Active Directory (в
дальнейшем AD), Linux Manrdake 10.0, Solaris 9 x86, FreeBSD 4.10. Над Windows
2000/XP опыты ставить бессмысленно – все и так работает. Как минимум
понадобится DNS-сервер, который может быть установлен на том же Windows 2000 Server.
Свежеустановленная AD не имеет традиционной ldap-схемы для UNIX: userid, grouid,
login shell, home directory. Нам нужно её расширить, и для этого я воспользуюсь
SFU3.5. Вообще-то существует несколько способов это сделать: вручную создав
ldif-файл с нужной схемой и импортировав его при помощи каких-либо программ
сторонних разработчиков, например такой, как AD4Unix (
Пройдя добровольно-принудительную процедуру
получения .NET Passport, вы сможете бесплатно скачать и использовать SFU3.5 (
regsvr32 с:WINNTsystem32schmmgmt.dll
Для расширения схемы AD достаточно установить только NIS-сервер из состава SFU. Для успешного завершения установки необходимо быть либо членом групп Domain Admins и Schema Admins, либо работать с правами Администратора. После установки будет предложено перегрузить машину. NIS-сервер как таковой не понадобится и его можно остановить и благополучно забыть о нём. В свойствах пользователя, группы, компьютера в Active Directory Users and Computers добавится вкладка UNIX Attributes.
Как видите, теперь у каждого пользователя есть атрибуты, применяемые в UNIX-системах. Первое поле «NIS Domain» будет содержать краткую форму имени нашего домена. Этот параметр нужен для службы NIS, и хотя в нашем случае она не применяется, без нее не активируются другие поля. С остальными полями, я думаю, затруднений не возникнет, может быть, за исключением GID. Прежде чем выбрать из этого поля группу, её надо создать или в свойствах уже имеющейся задать UNIX-атрибуты. Проблема с группами заключается в том, что нельзя задать одно и то же имя для пользователя и группы, а в мире UNIX такой подход весьма распространен. В таком случае можно использовать только численное представление, правда, я сомневаюсь, что это хороший выход из создавшейся ситуации. Ещё потребуется создать учетную запись, которая будет применяться для взаимодействия UNIX-машин с ldap-сервером. Это своего рода дыра в безопасности, поэтому сей аккаунт не должен принадлежать кому-либо и доступ к важным ресурсам ему должен быть запрещен. Тем не менее он должен иметь право на поиск объектов в каталоге. На этом этапе вы готовы управлять единой учетной записью при помощи Active Directory.