Установка MDS на Mandriva 2009.1
Необходима Мандрива версией не ниже 2008.1 (однако в силу
древности данного дистрибутива его использование настоятельно не
рекомендуется). Для 2009.1 пакеты MMC лежат в репозитории, для более
старых систем необходимо добавить дополнительный репозиторий командой:
urpmi.addmedia Community_Main ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/current/i586/media/main/backports/
или для 64-битных архитектур:
urpmi.addmedia Community_Main ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/current/x86_64/media/main/backports/
Для Mandriva 2009.1 i586 добавляем репозиторий: # urpmi.addmedia --distrib http://mirror.yandex.ru/mandriva/official/2009.1/i586/
Желательно сразу обновить все пакеты: # urpmi --auto-update Затем ставим самое необходимое:
# 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
После этого по зависимостям будут установлены все необходимые пакеты.
Настройка Ldap
Для начала ставим пакет openldap-mandriva-dit-package:
# urpmi openldap-mandriva-dit
Запускаем его:
# /usr/share/openldap/scripts/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 ]
После этого база данных LDAP будет заселена базовыми данными.
Теперь необходимо сделать несколько дополнительных настроек для
того, чтобы наш LDAP успешно работал с MDS. Первым делом, копируем
дополнительные схемы:
# 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
И во избежание конфликта схем LDAP'а комментируем следующие строки в файле /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/slapd.conf убираем комментарий в строках:
include /usr/share/openldap/schema/kerberosobject.schema include /etc/openldap/schema/local.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
Теперь генерим хэш пароля:
$ slappasswd -s наш_пароль {SSHA}na/xgxWhfSNJA1TGUNPHfPPDZOMq8o7Z
Хотя можно обойтись и без хэша, так как шифрование не всегда нормально работает на Мандриве. Далее я не буду использовать хэш, а просто закоментирую эти строки!
Идем править /etc/openldap/slapd.conf. Ищем строчку, начинающуюся на rootdn и придаем ей вот такой вид:
rootdn "cn=admin,dc=mandriva,dc=com" rootpw наш_пароль #rootpw {SSHA}na/xgxWhfSNJA1TGUNPHfPPDZOMq8o7Z
* очень вожно чтобы значение rootdn "cn=admin, dc=mandriva,dc=com в файле /etc/openldap/sldap.conf строго соответствовало записи в файле /etc/samba/smb.conf строка ldap admin dn = cn=admin,dc=mandriva,dc=com В обоих случаях должно быть одно и тоже имя, например - admin
В конец файла /etc/openldap/ldap.conf добавляем:
host 127.0.0.1 base dc=mandriva,dc=com
Запускаем проверку конфигов LDAP:
# slaptest config file testing succeeded
Перезапускаем сервис slapd:
# service ldap restart Checking config file /etc/openldap/slapd.conf: [ OK ] Stopping slapd: [ OK ] Starting slapd (ldap + ldaps): [ OK ]
Настройка Samba
Первым делом необходимо остановить самбу:
# /etc/init.d/smb stop
Правим /etc/samba/smb.conf, настраивая обыкновенный PDC. В итоге smb.conf должен принять примерно такой вид:
[global] netbios name = mandriva.com workgroup = mandriva.com 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=admin,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"
[partage] comment = aucun path = /var/lib/samba/partage read only = No
[profiles] browseable = No directory mask = 0700 hide files = /desktop.ini/ntuser.ini/NTUSER.*/ path = /var/lib/samba/profiles read only = No create mask = 0700
[print$] comment = Drivers path = /var/lib/samba/printers guest ok = Yes write list = Administrator, root, @lpadmin
[printers] comment = Printers path = /tmp browseable = No printable = Yes guest ok = Yes
[netlogon] browseable = No path = /var/lib/samba/netlogon read only = No guest ok = Yes
[public] comment = Public share path = /var/lib/samba/shares/public read only = No guest ok = Yes
[archives] comment = Backup share path = /var/lib/samba/archives
Затем — проверяем конфиг командой 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 /var/lib/samba/shares/public/ # mkdir /var/lib/samba/netlogon/ # mkdir /var/lib/samba/profiles/ # mkdir /var/lib/samba/partage/ # mkdir /var/lib/samba/archives/
И зададим им соответствующие права:
# chown -R :"Domain Users" /var/lib/samba/ chown: неверная группа: «:Domain Users»
# chmod 777 /var/spool/samba/ /var/lib/samba/shares/public/ # chmod 755 /var/lib/samba/netlogon/ # chmod 770 /var/lib/samba/profiles/ /var/lib/samba/partage/ # chmod 700 /var/lib/samba/archives/
* Очень важно знать что такое ПЕРЕМЕЩАЕМЫЙ ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ ! Если дать права 777 на /var/lib/samba/profiles то получим рабочий перемещаемый профиль пользователя. Все профили доменных пользователей будут сохраняться в /var/lib/samba/profiles Может для каких либо определенных целей это удобно, но есть и значительные минусы. Всё содержимое рабочего стола пользователей, папок загрузок, фильмов музыки и прочего будет синхронизироваться c доменным сервером, время синхронизации может вырасти до бесконечности, как и размер /var/lib/samba/profiles на сервере. В моем случае время вход и выход из сеанса пользователя на Windows Server 2008 R2 составило около 10минут, и это не предел! Принято решение отключить Перемещаемый Профиль Пользователя!
В /etc/samba/smb.conf находим раздел [global] и приводим эти строки к такому виду: logon path = logon home = после равно, как вы уже заметили, ничего не должно быть. Вот собствено и все.
Дадим самбе права на чтение ldap базы.
# smbpasswd -w наш_пароль Setting stored password for "cn=admin,dc=mandriva,dc=com" in secrets.tdb
Получаем SID для нашего домена:
# net getlocalsid mandriva.com SID for domain mandriva.com is: S-1-5-21-246465139-3033580898-3376408368
Возможны следующие ошибки:
Ошибка 1
# net getlocalsid mandriva.com [2010/11/23 00:43:50.128889, 0] lib/smbldap.c:1151(smbldap_connect_system) failed to bind to server ldap://127.0.0.1/ with dn="cn=admin,dc=mandriva,dc=com" Error: Invalid credentials (unknown) SID for domain emag.ru is: S-1-5-21-246465139-3033580898-3376408368
*** это из-за не соответствия записей в файлах. /etc/samba/smb.conf строка ldap admin dn = cn=admin,dc=mandriva,dc=com и /etc/openldap/sldap.conf строка rootdn "cn=manager, dc=mandriva,dc=com
Решение: Меняем везде manager на admin
Ошибка 2
# net getlocalsid mandriva.com [2010/12/07 12:05:34, 0] utils/net.c:net_getlocalsid(622) Can't fetch domain SID for name: mandriva.com
*** это из-за того, что пользователь "manager" не обладает правами работать в ldap. Проверяем: /etc/samba/smb.conf строка ldap admin dn = cn=manager,dc=mandriva,dc=com и /etc/openldap/sldap.conf строка rootdn "cn=manager, dc=mandriva,dc=com
Решение: Меняем везде manager на admin
Ошибка 3
# net getlocalsid mandriva.com [2010/12/07 12:25:41, 0] passdb/secrets.c:fetch_ldap_pw(822) fetch_ldap_pw: neither ldap secret retrieved!
Решение: Снова выполним это: # smbpasswd -w наш_пароль # service ldap restart # net getlocalsid mandriva.com SID for domain mandriva.com is: S-1-5-21-246465139-3033580898-3376408368 Вуаля, сработало!!!
Теперь нам необходимо заселить LDAP записями Samba-домена. Устанавливаем smbldap-tools:
# urpmi smbldap-tools
Идем в /etc/smbldap-tools/ и правим smbldap_bind.conf:
slaveDN="cn=admin,dc=mandriva,dc=com" slavePw="наш_пароль" masterDN="cn=admin,dc=mandriva,dc=com" masterPw="наш_пароль"
Теперь правим smbldap.conf:
SID="S-1-5-21-246465139-3033580898-3376408368" sambaDomain="MANDRIVA" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" suffix="dc=mandriva,dc=com sambaUnixIdPooldn="sambaDomainName=MANDRIVA,${suffix}" #defaultMaxPasswordAge="45" userSmbHome="" userProfile="" userHomeDrive=""
Заселяем LDAP:
# smbldap-populate -m 512 -a administrator
Если полезет куча ошибок то * очень вожно чтобы значение rootdn "cn=manager, dc=mandriva,dc=com в файле /etc/openldap/sldap.conf строго соответствовало записи rootName = cn=manager, %(basedn)s в файле /etc/mmc/plugins/base.ini В обоих случаях должно быть одно и тоже имя, например - manager
Ошибка 1
# smbldap-populate -m 512 -a administrator Populating LDAP directory for domain EMAG (S-1-5-21-246465139-3033580898-3376408368) (using builtin directory structure)
entry dc=emag,dc=ru already exist. entry ou=People,dc=emag,dc=ru already exist. entry ou=Group,dc=emag,dc=ru already exist. entry ou=Hosts,dc=emag,dc=ru already exist. entry ou=Idmap,dc=emag,dc=ru already exist. adding new entry: uid=administrator,ou=People,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 55. adding new entry: uid=nobody,ou=People,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 83. adding new entry: cn=Domain Admins,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 95. adding new entry: cn=Domain Users,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 106. adding new entry: cn=Domain Guests,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 117. adding new entry: cn=Domain Computers,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 128. adding new entry: cn=Administrators,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 173. adding new entry: cn=Account Operators,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 195. adding new entry: cn=Print Operators,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 206. adding new entry: cn=Backup Operators,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 217. adding new entry: cn=Replicators,ou=Group,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 228. adding new entry: sambaDomainName=EMAG,dc=emag,dc=ru failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 499, <GEN1> line 236.
Please provide a password for the domain administrator: /usr/sbin/smbldap-passwd: user administrator doesn't exist
Решение: Меняем Manager на admin в /etc/smbldap-tools/smbldap_bind.conf
# smbldap-populate -m 512 -a administrator Populating LDAP directory for domain EMAG (S-1-5-21-246465139-3033580898-3376408368) (using builtin directory structure)
entry dc=emag,dc=ru already exist. entry ou=People,dc=emag,dc=ru already exist. entry ou=Group,dc=emag,dc=ru already exist. entry ou=Hosts,dc=emag,dc=ru already exist. entry ou=Idmap,dc=emag,dc=ru already exist. adding new entry: uid=administrator,ou=People,dc=emag,dc=ru adding new entry: uid=nobody,ou=People,dc=emag,dc=ru adding new entry: cn=Domain Admins,ou=Group,dc=emag,dc=ru adding new entry: cn=Domain Users,ou=Group,dc=emag,dc=ru adding new entry: cn=Domain Guests,ou=Group,dc=emag,dc=ru adding new entry: cn=Domain Computers,ou=Group,dc=emag,dc=ru adding new entry: cn=Administrators,ou=Group,dc=emag,dc=ru adding new entry: cn=Account Operators,ou=Group,dc=emag,dc=ru adding new entry: cn=Print Operators,ou=Group,dc=emag,dc=ru adding new entry: cn=Backup Operators,ou=Group,dc=emag,dc=ru adding new entry: cn=Replicators,ou=Group,dc=emag,dc=ru adding new entry: sambaDomainName=EMAG,dc=emag,dc=ru
Please provide a password for the domain administrator: Changing UNIX and samba passwords for administrator New password: Retype new password:
*** При попытке повторно заселить ldap (если в первый раз что-то не получилось) вылезет много ошибок. Чтобы их избежать выполним: # service ldap restart
Настраиваем NSS: В /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
В /etc/ldap.conf:
host 127.0.0.1 base dc=mandriva,dc=com
Теперь перезапускаем samba и ldap и получаем работающий контроллер домена. # service smb restart # service ldap restart
Настройка MMC
Правим /etc/mmc/plugins/base.ini, прописывая туда права доступа к LDAP:
baseDN = dc=mandriva,dc=com rootName = cn=admin, %(basedn)s password = наш_пароль
В остальных плагинах, находящихся в директории /etc/mmc/plugins/, ставим
Disable=1
---------------------- * очень вожно чтобы значение rootdn "cn=admin, dc=mandriva,dc=com в файле /etc/openldap/sldap.conf строго соответствовало записи rootName = cn=admin, %(basedn)s в файле /etc/mmc/plugins/base.ini В обоих случаях должно быть одно и тоже имя, например - admin _________________ -------------------
[backup-tools] # Path of the backup tools path = /usr/lib/mmc/backup-tools # Where are put the archives destpath = /var/lib/samba/archives - если этот путь не правильно прописан mmc-agent не запустится --------------------------
И пробуем запустить MMC:
# /etc/init.d/mmc-agent start
The default user group Domain Users does not exist. Please create it before adding new users.
# apachectl start
************************* # apachectl start Syntax error on line 8 of /etc/httpd/conf/webapps.d/mmc-web-base.conf: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration # service httpd status httpd остановлен Use /etc/init.d/httpd extendedstatus for more information.
идём в /etc/httpd/modules.d/70_mod_php.conf и приводим его в такой вид:
#<IfDefine HAVE_PHP5> # <IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so # </IfModule> #</IfDefine>
#<IfModule mod_mime.c> AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddType application/x-httpd-php-source .phps #</IfModule>
#<IfModule mod_php5.c> # <IfModule mod_dir.c> DirectoryIndex index.php index.phtml # </IfModule> #</IfModule>
************************* снова пробуем # apachectl start
Запускаем браузер и переходим по ссылке http://localhost/mmc
Перезагружаем сервак!
ВВодим пользователей в домен
Компьютер в домен получится ввести если только будет включен плагин samba в /etc/mmc/plugins/samba.ini disable = 0
Источник: http://wiki.mandriva.com/ru/FAQ_%D0%BF%D0%BE_MDS |