Этот документ - попытка описать как под Linux можно упростить администрирование системы используя дирректории openLDAP.
Если у вас клиенты Windows пользуются почтой, и вы хотите чтобы пользователи сами меняли свои пароли, то установите сервер LDAP, включите поддержку LDAP на сервере SAMBA и авторизируйте mail сервер через LDAP сервер. И тогда пользователи стандартными средствами (панель управления/пароли) сами смогут менять свои пароли.

Содержание.

1. bind
2. sendmail
3. samba
4. адресная книга
5. dhcp




Часть 1. dns зоны в дирректориях openLDAP.

Первое что необходимо - это переделать Bind чтобы он понимал LDAP дирректории, для этого необходимо скачать архив bind-sdb-ldap. К моменту написания документа последние версии программ которые я использовал это bind-9.2.1 и bind-sdb-ldap-0.9.
Если у вас bind-9.2.2 и выше, то обратите внимание на папку contrib/sdb/ldap.
Распаковываем архивы.
Все ниже приведенные действия описаны в файле bin-sdb-ldap/INSTALL.

Копируем файлы ldapdb.c в дирректории bin/named и ldapdb.h в bin/named/include исходников BIND.
Редактируем файл bin/named/Makefile.in добавляем строки:

 DBDRIVER_OBJS = ldapdb.@O@
 DBDRIVER_SRCS = ldapdb.c
 DBDRIVER_INCLUDES = -I/usr/local/include
 DBDRIVER_LIBS = -L/usr/local/lib -lldap -llber -lresolv
 
Редактируем файл bin/named/main.c:
- находим строку #include "xxdb.h" добавляем #include<ldapdb.h>
- находим строку xxdb_init() добавляем ldapdb_init();
- находим строку xxdb_clear() добавляем ldapdb_clear();

Все. Дальше конфигурируем и компилируем BIND так как нам это надо. Так же если выше приведенные действия Вам кажутся сложными, то уже готовый патч для версии BIND-9.2.1 лежит здесь.


Следующий этап - настройка файла named.conf и заполнение дирректорий LDAP.
Для понимания LDAP сервером необходимых значений dns зон - копируем схему dnszone.schema в дирректорию схем LDAP сервера. Также следует включить схему cosine.sсhema в файл комфигурации slapd.conf.

Разберем на примере небольшую зону (sgb мой внутренний домен):

 @      IN      SOA     book.sgb. root.book.sgb. ( 1 8H 2H 1W 1D)
                NS      book.sgb.
 
 localhost      A       127.0.0.1
 book           A       192.168.2.1
 boss           A       192.168.2.11
 
Создаем группу DNS в дирректории LDAP (dc=sgb это root_ldap дирректория и это никак не связано с доменом sgb, просто совпадения :)
 dn: ou=DNS,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: DNS
 
dns
Описание самой зоны sgb:
 dn: zoneName=sgb,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: sgb
 relativeDomainName: sgb
 
dns
 dn: relativeDomainName=@,zoneName=sgb,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: sgb
 relativeDomainName: @
 nSRecord: book.sgb.
 sOARecord: book.sgb. root.book.sgb. 1 8H 2H 1W 1D
 
dns
Описание записи A для localhost:
 dn: relativeDomainName=localhost,zoneName=sgb,
                                 ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: sgb
 relativeDomainName: localhost
 dNSClass: IN
 aRecord: 127.0.0.1
 
dns
Описание записи A для book и boss аналогична:
 dn: relativeDomainName=book,zoneName=sgb,
                            ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: sgb
 relativeDomainName: book
 dNSClass: IN
 aRecord: 192.168.2.1
 
dns
 dn: relativeDomainName=boss,zoneName=sgb,
                            ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: sgb
 relativeDomainName: boss
 dNSClass: IN
 aRecord: 192.168.2.11
 
dns
Записываем в ldif файл и добавляем в директорию командой ldapadd. Так же для управления директориями можно установить программу с графическим интерфейсом.

Разберем обратную зону 2.168.192.in-addr.arpa:

 @      IN      SOA     book.sgb. root.book.sgb. ( 1 8H 2H 1W 1D)
                NS      book.sgb.
 
 1              PTR     book.sgb.
 11             PTR     boss.sgb.
 
Описание зоны 2.168.192.in-addr.arpa:
 dn: zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: 2.168.192.in-addr.arpa
 relativeDomainName: 2.168.192.in-addr.arpa
 
dns
 dn: relativeDomainName=@,zoneName=2.168.192.in-addr.
                                  arpa,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: 2.168.192.in-addr.arpa
 relativeDomainName: @
 nSRecord: book.sgb.
 sOARecord: book.sgb. root.book.sgb. 1 8H 2H 1W 1D
 
dns
Описание записи PTR для book и boss:
 dn: relativeDomainName=1,zoneName=2.168.192.in-addr.
                                  arpa,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: 2.168.192.in-addr.arpa
 relativeDomainName: 1
 pTRRecord: book.sgb.
 
dns
 dn: relativeDomainName=11,zoneName=2.168.192.in-addr.
                                   arpa,ou=DNS,dc=sgb
 objectClass: top
 objectClass: dNSZone
 zoneName: 2.168.192.in-addr.arpa
 relativeDomainName: 11
 pTRRecord: boss.sgb.
 
dns
Все просто. Полный HOWTO по заполнению dns зон в LDAP с примерами здесь.

Осталось заменить запись зон в named.conf.
Если раньше было так:

 zone "sgb" in {
    type master;
    files "db.sgb";
 };
 zone "2.168.192.in-addr.arpa" in {
    type master;
    files "db.2.168.192";
 };
 
Заменяем:
 zone "sgb" in {
    type master;
    database "ldap ldap://127.0.0.1/zoneName=sgb,ou=DNS,dc=sgb 178600";
 };
 zone "2.168.192.in-addr.arpa" in {
    type master;
    database "ldap ldap://127.0.0.1/zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=sgb 178600";
 };
 
Число 178600 это TTL для всех записей где неопределен dNSTTL.

Часть 2. Настройки Sendmail в дирректориях openLDAP.

Если вы используете sendmail из дистрибутива, то скорее всего он уже скомпилирован с поддержкой LDAP, проверяем:
sendmail -d0.1 -bv root | grep LDAP

В результате должны увидеть строку содержащей слово LDAPMAP. У меня на локальной машине стоит mandrake-8.2 и sendmail уже был собран с поддержкой LDAP.
В противном случае собираем sendmail из исходников. Для этого, перед компиляцией, необходимо добавить в файл devtools/Site/site.config.m4 следующие строки:
 APPENDDEF(`confMAPDEF', `-DLDAPMAP')
 APPENDDEF(`confLIBS', `-lldap -llber')
 APPENDDEF(`confINCDIRS', `-I/usr/local/include')
 APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
 
Соответственно должны быть уже установлены библиотеки openLDAP, измените путь usr/local там где они у вас находится.

Настройка sendmail сводится к добавлению строк в файл конфигурации sendmail.mc, с последующим его преобразованием в cf.
 -информация об сервере LDAP (ldap.sgb - сервер LDAP, dc=sgb root дирректория)
 define(`confLDAP_DEFAULT_SPEC',`-h ldap.sgb -b dc=sgb')dnl
 -для aliases
 define(`ALIAS_FILE',`ldap:')dnl
 -для access
 FEATURE(`access_db',`LDAP')dnl
 
Если используем virtusertable, domaintable и т.д. -то для них тоже самое по аналогии с access.
Ориентируемся по таблице:

FEATUREsendmailMTAMapName
access_db LDAP access
authinfo LDAP authinfo
bitdomain LDAP bitdomain
domaintable LDAP domain
genericstable LDAP generics
mailertable LDAP mailer
uucpdomain LDAP uucpdomain
virtusertable LDAP virtuser

Я кроме aliases и access ничего больше не использовал в связи с простотой моего локального сервера sendmail.

На стороне сервера LDAP необходимо добавить схему sendmail.schema в дирректорию схем и внести путь в конфигурационный файл slapd.conf.

Заполняем дирректории LDAP.
Создаем группу mail. В ней у нас будут находится все связанное с sendmail
 dn: ou=mail,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: mail
 
Создаем группу aliases. В ней будут храниться записи aliases
 dn: ou=aliases,ou=mail,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: aliases
 
Создаем группу access. В ней будут хранится записи access
 dn: ou=access,ou=mail,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: access
 
Все эти записи, вносим в ldif файл и добавляем в каталоги LDAP комадой ldapadd, либо используем программы с графическим интерфейсом.

Aliases.
Разберем на примере файл aliases:
 bin:           root
 daemon:        root
 games:         root
 nobody:        root
 system:        root
 manager:       root
 root:          andrek
 
Описание записи bin
 dn: sendmailMTAKey=bin,ou=aliases,ou=mail,dc=sgb
 objectClass: top
 objectClass: sendmailMTA
 objectClass: sendmailMTAAlias
 objectClass: sendmailMTAAliasObject
 sendmailMTAHost: boss.sgb
 sendmailMTAAliasGrouping: aliases
 sendmailMTAKey: bin
 sendmailMTAAliasValue: root
 
Описание записи daemon
 dn: sendmailMTAKey=daemon,ou=aliases,ou=mail,
                                      dc=sgb
 objectClass: top
 objectClass: sendmailMTA
 objectClass: sendmailMTAAlias
 objectClass: sendmailMTAAliasObject
 sendmailMTAHost: boss.sgb
 sendmailMTAAliasGrouping: aliases
 sendmailMTAKey: daemon
 sendmailMTAAliasValue: root
 
В поле sendmailMTAHost указываем имя sendmail сервера, для которого действует альяс.
Остальные альясы (games, nobody, manager и т.д.) вносим аналогично.

Access.
Разберем на примере файл access.
 localhost.localdomain  RELAY
 localhost              RELAY
 127.0.0.1              RELAY
 192.168.2              RELAY
 
Описание записи localhost.localdomain
 dn: sendmailMTAKey=localhost.localdomain,
                     ou=access,ou=mail,dc=sgb
 objectClass: top
 objectClass: sendmailMTA
 objectClass: sendmailMTAMap
 objectClass: sendmailMTAMapObject
 sendmailMTAMapName: access
 sendmailMTAKey: localhost.localdomain
 sendmailMTAMapValue: RELAY
 
Описание записи 192.168.2
 dn: sendmailMTAKey=192.168.2,ou=access,
                            ou=mail,dc=sgb
 objectClass: top
 objectClass: sendmailMTA
 objectClass: sendmailMTAMap
 objectClass: sendmailMTAMapObject
 sendmailMTAMapName: access
 sendmailMTAKey: 192.168.2
 sendmailMTAMapValue: RELAY
 
Остальные записи (localhost, 127.0.0.1 и т.д.) также аналогичны.

Virtusertable, mailertable, domaintable и т.д.
Заносятся по аналогии с access. С изменением поля sendmailMTAKey (см. таблицу) и необходимых значений в sendmailMTAKey и sendmailMTAValue.
Так же это все достаточно хорошо описано с примерами в документации к sendmail.

Учетные записи пользователей
На сервере sendmail достаточно включить авторизацию пользователей LDAP:
-Ставим клиента ldap, nss_ldap.
-Правим файлы ldap.conf, nssswith.conf.
После этого добавление пользователей сведется к добавлению учетных записей в каталог LDAP.
Администратору останется только прописать нужные альясы на пользователей.

Часть 3. Интеграция сервера SAMBA-2.2.X в дирректории LDAP.

1. Действия на стороне LDAP сервера.
Копируем из исходников samba схему .../examples/LDAP/samba.schema в каталог схем сервера LDAP. Также для ее правильной работы необходимы cosine.schema и inetorgperson.schema, добавляем соответствующие записи в slapd.conf.
Установите доступ на чтение полей (lmpassword, ntpassword) только администратору.
Редактируем файл slapd.conf:
 access to dn=".*,dc=sgb" attr=lmPassword
  by dn="cn=admin,dc=sgb" write
  by self write
  by * auth
 
 access to dn=".*,dc=sgb" attr=ntPassword
  by dn="cn=admin,dc=sgb" write
  by self write
  by * auth
 
Перезапускаем LDAP, для принятия изменений.

2. Действия на стороне Samba сервера.
Устанавливаем пакеты openldap, openldap-client, openldap-devel.
Перекомпилируем Самбу с опциями --with-ldapsam.
В конфигурационном файле smb.conf, определяем следующие опции:
 [global]
 ldap server = ldap.sgb
 ldap suffix = dc=sgb
 ldap admin dn = cn=admin,dc=sgb
 ldap filter = (&(uid=%u)(objectclass=sambaAccount))
 ldap port = 389
 ldap ssl = no
 
Таким образом SAMBA будет взаимодействовать с сервером LDAP от имени учетной записи администратора LDAP. Лучшим решением будет создание отдельной учетной записи (samba_admin) на сервере LDAP, которая имееет право на чтение-запись необходимых полей. Запускаем сервер samba, и сохраняем пароль администратора командой:
smbpasswd -w пароль admin
Все! Дальше работаем с ним удаленно.

3. Действия на стороне компьютера сисадмина.
Устанавливаем пакет openldap-client.
Создаем smb клиентов. Для каждого достаточно создать что нибудь похожее на это:)
 dn: uid=sandy,ou=Users,dc=sgb
 objectClass: top
 objectClass: posixAccount
 objectClass: sambaAccount
 homeDirectory: /home/sandy
 uidNumber: 502
 gidNumber: 502
 uid: sandy
 pwdLastSet: 1036581625
 logonTime: 0
 logoffTime: 2147483647
 kickoffTime: 2147483647
 pwdCanChange: 0
 pwdMustChange: 2147483647
 displayName: SandySandy
 cn: SandySandy
 rid: 2004
 primaryGroupID: 2005
 lmPassword: B3174F63722E157EAAD3B435B51404EE
 ntPassword: 6AAB3EA1D7A717FF9A3BFC222B846A7B
 acctFlags: [UX]
 loginShell: /bin/false
 
Обратите внимание на Account Flags ( U - пользовательский аккаунт, D - учетная запись заблокирована, N - без использования пароля, W - машинная учетная запись).
Записать в ldif файл, и добавить информацию в дирректорию LDAP. По теории проверенной практикой пользователь sandy уже может подключиться к sambe.
Этот трудоемкий путь нам не подойдет, скачиваем пакет скриптов smbldap-tools, либо если у вас samba одна из последних версий смотрим в examples/LDAP/smbldap-tools.
В нем уже есть набор необходимых утилит:
- smbldap-groupadd.pl
- smbldap-groupdel.pl
- smbldap-groupmod.pl
- smbldap-groupshow.pl
- smbldap-useradd.pl
- smbldap-userdel.pl
- smbldap-usermod.pl
- smbldap-usershow.pl

Названия говорят сами за себя.
Для того чтобы ими воспользоваться необходимо отредактировать значения в smbldap_conf.pm:
 #
 # UID and GID starting at...
 #
 $UID_START = 2000;
 $GID_START = 2000;

 #
 # Slave LDAP : needed for read operations
 #
 $slaveLDAP = "ldap.sgb";

 # 
 # Master LDAP : needed for write operations
 #
 $masterLDAP = "ldap.sgb";

 #
 # LDAP Suffix
 #
 $suffix = "dc=sgb";

 # 
 # Where are stored Users
 #
 $usersou = q(Users);
 $usersdn = "ou=$usersou,$suffix";

 # 
 # Where are stored Computers
 #
 $computersou = q(Computers);
 $computersdn = "ou=$computersou,$suffix";

 # 
 # Where are stored Groups
 # 
 $groupsou = q(Group);
 $groupsdn = "ou=$groupsou,$suffix";

 #
 # Credential Configuration
 #
 # Bind DN used 
 $binddn = "admin";

 #
 # Bind DN passwd used
 $bindpasswd = "secret";

 # Login defs
 #
 # Default Login Shell
 #
 $_userLoginShell = q(/bin/bash);

 #
 # Home directory prefix (without username)
 #
 $_userHomePrefix = q(/home/);

 #
 # Default User (POSIX and Samba) GID
 #
 $_defaultUserGid = 2000;

 #
 # Default Computer (Samba) GID
 #
 $_defaultComputerGid = 553;

 #
 # The UNC path to home drives location without the username last extension
 # (will be dynamically prepended)
 $_userSmbHome = q(\\\\a\\homes);

 #
 # The UNC path to profiles locations without the username last extension
 # (will be dynamically prepended)
 $_userProfile = q(\\\\a_\\profiles\\);

 # 
 # The default Home Drive Letter mapping
 # (will be automatically mapped at logon time if home directory exist)
 $_userHomeDrive = q(H:);

 #
 # Allows not to use smbpasswd (if $with_smbpasswd == 0 in smbldap_conf.pm) but
 # prefer mkntpwd... most of the time, it's a wise choice :-) 
 $with_smbpasswd = 0;
 $smbpasswd = "/usr/bin/smbpasswd";
 $mk_ntpasswd = "/usr/local/sbin/mkntpwd";
 
 и т.д.
 
Обратите внимание на последний параграф - используется утилита mkntpwd. Ее исходники есть в smbldap-tools.
Так же группы Users, Group, Computers должны быть уже созданы:
 dn: ou=Users,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: Users

 dn: ou=Group,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: Group

 dn: ou=Computers,dc=sgb
 objectClass: top
 objectClass: organizationalUnit
 ou: Computers
 
4. Пользователи меняют сами свои пароли.
Устанавливаем и настраиваем пакет скриптов smbldap-tools, на севере SAMBA.
В конфигурационный файл smb.conf добавляем строки:
 passwd program = /usr/local/bin/smbldap-passwd.pl %u
 unix password sync = yes
 passwd chat = *new*password* %n\n *new*password* %n\n *updated*successfully*
 
Обратите внимание на passwd chat, эти значения нам возвращает smbldap-passwd.pl при смене пароля.
После этого, перегружаем сервис для принятия изменений.
Теперь пользователи могут сами поменять свои пароли через сервис панель управления-пароли.

5. Мусорная корзина
С самого начала создания файлового сервера, моим пользователям, "любители хранить самое ценное в мегабайтных корзинах", нехватало именно этого - мусорной сетевой корзины. Сначало я не задавался этим вопросом: в виндовсе нет, значит и в самбе тоже нет и написал скрипт для архивации /home. Но каково было мое удивление когда изучая материалы по examples/LDAP и мимолетом осматривая остальные каталоги - увидел знакомое слово recycle.
Вся ниже следующая информация взята из examples/VFS/recycle/README
- конфигурируем самбу source/configure
- конфигурируем VFS examples/VFS/configure
- компилируем cd examples/VFS; make
Необходимый нам модуль recycle.so собран в каталоге recycle.

Настройка сводится к добавлению ресурсу следующих строк:
vfs object = /usr/share/samba-2.2.6/recycle.so
vfs options = /etc/samba/recycle.conf

Пример recycle.conf:
 # Название recycle bin относительно ресурса
 name = .recycle/%U

 # максимальный размер файла (0 без проверки)
 maxsize = 0

 # KEEP_DIRECTORIES = сохранить иерархию директорий
 # VERSIONS         = создавать копии идентичных файлов
 # TOUCH            = touch access date of files moved into the recycle bin
 mode = KEEP_DIRECTORIES|VERSIONS|TOUCH

 # пропускать файлы:
 exclude = *.tmp|*.temp|*.o|*.obj|~$*

 # пропускать папки:
 excludedir = /tmp|/temp|/cache

 # Add file extensions of files where no versioning is wanted (i.e. copy # 1...)
 # only valid when mode=VERSIONS is set
 noversions = *.doc|*.xls|*.ppt
 
Запускаем самбу, и наслаждаемся.
Так же могут быть интересны модули audit.so block.so.
audit.so - модуль ведения логов на следующие операции:
- share connect/disconnect
- directory opens/create/remove
- file open/close/rename/unlink/chmod.
block.so - модуль блокировки символических ссылок.

Часть 4. Адресная книга.

После того как будет заведена база пользователей, можно воспользоваться услугами адресной книги.
Я воспользовался клиентом KMail для проверки, после непродолжительного поиска в список попали все пользователи включая и samba пользователей. Но с незаполнеными полями mail, address и т.д.
Что не трудно исправить, добавив схему inetorgperson.schema и заполнив соостветствующие поля.

Часть 5. DHCP.

Скачиваем последнюю версию пакета dhcp.
Скачиваем патч для dhcpd.
На момент написания документа последняя версия dhcpd-3.0.1rc11.
Если у вас более свежая версия посетите сайт разработчиков, и загрузите необходимый патч.

Перед компиляцией раскомментируем строку #define LDAP_CONFIGURATION в файле includes/site.h.
Запускаем ./configure.
Добавляем в файл linux-2.2/server/Makefile слово -lldap в LIBS= линию.
Все эти действия описаны в readme.ldap.
Далее make и make install.

Содержание нового конфигурационного файла dhcpd.conf будет таким:
 ldap-server "ldap.sgb";
 ldap-port 386;
 ldap-username "cn=dhcp,dc=iarz";
 ldap-password "blabla";
 ldap-base-dn "dc=iarz";
 ldap-method dynamic;
 
Действия на стороне ldap сервера.
Копируем файл contrib/dhcp.schema в каталог схем, и добавляем необходимые записи в slapd.conf.
Ограничим права на информацию только для администратора dhcp.
 access to dn=".*,ou=dhcp,dc=iarz"
  by dn="cn=dhcp,dc=iarz" write
  by self write
  by * auth
 
Создаем пользователя dhcp и группу dhcp где будет хранится нужная информация, вот примерный ldif файл:
 dn: cn=dhcp,dc=iarz
 objectClass: top
 objectClass: person
 sn: DHCP Administrator
 cn: dhcp

 dn: ou=dhcp,dc=iarz
 objectClass: top
 objectClass: organizationalUnit
 ou: dhcp
 
Незабудьте задать пароль для пользователя dhcp.

Далее загружаем информацию зон dhcp в ldap. Рассмотрим на примере небольшой (старый) файл конфигурации dhcp.conf:
 option domain-name "iarz";
 option domain-name-servers ns.iarz;
 ddns-update-style interim;

 default-lease-time 32400;
 max-lease-time 64800;

 key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret SgBXABCDEFGHIJKLMNB75A==; }

 zone   iarz. {
        primary 127.0.0.1;
        key DHCP_UPDATER; }

 zone   0.0.192.IN-ADDR.ARPA. {
        primary 127.0.0.1;
        key DHCP_UPDATER; }

 subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        option subnet-mask 255.255.255.0;
        range dynamic-bootp 192.168.1.60 192.168.1.90; }

 subnet 192.168.2.0 netmask 255.255.255.0 {
        option routers 192.168.2.1;
        option subnet-mask 255.255.255.0;
        range dynamic-bootp 192.168.2.60 192.168.2.90; }
 
Для его трансформации в ldif файл, можно воспользоваться перловым скриптом (находится тамже), но он не дает той гибкости необходимой нам.
Как делал я: смотрел в генеренный файл, писал свой и отслеживал ошибки в /var/log/message.
Ниже приведен аналогичный ldif файл для загрузки:
 dn: ou=dhcp,dc=iarz
 objectClass: top
 objectClass: organizationalUnit
 ou: dhcp
 
dns
 dn: cn=dhcp.iarz,ou=dhcp,dc=iarz
 objectClass: top
 objectClass: dhcpServer
 cn: dhcp.iarz
 dhcpServiceDN: cn=config, ou=dhcp, dc=iarz
 
dns
 dn: cn=config,ou=dhcp,dc=iarz
 objectClass: top
 objectClass: dhcpService
 objectClass: dhcpOptions
 cn: config
 dhcpPrimaryDN: cn=ns.iarz, ou=dhcp, dc=iarz
 dhcpOption: domain-name "iarz"
 dhcpOption: domain-name-servers ns.iarz
 dhcpOption: nis-domain "iarz"
 dhcpStatements: ddns-update-style interim
 dhcpStatements: default-lease-time 32400
 dhcpStatements: max-lease-time 64800
 dhcpStatements: key DHCP_UPDATER 
       { algorithm HMAC-MD5.SIG-ALG.REG.INT
 dhcpStatements: secret 
                   SgBXABCDEFGHIJKLMNB75A==
 dhcpStatements: } zone iarz. 
      { primary 127.0.0.1; key DHCP_UPDATER
 dhcpStatements: } zone 0.0.192.IN-ADDR.ARPA. 
      { primary 127.0.0.1; key DHCP_UPDATER
 dhcpStatements: } #
 
dns
 dn: cn=192.168.1.0,cn=config,ou=dhcp,dc=iarz
 objectClass: top
 objectClass: dhcpSubnet
 objectClass: dhcpOptions
 cn: 192.168.1.0
 dhcpNetMask: 24
 dhcpRange: dynamic-bootp 192.168.1.60 192.168.1.90
 dhcpOption: routers 192.168.1.1
 dhcpOption: subnet-mask 255.255.255.0
 
dns
 dn: cn=192.168.2.0,cn=config,ou=dhcp,dc=iarz
 objectClass: top
 objectClass: dhcpSubnet
 objectClass: dhcpOptions
 cn: 192.168.2.0
 dhcpNetMask: 24
 dhcpOption: routers 192.168.2.1
 dhcpOption: subnet-mask 255.255.255.0
 dhcpRange: dynamic-bootp 192.168.2.60 192.168.2.90
 
dns
Все, можно запускать service dhcp start. Если не пошло, читаем readme.ldap и /var/log/messages при запуске сервера.
Здесь нет информации по присвоению ip-mac адресов, добавлю позже, но это не трудно поднять самим после ознакомления с документацией.

Часть 6. Proxy SQUID.

1. Авторизация используя модуль NTLM через Windows домен.
2. Авторизиция используя модуль LDAP.
...
Почти готово
Тестируем :)

Часть 7. Поднимаем SSL.

...


Ссылки на использованную документацию и программы.


Andrey Afletdinov


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