Strona główna BSD DHCP + LDAP

DHCP + LDAP

przez CoreBlog

W tym artykule opiszę proces instalacji i konfiguracji serwera DHCP (ISC-DHCP), który będzie korzystał z danych przechowywanych w globalnej bazie LDAP.

Aby zainstalować serwer DHCP z obsługą LDAP skorzystamy z systemu portów.

cd /usr/ports/net/isc-dhcp42-server/
make install clean

Zostawiamy DHCP_PARANOIA, zaznaczamy opcję WITH_LDAP i jeśli nie korzystamy z SSLa, odznaczamy DHCP_LDAP_SSL.

Tworzymy plik konfiguracyjny dhcpd.conf:

/usr/local/etc/dhcpd.conf

ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin,dc=firma,dc=bogus";
ldap-password "secret";
ldap-base-dn "dc=firma,dc=bogus";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
ldap-server-cn "DHCP";
# lub ldap-dhcp-server-cn "DHCP";
# w różnych wersjach serwera spotykałem sie z różnymi dyrektywami.

Musimy jeszcze dodać plik ze schematem DHCP do OpenLDAP:

cp /usr/local/share/isc-dhcp41-server/dhcp.schema /usr/local/etc/openldap/schema/dhcp.schema

Do pliku konfiguracyjnego serwera LDAP (/usr/local/etc/openldap/slapd.conf) dopisujemy dyrektywę include oraz index:

include         /usr/local/etc/openldap/schema/dhcp.schema
 
# DHCP indices
index   dhcpHWAddress eq
index   dhcpClassData eq

Wyłączamy serwer:

/usr/local/etc/rc.d/slapd stop

generujemy indexy:

slapindex

i uruchamiamy ponownie serwer LDAP:

/usr/local/etc/rc.d/slapd start

Poniżej przedstawiam przykładową konfigurację drzewa DHCP (w formacie LDIF):

dn: cn=DHCP,dc=firma,dc=bogus
objectClass: top
objectClass: dhcpServer
cn: DHCP
dhcpServiceDN: cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus
 
dn: cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus
cn: DHCP Service
dhcpOption: domain-name-servers 192.168.0.1
dhcpOption: unknown-252 "http://server/proxy.pac\n"
dhcpPrimaryDN: cn=DHCP,dc=firma,dc=bogus
dhcpStatements: server-identifier server.firma.local
dhcpStatements: default-lease-time 3600
dhcpStatements: max-lease-time 7200
dhcpStatements: authoritative
dhcpStatements: ddns-update-style none
objectClass: top
objectClass: dhcpService
objectClass: dhcpOptions
 
dn: cn=192.168.0.0,cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus
cn: 192.168.0.0
dhcpNetMask: 24
dhcpOption: domain-name-servers 192.168.0.1
dhcpOption: domain-name "firma.local"
dhcpOption: routers 192.168.0.1
dhcpOption: broadcast-address 192.168.0.255
dhcpOption: netbios-name-servers 192.168.0.2
dhcpOption: netbios-node-type 8
dhcpRange: 192.168.0.72 192.168.0.95
dhcpStatements: default-lease-time 3600
dhcpStatements: max-lease-time 7200
objectClass: top
objectClass: dhcpSubnet
objectClass: dhcpOptions
 
dn: cn=host-one,cn=192.168.0.0,cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus
objectClass: top
objectClass: dhcpHost
cn: host-one
dhcpHWAddress: ethernet 00:13:74:3d:75:07
dhcpStatements: fixed-address 192.168.0.100

Na sam koniec uruchamiamy serwer DHCP. W tym celu dopisujemy do pliku /etc/rc.conf

dhcpd_enable=”YES”

i uruchamiamy serwer wydając komendę:

/usr/local/etc/rc.d/isc-dhcpd start

Powiązane artykuły

Napisz komentarz