Mon réseau d’entreprise
14.3 Les serveurs pour le démarrage
14.3.1 Le serveur dhcp de l’ISC
L’isc fournit quelques serveurs cruciaux pour internet, comme le serveur de nom bind et deux serveurs dhcp. Le serveur dhcp (défini par la RFC 1531, modifiée et complétée par les RFC 1534, RFC 2131 et RFC 2132) permet de démarrer la configuration automatique. Il est ainsi possible de transmettre à un ordinateur sa configuration ip ainsi que de nombreux autres informations comme son système de lancement ou l’adresse de sa configuration. Ces fichiers sont transmis, en général, par un serveur tftp.
Le nom du paquet est isc-dhcp-server. Le serveur ne se lance pas automatiquement, il faut le configurer d’abord. Il faut commencer par définir les interfaces sur laquelle ou lesquelles ce serveur va fournir des paramètres ip. Il faut donc modifier le fichier /etc/default/isc-dhcp-server. Par exemple, pour écouter uniquement l’interface enp0s31f6 en ipv4.
INTERFACESv4="enp0s31f6"
Ensuite, il faut lui indiquer quels éléments fournir. Il faut modifier le fichier /etc/dhcp/dhcpd.conf pour l’adapter au réseau local. Le fichier de configuration du serveur dhcp contient les définitions classiques de la configuration ip.
-
• adresse ip (ou ensemble) ;
-
• masque de sous-réseau ;
-
• adresse de la route par défaut ;
-
• adresse(s) du(des) serveurs dns
-
• d’autres paramètres peuvent être spécifiés en utilisant les extensions du protocole dhcp, ces extensions peuvent être soit listées dans le protocole, soit spécifiques à un matériel.
Ces définitions peuvent être soit globales, soit spécifiques à une partie du réseau, soit limitées à une seule adresse mac. Les paramètres ip peuvent êtres soit tirés dans un ensemble d’adresses possibles ou spécifique à une carte réseau.
Voici quelques explications :
-
• Le nom du domaine correspond à l’organisation. Par exemple : univ-amu.fr.
-
• Les temps de baux indiquent la durée pendant laquelle une adresse sera réservée pour un ordinateur.
-
• Les serveurs de nom.
-
• La route par défaut.
Il faut définir un subnet pour chaque interface :
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.120 192.168.0.133 ;
option domain-name-servers 10.243.31.1 ;
option routers 192.168.0.1 ;
}
14.3.2 Configuration de téléphones numériques
Nous montrons comment déployer un ensemble de téléphones IP. Nous détaillons le processus à partir d’un serveur GNU-Linux. C’est la même méthode, avec les mêmes outils qui est utilisée par les IPBX Aastra (et ceux des autres constructeurs).
Cette méthode est utilisée lors d’une installation de téléphones neufs. Donc, c’est mieux de les remettre en configuration usine. Les étapes à suivre sont :
-
• paramètres réseau et identification du serveur d’installation
-
• Chargement éventuel du firmware et des langues
-
• Chargement de la configuration du téléphone
-
• Mise en place des outils de logs et debug
-
• Connexion du téléphone au PABX
-
• Utilisation des services téléphoniques
14.3.2.1 Téléphones Aastra
Pour les téléphones AAstra, la configuration du serveur dhcp peut indiquer un serveur tftp. Ce serveur sera utilisé pour télécharger le ou les fichiers de configuration.
Pour les téléphones AAstra, il faut utiliser l’option 66 qui défini l’adresse du serveur tftp. pour cela, il faut définir la syntaxe de cette option :
option option-66 code 66 = text;
puis ajouter : option option-66 "tftp-server" ;
L’adresse du Mac du téléphone peut se trouver dans l’interface de programmation.
option option-66 code 66 = text;
option option-66 "192.168.1.10" ;
subnet 192.168.0.0 netmask 255.255.0.0 {
option broadcast-address 192.168.255.255;
option domain-name-servers 139.124.1.2;
}
host AA55i-1{
hardware ethernet 00:08:5d:24:36:b7 ;
fixed-address 192.168.1.33 ;
option host-name "AA55i-1";
}
Vérifier en redémarrant le téléphone que le réglage est correct (paramètres ip). Au besoin, utilisez tcpdump ou tshark ou dhcpdump.
14.3.3 transfert trivial de fichiers
Trivial File Transfer Protocol (RFC 1350) est un protocole de transfert de fichiers simple. Il est souvent utilisé pour transférer le code de démarrage ou d’auto-configuration.
Il permet de télécharger un fichier dont on connaît le nom et le serveur. C’est un protocole non sécurisé. La machine cliente n’est pas identifiée et le transfert n’est pas crypté.
Il fonctionne en UDP sur le port 69. Il existe de nombreuses implémenations du serveur. Le client, en général est enregistré dans la rom de l’ordinateur. Tftp est rarement utilisé en dehors de la phase de démarrage.
Le serveur à utiliser sera : tftpd-hpa. Le fichier /etc/default/tftpd-hpa contient la définition des directives, en particulier le nom du répertoire où déposer les fichiers.
Le téléphone Aastra commence par essayer de trouver un fichier aastra.cfg qui peut contenir, par exemple :
#aastra default config file time zone name: FR-Paris time server1: ntp.quelpart time format: 1
Si ce fichier existe, alors le téléphone cherchera ensuite un fichier MAC.cfg (MAC étant remplacé par l’adresse MAC du téléphone). Vous pouvez utiliser tshark ou les logs pour vérifier la syntaxe exacte.
Vous pouvez ensuite configurer complètement le téléphone en utilisant l’interface Web et sauvegarder le fichier en utilisant l’onglet “troubleshooting”.
14.3.4 dnsmasq
Le serveur dnsmasq fournit les services de serveur de nom, dhcp et tftp. Il est conçu pour être simple à configurer et léger. Il est souvent utilisé dans les systèmes embarqués, comme les points d’accès.
Il peut être configuré pour fournir les trois services, deux de ces services ou juste un seul.
14.3.4.1 dnsmasq pour un point d’accès
Dans la section ?? sur hostapd, nous avons montré comment mettre en place la liaison de données entre un point d’accès et un client (voire plusieurs).
Pour que le client puisse utiliser le réseau, il faut lui attribuer les quatre paramètres ip.
Le serveur dhcp va fournir l’adresse ip, le masque, l’adresse du routeur par défaut et l’adresse du serveur de nom.
En général, le même boîtier va fournir le serveur dhcp, le serveur dns et le routeur. Ce n’est pas obligatoire, mais c’est ce que nous allons montrer. Le serveur dnsmasq va fournir les services dhcp et dns. Il ne fournira pas la partie routeur que nous traiterons plus tard.
L’installation se fait classiquement. Quand l’exécutable dnsmasq s’exécute, il fournit spontanément le service de nommage. Pour cela, il utilise le fichier local /etc/hosts et le serveur de nom de l’ordinateur hébergeur. Celui ci utilisera les services distants et offrira aux clients le service. C’est le comportement classique d’une box qui fournit le service aux ordinateurs locaux et qui interroge les serveurs du fournisseur d’accès.
Le nom dnsmasq indique que ce serveur masque les serveurs officiels au réseau local. Il permet aussi de masquer une résolution pour faire pointer un nom officiel vers un miroir local. Ainsi, le serveur de paquets Debian français ftp.fr.debian.org peut pointer sur un miroir local, comme 10.30.3.3.
Pour la partie dhcp, la première utilisation du service consiste à définir un ensemble d’adresses disponibles pour les clients. Les clients n’auront pas d’adresse fixe. Pour éviter de modifier le fichier de configuration principal, il est possible d’utiliser un fichier spécifique, comme 192.168.conf dans le répertoire /etc/dnsmasq.d.
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
Cela définit la plage des adresses de 50 à 150. Il faut bien sûr qu’une des interfaces réseaux possède une adresse compatible. Pour affecter une adresse spécifique à une adresse mac et lui donner un nom, la syntaxe est voisine :
dhcp-host=11:22:33:44:55:66,dolin,192.168.0.60,45m
La connexion des clients peut alors s’établir. Ils vont obtenir leur paramètres ip mais la connexion va échouer car il n’y aura pas d’accès internet.
14.3.4.2 Et un peu de routeur
Le routage est assez simple à mettre en œuvre. Il faut commencer par router. Pour cela, il faut vérifier la valeur du pseudo fichier /proc/sys/net/ipv4/ip_forward. La valeur 1 indique que Linux va router, la valeur 0 indique qu’il n’y a pas de routage. Pour rendre la modification permaente, il faut décommenter la ligne du fichier /etc/sysctl.conf. Ce comportement est en train d’évoluer. Le fichier est en train de disparaître. Dans un premier temps, il est possible d’ajouter un fichier routeur.conf dans le répertoire /etc/sysctl.d.
#net.ipv4.ip_forward=1
En général les points d’accès fournissent des adresses privées (comme 192.168.X.Y ou 10.X.Y.Z) aux clients. Ces adresses ne permettent pas d’aller sur Internet sans activer la translation d’adresses. Pour cela, il faut exécuter la commande suivante :
/sbin/iptables -t nat -A POSTROUTING -o enp0s31f6 -j MASQUERADE
Si l’interface qui permet au point d’accès d’aller sur internet est enp0s31f6, alors le trafic qui sortira par cette interface sera natté.
14.3.4.3 Quelques aides supplémentaires
Pour des raisons de sécurité, dnsmasq ne répond que pour les machines connectées directement. Cela évite que le reste du monde n’utilise votre serveur. L’inconvénient, c’est que si votre serveur de nom utilise dnsmasq, alors il faut que ce serveur soit dans votre réseau local.
Si le démon ne fonctionne pas, c’est souvent une erreur dans un fichier de configuration. Le démon peut vérifier le fichier de configuration pour chercher une erreur :
# dnsmasq --test dnsmasq: mauvaise option à la ligne 1 de /etc/dnsmasq.conf
Mais, il ne vérifie pas (en août 23) les fichiers inclus, il est alors possible de véfifier les logs.
-
1. avec systemctl status
# systemctl status dnsmasq.service ... ...: mauvaise optionà la ligne 1 de /etc/dnsmasq.d/vde2.conf ...
-
2. avec le syslog :
# grep dns /var/log/syslog ... ... mauvaise optionà la ligne 1 de /etc/dnsmasq.d/vde2.conf ...
Pour indiquer un serveur d’installation pour un client pxe, il faut ajouter une ligne indiquant le nom du fichier, le nom et l’adresse IP du serveur TFTP dans le fichier de configuration du serveur dnsmasq.
dhcp-boot=pxelinux.0,nazgul,10.30.3.1