Содержание


Замена Active Directory

Часть 2. Установка и настройка Mandriva Directory Server

Comments

Серия контента:

Этот контент является частью # из серии # статей: Замена Active Directory

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Замена Active Directory

Следите за выходом новых статей этой серии.

Для организации службы каталогов и контроллера доменов на сервере, работающем под управлением 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
Рисунок 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
Рисунок 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, а также проговорим о централизованном управлении рабочими станциями через службу каталогов.


Ресурсы для скачивания


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Linux
ArticleID=438524
ArticleTitle=Замена Active Directory: Часть 2. Установка и настройка Mandriva Directory Server
publish-date=10202009