Чтиво: установка сервера часть 031
Настройка и использование LDAP. Часть V.
Для связки bind и LDAP необходимо научить bind понимать LDAP. В
стандартной поставке bind нет такой возможности. Зато там заранее
предусмотрен механизм "Simplified Database Interface" (sdb) с помощью
которого мы можем использовать bind с другими системами хранения
данных. Для нас благо ничего программировать не нужно. Потому что уже
все спрограммированно - необходимо только наложить патч на исходники
bind. Этот патч я взял на http://www.ldapzone.spb.ru/ . По идее все
необходимое уже есть в дереве исходных кодов (в contrib/sdb/), но там
надо немножко помучаться, следуя по шагам алгоритма (описанного там
же), в результате чего получим те же изменения, которые и делает патч.
Вообщем, распаковываю исходники bind и копирую патч
$ rpm -ihv bind-9.2.1-16asp.src.rpm
$ cp bind_ldap.patch /usr/src/asplinux/SOURCES/
Немного правлю spec-файл в /usr/src/asplinux/SPECS/. После всех
строчек с объявлением известных патчей вставляю:
Patch4: bind_ldap.patch
И в секцию %prep добавляю:
%patch4 -p1
Все. Собираю пакет:
$ rpmbuild -bb --clean bind.spec
В /usr/src/asplinux/RPMS/i386 должен появиться
bind-9.2.1-16asp.rpm. Устанавливаю его:
$ rpm -Uhv bind-9.2.1-16asp.rpm
Готово. Теперь нужно обратить внимание на LDAP. Часть данных
описывающих зоны уже занесена. Надо занести данные еще о двух зонах:
"karavay-shops.ru" и "2.168.192.in-addr.apra". Заодним, я попробую
объяснить, что именно заносится. Итак, прямая зона "karavay-shops.ru":
***********************************************************************
$TTL 86400
@ IN SOA bridge.karavay-shops.ru. root.bridge.karavay-shops.ru.
(
2003120201 28800 14400 3600000 86400 )
IN NS bridge.karavay-shops.ru.
IN A 192.168.2.254
IN MX 0 bridge.karavay-shops.ru.
bridge IN A 192.168.2.254
IN MX 0 bridge
ns IN CNAME bridge
www IN CNAME bridge
ftp IN CNAME bridge
ntp IN CNAME bridge
smtp IN CNAME bridge
pop IN CNAME bridge
nserv IN A 192.168.2.1
vika IN A 192.168.2.11
mily IN A 192.168.2.12
nina IN A 192.168.2.13
tany IN A 192.168.2.14
nata IN A 192.168.2.15
yurist IN A 192.168.2.21
admin IN A 192.168.2.100
nikolay IN A 192.168.2.130
tanya IN A 192.168.2.140
secretary IN A 192.168.2.150
***********************************************************************
Тогда в базу необходимо добавить следующие данные:
begin ou_dns_kar.ldif # Контейнер зоны
dn: zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
zoneName: karavay-shops.ru
relativeDomainName: karavay-shops.ru
# SOA запись в описании зоны
dn: relativeDomainName=@,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: @
zoneName: karavay-shops.ru
dNSClass: IN
sOARecord: bridge.karavay-shops.ru. root.bridge.karavay-shops.ru. 2004022701
28800 14400 3600000 864
00
# NS запись (Name Server)
nSRecord: bridge.karavay-shops.ru.
# A запись (Address)
aRecord: 192.168.2.254
# MX запись (Mail eXchange)
mXRecord: 0 bridge.karavay-shops.ru.
# A и MX записи для имени bridge. Здесь видно что все атрибуты для
# данного relativeDomainName относятся только к нему и не нужно отдельно
# описывать кажды атрибут
dn: relativeDomainName=bridge,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: bridge
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.254
mXRecord: 0 bridge
# CNAME записи указывающие на bridge. Это пример того, что несколько может быть
не только атрибутов-записей, но и атрибутов-имен
dn: relativeDomainName=ns,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: ns
relativeDomainName: www
relativeDomainName: ftp
relativeDomainName: ntp
relativeDomainName: smtp
relativeDomainName: pop
zoneName: karavay-shops.ru
dNSClass: IN
cNAMERecord: bridge
# Здесь и дальше обычные А записи
dn: relativeDomainName=nserv,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: nserv
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.1
dn: relativeDomainName=vika,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: vika
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.11
dn: relativeDomainName=mily,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: mily
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.12
dn: relativeDomainName=nina,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: nina
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.13
dn: relativeDomainName=tany,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: tany
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.14
dn: relativeDomainName=nata,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: nata
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.15
dn: relativeDomainName=yurist,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: yurist
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.21
dn: relativeDomainName=admin,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: admin
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.100
dn: relativeDomainName=nikolay,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: nikolay
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.130
dn: relativeDomainName=tanya,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: tanya
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.140
dn: relativeDomainName=secretary,zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: secretary
zoneName: karavay-shops.ru
dNSClass: IN
aRecord: 192.168.2.150
end ou_dns_kar.ldif Данные касающиеся описания зоны 2.168.192.in-addr.arpa
***********************************************************************
$TTL 86400
@ IN SOA bridge.karavay-shops.ru. root.bridge.karavay-shops.ru.
(
2003112102 28800 14400 3600000 86400 )
IN NS bridge.karavay-shops.ru.
1 IN PTR nserv.karavay-shops.ru.
11 IN PTR vika.karavay-shops.ru.
12 IN PTR mily.karavay-shops.ru.
13 IN PTR nina.karavay-shops.ru.
14 IN PTR tany.karavay-shops.ru.
15 IN PTR nata.karavay-shops.ru.
21 IN PTR yurist.karavay-shops.ru.
100 IN PTR admin.karavay-shops.ru.
130 IN PTR nikolay.karavay-shops.ru.
140 IN PTR tanya.karavay-shops.ru.
150 IN PTR secretary.karavay-shops.ru.
254 IN PTR bridge.karavay-shops.ru.
***********************************************************************
begin ou_dns_kar_r.ldif dn: zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
zoneName: 2.168.192.in-addr.arpa
relativeDomainName: 2.168.192.in-addr.arpa
# SOA запись
dn: relativeDomainName=@,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: @
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
sOARecord: bridge.karavay-shops.ru. root.bridge.karavay-shops.ru. 2004022701
28800 14400 3600000 864
00
nSRecord: bridge.karavay-shops.ru.
# В обратной зоне почто все также как и в прямой, только вместо А
# записей - PTR (PoinTeR)
dn: relativeDomainName=1,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 1
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
# PTR -
pTRRecord: nserv.karavay-shops.ru.
dn: relativeDomainName=11,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 11
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: vika.karavay-shops.ru.
dn: relativeDomainName=12,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 12
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: mily.karavay-shops.ru.
dn: relativeDomainName=13,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 13
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: nina.karavay-shops.ru.
dn: relativeDomainName=14,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 14
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: tany.karavay-shops.ru.
dn: relativeDomainName=15,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 15
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: nata.karavay-shops.ru.
dn: relativeDomainName=21,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 21
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: yurist.karavay-shops.ru.
dn: relativeDomainName=100,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 100
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: admin.karavay-shops.ru.
dn: relativeDomainName=130,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 130
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: nikolay.karavay-shops.ru.
dn: relativeDomainName=140,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 140
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: tanya.karavay-shops.ru.
dn: relativeDomainName=150,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 150
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: secretary.karavay-shops.ru.
dn: relativeDomainName=254,zoneName=2.168.192.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 254
zoneName: 2.168.192.in-addr.arpa
dNSClass: IN
pTRRecord: bridge.karavay-shops.ru.
end ou_dns_kar_r.ldif Сейчас я имею
...
|
|-- DNS
| |
| |-- localhost
| | |
| | |-@
| |
| |-- 0.0.127.in-addr.arpa
| | |
| | |-- @
| | |-- 1
| |
| |-- karavay-shops.ru
| | |
| | |-- @
| | |-- bridge
| | |-- ns
| | |-- nserv
| | |-- vika
| | |-- mily
| | |-- nina
| | |-- tany
| | |-- nata
| | |-- yurist
| | |-- admin
| | |-- nikolay
| | |-- tanya
| | |-- secretary
| |
| |-- 2.168.192.in-addr.arpa
| |
| |-- @
| |-- 1
| |-- 11
| |-- 12
| |-- 13
| |-- 14
| |-- 15
| |-- 21
| |-- 100
| |-- 130
| |-- 140
| |-- 150
| |-- 254
...
Как я уже писал выше, обязательно к LDAP должна быть подключена
схема, описывающая объекты и атрибуты, необходимые для работы связки
LDAP и bind.
Дело осталось за малым - в /etc/named.conf внести изменения в
описания зон:
было - зона localhost и ее обратная:
zone "localhost" IN {
type master;
file "localhost";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa";
allow-update { none; };
};
стало
zone "localhost" IN {
type master;
database "ldap ldap://127.0.0.1/zoneName=localhost,ou=DNS,dc=karavay-shops,dc=ru
86400";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
database "ldap ldap://127.0.0.1/zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
86400";
allow-update { none; };
};
было - зона karavay-shops.ru и ее обратная:
zone "karavay-shops.ru" IN {
type master;
file "karavay-shops.ru";
};
// Обратная зона для домена karavay-shops.ru
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.in-addr.arpa";
};
стало
zone "karavay-shops.ru" IN {
type master;
database "ldap ldap://127.0.0.1/zoneName=karavay-shops.ru,ou=DNS,dc=karavay-shops,dc=ru
86400";
};
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=karavay-shops,dc=ru
86400";
};
Перезапускаем DNS-сервер:
$ /sbin/service named restart
Все. Желающие могут проверить через nslookup и ping.
C уважением, Kolotov Alexandr aka mr. Эбола
отвечать: akmypo***@m*****.ru
ICQ: 100349254
| Registered Linux user # 236664 |
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.kirovlug--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru