IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Open source | Linux  >

Замена Active Directory: Часть 2. Установка и настройка Mandriva Directory Server

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Евгений Крестников, журналист, независимый писатель

20.10.2009

Для организации службы каталогов и контроллера доменов на сервере, работающем под управлением GNU/Linux, часто используют связку Samba и OpenLDAP

Для организации службы каталогов и контроллера доменов на сервере, работающем под управлением GNU/Linux, часто используют связку Samba и OpenLDAP. Однако у этого варианта есть два существенных недостатка – сложность настройки и неудобное администрирование. Один из возможных способов решения данной проблемы – установка Mandriva Directory Server. В предыдущей обзорной статье мы уже упоминали MDS; теперь, пожалуй, самое время рассказать подробнее об этом замечательном программном продукте. Простой в использовании инструмент управления службой каталогов LDAP позволяет администрировать пользователей, DNS и DHCP-серверы (ISC DHCP и BIND), а также почтовые и прокси-серверы (PostFix и Squid/Squidguard). Если говорить об архитектуре MDS, стоит выделить два основных блока: Web-интерфейс администратора (MMC web interface) и модуль управления сервисами с плагинами, написанными на Python (MMC Agent). MMC web interface взаимодействует с MMC Agent через XML-RPC. Агент управляет сервисами и работает с каталогом LDAP (поддерживаются OpenLDAP и FDS). Сервисы локальной сети должны быть настроены для работы со службой каталогов. Архитектура MDS подробно проиллюстрирована на рисунке 1.


Рисунок 1
Рисунок 1

Шаги установки

В этой статье мы опишем процесс установки и настройки OpenLDAP и Samba с использованием инструмента администрирования Mandriva Directory Server.

Вам будет необходимо проделать несколько шагов:

  • установить MDS;
  • настроить OpenLDAP;
  • настроить Samba;
  • настроить и запустить MMC-агент;
  • настроить BIND и DHCP.

После этого вы получите работоспособный сервер каталогов, контроллер домена, а также интегрированные с ними вспомогательные службы и средства администрирования.



В начало


Устанавливаем MDS

Для установки MDS необходим Mandriva Linux версии не ниже чем 2008.1 или Corporate Server 4. Первым шагом будет подключение репозиториев при помощи следующей команды:

  • для архитектуры i586:
    # Для Mandriva 2009.0 (MDS 2.3.2)
    urpmi.addmedia Community_Main 
    	ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/
    	official/2009.0/i586/media/main/backports/
    # Для Mandriva 2008.1 (MDS 2.3.1)
    urpmi.addmedia Community_Main 
    	ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/
    	official/2008.1/i586/media/main/backports/
    

  • для 64-разрядных архитектур:
    # Для Mandriva 2009.0 (MDS 2.3.2)
    urpmi.addmedia Community_Main 
    	ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/
    	official/2009.0/x86_64/media/main/backports/
    # Для Mandriva 2008.1 (MDS 2.3.1)
    urpmi.addmedia Community_Main 
    	ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/
    	official/2008.1/x86_64/media/main/backports/
    

  • Corporate Server 4, i586:
    urpmi.addmedia mds http://mds.mandriva.org/pub/mds/RPM/i586
    

  • Corporate Server 4, x86-64:
    urpmi.addmedia mds http://mds.mandriva.org/pub/mds/RPM/x86_64
    

Затем устанавливаем необходимые пакеты:

# urpmi mmc-web-base mmc-web-mail mmc-web-network 
	mmc-web-proxy mmc-web-samba mmc-agent python-mmc-base 
	python-mmc-mail python-mmc-network python-mmc-proxy 
	python-mmc-samba 

Менеджер пакетов сам разрешает зависимости и инсталлирует все необходимое дополнительное ПО.

Мы уже говорили, что на сайте http://mds.mandriva.org/ доступны бинарные сборки MDS для Debian GNU/Linux. Для их установки необходимо подключить дополнительный репозиторий. Внесите следующую строку в файл /etc/apt/sources.list:

deb http://mds.mandriva.org/pub/mds/debian etch main (для Debian Etch),

или

deb http://mds.mandriva.org/pub/mds/debian lenny main (для Debian Lenny).

Установить пакеты можно с помощью команды:

