Поиск по этому блогу

суббота, 16 января 2010 г.

ADская дорога Linux

ADская дорога Linux

Аутентификация - один из самых важных сервисов в сетевой инфраструктуре. Она фактически стережет все ресурсы в вашей сети. Рабочие станции, приложения, принтеры и файлы не могут быть открыты и использованы без того, что бы система убедилась что человек имеет право на доступ к ним. Обычно для аутентификации в сети используется одна операционная система в интересах единообразия или выбирается наиболее подходящая в данных условиях, даже если она несколько затрудняет работу. Второй вариант, с различными операционными системами, обычно ничем хорошим не кончается - две, три, четыре системы аутентификации не внесут особого порядка в работу сети.
Один из путей упростить опознание пользователя - использовать единый источник для  аутентификации всех систем, будь то Windows, Linux или Unix. Их все можно объединить в одну службу каталогов, например Active Directory или еDirectory. В данной статье опишем как унифицировать Linux и Active Directory. С малыми изменениями данный процесс может быть применен для работы Linux в eDirectory или любом другом LDAP  сервисе.
Для работы используем:
  • Fedora Core 1 с клиентскими OpenLDAP утилитами и библиотеками
  • новый NSS_LDAP (библиотека, написанная на C, которая позволяет использовать сервера директорий LDAP как основной источник алиасов, групп, имен хостов, сетей, протоколов, пользователей, RPC, сервисов и паролей вместо плоских файлов или NIS), включенный в дистрибутив не работает
  • Windows Server 2003 как Active Directory Controller
  • Microsoft's Services for Unix 3.5
В Windows
Что же нам нужно для то, что бы Linux работал в AD?
  1. Входим под админом
  2. Определяем свое положение в дереве. Например: CN=Users,DC=LanRx,DC=com или  CN=Users,DC=LanRxDomain,DC=LanRx,DC=com
  3. Устанавливаем Services for Unix в стандартной установке, security settings оставляем пустым, в username mapping выбираем Local Username Mapping Server и Network Information Services - свой домен. Перегружаемся.
  4. Создаем пользователя, для привязки Linux-а к AD.
В Linux
Перейдем к конфигурации станции Linux для выполнения LDAP аутентификации в Active Directory. Запускаем rpm -Uvh nss_ldap-207-6.i386.rpm для установки NSS_LDAP, затем конфигурируем LDAP клиента для указания на контроллер домена и работы с AD. 
  1. mv /etc/ldap.conf /etc/ldap.orig для бекапа
  2. vi /etc/ldap.conf
  3. Пишем новый конфиг для совмещения POSIX и AD, примерно так:
    host 192.168.100.18
    base cn=Users,dc=lanrx,dc=com
    binddn cn=dirsearch,cn=Users, dc=lanrx,dc=com
    bindpw D1rectory
    scope sub
    ssl no
    nss_base_passwd cn=Users,dc=lanrx,dc=com?sub
    nss_base_shadow cn=Users,dc=lanrx,dc=com?sub
    nss_base_group cn=Users,dc=lanrx,dc=com?sub
    nss_map_objectclass posixAccount user
    nss_map_objectclass shadowAccount user
    nss_map_attribute uid sAMAccountName
    nss_map_attribute uidNumber msSFU30UidNumber
    nss_map_attribute gidNumber msSFU30GidNumber
    nss_map_attribute loginShell msSFU30LoginShell
    nss_map_attribute gecos name
    nss_map_attribute userPassword msSFU30Password
    nss_map_attribute homeDirectory msSFU30HomeDirectory
    nss_map_objectclass posixGroup Group
    nss_map_attribute uniqueMember msSFU30PosixMember
    nss_map_attribute cn cn
    pam_login_attribute sAMAccountName
    pam_filter objectclass=user
    pam_member_attribute msSFU30PosixMember
    pam_groupdn cn=unixusergroup,dc=lanrx,dc=com
    pam_password ad

    Это позволит наладить общение между системами авторизации Windows и Linux.
  4. Редактируем nsswitch.conf и требуемые там строчки таковы:
    shadow: files ldap
    passwd: files ldap
    group: files ldap
  5. Запускаем authconfig для конфигурирования Pluggable Authentication:
    а) NSS информацию получаем из LDAP
    б) отмечаем использование LDAP
    в) в поле "Сервер" указываем адрес сервера, TLS не отмечаем.
    г) в BaseDN указываем положение пользователя в дереве каталогов (пункт 2 из Windows).
    д) для аутентификации выбираем LDAP
    е) выбираем Use Shadow Passwords, Use MD5 Passwords, Use LDAP Authentication.
  6. Эта процедура запишет нам /etc/pam.d/system-auth. Для завершения необходимо туда дописать account sufficient /lib/security/pam_localuser.so - это добавит возможность заходить суперпользователем на рабочую станцию в случае отказа сети.
Управление AD
Естественно, как и вов сех других случаях мы должны сконфигурировать пользователя для работы с системой. Во-первых группу надо переделать в POSIX группу (закладка Unix Attributes - NIS Domain и GID), во-вторых самого пользователя (Unix Settings, домашняя директория, обресетить пароль дабы они синхронизировались), в третьих занести пользователя в группу как Unix-ового пользователя (вернутся к групповым свойствам и добавить пользователя на закладке Unix Attributes). Ну и наконец пользователь на Linux не должен заходить в систему "по другим каналам", например по SSH. На этом весь процесс совмещения Linux и Active Directory фактически заканчивается, приведу только файлы конфигурации, которые могут понадобится в процессе работы: