Интегрируем службу DHCP v 3.x.x с OpenLDAP 2.4.x Ubuntu 9.10
В предыдущей
статье мы настроили OpenLDAP версии 2.4.x теперь давайте попробуем связать сервис DHCP с OpenLDAP
1. Ставим сервис DHCP
apt-get -y install dhcp3-server-ldap
2. Подготовим конфигурационный файл он нам понадобится в дальнейшем
cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.main
cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.back
nano /etc/dhcp3/dhcpd.conf.main
приводим к следующему виду:
ddns-update-style none;
option domain-name "local.net";
option domain-name-servers ds.local.net;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.хх.хх.0 netmask 255.255.255.0 {
range 10.хх.хх.100 10.хх.хх.200;
option domain-name-servers ds.local.net;
option domain-name "local.net";
option routers 10.хх.хх.1;
option broadcast-address 10.хх.хх.255;
}
host new-01.local.net {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 10.хх.хх.101;
}
Заменяем основной конфигурационный файл
cp dhcpd.conf.main dhcpd.conf
проверяем что dhcp сервер нормально работает:
останавливаем сервис
root@ds:/etc/dhcp3# /etc/init.d/dhcp3-server stop
* Stopping DHCP server dhcpd3 [fail]
запускаем сервис
root@ds:/etc/dhcp3# /etc/init.d/dhcp3-server start
* Starting DHCP server dhcpd3 [OK]
3. Подготовим схему DHCP для LDAP сервера
Перейдем в каталог с документацией и распакуем схему
сd /usr/share/doc/dhcp3-server-ldap
gunzip dhcp.schema.gz
Скопируем схему для DHCP
cp /usr/share/doc/dhcp3-server-ldap/ dhcp.schema /etc/ldap/schema
Перейдем по следующему пути
cd /etc/ldap/slapd.d/cn=config/cn=schema
Посмотрим какие схемы у нас подключены
ls
Получим результат следующего вида
cn={0}core.ldif cn={1}cosine.ldif cn={2}inetorgperson.ldif cn={3}nis.ldif
Как видим в новом (с версии 1.4.) сервре OpenLDAP схемы подключаются динамически в формате
ldif, а не
schema как в предыдущих версиях OpenLDAP. Так как требуемая нам схема DHCP поставляется в формате
schema поэтому преобразуем ее в
ldif формат:
Создадим файл для преобразования
cd /usr/src
nano export.to.ldif
Приведем к следующему виду:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/dhcp.schema
* Возможно подключенных схем у вас будет больше или меньше но в файле export.to.ldif они должны быть перечислены все*Создадим каталог
mkdir to_ldif
запустим преобразование
slaptest -f /usr/src/export.to.ldif -F /usr/src/to_ldif
Если все правильно сделано увидим результат работы:
config file testing succeeded
а в каталоге to_ldif будет создан каталог cn=config cодержащий cn=schema c преобразованными в ldif схемами.
В моем примере схема будет называется cn={4}dhcp.ldif почему см. export.to.ldif
4. Подготовим cn={4}dhcp.ldif файл для подключения в OpenLDAP
cp /usr/src/to_ldif/cn=config/cn=schema/cn={4}dhcp.ldif /usr/src/dhcp.ldif
nano /usr/src/dhcp.ldif
заменим
dn: cn={4}dhcp
objectClass: olcSchemaConfig
cn: {4}dhcp
на
dn: cn=dhcp,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: dhcp
и удалим в конце файла все записи начиная с
structuralObjectClass: olcSchemaConfig
entryUUID:
скопируем полученный файл в каталог схем
cp /usr/src/dhcp.ldif /etc/ldap/schema/
5. Подключим схему в OpenLDAP
ldapadd -x -W -D cn=admin,cn=config -f /etc/ldap/schema/dhcp.ldif
вводим пароль и если все в норме получаем
Enter LDAP Password:
adding new entry "cn=dhcp,cn=schema,cn=config"
6. Проверяем:
Я использую phpldapadmin. В разделе схема (Schema) должны появится схемы DHCP,
а в каталоге /etc/ldap/slapd.d/cn=config/cn=schema появится файл контейнера cn={4}dhcp.ldif
Все, схема подключена, теперь перенесем настройки сервера DHCP в OpenLDAP
7. Воспользуемся скриптом входящим в поставку DHCP сервера /usr/share/doc/dhcp3-server-ldap
cd /usr/share/doc/dhcp3-server-ldap
gunzip gunzip dhcpd-conf-to-ldap.pl.gz
chmod 0755 dhcpd-conf-to-ldap.pl
./dhcpd-conf-to-ldap.pl --conf /etc/dhcp3/dhcpd.conf --ldif /usr/src/zone.ldif
Если все выполнено правильно увидим такой вывод:
Creating LDAP Configuration with the following options:
Base DN: dc=local,dc=net
DHCP DN: cn=DHCP Config, dc=local,dc=net
Server DN: cn=ds, dc=local,dc=net
Done.
8. Импортируем настройки сервера DHCP в OpenLDAP
ldapadd -x -W -D "cn=admin,dc=local,dc=net" -f /usr/src/zone.ldif
вводим пароль:
Enter LDAP Password:
adding new entry "cn=ds, dc=local,dc=net"
adding new entry "cn=DHCP Config, dc=local,dc=net"
adding new entry "cn=10.30.96.0, cn=DHCP Config, dc=local,dc=net"
adding new entry "cn=new-01.local.net, cn=DHCP Config, dc=local,dc=net"
Все настройки для DHCP созданы.
9. Проверим в phpldapadmin должны появится два объекта
cn=DHCP Config
cn=ds
10. Теперь укажем DHCP серверу брать настройки из OpenLdap
Для этого приведем конфигурационный файл dhcpd.conf к следующему виду
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=local, dc=net";
ldap-password "example";
ldap-base-dn "dc=local, dc=net";
ldap-method dynamic;
11. Перезапускаем сервер
/etc/init.d/dhcp3-server restart
Если все ОК видим:
* Stopping DHCP server dhcpd3 [OK]
* Starting DHCP server dhcpd3 [OK]
12. На сегодня работа сделана, теперь можно доставать из холодильника пиво !С Уважением Денис А. Ксенофонтов ака
PiNCeR