# apt-get install mmc-web-base mmc-web-mail 
	mmc-web-network mmc-web-proxy mmc-web-samba 
	mmc-agent python-mmc-base python-mmc-mail 
	python-mmc-network python-mmc-proxy python-mmc-samba

На самом деле список поддерживаемых дистрибутивов гораздо шире – можно установить MDS из исходных текстов практически на любом дистрибутиве Linux. Подробные сведения по установке доступны на сайте http://mds.mandriva.org/.



В начало


Настраиваем OpenLDAP

Больше всего проблем при организации службы каталогов и доменного контроллера системным администраторам доставляет OpenLDAP. В Mandriva Linux процесс его настройки сильно упрощен. Для начала вам необходимо установить пакет openldap-mandriva-dit-package:

# urpmi openldap-mandriva-dit 

Затем нужно запустить скрипт интерактивной настройки – /usr/share/openldap/scripts/mandriva-dit-setup.sh. Программа задаст вам несколько простых вопросов, перезапустит slapd и внесет в каталог LDAP базовые данные (вывод скрипта mandriva-dit-setup.sh приведен ниже):

Please enter your DNS domain name [localdomain]:
mandriva.com

Administrator account

The administrator account for this directory is
uid=LDAP Admin,ou=System Accounts,dc=mandriva,dc=com

Please choose a password for this account:
New password:[type password]
Re-enter new password:[type password]
   
   
Summary
=======

Domain: mandriva.com
LDAP suffix: dc=mandriva,dc=com
Administrator: uid=LDAP Admin,ou=System Accounts,dc=mandriva,dc=com

Confirm? (Y/n)
Y
config file testing succeeded
Stopping ldap service
Finished, starting ldap service
Running /usr/bin/db_recover on /var/lib/ldap
remove /var/lib/ldap/alock

Starting slapd (ldap + ldaps): [ OK ]

Далее необходимо настроить OpenLDAP для работы с Mandriva Directory Server. Вначале копируем дополнительные схемы в каталог /etc/openldap/schema:

# cd /usr/share/doc/python-mmc-base*/contrib/ldap/
# cp dhcp.schema dnszone.schema mail.schema mmc.schema /etc/openldap/schema/

Затем прописываем скопированные схемы в конфигурационный файл /etc/openldap/schema/local.schema, добавляя туда следующие строки:

include /etc/openldap/schema/mmc.schema
include /etc/openldap/schema/mail.schema
include /etc/openldap/schema/dnszone.schema
include /etc/openldap/schema/dhcp.schema

Во избежание конфликта документация по MDS рекомендует закомментировать или удалить следующие строки в файле /etc/openldap/slapd.conf:

#include /usr/share/openldap/schema/misc.schema
#include /usr/share/openldap/schema/kolab.schema
#include /usr/share/openldap/schema/dnszone.schema
#include /usr/share/openldap/schema/dhcp.schema

Аналогично поступим с файлом /etc/openldap/mandriva-dit-access.conf, в котором необходимо удалить или закомментировать строки:

#access to dn.one="ou=People,dc=mandriva,dc=com"
#        attrs=@inetLocalMailRecipient,mail
#        by group.exact="cn=MTA Admins,ou=System Groups,dc=mandriva,dc=com" write
#        by * read

Теперь создадим хеш пароля и запишем его в файл /etc/ldap/slapd.conf в строку, начинающуюся с выражения «rootpw»:

$ slappasswd -s example
{SSHA}na/xgxWhfSNJA1TGUNPHfPPDZOMq8o7Z

Строки в файле /etc/ldap/slapd.conf будут выглядеть следующим образом (в вашем случае хеш пароля будет другим):

rootdn "cn=manager,dc=mandriva,dc=com"
rootpw {SSHA}na/xgxWhfSNJA1TGUNPHfPPDZOMq8o7Z

Кроме того, в конец файла /etc/ldap/ldap.conf необходимо добавить дополнительные директивы:

host 127.0.0.1
base dc=mandriva,dc=com

На этом настройка OpenLDAP завершена. Нам остается только проверить конфигурацию при помощи утилиты slaptest. Если она выдает результат: «config file testing succeeded», можно переходить к следующему шагу – перезапуску сервера LDAP командой service ldap restart и настройке сервера Samba.

Стоит отметить, что для дистрибутивов, отличных от Mandriva, схема настройки OpenLDAP будет несколько сложнее. Рекомендуем обратиться к соответствующему разделу документации по вашему дистрибутиву, а также к документации по Mandriva Directory Server, доступной на сайте проекта.



В начало


Настраиваем Samba

Сначала остановите сервис при помощи команды «/etc/init.d/smb stop». Затем настройте Samba для работы в качестве первичного контроллера домена (PDC). Ниже приводится пример конфигурационного файла /etc/samba/smb.conf. Если вы используете отличный от Mandriva Linux дистрибутив, для настройки Samba можно взять за основу пример, расположенный в каталоге /usr/share/doc/python-mmc-base/contrib/samba/.

 [global]
  workgroup = Mandriva
  netbiosname = MDS
  preferred master = yes
  os level = 65
  wins support = yes
  enable privileges = yes
  timeserver = yes
  log level = 3
  null passwords = yes
  security = user
  name resolve order = bcast host
  domain logons = yes
  domain master = yes
  printing = cups
  printcap name = cups
  logon path = \\%N\profiles\%U
  logon script = logon.bat
  logon drive = H:
  map acl inherit = yes
  nt acl support = yes
  passdb backend = ldapsam:ldap://127.0.0.1/
  obey pam restrictions = no
  ldap admin dn = cn=manager,dc=mandriva,dc=com
  ldap suffix = dc=mandriva,dc=com
  ldap group suffix = ou=Group
  ldap user suffix = ou=People
  ldap machine suffix = ou=Hosts
  ldap idmap suffix = ou=Idmap
  ldap passwd sync = yes
  # ldap delete dn = yes
  passwd program = /usr/sbin/smbldap-passwd -u %u
  passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
  add user script = /usr/sbin/smbldap-useradd -m "%u"
  add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
  set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
  add group script = /usr/sbin/ambldap-groupadd -p "%g"
  add machine script = /usr/lib/mmc/add_machine_script '%u'
  delete user script = /usr/sbin/smbldap-userdel "%u"
  delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
  delete group script = /usr/sbin/smbldap-groupdel "%g"

  [homes]
  comment = Home directories
  browseable = no
  writeable = yes
  create mask = 0700
  directory mask = 0700
  hide files = /Maildir/

  [public]
  comment = Public share
  path = /home/samba/shares/public
  browseable = yes
  public = yes
  writeable = yes

  [archives]
  comment = Backup share
  path = /home/samba/archives
  browseable = yes
  public = no
  writeable = no

  [printers]
  comment = Printers
  path = /tmp
  browseable = no
  public = yes
  guest ok = yes
  writeable = no
  printable = yes

  [print$]
  comment = Drivers
  path = /var/lib/samba/printers
  browseable = yes
  guest ok = yes
  read only = yes
  write list = Administrator,root,@lpadmin

  [netlogon]
  path = /home/samba/netlogon
  public = yes
  writeable = yes
  browseable = no

  [profiles]
  path = /home/samba/profiles
  writeable = yes
  create mask = 0700
  directory mask = 0700
  browseable = no
  hide files = /desktop.ini/ntuser.ini/NTUSER.*/
  
  [partage]
  comment = aucun
  path = /home/samba/partage
  browseable = yes
  public = no
  writeable = yes

После настройки необходимо проверить конфигурационный файл при помощи команды testparm (пример ее работы см. ниже).

# testparm
Load smb config files from /etc/samba/smb.conf
...
Processing section "[partage]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

Если проверка прошла успешно, переходим к созданию необходимых каталогов и определения прав доступа к ним:

# mkdir -p /home/samba/shares/public/
# mkdir /home/samba/netlogon/
# mkdir /home/samba/profiles/
# mkdir /home/samba/partage/
# mkdir /home/samba/archives/
# chown -R :"Domain Users" /home/samba/
# chmod 777 /var/spool/samba/ /home/samba/shares/public/
# chmod 755 /home/samba/netlogon/
# chmod 770 /home/samba/profiles/ /home/samba/partage/
# chmod 700 /home/samba/archives/

Важный момент, о котором не следует забывать – файловая система, где хранятся ресурсы Samba, должна поддерживать POSIX ACL. Это необходимо для корректного взаимодействия вашего контроллера домена с рабочими станциями под управлением MS Windows. Если вы используете XFS, списки управления доступом разрешены по умолчанию. Для ext3 их поддержку нужно включить в файле /etc/fstab.

Далее необходимо разрешить сервису Samba чтение базы LDAP:

# smbpasswd -w example 
Setting stored password for "cn=manager,dc=mandriva,dc=com" in secrets.tdb

После этого можно будет получить SID для вашего домена:

# net getlocalsid mandriva.com

В нашем случае SID="S-1-5-21-128599351-419866736-2079179792", у вас он будет другим.

Теперь вносим записи домена Samba в базу LDAP. Для этого необходимо установить и настроить пакет smbldap-tools:

urpmi smbldap-tools

Правим конфигурационный файл smbldap_bind.conf , расположенный в каталоге /etc/smbldap-tools/:

  slaveDN="cn=admin,dc=mandriva,dc=com"
  slavePw="example"
  masterDN="cn=admin,dc=mandriva,dc=com"
  masterPw="example"

Затем редактируем файл smbldap.conf:

  SID="S-1-5-21-128599351-419866736-2079179792"
  sambaDomain="MANDRIVA"
  ldapTLS="0"
  suffix="dc=mandriva,dc=com
  sambaUnixIdPooldn="sambaDomainName=MANDRIVA,${suffix}"
  #defaultMaxPasswordAge="45"
  userSmbHome=""
  userProfile=""
  userHomeDrive=""

Чтобы внести записи домена в каталог LDAP, запустите smbldap-populate со следующими параметрами:

# smbldap-populate -m 512 -a administrator

И последнее, что необходимо сделать – настройка диспетчера службы имен NSS (Name Service Switch). Редактируем файл /etc/nsswitch.conf согласно приведенному примеру:

  passwd: files ldap
  shadow: files ldap
  group: files ldap
   
  hosts: files dns
   
  bootparams: files
  ethers: files
  netmasks: files
  networks: files
  protocols: files
  rpc: files
  services: files
  netgroup: files
  publickey: files
  automount: files
  aliases: files

На этом настройка доменного контроллера завершена. Вам остается только перезапустить samba и ldap. Затем необходимо дать право группе Domain Admins добавлять машины в домен:

net -U Administrator rpc rights grant 'MANDRIVA\Domain Admins' SeMachineAccountPrivilege

Если команда отработала без ошибок, настройка домена прошла успешно. Теперь нам осталось сконфигурировать вспомогательные службы и средства администрирования.



В начало


Настраиваем Mandriva Management Console

Настройка MMC очень проста. Основные параметры программы хранятся в файле /etc/mmc/agent/config.ini, параметры плагинов – в файлах /etc/mmc/ plugins/имя_плагина.ini. По умолчанию MMC-агент принимает входящие соединения по протоколу XMLRPC, инкапсулированному в HTTPS (слушается localhost:7080).

Все, что вам необходимо сделать на этом этапе – прописать параметры доступа к каталогу LDAP в файл /etc/mmc/plugins/base.ini:

baseDN = dc=mandriva,dc=com
rootName = cn=manager, %(basedn)s
password = example

Прочие плагины, находящиеся в директории /etc/mmc/plugins/, можно отключить, если они не нужны (установить параметр disable=1 в соответствующих конфигурационных файлах).

Теперь можно запустить MMC-агент:

/etc/init.d/mmc-agent start

Когда агент начинает работать, он ищет все установленные плагины и пытается их активизировать. Каждый плагин имеет собственную функцию тестирования для проверки его работоспособности. Например, если плагин «base» не может связаться с сервером LDAP, он не будет активизирован. Если SAMBA-scheme недоступна в LDAP, не запустится плагин «Samba» и т.д.

MMC-агент всегда пытается включить плагин «base» в первую очередь. Если этот плагин не может быть активизирован, MMC-агент работать не будет.



В начало


Настройка MMC web-interface

Web-интерфейс MMC написан на PHP4. Для его работы необходимо установить сервер Apache2 с поддержкой PHP4 (или PHP5). Кроме того вам понадобится модуль PHP XML-RPC. Приводить инструкцию по настройке Apache мы не будем – этой информации в сети более чем достаточно. Отметим только, что для работы консоли администратора необходимо создать SSL-сертификат:

# mkdir /etc/apache2/ssl/
# openssl req -new -x509 -keyout /etc/apache2/ssl/server.key 
	-out /etc/apache2/ssl/server.crt -days 365 -nodes

В процессе создания сертификата вам придется ответить на несколько вопросов. Затем необходимо изменить права доступа к файлу сертификата командой:

chmod 600 /etc/apache2/ssl/server.key

После запуска MMC-агента и Web-сервера Apache все действия по настройке домена можно производить через браузер (по умолчанию Web-интерфейс доступен по ссылке http://localhost/mmc; если нужен доступ к Web-интерфейсу с других машин локальной сети, отредактируйте конфигурационные файлы Apache). Вы сможете войти в Web-интерфейс MMC, используя логин «root» с администраторским паролем LDAP. Обращаю ваше внимание на то, что отключенные плагины не будут отображаться в консоли администрирования. Внешний вид консоли показан на рисунке 2.


Рисунок 2
Рисунок 2


В начало


Настраиваем BIND и DHCP

Поскольку настройка сервисов локальной сети, таких как PostFix или Squid, не является предметом нашей статьи, заострять внимание на этой теме не будем. Но кратко рассказать о настройке DNS- и DHCP-сервера необходимо, так как эти сервисы имеют самое непосредственное отношение к службе каталогов и контроллеру домена. Для управления зонами DNS, MMC-агент создает файлы в директории конфигурации BIND (/etc/bind). Они должны быть включены в основной конфигурационный файл BIND и загружаться из каталога LDAP. Для этого достаточно включить в named.conf файл /etc/bind/named.conf.ldap при помощи директивы include.

Стоит отметить, что в большинстве дистрибутивов Linux, BIND запускается раньше OpenLDAP при загрузке системы. Чтобы избежать связанных с этим ошибок, потребуется изменить порядок запуска скриптов во время старта системы.

Ниже приведен пример, как это можно сделать для дистрибутива Debian:

# update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6

DHCP-сервер должен знать о том, как загрузить конфигурацию из каталога LDAP. Вот типичный пример файла dhcpd.conf (обычно этот файл находится в каталоге /etc/dhcp3/):

ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=mandriva, dc=com";
ldap-password "secret";
ldap-base-dn "dc=mandriva, dc=com";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";

Кроме того, мы уже говорили о новых схемах LDAP, которые должны быть импортированы в ваш каталог. Для сервисов DNS и DHCP потребуются dnszone.schema и dhcp.schema. В файл slapd.conf необходимо добавить следующие строки:

index zoneName,relativeDomainName eq 
index dhcpHWAddress,dhcpClassData eq



В начало


Hello, World!

Итак, общими усилиями мы закончили настройку службы каталогов, доменного контроллера, дополнительных сервисов и средств администрирования домена. Самое время проверить работоспособность системы. Для этого рекомендую включить в домен компьютер под управлением Windows XP.

Сделать это очень просто:

  • заведите пользователя домена через Web-интерфейс MMC;
  • подключите к локальной сети Windows-машину (ip-адрес получаем автоматически);
  • включите компьютер в домен (напоминаю, что делать это может только Administrator);
  • перезагрузите компьютер и войдите в систему как пользователь домена.

Получилось? Поздравляю! Теперь ваш домен полностью готов к эксплуатации.

В следующих статьях мы рассмотрим более сложные вопросы, связанные с использованием MDS, а также проговорим о централизованном управлении рабочими станциями через службу каталогов.



Об авторе

Евгений Крестников cемь лет занимался прикладным программированием, десять -- администрированием UNIX-систем. В возрасте 34-х лет решил сменить "корпоративный рай" на перо свободного журналиста. В настоящее время сотрудничает с различными печатными изданиями, такими как газета "Коммерсантъ" и журнал "Linux Format Russia", а также с известными российскими порталами: Ferra.ru, Nomobile.Ru (ИД "Газпром-Медиа") и другими. Является одним из редакторов проекта IBM developerWorks Russia.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты