Назад
Глава 15. Сборник полезных советов
Часть III. Справочные материалы
Дальше

Глава 15. Сборник полезных советов


15.1. Введение в домен клиентов Windows 200x/XP Professional
15.2. Местонахождение системных файлов Samba
15.3. Запуск Samba
15.4. Конфигурационные файлы DNS
15.5. Альтернативный способ инициализации базы данных LDAP
(The LDAP Account Manager)
15.7. Консоль управления IDEALX (IDEALX Management Console - IMC)
15.8. Разъяснение эффекта от установки разрешений SUID/SGID на файлы и папки
15.9. Целостность общих данных

Информация, представленная в этой главе, рассматривается как базовая, либо хорошо-известная, но тем не менее полезная. За последние годы мне довелось видеть интересную вещь. Многие считают, что для введения клиентов Windows в Windows-домен под управлением Samba требуются различные шаги для Windows NT4 и для домена Windows на AD. Хочу вас заверить, шаги идентичны, как показано в примере, приведенном ниже.

15.1. Введение в домен клиентов Windows 200x/XP Professional

Платформы Microsoft Windows NT/200x/XP Professional могут принимать участие в процессе безопасности домена. В этом разделе представлены шаги, которые позволят вам сделать компьютеры под управлением Microsoft Windows NT/200x/XP Professional членами безопасной среды домена. Заметьте, эти шаги аналогичны как для домена под управлением Windows NT4/200x , так и для домена под управлением Samba-3.

Шаги по введению в домен:

1. Щелкните Пуск.

2. Щелкните правой клавишей мышки по значку Мой компьютер вы вызовите меню Свойства.

3. Открывшееся меню будет тем же самым, если бы вы щелкнули Пуск->Настройка->Панель_управления->Система. Меню показано на рисунке 15.1..

Рисунок 15.1. Меню «Свойства системы», главная панель

Меню «Свойства системы», главная панель

4. Щелкните вкладку Имя компьютера, на этой вкладке показано описание компьютера, его имя и имя домена или рабочей группы. Если вы нажмете кнопку Идентификация, появится мастер идентификации компьютера, не стоит использовать его с Samba-3. Если вы хотите изменить имя компьютера, или ввести в домен, либо вывести его из домена, нажмите кнопку Изменить (см. рис. 15.2.).

Рисунок 15.2. Меню «Свойства системы», панель «Имя компьютера»

Меню «Свойства системы», панель «Имя компьютера»

5. Нажмите кнопку Изменить. В этом примере наш эталонный компьютер winxpbuh555 входит в рабочую группу WORKGROUP. Мы введем его в домен FIRMA (см. рис. 15.3.).

Рисунок 15.3. Меню «Свойства системы», панель «Изменение имени компьютера»

Меню «Свойства системы», панель «Изменение имени компьютера»

6. Введите название FIRMA в поле «Является членом домена» (см. рис. 15.4.)

Рисунок 15.4. Меню «Свойства системы», изменение принадлежности компьютера

Меню «Свойства системы», изменение принадлежности компьютера

7. Щелкните Ок, появиться диалоговое окно для подтверждения полномочий административной доменной учетной записи (имя пользователя и его пароль), имеющей права на ввод компьютеров в домен. Введите имя пользователя root и его пароль в Samba-3 (см. рис. 15.5.)

Рисунок 15.5. Панель ввода имени пользователя и пароля административной учетной записи с правами ввода компьютера в домен

Панель ввода имени пользователя и пароля административной учетной записи с правами ввода компьютера в домен

8. Щелкните Ок и если все хорошо, вы увидите приглашение Добро пожаловать в домен FIRMA. (см. рис. 15.5.1.). Затем вам будет предложено перезагрузить компьютер. На этом ввод компьютера в домен закончен.

Рисунок 15.5.1. Изменение имени компьютера, приглашение в домен

Изменение имени компьютера, приглашение в домен

На рисунке 15.4. также видна кнопка Дополнительно.... Эта кнопка открывает панель, в которой вы можете задать (или изменить) основной dns-суффикс компьютера (см. рис. 15.5.2.)). Этот параметр существенен, главным образом, для членов Microsoft Active Directory. Active Directory в большой степени завязан на dns-именовании (DNS namespace).

Рисунок 15.5.2. Изменение имени компьютера, вкладка «Дополнительно», dns-суффикс

Изменение имени компьютера, вкладка «Дополнительно», dns-суффикс

Там, где технология NetBIOS использует WINS, а также широковещательную рассылку по UDP (UDP broadcast), как ключевой механизм разрешения имен, серверы Active Directory регистрируют свои сервисы на динамическом DNS сервере Microsoft (Microsoft Dynamic DNS server). Клиентам Windows должен быть доступен для опроса корректный DNS сервер, чтобы найти сервисы (наподобие контроллеров домена или сервисов Netlogon).

По умолчанию основной dns-суффикс это имя домена Active Directory. Когда вы изменяете основной dns-суффикс, это не оказывает влияние на принадлежность к домену, но может нарушить броузинг сети и возможность разрешать имя вашего компьютера по его IP адресу.

Параметр основной dns-суффикс компьютера, главным образом, существенен для клиентов Windows, являющихся членом домена Active Directory. Если клиент является членом домена на Samba, предпочтительнее оставить это поле пустым.

Согласно документации Microsoft «если этот компьютер относится к группе с примененной групповой политикой (Group Policy) «основной dns-суффикс (Primary DNS suffice of this computer)» (задается в gpedit.msc->Административные_шаблоны->Сеть-> DNS-клиент->основной_dns-суффкс, прим.перев.), строка, указанная в Групповой Политике используется как основной dns-суффикс, и, возможно, вы должны будете перезагрузить ваш компьютер, чтобы увидеть верные настройки. Локальная установка используется, только если Групповая Политика отключена или неопределена.»
(к началу страницы)

15.2. Местонахождение системных файлов Samba

Одно из выражений неудовлетворенности подписчиков рассылки Samba вращается вокруг вопроса, где Samba Team по умолчанию собирает и размещает файлы, требующиеся для Samba. В начале 1990-х годов в качестве размещения для установки по умолчанию, была выбрана директория /usr/local/samba. Это вполне разумное местоположение, особенно с учетом того, что все свободное ПО устанавливается в поддиректории /usr/local.

Некоторые производителей UNIX, а в частности Linux, решили размещать файлы Samba в местах, отличных от определенных Samba Team по умолчанию.

Производители Linux, работающие в связке с Free Standards Group (FSG), Linux Standards Base (LSB), and File Hierarchy System (FHS), решили размещать файлы Samba в директории /etc/samba, общие исполняемые файлы (которые задействованы пользователями) в директории /usr/bin, а административные файлы (демоны) в директории /usr/sbin. Файлы для поддержки Samba Web Admin Tool (SWAT) стало принято размещать в директории /usr/share, а раньше они размещались в директориях /usr/share/samba/swat или в /usr/share/swat. Дополнительные файлы поддержки для smbd в директории /usr/lib/samba. Файлы, размещенные здесь, содержат динамически загружаемые модули для бэкенда passdb, а также для VFS модулей.

Samba создает контролирующие (управляющие) файлы запуска (runtime control files) и генерирует файлы журналов (log files). Контролирующие (управляющие) файлы запуска (runtime control files) (tdb и dat файлы) хранятся в директории /var/lib/samba. Файлы журналов (log files) создаются в директории /var/log/samba.

Когда Samba собирается и устанавливается с использованием процесса по умолчанию от Samba Team, все файлы размещаются в дереве директории /usr/local/samba. Это делает простым поиск всех файлов, которые принадлежат Samba.

Одним из путей поиска файлов Samba, которые установлены на вашей UNIX/Linux системе, является поиск всех файлов, вызываемых smbd. Например:

root#  find / -name smbd -print

Вы можете определить размещение конфигурационных файлов, выполнив:

root#  /path-to-binary-file/smbd -b | more
...
Paths:
   SBINDIR: /usr/sbin
   BINDIR: /usr/bin
   SWATDIR: /usr/share/samba/swat
   CONFIGFILE: /etc/samba/smb.conf
   LOGFILEBASE: /var/log/samba
   LMHOSTSFILE: /etc/samba/lmhosts
   LIBDIR: /usr/lib/samba
   SHLIBEXT: so
   LOCKDIR: /var/lib/samba
   PIDDIR: /var/run/samba
   SMB_PASSWD_FILE: /etc/samba/smbpasswd
   PRIVATE_DIR: /etc/samba
...

Если вы хотите узнать версию Samba, выполните:

root#  /path-to-binary-file/smbd -V
Version 3.0.20-SUSE

Много людей были застигнуты врасплох процессом установки по умолчанию от Samba Team, в то время, когда пакет уже был установлен производителем дистрибутива. Если ваша платформа использует rpm для управления пакетами, вы можете проверить, установлена ли Samba, следующим образом:

root#  rpm -qa | grep samba
samba3-pdb-3.0.20-1
samba3-vscan-0.3.6-0
samba3-winbind-3.0.20-1
samba3-3.0.20-1
samba3-python-3.0.20-1
samba3-utils-3.0.20-1
samba3-doc-3.0.20-1
samba3-client-3.0.20-1
samba3-cifsmount-3.0.20-1 

Конечно, имена пакетов очень варьируют в зависимости от производителя дистрибутива, упаковщика исполняемых файлов и т.п.
(к началу страницы)

15.3. Запуск Samba

По сути, Samba состоит из двух или трех демонов. Демон это приложение UNIX, которое запущено в фоновом режиме и предоставляет какие-либо сервисы. Наример демон, называемый httpd является сервисом веб-сервера Apache. В случае с Samba мы имеем дело с тремя демонами, как минимум два из которых необходимы.

Сервер Samba состоит из следующих демонов:

nmbd этот демон обрабатывает процессы регистрации имен и требования по разрешению (имен). Это основное средство, вовлеченное в броузинг сети. Он обрабатывает все протоколы, основанные на UDP. В процессе запуска сервера Samba команда по старту демона nmbd должна стоять первой.

smbd этот демон обрабатывает все коммуникационные сервисы, основанные на TCP/IP, для операций с файлами и печатью. От также управляет локальной аутентификацией. Он должен запускаться непосредственно после демона nmbd.

winbindd этот демон должен быть запущен в том случае, когда Samba является членом домена Windows NT4 или ADS (на Active Directory). Также он необходим, если устанавливаются доверительные отношения с другим доменом. В этом случае демон winbindd будет проверять файл smb.conf на наличие параметров idmap uid и idmap gid. Если они не будут найдены, этот демон откажется стартовать.

Когда Samba собрана производителем ОС, процесс запуска, как правило, определен особым образом и интегрирован в систему как единое целое. Пожалуйста, обратитесь к документации на вашу ОС, чтобы надлежащим образом производить запуск Samba.

В SUSE Linux осуществляется индивидуальный контроль над каждым демоном Samba. Управляющий скрипт Samba, который легко может быть выполнен из командной строки, показан в примере 15.3.1.. Он может быть размещен в директории /sbin под названием samba. У такого управляющего скрипта владельцем должен быть пользователь root, либо группа root, а право на выполнение должно быть только у root.

Пример 15.3.1. Полезный управляющий скрипт Samba для SUSE Linux

#!/bin/bash
#
# Script to start/stop samba
# Locate this in /sbin as a file called 'samba'

RCD=/etc/rc.d

if [ z$1 == 'z' ]; then
        echo $0 - No arguments given; must be start or stop.
        exit
fi

if [ $1 == 'start' ]; then
        ${RCD}/nmb start
        ${RCD}/smb start
        ${RCD}/winbind start

fi
if [ $1 == 'stop' ]; then
        ${RCD}/smb stop
        ${RCD}/winbind stop
        ${RCD}/nmb stop
fi
if [ $1 == 'restart' ]; then
        ${RCD}/smb stop
        ${RCD}/winbind stop
        ${RCD}/nmb stop
        sleep 5
        ${RCD}/nmb start
        ${RCD}/smb start
        ${RCD}/winbind start
fi
exit 0

Пример стартового скрипта (startup script) для Red Hat Linux показан в примере 15.3.2.. Этот файл должен размещаться в директории и /etc/rc.d и называться samba. Схожий простой стартовый скрипт требуется для демона winbindd. Если вы хотите получить больше информации о стартовых скриптах, обратитесь к тарболу с исходными кодами Samba, раздел packaging. Файлы для упаковки (packaging files) включают управляющие стартовые скрипты для каждой платформы (имеется ввиду папка packaging с тарбола Samba, в которой можно найти подобные файлы, прим.перев.).

Пример 15.3.2. Простой управляющий скрипт Samba для Red Hat Linux

#!/bin/sh
#
# chkconfig: 345 81 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.

# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
CONFIG=/etc/samba/smb.conf
# Check that smb.conf exists.
[ -f $CONFIG ] || exit 0

# See how we were called.
case "$1" in
  start)
        echo -n "Starting SMB services: "
        daemon smbd -D; daemon nmbd -D; echo;
        touch /var/lock/subsys/smb
        ;;
  stop)
        echo -n "Shutting down SMB services: "
        smbdpids=`ps guax | grep smbd | grep -v grep | awk '{print $2}'`
        for pid in $smbdpids; do
                kill -TERM $pid
        done
        killproc nmbd -TERM; rm -f /var/lock/subsys/smb
        echo ""
        ;;
  status)
        status smbd; status nmbd;
        ;;
  restart)
        echo -n "Restarting SMB services: "
        $0 stop; $0 start;
        echo "done."
        ;;
  *)
        echo "Usage: smb {start|stop|restart|status}"
        exit 1
esac

(к началу страницы)

15.4. Конфигурационные файлы DNS

Следующие файлы являются общими для всех конфигураций серверов DNS. Вместо многократного их дублирования, они представлены здесь в качестве единого справочного материала.
(к началу страницы)

15.4.1. Файл зоны прямого просмотра для внутреннего петлевого адаптера (Loopback Adaptor)

Файл зоны прямого просмотра для внутреннего петлевого адреса никогда не меняется. Пример файла показан в примере 15.4.1.. Весь трафик, предназначенный для IP адреса, который управляется физическим адаптером самого компьютера, направляется на внутренний петлевой адаптер. Это основная особенность реализации протокола TCP/IP. Внутренний петлевой адаптер называется localhost.

Пример 15.4.1. Файл DNS зоны прямого просмотра внутреннего петлевого адаптера (Localhost)

$TTL 1W
@		IN SOA	@   root (
				42		; serial
				2D		; refresh
				4H		; retry
				6W		; expiry
				1W )		; minimum

		IN NS		@
		IN A		127.0.0.1

(к началу страницы)

15.4.2. Файл зоны обратного просмотра для внутреннего петлевого адаптера (Loopback Adaptor)

Файл зоны обратного просмотра для внутреннего петлевого адреса, показанный в примере 15.4.2., необходим, чтобы ссылка на адрес 127.0.0.1 могла бы разрешаться в корректное имя интерфейса.

Пример 15.4.2. Файл DNS зоны обратного просмотра внутреннего петлевого адаптера (Localhost)

$TTL 1W
@		IN SOA		localhost.   root.localhost. (
				42		; serial
				2D		; refresh
				4H		; retry
				6W		; expiry
				1W )		; minimum

		IN NS		localhost.
1		IN PTR		localhost.

(к началу страницы)

15.4.3. Файл указаний корневых серверов DNS

Содержимое файла указаний корневых серверов DNS показано в примере 15.4.3. , изменения в котором происходят медленно, в течение долгого времени. Тем не менее, периодически этот файл должен обновляться с источника, указанном в файле.

Пример 15.4.3. Файл указаний корневых серверов DNS

; This file is made available by InterNIC under anonymous FTP as
;       file                /domain/named.root
;       on server           FTP.INTERNIC.NET
;сведения в данном файле нужно время от времени обновлять с
;интернет-узла ftp.rs.internic.net (198.41.0.6) посредством
;анонимного FTP-доступа, скопировав файл db.cache из подкаталога
;domain на этом сервере (DNS и BIND, Пятое издание,
;Крикет Ли и Пол Альбитц, 2008, прим.перев.)
;
; last update: Nov 5, 2002. Related version of root zone: 2002110501
; formerly NS.INTERNIC.NET
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
; formerly NS1.ISI.EDU
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
; formerly C.PSI.NET
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
; formerly TERP.UMD.EDU
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
; formerly NS.NASA.GOV
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
; formerly NS.ISC.ORG
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
; formerly NS.NIC.DDN.MIL
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
; formerly AOS.ARL.ARMY.MIL
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
; formerly NIC.NORDU.NET
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
; operated by VeriSign, Inc. 
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
; housed in LINX, operated by RIPE NCC
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
; operated by IANA
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
; housed in Japan, operated by WIDE
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

(к началу страницы)

15.5. Альтернативный способ инициализации базы данных LDAP

Первым шагом к тому, чтобы получить готовый к действиям сервер LDAP, является создание LDIF-файла, из которого будет осуществлена предзагрузка базы данных LDAP. Необходимо создать контейнеры, в которые будут записаны каждый пользователь, группа и другие учетные записи. Также необходимо осуществить предзагрузку общеизвестных групп домена Windows NT, так они смогут иметь корректный SID, и так они смогут быть распознаны клиентами MS Windows как специальные группы NT.

Шаги по осуществлению предзагрузки Каталога LDAP:

1. Создайте папку, в которой будут храниться файлы, которые вы используете для генерации LDIF-файла LDAP. Выполните следующее:

root#  mkdir /etc/openldap/SambaInit
root#  chown root:root /etc/openldap/SambaInit
root#  chmod 700 /etc/openldap/SambaInit

2. Объедините примеры 15.5.1., 15.5.2., 15.5.3. в файл SMBLDAP-ldif-preconfig.sh и поместите его в папку /etc/openldap/SambaInit/.

3. Объедините примеры 15.5.4., 15.5.5. в файл init-ldif.pat и поместите его в папку /etc/openldap/SambaInit/.

4. Перейдите в папку /etc/openldap/SambaInit/ и выполните:

root#  sh SMBLDAP-ldif-preconfig.sh

How do you wish to refer to your organization?
Suggestions:
        Black Tire Company, Inc.
        Cat With Hat Ltd.
How would you like your organization name to appear?
Your organization name is: My Organization
Enter a new name is this is not what you want, press Enter to Continue.
Name [My Organization]: Abmas Inc.

Samba Config File Location [/etc/samba/smb.conf]:
Enter a new full path or press Enter to continue.
Samba Config File Location [/etc/samba/smb.conf]:
Domain Name: MEGANET2
Domain SID: S-1-5-21-3504140859-1010554828-2431957765

The name of your Internet domain is now needed in a special format
as follows, if your domain name is mydomain.org, what we need is
the information in the form of:
        Domain ID: mydomain
        Top level: org
If your fully qualified hostname is: snoopy.bazaar.garagesale.net
where "snoopy" is the name of the machine,
Then the information needed is:
        Domain ID: garagesale
        Top Level: net

Found the following domain name: abmas.biz
I think the bit we are looking for might be: abmas
Enter the domain name or press Enter to continue:

The top level organization name I will use is: biz
Enter the top level org name or press Enter to continue:
root#

Эта процедура создаст файл MEGANET2.ldif.

5. Теперь самое время осуществить предзагрузку базы данных LDAP при помощи следующей команды:

root#  slapadd -v -l MEGANET2.ldif
added: "dc=abmas,dc=biz" (00000001)
added: "cn=Manager,dc=abmas,dc=biz" (00000002)
added: "ou=People,dc=abmas,dc=biz" (00000003)
added: "ou=Computers,dc=abmas,dc=biz" (00000004)
added: "ou=Groups,dc=abmas,dc=biz" (00000005)
added: "ou=Domains,dc=abmas,dc=biz" (00000006)
added: "sambaDomainName=MEGANET2,ou=Domains,dc=abmas,dc=biz" (00000007)
added: "cn=domadmins,ou=Groups,dc=abmas,dc=biz" (00000008)
added: "cn=domguests,ou=Groups,dc=abmas,dc=biz" (00000009)
added: "cn=domusers,ou=Groups,dc=abmas,dc=biz" (0000000a)

Вы должны проверить, что учетная информация была корректно загружена:

root#  slapcat
dn: dc=abmas,dc=biz
objectClass: dcObject
objectClass: organization
dc: abmas
o: Abmas Inc.
description: Posix and Samba LDAP Identity Database
structuralObjectClass: organization
entryUUID: af552f8e-c4a1-1027-9002-9421e01bf474
creatorsName: cn=manager,dc=abmas,dc=biz
modifiersName: cn=manager,dc=abmas,dc=biz
createTimestamp: 20031217055747Z
modifyTimestamp: 20031217055747Z
entryCSN: 2003121705:57:47Z#0x0001#0#0000
...

dn: cn=domusers,ou=Groups,dc=abmas,dc=biz
objectClass: posixGroup
objectClass: sambaGroupMapping
gidNumber: 513
cn: domusers
sambaSID: S-1-5-21-3504140859-1010554828-2431957765-513
sambaGroupType: 2
displayName: Domain Users
description: Domain Users
structuralObjectClass: posixGroup
entryUUID: af7e98ba-c4a1-1027-900b-9421e01bf474
creatorsName: cn=manager,dc=abmas,dc=biz
modifiersName: cn=manager,dc=abmas,dc=biz
createTimestamp: 20031217055747Z
modifyTimestamp: 20031217055747Z
entryCSN: 2003121705:57:47Z#0x000a#0#0000

6. Ваша база данных LDAP готова для тестирования. Сейчас вы можете запустить сервер LDAP, используя инструменты вашего дистрибутива Linux. Для SUSE Linux это можно сделать так:

root#  rcldap start

7. Теперь хорошо бы проверить, что сервер LDAP запущен корректно, выполните такую команду:

root#  ldapsearch -x -b "dc=abmas,dc=biz" "(ObjectClass=*)"
# extended LDIF
#
# LDAPv3
# base  with scope sub
# filter: (ObjectClass=*)
# requesting: ALL
#

# abmas.biz
dn: dc=abmas,dc=biz
objectClass: dcObject
objectClass: organization
dc: abmas
o: Abmas Inc.
description: Posix and Samba LDAP Identity Database
...
# domusers, Groups, abmas.biz
dn: cn=domusers,ou=Groups,dc=abmas,dc=biz
objectClass: posixGroup
objectClass: sambaGroupMapping
gidNumber: 513
cn: domusers
sambaSID: S-1-5-21-3504140859-1010554828-2431957765-513
sambaGroupType: 2
displayName: Domain Users
description: Domain Users

# search result
search: 2
result: 0 Success

# numResponses: 11
# numEntries: 10

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

Пример 15.5.1. Предконфигурационный скрипт LDAP SMBLDAP-ldif-preconfig.sh, часть А

#!/bin/bash
#
# This script prepares the ldif LDAP load file only
#

# Pattern File Name
file=init-ldif.pat

# The name of my organization
ORGNAME="My Organization"

# My Internet domain. ie: if my domain is: buckets.org, INETDOMAIN="buckets"
INETDOMAIN="my-domain"

# In the above case, md domain is: buckets.org, TLDORG="org"
TLDORG="org"

# This is the Samba Domain/Workgroup Name
DOMNAME="MYWORKGROUP"

#
# Here We Go ...
#

cat <

Пример 15.5.2. Предконфигурационный скрипт LDAP SMBLDAP-ldif-preconfig.sh, часть Б

echo -e -n "Name [$ORGNAME]: "
	read name

if [ ! -z "$name" ]; then 
	ORGNAME=${name}
fi
echo
sed "s/ORGNAME/${ORGNAME}/g" < $file > $file.tmp1

# Try to find smb.conf

if [ -e /etc/samba/smb.conf ]; then
	CONF=/etc/samba/smb.conf
elif [ -e /etc/samba/smb.conf ]; then
	CONF=/etc/samba/smb.conf
fi

echo "Samba Config File Location [$CONF]: "
echo
echo "Enter a new full path or press Enter to continue."
echo
echo -n "Samba Config File Location [$CONF]: "
	read name
if [ ! -z "$name" ]; then
	CONF=$name
fi
echo

# Find the name of our Domain/Workgroup
DOMNAME=`grep -i workgroup ${CONF} | sed "s/ //g" | cut -f2 -d=`
echo Domain Name: $DOMNAME
echo

sed "s/DOMNAME/${DOMNAME}/g" < $file.tmp1 > $file.tmp2

DOMSID=`net getlocalsid ${DOMNAME} | cut -f2 -d: | sed "s/ //g"`
echo Domain SID: $DOMSID

sed "s/DOMSID/${DOMSID}/g" < $file.tmp2 > $file.tmp1

Пример 15.5.3. Предконфигурационный скрипт LDAP SMBLDAP-ldif-preconfig.sh, часть В

cat < $file.tmp2
TLDORG=`hostname -d | sed "s/${INETDOMAIN}.//g"`
echo "The top level organization name I will use is: ${TLDORG}"
echo
echo -n "Enter the top level org name or press Enter to continue: "
	read domnam
if [ ! -z $domnam ]; then
        TLDORG=$domnam
fi
sed "s/TLDORG/${TLDORG}/g" < $file.tmp2 > $DOMNAME.ldif
rm $file.tmp*
exit 0

Пример 15.5.4. Образец LDIF-файла, использующего предконфигурацию LDAP, часть А

dn: dc=INETDOMAIN,dc=TLDORG
objectClass: dcObject
objectClass: organization
dc: INETDOMAIN
o: ORGNAME
description: Posix and Samba LDAP Identity Database

dn: cn=Manager,dc=INETDOMAIN,dc=TLDORG
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=INETDOMAIN,dc=TLDORG
objectClass: top
objectClass: organizationalUnit
ou: People

dn: ou=Computers,dc=INETDOMAIN,dc=TLDORG
objectClass: top
objectClass: organizationalUnit
ou: Computers

dn: ou=Groups,dc=INETDOMAIN,dc=TLDORG
objectClass: top
objectClass: organizationalUnit
ou: Groups

dn: ou=Idmap,dc=INETDOMAIN,dc=TLDORG
objectClass: top
objectClass: organizationalUnit
ou: Idmap

dn: ou=Domains,dc=INETDOMAIN,dc=TLDORG
objectClass: top
objectClass: organizationalUnit
ou: Domains

dn: sambaDomainName=DOMNAME,ou=Domains,dc=INETDOMAIN,dc=TLDORG
objectClass: sambaDomain
sambaDomainName: DOMNAME
sambaSID: DOMSID
sambaAlgorithmicRidBase: 1000
structuralObjectClass: sambaDomain

Пример 15.5.5. Образец LDIF-файла, использующего предконфигурацию LDAP, часть Б

dn: cn=domadmins,ou=Groups,dc=INETDOMAIN,dc=TLDORG
objectClass: posixGroup
objectClass: sambaGroupMapping
gidNumber: 512
cn: domadmins
sambaSID: DOMSID-512
sambaGroupType: 2
displayName: Domain Admins
description: Domain Administrators

dn: cn=domguests,ou=Groups,dc=INETDOMAIN,dc=TLDORG
objectClass: posixGroup
objectClass: sambaGroupMapping
gidNumber: 514
cn: domguests
sambaSID: DOMSID-514
sambaGroupType: 2
displayName: Domain Guests
description: Domain Guests Users

dn: cn=domusers,ou=Groups,dc=INETDOMAIN,dc=TLDORG
objectClass: posixGroup
objectClass: sambaGroupMapping
gidNumber: 513
cn: domusers
sambaSID: DOMSID-513
sambaGroupType: 2
displayName: Domain Users
description: Domain Users

(к началу страницы)

15.6. LAM - Менеджер учетных записей LDAP (The LDAP Account Manager)

Менеджер учетных записей LDAP (The LDAP Account Manager) LAM это приложение, которое написано на PHP. LAM может использоваться с любым веб-сервером, поддерживающим PHP. Он соединяется с сервером LDAP либо используя нешифрованное соединение, либо посредством SSL/TLS. LAM может быть использован для управления как учетными записями Posix, так и SambaSAMAccounts для пользователей, групп и компьютеров Windows (хостами).

LAM можно получить на домашней странице этого проекта, либо на зеркалах. LAM распространяется под лицензией CNU GPL v2. Текущая версия на момент написания книги 0.4.9. (на момент перевода 3.1., причем имеется русский интерфейс, прим.перев.).

Требования:

  • веб-сервер, поддерживающий PHP4 (а в настоящее время, вероятно и PHP5, прим.перев.);

  • PHP4 (доступный на домашней странице проекта PHP);

  • OpenLDAP 2.0 или более поздней версии;

  • веб-броузер с поддержкой CSS;

  • Perl;

  • gettext package;

  • mcrypt + mhash (опционально);

  • также неплохо установить поддержку SSL.

    LAM полезный инструмент, работающий через веб-броузер и позволяющий управлять содержимым Каталога LDAP, а именно:

  • просматривать доменные записи пользователей, групп, компьютеров;

  • управлять записями (добавлять, удалять, редактировать);

  • фильтровать и сортировать записи;

  • хранить и использовать сложные рабочие профили (multiple operating profiles);

  • редактировать организационные единицы (organizational unit — OU);

  • загружать учетные записи из файла;

  • совместим с Samba-2.2.x и Samba-3.
В случае корректной настройки LAM позволяет управлять UNIX (Posix) и Samba пользователями, группами и учетными записями компьютеров членов домена Windows.

Пароль по умолчанию lam. Настоятельно рекомендуется использовать только SSL соединение с вашим веб-сервером для всех удаленных операций с участием LAM. Если вам нужны безопасные соединения, вы должны настроить ваш веб-сервер Apache так, чтобы позволять связь с LAM только с использованием SSL.

Шаги по настройке Apache для LAM:

1. Распакуйте тарбол LAM, как показано здесь:

root#  tar xzf ldap-account-manager_0.4.9.tar.gz

Другой вариант, это установка deb-пакета LAM для вашей системы:

root#  dpkg -i ldap-account-manager_0.4.9.all.deb

2. Скопируйте извлеченные файлы в корневую директорию для документов вашего веб-сервера. Например в SUSE Linux Enterprise Server 9 скопируйте их в /srv/www/htdocs.

3. Установите соответствующие разрешения:

root#  chown -R wwwrun:www /srv/www/htdocs/lam
root#  chmod 755 /srv/www/htdocs/lam/sess
root#  chmod 755 /srv/www/htdocs/lam/tmp
root#  chmod 755 /srv/www/htdocs/lam/config
root#  chmod 755 /srv/www/htdocs/lam/lib/*pl

4. Используя текстовый редактор, который вы предпочитаете, отредактируйте конфигурационный LAM-файл config.cfg:

root#  cd /srv/www/htdocs/lam/config
root#  cp config.cfg_sample config.cfg
root#  vi config.cfg

Пример такого файла показан в примере 15.6.1.. Это минимально допустимая конфигурация. Профильный файл LAM может быть создан с использованием удобного мастера, который является частью пакета LAM.

5. Запустите ваш веб-сервер, и затем, используя веб-броузер, присоединитесь к LAM. Щелкните кнопку Configuration Login, а потом кнопку Configuration Wizard (Мастер конфигурации), чтобы начать создание профиля по умолчанию для возможности соединения LAM с вашим сервером LDAP. Иначе вы можете переименовать копию файла lam.conf_sample в lam.conf, и используя текстовый редактор, измените настройки в соответствии с вашими потребностями.

Пример рабочего файла показан в примере 15.6.2.. В этом примере убраны строки комментариев, поэтому его размер невелик. Комментарии и вспомогательная информация представлены в профильном файле, который создает Мастер, чрезвычайно полезна и поможет многим администраторам избежать проблем. Ваш конфигурационный файл отражает предпочтительные настройки именно вашей среды.

Пример 15.6.1. Пример конфигурационного LAM-файла config.cfg

# password to add/delete/rename configuration profiles
password: not24get

# default profile, without ".conf"
default: lam

Пример 15.6.1. Контролирующий профильный LAM-файл lam.conf

ServerURL: ldap://massive.abmas.org:389
Admins: cn=Manager,dc=abmas,dc=biz
Passwd: not24get
usersuffix: ou=People,dc=abmas,dc=biz
groupsuffix: ou=Groups,dc=abmas,dc=biz
hostsuffix: ou=Computers,dc=abmas,dc=biz
domainsuffix: ou=Domains,dc=abmas,dc=biz
MinUID: 0
MaxUID: 65535
MinGID: 0
MaxGID: 65535
MinMachine: 20000
MaxMachine: 25000
userlistAttributes: #uid;#givenName;#sn;#uidNumber;#gidNumber
grouplistAttributes: #cn;#gidNumber;#memberUID;#description
hostlistAttributes: #cn;#description;#uidNumber;#gidNumber
maxlistentries: 30
defaultLanguage: en_GB:ISO-8859-1:English (Great Britain)
scriptPath: 
scriptServer: 
samba3: yes
cachetimeout: 5
pwdhash: SSHA

Важно, чтобы в то время, когда вы настраиваете LAM, ваш сервер LDAP был запущен. Это позволит вам проверить корректность всех операций. Пример окна входа LAM показан на рисунке 15.6..

Рисунок 15.6. Окно приглашения менеджера учетных записей LAM

Окно приглашения менеджера учетных записей LAM

Редактор конфигурации LAM имеет совокупность опций, которые должны верно управляться. Пример использования редактора конфигурации LAM показан на рисунке 15.7.. Важно, чтобы вы точно задали минимальное и максимальное значение UID/GID, которое применяется в вашей среде. Значения по умолчанию могут быть не совместимыми с требующимися для значений общеизвестных учетных записей пользователей и групп Windows. Лучше обойти это временно установив минимальное значение равное нулю, чтобы можно было сделать начальные настройки. Не забудьте сбросить эти значения перед использованием LAM для добавления дополнительных пользователей и групп.

Рисунок 15.7. Окно конфигурации менеджера учетных записей LAM

Окно конфигурации менеджера учетных записей LAM

LAM имеет интересные, но необычные свойства. Например одно из таких неожиданных свойств состоит в том, что из большинства своих окон LAM позволяет сгенерировать PDF-файл со списком конфигурационной информации. Это хорошо взвешенная возможность. Рисунок с демонстрацией данной опции не приведен в целях экономии места.

После входа в LAM, вы попадете в окно управления пользователями, как показано на рисунке 15.8.. Это логичное действие, так как позволяет сразу использовать наиболее востребованную функцию LAM.

Легко осуществимо как редактирование существующих пользователей, так и добавление новых, и все очень просто по размещению и замыслу. Очень легко отредактировать общие настройки, специальные параметры UNIX, а затем требования к учетным записям Samba. Каждый шаг интуитивно понятен, сопровождается щелчком по кнопке, и проведет вас через весь процесс. Когда вы закончите редактирование, просто нажмите кнопку Finish.

Рисунок 15.8. Менеджер учетных записей LAM, окно редактирования пользователей

Менеджер учетных записей LAM, окно редактирования пользователей

Окно редактирования групп показано на рисунке 15.9.. Как и в окне редактирования учетных записей, можно быстро управляться с учетными записями групп. На рисунке 15.10.. показано подокно редактора групп, в котором пользователи могут быть добавлены в группу.

Рисунок 15.9. Менеджер учетных записей LAM, окно редактирования групп

Менеджер учетных записей LAM, окно редактирования групп

Рисунок 15.10. Менеджер учетных записей LAM, окно редактирования членства в группе

Менеджер учетных записей LAM, окно редактирования членства в группе

Последний рисунок, показанный здесь, это одно из окон, которое вы не должны обычно использовать. Учетные записи компьютеров (hosts) будут автоматически управляться скриптами smbldap-tools. Возможность, показанная на рисунке 15.11.. в большинстве случаев не используется.

Рисунок 15.11. Менеджер учетных записей LAM, окно редактирования учетных записей компьютеров

Менеджер учетных записей LAM, окно редактирования учетных записей компьютеров

Одна из особенностей LAM, которая может раздражать некоторых пользователей, состоит в способе, которым он налагает определенные условия на администратора. Например, LAM не позволяет создавать учетные записи пользователей и групп Windows, в именах которых содержаться пробелы, даже не смотря на то, что базовая ОС UNIX/Linux может не иметь с этой особенностью никаких проблем. С учетом склонности к использованию символов ВЕРХНЕГО регистра и пробелов (в частности, в именах по умолчанию («дефолтных») учетных записей Windows) это может несколько раздражать. Для остальных LAM является очень полезным инструментом администрирования.

Следующий релиз, LAM 0.5, будет иметь меньше ограничений и поддерживать последние возможности Samba (например, время, проведенное в системе). Новая, основанная на подключении плагинов архитектура, позволит управлять намного бОльшим числом различных типов учетных записей, подобных обыкновенным учетным записям UNIX. Также версия сможет обрабатывать группы и компьютеры. Другой важный момент в деревоподобном представлении, которое позволяет просматривать и редактировать объекты LDAP напрямую.
(к началу страницы)

15.7. Консоль управления IDEALX (IDEALX Management Console - IMC)

Консоль управления IDEALX это инструмент, который может использоваться как база для полноценного, основанного на веб-интерфейсе управления для UNIX и Linux систем.

Набор инструментов для Samba это первая разработанная консоль IMC. Она предлагает простой и эргономичный интерфейс для управления контроллером домена на Samba. Задача дать администраторам Linux эффективный, интуитивно-понятный, целостный опыт управления. Окно управления пользователями IMS показано на рисунке 15.12..

Рисунок 15.12. IMC, учетные записи Samba

IMC, учетные записи Samba

IMC построена на модулях Perl. Большинство из них это стандартные CPAN модули. Некоторые связаны с IMC, но будут вскоре независимы от CPAN, подобно Struts4P, порту Struts на языке Perl.

Для получения дополнительной информации о IMC обратитесь к сайту http://sourceforge.net/projects/imc/.
(к началу страницы)

15.8. Разъяснение эффекта от установки разрешений SUID/SGID на файлы и папки

Установка флагов разрешений на файлы и папки битами SUID/SGID имеет специфические последствия. Если файл является исполняемым и установлен бит SUID, он будет выполняться с привилегиями (c UID) владельца файла. Например, если вы вошли в систему как обычный пользователь (пусть будет пользователь bobj), и запустите файл, который принадлежит пользователю root (с UID = 0), а файлу установлен бит SUID, то в этом случае файл будет выполнен так, будто бы вы вошли под учетной записью root и запустили этот файл. Бит SUID фактически дает вам (пользователю bobj) административные привилегии при использовании этого исполняемого файла.

Установка бита SGID дает тот же самый эффект, что и бит SUID, с той лишь разницей, что применяются привилегии группы UNIX. Другими словами, файл будет выполнен с теми возможностями, которые есть у группы.

Когда разрешения SUID/SGID установлены на каталог, всем созданным внутри этого каталога файлам, автоматически назначаются такие же SUID и SGID, как и у каталога. Это значит, что системная функция create() выполняется с SUID пользователя и SGID группы того каталога, в которой создается файл.

Если вы хотите получить свойство SUID, просто выполните такую команду:

root#  chmod u+s file-or-directory

Установить SGID можно так:

root#  chmod g+s file-or-directory

Назначить и SUID, и SGID можно таким образом:

root#  chmod ug+s file-or-directory

Давайте рассмотрим пример на папке /data/accounts. Разрешения на каталог перед установкой битов SUID и SGID выглядят так:

root#  ls -al /data/accounts
total 1
drwxr-xr-x   10 root     root          232 Dec 18 17:08 .
drwxr-xr-x   21 root     root          600 Dec 17 23:15 ..
drwxrwxrwx    2 bobj     Domain Users  48 Dec 18 17:08 accounts/
drwx------    2 root     root           48 Jan 26  2002 lost+found

В этом примере, если пользователь maryv создаст файл, он будет принадлежать ей. Если основной группой maryv является Accounts, то файл будет принадлежать группе Accounts, что показано ниже:

root#  ls -al /data/accounts/maryvfile.txt
drw-rw-r--    2 maryv    Accounts     12346 Dec 18 17:53

Сейчас мы установим биты SUID и SGID и проверим, что получилось:

root#  chmod ug+s /data/accounts
root#  ls -al /data/accounts
total 1
drwxr-xr-x   10 root     root          232 Dec 18 17:08 .
drwxr-xr-x   21 root     root          600 Dec 17 23:15 ..
drwsrwsr-x    2 bobj     Domain Users  48 Dec 18 17:08 accounts
drwx------    2 root     root           48 Jan 26  2002 lost+found

Если maryv создаст файл в этом каталоге после проведенных изменений, владельцем файла будет bobj, и группа Domain Users:

root#  chmod ug+s /data/accounts
root#  ls -al /data/accounts/maryvfile.txt
total 1
drw-rw-r--    2 bobj     Domain Users  12346 Dec 18 18:11 maryvfile.txt

(к началу страницы)

15.9. Целостность общих данных

Целостность общих данных часто рассматривается как особенно волнующая проблема, особенно там, где есть параллельные задачи и многопользовательский доступ к данным. Вопреки заявлениям тех, кто испытал сложности в какой-либо из этих областей, причины не имеют ничего общего с фазами лун Юпитера.

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

  • управление блокировкой на уровне приложения (application-level locking controls);

  • управление блокировкой со стороны клиента (client-side locking controls);

  • управление блокировкой со стороны сервера (server-side locking controls).
Много приложений баз данных используют одинаковое управление блокировками на уровне приложения. Примером одного из хорошо известных приложений, в котором используется управление блокировкой на уровне приложения является Microsoft Access. Ниже представлено подробное руководство, поскольку это наиболее популярное приложение, с которым встречаются подобные проблемы.

Популярными приложениями, которых касаются управление блокировками со стороны клиента и сервера, являются приложения Microsoft Exel и Act! Важные замечания по блокировкам даны ниже.
(к началу страницы)

15.9.1. Microsoft Access

Лучшая рекомендация, которую можно здесь дать это внимательно ознакомиться со статьями базы знаний Microsoft, которые охватывают эту проблему. Примеры таких статей:

Удостоверьтесь, что ваш файл базы данных Access настроен для общего доступа доступа (а не монопольного). Откройте MS Access на каждой клиентской рабочей станции, а затем установите такие настройки: Сервис->Параметры->вкладка_Общие. Установите сетевой путь к рабочему каталогу базы данных по умолчанию, например \\server\share\folder.

Вы также можете настроить режим общего доступа, пройдите на вкладку Другие и установите:

  • Режим открытия по умолчанию: общий доступ;

  • Блокировка по умолчанию: изменяемой записи;

  • Поставьте галочку Блокировка записей при открытии БД.
Теперь вы должны зафиксировать изменения, для этого нажмите кнопку Применить и Ок. Затем вы должны перезапустить MS Access и убедиться, что эти настройки не изменились.
(к началу страницы)

15.9.2. Общая база данных Act!

Не планируется к переводу.

15.9.3. Управление блокировками «любой ценой» (Opportunistic Locking Controls)

Сторонние приложения Windows могут быть не совместимы с использованием «бесцеремонной» блокировки файлов и записи (opportunistic file and record locking). Для приложений, известных как несовместимые (обратитесь к документации приложения, если производитель не указывает прямо, что приложение не совместимо с блокировкой файлов и записи «любой ценой», а также с кэшированием файла клиентом Windows, то приложение, вероятно, совместимо с настройками по умолчанию как Windows, так и Samba), вполне возможно потребуется отключить поддержку блокировок как на сервере Samba, так и на рабочих станциях Windows.

Блокировки (Oplocks) дают возможность клиентам Windows кэшировать часть файла, которая будет редактироваться. Другой клиент Windows может потом потребовать открыть файл с возможностью записи. Затем сервер запросит у исходной рабочей станции, у которой находится файл, открытый с блокировкой записи, снять блокировку. Перед тем, как сделать это, рабочая станция должна сбросить файл из памяти кэша на винчестер или сетевой диск.

Отключение использования блокировок может потребовать внести изменения на сервер и клиент. Блокировка может быть отключена на файл, на шаблон файла, на общий ресурс или сервер Samba.

Следующий пример показывает, как можно управлять поддержкой блокировок использованием настроек файла smb.conf:

не блокировать файл:	veto oplock files = myfile.mdb
шаблон:			veto oplock files = /*.mdb/
общий ресурс:		oplocks = No
			level2 oplocks = No
сервер:
(секция [global])	oplocks = No
			level2 oplocks = No

На клиентах Microsoft Windows XP Professional, 2000 Professional, и Windows NT4 workstation должны быть внесены такие записи в реестр:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
            Services\LanmanServer\Parameters]
      "EnableOplocks"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
            Services\LanmanWorkstation\Parameters]
      "UseOpportunisticLocking"=dword:00000000

Полный обзор возможностей по блокировкам файлов и записи представлен в TOSHARG2, Глава 13. Информация, представленная в ней, была получена из широкого спектра источников.
(к началу страницы)

НазадГлава 14. Поддержка Samba
Содержание
Дальше
Глава 16. Практическое занятие по анализу сети