Articles dans la catégorie ’Réseau’
Fedora 17 : le pare-feu dynamique firewalld
Fedora 17 permet de remplacer le pare-feu traditionnel statique (outils iptables et fichier /etc/sysconfig/iptables) par un pare-feu dynamique nommé firewalld possédant une interface d-bus. Il est ainsi possible de modifier les règles à la volée sans avoir à redémarrer le daemon.
Installation :
Firewalld n’est pas actif par défaut sous Fedora 17. A priori, cela est prévu pour Fedora 18, le temps pour les développeurs de finaliser les outils spécifiques et d’adapter ceux existants à ce nouveau pare-feu.
L’installation se fait simplement à l’aide de la commande :
yum install firewalld
Il convient alors de désactiver le lancement du pare-feu statique installé par défaut afin que celui-ci n’interfère pas avec firewalld :
systemctl stop iptables.service systemctl disable iptables.service
Nous pouvons ensuite permettre le démarrage automatique de firewalld :
systemctl start firewalld.service systemctl enable firewalld.service
La commande firewall-cmd :
La commande firewall-cmd permet de contrôler le pare-feu dynamiquement (liste des règles actives, ouverture/fermeture de port, …)
firewalld supporte le concept de « zone de réseau » permettant de gérer des profils de règles à appliquer en fonction du réseau sur lequel on se trouve ( par exemple tout fermer lorsque l’on est sur un réseau
public et ouvrir ssh et samba lorque l’on est sur un réseau professionnel).
Pour connaître la zone par défaut, il faut utiliser la commande :
firewall-cmd --get-default-zone
Par défaut, sous Fedora, la commande retournera public.
La zone a lancer par défaut est fixée dans le fichier /etc/firewalld/ firewalld.conf :
# default zone # The default zone used if an empty zone string is used. # Default: public DefaultZone=public
Pour connaître la zone en cours d’exécution, nous pouvons utiliser la commande :
firewall-cmd --get-active-zones
La réponse fournie ici est « public: em1 » ce qui signifie que le profil public est en cours d’execution sur l’interface réseau em1.
Pour obtenir la liste des services autorisés pour le profil public, il suffit de taper :
firewall-cmd --zone=public --list-service
Pour obtenir la liste des ports ouvert pourle profil public, il suffit de taper :
firewall-cmd --zone=public --list=port
L’ensemble des profils définis s’obtient avec la commande :
firewall-cmd --get-zones
Par défaut, sous Fedora les profils drop work internal external trusted home dmz public block sont présents.
Le liste des services pré-définis se trouve sous le répertoire /usr/lib/firewalld/services :
Ce sont de simples fichiers xml. Il nous est donc possible de créer un fichier de services par exemple pour une application fonctionnant sur le port 9000 en créant le fichier /etc/firewalld/services/monappli.xml :
<?xml version="1.0" encoding="utf-8"?> <service name="monappli"> <short>MonAppli (9000)</short> <description>Mon serveur d'applications.</description> <port protocol="tcp" port="9000"/> </service>
Pour que firewalld prenne connaissance de ce nouveau service, il est nécessaire de le redémarrer :
systemctl restart firewalld.service
Pour activer le service monappli dans le profil home, il suffit ensuite de faire :
firewall-cmd --zone=home --add --service=monappli
Pour connaître l’ensemble des services actifs sous le profil home :
firewall-cmd --zone=home --list=service
Pour retirer un service d’un profil (par exemple ipp-client du profil home), il faut taper :
firewall-cmd --zone=home --remove --service=ipp-client
Plutôt que de passer par des services prédéfinis, nous pouvons également ouvrir des ports directement :
firewall-cmd --zone=home --add --port=9000/tcp
Pour activer le profil home, il suffit de faire :
firewall-cmd --set-default-zone=home
Attention, ceci est un changement permanent (cela modifie le fichier /etc/firewalld/firewalld.conf). Lors du prochain redémarrage de firewalld, le profil chargé par défaut sera home
Cependant, les services/ports activés ou désactivés à l’aide de la commande firewall-cmd seront perdus. En effet, cette commande n’impacte que la session courante du service firewalld.
Si nous voulons effectuer des modifications permanentes, il faut modifier les fichiers de configurations des zones.
Par exemple pour rajouter de manière permanent le service monappli au profil de zone home, il faut tout d’abord copier le fichier par défaut de cette zone dans le répertoire /etc/firewalld/zones :
cp /usr/lib/firewalld/zones/home.xml /etc/firewalld/zones/
Puis modifier le fichier /etc/firewalld/zones/home.xml :
<?xml version="1.0" encoding="utf-8"?> <zone name="home"> <short>Home</short> <description>For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ssh"/> <service name="ipp-client"/> <service name="mdns"/> <service name="samba-client"/> <service name="dhcpv6-client"/> <service name="monappli"/> </zone>
Comme nous l’avons vu, le nouveau pare-feu firewalld permet de changer les règles à la volée mais nous sommes dans l’obligation de modifier les fichiers de configuration à la main dés que nous voulons que les changements opérés soient permanents. Cependant, le concept de zone peut être utile pour les ordinateurs mobiles. firewalld permet également, via l’option –timeout, d’ouvrir un port/service pour une durée determinée.
Par exemple, pour autoriser le service monappli sur le profil home (en cours d’execution) pendant 10s il faut faire:
firewall-cmd --zone=home --add --service=monappli --timeout=10
Ainsi s’achève ce tour d’horizon de firewalld …
Supervision de baies de stockage Dell EqualLogic avec Nagios
Après la surveillance des hôtes VMware ESX(i), nous allons nous intéresser dans cet article à un des points névralgiques d’une infrastructure VMware vSphere : le stockage. Qu’il soit local ou partagée, une attention toute particulière doit lui être accordée.
Dans le cadre de mon travail, j’ai été amené à mettre en place et à utiliser un réseau de stockage s’appuyant sur une baie de stockage Dell EqualLogic PS6000XV (SAN iSCSI).
Pour vérifier l’état de santé et mesurer des données performances des baies de stockage Dell EqualLogic, Dell fournit gratuitement l’utilitaire Dell EqualLogic SAN HeadQuarters. Il est également possible de recevoir des notifications par courrier électronique pour être averti de problèmes éventuels.
Afin de centraliser la supervision de ce type de baie de stockage au sein de la solution de supervision Nagios, il m’a fallu développer un plugin Nagios dédié à cette tâche. Il repose sur la collecte des informations à l’aide de la version 1 du protocole SNMP. Le résultat est la publication aujourd’hui sous licence GPLv2 du plugin Nagios check_snmp_dell_equallogic. Il est construit sur la notion de groupe et de membres. Chaque groupe Dell EqualLogic prend en charge jusqu’à 16 baies de stockage, que l’on appelle des membres.
Le plugin check_snmp_dell_equallogic permet de vérifier l’état de l’alimentation, des batteries, des contrôleurs, de chaque disque dur, du RAID et des interfaces réseaux. Il permet également de récupérer plusieurs données de performances comme la vitesse des ventilateurs, le nombre d’entrées/sorties par seconde (IOPS), la latence, la température, le nombre de connexion iSCSI, l’utilisation de l’espace disque et enfin la consommation des différents volumes (LUNs). Ce qui donne dans l’interface Nagios (avec le thème Vautour Style) :
– Déplacez le plugin check_snmp_dell_equallogic dans le répertoire contenant les plugins Nagios : mv check_snmp_dell_equallogic /usr/local/nagios/libexec/
– Rendez le fichier exécutable : chmod +x /usr/local/nagios/libexec/check_snmp_dell_equallogic
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_snmp_dell_equallogic
Pour vérifier que ce plugin Nagios fonctionne correctement, il vous suffit de l’exécuter : /usr/local/nagios/libexec/check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t info
Ce qui devrait vous retourner : Member ‘BAIE01’ – Info : Storage Array Dell EqualLogic ‘xx-xxx’ (xxxxxxxx) has 2 controllers and 16 hard drives
L’argument H correspond à l’adresse IP du groupe de baies, C à la communauté SNMP, n au nom du membre et t au type d’information que vous souhaitez récupérer. Les valeurs possibles sont : battery, connection, controller, disk, fan, health, info, io, latency, network, redundancy, temperature, usage, raid et volume. En fonction du type d’information, il vous faudra utiliser d’autres arguments tels que d pour indiquer l’identifiant du disque dur. Vous trouverez plus d’informations sur son utilisation en affichant l’aide qui accompagne ce plugin : /usr/local/nagios/libexec/check_snmp_dell_equallogic -h
Voici quelques exemples d’utilisation :
– Vérifiez l’état des batteries : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t battery
Member ‘BAIE01’ – Battery status : cache battery in controller 1 is fully functional , cache battery in controller 2 is fully functional
– Récupérez le nombre de connexion iSCSI : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t connection -w 15 -c 20
Member ‘BAIE01’ – Number of iSCSI connections : 54 | con_iscsi=54;15;20;0
– Vérifiez l’état des contrôleurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t controller
Member ‘BAIE01’ – Controllers status : both controllers are fully functional
– Vérifiez l’état du disque dur d’identifiant 1 : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t disk -d 1
Member ‘BAIE01’ – Disk 1 (slot 0) status (type : SAS and size 419.18 Go ) : Disk is online. RAID is fully fonctionnal
– Récupérez la vitesse des ventilateurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t fan
Member ‘BAIE01’ – Fan speed : ‘Power Cooling Module 0 Fan 0’ : 5010 tr/min, ‘Power Cooling Module 0 Fan 1’ : 4800 tr/min, ‘Power Cooling Module 1 Fan 0’ : 4830 tr/min, ‘Power Cooling Module 1 Fan 1’ : 4830 tr/min, | ‘Power Cooling Module 0 Fan 0’=5010 ‘Power Cooling Module 0 Fan 1’=4800 ‘Power Cooling Module 1 Fan 0’=4830 ‘Power Cooling Module 1 Fan 1’=4830
– Contrôlez l’état global de la baie de stockage : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx-C public -n BAIE01 -t health
Member ‘BAIE01’ – Global system status : OK
– Récupérez le nombre d’entrée/sortie par seconde : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01-t io
Member ‘BAIE01’ – I/O Operations Per Second : Read counter’s value is 429346443 and write counter’s value is 548035313 | read=429346443c;0;0;0 write=548035313c;0;0;0
– Récupérez la latence en lecture et écriture : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t latency
Member ‘BAIE01’ – Reading average latency value is : 3 ms, writing average latency value is 2 ms | read=3;0;0;0 write=2;0;0;0
– Vérifiez si l’interface réseau eth0 est bien connecté : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t network -i eth0
Member ‘BAIE01’ – Network interface ‘eth0’ (10.100.2.10) status : Network interface is fully functional (MTU of 9000 and Speed of 1000)
– Vérifiez la redondance et l’état de l’alimentation : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t redundancy
Member ‘BAIE01’ – Power supply status : ‘Power Cooling Module 0’ is fully fonctionnal, ‘Power Cooling Module 1’ is fully fonctionnal
– Vérifiez l’état du RAID : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t raid
Member ‘BAIE01’ – RAID status : RAID is fully fonctionnal
– Récupérez la température des différents composants : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t temperature
Member ‘BAIE01’ – Temperatures : ‘Control module 0 processor’ : 60 Degres Celcius, ‘Control module 0 chipset’ : 24 Degres Celcius, ‘Control module 1 processor’ : 58 Degres Celcius, ‘Control module 1 chipset’ : 25 Degres Celcius, ‘Control module 0 SAS Controller’ : 56 Degres Celcius, ‘Control module 0 SAS Expander’ : 75 Degres Celcius, ‘Control module 1 SAS Controller’ : 59 Degres Celcius, ‘Control module 1 SAS Expander’ : 77 Degres Celcius, ‘Control module 1 SES Enclosure’ : 43 Degres Celcius, ‘Control module 0 Battery’ : 18 Degres Celcius, ‘Control module 1 Battery’ : 18 Degres Celcius, | ‘Control module 0 processor’=60 ‘Control module 0 chipset’=24 ‘Control module 1 processor’=58 ‘Control module 1 chipset’=25 ‘Control module 0 SAS Controller’=56 ‘Control module 0 SAS Expander’=75 ‘Control module 1 SAS Controller’=59 ‘Control module 1 SAS Expander’=77 ‘Control module 1 SES Enclosure’=43 ‘Control module 0 Battery’=18 ‘Control module 1 Battery’=18
– Récupérez l’utilisation de l’espace disque : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t usage -w 90 -c 95
Member ‘BAIE01’ – Used disk space : 3.90 To with a total disk space of 4.70 To (83%) with 0% for snapshots and 0% for replication | total=5173228339200B;4655905505280;4914566922240;0 used=4295035453440B;0;0;0 snapshots=0B;0;0;0 replicas=0B;0;0;0
– Récupérez la consommation d’un volume : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t volume -v volume01 -w 90 -c 95
Member ‘BAIE01’ – Volume ‘volume01’ (online) in RAID group ‘GRP01’ : 213.04 Go used on 500.00 Go (42%) | volume_used=228757340160B;483183820800;510027366400;0
Nous allons maintenant modifier la configuration de Nagios pour superviser une baie de stockage Dell EqualLogic. Cette partie dépend de l’arborescence de configuration et de l’installation de Nagios dont vous disposez.
– Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg
define command { command_name check_dell_equallogic_battery command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t battery } define command { command_name check_dell_equallogic_connection command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t connection -w $ARG3$ -c $ARG4$ } define command { command_name check_dell_equallogic_controller command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t controller } define command { command_name check_dell_equallogic_disk command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t disk -d $ARG3$ } define command { command_name check_dell_equallogic_fan command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t fan } define command { command_name check_dell_equallogic_health command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t health } define command { command_name check_dell_equallogic_io command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t io } define command { command_name check_dell_equallogic_latency command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t latency } define command { command_name check_dell_equallogic_network command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t network -i $ARG3$ -m $ARG4$ -s $ARG5$ } define command { command_name check_dell_equallogic_redundancy command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t redundancy } define command { command_name check_dell_equallogic_raid command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t raid } define command { command_name check_dell_equallogic_temperature command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t temperature } define command { command_name check_dell_equallogic_usage command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t usage -w $ARG3$ -c $ARG4$ } define command { command_name check_dell_equallogic_volume command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t volume -v $ARG3$ -w $ARG4$ -c $ARG5$ }
– Ajoutez la définition de l’objet host pour le groupe de baies de stockage : vi /etc/nagios/objects/hosts.cfg
define host { host_name grpbaies use generic_host alias Groupe de baies Dell EqualLogic address xxx.xxx.xxx.xxx contact_groups +admin }
– Ajoutez la définition des objets service pour la baie : vi /etc/nagios/objects/services.cfg
define service { host_name grpbaies use generic_service service_description BAIE01_Alimentation check_command check_dell_equallogic_redundancy!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Batteries check_command check_dell_equallogic_battery!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Connexions_iSCSI check_command check_dell_equallogic_connection!public!baie01!0!0 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Controleurs check_command check_dell_equallogic_controller!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Espace_Disque check_command check_dell_equallogic_usage!public!baie01!90!95 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_1 check_command check_dell_equallogic_disk!public!baie01!1 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_2 check_command check_dell_equallogic_disk!public!baie01!2 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_3 check_command check_dell_equallogic_disk!public!baie01!3 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_4 check_command check_dell_equallogic_disk!public!baie01!4 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_5 check_command check_dell_equallogic_disk!public!baie01!5 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_6 check_command check_dell_equallogic_disk!public!baie01!6 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_7 check_command check_dell_equallogic_disk!public!baie01!7 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_8 check_command check_dell_equallogic_disk!public!baie01!8 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_9 check_command check_dell_equallogic_disk!public!baie01!9 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_10 check_command check_dell_equallogic_disk!public!baie01!10 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_11 check_command check_dell_equallogic_disk!public!baie01!11 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_12 check_command check_dell_equallogic_disk!public!baie01!12 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_13 check_command check_dell_equallogic_disk!public!baie01!13 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_14 check_command check_dell_equallogic_disk!public!baie01!14 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_15 check_command check_dell_equallogic_disk!public!baie01!15 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Etat_Disque_16 check_command check_dell_equallogic_disk!public!baie01!16 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Interface_Reseau_eth0 check_command check_dell_equallogic_network!public!baie01!eth0!9000!1000 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Interface_Reseau_eth1 check_command check_dell_equallogic_network!public!baie01!eth1!9000!1000 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Interface_Reseau_eth2 check_command check_dell_equallogic_network!public!baie01!eth2!9000!1000 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Interface_Reseau_eth3 check_command check_dell_equallogic_network!public!baie01!eth3!9000!1000 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_IO check_command check_dell_equallogic_io!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Latence check_command check_dell_equallogic_latency!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_RAID check_command check_dell_equallogic_raid!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_Temperature check_command check_dell_equallogic_temperature!public!baie01 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_volume01 check_command check_dell_equallogic_volume!public!baie01!volume01!80!90 contact_groups +admin } define service { host_name grpbaies use generic_service service_description BAIE01_volume02 check_command check_dell_equallogic_volume!public!baie01!volume02!80!90 contact_groups +admin }
– Rechargez la configuration de Nagios : service nagios reload
Vos baies de stockage Dell EqualLogic peuvent être maintenant supervisé à l’aide de Nagios.
Mise à jour :
- 10/10/2014 : La consommation des volumes disponibles sur plusieurs membres a été corrigée.
- 13/11/2014 : Prise en compte de la MTU et de la vitesse pour la vérification d’une interface réseau (ajout des arguments -m et -s).
Mise en place serveur DHCP couplé à un annuaire LDAP sous Centos 6
Dans cet article, nous allons voir comment faire en sorte qu’un serveur dhcp utilise une configuration stockée dans un annuaire ldap plutôt que dans des fichiers de configuration statiques.
Le serveur utilisé tourne sous Centos 6. Un minimum de connaissance d’openldap et dhcpds est requis puisque nous ne détaillerons pas les commandes utilisées.
Tout d’abord, nous allons procéder à l’installation des paquets openldap et dhcpd :
yum install dhcp openldap-servers
Le paquet dhcp fourni par la distribution contient nativement tout le nécessaire pour coupler le serveur à un annuaire LDAP.
Dans le fichier /etc/openldap/slapd.conf, rajoutons ces lignes :
include /etc/openldap/schema/dhcp.schema ... index dhcpHWAddress eq index dhcpClassData eq
Dans notre exemple, le fichier slapd.conf est configuré pour gérer l’arbre dc=be-root,dc=com.
Dans le fichier /etc/dhcpd/dhcpd.conf, supprimons tout le contenu existant et remplaçons le par :
ldap-server "localhost"; ldap-port 389; ldap-username "uid=dhcpdaemon,dc=be-root,dc=com"; ldap-password "blahblah"; ldap-base-dn "dc=be-root,dc=com"; ldap-method dynamic;
Voici le fichier LDIF utilisé pour créer la racine de l’annuaire LDIF ainsi que le compte uid=dhcpdaemon
utilisé par le serveur dhcp pour interroger la base :
dn: dc=be-root,dc=com objectclass: top objectclass: organization objectclass: dcObject structuralObjectclass: organization dc: be-root o: Annuaire dn: uid=dhcpdaemon,dc=be-root,dc=com objectclass: top objectclass: inetOrgPerson objectclass: Person cn: Utilisateur pour daemon DHCP givenName: dhcpdaemon sn: dhcpdaemon uid: dhcpdaemon userPassword: {CRYPT}K3nDIt87oiYnA
Bien évidemment, ajustez les ACLs dans le fichier slapd.conf afin que l’utilisateur dhcpdaemon ait des droits suffisants.
Nous allons ensuite déclarer dans notre fichier LDIF une entrée permettant de déclarer un serveur dhcp ainsi que la configuration globale correspondante :
dn: cn=hostname_serveur_dhcp, dc=be-root, dc=com objectClass: top objectClass: dhcpServer cn: hostname_serveur_dhcp.be-root.com dhcpServiceDN: cn=configdhcp, dc=be-root, dc=com dn: cn=configdhcp, dc=be-root, dc=com cn: Configuration du serveur DHCP objectClass: top objectClass: dhcpService objectClass: dhcpOptions dhcpStatements: ddns-update-style none dhcpStatements: default-lease-time 3600 dhcpStatements: max-lease-time 7200 dhcpOption: domain-name-servers 10.0.2.2 dhcpPrimaryDN: cn=hostname_serveur_dhcp, dc=be-root, dc=com
Nous allons ensuite déclarer le subnet 10.0.2.0 comportant un pool allant de 10.0.2.10 à 10.0.2.20 dans le fichier LDIF :
dn: cn=10.0.2.0, cn=configdhcp, dc=be-root, dc=com cn: 10.0.2.0 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dhcpOption: routers 10.0.2.2 dhcpOption: subnet-mask 255.255.255.0 dhcpOption: broadcast-address 10.0.2.255 dhcpNetMask: 24 dhcpRange: 10.0.2.10 10.0.2.20
Nous pouvons également ajouter de l’adressage statique :
dn: cn=monpc, cn=configdhcp, dc=be-root, dc=com objectClass: top objectClass: dhcpHost cn: monpc dhcpHWAddress: ethernet 08:00:27:9B:3A:4D dhcpStatements: fixed-address 10.0.2.100
Bien évidemment, le fichier ldif doit être cohérent par rapport au fichier slapd.conf.
Il nous reste maintenant à utiliser la commande slapadd pour injecter notre fichier LDIF dans openldap et ensuite démarrer les services :
service slapd start service dhcpd start
Vérifiez les logs pour vous assurer du bon fonctionnement des services.
De plus, le serveur dhcpd-4.1.1 empaqueté avec la distribution Centos 6 fourni un script perl présent sous /usr/share/docs/dhcp-4.1.1/dhcpd-conf-to-ldap permettant de convertir un fichier dhcpd.conf existant au format ldif. La syntaxe est la suivante : perl /usr/share/docs/dhcp-4.1.1/dhcpd-conf-to-ldap < /etc/dhcpd/dhcpd.conf > output.ldif