Académique Documents
Professionnel Documents
Culture Documents
Linux
Administration
des Serveurs
11
TCP/IP | ROUTAGE IP | DHCP
NFS | SAMBA |
M.FILALI
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
5.3. Configuration des routages statiques par ip route...........................................39
Sommaire 5.4. Configuration de la passerelle par défaut........................................................40
5.5. Configuration des routages statiques par les fichiers ifcfg...............................41
CH1 : Configurer les services de base............................................................................9
TP-N°2-1 : Configurer les services de routage Statique (Enoncé)..................................44
1. Introduction :.............................................................................................................9
TP-N°2-1 : Configurer les services de routage Statique (Corrigée)................................45
2. Configuration de noms d'hôtes..................................................................................9
2.1. Comprendre les noms d'hôtes...........................................................................9 TP-N°2-2 : Configurer les services de routage Dynamique............................................50
2.2. Configurer des noms d'hôtes par hostnamectl.................................................10 TP-N°2-3 : Mise en Place des services de routage (Devoir Libre)..................................54
2.3. Configurer des noms d'hôtes par nmcli............................................................11
CH3 : Implémenter le serveur DHCP............................................................................56
3. Configuration des paramètres TCP/IP.......................................................................11
1. Introduction.............................................................................................................56
3.1. Introduction au NetworkManager.....................................................................11
3.2. Le démon du NetworkManager........................................................................12 2. Pourquoi utiliser DHCP ?..........................................................................................56
3.3. Configuration réseau par Interface en ligne de commandes (CLI)....................13 3. Configuration d'un serveur DHCP.............................................................................57
3.4. Configurer une interface de réseau en utilisant les commandes ip...................13 3.1. Fichier de configuration...................................................................................57
3.5. Configurer une interface de réseau en utilisant les commandes ifconfig..........14 3.2. Base de données d'attribution.........................................................................61
3.6. NetworkManager et les Scripts réseau.............................................................15 3.3. Lancement et interruption du serveur.............................................................61
3.7. Configurer une interface de réseau en utilisant les fichiers ifcfg......................17
4. Agent de relais DHCP...............................................................................................63
4. Résolution des noms de domaine............................................................................20 4.1. Configurer dhcrelay en tant qu'agent de relais DHCPv4 et BOOTP...................64
4.1. Résolution des noms.......................................................................................20 4.2. Configurer dhcrelay en tant qu'agent de relais DHCPv6...................................65
4.2. Les fichiers de configuration :..........................................................................22
5. Configuration d'un serveur DHCP Multi-hôtes...........................................................65
TP-N°1-1 : Configurer les services de base (Enoncé)....................................................24 5.1. Configuration de l'hôte....................................................................................67
TP-N°1-1 : Configurer les services de base (Corrigée)..................................................26 6. DHCP pour IPv6 (DHCPv6)........................................................................................69
TP-N°1-2 : Configurer les services de base (Devoir Libre).............................................31 TP-N°3-1 : Implémenter le serveur DHCP (Enoncé).......................................................71
CH2 : Configurer les services de routage.....................................................................32 TP-N°3-1 : Implémenter le serveur DHCP (Corrigée).....................................................72
2. Acheminement des paquets TCP-IP..........................................................................33 TP-N°3-2 : Configurer l’un agent de relais DHCP (Corrigée)..........................................77
2.1. Les tables de routage......................................................................................34
TP-N°3.3 : Mise en Place d’un serveur DHCP (Devoir Libre).........................................79
3. Acheminement Internet...........................................................................................36
CH4 : Implémenter le serveur BIND.............................................................................81
3.1. Domaine d'acheminement...............................................................................36
3.2. Principe du choix d'une voie d'acheminement.................................................36 1. Introduction.............................................................................................................81
M.FILALI Linux : Administration des Serveurs 3 M.FILALI Linux : Administration des Serveurs 4
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
3. BIND........................................................................................................................83 3.2. Configurer un service....................................................................................126
3.1. Zones vides.....................................................................................................83
4. TCP-Wrapper.........................................................................................................127
3.2. Configuration du service «named»..................................................................84
4.1. Principe de fonctionnement...........................................................................127
3.3. Configuration de fichiers de zone....................................................................93
4.2. Host.deny et host.allow.................................................................................128
3.4. Fichier de zone simple.....................................................................................99
TP-N°5-1 : Implémenter l’accès Telnet au Serveur (Enoncé).......................................129
3.5. Un fichier de zone de résolution de noms inversés........................................101
TP-N°5-1 : Implémenter l’accès Telnet au Serveur (Corrigée).....................................130
4. Comment se servir de l'utilitaire rndc....................................................................102
4.1. Configuration de l'utilitaire............................................................................102 TP-N°5-2 : Implémenter l’accès Telnet au Serveur (Devoir Libre)...............................135
4.2. Vérifier le statut de service rndc....................................................................103 CH6 : Implémenter l’accès sécurisé SSH au Serveur..................................................136
4.3. Configuration en ligne de commandes...........................................................103
1. Principe.................................................................................................................136
4.4. Mise à jour des clés de zone..........................................................................104
4.5. Activation de la validation DNSSEC................................................................104 2. Le protocole SSH...................................................................................................137
4.6. Activation de la journalisation des requêtes...................................................104 2.1. Pourquoi utiliser SSH ?..................................................................................137
2.2. Fonctionnalités principales............................................................................137
5. Utilisation de l'utilitaire dig....................................................................................104
2.3. Versions de protocole....................................................................................139
5.1. Rechercher un serveur de noms....................................................................105
2.4. Séquence d'événements d'une connexion SSH..............................................139
5.2. Recherche d'une adresse IP...........................................................................105
5.3. Recherche d'un nom d'hôte...........................................................................105 3. Configuration d'OpenSSH.......................................................................................141
3.1. Fichiers de configuration...............................................................................141
6. Fonctionnalités avancées de BIND.........................................................................106
3.2. Démarrage d'un serveur OpenSSH................................................................143
6.1. Vues multiples...............................................................................................106
3.3. Utilisation nécessaire de SSH pour les connexions à distance........................144
6.2. IXFR (Incremental Zone Transfers)................................................................107
3.4. Authentification basée clés............................................................................144
6.3. TSIG (Transaction SIGnatures).......................................................................107
6.4. DNSSEC (DNS Security Extensions )...............................................................107 4. Clients OpenSSH....................................................................................................149
6.5. IPv6 (Internet Protocol version 6)...................................................................108 4.1. Comment se servir de l'utilitaire ssh..............................................................149
4.2. scp................................................................................................................151
7. Erreurs communes à éviter....................................................................................108
4.3. sftp...............................................................................................................152
TP-N°4-1 : Implémenter le serveur DNS Primaire (Enoncé).........................................109
5. Beaucoup plus qu'un shell sécurisé........................................................................152
TP-N°4-1 : Implémenter le serveur DNS Primaire (Corrigée).......................................110 5.1. Transfert X11................................................................................................153
TP-N°4-2 : Implémenter le serveur DNS Secondaire(Enoncé)......................................117 5.2. Réacheminement de port..............................................................................153
TP-N°4-2 : Implémenter le serveur DNS Secondaire(Corrigée)....................................118 TP-N°6-1 : Implémenter l’accès sécurisé SSH au Serveur (Enoncé)............................155
TP-N°4-3 : Mise en Place d’un Serveur DNS (Devoir Libre)..........................................123 TP-N°6-1 : Implémenter l’accès sécurisé SSH au Serveur (Corrigée)...........................156
CH5 : Implémenter l’accès Telnet au Serveur.............................................................124 TP-N°6-2 : Création des Tunnels SSH (Devoir Libre)...................................................162
M.FILALI Linux : Administration des Serveurs 5 M.FILALI Linux : Administration des Serveurs 6
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
2. Démarrage et arrêt NFS.........................................................................................174 9. Programmes de distribution Samba.......................................................................206
4. Sécurisation de NFS...............................................................................................182
4.1. Sécurité NFS avec AUTH_SYS et les contrôles d'export..................................182
4.2. Sécurité NFS avec AUTH_GSS........................................................................183
4.3. Permissions de fichier....................................................................................184
5. NFS et rpcbind.......................................................................................................184
5.1. Résolution des problèmes NFS et rpcbind......................................................185
Samba.......................................................................................................................195
1. Introduction à Samba............................................................................................195
4. Monter le partage..................................................................................................199
M.FILALI Linux : Administration des Serveurs 7 M.FILALI Linux : Administration des Serveurs 8
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Il peut être changé par DHCP ou DNS en cours d'exécution. Le nom
CH1 : Configurer les services de base d'hôte « pretty »(hostname) se présente en forme libre UTF8 à l'utilisateur.
2.2. Configurer des noms d'hôtes par hostnamectl
L'outil hostnamectl est fourni pour administrer les trois classes de noms d'hôtes
utilisées sur un système donné.
2.2.1. Voir tous les noms d'hôtes
Pour voir tous les noms d'hôtes actuels, saisir la commande suivante :
~]$ hostnamectl status
L'option status est impliquée par défaut si aucune option n'est donnée.
1. Introduction :
Pour modifier le nom d'hôte dans un système, saisir la commande suivante en tant
La configuration du réseau nécessite la configuration du protocole IP et des services
qu'utilisateur root :
TCP, UDP et ICMP (entre autres). Cette opération se fait en définissant l'adresse IP le
~]# hostnamectl set-hostname name
masque de sous-réseau et les routes à utiliser. Vient ensuite la configuration du nom de
Cela altèrera à la fois les noms pretty, statiques ou transitoires. Les noms statiques et
la machine locale, de son domaine, des noms de machines qu'elle peut résoudre elle-
transitoires seront sous une forme simplifiée des noms d'hôte « pretty ». Les espaces
même et des serveurs de DNS qu'elle doit utiliser pour les autres noms.
seront remplacés par des « - » et les caractères spéciaux seront supprimés.
Il est quasiment certain que votre distribution dispose d'un outil permettant d'effectuer
2.2.2. Définir un nom d'hôte particulier
la configuration du réseau simplement. Connaissant à présent la signification des
Pour saisir un nom d'hôte particulier, saisir la commande suivante en tant
termes utilisés dans les réseaux TCP/IP, vous devriez pouvoir parvenir à une
qu'utilisateur root avec l'option qui convient :
configuration valide relativement simple. Il est fortement recommandé de consulter la
~]# hostnamectl set-hostname nom [option...]
documentation de votre distribution. Les commandes de configuration du réseau sont
souvent appelées dans les scripts de démarrage de la machine, ou dans les scripts de Quand option correspond à un ou plusieurs : --pretty, --static, et --transient.
changement de niveau d'exécution. Toutefois, il peut être utile de connaître ces Si les options --static ou --transient sont utilisées ensemble avec l'option --pretty, les
commandes, ne serait-ce que pour comprendre comment votre système fonctionne. Cette noms statiques et transitoires seront sous une forme simplifiée des noms d'hôte
section a donc pour but de vous présenter ces commandes, ainsi que les principaux « pretty ». Les espaces seront remplacés par des « - » et les caractères spéciaux seront
fichiers de configuration du réseau utilisés sous Linux. supprimés. Si l'option --pretty n'est pas donnée, aucune simplification n'aura lieu.
Quand on définit un nom d'hôte « pretty », ne pas oublier d'utiliser les caractères de
2. Configuration de noms d'hôtes
citation qui conviennent si le nom d'hôte contient des espaces ou un caractère de
2.1. Comprendre les noms d'hôtes
citation unique. Par exemple :
Il y a trois classes de noms d'hôtes ou hostname : statique, pretty, et transitoire
~]# hostnamectl set-hostname "Stephen's notebook" --pretty
Le nom d'hôte « statique » est un hostname traditionnel, qui peut être choisi par
2.2.3. Supprimer un nom d'hôte particulier
l'utilisateur, et qui se trouve dans le fichier /etc/hostname.
Pour supprimer un nom d'hôte particulier et lui permettre de retrouver sa valeur par
Le nom d'hôte « transitoire » est un hostname dynamique maintenu par le noyau. Il est
initialisé au nom d'hôte statique par défaut, dont la valeur correspond au « localhost ». défaut, saisir la commande suivante en tant qu'utilisateur root avec l'option qui
convient :
M.FILALI Linux : Administration des Serveurs 9 M.FILALI Linux : Administration des Serveurs 10
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]# hostnamectl set-hostname [option...] nmtui Une simple interface texte utilisateur (de l'anglais
Quand "" correspond à une chaîne de cotation vide et que l'option correspond à un ou Text User Interface) (TUI) basée Curses pour
2.2.4. Changer des noms d'hôte à distance nmcli L'outil d'interface en ligne de commandes est offert
Pour exécuter une commande hostnamectl sur un système distant, utiliser l'option -H, afin de permettre aux utilisateurs et aux scripts
~]# hostnamectl set-hostname -H [username]@hostname control-center Un outil d'interface utilisateur graphique fourni par le
Le username est en option. L'outil hostnamectl utilisera SSH pour se connecter au nm-connection-editor Une application GTK+ 3 disponible pour certaines
système distant. tâches qui ne sont pas encore gérées par le control-
Pour interroger le nom d'hôte statique, exécuter la commande suivante : Récapitulatif des applications et des outils de réseautage
Le NetworkManager peut configurer des alias de réseau, des adresses IP, des
~]$ nmcli general hostname
itinéraires statiques, les infos DNS, les connexions VPN, ainsi que de nombreux
Pour définir le nom d'hôte statique à my-server, exécutez la commande suivante en tant
paramètres spécifiques aux connexions. Finalement, NetworkManager fournit un API
qu'utilisateur root :
via D-Bus qui permet aux applications de chercher et de contrôler la configuration et
~]# nmcli general hostname my-server
l'état du réseau.
Pour forcer le hostnamectl à remarquer le changement de nom d'hôte statique,
3.2. Le démon du NetworkManager
démarrer à nouveau le hostnamed en tant qu'utilisateur root:
Le démon du NetworkManager s’exécute avec les privilèges root et il est, par défaut,
~]# systemctl restart systemd-hostnamed
configuré pour démarrer dès l'amorçage. Vous pouvez déterminer si le
Commandes:
démon NetworkManager est en cours d'exécution en saisissant cette commande
# set hostname
~]$ systemctl status NetworkManager
~]# hostnamectl set-hostname SRV
NetworkManager.service - Network Manager
# show status
Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled)
~]# hostnamectl
Active: active (running)
3. Configuration des paramètres TCP/IP
La commande systemctl status rapportera que le NetworkManager est Active. Si le
3.1. Introduction au NetworkManager
service NetworkManager n'est pas en cours d'exécution cas inactive (mort), pour le
Le service de réseautage est fourni par le NetworkManager, qui est un démon de
démarrer pour la session en cours, exécutez la commande suivante en tant
configuration et de contrôle de réseaux dynamiques, qui tente de conserver les
qu'utilisateur root :
périphériques réseau et les connexions actives quand elles sont disponibles. Les fichiers
~]# systemctl start NetworkManager
de configuration traditionnels de type ifcfg sont toujours prises en charge.
Exécutez la commande systemctl enable pour vous assurer que le NetworkManager
Application ou Outil Description
démarre bien à chaque fois que le système est amorcé :
NetworkManager Le démon de réseautage par défaut
M.FILALI Linux : Administration des Serveurs 11 M.FILALI Linux : Administration des Serveurs 12
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]# systemctl enable NetworkManager inet 10.0.0.3/24 brd 10.0.0.255 scope global global eth0
M.FILALI Linux : Administration des Serveurs 13 M.FILALI Linux : Administration des Serveurs 14
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
n'est pas réalisable avec les interfaces de type point à point comme les interfaces des ~]# systemctl start|stop|restart|status network
connexions ppp. Lorsqu'une interface dispose de plusieurs adresses, la première est Notez que le NetworkManager est tout d'abord démarré, et network vérifiera avec
considérée comme l'adresse principale de l'interface, et les suivantes comme des alias. le NetworkManager qu'il n'y a pas d'interférence avec les connexions
Ces alias utilisent comme nom le nom de l'interface réseau principale et le numéro de du NetworkManager. Le NetworkManager est censé être la première application qui
l'alias, séparés par deux points (caractère ':'). Par exemple, si l'interface eth0 dispose utilise les fichiers de configuration sysconfig et network est secondaire, jouant un rôle
d'un alias, celui-ci sera nommé eth0:0. Ainsi, pour fixer l'adresse d'un alias d'une de soutien en cas d'échec.
interface réseau, on utilisera la syntaxe suivante : Le script network n'est pas lié aux événements, il s’exécute soit :
~]# ifconfig interface:numéro add adresse netmask masque 1. manuellement par l'une des commandes
La commande ifconfig est en général appelée dans les scripts d'initialisation du ~]# systemctl start|stop|restart network
système, qui ont été générés par l'utilitaire de configuration réseau de votre 2. au démarrage et à l'arrêt si le service réseau est actif suite à la commande
distribution. Si vous effectuez un grep sur « ifconfig » dans le répertoire /etc/rc.d/ (ou ~]# systemctl enable network
/sbin/init.d/, selon votre distribution), vous trouverez la commande de démarrage du C'est un processus manuel qui ne réagit pas à des événements qui ont eu lieu après le
réseau. Il se peut qu'une variable d'environnement soit utilisée à la place de l'adresse IP
démarrage. Les utilisateurs peuvent aussi appeler les scripts ifup et ifdown
que vous avez choisie. Quoi qu'il en soit, vous devez sans aucun doute avoir les lignes
manuellement.
suivantes, qui permettent l'initialisation de l'interface loopback : 3.6.2. Commandes personnalisées et Scripts de réseau
~]# ifconfig lo 127.0.0.1 netmask 255.0.0.0 up On exécute des commandes personnalisées dans les scripts /sbin/ifup-local ifdown-pre-
local et ifdown locale uniquement lorsque ces périphériques sont contrôlés par le
Note : Les commandes ifconfig données en ligne de commandes ne seront pas persistantes
service network. Si vous avez modifié les initscripts eux-mêmes (par
après le redémarrage du système.
exemple, /etc/sysconfig/network-scripts/ifup-eth) alors ces modifications sont remplacées
3.6. NetworkManager et les Scripts réseau
par une mise à jour du paquet initscripts. Il est donc recommandé de ne pas modifier les
Dans les versions précédentes, le mode par défaut pour configurer le réseau utilisait
initscripts directement et de faire usage des scripts /sbin/if*local, afin que vos
des scripts réseau. Le terme script réseau est couramment utilisé pour décrire le
modifications personnalisées puissent survivre aux mises à jour des packages. Les
script /etc/init.d/network et tout autre script installé qu'il évoque. Les fichiers fournis
initscripts vérifient juste la présence de ladite /sbin/if*local et les exécutent s'ils
par l'utilisateur sont généralement considérés comme fichiers de configuration, mais
existent. Les initscripts ne mettent rien dans les scripts /sbin/if*local, et le
peuvent aussi être interprétés comme un amendement aux scripts.
RPM initscripts (ou tout autre paquet) ne possède, ni ne peut modifier ces fichiers.
Bien que le NetworkManager fournisse le service de réseautage par défaut, les
Il y a plusieurs façons d'exécuter des tâches personnalisées lorsque les connexions
développeurs ont travaillé dur pour s'assurer que les scripts et
réseau sont up ou down, avec les anciens scripts réseau, ainsi qu'avec
le NetworkManager collaborent. Les administrateurs, qui sont habitués aux scripts,
le NetworkManager. Lorsque le NetworkManager est activé, le
peuvent continuer à les utiliser
script ifup et ifdown demandera si le NetworkManager gère l'interface en question,
3.6.1. Exécuter le script de réseau
qui se trouve sur la ligne « DEVICE= » dans le fichier ifcfg.
Exécutez le script uniquement avec l'utilitaire systemctl qui supprimera les variables
Si le NetworkManager gère bien ce périphérique et que le périphérique n'est pas déjà
d'environnement existantes, et qui veillera à une exécution sans reproche. La
connecté, alors ifup demandera au NetworkManager de démarrer la connexion.
commande prend la forme suivante :
M.FILALI Linux : Administration des Serveurs 15 M.FILALI Linux : Administration des Serveurs 16
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Si le périphérique est géré par le NetworkManager et qu'il est déjà connecté, DEVICE=ens33
rien ne se produira. BOOTPROTO=dhcp
Si le périphérique n'est pas géré par le NetworkManager, alors les scripts ONBOOT=yes
démarreront une connexion par les mécanismes anciens. Pour configurer une interface pour qu'elle envoie un nom d'hôte différent au serveur
Si vous évoquez "ifdown" et que le périphérique est géré par le NetworkManager, DHCP, ajouter la ligne suivante au fichier ifcfg.
alors ifdown demandera au NetworkManager de terminer la connexion. DHCP_HOSTNAME=hostname
Les scripts surveillent le NetworkManager de façon dynamique, donc, si Pour configurer une interface permettant d'ignorer les routages envoyés par un serveur
le NetworkManager n'est pas en cours d'exécution, les scripts se retourneront sur les
DHCP, ajoutez la ligne suivante au fichier ifcfg.
anciens mécanismes basés scripts.
PEERDNS=no
3.7. Configurer une interface de réseau en utilisant les fichiers ifcfg
. Cela empêchera le service réseau de mettre à jour /etc/resolv.conf avec les serveurs
Les fichiers de configuration d'interface contrôlent l'interface du logiciel pour les
DNS reçus d'un serveur DHCP.
périphériques de réseaux individuels. Quand le système démarre, il utilise ces fichiers
Pour configurer une interface qui puisse utiliser des serveurs DNS particuliers, définir
pour déterminer quelles interfaces mettre en place et comment les configurer. Ces
PEERDNS=no comme décrit ci-dessus et ajouter les lignes ci-dessous dans votre fichier
fichiers sont généralement nommés ifcfg-name, où le suffixe de name désigne le nom du
ifcfg :
périphérique qui contrôle le fichier de configuration. Par convention, le suffixe ifcfg du
DNS1=ip-address
fichier est identique à la chaîne donnée par la directive DEVICE dans le fichier de
DNS2=ip-address
configuration lui-même.
Avec ip-address comme adresse du serveur DNS. Cela amènera le service réseau à
3.7.1. Paramètres de réseaux statiques
mettre à jour /etc/resolv.conf avec les serveurs DNS spécifiés.
Pour configurer une interface avec des paramètres de réseaux statiques à l'aide des
NetworkManager appellera le client DHCP par défaut, dhclient, quand un profil a été
fichiers ifcfg, pour une interface nommée eth0, créez un fichier ayant pour nom ifcfg-
défini pour pouvoir recevoir des adresses automatiquement, ou quand un fichier de
eth0 dans le répertoire /etc/sysconfig/network-scripts / comme suit :
configuration d'interface a BOOTPROTO défini à dhcp. Quand DHCP est exigé, une
DEVICE=eth0
instance du dhclient sera démarrée pour chaque protocole Internet, IPv4 ou IPv6, sur
BOOTPROTO=none
une interface. Quand le NetworkManager n'est pas en cours d'exécution, ou n'exécute
ONBOOT=yes
pas une interface, le service de réseautage d'origine appellera des instances du dhclient
PREFIX=24
selon les besoins.
IPADDR=10.0.1.27
3.7.3. Rechargement des fichies de configuration ifcfg
Spécifier le matériel ou l'adresse MAC en utilisant la directive HWADDR. Notez que
Quand vous modifiez un fichier ifcfg, le NetworkManager n'est pas automatiquement
cela peut influencer la procédure d'affectation de noms. Vous n'avez pas besoin de
mis au courant du changement et doit être mis au courant du changement par une
spécifier le réseau ou l'adresse de diffusion; c'est calculé automatiquement par ipcalc.
notification. Si vous utilisez un des outils pour mettre le profil du NetworkManager à
3.7.2. Configuration de réseaux dynamiques
jour, alors, le NetworkManager n'implémentera pas ces changements tant que vous
Pour configurer une interface avec des paramètres de réseaux dynamiques à l'aide des
ne vous serez pas reconnecté en utilisant ce profil. Par exemple, si les fichiers de
fichiers ifcfg, pour une interface nommée ens33, créez un fichier ayant pour nom ifcfg-
configuration ont été changés en utilisant un éditeur, le NetworkManager devra être
ens33 dans le répertoire /etc/sysconfig/network-scripts / comme suit
M.FILALI Linux : Administration des Serveurs 17 M.FILALI Linux : Administration des Serveurs 18
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
instruit de lire les fichiers de configuration à nouveau. Pour cela, exécutez la commande fichier ONBOOT=yes suivant est vérifié. Si le NetworkManager n'a pas encore
suivante en tant qu'utilisateur root : démarré ce périphérique, les init scripts continueront avec leur comportement
~]# nmcli connection reload traditionnel et appelleront ifup pour ce fichier ifcfg.
La commande ci-dessus interprétera tous les profils de connexion. Sinon, pour Le résultat final est que n'importe quel fichier ifcfg qui a ONBOOT=yes devrait être
télécharger à nouveau un fichier modifié à la fois, ifcfg-ifname, exécutez une commande lancé au démarrage du système, soit par le NetworkManager ou par les init scripts.
ainsi : De cette manière, certains types de réseaux hérités que le NetworkManager ne gère
~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname pas (comme RNIS ou les modems DIAL-UP analogues) ainsi que toute nouvelle
application non encore supportée par le NetworkManager sont toujours correctement
La commande accepte des noms de fichiers multiples. Ces commandes exigent les
démarrés par les init scripts même si le NetworkManager est incapable de les gérer.
privilèges d'utilisateur root.
Les modifications apportées à l'aide d'outils tels que le nmcli n'ont pas besoin d'un Note :Il est recommandé de ne pas stocker les fichiers de sauvegarde ifcfg au même
chargement à nouveau, mais nécessitent que l'interface associée soit arrêtée (down) et endroit que les fichiers live. Le script fait littéralement ifcfg-* en excluant uniquement les
qu'elle soit réactivée (up) à nouveau. Cela peut être fait en utilisant des commandes extensions : .old, .orig, .rpmnew, .rpmorig et .rpmsave. Le meilleur moyen est ne pas
sous le format suivant : stocker des fichiers de sauvegarde n'importe où dans le repertoire /etc
M.FILALI Linux : Administration des Serveurs 19 M.FILALI Linux : Administration des Serveurs 20
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
directement l'adresse IP de toutes les machines référencées dans ce fichier. Il est bon de Ainsi, si vous recherchez l'adresse de la machine « krypton », la requête au DNS se fera
placer ici une entrée pour les ordinateurs les plus couramment utilisés sur le réseau. avec le nom complètement qualifié « krypton.andromede.galaxie ». Vous êtes bien
Chaque entrée commence par une adresse IP, et est suivie de la liste des noms de la entendu libre d'ajouter d'autres noms de domaines pour le cas où la résolution de nom
machine possédant cette adresse, séparés par des espaces. Pour ceux qui ne disposent échouerait sur ce domaine.
pas de réseau local, ce fichier doit être relativement simple : seule la ligne affectant Enfin, l'option nameserver est essentielle, puisqu'elle permet de donner les adresses IP
l'adresse 127.0.0.1 à la machine locale (appelée « localhost ») doit s'y trouver. des serveurs de DNS auxquels doivent être adressées les requêtes de résolution de
127.0.0.1 localhost noms. Par exemple, si vous disposez de deux serveurs DNS, un primaire, d'adresse
De la même manière, le fichier /etc/networks contient les adresses des réseaux. Ce 192.168.0.10, et un secondaire, d'adresse 192.168.0.15, vous utiliserez la ligne suivante :
fichier est utilisé par la commande route pour donner un nom aux différents réseaux. nameserver 192.168.0.10 192.168.0.15
Chaque entrée est constituée du nom du réseau, suivi de son adresse IP. Encore une Cette ligne est évidemment obligatoire, faute de quoi la résolution des noms de
fois, ce fichier se réduit à sa plus simple expression pour ceux qui n'ont pas de réseau machines en adresse IP échouera pour toute machine qui ne se trouve pas dans votre
local, puisqu'il ne contiendra tout au plus qu'une entrée pour le réseau « loopback », sur fichier /etc/hosts.
lequel se trouve l'adresse de retour 127.0.0.1. Cette entrée aura donc la forme suivante : 4.2. Les fichiers de configuration :
loopback 127.0.0.0 Le fichier /etc/hosts
Le fichier hosts donne un moyen d'assurer la résolution de noms, de donner un nom
La configuration des serveurs de noms est en revanche une opération nécessaire si l'on
FQDN à un hôte
désire accéder à des machines dont on ne connaît que le nom. Le fichier de configuration
Le fichier /etc/networks
utilisé est cette fois le fichier /etc/resolv.conf. Sa structure est encore une fois très
Il permet d'affecter un nom logique à un réseau
simple, avec une option par ligne, chaque option étant introduite par un mot clé.
Le fichier /etc/host.conf
Le mot clé domain permet d'indiquer le nom du domaine dont fait partie votre machine.
Le fichier /etc/nsswitch.conf
Par exemple, si votre nom de domaine est « andromede.galaxie », vous devrez utiliser la
Il donne l'ordre dans lequel le processus de résolution de noms est effectué.
ligne suivante :
Le fichier /etc/resolv.conf
domain andromede.galaxie
Il permet d'affecter les serveurs de noms.
Le mot clé search permet quant à lui de spécifier une liste de noms de domaines à
Les Fichiers /et/sysconfig/network-script/ifcfg-*
ajouter par défaut aux noms de machines non complètement qualifiés. Les éléments de
Les fichiers de configuration des interfaces réseau
cette liste doivent être séparés par des espaces. La recherche d'une machine dont le
Firewall:
nom ne comprend pas la partie de nom de domaine s'effectue en ajoutant au nom de la
# show status
machine les noms des domaines indiqués ici, jusqu'à ce que la résolution du nom en
~]# systemctl status firewalld
adresse IP réussisse. Cette recherche commence bien entendu par le nom de domaine
# stop service
local, s'il a été défini. Il est donc recommandé d'indiquer votre nom de domaine dans
cette liste de noms de domaines. Par exemple, si votre machine fait partie du domaine ~]# systemctl stop firewalld
M.FILALI Linux : Administration des Serveurs 21 M.FILALI Linux : Administration des Serveurs 22
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
SELinux: TP-N°1-1 : Configurer les services de base (Enoncé)
# show status
~]# getenforce
# stop service
~]# setenforce 0
# disable service
~]# vi /etc/selinux/config
# change to disabled
SELINUX=disabled
SELINUXTYPE=targeted
# restart to apply new setting
~]# reboot
M.FILALI Linux : Administration des Serveurs 23 M.FILALI Linux : Administration des Serveurs 24
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
8) Désactiver et arreter SELinux TP-N°1-1 : Configurer les services de base (Corrigée)
9) Désactiver et arreter le pare feu
1) Dans un terminal, utiliser la commande suivante pour créer le scripte du Travail
10)Tester le bon fonctionnement du protocole TCP/IP sur votre serveur
~]$ cd ; script -f BASE_BinomeX.txt
11)Tester la configuration réseau de votre poste
Le script a débuté, le fichier est BASE_BinomeX.txt
12)Réactiver l'ensemble des interfaces réseau
2) Affecter le nom "Serv1" pour votre 1ère machine
Vous faites partie du domaine fedora.org. Les IPs des serveurs DNS sont
~]$su
172.20.208.254 et 172.20.209.254.
Password : ********
13)Construisez le fichier /etc/resolv.conf ?
~]#echo Serv1 > /etc/hostname
Certains services récupèrent le nom de votre machine via une résolution locale passant
Ou bien
par /etc/hosts. Votre IP est 172.20.208.1. Or sous Linux le nom d’hôte est souvent
~]# hostnamectl set-hostname Serv1
associé au localhost 127.0.0.1.
3) Afficher les caractéristiques de toutes les interfaces actives
14)Rectifiez ceci dans /etc/hosts ?
La résolution locale passe d’abord par /etc/hosts puis par le DNS. Mais le DNS est ~]# ifconfig
généralement plus à jour que /etc/hosts. 4) Configurer l’interface ens33 avec la commande ifconfig
15)Modifiez le fichier /etc/nsswitch.conf en conséquence ? /etc/host.conf ? ~]# ifconfig ens33 192.168.225.128 netmask 255.255.255.0
16)Enregistrer une copie des fichiers de configuration de votre machine Afficher les caractéristiques de l’interface ens33
17)Quitter par la commande : exit ~]# ifconfig ens33
18)Rédiger un Rapport du TP (Commandes Résultats Interpretations) ens33 Link encap:Ethernet HWaddr 00:0C:29:08:68:2B
inet adr:192.168.225.128 Bcast:192.168.225.255 Masque:255.255.255.0
5) Reconfigurer l’interface avec l’adresse 172.20.208.1 /24
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
Edition du fichier « ifcfg-ens33 » i (pour editer le script !)
DEVICE=ens33
IPADDR=172.20.208.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
Echap : wq (pour enregistrer le script !)
Arreter et Désactiver le service NetworkManager
~]# systemctl stop NetworkManager
~]# systemctl disable NetworkManager
~]# systemctl status NetworkManager
Redemarrer le service network
M.FILALI Linux : Administration des Serveurs 25 M.FILALI Linux : Administration des Serveurs 26
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 27 M.FILALI Linux : Administration des Serveurs 28
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]# vi /etc/nsswitch.conf Un snapshot permet de capturer l'état entier de la machine au moment où vous le
déclenchez, celui-ci comprendra le contenu de la mémoire de la machine virtuelle ainsi
Echap : set nu (pour afficher les numeros des lignes !)
que ses paramètres et l'état des disques virtuels (fichiers vmdk). Pour faire simple, les
#hosts: db files nisplus nis dns
snapshots permettent de créer des positions de restauration pour revenir dans le temps.
hosts: dns files
Cliquez avec le bouton droit sur la machine virtuelle Linux1 de la liste,
Modifiez le fichier /etc/host.conf ? sélectionnez Snapshots et sélectionnez Créer un snapshot
~]# vi /etc/host.conf Entrez un nom pour le snapshot « TP-N°1-1 »
Cliquez sur OK.
multi on
order bind , hosts
16) Enregistrer une copie des fichiers de configuration.
~]# pwd
/home/fedora
~]# mkdir Sauvegarde
~]#chmod 777 Sauvegarde
~]# cd Sauvegarde
~]# pwd
/home/fedora/ Sauvegarde .
.
~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 . TP-N°1-2 : Configurer les services de base (Devoir Libre)
~]# cp /etc/resolv.conf .
Configurant l'adressage statique d'une carte réseau selon la topologie de la maquette ci-
~]# cp /etc/hosts .
dessous :
~]# cp /etc/host.conf .
~]# cp /etc/nsswitch.conf .
~]# ls
M.FILALI Linux : Administration des Serveurs 29 M.FILALI Linux : Administration des Serveurs 30
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 31 M.FILALI Linux : Administration des Serveurs 32
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
On appelle passerelle (dans la terminologie TCP/IP) ou routeur (un équipement qui fait 3. L'expéditeur cherche d'abord à trouver dans sa table de routage locale l'adresse
le lien entre différents réseaux ou entre sous-réseaux). Ex de passerelle: un ordinateur IP complète du destinataire,
équipé de plusieurs adaptateurs réseau peut être relié avec chacune d'elle à un réseau 4. s'il ne la trouve pas il cherche l'adresse du sous réseau du destinataire,
physiquement séparé. 5. s'il ne la trouve pas, il cherche enfin l'adresse du réseau,
Les paquets d'un réseau qui sont adressés à l'autre réseau doivent passer par la 6. s'il ne trouve aucune correspondance, l'expéditeur cherche dans sa table l'adresse
passerelle. D'où la nécessité pour chaque hôte de connaître, sur son réseau, l'adresse IP d'une passerelle à utiliser par défaut, (route 0.0.0.0)
d'un ou de plusieurs routeurs qui servent de passage vers le ou les réseaux qu’ils ne 7. s'il échoue là encore, le paquet, décidément bien encombrant, est supprimé.
connaissent pas. Si l'une de ces recherches aboutit, la machine émettrice construit le paquet avec
Mettre en place le routage consiste à configurer chaque hôte du réseau de façon à ce l'adresse IP du destinataire hors réseau. Elle l'encapsule dans une trame ayant comme
qu'il sache vers quelle adresse de son propre réseau il doit adresser un paquet qui adresse MAC de destination l'adresse MAC du routeur. La couche 2 du routeur lit la
concerne un autre réseau (ou sous-réseau). Ces destinataires intermédiaires sont des trame qui lui est adressée et la transmet à la couche 3 IP. Celle-ci récupère le paquet et
routeurs qui prennent en charge le paquet. s'aperçoit que le paquet ne lui est pas adressé, elle consulte sa table de routage, décide
Les hôtes pouvant être nombreux, bien souvent chacun ne connaît que l'adresse d'une sur quelle nouvelle interface réseau le paquet doit être transmis, encapsule le paquet
passerelle (routeur) par défaut et ce sera cette passerelle qui « connaîtra » les adresses dans une nouvelle trame, et ainsi de suite de passerelle en passerelle jusqu'à
des autres routeurs. destination.
2.1. Les tables de routage
2. Acheminement des paquets TCP-IP Les réseaux IP sont interconnectés par des routeurs IP de niveau 3 (appelés
Comment faire transiter des paquets entre 2 machines séparées par plusieurs routeurs?
abusivement en terminologie IP des gateways ou passerelles).
Simplement chaque routeur doit connaître l'adresse du routeur suivant que doit
Chaque hôte IP doit connaître le routeur par lequel il faut sortir pour pouvoir atteindre
emprunter le paquet pour arriver à destination. Ainsi le paquet arrive en sautant de
un réseau extérieur, c'est-à-dire avoir en mémoire une table des réseaux et des
routeur en routeur jusqu'à destination.
routeurs. Pour cela il contient une table de routage locale.
Mais concrètement comment ça se passe ?
Dans une configuration de routage statique, une table de correspondance entre adresses
Voici comment un hôte expéditeur se comporte pour adresser un paquet à un
de destination et adresses de routeurs intermédiaires est complétée « à la main » par
destinataire
l'administrateur, on parle de table de routage.
1. Il extrait l'adresse de réseau, voire de sous réseau de l'adresse du destinataire et
la compare à sa propre adresse de réseau ou de sous réseau. S'il s'agit du même
réseau, le paquet est expédié directement au destinataire en mettant en oeuvre
ARP.
2. S'il ne s'agit pas du même réseau, l'expéditeur cherche dans sa table de routage
une correspondance destinataire final / destinataire intermédiaire (routeur). Il
cherche, en quelque sorte, sur son réseau, un hôte capable de servir de facteur
vers un autre réseau.
M.FILALI Linux : Administration des Serveurs 33 M.FILALI Linux : Administration des Serveurs 34
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
La table de routage d'un routeur comporte les adresses des réseaux de destination, le Destination Masque Passerelle Interface
masque, les adresses des passerelles (routeurs intermédiaires) permettant de les 192.168.40.0 255.255.255.0 192.168.30.254 192.168.30.99
atteindre, l'adresse de la carte réseau (interface) par laquelle le paquet doit sortir du
routeur.
3. Acheminement Internet
1.
La commande Route permet d'afficher et de manipuler le contenu de la table de routage.
2.
Considérons le schéma de réseau suivant :
3.
4.
4.1.
3.1. Domaine d'acheminement
Les échanges entre passerelles de chaque domaine de routage font l'objet de protocoles
particuliers : EGP (Exterior Gateway Protocol) et BGP (Border Gateway Protocol) plus
récent. Ces protocoles envoient les paquets vers des destinations en dehors du réseau
local vers des réseaux externes (Internet, Extranet...).
3.2. Principe du choix d'une voie d'acheminement
1. Si l'hôte de destination se trouve sur le réseau local, les données sont transmises
à l'hôte destination
La table de routage du routeur sera : 2. Si l'hôte destination se trouve sur un réseau à distance, les données sont
Destination Masque Passerelle Interface expédiées vers une passerelle locale qui route le paquet vers une autre passerelle
192.168.10.0 255.255.255.0 192.168.10.99 192.168.10.99 et ainsi de suite de passerelle en passerelle jusqu'à destination.
192.168.20.0 255.255.255.0 192.168.20.99 192.168.20.99 La commande Traceroute permet de suivre à la trace le passage de routeur en routeur
192.168.30.0 255.255.255.0 192.168.30.99 192.168.30.99 pour atteindre un hôte sur le réseau. La commande Ping permet de vérifier la fiabilité
Ce réseau local est maintenant relié via un autre routeur à un 4ème réseau : d'une route donnée.
4. Routage dynamique
Les protocoles d'échange dynamique des tables de routage IP sur un réseau local sont
RIP (Routing Information Protocol) et le protocole OSPF (Open Shortest Path First).
Dans une configuration de routage dynamique, un protocole (RIP ou OSPF) est mis en
oeuvre pour construire dynamiquement les chemins entre routeurs.
Le protocole RIP permet à un routeur d'échanger des informations de routage avec les
routeurs avoisinants. Dès qu'un routeur est informé d'une modification quelconque de
la configuration sur les réseaux (telle que l'arrêt d'un routeur), il transmet ces
informations aux routeurs avoisinants. Les routeurs envoient également des paquets de
M.FILALI Linux : Administration des Serveurs 35 M.FILALI Linux : Administration des Serveurs 36
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
diffusion générale RIP périodiques contenant toutes les informations de routage dont ils Une autre règle de routage classique est la suivante :
disposent. Ces diffusions générales assurent la synchronisation entre tous les routeurs. ~]# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
Avec un protocole comme RIP, on peut considérer que les tables de routages des Elle permet d'envoyer tous les paquets à destination du réseau de classe C 192.168.0.0
routeurs et passerelles sont constituées et mises à jour automatiquement. vers la première interface Ethernet. C'est typiquement ce genre de règle qu'il faut
utiliser pour faire fonctionner un réseau local.
5. Définition des règles de routage
Il n'est normalement pas nécessaire d'ajouter les règles de routage pour les réseaux
5.1. Configuration des routages statiques par les commandes route
La deuxième étape dans la configuration du réseau est la définition des règles de auxquel la machine est connectée. En effet, la configuration d'une carte réseau à l'aide
routage. Il est possible de définir plusieurs règles de routage actives simultanément. de la commande ifconfig ajoute automatiquement à la table de routage une règle pour
L'ensemble de ces règles constitue ce qu'on appelle la table de routage. La règle utilisée envoyer les paquets à destination de ce réseau par l'interface réseau qui y est connectée.
est sélectionnée par le noyau en fonction de l'adresse destination du paquet à router. Cependant, la commande route devient réellement nécessaire lorsqu'il faut définir les
Chaque règle indique donc un critère de sélection sur les adresses, et l'interface vers passerelles à utiliser pour l'envoi des paquets destinés à une machine à laquelle la
laquelle doivent être transférés les paquets dont l'adresse destination vérifie cette règle. machine locale ne peut accéder directement. Les règles de routage faisant intervenir
La commande utilisée pour définir une route est, chose surprenante, la commande une passerelle sont semblables aux règles de routage vues ci-dessus, à ceci près que
système route. Sa syntaxe est donnée ci-dessous : l'adresse IP de la passerelle à utiliser doit être fournie. Pour cela, on utilise l'option gw
~]# route opération [-net | -host] adresse netmask masque interface (abréviation de l'anglais « Gateway »). La syntaxe utilisée est donc la suivante :
Où opération est l'opération à effectuer sur la table de routage. L'opération la plus ~]# route add [-net | -host] adresse netmask masque gw passerelle interface
courante est simplement l'ajout d'une règle de routage, auquel cas add doit être utilisé. Où passerelle est l'adresse IP de la passerelle à utiliser pour router les paquets qui
L'option suivante permet d'indiquer si le critère de sélection des paquets se fait sur vérifient les critères de cette règle. Les autres paramètres sont les mêmes que pour les
l'adresse du réseau destination ou plus restrictivement sur l'adresse de la machine règles de routage classique.
destination. En général, il est courant d'utiliser la sélection de toutes les adresses d'un Par exemple, supposons qu'une machine soit connectée à un réseau d'adresse
même réseau et de les router vers une même interface. Dans tous les cas, adresse est 192.168.0.0, et que sur ce réseau se trouve une passerelle d'adresse 192.168.0.1
l'adresse IP de la destination, que celle-ci soit un réseau ou une machine. Si la permettant d'atteindre un autre réseau, dont l'adresse est 192.168.1.0. Une machine du
destination est un réseau, il faut indiquer le masque de sous-réseau masque à l'aide de réseau 192.168.0.0 aura typiquement les règles de routage suivantes :
l'option netmask. Enfin, interface est l'interface réseau vers laquelle doivent être ~]# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
envoyés les paquets qui vérifient les critères de sélection de cette règle. ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 eth0
Par exemple, la règle de routage à utiliser pour l'interface loopback est la suivante : La première règle permet, comme on l'a déjà vu, de communiquer avec toutes les
~]# route add -net 127.0.0.0 netmask 255.0.0.0 lo machines du réseau local. La deuxième règle permet d'envoyer à la passerelle
Cette règle signifie que tous les paquets dont l'adresse de destination appartient au 192.168.0.1 tous les paquets à destination du réseau 192.168.1.0.
sous-réseau de classe A 127.0.0.0 doivent être transférés vers l'interface loopback. Cela Inversement, si la passerelle utilise l'adresse 192.168.1.15 sur le réseau 192.168.1.0, les
implique en particulier que les paquets à destination de la machine d'adresse IP machines de ce réseau qui voudront accéder au réseau 192.168.0.0 devront spécifier la
127.0.0.1 (c'est-à-dire la machine locale) seront envoyés vers l'interface loopback (ils règle de routage suivante :
reviendront donc sur la machine locale). ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.15 eth0
M.FILALI Linux : Administration des Serveurs 37 M.FILALI Linux : Administration des Serveurs 38
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Bien entendu, il est nécessaire que toutes les machines des deux réseaux utilisent ces ~]$ ip route
règles de routage pour que la communication entre les deux réseaux se fasse dans les default via 192.168.122.1 dev ens33 proto static metric 1024
deux sens. 192.168.122.0/24 dev ens33 proto kernel scope link src 192.168.122.107
Le problème de ces règles de routage est qu'elles spécifient l'adresse du réseau 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.126
destination. Il est évidemment hors de question d'utiliser une règle de routage Pour ajouter un routage statique à une adresse hôte, ou autrement dit à une adresse IP
différente pour toutes les adresses de réseaux possibles. Il est donc possible de définir ce unique, exécuter une commande en tant qu'utilisateur root :
qu'on appelle une passerelle par défaut, qui n'est rien d'autre que la passerelle vers ~]# ip route add 192.0.2.1 via 10.0.0.1 [dev ifname]
laquelle doivent être envoyés tous les paquets qui n'ont pas vérifié les critères des Quand 192.0.2.1 est l'adresse IP de l'hôte en notation décimale avec des
autres règles de routage. La syntaxe à utiliser pour définir la passerelle par défaut est
points, 10.0.0.1représente l'adresse du prochain tronçon et ifname l'interface de sortie
plus simple, puisqu'il n'est plus nécessaire de préciser les critères de sélection : qui mène au prochain tronçon.
~]# route add default gw passerelle interface Pour ajouter un routage statique à un réseau, ou autrement dit à une
Où la signification des paramètres passerelle et interface est inchangée. adresse IPreprésentant un groupe d'adresses IP, exécuter la commande suivante en
Ainsi, pour reprendre l'exemple précédent, supposons que la machine 192.168.0.47 tant qu'utilisateur root :
dispose d'une connexion à Internet et soit configurée pour partager cette connexion avec ~]# ip route add 192.0.2.0/24 via 10.0.0.1 [dev ifname]
les machines du réseau local. Pour que toutes les machines du réseau local puissent Avec 192.0.2.0 comme adresse IP du réseau de destination en notation décimale en
profiter de cette connexion, il suffit de demander à ce que tous les paquets qui ne
points et avec /24 pour préfixe de réseau. Le préfixe de réseau correspond au nombre
vérifient aucune autre règle de routage soient envoyés à la passerelle 192.168.0.47. Cela d'octets activés dans le msque du sous-réseau. Le format de l'adresse réseau / longueur
se fait avec la règle de routage suivante :
du préfixe réseau ou classless inter-domain routing (CIDR).
~]# route add default gw 192.168.0.47 eth0 La configuration du routage statique peut être stockée par interface dans un
5.2. Configuration des routages statiques par nmcli fichier /etc/sysconfig/network-scripts/route-interface. Ainsi, les routages statiques de
Pour configurer des routages statiques avec l'outil nmcli, on doit utiliser le mode
l'interface eth0 devraient être stockés dans le fichier fichier/etc/sysconfig/network-
d'édition interactive ou l'outil en lignes de commandes.
scripts/itinéraire-eth0. Le fichier route-interface a deux formats : arguments de
Pour configurer un routage statique pour une connexion Ethernet existante par l'outil
commande ip et directives de réseau/masque réseau. Elles sont décrites ci-dessous.
en lignes de commandes, exécuter les commandes suivantes :
5.4. Configuration de la passerelle par défaut
~]# nmcli connection modify eth0 +ipv4.routes "192.168.122.0/24 10.10.10.1" La passerelle par défaut est déterminée par les scripts de réseau qui analysent le
Cela dirigera le trafic du sous-réseau 192.168.122.0/24 vers la passerelle 10.10.10.1 fichier /etc/sysconfig/network pour commencer, puis les fichiers ifcfg de l'interface de
5.3. Configuration des routages statiques par ip route réseau pour les interfaces qui sont « up » (actives). Les fichiers ifcfg sont lus en ordre
Si des routages statiques sont requis, ils peuvent être ajoutés à la table de routage par numérique croissant, et la dernière directive GATEWAY à lire est utilisée pour
le biais de la commande ip route add ou enlevés par la commande ip route del. Les composer un routage par défaut dans la table de routage.
commandes ip route les plus fréquemment utilisées prennent la forme suivante : Le routage par défaut peut ainsi être indiqué par la directive GATEWAY et peut être
~]# ip route [add | del | change | append | replace ] destination-address spécifié soit globalement, soit dans les fichiers de configuration spécifiques à l'interface.
Utiliser la commande ip route sans options pour afficher la table de routage IP. Cependant, l'utilisation du fichier global /etc/sysconfig/network est déprécié, et il faut
Exemple :
M.FILALI Linux : Administration des Serveurs 39 M.FILALI Linux : Administration des Serveurs 40
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
maintenant indiquer la passerelle par l'intermédiaire des fichiers de configuration 10.10.10.0/24 est l'adresse réseau et la longueur du préfixe du réseau de destination ou
uniquement. du réseau distant. L’adresse 192.168.1.1 est l'adresse IP menant au réseau distant.
Dans les environnements de réseaux dynamiques, quand les hôtes mobiles sont gérés C'est, de préférence l'adresse du tronçon suivant (next hop address), mais l'adresse de
par un NetworkManager, l'information de passerelle a de grandes chances d'être l'interface de sortie fonctionnera. L'expression « next hop » désigne l'extrémité (la fin)
spécifique à l'interface, et il vaut mieux qu'elle soit donnée par DHCP. Dans certains d'un lien, par exemple une passerelle ou un routeur. L'option dev peut être utilisée pour
cas, quand il vaut mieux influencer la sélection du NetworkManager pour l'interface spécifier l'interface de sortie interface, mais elle n'est pas nécessaire. Ajouter autant de
de sortie à utiliser pour atteindre une passerelle. Utiliser la routages statiques qu'il vous faut.
commande DEFROUTE=no dans les fichiers ifcfg pour ces interfaces qui ne mènent pas Voici un exemple de fichier route-interface qui utilise le format d'arguments de
à la passerelle par défaut. commandes ip. La passerelle par défaut est 192.168.0.1, l'interface est eth0 et une ligne
5.5. Configuration des routages statiques par les fichiers ifcfg allouée ou une connexion WAN est disponible à l'adresse suivante 192.168.0.10. Les
Les configurations de routages statiques par les commandes ip par ligne de commandes deux routages statiques servent à joindre le réseau 10.10.10.0/24 et
seront perdus si le système est stoppé ou après un redémarrage. Pour configurer des l'hôte 172.16.1.0/24 :
routages statiques à être persistants après le redémarrage d'un système, ils devront default via 192.168.0.1 dev eth0
figurer dans les fichiers de configuration par-interface qui se trouvent à l'adresse 10.10.10.0/24 via 192.168.0.10 dev eth0
suivante /etc/sysconfig/network-scripts /. Le nom du fichier doit être du format route- 172.16.1.10/32 via 192.168.0.10 dev eth0
ifname. Il existe deux types de commandes à utiliser dans les fichiers de configuration :
Dans l'exemple ci-dessus, les paquets allant vers le réseau 192.168.0.0/24 seront dirigés
les commandes ip et le format Réseau/Masque réseau
en dehors de l'interface attachée à ce réseau. Les paquets allant vers le
5.5.1. Configuration des routages statiques en utilisant le format réseau 10.10.10.0/24 et vers l'hôte 172.16.1.10/32 seront dirigés vers 192.168.0.10. Les
d'arguments de commandes IP
Si nécessaire, dans un fichier de configuration par interface, comme par paquets allant vers des paquets inconnus, distants utiliseront la passerelle par défaut,
exemple /etc/sysconfig/network-scripts/route-eth0, définir un itinéraire (routage) à une donc les routages statiques ne seront configurés uniquement que pour les réseaux ou
passerelle par défaut sur la première ligne. C'est seulement nécessaire si la passerelle hôtes distants si le routage par défaut ne convient pas. Dans ce contexte « distant »
n'est pas définie par DHCP et qu'elle n'est pas définie au niveau global dans le signifie tout réseau ou hôte qui n'est pas attaché directement au système.
fichier /etc/sysconfig/network : Spécifier une interface de sortie est facultatif. Cela peut être utile si vous voulez forcer
default via 192.168.1.1 dev interface le trafic sur une interface spécifique. Par exemple, dans le cas d'un VPN, vous pouvez
forcer le trafic vers un réseau distant pour passer à travers une interface tun0, même
192.168.1.1 est l'adresse IP de la passerelle par défaut. L’interface est l'interface qui est
lorsque l'interface est dans un sous-réseau différent du réseau de destination.
connectée à, ou qui peut atteindre, la passerelle par défaut. L'option dev peut être
Important : Si la passerelle par défaut est déjà attribuée par le protocole DHCP et si la
omise, elle est facultative. Notez que ce paramètre prévaut sur un paramètre du
même passerelle avec la même métrique sont spécifiés dans un fichier de configuration,
fichier fichier/etc/sysconfig/network.
une erreur lors du démarrage ou lors de l'apparition de l'interface, se produira. Le
Si on a besoin d'un réseau distant, on peut spécifier un routage statique comme suit.
message d'erreur suivant risque d'apparaître :
Chaque ligne de routage est analysée individuellement.
"RTNETLINK answers: File exists". This error may be ignored.
10.10.10.0/24 via 192.168.1.1 [dev interface]
M.FILALI Linux : Administration des Serveurs 41 M.FILALI Linux : Administration des Serveurs 42
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
5.5.2. Format de directives de Réseau/Masque de réseau ~]# sysctl -w net.ipv4.ip_forward=1
Vous pouvez également utiliser le format des directives de réseau/masque de réseau
Route par défaut
pour les fichiers route-interface. Ce qui suit est un modèle pour le format
~]# route add default gw 194.56.87.1
réseau/masque de réseau, avec des instructions qui suivent :
~]# route del default gw 194.56.87.1
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1
ADDRESS0=10.10.10.0 correspond à l'adresse du réseau distant ou de l'hôte à
atteindre.
NETMASK0=255.255.255.0 correspond au masque de l'adresse de réseau définie
dans ADDRESS0=10.10.10.0.
GATEWAY0=192.168.1.1 est la passerelle par défaut, ou une adresse IP qui peut
être utilisée pour atteindre ADDRESS0=10.10.10.0
Voici un exemple de fichier route-interface qui utilise le format de directives de
réseau/masque réseau. La passerelle par défaut est 192.168.0.1 mais une ligne allouée
ou une connexion WAN est disponible à l'adresse suivante 192.168.0.10. Les deux
routages statiques servent à joindre les réseaux 10.10.10.0/24 et 172.16.1.0/24 :
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.10
ADDRESS1=172.16.1.10
NETMASK1=255.255.255.0
GATEWAY1=192.168.0.10
Les routages statiques suivants sont numérotés séquentiellement, et ne doivent pas
sauter une valeur. Par exemple, ADDRESS0, ADDRESS1, ADDRESS2, etc.
Commandes:
Routes
~]# route add -net 192.168.0.0/24 gw 112.65.123.3
~]# route add -net 112.0.0.0/8 gw 192.168.0.1
~]# route del -net 193.86.46.0/24 gw 196.24.52.1
Activer Le routage
~]# echo 1 > /proc/sys/net/ipv4/ip_forward
Ou bien
M.FILALI Linux : Administration des Serveurs 43 M.FILALI Linux : Administration des Serveurs 44
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°2-1 : Configurer les services de routage Statique (Enoncé) TP-N°2-1 : Configurer les services de routage Statique (Corrigée)
1) Dans un terminal, utiliser la commande suivante pour créer le scripte du Travail
~]$ cd ; script -f ROUTAGE_BinomeX.txt
Le script a débuté, le fichier est ROUTAGE_BinomeX.txt
2) Configurer l’interface ens33 avec l’adresse 172.20.208.1 /24.
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
Edition du fichier « ifcfg-ens33 »
DEVICE=ens33
1) Dans un terminal, utiliser la commande suivante :
IPADDR=172.20.208.1
$cd ; script ROUTAGE_BinomeX .txt #avec X=numéro de Binôme
NETMASK=255.255.255.0
2) Configurer l’adresse IP 172.20.208.1/24 sur la première interface ens33 du serveur
ONBOOT=yes
Linux1 en utilisant le fichier de configuration.
BOOTPROTO=none
3) Configurer l’adresse IP 192.168.8.254/24 sur la deuxième interface ens37 du
3) Configurer l’interface ens37 avec l’adresse 192.168.8.254 /24.
serveur Linux1 en utilisant le fichier de configuration.
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
4) Redemarrer le service réseau
Edition du fichier « ifcfg-ens37 »
5) Afficher la configuration IP de votre serveur Linux1
DEVICE=ens37
6) Activer le routage sur votre serveur Linux1
IPADDR=192.168.8.254
7) Afficher la table de routage de votre serveur Linux1
NETMASK=255.255.255.0
8) Connecter la machine Virtuelle Linux1 avec la machine réelle Win01.
ONBOOT=yes
9) Tester la connectivité entre Win01 et ens33 du serveur Linux1
BOOTPROTO=none
10)Tester la connectivité entre Win01 et ens37 du serveur Linux1
11)Configurer l’adresse IP 192.168.8.10/24 sur l’interface ens33 de Linux2 en utilisant 4) Redemarrer le service Réseau
14)Activer le routage sur la machine Linux2 5) Afficher la configuration IP de votre serveur Linux1
15)Ajouter une route statique ver le Réseau 172.20.208.0 avec la passerelle ~]# ifconfig
192.168.8.254 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
16)Tester la connectivité entre Win01 et Linux2 inet 172.20.208.1 netmask 255.255.255.0 broadcast 172.20.208.255
17)Enregistrer une copie des fichiers de configuration de votre machine …
18)Quitter par la commande : exit ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
19)Rédiger un Rapport du TP (Commandes Résultats Interpretations) inet 192.168.8.254 netmask 255.255.255.0 broadcast 192.168.8.255
6) Activer le routage sur votre serveur Linux1
M.FILALI Linux : Administration des Serveurs 45 M.FILALI Linux : Administration des Serveurs 46
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 47 M.FILALI Linux : Administration des Serveurs 48
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
DEVICE=ens33
IPADDR=192.168.8.10 Clic droit sur l’icône de la carte réseau Virtuelle Settings
M.FILALI Linux : Administration des Serveurs 49 M.FILALI Linux : Administration des Serveurs 50
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°2-2 : Configurer les services de routage Dynamique Vérifiez avec la commande ifconfig que vos interfaces n’ont plus d’adresses ipv4
~]# ifconfig
Et que la table de routage est vide avec la commande
~]# route -n
2.Installation :
L’installation se fait classiquement avec la commande dnf (accès internet !)
~]# dnf install quagga
Sinon Installation par la commande rpm
1. Prérequis :
~]# rpm -ivh libnet-1.1.6-11.fc24.i686.rpm
Les adresses IP de la machine faisant fonctionner Quagga DOIVENT être affectées par
~]# rpm -ivh lm_sensors-libs-3.4.0-5.fc25.i686.rpm
le démon zebra et pas par le système lui-même.
~]# rpm -ivh mariadb-config-10.1.18-1.fc25.i686.rpm
Pour faire cela, il vous faut éditer vos fichiers de configuration pour chaque interface et
~]# rpm -ivh mariadb-common-10.1.18-1.fc25.i686.rpm
supprimer les variables IPADDR et NETMASK.
~]# rpm -ivh mariadb-libs-10.1.18-1.fc25.i686.rpm
Vérifiez que vous avez également ceci : BOOTPROTO=static.
~]# rpm -ivh net-snmp-libs-5.7.3-13.fc25.i686.rpm
Ces fichiers de configuration s’appellent ifcfg-ensx où x est la valeur de l’interface. Ils
~]# rpm -ivh net-snmp-agent-libs-5.7.3-13.fc25.i686.rpm
sont placés dans le dossier /etc/sysconfig/network-scripts.
~]# rpm -ivh net-snmp-5.7.3-13.fc25.i686.rpm
Vérifiez également que le fichier /etc/sysconfig/network ne comporte pas de variable
~]# rpm -ivh quagga-0.99.24.1-3.fc24.i686.rpm
GATEWAY ou GATEWAYDEV.
3.Activation:
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
~]# systemctl enable zebra
Edition du fichier « ifcfg-ens33 »
Le routage dynamique s’active démon par démon, c’est à dire que si vous utilisez OSPF,
DEVICE=ens33
il vous faut activer ospfd, si vous utiliser BGP, il vous faut activer bgpd, etc...
ONBOOT=yes
Exemple de Rip :
BOOTPROTO=static
~]# systemctl enable ripd
Attention, pour activer le routage dynamique il faut qu’un fichier de configuration pour
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
le démon en question existe. Par défaut il n’y en a pas, il ya juste des fichiers exemples.
Edition du fichier « ifcfg-ens37 »
Les fichiers de configuration se trouvent dans le dossier /etc/quagga.
DEVICE=ens37
Le fichier de configuration de quagga s’appelle zebra.conf et est présent de base.
ONBOOT=yes
Le fichier de configuration de rip s’appelle ripd.conf et doit être créé :
BOOTPROTO=static
~]# cp /usr/share/doc/quagga/examples/ripd.conf.sample /etc/quagga/ripd.conf
Une fois ces fichiers corrigés, relancez le réseau avec la commande
Les fichiers doivent appartenir à l’utilisateur quagga, Pour cela, il faut utiliser la
~]# service network restart
commande suivante :
Restarting network (via systemctl): [ OK ]
~]# chown quagga: /etc/quagga/*
M.FILALI Linux : Administration des Serveurs 51 M.FILALI Linux : Administration des Serveurs 52
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Une fois ces fichiers créés on peut lancer les services : R1(config-router)#version 2
~]# service zebra start R1(config-router)# network 1172.20.208.0/24
~]# service ripd start R1(config-router)# network 192.168.8.0/24
4. Configuration : R1(config-router)#redistribute connected
Le paramétrage se fait avec une console spécialisée nommés vtysh. Pour l’éxécuter, R1(config-router)#redistribute static
lancez la commande vtysh depuis le shell du root. R1(config-router)#exit
Les commandes à taper ressemblent aux commandes CISCO. R1(config)#exit
Pour voir la configuration active, il faut utiliser la commande sh running-config et pour R1#wr
passer en mode de configuration il faut taper conf t. R1#sh run
Une fois la configuration effectuée, enregistrez la dans les fichiers de configuration avec …
la commande wr. R1#exit
Exemple de configuration : ~]#
M.FILALI Linux : Administration des Serveurs 53 M.FILALI Linux : Administration des Serveurs 54
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°2-3 : Mise en Place des services de routage (Devoir Libre) Adresse IP : 10.10.10.2
Configurer une machine linux en tant que routeur pour lier deux segments différents Masque sous réseau : 255.255.255.0
Passerelle par défaut : 10.10.10.1
10- Attacher la carte ens37 de la machine linux1 et la carte réseau de la machine
Windows au même Switch virtuel (LAN2)
11- Tester la communication entre les 2 machines Linux1 et Windows
Les deux machines Windows et linux2 ne communiquent pas car elles se trouvent dans
des LANs différents
1- Ajouter une 2ème carte réseau à la machine linux1 12- Configurer linux1 en tant que routeur
2- Démarrer la machine linux1 13- Tester la communication entre les 2 machines linux2 et Windows
3- Configurer les 2 Cartes réseau selon les paramètres suivants : La communication passe à travers le routeur linux1
M.FILALI Linux : Administration des Serveurs 55 M.FILALI Linux : Administration des Serveurs 56
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
CH3 : Implémenter le serveur DHCP Si une organisation a un serveur DHCP fonctionnel correctement connecté à un réseau,
les utilisateurs d'ordinateurs portables ou d'autres ordinateurs mobiles peuvent
déplacer ces périphériques de bureau en bureau.
3. Configuration d'un serveur DHCP
Le package dhcp contient un serveur ISC (Internet Systems Consortium) DHCP.
Installez le package en tant qu'utilisateur root :
~]# yum install dhcp
En installant le paquet dhcp, vous allez créer un fichier, /etc/dhcp/dhcpd.conf, qui
correspond tout simplement à un fichier de configuration vide. En tant
qu'utilisateur root, exécutez la commande suivante :
~]# cat /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
On peut trouver l'exemple de configuration dans
/usr/share/doc/dhcp-version;/dhcpd .conf.example.
1. Introduction
DHCP (Dynamic Host Configuration Protocol) est un protocole de réseau qui assigne Vous devez utiliser ce fichier pour pouvoir configurer /etc/dhcp/dhcpd.conf, expliqué en
automatiquement les informations TCP/IP à des machines clientes. Chaque détails ci-dessous.
client DHCP se connecte au serveur DHCP situé localement, qui renvoie la DHCP utilise également le fichier /var/lib/dhcpd/dhcpd.leases pour stocker la base
configuration de réseau (y compris l'adresse IP, la passerelle, et les serveurs DNS) de ce de données d'attribution client.
M.FILALI Linux : Administration des Serveurs 57 M.FILALI Linux : Administration des Serveurs 58
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
configurent des valeurs qui ne sont pas facultatives ou contrôlent le comportement du max-lease-time 7200;
serveur DHCP. option subnet-mask 255.255.255.0;
Les paramètres (y compris les options) déclarés avant une section entre accolades ({ }) option broadcast-address 192.168.1.255;
sont considérés comme des paramètres globaux. Ceux-ci s'appliquent à toutes les option routers 192.168.1.254;
sections se trouvant en dessous. option domain-name-servers 192.168.1.1, 192.168.1.2;
Important : Si le fichier de configuration est modifié, les changements ne pourront pas option domain-search "example.com";
prendre effet tant que le démon DHCP n'aura pas redémarré par la commande subnet 192.168.1.0 netmask 255.255.255.0 {
~]# systemctl restart dhcpd range 192.168.1.10 192.168.1.100;
Dans l’exemple ci-dessous les options routers, subnet-mask, domain-search, domain- }
name-servers, et time-offset sont utilisées pour les énoncés d’hôte déclarés dessous. Pour assigner une adresse IP à un client sur la base d'une adresse MAC de la carte
Pour chaque sous-réseau servi, et pour chaque sous-réseau auquel le serveur DHCP se d'interface de réseau, utiliser le paramètre hardware ethernet qui se trouve dans la
connecte, il doit y avoir une déclaration de sous-réseau, qui indique au démon DHCP déclaration de l’hôte. Comme le montre l’exemple 3, la déclaration host apex spécifie
comment reconnaître qu'une adresse est sur ce sous-réseau. Une déclaration de sous- que la carte d'interface de réseau ayant pour adresse MAC 00:A0:78:8E:9E:AA reçoit
réseau est exigée pour chaque sous-réseau, même si aucune adresse ne doit être allouée toujours l'adresse IP 192.168.1.4.
de façon dynamique sur ce sous-réseau. Notez que vous pouvez également utiliser le paramètre host-name pour assigner un
Dans cet exemple, il y a des options globales pour chaque client DHCP dans le sous- nom d'hôte au client.
réseau, et une plage est annoncée. Les clients reçoivent une adresse IP incluse dans host apex {
l'intervalle indiqué. option host-name "apex.example.com";
subnet 192.168.1.0 netmask 255.255.255.0 { hardware ethernet 00:A0:78:8E:9E:AA;
option routers 192.168.1.254; fixed-address 192.168.1.4;
option subnet-mask 255.255.255.0; }
option domain-search "example.com"; Tous les sous-réseaux qui partagent le même réseau physique doivent être déclarés
option domain-name-servers 192.168.1.1; dans une déclaration de réseau partagé (shared-network), comme indiqué
option time-offset -18000; dans l’exemple. Les paramètres qui se trouvent dans le shared-network, mais en dehors
range 192.168.1.10 192.168.1.100; des déclarations de sous-réseau clos, sont considérés comme paramètres globaux. Le
} nom attribué au shared-network doit être un titre descriptif pour le réseau, comme
Pour configurer un serveur DHCP qui alloue une adresse IP à un système se trouvant l'utilisation du titre « -test-lab » qui décrit tous les sous-réseaux dans un environnement
dans un sous-réseau, modifier les valeurs de l'exemple .dans l’exemple 2 on a déclaré de test.
une durée d'allocation par défaut, une durée d'allocation maximale, et des valeurs de shared-network name {
configuration de réseau pour les clients. Cet exemple alloue des adresses IP sur option domain-search "test.redhat.com";
les plages de valeurs 192.168.1.10 et 192.168.1.100 aux systèmes clients. option domain-name-servers ns1.redhat.com, ns2.redhat.com;
default-lease-time 600; option routers 192.168.0.254;
M.FILALI Linux : Administration des Serveurs 59 M.FILALI Linux : Administration des Serveurs 60
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
subnet 192.168.2.0 netmask 255.255.252.0 { d'allocation DHCP pour chaque adresse IP récemment attribuée sont automatiquement
#parameters for subnet stockées dans la base de données d'allocation. L'information comprend la durée
range 192.168.2.1 192.168.2.254; d'allocation, à laquelle l'adresse IP a été assignée, les dates de début et de fin de
} l'allocation et l'adresse MAC de la carte d'interface réseau qui a été utilisée pour
} récupérer l'allocation.
Comme démontré dans l’exemple, la déclaration de groupe est utilisée pour appliquer Toutes les heures de la base de données d'attribution sont des heures "Coordinated
les paramètres globaux à un groupe de déclarations. Ainsi, les réseaux partagés, les Universal Time" (UTC) et non pas des heures locales.
sous-réseaux, et les hôtes peuvent être groupés. La base de données de l'allocation est recrée de temps en temps pour qu'elle n'atteigne
group { pas des proportions trop élevées. Tout d'abord, toutes les allocations connues sont
option routers 192.168.1.254; enregistrés dans une base de données d'allocations temporaires. Le
option domain-name-servers 192.168.1.1; Le démon DHCP peut être terminé ou le système peut se bloquer après que la base de
option time-offset -18000; données d'allocations a été renommée dans le fichier de sauvegarde, mais avant que le
host apex { nouveau fichier n'ait été écrit. Dans ce cas, le fichier dhcpd.leases n'existe pas, mais il
option host-name "apex.example.com"; est nécessaire de démarrer le service. Ne créez de nouveau fichier d'allocation. Si vous
hardware ethernet 00:A0:78:8E:9E:AA; le faites, toutes les anciennes allocations seront perdues, ce qui provoquera de
M.FILALI Linux : Administration des Serveurs 61 M.FILALI Linux : Administration des Serveurs 62
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
perdues, ce qui entraîne de nombreux problèmes. La solution est de renommer le fichier Les options de ligne de commande peuvent se rajouter
de sauvegarde dhcpd.leases~ en dhcpd.leases, puis démarrer le démon. à ExecStart=/usr/sbin/dhcpd dans le fichier
Pour démarrer le service DHCP, utiliser la commande suivante : d'unité /etc/systemd/system/dhcpd.service sous la section [Service]. Elles incluent :
~]# systemctl start dhcpd.service 1. -p portnum — spécifie le numéro de port UDP sur lequel dhcpd doit écouter. La
Pour arrêter le serveur DHCP, saisir : valeur par défaut est le port 67. Le serveur DHCP transmet les réponses aux
~]# systemctl stop dhcpd.service clients DHCP à un numéro de port d'un numéro supérieur au numéro de port UDP
spécifié. Par exemple, si le port par défaut 67 est utilisé, le serveur écoute les
Par défaut, le service DHCP ne démarre pas à l'amorçage.
Pour activer le service DHCP au demarrage, saisir : requêtes sur le port 67, et répond au client sur le port 68. Si un port est spécifié ici et
que l'agent de relais DHCP est utilisé, le même port que celui sur lequel l'agent de
~]# systemctl enable dhcpd.service
relais DHCP doit écouter, devra être spécifié.
Si plus d'une interface réseau est reliée au système, mais que le serveur DHCP doit
2. -f — exécute le démon en arrière-plan. Utilisé uniquement pour le débogage.
seulement écouter les requêtes DHCP sur une des interfaces, configurez le
3. -d — logue le démon de serveur DHCP en descripteur d'erreur standard. Utilisé
serveur DHCP pour écouter uniquement sur ce périphérique. Le démon DHCP écoute
surtout pour le débogage. Si non spécifié, la journalisation apparaîtra sur le
uniquement sur les interfaces pour lesquelles il pourra trouver une déclaration de sous-
fichier /var/log/messages.
réseau dans le fichier /etc/dhcp/dhcpd.conf.
4. -cf filename — indique l'emplacement du fichier de configuration. L'emplacement par
Cela est utile si vous avez un ordinateur protégé par un pare-feu et doté de deux cartes
défaut est /etc/dhcp/dhcpd.conf.
réseau. L'une d'elles peut être configurée comme client DHCP pour récupérer une
5. -lf filename — indique l'emplacement du fichier de base de données d'allocations. Si
adresse IP d'internet. L'autre carte réseau peut servir de serveur DHCP pour le réseau
un fichier de base de données d'allocation existe déjà, il est très important que le
interne se trouvant derrière le pare-feu. En ne spécifiant que la carte réseau connectée
même fichier soit utilisé à chaque fois que le serveur DHCP démarre. Il est
au réseau interne, votre système sera plus sûr puisque les utilisateurs ne pourront pas
fortement conseillé d'utiliser cette option à but de débogage sur des machines qui ne
se connecter au démon par le biais de l'internet.
soient pas des machines de production. L'emplacement par défaut
Pour spécifier les options de ligne de commandes, copier et éditer le
est /var/lib/dhcpd/dhcpd.leases.
fichier dhcpd.service en tant qu'utilisateur root. Par exemple :
6. -q — ne pas afficher tout le message copyright quand vous démarrez le démon.
~]# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
Puis, en tant qu'utilisateur root, démarrer le service à nouveau. requête à la liste des serveurs DHCP spécifiés lors du démarrage de l'agent de relais
~]# systemctl --system daemon-reload DHCP. Lorsqu'un serveur DHCP renvoie une réponse, la réponse est diffusée sur le
M.FILALI Linux : Administration des Serveurs 63 M.FILALI Linux : Administration des Serveurs 64
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
L'agent de relais DHCP pour IPv4, dhcrelay, écoutes les
demandes DHCPv4 et BOOTP sur toutes les interfaces, sauf si les interfaces sont ~]# route add –host 255.255.255.255 dev eth0
L'agent de relais DHCP pour IPv6, dhcrelay6, n'a pas ce comportement par défaut et ~]# route add 255.255.255.255 dev ens33
vous devez spécifier les interfaces pour écouter les requêtes DHCPv6. 4.2. Configurer dhcrelay en tant qu'agent de relais DHCPv6
dhcrelay peut être exécuté en tant qu'agent de relais DHCPv4 et BOOTP (par défaut) Pour exécuter dhcrelay en mode DHCPv6, ajouter l'argument -6 et indiquer « lower
ou en tant qu'agent de relais DHCPv6 (avec l'argument -6). Pour voir le message interface » (interface de niveau inférieur sur laquelle les requêtes vont être reçues des
d'utilisation, exécutez la commande dhcrelay -h. clients ou en provenance d'autres agents de relais) et « upper interface »(l'interface de
niveau supérieur sur laquelle des requêtes des clients et d'autres agents de relais
4.1. Configurer dhcrelay en tant qu'agent de relais DHCPv4 et BOOTP
Pour exécuter dhcrelay en mode DHCPv4 et BOOTP, spécifier les serveurs dans doivent être transférées). Copier dhcrelay.service dans dhcrelay6.service et modifiez-le
lesquels vous souhaitez envoyer les demandes. Copier et éditer le en tant qu'utilisateur root :
fichier dhcrelay.service en tant qu'utilisateur root : ~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/ ~]# vi /etc/systemd/system/dhcrelay6.service
Modifiez l'option ExecStart sous la section [Service] Ajouter l'argument -6 et ajpouter
~]# vi /etc/systemd/system/dhcrelay.service les interfaces « lower interface » et « upper interface », par exemple :
Modifiez l'option ExecStart sous la section [Service] et ajouter une ou plusieurs ExecStart=/usr/sbin/dhcrelay -d --no-pid -6 -l em1 -u em2
adresses IPv4 de serveur à la fin de la ligne, par exemple :
Pour activer les changements, en tant qu'utilisateur root, démarrez le service à
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 nouveau
Si vous souhaitez également spécifier des interfaces où l'agent de relais DHCP écoute ~]# systemctl --system daemon-reload
les requêtes DHCP, ajoutez-les à l'option ExecStart avec l'argument -i (sinon, il ~]# systemctl restart dhcrelay6
écoutera toutes les interfaces), par exemple :
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 -i em1 5. Configuration d'un serveur DHCP Multi-hôtes
Un serveur DHCP multi-hôtes sert plusieurs réseaux, c'est-à-dire, plusieurs sous-
Pour activer les changements, en tant qu'utilisateur root, démarrez le service à
réseaux. Les exemples dans les sections suivantes décrivent comment configurer un
nouveau
serveur DHCP pour qu'il puisse desservir plusieurs réseaux, sélectionner les interfaces
~]# systemctl --system daemon-reload
réseau à écouter, et comment définir les paramètres réseau pour les systèmes qui se
~]# systemctl restart dhcrelay
déplacent entre les réseaux.
Avant de procéder à tout changement, sauvegarder le fichier /etc/dhcp/dhcpd.conf
Note : Il arrive que certains clients DHCP (particulièrement ceux du monde Microsoft
existant.
Windows), attendent une réponse du serveur depuis l’adresse 255.255.255.255.
Le démon DHCP n'écoutera que les interfaces pour lesquelles il pourra trouver une
Cependant, le système GNU/Linux a tendance à modifier cette adresse pour l’adapter à
déclaration de sous-réseau dans le fichier /etc/dhcp/dhcpd.conf.
celle de diffusion du sous-réseau concerné. Dans l’exemple précédent : 172.16.1.255. Dans
Voici un fichier de base /etc/dhcp/dhcpd.conf, pour un serveur qui a deux interfaces de
un tel cas, il suffit de changer le comportement du serveur DHCP en ajoutant une route
réseau, eth0 dans un réseau 10.0.0.0/24 et eth1 dans un réseau 172.16.0.0/24. Plusieurs
pour l’adresse attendue
M.FILALI Linux : Administration des Serveurs 65 M.FILALI Linux : Administration des Serveurs 66
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
déclarations de sous-réseau permettent de définir des paramètres différents pour option routers 10.0.0.1;
plusieurs réseaux : L'option option routers définit la passerelle par défaut du sous-réseau. Cela est exigé
default-lease-time 600; pour que les systèmes puissent atteindre les réseaux internes sur un sous-réseau
max-lease-time 7200; différent, ainsi que sur des réseaux externes.
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.5 10.0.0.15;
option subnet-mask 255.255.255.0; L'option range (plage) se réfère au pool d'adresses IP disponibles. Une adresse faisant
option routers 10.0.0.1; partie d'une plage de valeurs IP indiquée est assignée aux systèmes.
range 10.0.0.5 10.0.0.15; Avertissement : Pour éviter une mauvaise configuration quand le serveur DHCP
} donne des adresses IP d’une plage d’adresses IP à un autre segment Ethernet
subnet 172.16.0.0 netmask 255.255.255.0 { physique, assurez-vous de ne pas confiner plusieurs sous-réseaux dans une déclaration
option subnet-mask 255.255.255.0; de réseau partagé.
option routers 172.16.0.1; 5.1. Configuration de l'hôte
range 172.16.0.5 172.16.0.15; Avant de procéder à tout changement, sauvegarder le fichier dhcpd.conf existant.
M.FILALI Linux : Administration des Serveurs 67 M.FILALI Linux : Administration des Serveurs 68
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
hardware ethernet 00:1A:6B:6A:2E:0B; configuration ne fonctionnera pas si les deux interfaces réseau sont connectées au
fixed-address 172.16.0.20; même réseau en même temps :
} host interface0 {
hôte example0 hardware ethernet 00:1a:6b:6a:2e:0b;
La déclaration host définit des paramètres spécifiques pour un système unique, comme fixed-address 10.0.0.18;
une adresse IP. Pour configurer des paramètres spécifiques sur plusieurs hôtes, utiliser }
des déclarations d'hôte. host interface1 {
La plupart des clients DHCP ignorent le nom dans les déclarations d'hôte, et à ce titre, hardware ethernet 00:1A:6B:6A:27:3A;
ce nom peut être n'importe quoi, tant que c'est différent des autres déclarations d'hôte. fixed-address 10.0.0.18;
Pour configurer le même système sur des réseaux multiples, utilisez un nom différent }
pour chaque déclaration d'hôte, sinon le démon DHCP ne démarrera pas. Les systèmes Pour cet exemple, interface0 est la première interface réseau, et interface1 est la
sont identifiés par l'option hardware ethernet, et non pas le nom dans la déclaration seconde interface. Les différentes options hardware ethernet identifient chaque
de l'hôte. interface.
hardware ethernet 00:1A:6B:6A:2E:0B; Si un tel système se connecte à un autre réseau, ajouter plus de déclarations d'hôte,
L'option hardware ethernet identifie le système. Pour trouver cette adresse, exécuter la sans oublier :
commande ip link. d'assigner une fixed-address valide au réseau auquel l'hôte se connecte.
fixed-address 10.0.0.20; de rendre le nom de déclaration d'host unique.
L'option fixed-address assigne une adresse IP au système spécifié par l'option hardware Quand un nom non unique est donnée dans une déclaration d'hôte, le démon DHCP ne
ethernet. Cette adresse doit se trouver en dehors de la plage d'adresses IP spécifiée par démarre pas, et l'erreur suivante est journalisée dans /var/log/messages :
l'option range. dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists
Si les énoncés d'option ne se terminent pas par un point-virgule, le démon DHCP ne dhcpd: }
démarrera pas, et une errreur ressemblant à ce qui suit sera journalisée dhcpd: ^
dans /var/log/messages : dhcpd: Configuration file errors encountered -- exiting
/etc/dhcp/dhcpd.conf line 20: semicolon expected. L'erreur vient du fait d'avoir plusieurs déclarations d'host interface0 définies
dhcpd: } dans /etc/dhcp/dhcpd.conf.
dhcpd: ^
dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file
6. DHCP pour IPv6 (DHCPv6)
L'ISC DHCP inclut un support pour IPv6 (DHCPv6) depuis la version 4.x avec un
dhcpd:
serveur DHCPv6, un client et une fonctionnalité d'agent de relais. Les agents
dhcpd: ^
supportent à la fois IPv4 et IPv6. Cependant, les agents ne peuvent gérer qu'un seul
dhcpd: Configuration file errors encountered -- exiting
protocole à la fois; et pour le support double, ils doivent être démarrés séparemment
5.1.2. Configurer des systèmes avec des interfaces de réseaux multiples
pour IPv4 et IPv6. Par exemple, configurez DHCPv4 et DHCPv6 en éditant leurs
Les déclarations suivantes d'hôte configurent un système unique, qui possède plusieurs
interfaces de réseau, pour que chaque interface reçoive la même adresse IP. Cette
M.FILALI Linux : Administration des Serveurs 69 M.FILALI Linux : Administration des Serveurs 70
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
fichiers de configuration respectifs /etc/dhcp/dhcpd.conf et /etc/dhcp/dhcpd6.conf, puis TP-N°3-1 : Implémenter le serveur DHCP (Enoncé)
exécutez les commandes suivantes :
~]# systemctl start dhcpd
~]# systemctl start dhcpd6
Le fichier de configuration du serveur DHCPv6 se trouve dans /etc/dhcp/dhcpd6.conf.
On peut trouver le fichier de configuration de l'exemple de serveur
dans /usr/share/doc/dhcp-version/dhcpd6.conf.example. 1) Dans un terminal, utiliser la commande suivante :
Un simple fichier de configuration de serveur DHCPv6 peut ressembler à ce qui suit : $cd ; script DHCP_BinomeX.txt avec X=numéro de Binôme
subnet6 2001:db8:0:1::/64 { 2) Renommer votre machine à SRV-DHCP
range6 2001:db8:0:1::129 2001:db8:0:1::254; 3) Configurer votre carte réseau avec l’adresse IP suivante : 10.0.0.1 et le masque sous
option dhcp6.name-servers fec0:0:0:1::1; réseau : 255.0.0.0 en utilisant le fichier de configuration
option dhcp6.domain-search "domain.example"; 4) Redémarrer le service réseau
} 5) Afficher la configuration de votre carte réseau
6) Installer le serveur DHCP s’il n’est pas encore installé
7) Vérifier si le package est bien installé
8) Configurer le serveur DHCP pour attribuer des adresses IP aux clients du réseau
selon les paramètres suivants :
o Plage d’adresses : de 10.0.0.10 à 10.0.0.254
o Durée du bail par défaut : 1 jour.
o Durée max du bail : 2 jours.
o Passerelle par défaut : 10.0.0.1
9) Afficher le contenu du fichier de configuration de votre serveur DHCP
10) (Re) démarrer le serveur DHCP (dépanner la configuration en cas d’erreur)
11)Tester le bon fonctionnement du serveur DHCP ?
12)Quel est le résultat de ce test ? Expliquer ?
13)Enregistrer une copie des fichiers de configuration de votre machine
14)Quitter par la commande : exit
15)Rédiger un Rapport du TP (Commandes Résultats Interpretations)
M.FILALI Linux : Administration des Serveurs 71 M.FILALI Linux : Administration des Serveurs 72
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
1) Dans un terminal, utiliser la commande suivante pour créer le script de travail dhcp-server-4.3.5-1.fc25.i686
~]$ cd ; script -f DHCP_BinomeX.txt Afficher les fichiers de confguration du serveur dhcp
Le script a débuté, le fichier est DHCP_BinomeX.txt ~]# rpm -qacl | grep dhcp
M.FILALI Linux : Administration des Serveurs 73 M.FILALI Linux : Administration des Serveurs 74
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Dans cette question on doit s’assurer que la liaison entre les 2 machines soit bien Nom de domaine : ofppt.ma
établie et configurer la machine cliente de façon à obtenir une @IP de manière Serveurs de nom : 8.8.8.8, 8.8.4.4
12) Quel est le résultat de ce test ? Expliquer ? ~]# systemctl is-enabled dhcpd
Résultat :
Le serveur DHCP a attribué une @IP automatiquement à la machine cliente avec
les paramètres définits dans le fichier de configuration
Exercice:
1. Editer le fichier de configuration DHCP et ajouter des options :
M.FILALI Linux : Administration des Serveurs 75 M.FILALI Linux : Administration des Serveurs 76
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°3-2 : Configurer l’un agent de relais DHCP (Enoncé) TP-N°3-2 : Configurer l’un agent de relais DHCP (Corrigée)
I) Configuration du serveur DHCP
1) Configurer le serveur DHCP pour les deux réseaux 192.168.1.0/24 et 172.16.0.0/16
M.FILALI Linux : Administration des Serveurs 77 M.FILALI Linux : Administration des Serveurs 78
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]# vi /etc/systemd/system/dhcrelay.service TP-N°3.3 : Mise en Place d’un serveur DHCP (Devoir Libre)
Ajouter l’adresse IP du serveur DHCP Les stations de travail se multiplient sur le réseau, et la gestion des adresses IP devient
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 problématique. Vous décidez d’installer un serveur DHCP sous linux.
6) Activer et démarrer l’agent de relais La configuration du réseau doit respecter le plan suivant :( x est le n° du Binôme)
~]# systemctl enable dhcrelay adresse du réseau 192.168.x.0 /24
~]# systemctl restart dhcrelay adresse serveur DNS 192.168.x.2
adresse passerelle d’accès Internet (routeur) 192.168.x.1
7) Tester le bon Fonctionnement de l’agent de relais adresse serveur DHCP 192.168.x.3
Ajouter une route sur le serveur DHCP pour router le Broadcast adresse de l’imprimante 192.168.x.4
~]# route add 255.255.255.255 dev ens33
1. Expliquer à l’aide d’un schéma le principe de fonctionnement du DHCP en
Sur le client DHCP « PC4 » vérifier que la machine à obtenu une adresse dynamique.
décrivant les différents messages communiqués entre le serveur DHCP et les
III) Configuration de la Résérvation DHCP
machines clientes.
8) Configurer une résérvation DHCP multi-accès pour le client PC4
2. Dans un terminal, utiliser la commande suivante :
host PC4-vsw1 { ~]$ cd ; script DHCP2_BinomeX.txt avec X=numéro de Binôme
hardware ethernet 00:1A:6B:6A:2E:0B; 3. Renommer votre machine à SRV-DHCP
fixed-address 192.168.1.50; 4. Sur le serveur installez le service DHCP
} 5. Vérifier l’installation du service DHCP
host PC4-vsw2 { Pour que DHCP puisse fonctionner correctement, il doit avoir une adresse IP fixe.
hardware ethernet 00:1A:6B:6A:2E:0B; 6. configurer DHCP avec une adresse IP fixe. L’adresse doit être permanente et être
fixed-address 172.16.0.50; conservée après redémarrage
} 7. vérifier que l’adresse IP est bien prise en compte.
9) Configurer une résérvation DHCP multi-interfaces pour le client PC4 8. Configurer le fichier resolv.conf pour qu’il exploite le serveur DNS
host carte1 { 9. Modifier le fichier de configuration d’interface pour qu’il prenne en compte la
hardware ethernet 00:1a:6b:6a:2e:0b; passerelle par défaut.
fixed-address 192.168.1.50; 10. démarrer DHCP et vérifiez son état.
} 11. dans le fichier dhcpd.conf, déclarez un réseau correspondant à votre adresse de
host carte2 { réseau (192.168.x.0/24)
hardware ethernet 00:1A:6B:6A:27:3A; 12. au sein du subnet, déclarez une plage d’adresse allant de 192.168.x.20 à
fixed-address 192.168.1.50; 192.168.x.100.
} 13. au sein du subnet, déclarez la passerelle par défaut.
14. au sein du subnet, déclarez le serveur DNS.
15. Configurer la durée des baux par défaut à 24h.
16. Vérifier le bon démarrage du DHCP
M.FILALI Linux : Administration des Serveurs 79 M.FILALI Linux : Administration des Serveurs 80
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
17. Vérifiez que la machine cliente a bien obtenu une adresse IP (et les paramètres CH4 : Implémenter le serveur BIND
du bail)
18. Vérifiez au niveau du serveur DHCP que le serveur a pu attribuer l’adresse à la
machine cliente
Au sein de votre réseau, vous possédez une imprimante réseau qui doit
systématiquement obtenir la même adresse IP. Vous décidez de réserver l’adresse
192.168.x.4 à l’imprimante dont l’adresse MAC est 00 :12 :34 :56 :78 :90.
19. Modifiez le fichier de configuration du DHCP, afin qu’il puisse faire la réservation
d’adresse pour l’imprimante
20. Faites en sorte que DHCP prend en compte cette réservation.
21. Depuis le serveur tester la connectivité avec la machine cliente
22. Enregistrer une copie des fichiers de configuration de votre machine
23. Quitter par la commande : exit
24. Rédiger un Rapport du TP (Commandes Résultats Interpretations)
1. Introduction
DNS (Domain Name System) est un système de base de données distribué utilisé pour
associer les noms d'hôtes à leurs adresses IP respectives. Pour les utilisateurs, cela a
l'avantage qu'ils peuvent faire référence à des machines du réseau par leur nom, ce qui
est normalement plus facile à mémoriser que les adresses numériques de réseau. Pour
les administrateurs de système, l'utilisation d'un serveur DNS (ou nameserver) permet
de changer l'adresse IP pour un hôte sans affecter pour autant les recherches basées
nom. L'utilisation des bases de données DNS sert non seulement à résoudre les
adresses IP en noms de domaine, mais leur utilisation s'élargit de plus en plus au fur et
à mesure que DNSSEC se déploie.
2. Introduction à DNS
DNS est généralement implémenté à l'aide d'un ou plusieurs serveurs centralisés qui
font autorité pour certains domaines. Lorsqu'un hôte client demande des informations à
un serveur de noms, il se connecte généralement au port 53. Le serveur de noms tente
alors de résoudre le nom demandé. Si le serveur de noms est configuré en serveur de
noms récursifs et qu'il n'a pas une réponse faisant autorité, ou n'a pas la réponse en
cache suite à une requête antérieure, il interroge d'autres serveurs de noms,
M.FILALI Linux : Administration des Serveurs 81 M.FILALI Linux : Administration des Serveurs 82
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
appelés serveurs de noms racine, pour déterminer quels serveurs de noms font autorité Notez que les administrateurs de serveurs DNS et DHCP, ainsi que toute application de
pour le nom en question, puis, il les interroge pour obtenir le nom demandé. Les noms provisioning, doivent s'accorder sur le format des noms d'hôtes utilisé dans une
de serveurs configurés comme étant purement autoritatifs, avec la récurrence organisation.
désactivée, ne feront pas de recherches pour les comptes des clients. 2.2. Types de serveurs de noms
2.1. Zones de noms de serveurs Il existe deux types de déclarations dans le fichier de configuration :
Dans un serveur DNS, toutes les informations sont stockées dans des éléments de base authoritative
de données appelés enregistrements de ressources (RR). Les enregistrements de Les serveurs de noms autoritatifs répondent à des enregistrements de ressources qui
ressources sont définis dans RFC 1034. Les noms de domaine sont organisés en font partie de leur zone uniquement. Cette catégorie inclut à la fois les serveurs
structure arborescente. Chaque niveau de la hiérarchie est divisé par un point (.). Par primaires (master) et secondaires (esclave).
exemple : le domaine racine, précédé de « . », correspond à la racine de recursive
l'arborescence DNS, qui est au niveau zéro. Le nom de domaine com, dénommé Les serveurs de noms récursifs offrent des services de résolution, mais ils ne font pas
le domaine de premier niveau (TLD) est un enfant du domaine racine (.) et correspond autorité pour toutes les zones. Des réponses pour toutes les résolutions sont mises en
donc au premier niveau de la hiérarchie. Le nom de domaine example.com est au cache en mémoire pour une période déterminée, qui est spécifiée par l'enregistrement
deuxième niveau de la hiérarchie. de ressource obtenue.
Exemple d'enregistrement de ressource (RR) simple : Bien qu'un serveur de noms puisse être à la fois faire valoir d'autorité et être récursif, il
example.com. 86400 IN A 192.0.2.1 est recommandé de ne pas combiner les types de configuration. Pour être en mesure
Le nom de domaine example.com est le propriétaire du RR (enregistrement de d'exécuter leur travail, les serveurs faisant autorités doivent être disponibles à tous les
ressource). La valeur 86400 correspond à la durée de vie (ou TTL). Les clients à tout moment. Mais comme la recherche récursive prend beaucoup plus de
lettres IN (remplaçant « système Internet »), indiquent la classe de l'enregistrement de temps que les réponses qui font autorité, les serveurs récursifs doivent être accessibles
ressource ( RR). La lettre A indique le type de RR (dans cet exemple, une adresse à un nombre restreint de clients uniquement, sinon, ils auront tendance à lancer des
d'hôte). L'adresse de l'hôte 192.0.2.1 représente les données contenues dans la dernière attaques par déni de service (DDoS).
partie de cet enregistrement de ressource (RR). C'est un exemple d'enregistrement de 2.3. BIND en tant que serveur de noms
BIND représente un ensemble de programmes liés à DNS. Il comprend un serveur de
ressource (RR) en une ligne. Un ensemble d'enregistrements de ressources avec les
noms intitulé named, un utilitaire d'administration intitulé rndc, et un outil de
mêmes type, propriétaire et classe est appelé un resource record set (RRSet).
déboggage intitulé dig.
Les zones sont définies sur les serveurs de noms autoritatifs par l'utilisation des fichiers
de zone, qui contiennent des définitions des enregistrements de ressources dans chaque
3. BIND
zone. Les fichiers sont stockés sur des serveurs de noms primaires (également 3.1. Zones vides
appelés serveurs de noms maîtres), où des modifications sont apportées aux fichiers et BIND configure un certain nombre de « zones vides » afin d'empêcher des serveurs
aux serveurs de noms secondaires (également appelés noms de serveurs esclaves), qui récursifs d'envoyer des requêtes inutiles vers des serveurs Internet qui ne peuvent pas
reçoivent des définitions de zones des serveurs de noms primaires. Les serveurs de les gérer (créant ainsi des retards et des réponses SERVFAIL aux clients qui les
noms primaires et secondaires font autorités pour la zone et se ressemblent pour le interrogent). Ces zones vides veillent à ce que les réponses NXDOMAIN immédiates et
client. Selon la configuration, un serveur de noms peut également servir de serveur faisant autorités soient retournées à la place. L’option de configuration vide-zones-
principal ou secondaire pour plusieurs zones à la fois en même temps. enable détermine si oui ou non les zones vides sont créées, tandis que l'option disable-
M.FILALI Linux : Administration des Serveurs 83 M.FILALI Linux : Administration des Serveurs 84
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
vide-zone peut servir à désactiver une ou plusieurs zones vides dans la liste des préfixes 3.2.1. Installation de BIND
Pour installer BIND exécuter la commande suivante en tant qu'utilisateur root :
par défaut, qui est utilisée.
Le nombre d'espaces vides créés pour les préfixes RFC 1918 a augmenté, et les ~]# yum install bind9
utilisateurs de BIND 9.9 et versions ultérieures, verront des espaces vides RFC 1918 à Pour activer le service named
la fois quand empty-zones-enable n'est pas spécifié (valeur par défaut yes), ou quand ~]# systemctl enable named
RFC 1918 est défini à yes. ~]# systemctl start named
M.FILALI Linux : Administration des Serveurs 85 M.FILALI Linux : Administration des Serveurs 86
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Utilisation d'acl en conjonction aux options Pour obtenir une liste des possibilités d'option les plus communément utilisées,
acl black-hats { consulter le tableau ci-dessous
10.0.2.0/24; Options de configuration souvent utilisées
192.168.0.0/24; Option Description
1234:5678::9abc/24; allow-query Spécifie quels hôtes sont autorisés à interroger le serveur de
}; noms pour les enregistrements de ressources de référence. Il
acl red-hats { accepte une liste de contrôle d'accès, une collection
10.0.1.0/24; d'adresses IP, ou des réseaux dans la notation CIDR. Par
}; défaut, tous les hôtes sont autorisés.
options { allow-query-cache Indique quels hôtes sont autorisés à interroger le serveur de
blackhole { black-hats; }; noms pour des données ne faisant pas autorité, comme les
allow-query { red-hats; }; requêtes récursives. Par défaut, seuls
allow-query-cache { red-hats; }; les localhost et localnets sont autorisés.
}; blackhole Indique les hôtes non autorisés à interroger le serveur de
include noms. Cette option doit être utilisée lorsqu'un hôte particulier
L'argument include vous permet d'inclure des fichiers dans /etc/named.conf, de façon à ou qu'réseau inonde le serveur de demandes. L'option par
ce que des données pouvant être sensibles puissent être mises dans un fichier séparé défaut est none.
sans limitation de permissions. Prend la forme suivant : directory Indique un répertoire de travail pour le service named.
L'argument file-name est un nom d'argument qui se trouve dans un chemin d'accès disable-empty-zone Utilisé pour désactiver une ou plusieurs des zones vides de la
complet de fichier. liste des préfixes par défaut qui pourraient être utilisés. Peut
Inclure un fichier dans /etc/named.conf être spécifié dans les arguments d'options et également dans
les arguments de vues. Il peut être utilisé à plusieurs reprises.
include "/etc/named.rfc1912.zones";
dnssec-enable Indique si l'on doit retourner aux enregistrements de
options
ressources liées à DNSSEC. L'option par défaut est yes.
L'argument options vous permet de définir des options de configuration du serveur
-n Indique si l'on doit prouver que les enregistrements de
global, ainsi que de définir les valeurs par défaut d'autres arguments. Il peut être
ressources sont authentiques via DNSSEC. L'option par
utilisé pour spécifier l'emplacement du répertoire de travail de named, les types de
défaut est yes.
requêtes autorisées et bien plus encore. Il prend la forme suivante :
empty-zones-enable Contrôle si les zones vides sont créées ou non. Ne peut être
options {
spécifié que dans les arguments d'options.
option;
forwarders Indique une liste d'adresses IP pour les serveurs de noms vers
...
lesquels les requêtes doivent être redirigées pour qu'elles
};
soient résolues.
M.FILALI Linux : Administration des Serveurs 87 M.FILALI Linux : Administration des Serveurs 88
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
forward Indique le comportement de la directive forwarders. Accepte explicit — le serveur ne notifiera que les serveurs secondaires
les options suivantes : spécifiés dans la liste also-notify dans un argument de zone.
first — Le serveur va vérifier les serveurs de noms énumérés pid-file Indique l'emplacement du fichier d'ID de processus créé par le
dans la directive forwarders avant de tenter de résoudre le service named.
nom par lui-même. recursion Indique comportement de serveur récurvif ou non. L'option
only — Quand on ne peut pas vérifier les serveurs de noms par défaut est yes.
énumérés dans la directive forwarders, le serveur ne tentera statistics-file Indique un emplacement spécifique pour les fichiers de
pas de résoudre le nom par lui-même. statistiques. Le fichier /var/named/named.stats est utilisé par
listen-on Indique l'interface de réseau IPv4 sur lequel écouter les défaut.
requêtes. Sur un serveur DNS, qui agit aussi comme une Note : Le répertoire utilisé par named pour les données de runtime a été déplacé de
passerelle, vous pouvez utiliser cette option pour répondre à l'emplacement par défaut de BIND, /var/run/nom /, à un nouvel
des requêtes provenant d'un réseau uniquement. Toutes les emplacement /run/name/. Ainsi, le fichier PID a été déplacé de l'emplacement par
interfaces IPv4 sont utilisées par défaut. défaut /var/run/named/named.pid au nouvel emplacement /run/named/named.pid. De
listen-on-v6 Indique l'interface de réseau IPv6 sur lequel écouter pour les plus, le fichier de clés de session a été déplacé à /run/named/session.key.
requêtes. Sur un serveur DNS qui agit aussi en tant Important : Pour éviter les attaques DDoS (de l'anglais, distributed denial of service),
quepasserelle, vous pouvez utiliser cette option pour répondre nous vous conseillons d'utiliser l'option allow-query-cache pour limiter l'accès aux
à des requêtes provenant d'un seul réseau. Toutes les services DNS récursifs à quelques groupes de clients particuliers.
interfaces IPv6 sont utilisées par défaut. Utiliser l'argument « option »
max-cache-size Indique la quantité maximale de mémoire à utiliser pour les options {
caches de serveurs. Lorsque la limite est atteinte, le serveur allow-query { localhost; };
entraîne l'expiration prémature des enregistrements, alors listen-on port 53 { 127.0.0.1; };
que la limite n'est pas dépassée. Sur un serveur avec plusieurs listen-on-v6 port 53 { ::1; };
vues, la limite s'appliquera séparément dans le cache de max-cache-size 256M;
chaque vue. L'option par défaut est 32M. directory "/var/named";
-f Indique si on doit notifier les serveurs de noms secondaires statistics-file "/var/named/data/named_stats.txt";
quand une zone est mise à jour. Accepte les options suivantes :
yes — le serveur notifiera tous les serveurs de noms recursion yes;
secondaires. dnssec-enable yes;
no — le serveur ne notifiera aucun serveur de noms dnssec-validation yes;
secondaire.
master-only — le serveur notifiera un serveur primaire pour pid-file "/run/named/named.pid";
cette zone uniquement. session-keyfile "/run/named/session.key";
};
M.FILALI Linux : Administration des Serveurs 89 M.FILALI Linux : Administration des Serveurs 90
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
zone serveur soit dans un réseau fiable.
L'argument zone vous permet de définir les caractéristiques d'une zone, comme file Indique le nom du fichier qui se trouve dans le répertoire de
l'emplacement de son fichier de configuration et les options spécifiques à la zone, et il travail named qui contient les données de configuration de la
peut être utilisé en remplacement aux arguments d'options. Il prend la forme suivante : zone.
zone zone-name [zone-class] { masters Indique à partir de quelles adresses IP on peut demander des
option; informations de zone autoritatives. Cette option n'est utilisée que
... si la zone est définie en tant que type slave.
}; -f Indique si on doit notifier les serveurs de noms secondaires quand
L'attribut zone-name correspond au nom de la zone, zone-class correspond à la classe une zone est mise à jour. Accepte les options suivantes :
optionnelle de zone, et option correspond à une option d'argument de zone comme yes — le serveur va notifier tous les serveurs de noms secondaires.
L'attribut zone-name est particulièrement important, car il correspond à la valeur par master-only — le serveur ne notifiera le serveur primaire que
défaut assignée à la directive $ORIGIN utilisée dans le fichier de zone correspondant pour la zone.
qui se trouve dans le répertoire /var/named/. Le démon named ajoute le nom de la zone explicit — le serveur ne notifiera que les serveurs secondaires
à n'importe quel nom de domaine incomplet répertorié dans le fichier de zone. Par spécifiés dans la liste also-notify dans l'argument de zone.
exemple, si un argument de zone définit l'espace de noms pour example.com, type Indique le type de zone. Accepte les options suivantes :
utilisez example.com comme zone-name pour qu'il soit placé à la fin des noms d'hôte delegation-only — active le statut de délégation de zones
dans le fichier de zone example.com. d'infrastructures comme COM, NET, ou ORG. Toute réponse
Options couramment utilisées comme arguments de zone reçue sans délégation implicite ou explicite sera traitée
allow-query Indique quels clients sont autorisés à demander des informations TLDs (Top-Level Domain) ou pour les fichiers de zone racine pour
sur cette zone. Cette option prévaut sur l'option globale allow- les implémentations en cache ou récursives.
query. Toutes les demandes de requête sont autorisées par défaut. forward — transfère toutes les demandes d'informations de cette
allow-transfer Indique les serveurs secondaires qui sont autorisés à demander un zone vers d'autres serveurs de noms.
transfert de l'information de zone. Toutes les requêtes de transfert hint — un type particulier de zone utilisée pour pointer vers les
sont autorisées par défaut. serveurs de noms racine qui résolvent les requêtes lorsqu'une zone
allow-update Indique quels hôtes sont autorisés à mettre leurs informations à n'est pas connue par ailleurs. Aucune configuration au-delà de la
jour de façon dynamique dans leur zone. L'option par défaut est de valeur par défaut n'est nécessaire dans une zone hint (astuce).
refuser toutes les demandes de mise à jour dynamiques. master — indique le serveur de noms comme étant le serveur
Notez que vous devez être prudents lorsque vous autorisez les faisant autorité pour cette zone. Une zone doit être définie
clients à mettre à jour des informations sur leur zone. Ne comme master si les fichiers de configuration de la zone se
définissez pas les adresses IP dans cette option à moins que le trouvent sur le système.
M.FILALI Linux : Administration des Serveurs 91 M.FILALI Linux : Administration des Serveurs 92
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
slave — désigne le serveur de noms comme serveur esclave de la 3.2.3. Balises de commentaires
En plus des arguments, le fichier /etc/named.conf peut également contenir des
zone. Le serveur maître est spécifié dans la directive masters.
commentaires. Les commentaires peuvent être ignorés par le service named, mais
La plupart des changements au fichier /etc/named.conf d'un serveur de noms primaire
peuvent se révéler utiles quand on donne des informations supplémentaires à un
ou secondaire consistent à ajouter, modifier ou supprimer des arguments de zone, et
utilisateur. Voici des balises de commentaires valides :
seul un petit nombre d'options d'arguments de zone est normalement utile pour qu'un
//
serveur de noms puisse fonctionner efficacement.
Tout texte se trouvant après // en fin de ligne est considéré comme un commentaire
Dans l’exemple, la zone est identifiée comme example.com, le type est défini sur
seulement. Exemple :
le master et le service named est chargé de lire le fichier /var/named/example.com.zone.
Il permet également à un serveur de noms secondaire (192.168.0.2) uniquement de notify yes; // notifie tous les serveurs de noms secondaires
transférer la zone. #
Argument de zone pour un serveur de noms primaire Tout texte se trouvant après # en fin de ligne est considéré comme un commentaire
type master; notify yes; # notifie tous les serveurs de noms secondaires
allow-transfer { 192.168.0.2; }; Tout bloc de texte se trouvant entre /* et */ est considéré comme un commentaire.
}; Exemple :
L'argument de zone d'un serveur secondaire est légèrement différent. Le type est défini notify yes; /* notifie tous les serveurs de noms secondaires */
Dans l’exemple, le service named est configuré pour interroger le serveur principal à stockés dans le répertoire de travail named situé dans /var/named/ par défaut. Chaque
l'adresse IP 192.168.0.1 pour obtenir des informations sur la zone example.com. fichier de zone est nommé selon l'option de fichier dans l'argument zone, habituellement
L'information reçue est alors enregistrée dans le d'une manière qui porte sur le domaine et qui identifie le fichier comme contenant des
fichier /var/named/slaves/example.com.zone. Notez que vous devez mettre toutes les données de zone, comme example.com.zone.
zones esclave dans le répertoire /var/named/esclaves /, sinon le service ne pourra pas Les fichiers de zones de service « named »
Un argument de zone pour le serveur de noms secondaire /var/named/ Le répertoire de travail du service named. Le serveur de noms
masters { 192.168.0.1; }; /var/named/ Le répertoire pour les autres fichiers, comme les zones
M.FILALI Linux : Administration des Serveurs 93 M.FILALI Linux : Administration des Serveurs 94
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Ce répertoire peut contenir des écritures du service named. Augmenter cette valeur permet aux serveurs de noms distants de mettre les
Un fichier de zone se compose d'enregistrements de ressources et de directives. Les informations de zone en cache pour une plus longue période, réduisant le nombre de
directives instruisent le serveur de noms à effectuer des tâches ou à appliquer des requêtes pour la zone et allongeant ainsi l'intervalle de temps requis pour propager les
paramètres de configuration particuliers à la zone. Les enregistrements de ressources modifications d'enregistrements de ressources.
définissent les paramètres de la zone et attribuent des identités aux hôtes individuels. Utilisation de la directive $TTL
Bien que les directives soient facultatives, les enregistrements de ressources sont utiles $TTL 1D
pour procurer un service de nommage à une zone. 3.3.2. Enregistrements de ressources communs
Toutes les directives et les enregistrements de noms doivent être saisis sur des lignes Les enregistrements de ressources suivants sont couramment utilisés dans les fichiers
individuelles. de zone :
M.FILALI Linux : Administration des Serveurs 95 M.FILALI Linux : Administration des Serveurs 96
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Les autres enregistrements de ressources qui pointent vers le nom de domaine complet primaire n'est pas important. Ils sont tous deux considérés comme faisant référence
(FQDN) d'un hôte (NS, MX, PTR) ne doivent pas pointer vers un enregistrement d'autorité.
CNAME. Utiliser l'enregistrement de ressource NS
Dans Exemple l'enregistrement A relie un nom d'hôte à une adresse IP, tandis que IN NS dns1.example.com.
l'enregistrement CNAME y fait pointer le nom d'hôte commun www. IN NS dns2.example.com.
Utiliser l'enregistrement de ressource CNAME PTR
server1 IN A 10.0.1.5 L'enregistrement Pointer pointe vers une autre partie de l'espace nom. Prend la forme
www IN CNAME server1 suivante :
MX last-IP-digit IN PTR FQDN-of-system
Le premier enregistrement Mail Exchange indique où le courrier envoyé à un espace de La directive last-IP-digit correspond au dernier numéro d'une adresse IP, et le FQDN-
nom particulier contrôlé par cette zone doit aller. Il est sous la forme suivante : of-system est un nom complet (FQDN).
IN MX preference-value email-server-name Les enregistrements PTR sont principalement utilisés pour la résolution de noms
L'email-server-name est un nom de domaine complet (FQDN). La preference- inversés, car ils pointent vers des adresses IP qui renvoient à un nom particulier.
value permet un classement numérique des serveurs e-mail pour un espace de noms, SOA
donnant la préférence à certains systèmes de courrier électronique sur d'autres. L'enregistrement Start of Authority donne des informations importantes en matière
L'enregistrement de ressource MX avec la plus faible preference-value sera privilégiée d'autorité sur un espace nom ou un serveur de noms. Situé juste après la directive, c'est
au détriment des autres. Toutefois, plusieurs serveurs de messagerie peuvent posséder le premier enregistrement de ressource d'un fichier de zone. Prend la forme suivante:
la même valeur pour distribuer le trafic e-mail équitablement entre eux. @ IN SOA primary-name-server hostmaster-email (
Dans Exemple le premier serveur d'emails mail.example.com sera préféré au serveur serial-number
d'emails mail2.example.com pour recevoir des emails destinés au time-to-refresh
domaine example.com. time-to-retry
Utilisation de l'enregistrement de ressource MX time-to-expire
example.com. IN MX 10 mail.example.com. minimum-TTL )
IN MX 20 mail2.example.com. Voici les directives :
NS Le symbole @ met la directive $ORIGIN (ou le nom de zone si la directive $ORIGIN n'est
L'enregistrement Nameserver indique les serveurs de noms qui font autorité pour une pas définie) comme espace nom défini par cet enregistrement SOA de ressource.
zone particulière. Il est sous la forme suivante : La directive primary-name-server est le nom d'hôte du serveur de noms primaire qui fait
IN NS nameserver-name autorité pour ce domaine.
Le nameserver-name doit correspondre à un nom complet (FQDN). Notez que quand La directive hostmaster-email correspond à l'email de la personne à contacter au sujet de
deux noms de serveurs sont répertoriés comme étant autoritatifs pour un domaine, le l'espace nom.
fait qu'ils soient des serveurs de noms secondaires ou si l'un d'entre eux est un serveur
M.FILALI Linux : Administration des Serveurs 97 M.FILALI Linux : Administration des Serveurs 98
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
La directive serial-number est une valeur numérique incrémentée à chaque fois que le @ IN SOA dns1.example.com. hostmaster.example.com. (
fichier de zone est altéré pour indiquer qu'il est temps que le service named charge la 2001062501 ; serial
zone à nouveau. 21600 ; refresh after 6 hours
La directive time-to-refresh est une valeur numérique que les serveurs de noms 3600 ; retry after 1 hour
secondaires utilisent pour déterminer combien de temps il faut attendre avant de 604800 ; expire after 1 week
demander au serveur de noms primaire si des changements ont été apportés à la zone. 86400 ) ; minimum TTL of 1 day
La directive time-to-retry est une valeur numérique utilisée par les serveurs de noms 3.3.3. Balises de commentaires
secondaires pour déterminer la durée à attendre avant d'émettre une demande En plus des enregistrements de ressources et des directives, un fichier de zone peut
d'actualisation, si le serveur de noms primaire ne répond pas. Si le serveur principal n'a également contenir des commentaires. Les commentaires sont ignorés par le
pas répondu à une demande de rafraîchissement dans un délai spécifié dans la service named, mais peuvent s'avérer utiles pour fournir des renseignements
directive time-to-expire, les serveurs secondaires bloque d'autorité pour les demandes supplémentaires à l'utilisateur. N'importe quel texte après le point-virgule, en fin de
concernant cet espace de noms. ligne, est considéré comme un commentaire. Exemple :
Dans BIND 4 et 8, la directive minimum-TTL est la durée pendant laquelle les autres 604800 ; expire après 1 semaine
serveurs cachent les informations de la zone. Dans BIND 9, elle définit combien de 3.4. Fichier de zone simple
temps les réponses négatives sont mises en cache. La mise en cache des réponses Exemple démontre l'utilisation de directives standards et de valeurs SOA.
négatives peut être définie à un maximum de 3 heures (3H). Fichier de zone simple
Lors de la configuration de BIND, toutes les heures sont spécifiées en secondes. $ORIGIN example.com.
Toutefois, il est possible d'utiliser des abréviations lorsque l'on indique des unités de $TTL 86400
temps autres que des secondes, comme des minutes (M), des heures (H), des jours (D) @ IN SOA dns1.example.com. hostmaster.example.com. (
ou des semaines (W). 2001062501 ; serial
Secondes comparées à d'autres unités de temps 21600 ; refresh after 6 hours
Secondes Autres unités de temps 3600 ; retry after 1 hour
60 1M 604800 ; expire after 1 week
1800 30M 86400 ) ; minimum TTL of 1 day
3600 1H ;
10800 3H ;
21600 6H IN NS dns1.example.com.
M.FILALI Linux : Administration des Serveurs 99 M.FILALI Linux : Administration des Serveurs 100
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
; type master;
@ IN MX 10 mail.example.com. file "example.com.zone";
IN MX 20 mail2.example.com. allow-update { none; };
mail IN A 10.0.1.5 };
IN AAAA aaaa:bbbb::5 3.5. Un fichier de zone de résolution de noms inversés
mail2 IN A 10.0.1.6 Un fichier de zone de résolution de noms inversés est utilisé pour traduire une
IN AAAA aaaa:bbbb::6 adresse IP d'espace nom particulier en nom complet (FDNQ). Ce fichier ressemble
; This sample zone file illustrates sharing the same IP addresses domaine complet comme le montre Exemple.
; $ORIGIN 1.0.10.in-addr.arpa.
services IN A 10.0.1.10 $TTL 86400
IN AAAA aaaa:bbbb::10 @ IN SOA dns1.example.com. hostmaster.example.com. (
IN A 10.0.1.11 2001062501 ; serial
IN AAAA aaaa:bbbb::11 21600 ; refresh after 6 hours
3600 ; retry after 1 hour
ftp IN CNAME services.example.com. 604800 ; expire after 1 week
www IN CNAME services.example.com. 86400 ) ; minimum TTL of 1 day
; ;
; @ IN NS dns1.example.com.
Dans cet exemple, les serveurs de noms autoritatifs sont définis en tant ;
vers mail et mail2 via les enregistrements A. Comme ces noms ne se terminent pas par 5 IN PTR server1.example.com.
un point final, le domaine $ORIGIN est placé à leur suite, ce qui les étend 6 IN PTR server2.example.com.
à mail.example.com et à mail2.example.com. ;
pointent vers les serveurs qui conviennent, en utilisant l'enregistrement CNAME. 4 IN PTR ftp.example.com.
Ce fichier de zone peut être mis en service avec un argument zone dans /etc/named.conf Dans cet exemple, les adresses IP qui vont de 10.0.1.1 à 10.0.1.6 pointent vers le nom de
sous la forme suivante : domaine complet correspondant.
zone "example.com" IN {
M.FILALI Linux : Administration des Serveurs 101 M.FILALI Linux : Administration des Serveurs 102
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Ce fichier de zone peut être mis en service avec un argument de zone dans le seules les connexions de l'adresse de loopback (127.0.0.1) seront autorisées, et la clé qui
fichier /etc/named.conf sous la forme suivante : se trouve dans /etc/rndc.key sera utilisée.
zone "1.0.10.in-addr.arpa" IN { Important : Pour empêcher les utilisateurs non privilégiés d'envoyer des commandes
type master; de contrôle au service, veillez à ce que seul l'utilisateur root soit autorisé à lire le
file "example.com.rr.zone"; fichier /etc/rndc.key :
allow-update { none; }; ~]# chmod o-rwx /etc/rndc.key
}; 4.2. Vérifier le statut de service rndc
Il n'y a guère de différence entre cet exemple et un argument de zone standard, à Pour vérifier le statut actuel du service named, utiliser la commande suivante :
l'exception du nom de zone. Notez qu'une zone de résolution de noms inversés nécessite ~]# rndc status
Cela permet à l'unique bloc de numéros IP utilisé dans le fichier de zone de résolution server is up and running
l'utilitaire utilisera la clé située dans /etc/rndc.key, qui a été générée veillez à exécuter la commande freeze pour commenncer :
Le service named est configuré à l'aide de l'argument controls qui se trouve dans le Quand vous aurez terminé, exécuter la commande thaw pour autoriser DDNS à
fichier de configuration /etc/named.conf. À moins que cet argument soit présent, nouveau, et charger la zone à nouveau.
~]# rndc thaw localhost
M.FILALI Linux : Administration des Serveurs 103 M.FILALI Linux : Administration des Serveurs 104
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
The zone reload and thaw was successful. Exemple de recherche de serveur de noms
M.FILALI Linux : Administration des Serveurs 105 M.FILALI Linux : Administration des Serveurs 106
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
6. Fonctionnalités avancées de BIND la zone de transfert, mais il faudrait aussi qu'ils connaissent la clé secrète.
La plupart des implémentations de BIND utilisent seulement le service named pour Depuis la version 9, BIND prend également TKEY en charge, une autre méthode de clés
fournir des services de résolution de nom ou pour agir comme autorité pour un domaine secrêtes partagées pour autoriser les transferts de zone.
particulier. Cependant, la version BIND 9 a un certain nombre de fonctionnalités Important : Quand on communique sur réseau non sécurisé, ne pas se fier à
avancées qui permettent un service DNS plus sûr et plus efficace. l'authentification IP basée adresse uniquement.
Important : Avant d'utiliser des fonctionnalités avancées comme DNSSEC, TSIG ou 6.4. DNSSEC (DNS Security Extensions )
IXFR (transfert de zone incrémentiel), assurez-vous que la fonctionnalité en question Domain Name System Security Extensions (DNSSEC) fournit une authentification
est prise en charge par tous les serveurs de noms dans l'environnement réseau, surtout d'origine aux données DNS, le déni d'existence authentifié, et l'intégrité des données.
lorsque vous utilisez des versions plus anciennes de serveurs de liaison (BIND) ou des Quand un domaine particulier est marqué comme sécurisé, la réponse SERVFAIL est
serveurs non-BIND. retournée pour chaque enregistrement de ressource qui échoue au niveau validation.
Notez que pour déboguer un domaine de signature DNSSEC ou un résolveur DNSSEC-
6.1. Vues multiples
Éventuellement, des informations différentes peuvent être présentées à un client selon aware, vous pouvez utiliser l'utilitaire de dig . Options utiles : + dnssec (demande
le réseau de provenance de la demande. Ceci est principalement utilisé pour refuser d'enregistrements de ressources liées à DNSSEC en définissant le DNSSEC OK bit), +
l'accès à des données sensibles DNS de la part de clients se trouvant à l'extérieur du cd (indique au serveur de noms récursif de ne pas valider la réponse), et + bufsize =
réseau local, tout en permettant aux requêtes des clients à l'intérieur du réseau local. 512 (modifie la taille du paquet à 512 octets pour pouvoir passer à travers certains pare-
Pour configurer plusieurs affichages, ajoutez l'argument view dans le fichier de feux).
configuration /etc/named.conf. Utilisez l'option de match-clients pour faire 6.5. IPv6 (Internet Protocol version 6)
correspondre les adresses IP ou des réseaux dans leur ensemble et leur donner des Internet Protocol version 6 (IPv6) est pris en charge par l'utilisation des enregistrements
M.FILALI Linux : Administration des Serveurs 107 M.FILALI Linux : Administration des Serveurs 108
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 109 M.FILALI Linux : Administration des Serveurs 110
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Installation du package
9) Configurer le fichier de résolution de nom localhost
~]# rpm -ivh /home/fedora/Bureau/Pack-F25/bind-9.10.4-2.P3.fc25.i686.rpm
M.FILALI Linux : Administration des Serveurs 111 M.FILALI Linux : Administration des Serveurs 112
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 113 M.FILALI Linux : Administration des Serveurs 114
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
/etc/resolv.conf ~]# named-checkzone fedora.org.rev /var/named/fedora.org.rev
~]# vi /etc/resolv.conf 13)Tester le bon fonctionnement du serveur DNS
~]# nslookup
search fedora.org
domain fedora.org > localhost.
Server: 10.0.0.1
nameserver 10.0.0.1
Address: 10.0.0.1#53
/etc/host.conf Name: localhost
~]# vi /etc/host.conf Address: 127.0.0.1
> 127.0.0.1
multi on
Server: 10.0.0.1
order bind,hosts Address: 10.0.0.1#53
Important! Render named le proprietaire des fichiers de zones 1.0.0.127.in-addr.arpa name = localhost.
zone "0.0.127.in-addr.arpa" IN {
> 10.0.0.1
type master;
Server: 10.0.0.1
file " named.loopback ";
Address: 10.0.0.1#53
};
1.0.0.10.in-addr.arpa name = srvdns.fedora.org.
12)(Re) démarrer le serveur DNS (dépanner la configuration en cas d’erreur)
14)Tester les résolutions directe et inverse des serveurs Web et mail
~]# service named restart ~]# nslookup
Arrêt de named : [ OK ]
> www.fedora.org
Démarrage de named : [ OK ]
Server: 10.0.0.1
[root@srvdns ~]# Address: 10.0.0.1#53
Diagnostic des erreurs de configuration: Name: www.fedora.org
Address: 10.0.0.2
~]# systemctl status named
Vérifier s’il y’a des erreurs dans le fichier de configuration « named.conf » > 10.0.0.2
~]# named-checkconf /etc/named.conf Server: 10.0.0.1
Address: 10.0.0.1#53
Vérifier s’il y’a des erreurs dans le fichier de résolution directe « Ex : fedora.org » 2.0.0.10.in-addr.arpa name = www.fedora.org.
~]# named-checkzone fedora.org /var/named/fedora.org
> mail.fedora.org
Vérifier s’il y’a des erreurs dans le fichier de résolution inverse « Ex :fedora.org.rev »
Server: 10.0.0.1
M.FILALI Linux : Administration des Serveurs 115 M.FILALI Linux : Administration des Serveurs 116
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
> 10.0.0.3
Server: 10.0.0.1
Address: 10.0.0.1#53
3.0.0.10.in-addr.arpa name = mail.fedora.org.
Exercice : Que font ces Commandes ? DNS Primaire : 10.0.0.1 DNS Secondaire: 10.0.0.4
~]# dig srvdns.fedora.org Client DNS
~]# dig -x 10.0.0.1 I. Modifications au niveau du serveur DNS Primaire (TP-N°4-1)
1. Autoriser le transfert des zones directe et inverse au serveur secondaire
2. Ajouter les enregistrements pour srv2 dans les zones directe et inverse
3. Redémarrage le service DNS
4. Tester la resolution direct et invere pour srv2
II. Configuration du serveur DNS Secondaire
1. Installer le package DNS
2. Configurer la carte réseau du serveur srv2 avec l’adresse 10.0.0.4/24
3. Redemarrer le service reseau
4. Afficher la configuration des interfaces
5. Declarer les zones secondaires dans le fichier de configuration DNS
6. Configurer les fichiers resolv.conf et host.conf
7. Redemarrer le service DNS
8. Arreter le par feu et Selinux
9. Afficher le status du par feu et Selinux
10. Redemarrer le service DNS primaire puis secondaire
11. Vérifier le transert des zones ver le serveur secondaire
12. Arreter le service DNS primaire
13. Tester le bon fonctionnement du serveur DNS secondaire
14. Configurer le client DNS windows et tester la resolution des noms
15. Enregistrer une copie des fichiers de configuration de votre machine
16. Quitter par la commande : exit
17. Rédiger un Rapport du TP (Commandes Résultats Interpretations)
M.FILALI Linux : Administration des Serveurs 117 M.FILALI Linux : Administration des Serveurs 118
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 119 M.FILALI Linux : Administration des Serveurs 120
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
II. Configuration au niveau du serveur DNS Secondaire zone "fedora.org" IN {
1. Installation du package bind9 type slave;
masters { 10.0.0.1; };
~]# rpm -ivh /home/fedora/Bureau/Pack-F25/bind-9.10.4-2.P3.fc25.i686.rpm
file "slaves/fedora.org";
Préparation... ######################################## [100%] };
1:bind ######################################## [100%] zone "0.0.10.in-addr.arpa" IN {
type slave;
2. Configuration de la carte réseau
masters { 10.0.0.1; };
~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 file "slaves/fedora.org.rev";
};
include "/etc/named.rfc1912.zones";
DEVICE=ens33
include "/etc/named.root.key";
IPADDR=10.0.0.4 6. Vérification d’autres fichiers
NETMASK=255.255.255.0
~]# vi /etc/resolv.conf
ONBOOT=yes
BOOTPROTO=none search fedora.org
3. Redémarrer le service réseau domain fedora.org
~]# service network restart nameserver 10.0.0.1
Activation de l'interface ens33 : [ OK ] nameserver 10.0.0.4
[root@srv2 fedora]#
~]# vi /etc/host.conf
4. Afficher la configuration de la carte réseau
~]# ifconfig ens33
multi on
ens33 Link encap:Ethernet HWaddr 00:0C:29:C1:17:EC
order bind,hosts
inet adr:10.0.0.4 Bcast:10.0.0.255 Masque: 255.255.0
7. Démarrage du service DNS
..
~]# service named restart
5. Déclaration des zones dans le fichier de configuration
Arrêt de named : [ OK ]
~]# vi /etc/named.conf
Démarrage de named : [ OK ]
[root@srv2 fedora]#
options {
listen-on port 53 { 127.0.0.1; 10.0.0.4; }; 8. Arret du pare-feu et SELinux sur les deux serveurs !
…
allow-query { localhost; 10.0.0.0/24; }; ~]# systemctl stop firewalld
…
}; ~]# setenforce 0
…
zone "." IN { 9. Verification de l’arrét du Parefeu et SELinux sur les deux serveurs !
type hint;
~]# systemctl status firewalld
file "named.ca";
}; ~]# getenforce
M.FILALI Linux : Administration des Serveurs 121 M.FILALI Linux : Administration des Serveurs 122
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
10. Redemarrages des services DNS primaire et secondaire TP-N°4-3 : Mise en Place d’un Serveur DNS (Devoir Libre)
~]# service named restart #primaire Une société nommée SOCIETE A veut mettre en place des serveurs DNS
~]# service named restart #secondaire La société possède les serveurs Linux suivants :
Server1-A : Server2-A : Server3-A
11. Vérifier le transfert des zones Nom : Server2-A Nom : Server3-A
Nom : Server1-A
@IP : 172.16.100.1/24 @IP : 172.16.100.2/24 @IP : 172.16.100.3/24
~]# cd /var/named/slaves/ Passerelle par défaut : Passerelle par défaut : Passerelle par défaut :
~]# ls 172.16.100.254 172.16.100.254 172.16.100.254
Serveur DNS primaire : Serveur de messagerie Serveur DNS secondaire :
fedora.org fedora.org.rev #transfert des zones ! Serveur DHCP societe-a.ma
societe-a.ma
12. Arreter le serveur DNS primaire Serveur Web Serveur DNS secondaire : Serveur d’annuaire
societe-a.ma Serveur FTP
~]# service named stop #primaire On vous demande de Configurer le Server1-A en utilisant la ligne de commande et
13. Tester le fonctionement du serveur DNS secondaire les fichiers de configuration :
M.FILALI Linux : Administration des Serveurs 123 M.FILALI Linux : Administration des Serveurs 124
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
CH5 : Implémenter l’accès Telnet au Serveur - /etc/inetd.conf qui contient la liste des services activés sur une machine donnée
Dans les distributions récentes inetd a été remplacé par xinetd. Le principe est très
1. Introduction similaire, à la seule différence que, dans /etc/xinetd.d, chaque service (telnet, ftp,
pop3...) dispose de son propre fichier de configuration.
Certains services utilisables avec inetd ou xinetd comme telnet, ftp, pop3... sont
difficilement sécurisables car les mots de passe transitent en clair sur le réseau. Si ces
services sont utilisables en l'état sur des petits réseaux isolés, il faudra éviter de les
utiliser sur des réseaux reliés à Internet ou dans des environnements peu sûrs.
Cependant, la tendance est au cryptage de ces services, grâce à SSL notamment. Il
existe une version sécurisée de telnet, nommée telnet-ssl.
Extrait de /etc/services:
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
pop3 110/tcp # Post Office
2. Telnet:
Telnet est un protocole qui permet l'émulation de terminal VTx à distance sur un 3.1. Configuration avec xinetd
serveur Unix/Linux. Le principe est similaire, à la différence que vous avez un fichier de configuration global
"/etc/xinetd.conf", et un fichier de configuration par service, en général dans le
3. Le daemon xinetd: répertoire "/etc/xinetd.d/".
Toute application fonctionnant sous TCP/IP est basée sur le modèle client/serveur. Par
#
exemple quelqu'un se connectant via telnet à un hôte distant « active » chez l'hôte le
# Le fichier xinetd.conf
service serveur telnetd.
#
Chaque serveur est sur une machine en attente d'une connexion sur un port particulier.
# Some defaults, and include /etc/xinetd.d/
Dans les premières versions d'Unix-TCP/IP chaque application (telnet, ftp,...) avait son
defaults
propre serveur qui était lancé au démarrage de chaque machine comme un "daemon".
{
Cette stratégie encombrait inutilement la table des processus (autant de serveurs que
instances = 60
de services). Ces services sont dits fonctionnant en mode « autonome » ou
log_type = SYSLOG authpriv
« standalone ».
log_on_success = HOST PID
Le daemon INETD est un « super » serveur, à l'écoute sur plusieurs ports et qui se
log_on_failure = HOST
charge de recevoir les demandes de connexion de plusieurs clients (telnet, ftp,...) et de
cps = 25 30
lancer le serveur correspondant à la demande. A son démarrage il consulte les fichiers:
}
- /etc/services qui contient la liste générale des services TCP/IP avec leur numéro de
include dir /etc/xinetd.d
port et le protocole de transport associé.
M.FILALI Linux : Administration des Serveurs 125 M.FILALI Linux : Administration des Serveurs 126
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
3.2. Configurer un service Service telnet
Le fichier se trouve sous /etc/xinetd.d et porte le nom du service. La syntaxe du fichier
{
est la suivante :
flags = REUSE
Service nom-du-service
socket_type = stream
{
wait = no
socket_type = type de socket
user = root
wait = pour lancer un ou plusieurs instances du service server = /usr/sbin/in.telnetd
user = à qui appartiendra le service
redirect = 192.168.13.10 23
server= chemin du serveur
}
server_args= argument du serveur (facultatif)
access_times=plage horaire (facultatif) 4. TCP-Wrapper
nice = priorité (facultatif) TCP-Wrapper est un outil de sécurité réseau qui permet de contrôler les accès, les
} tentatives de connexion sur une machine donnée. Il permet à tout instant de savoir (par
journalisation syslogd) qui essaie d'accéder sur un ordinateur mais également de filtrer
Exemples :
les accès. On peut par exemple sur une machine A interdire les connexions telnet
Le fichier /etc/xinetd.d/wu-ftpd
venant d'une machine B tout en autorisant les connexions FTP venant de cette même
# default: on
service ftp machine B.
{ 4.1. Principe de fonctionnement
disable = no Exemple: Si inetd reçoit une demande de connexion sur le port 23 il va lancer telnetd.
socket_type = stream
Tcpwrapper sert d'enveloppe. Il vient « s'intercaler » entre le daemon inetd et le serveur
wait = no
user = root à démarrer. Quand une demande de service TCP/IP (en réalité TCP ou UDP) arrive sur
server = /usr/sbin/in.ftpd un port donné, inetd va lancer TCPD (daemon correspondant à Tcpwrapper) au lieu
server_args = -l -a
d'activer directement le service demandé (telnetd, ftpd, pop3...).
log_on_success += DURATION USERID
log_on_failure += USERID Tcpd prend en charge la requête et met en place ses mécanismes de contrôle. Il peut par
nice = 10 exemple vérifier que les accès depuis la machine cliente sont autorisés. Une fois le
} traitement terminé il va (s'il y a autorisation) lancer son propre service in.telnetd,
Le paramètre "disable", permet d'activer/désactiver le service.
in.ftpd, in.imapd....
Le programme "in.ftpd", indique bien que le service est pris en charge par TCPWrapper
Eléments de configuration
(C'est le in qui l'indique, sinon, le binaire s'appellerait ftpd).
Sous Linux, tcpd est installé par défaut. On peut voir en consultant le fichier
Les commentaires en haut du fichier indiquent que ce service ne prend pas en charge
/etc/inetd.conf comment inetd active tcpd.
l'encryptage des mots de passe.
Extrait de /etc/inetd.conf
Autre exemple avec la redirection, ici on rediriger vers le port 23 (telnet) de la machine
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
192.168.13.10
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
M.FILALI Linux : Administration des Serveurs 127 M.FILALI Linux : Administration des Serveurs 128
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
4.2. Host.deny et host.allow TP-N°5-1 : Implémenter l’accès Telnet au Serveur (Enoncé)
L'administrateur réseau va pouvoir utiliser 2 fichiers: /etc/hosts.allow et /etc/hosts.deny
1) Dans un terminal, utiliser la commande suivante :
pour filtrer les accès à sa machine.
~]$cd ; script -f TELNET_BinomeX.txt avec X=numéro de Binôme
/etc/hosts.deny: on indique dans ce fichier les services et les hôtes pour lesquels l'accès
2) Renommer votre machine à srv-tel
est interdit.
3) Configurer votre carte réseau avec l’adresse IP suivante : 10.0.0.1 et le masque sous
/etc/hosts.allow: on indique dans ce fichier les services et les hôtes pour lesquels
réseau : 255.0.0.0 en utilisant le fichier de configuration
l'accès est autorisé.
4) Redémarrer le service réseau
Exemple:
5) Afficher la configuration de votre carte réseau
# Fichier /etc/hosts.deny
6) Installer les services xinetd et telnet-server s’ils ne sont pas encore installés
# Interdit tous les accès ftp à la machine
7) Vérifier si les packages sont bien installés
in.ftpd : ALL
8) Interdire tous les utilisateurs de pouvoir utiliser TELNET
9) Permettre aux machines 10.0.0.1, 10.0.0.10 et 10.0.0.100 seules d’utiliser TELNET
# Fichier /etc/hosts.allow
pour se connecter au serveur
# autorise les accès ftp venant de cli1
10) (Re) démarrer les services Xinetd
in.ftpd : cli1.archinet.edu
11)Activer les services Xinetd et Telnet (dépanner la configuration en cas d’erreur)
TCP-Wrapper utilise l'algorithme suivant :
12)Tester le bon fonctionnement de ces paramètres
Si une règle est applicable dans hosts.allow, alors cette règle est appliquée, sinon, Si
13)Enregistrer une copie des fichiers de configuration de votre machine
une règle est applicable dans hosts.deny alors cette règle est appliquée, sinon, l'accès
14)Quitter par la commande : exit
est autorisé.
15)Rédiger un Rapport du TP (Commandes Résultats Interpretations)
Ce mode de fonctionnement induit la stratégie de sécurité à adopter :
a. décrire toutes les règles pour les couples (services/clients) qui sont autorisés,
b. interdire systématiquement tout le reste. Mettre par défaut ALL:ALL dans
hosts.deny.
Les tentatives d'accès depuis des machines extérieures sont toutes enregistrées dans
des fichiers particuliers. Ces enregistrements sont effectués par le processus syslogd
qui, à son démarrage, lit le fichier /etc/syslog.conf pour trouver dans quel(s) fichier(s)
il doit enregistrer les différentes tentatives d'accès.
M.FILALI Linux : Administration des Serveurs 129 M.FILALI Linux : Administration des Serveurs 130
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
srv-tel telnet-0.17-65.fc24.i686
3) Configurer votre carte réseau avec l’adresse IP suivante : 10.0.0.1. ~]# rpm -q xinetd
xinetd-2.3.15-17.fc24.i686
~]# cd /etc/sysconfig/network-scripts/
~]# rpm -q telnet-server
[root@srv-tel network-scripts]# ll ifcfg-*
telnet-server-0.17-65.fc24.i686
-rw-r--r--. 1 root root 72 22 nov. 21:13 ifcfg-ens33
-rw-r--r--. 1 root root 254 5 mai 2010 ifcfg-lo c- Configure le fichier /etc/xinetd.d/telnet
Edition de fichier
DEVICE=ens33 service telnet
IPADDR=10.0.0.1 {
NETMASK=255.0.0.0 flags = REUSE
ONBOOT=yes socket_type = stream
BOOTPROTO=none wait = no
4) Redémarre le service réseau user = root
~]# service network restart server = /usr/sbin/in.telnetd
Restarting network (via systemctl): [ OK ] log_on_failure += USERID
5) Afficher la configuration de votre carte réseau disable = no
~]# ifconfig port = 23
ens33 Link encap:Ethernet HWaddr 00:0C:29:0D:CD:8C }
inet adr:10.0.0.1 Bcast:10.255.255.255 Masque:255.0.0.0 7) Interdire tous les utilisateurs de pouvoir utiliser TELNET
… Pour configurer les interdictions, utiliser le fichier /etc/hosts.deny
6) Installer les services xinetd et telnet ~]# vi /etc/hosts.deny
a- Installer le service Xinetd Edition de fichier
~]# rpm -ivh xinetd-2.3.15-17.fc24.i686.rpm #Ajouter cette ligne pour interdire tous le monde d’utilizer Telnet
Préparation... ########################################### [100%]
M.FILALI Linux : Administration des Serveurs 131 M.FILALI Linux : Administration des Serveurs 132
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 133 M.FILALI Linux : Administration des Serveurs 134
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Cas2 : de l’adresse de la machine client est 10.0.0.2 TP-N°5-2 : Implémenter l’accès Telnet au Serveur (Devoir Libre)
Configurer l’accès telnet au serveur et tester la sécurité réseau
Le résultat : Echec
M.FILALI Linux : Administration des Serveurs 135 M.FILALI Linux : Administration des Serveurs 136
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 137 M.FILALI Linux : Administration des Serveurs 138
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Après avoir effectué une connexion initiale, le client peut s'assurer que sa connexion est 2.3. Versions de protocole
Il existe actuellement deux sorts de SSH : version 1 et version 2 plus récente. La suite
établie avec le même serveur que lors de sa session précédente.
15. Personne ne peut récupérer les données d'authentification OpenSSH sous Linux utilise SSH version 2, qui dispose d'un algorithme d'échange de
clés amélioré non vulnérable à l'exploitation connue pour la version 1. Toutefois, pour
Le client transmet ses données d'authentification au serveur au moyen d'un chiffrement des raisons de compatibilité, la suite OpenSSH prend en charge les connexions de la
solide de 128 bits. version 1 également.
16. Personne ne peut intercepter la communication Important : Pour assurer un maximum de sécurité au niveau de votre connexion, il est
Toutes les données envoyées et reçues lors d'une session sont transférées au moyen d'un conseillé que seuls les clients et serveurs compatibles avec SSH version 2 soient utilisés
chiffrement 128 bits, rendant ainsi le déchiffrement et la lecture de toute transmission si possible.
Le protocole SSH crypte tout ce qu'il envoie et reçoit. En utilisant une technique 2.4.1. Couche de transport
Le rôle principal de la couche de transport est de faciliter une communication sécurisée
appelée port forwarding, un serveur SSH peut devenir un moyen de sécuriser des
entre deux hôtes non seulement au moment de l'authentification, mais également lors
protocoles normalement non protégés, comme POP, tout en augementant la sécurité des
de communications ultérieures. Pour ce faire, la couche de transport traite le cryptage
données et du système en général.
et décryptage de données et offre une certaine protection quant à l'intégrité des paquets
19. Il peut être utilisé pour créer un canal sécurisé
de données lors de leur envoi et de leur réception. De plus, la couche de transport
Le serveur OpenSSH et le client peuvent être configurés afin de créer un tunnel effectue la compression des données permettant d'accélérer la vitesse de transfert des
semblable à un réseau virtuel privé pour permettre le trafic entre le serveur et les informations.
machines clientes. Lorsqu'un client communique avec un serveur au moyen d'un protocole SSH, de
20. Il prend en charge l'authentification Kerberos nombreux éléments importants sont échangés afin que les deux systèmes puissent créer
correctement la couche de transport. Lors de cet échange, les opérations suivantes ont
Les clients et serveurs OpenSSH peuvent être configurés pour authentifier par
lieu :
l'interface GSSAPI (Generic Security Services Application Program Interface) du
Des clés sont échangées.
protocole d'authentification du réseau Kerberos.
L'algorithme de chiffrement de clés publiques est déterminé
L'algorithme de chiffrement symétrique est déterminé
L'algorithme d'authentification de message est déterminé
M.FILALI Linux : Administration des Serveurs 139 M.FILALI Linux : Administration des Serveurs 140
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
L'algorithme de hachage est déterminé Les serveurs et clients SSH peuvent être configurés de façon à permettre différents
Au cours de l'échange de clés, le serveur s'identifie au client par une clé d'hôte unique. types d'authentification, donnant à chacune des deux parties un niveau de contrôle
Si le client n'a jamais communiqué avec ce serveur particulier auparavant, la clé du optimal. Le serveur peut décider des méthodes de cryptage qu'il prend en charge en
serveur hôte est inconnue au client et il ne se connecte pas. OpenSSH contourne ce fonction de son modèle de sécurité et le client peut choisir l'ordre des méthodes
problème en acceptant la clé du serveur hôte. Ceci est fait après que l'utilisateur ait été d'authentification à utiliser parmi les options disponibles.
informé et a à la fois accepté et vérifié la nouvelle clé de l'hôte. Dans les connexions 2.4.3. Canaux
suivantes, la clé du serveur hôte est vérifiée par rapport la version enregistrée sur le Le client et le serveur peuvent créer un nouveau canal. Chaque canal reçoit ensuite un
client, pour s'assurer que le client communique avec le serveur voulu. Si, dans l'avenir, numéro différent à chaque extrémité de la connexion. Lorsque le client essaie d'ouvrir
la clé de l'hôte ne correspond plus, l'utilisateur doit supprimer la version du client un nouveau canal, il envoie le numéro du canal accompagné de la requête. Ces
enregistrée avant qu'une connexion puisse avoir lieu. informations sont stockées par le serveur et utilisées pour diriger la communication
Avertissement : Il est tout à fait possible pour un pirate de se faire passer pour le vers ce canal. Cette procédure est utilisée afin que des types différents de session ne
serveur SSH lors de la première connexion car le système local ne détecte aucune créent pas de nuisances mutuelles et de sorte qu'à la fin d'une session donnée, son canal
différence entre le serveur désiré et le faux serveur créé par le pirate. Afin d'éviter une puisse être fermé sans que la connexion SSH principale ne soit interrompue.
telle situation, contrôlez l'intégrité d'un nouveau serveur SSH en contactant Les canaux prennent aussi en charge le contrôle du flux de données, ce qui leur permet
l'administrateur du serveur avant d'établir la première connexion au cas où une clé d'envoyer et de recevoir des données de façon ordonnée. Ce faisant, aucune donnée n'est
d'hôte ne correspond pas à celle stockée sur le serveur. envoyée sur le canal tant que l'hôte n'a pas reçu de message lui indiquant que le canal
Le protocole SSH est conçu pour fonctionner avec n'importe quel algorithme de clé est ouvert.
publique ou tout format de codage. Après que l'échange initial des clés crée une valeur Le client et le serveur négocient automatiquement la configuration de chaque canal,
de hachage utilisée pour les échanges et une valeur secrète partagée, les deux systèmes selon le type de service demandé par le client et la manière dont l'utilisateur est
commencent immédiatement à calculer de nouveaux algorithmes et de nouvelles clés connecté au réseau. Ainsi, le traitement des différents types de connexions distantes est
pour protéger l'authentification et les futures données envoyées via la connexion. non seulement extrêmement flexible, mais il ne nécessite pas même d'apporter des
Après la transmission d'une certaine quantité de données au moyen d'une clé et d'un modifications à la structure de base du protocole.
M.FILALI Linux : Administration des Serveurs 141 M.FILALI Linux : Administration des Serveurs 142
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
pour la création d'une couche de transport sécurisé. ~/.ssh/id_rsa.pub La clé publique RSA utilisée par ssh pour la version 2 du
Lorsque les clés sont échangées au début d'une protocole SSH.
session SSH, une valeur partagée, secrète est alors ~/.ssh/identity La clé privée RSA utilisée par ssh pour la version 1 du
créée ne pouvant être déterminée par l'une des protocole SSH.
parties seule. Cette valeur est ensuite utilisée pour ~/.ssh/identity.pub La clé publique RSA utilisée par ssh pour la version 1 du
fournir une authentification de l'hôte. protocole SSH.
/etc/ssh/ssh_config Le fichier de configuration du client SSH par ~/.ssh/known_hosts Contient les clés hôtes des serveurs SSH auquels l'utilisateur
défaut. Notez qu'il sera remplacé à accès. Ce fichier est important pour s'assurer que le client
par ~/.ssh/config si ce fichier existe. SSH est connecté au bon serveur SSH.
/etc/ssh/sshd_config Le fichier de configuration du démon sshd. 3.2. Démarrage d'un serveur OpenSSH
/etc/ssh/ssh_host_ecdsa_key La clé ECDSA privée utilisée par le démon sshd. Pour pouvoir exécuter un serveur OpenSSH, vous devez avoir le paquet openssh-server
/etc/ssh/ssh_host_key La clé privée RSA utilisée par le démon sshd pour ~]# systemctl start sshd.service
la version 1 du protocole SSH. Pour stopper le démon sshd dans la session actuelle, veuillez saisir
/etc/ssh/ssh_host_key.pub La clé publique RSA utilisée par le ~]# systemctl stop sshd.service
démon sshd pour la version 1 du protocole SSH. Si vous souhaitez que le démon démarre automatiquement, saisir
/etc/ssh/ssh_host_rsa_key La clé privée RSA utilisée par le démon sshd pour ~]# systemctl enable sshd.service
la version 2 du protocole SSH. Le démon sshd dépend de l’unité cible network.target, ce qui suffit pour les interfaces
/etc/ssh/ssh_host_rsa_key.pub La clé publique RSA utilisée par le réseau configuré statique et pour les options par défaut ListenAddress 0.0.0.0. Pour
démon sshd pour la version 2 du protocole SSH. spécifier des adresses différentes dans la directive ListenAddress et utiliser une
/etc/pam.d/sshd Le fichier de configuration AM du démon sshd. configuration de réseau dynamique plus lente, ajouter la dépendance sur l’unité cible
/etc/sysconfig/sshd Fichier de configuration du service sshd. de network-online.target dans le fichier d'unité de sshd.service. Pour ce faire, créez le
3.1.2. Fichiers de configuration spécifiques à l'utilisateur fichier /etc/systemd/system/sshd.service.d/local.conf avec les options suivantes :
Fichier Description
[Unit]
~/.ssh/ Contient une liste des clés publiques autorisées pour les
Wants=network-online.target
authorized_keys serveurs. Quand le client se connecte à un serveur, le serveur
After=network-online.target
authentifie le client en vérifiant sa clé publique stockée dans
Ensuite, charger à nouveau la configuration du gestionnaire systemd
ce fichier.
~]# systemctl daemon-reload
~/.ssh/id_ecdsa Contient la clé privée ECDSA de l'utilisateur
Notez que si vous réinstallez le système, un nouvel ensemble de clés d'identification
~/.ssh/id_ecdsa.pub La clé publique de l'utilisateur.
sera créé. Ainsi, les clients qui étaient connectés au système avec les outils d'OpenSSH
~/.ssh/id_rsa La clé privée RSA utilisée par ssh pour la version 2 du
avant la réinstallation verront le message suivant s'afficher :
protocole SSH.
M.FILALI Linux : Administration des Serveurs 143 M.FILALI Linux : Administration des Serveurs 144
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
générées auparavant, sauvegarder le répertoire ~/.ssh/. Après avoir réinstallé, recopiez- Cela aura pour effet de copier la clé publique ~/.ssh/id*.pub qui a été modifiée le plus
le sur votre répertoire personnel. Ce processus peut être fait pour tous les utilisateurs récemment si elle n'a pas encore été installée. Sinon, indiquer le nom du fichier de clés
M.FILALI Linux : Administration des Serveurs 145 M.FILALI Linux : Administration des Serveurs 146
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 147 M.FILALI Linux : Administration des Serveurs 148
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
5. Déconnecter et reconnecter. Une boîte de dialogue apparaîtra pour vous demander de
mettre votre phrase de passe. À partir de ce moment, vous ne devriez pas être sollicité
de donner un mot de passe par les commandes ssh, scp, ou sftp.
4. Clients OpenSSH
Pour vous connecter à un serveur OpenSSH depuis une machine cliente, vous devez
Ajouter une nouvelle application
avoir installé le paquet openssh-clients
4. Cliquer sur Add et vérifiez que la case qui se trouve à côté de l'élément qui vient d'être
4.1. Comment se servir de l'utilitaire ssh
ajouté est sélectionnée. L'utilitaire ssh vous permet de vous connecter à une machine distante et à y exécuter
des commandes à cet endroit. Cela remplace les programmes rlogin, rsh, et telnet.
De même que pour la commande telnet, connectez-vous à une machine distante par la
commande suivante :
~]$ ssh hostname
Ainsi, pour vous connecter à une machine distante nommée penguin.example.com,
saisir ce qui suit quand on vous y invite :
~]$ ssh penguin.example.com
Cela vous enregistrera avec le même nom d'utilisateur que vous utilisez sur votre
machine locale. Si vous souhaitez spécifier un nom d'utilisateur différent, utilisez une
Activer l'application
commande de la forme suivante :
M.FILALI Linux : Administration des Serveurs 149 M.FILALI Linux : Administration des Serveurs 150
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]$ ssh username@hostname Sinon, le programme ssh peut être utilisé pour exécuter une commande sur la machine
Ainsi, pour vous connecter à penguin.example.com en tant que USER, saisir : distante sans qu'il soit nécessaire de vous connecter à une invite de shell :
La première fois que vous initierez une connexion, vous verrez apparaître un message 4.2. scp
La commande scp peut être utilisée pour transférer des fichers entre des machines à
similaire à celui-ci :
travers une connexion cryptée sécurisée. Le concept ressemble à celui de rcp.
The authenticity of host 'penguin.example.com' can't be established.
Pour transférer un fichier local dans un système distant, utiliser une commande de la
ECDSA key fingerprint is 256 da:24:43:0b:2e:c1:3f:a1:84:13:92:01:52:b4:84:ff.
forme suivante :
Are you sure you want to continue connecting (yes/no)?
~]$ scp localfile username@hostname:remotefile
Les utilisateurs doivent toujours vérifier si l'empreinte est correcte avant de répondre à
Ainsi, si vous souhaitez transférer taglist.vi vers une machine distante
la question dans cette boîte de dialogue. L'utilisateur peut demander à l'administrateur
nommée penguin.example.com, saisissez ce qui suit dans l'invite de commande :
du serveur de bien confirmer que la clé est correcte. Cela devrait être fait de manière
sécurisée et préalablement convenue. Si l'utilisateur a accès aux clés d'hôte du serveur, ~]$ scp taglist.vi USER@penguin.example.com:.vim/plugin/taglist.vim
l'empreinte digitale peut être vérifiée à l'aide de la commande ssh-keygen, comme suit : USER@penguin.example.com's password:
taglist.vi 100% 144KB 144.5KB/s 00:00
~]# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 da:24:43:0b:2e:c1:3f:a1:84:13:92:01:52:b4:84:ff (ECDSA) Vous pouvez spécifier plusieurs fichiers à la fois. Pour transférer les contenus
de .vim/plugin/ dans le même répertoire d'une machine distante penguin.example.com,
Tapez yes pour accepter la clé et confirmer la connexion. Vous verrez une notice
saisissez la commande suivante :
apparaître vous indiquant que le serveur a été ajouté à la liste des hôtes connus et une
invite vous demandant votre mot de passe : ~]$ scp .vim/plugin/* USER@penguin.example.com:.vim/plugin/
USER@penguin.example.com's password:
Warning: Permanently added 'penguin.example.com' (ECDSA) to the list of known hosts.
USER@penguin.example.com's password: closetag.vi 100% 13KB 12.6KB/s 00:00
snippetsEmu.vi 100% 33KB 33.1KB/s 00:00
Important : Si la clé de l'hôte du serveur SSH change, le client informera l'utilisateur
taglist.vi 100% 144KB 144.5KB/s 00:00
que la connexion ne peut pas avoir lieu tant que la clé du serveur hôte n'est pas
supprimée du fichier ~/.ssh/known_hosts. Avant de procéder, cependant, contactez Afin d'autoriser les utilisateurs à créer des fichiers dans le répertoire, utilisez la
l'administrateur systèmes du serveur SSH pour vérifier que le serveur n'est pas commande suivante :
Pour supprimer une clé du fichier ~/.ssh/known_hosts, lancez la commande suivante : Ainsi, pour télécharger le fichier de configuration .vimrc d'une machine distante,
Une fois que vous aurez saisi le mot de passe, vous apercevrez une invite de shell pour
la machine distante.
M.FILALI Linux : Administration des Serveurs 151 M.FILALI Linux : Administration des Serveurs 152
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
4.3. sftp 5.1. Transfert X11
L'utilitaire sftp peut être utilisé pour ouvrir une session FTP interactive, sécurisée. Pour ouvrir une session X11 sur une connexion SSH, utiliser une commande qui
Dans le concept, c'est similaire à ftp sauf qu'on utilise une connexion sécurisée, cryptée. ressemble à ceci :
Pour vous connecter à un système distant, utiliser une commande qui ressemble à : ~]$ ssh -Y nom d'utilisateur@nom d'hôte
~]$ sftp username@hostname Ainsi, pour vous connecter à une machine distante nommée penguin.example.com,
Ainsi, pour vous connecter à une machine distante nommée penguin.example.com, avec USER comme nom d'utilisateur, saisissez ce qui suit :
avec USER comme nom d'utilisateur, saisissez ce qui suit : ~]$ ssh -Y USER@penguin.example.com
~]$ sftp USER@penguin.example.com mot de passe de USER@penguin.example.com :
USER@penguin.example.com's password: Lorsqu'un programme X est exécuté à partir d'une invite du shell sécurisée, le client et
Connected to penguin.example.com. le serveur SSH créent un nouveau canal sécurisé et les données du programme X sont
sftp> ensuite envoyées à l'ordinateur client via ce canal d'une manière transparente.
Une fois que vous aurez saisi le mot de passe qui convient, vous verrez une invite se Notez que le système X Window doit être installé sur le système distant avant que la
présenter. L'utilitaire sftp accepte un ensemble de commandes qui ressemble à celles transmission X11 puisse avoir lieu. Saisir la commande suivante en tant
utilisées avec ftp ; qu'utilisateur rootpour installer le groupe de packages X11 :
Une sélection de commandes sftp disponibles ~]# yum group install "X Window System"
Commande Description Le transfert X11 peut être très utile. Par exemple, le transfert X11 peut être utilisé
ls [directory] Lister le contenu du directory (répertoire) distant. pour créer une session interactive, sécurisée de l'utilitaire Print Settings. Pour cela,
S'il n'y en aucun, on utilisera le répertoire de travail connectez-vous au serveur en utilisant ssh et saisissez :
en cours par défaut. ~]$ system-config-printer &
cd directory Changer le répertoire de travail distant à répertoire. L'outil Print Settings apparaîtra, permettant à l'utilisateur distant de configurer
mkdir répertoire --smbservers=<server> l'impression sur le système distant en toute sécurité.
rmdir chemin Supprimer un répertoire distant.
5.2. Réacheminement de port
put fichierlocal [fichierdistant] Transférer le fichier local à une machine distante. SSH peut sécuriser les protocoles TCP/IP normalement non sécurisés par le
get fichierdistant [fichierlocal] Transférer le fichier distant à partir d'une machine réacheminement de port. Quand vous utilisez cette technique, le serveur SSH fait figure
distante. de conduit crypté vers le client SSH.
La redirection de port fonctionne en mappant un port local du client à un port distant
5. Beaucoup plus qu'un shell sécurisé
sur le serveur. SSH peut mapper n'importe quel port du serveur sur un port de client.
Une interface sécurisée en ligne de commandes n'est qu'une utilisation parmi tant
Les numéros de port n'ont pas besoin de correspondre pour cette façon de travailler.
d'autres, de SSH. En ayant la quantité nécessaire de bande passante, les sessions X11
Note : Pour configurer la retransmission de port de manière à ce qu'elle écoute sur les
peuvent être dirigées sur un canal SSH. Sinon, en utilisant la retransmission TCP/IP,
ports inférieurs à 1024, il est nécessaire d'avoir un accès de niveau super-utilisateur (ou
les connexions par port entre les systèmes, considérées auparavant comme étant non-
root) root.
sécurisées, peuvent être mappées à des canaux SSH spécifiques.
Pour créer un canal de réacheminement de port TCP/IP qui écoute les connexions sur
le localhost, utiliser une commande de la forme suivante :
M.FILALI Linux : Administration des Serveurs 153 M.FILALI Linux : Administration des Serveurs 154
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]$ ssh -L port-local:nom d'hôte distant:port-distant nom d'utilisateur@nom d'hôte TP-N°6-1 : Implémenter l’accès sécurisé SSH au Serveur (Enoncé)
Ainsi, pour vérifier un email sur un serveur nommé mail.example.com qui 1) Dans un terminal, utiliser la commande suivante :
utilise POP3 par l'intermédiaire d'une connexion cryptée, utiliser la : ~]$cd ; script SSH_BinomeX.txt avec X=numéro de Binôme
~]$ ssh -L 1100:mail.example.com:110 mail.example.com 2) Renommer votre machine à SRV-SSH
Une fois que le canal de réacheminement de port est mis en place entre la machine 3) Configurer votre carte réseau avec l’adresse IP suivante : 10.0.0.1 et le masque sous
cliente et le serveur de messagerie, envoyez un mail client POP3 pour utiliser le réseau : 255.0.0.0 en utilisant le fichier de configuration
port 1100 sur le localhost pour vérifier s'il y a de nouveaux messages. Toutes les 4) Redémarrer le service réseau
requêtes envoyées au port 1100 sur le système client seront redirigées en toute sécurité 5) Afficher la configuration de votre carte réseau
vers le serveur mail.example.com. 6) Installer le serveur SSH s’il n’est pas encore installé
Si mail.example.com n'exécute pas sur un serveur SSH, mais qu'une autre machine le 7) Vérifier si le package est bien installé
fasse sur le même réseau, SSH peut toujours être utilisé pour sécuriser une partie de la 8) Configurer le serveur SSH pour l’authentification uniquement par mot de passe
connexion. Cependant, il vous faudra une commande légèrement différente : Editer le fichier de configuration SSH
~]$ ssh -L 1100:mail.example.com:110 other.example.com Créer 2 comptes utilisateurs serveur et client
Dans cet exemple, les demandes POP3 du port 1100 de la machine cliente sont Tester l’accés au compte serveur à partir du compte client par SSH
transmises via la connexion SSH sur le port 22 au serveur SSH, other.example.com. Tester l’accès au serveur à partir d’un client windows
Ensuite, other.example.com se connectera au port 110 sur mail.exemple.com pour Configurer le serveur SSH pour l’authentification par Clé publique
vérifier les nouveaux messages. Notez que lorsque vous utilisez cette technique, seule la 9) Créer une paure de clés de type RSA pour votre compte personnel (client)
connexion entre le système client et le serveur SSH other.example.com est sûre. 10) Quel est le fingerprint de votre clé ?
Le réacheminement de port peut également être utilisé pour obtenir des informations 11) Copier votre nouvelle clé publique générée dans le serveur
en toute sécurité à travers les pare-feu de réseau. Si le pare-feu est configuré pour 12) Editer le fichier de configuration SSH
autoriser le trafic SSH via son port standard (c'est-à-dire le port 22) mais bloque l'accès 13) (Re) démarrer le serveur SSH
aux autres ports, une connexion entre deux hôtes utilisant les ports bloqués est toujours 14) Tester le bon fonctionnement du serveur SSH
possible si on réoriente leur communication par une connexion SSH établie. Tester l’accés au compte serveur à partir du compte client par SSH
Important : L'utilisation de la fonctionnalité de réacheminement de port pour Tester l’accès au serveur à partir d’un client windows
transférer des connexions de cette façon permet à tout utilisateur du système client de 15) Modifiez la configuration du serveur SSH pour interdire la connexion de root
se connecter à ce service. Si le système client est compromis, les pirates auront 16) Enregistrer une copie des fichiers de configuration de votre machine
également accès aux services retransmis. 17) Quitter par la commande : exit
Les administrateurs de système qui s'inquiètent de la fonctionnalité de 18) Rédiger un Rapport du TP (Commandes Résultats Interpretations)
M.FILALI Linux : Administration des Serveurs 155 M.FILALI Linux : Administration des Serveurs 156
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
1) Dans un terminal, utiliser la commande suivante pour créer le script de travail Edition du fichier « sshd_config »
~]# vi ifcfg-ens33
[client@srv-ssh ~]$ ssh serveur@10.0.0.1
Edition du fichier « ifcfg-ens33 »
The authenticity of host '10.0.0.1 (10.0.0.1)' can't be established.
DEVICE=ens33
RSA key fingerprint is 2a:c1:c4:90:dc:1e:25:60:7a:95:9f:be:e8:71:12:61.
IPADDR=10.0.0.1
Are you sure you want to continue connecting (yes/no)? yes
NETMASK=255.0.0.0
Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts.
ONBOOT=yes
serveur@10.0.0.1's password: ********
BOOTPROTO=none
[serveur@srv-ssh ~]$
4) Redémarrer le service réseau
Tester l’accès SSH à partir du client Windows
~]# service network restart
Restarting network (via systemctl): [ OK ]
5) Afficher la configuration de votre carte réseau
~]# ifconfig
ens33 Link encap:Ethernet HWaddr 00:0C:29:79:82:A2
inet adr:10.0.0.1 Bcast:10.255.255.255 Masque:255.0.0.0
6) Installer le serveur SSH s’il n’est pas encore installé
Configurer le serveur SSH pour l’authentification par Clé publique
~]# rpm -ivh openssh-server-5.rpm
9) Créer une paire de clés de type RSA pour votre compte personnel (client)
7) Vérifier si le package est installé
[client@ ~]$ ssh-keygen -t rsa -b 1024 -C client@10.0.0.1
~]# rpm -q openssh-server
openssh-server-5
Generating public/private dsa key pair.
8) Configurer le serveur SSH pour l’authentification uniquement par mot de passe
M.FILALI Linux : Administration des Serveurs 157 M.FILALI Linux : Administration des Serveurs 158
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Enter file in which to save the key (/home/client/.ssh/id_rsa): #Entrer ~]# service sshd restart
Created directory '/home/client/.ssh'. Arrêt de sshd : [ OK ]
Enter passphrase (empty for no passphrase): ********* #passphrase Démarrage de sshd : [ OK ]
Enter same passphrase again: ********* #Confirmer ~]#
Your identification has been saved in /home/client/.ssh/id_rsa 14) Tester le bon fonctionnement du serveur SSH
Your public key has been saved in /home/client/.ssh/id_rsa.pub Ajouter un message de démarrage
The key fingerprint is: ~]# echo " Bienvenu sur mon serveur SSH !" >> /etc/motd
c3:f3:2d:de:cf:80:32:df:b7:97:68:0d:81:51:c5:38 client@10.0.0.1 Test à partir de la même machine
The key's randomart image is: [client@ ~]$ ssh serveur@10.0.0.1
+--[ RSA 1024]----+
Enter passphrase for key '/home/client/.ssh/id_rsa': ********
10) Quel est le fingerprint de votre clé ? Last login: Fri Dec 4 15:52:19 2015 from 10.0.0.1
c3:f3:2d:de:cf:80:32:df:b7:97:68:0d:81:51:c5:38 Bienvenu sur mon serveur SSH !
11) Copier votre nouvelle clé publique générée dans le serveur [serveur@ ~]$
[client@ ~]$ ssh-copy-id -i /home/client/.ssh/id_rsa.pub serveur@10.0.0.1
[serveur@ ~]$ exit
The authenticity of host '10.0.0.1 (10.0.0.1)' can't be established. logout
RSA key fingerprint is 2a:c1:c4:90:dc:1e:25:60:7a:95:9f:be:e8:71:12:61. Connection to 10.0.0.1 closed.
Are you sure you want to continue connecting (yes/no)? yes [client@ ~]$
Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts. Tester à partir de win7 avec l’application « putty»
serveur@10.0.0.1's password: ******* Ici il faut generer une paire de clés RSA (Ks,Kp) pour le client Windows et partager
Now try logging into the machine, with "ssh 'serveur@10.0.0.1'", and check in: la clé publique Kp avec le serveur SSH.
.ssh/authorized_keys Utiliser l’application puttygen pour générer les clés Ks et Kp
12) Editer le fichier de configuration SSH
~]# vi /etc/ssh/sshd_config
Edition du fichier « sshd_config »
Port 22
ListenAddress 10.0.0.1
Protocol 2
PermitEmptyPasswords no
PasswordAuthentication no
PubkeyAuthentication yes
Sauvegarder les deux clés dans un emplacement sûr sous windows
13) (Re) démarrer le serveur SSH
Coupier le contenu de Kp dans le fichier authorized_keys du serveur
M.FILALI Linux : Administration des Serveurs 159 M.FILALI Linux : Administration des Serveurs 160
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 161 M.FILALI Linux : Administration des Serveurs 162
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°6-2 : Création des Tunnels SSH (Devoir Libre) localhost indique que la requête sera exécutée sur la machine B et non redirigée vers
une autre machine.
Cours : Il existe trois modes de tunnels :
Une fois la commande exécutée, il faudra s'authentifier sur la machine B.
le mode local ;
Cette commande signifie que lorsque la machine A envoie une requête sur le port 1234,
le mode distant ; celle-ci est transmise via un SSH à la machine B et est redirigée sur le port 4141 de
le mode dynamique (basé sur l'utilisation d'un serveur SOCKS). cette dernière.
Prérequis La base de données sera donc accessible sur la machine A à l'adresse localhost:1234 et
la connexion sera chiffrée.
La machine qui crée les tunnels doit être équipée de SSH (par défaut sur Linux),
ou équipée d'un client SSH graphique (Putty,...). Pour fermer le tunnel, récupérez l'identifiant du processus en tapant la commande
suivante :
La machine sur laquelle on se connecte en SSH doit autoriser des connexions
SSH (machine B pour les tunnels locaux, machine A pour les tunnels distants). ~]# ps aux | grep ssh
I.Création d'un tunnel SSH local (option -L). Puis tuez le processus :
Nous avons deux machines reliées à Internet : une machine A et une machine B
hébergeant une base de données qui écoute sur le port 4141.
Nous voulons que la machine A accède de manière sécurisée à la base de données se
situant sur la machine B. Nous décidons donc de créer un tunnel SSH entre ces deux
machines.
Création d'un tunnel local en ligne de commande
Voici la commande à exécuter sur la machine A pour ouvrir un tunnel SSH vers la
base de données :
NB : le port source peut être n'importe quel port libre de la machine A (pas forcément
~]# ssh -L port_machine_A:localhost:port_machine_B machine_B -f -N 1234).
Où port_machine_A peut-être n'importe quel port libre de la machine A (ex : 1234). Une fois les champs renseignés, cliquez sur "Open".
Vous devrez vous authentifier sur la machine B.
Soit :
Une fois l'authentification réalisée, la machine A pourra accéder à la base de données
~]# ssh -L 1234:localhost:4141 machine_B -f -N de B à l'adresse localhost:1234.
L'option -L indique la création d'un tunnel SSH local. Le tunnel restera ouvert tant que Putty sera connecté à la machine B.
Les options -f et -N permettent d'exécuter le tunnel en tâche de fond.
M.FILALI Linux : Administration des Serveurs 163 M.FILALI Linux : Administration des Serveurs 164
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Cas n°2
Soit la configuration suivante :
Création d'un tunnel local en ligne de commande Le tunnel restera ouvert tant que Putty sera connecté à la machine A.
Voici la commande à exécuter sur notre machine A pour ouvrir un tunnel SSH vers la II.Création d'un tunnel SSH distant (option -R).
base de données : Dans les exemples précédents, le tunnel SSH a été créé à partir de la machine A.
Il est possible, pour que la machine A ait accès à la base de données, de créer un tunnel
~]# ssh -L port_machine_A:machine_C:port_machine_C machine_B -f -N
SSH à partir de la machine B.
Où port_machine_A peut-être n'importe quel port libre de la machine A (ex : 1234). Pour ce faire, on utilise l'option -R (pour "remote") :
Renseignez les champs comme ceci (et cliquez sur "Add") Où port_machine_A peut-être n'importe quel port libre de la machine A (ex : 1234).
M.FILALI Linux : Administration des Serveurs 165 M.FILALI Linux : Administration des Serveurs 166
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Soit : Nous voulons donc que la machine A accède à la base de données sur la machine C en
passant par la machine B.
~]# ssh -R 1234:localhost:4141 machine_A -f -N
Le tunnel est à créer à partir de la machine B.
L'option -R indique la création d'un tunnel SSH distant. Création d'un tunnel distant en ligne de commande
Une fois la commande exécutée, il faudra s'authentifier sur la machine A. Voici la commande à exécuter sur la machine B :
Comme précédemment, la machine A peut accéder à la base de données à l'adresse
~]# ssh -R port_machine_A:machine-C:port_machine_C machine_A -f -N
localhost:1234.
La seule différence est que le tunnel est maintenu par la machine B. Où port_machine_A peut-être n'importe quel port libre de la machine A (ex : 1234).
M.FILALI Linux : Administration des Serveurs 167 M.FILALI Linux : Administration des Serveurs 168
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Le problème de cette technique est qu'il faut définir absolument toutes les connexions TP : Navigation sur l'Internet via Tunnel SSH
dont vous avez besoin, ce qui peut s'avérer extrêmement lourd si vous en avez
Supposons qu'on veut se connecter à un site web (requête HTTP) mais qu'il soit bloqué.
beaucoup. Certains services, tels ICQ, rendent cette technique impossible. Pour cause,
On va simple transiter via le tunnel pour atteindre notre serveur qui ira chercher
les ports y sont alloués de façon dynamique, vous ne sauriez donc pas utiliser ce service
l'information et nous la renverra, comme illustré sur ce schéma
dans ces conditions, vu que votre tunnel est statique.
La solution qui a été trouvée pour palier à ces problèmes est la redirection dynamique
des ports.
Vous créez un port d'écoute qui se charge de prendre toute trame réseau qui rentre
"telle quelle" et de la faire exécuter depuis l'autre bout du tunnel.
Voila un petit schéma qui illustre bien cela
Ensuite, votre navigateur devrait correctement emprunter votre tunnel et tout devrait
se dérouler correctement.
M.FILALI Linux : Administration des Serveurs 169 M.FILALI Linux : Administration des Serveurs 170
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
CH7 : Implémenter le serveur de partage NFS Lance le serveur NFS et les processus RPC appropriés pour servir les requêtes des
systèmes de fichiers NFS partagés.
nfslock
M.FILALI Linux : Administration des Serveurs 171 M.FILALI Linux : Administration des Serveurs 172
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
25. rpc.rquotad : Ce processus fournit des informations sur le quota d'utilisateur échouera. Le type de système de fichiers nfs4 est également disponible pour des raisons
des utilisateurs distants. rpc.rquotad est automatiquement démarré par le d'héritage ; ceci est équivalent à exécuter
service nfs et ne requiert pas de configuration utilisateur. ~]# mount -t nfs -o nfsvers=4 host:/remote/export/local/directory
26. rpc.idmapd : rpc.idmapd fournit des appels ascendants client et serveur NFSv4, Si un partage NFS a été monté manuellement, le partage ne sera pas automatiquement
qui mappent simultanément les noms NFSv4 (chaînes sous le monté après un redémarrage. Linux offre deux méthodes pour monter des systèmes de
format utilisateur@domaine) et les UID et GID locaux. Pour qu’idmapd puisse fichiers à distance automatiquement pendant un démarrage : le fichier /etc/fstab et le
fonctionner avec NFSv4, le fichier /etc/idmapd.conf doit être configuré. Au service autofs.
minimum, le paramètre « Domaine », qui définit le domaine de mappage NFSv4, 1.2.1. Monter des systèmes de fichiers NFS à l'aide de /etc/fstab
doit être spécifié. Si le domaine de mappage NFSv4 est le même que le nom de Exemple de syntaxe
domaine DNS, oubliez ce paramètre. Le client et le serveur doivent se mettre La syntaxe générale de la ligne du fichier /etc/fstab est comme suit :
d'accord sur le domaine de mappage NFSv4 pour que le mappage d'ID fonctionne server:/usr/local/pub /pub nfs defaults 0 0
correctement. Le point de montage /pub doit exister sur l'ordinateur client avant que cette commande
puisse être exécutée. Après avoir ajouté cette ligne à /etc/fstab sur le système client,
Note : Seul le serveur NFSv4 utilise rpc.idmapd. Le client NFSv4 utilise nfsidmap de
veuillez utiliser la commande mount /pub, et le point de montage /pub est monté à
l'imapper basé-keyring. nfsidmap est un programme autonome appelé par le noyau à la
partir du serveur.
demande pour effectuer les mappages d'ID ; ce n'est pas un démon. S'il y a un problème
Une entrée /etc/fstab valide pour monter un export NFS doit contenir les informations
avec nfsidmap, le client utilise alors rpc.idmapd.
suivantes :
1.2. Configuration du client NFS
La commande mount monte les partages NFS côté client. Son format est comme suit : server:/remote/export /local/directory nfs options 0 0
~]# mount -t nfs -o options server:/remote/export /local/directory Les variables server, /remote/export, /local/directory, et options sont les mêmes que
Cette commande utilise les variables suivantes : lors d'un montage de partage NFS manuel.
options : Liste d'options de montage séparées par des virgules. Note : Le point de montage /local/directory doit exister sur le client avant la lecture
server : Nom d'hôte, adresse IP, ou nom de domaine complet du serveur exportant le de /etc/fstab. Sinon le montage échouera.
système de fichiers que vous souhaitez monter Pour obtenir davantage d'informations sur /etc/fstab, veuillez consulter man fstab.
M.FILALI Linux : Administration des Serveurs 173 M.FILALI Linux : Administration des Serveurs 174
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
L'utilitaire automount peut monter et démonter des systèmes de fichiers NFS ~]# systemctl stop nfs
automatiquement (montage à la demande), et permet donc d'économiser des ressources L'option restart est une façon rapide d'arrêter, puis de redémarrer NFS. Cette manière
système. Il peut être utilisé pour monter d'autres systèmes de fichiers, y compris AFS, est la plus efficace pour que les changements de configuration puissent prendre effet
SMBFS, CIFS, et des systèmes de fichiers locaux. après avoir modifié le fichier de configuration pour NFS. Pour redémarrer le serveur,
Important : Le paquet nfs-utils fait désormais partie des groupes « NFS file server » et veuillez saisir :
« Network File System Client ». Ainsi, il n'est plus installé par défaut avec le groupe de ~]# systemctl restart nfs
base. Assurez-vous que nfs-utils soit installé sur le système avant de tenter un montage
Une fois que vous aurez modifié le fichier /etc/sysconfig/nfs, redémarrez le service nfs-
automatique sur un partage NFS.
config en exécutant la commande suivante pour que les nouvelles valeurs puissent
autofs fait également partie du groupe « Network File System Client ».
prendre effet :
autofs utilise /etc/auto.master (mappage principal) comme fichier de configuration
~]# systemctl restart nfs-config
principal. Ceci peut être changé afin d'utiliser une autre source réseau et un autre nom
La commande try-restart ne démarre nfs que s'il est en cours d'exécution. Cette
pris en charge en utilisant la configuration autofs (dans /etc/sysconfig/autofs) en
commande équivaut à condrestart (conditional restart) dans les scripts init, et est
conjonction avec le mécanisme NSS (« Name Service Switch »). Une instance du
utilisée car elle ne démarre pas le démon si NFS n'est pas en cours d'exécution.
démon autofs version 4 était exécutée pour chaque point de montage configuré dans le
Pour redémarrer le serveur de façon conditionnelle, saisir :
mappage principal, lui permettant d'être exécutée manuellement à partir de la ligne de
~]# systemctl try-restart nfs
commande pour tout point de montage donné. Ceci n'est pas possible
Pour recharger le fichier de configuration du serveur NFS sans redémarrer le service,
avec autofs version 5, car un seul démon est utilisé pour gérer tous les points de
veuillez saisir :
montage configurés dans le mappage principal. Ceci est effectué conformément aux
~]# systemctl reload nfs
conditions préalables des autres automounters (monteurs automatiques) standards du
secteur. Les points de montage, noms d'hôte, répertoires exportés, et les options
3. Configuration du serveur NFS
peuvent tous être spécifiés dans un ensemble de fichiers (ou autres sources réseau Il existe deux manières de configurer les exportations sur un serveur NFS :
prises en charge) plutôt que de devoir les configurer manuellement pour chaque hôte. La configuration manuelle du fichier de configuration NFS /etc/exports, et
à l'aide de la ligne de commande, en utilisant la commande exportfs
2. Démarrage et arrêt NFS
Pour exécuter un serveur NFS, le service rpcbind doit être en cours d'exécution. Pour 3.1. Fichier de configuration /etc/exports
Le fichier /etc/exports contrôle quels systèmes de fichiers sont exportés vers des hôtes
vérifier que rpcbind soit effectivement actif, veuillez utiliser la commande suivante :
distants et spécifie les options. Les règles de syntaxes suivantes sont observées :
~]# systemctl status rpcbind
Les lignes vides sont ignorées.
Si le service rpcbind est en cours d'exécution, alors le service nfs peut être lancé. Pour
Pour ajouter un commentaire, commencez la ligne par le caractère dièse (#).
démarrer un serveur NFS, veuillez utiliser la commande suivante :
Pour les longues lignes, il est possible d'effectuer des retours à la ligne avec une
~]# systemctl start nfs
barre oblique inversée (\).
Pour permettre à NFS de démarrer à l'amorçage, utiliser la commande suivante : Chaque système de fichiers exporté devrait se trouver sur une ligne individuelle.
~]# systemctl enable nfs-server Toute liste d'hôtes non autorisés placée après un système de fichiers exporté doit
Pour arrêter le serveur, veuillez utiliser : être séparée par des caractères d'espace.
M.FILALI Linux : Administration des Serveurs 175 M.FILALI Linux : Administration des Serveurs 176
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Les options de chaque hôte doivent être placées directement après l'identifiant de comportement, veuillez spécifier no_wdelay. no_wdelay est uniquement disponible si
l'hôte, sans espace séparant l'hôte et la première parenthèse. l'option par défaut sync est également spécifiée.
Chaque entrée de système de fichiers exporté possède la structure suivante : root_squash : Ceci empêche les utilisateurs root connectés à distance (et non locaux)
export host(options) d'avoir des privilèges root. Au lieu de cela, le serveur NFS leurs assignera l'ID
La structure mentionnée ci-dessus utilise les variables suivantes : d'utilisateur nfsnobody. Ceci « écrasera » (ou réduira) les capacités de l'utilisateur root à
export : Répertoire en cours d'exportation celles d'un utilisateur local du plus bas niveau possible, empêchant ainsi toute écriture
host : Hôte ou réseau sur lequel l'exportation est partagée non autorisée sur le serveur distant. Pour désactiver l'écrasement root, veuillez
Il est également possible de spécifier plusieurs hôtes avec des options spécifiques pour Pour écraser tous les utilisateurs distants (y compris les utilisateurs root),
chacun d'entre eux. Pour ceci, veuillez les répertorier sur la même ligne en tant que utilisez all_squash. Pour spécifier les ID des groupes et des utilisateurs que le serveur
liste séparée par des espaces, en veillant à ce que chaque nom d'hôte soit bien suivi par NFS devrait assigner à des utilisateurs distants à partir d'un hôte en particulier,
ses options respectives (entre parenthèses), comme suit : veuillez utiliser les options anonuid et anongid respectives, comme suit :
Sous sa forme la plus simple, le fichier /etc/exports spécifie uniquement le répertoire uid et gid sont les numéros d'ID d'utilisateur et les numéros d'ID de groupe respectifs.
exporté et les hôtes autorisés à y accéder, comme dans l'exemple suivant : Les options anonuid et anongid vous permettent de créer un compte utilisateur et
Fichier /etc/exports groupe spécifique que les utilisateurs NFS distants peuvent partager.
/exported/directory bob.example.com Par défaut, les listes de contrôle d'accès ou ACL (access control lists) sont prises en
charge par NFS. Pour désactiver cette fonctionnalité, veuillez spécifier
Ici, bob.example.com peut monter /exported/directory/ à partir du serveur NFS. Comme
l'option no_acl lorsque vous exportez le système de fichiers.
aucune autre fonction n'est spécifiée dans cet exemple, NFS utilisera les
paramètres par défaut. Chaque valeur par défaut de chaque système de fichiers exporté doit être explicitement
remplacée. Par exemple, si l'option rw n'est pas spécifiée, alors le système de fichiers
Les paramètres par défaut sont les suivants :
exporté est partagé en lecture seule. Ci-dessous figure un exemple de ligne
ro : Le système de fichiers exporté est accessible en lecture seule. Les hôtes distants ne
de /etc/exports qui remplace deux options par défaut :
peuvent pas modifier les données partagées sur le système de fichiers. Pour autoriser
des hôtes à effectuer des modifications sur le système de fichiers (par exemple, /another/exported/directory 192.168.0.3(rw,async)
sync : Le serveur NFS ne répondra pas aux requêtes effectuées avant que les lecture/écriture et toutes les écritures sur disque seront asynchrones. Pour obtenir
changements demandés par les requêtes précédentes soient écrits sur disque. Sinon, davantage d'informations sur les options d'export, veuillez consulter man exportfs.
pour activer les écritures asynchrones, veuillez spécifier l'option async. D'autres options sont disponibles lorsqu'aucune valeur par défaut n'est spécifiée. Celles-
wdelay : Le serveur NFS retardera l'écriture sur disque s'il suspecte qu'une autre ci incluent la possibilité de désactiver la vérification de sous-arborescence, autorise
requête d'écriture est imminente. Ceci peut améliorer les performances car il y a une l'accès à partir de ports non-sécurisés et autorise les verrouillages non-sécurisés
réduction du nombre d'accès au disque par le biais de commandes d'écriture séparées, (nécessaires pour certaines implémentations de clients NFS plus anciennes). Veuillez
réduisant ainsi également l'alourdissement des écritures. Pour désactiver ce consulter man exportspour obtenir davantage de détails sur ces options moins souvent
utilisées.
M.FILALI Linux : Administration des Serveurs 177 M.FILALI Linux : Administration des Serveurs 178
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Important : Le format du fichier /etc/exports est très précis, particulièrement au spécifée, /usr/sbin/exportfs exportera tous les systèmes de fichiers spécifiés
regard de l'utilisation du caractère espace. Rappelez-vous de toujours séparer les dans /etc/exports.
systèmes de fichiers exportés des hôtes et les hôtes les uns des autres avec un caractère -o file-systems : Spécifie les répertoires à exporter qui ne sont pas répertoriés
espace. Toutefois, il ne devrait pas y avoir d'autres caractères espace dans le fichier, dans /etc/exports. Remplacez file-systems par les systèmes de fichiers supplémentaires à
sauf sur les lignes de commentaire. exporter. Ces systèmes de fichiers doivent être formatés de la même manière qu'ils sont
Par exemple, les deux lignes suivantes n'ont pas la même signification : spécifiés dans /etc/exports. Cette option est souvent utilisée pour tester un système de
/home bob.example.com(rw) fichiers exporté avant de l'ajouter de manière permanente à la liste des systèmes de
/home bob.example.com (rw) fichiers devant être exportés.
La première ligne autorise aux utilisateurs de bob.example.com d'accéder en -i : Ignore /etc/exports ; seules les options passées avec la ligne de commande sont
lecture/écriture au répertoire /home. La seconde ligne autorise les utilisateurs utilisées pour définir les systèmes de fichiers exportés.
de bob.example.com de monter le répertoire en tant que lecture seule (par défaut), -u : Annule l'export de tous les répertoires partagés. La commande /usr/sbin/exportfs -
tandis que tout monde peut le monter en lecture/écriture. uasuspend le partage NFS tout en laissant les démons NFS fonctionner. Pour réactiver
redémarrer le service NFS. Lorsque les bonnes options sont passées, la les systèmes de fichiers mentionnés sont automatiquement disponibles aux clients
commande /usr/sbin/exportfs écrit les systèmes de fichiers exportés sur /var/lib/nfs/xtab. NFSv3 et NFSv4 qui utilisent le même chemin. Ce n'était pas le cas dans les versions
privilèges d'accès à un système de fichiers, tout changement apporté à la liste des Pour empêcher aux clients d'utiliser NFSv4, veuillez l'éteindre en
Ci-dessous figure une liste des options couramment utilisées disponibles 3.3. Exécuter NFS derrière un pare-feu
NFS requiert rpcbind, qui assigne dynamiquement des ports pour les services RPC et
pour /usr/sbin/exportfs :
peut provoquer des problèmes avec la configuration des règles de pare-feu. Pour
-r : Cause à tous les répertoires répertoriés dans /etc/exports d'être exportés en
autoriser les clients à accéder aux partages NFS derrière un pare-feu, veuillez modifier
construisant une nouvelle liste d'exports dans /etc/lib/nfs/xtab. Cette option réactualise
le fichier /etc/sysconfig/nfs pour contrôler les ports sur lesquels les services RPC seront
la liste des exports avec les changements apportés à /etc/exports.
exécutés.
-a : Cause à tous les répertoires d'être exportés ou annule leur export, en fonction des
autres options passées à /usr/sbin/exportfs. Si aucune autre option n'est
M.FILALI Linux : Administration des Serveurs 179 M.FILALI Linux : Administration des Serveurs 180
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Le fichier /etc/sysconfig/nfs n'existe pas par défaut sur tous les systèmes. /exports/bar
Si /etc/sysconfig/nfs n'existe pas, créez le et ajoutez les variables suivantes. Deuxièmement, sur n'importe quel serveur qui prend en charge NFSv4, montez le
Remplacez portpar un numéro de port non utilisé. Si /etc/sysconfig/nfs existe déjà, répertoire / et observez son contenu.
modifiez les entrées selon les besoins : ~]# mount myserver:/ /mnt/
RPCMOUNTDOPTS="-p port" ~]# cd /mnt/
Cela ajoute "-p port" à la ligne de commande rpc.mount : rpc.mount -p port. exports
LOCKD_TCPPORT=port ~]# ls exports
Cela définit le port TCP pour nlockmgr. foo
LOCKD_UDPPORT=port bar
Cela définit le port UDP pour nlockmgr. Sur les serveurs prenant en charge NFSv4 et soit NFSv2, soit NFSv3, les deux
Si NFS ne démarre pas, vérifier /var/log/messages. Normalement, NFS échoue au méthodes fonctionneront et offriront les mêmes résultats.
démarrage si vous indiquez un numéro de port déjà utilisé. Une fois que vous aurez Note : Sur les anciens serveurs NFS, et en fonction de leur configuration, il était
édité /etc/sysconfig/nfs, il vous faudra redémarrer le service nfs-config pour que les possible d'exporter des systèmes de fichiers sur des clients NFSv4 sur différents
nouvelles valeurs puissent prendre effet, en exécutant : chemins. Comme ces serveurs n'activent pas NFSv4 par défaut, ceci ne devrait pas
M.FILALI Linux : Administration des Serveurs 181 M.FILALI Linux : Administration des Serveurs 182
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
3.5. NFS sur RDMA En outre, si une personne mal intentionnée prenait contrôle du serveur DNS utilisé par
le service RDMA est automatique tant qu'il y a du matériel compatible avec RDMA
le système exportant le système de fichiers NFS, le système associé à un nom d'hôte ou
présent dans la machine. Ainsi, la procédure ne devra être suivie que si le package
à un nom de domaine complet peut être dirigé vers un ordinateur non autorisé. À ce
RDMA suivant n'a pas été installé lors de l'intallation de la machine.
moment, l'ordinateur non autorisé devient le système autorisé à monter le partage NFS,
Procédure pour Activez RDMA à partir du client
puisqu'aucune information sur le nom d'utilisateur ou sur le mot de passe n'est
1. Installez le package RDMA :
échangée pour fournir une sécurité supplémentaire au montage NFS.
~]# yum install rdma Les caractères génériques doivent être utilisés avec précaution lors de l'export de
2. Recréer initramfs : répertoires à travers NFS, car il est possible que l'étendue du caractère générique
~]# dracut -f puisse englober davantage de systèmes que prévu.
3. Démarrez à nouveau. Il est également possible de restreindre l'accès au service rpcbind avec des enveloppes
TCP. La création de règles avec iptables peut également limiter l'accès aux ports
4. Sécurisation de NFS
utilisés par rpcbind, rpc.mountd, et rpc.nfsd.
NFS est bien adapté au partage de systèmes de fichiers entiers avec un grand nombre
Pour obtenir des informations supplémentaires sur la sécurisation de NFS et rpcbind,
d'hôtes connus de manière transparente. Cependant, cette facilité d'utilisation entraîne
veuillez consulter man iptables.
toute une variété de problèmes de sécurité potentiels. Prenez en considération les
4.2. Sécurité NFS avec AUTH_GSS
sections suivantes lorsque vous exportez des systèmes de fichiers NFS sur un serveur
La sortie de NFSv4 a provoqué une révolution dans la sécurité NFS en mandatant
ou lorsque vous les montez sur un client. Cela minimisera les risques de sécurité NFS
l'implémentation de RPCSEC_GSS et du mécanisme GSS-API Kerberos version 5.
et protégera mieux les données sur le serveur.
Cependant, RPCSEC_GSS et le mécanisme Kerberos sont aussi disponibles pour toutes
4.1. Sécurité NFS avec AUTH_SYS et les contrôles d'export
les versions de NFS. en mode FIPS, vous ne pouvez utiliser que les algorithmes
Traditionnellement, NFS offrait deux options pour contrôler l'accès aux fichiers
autorisés par FIPS.
exportés.
Avec le mécanisme Kerberos RPCSEC_GSS, le serveur ne dépend plus du client pour
Premièrement, le serveur contrôle quels hôtes sont autorisés à monter quels systèmes
correctement représenter les utilisateurs qui accèdent au fichier, tout comme avec
de fichiers, soit par adresse IP ou par nom d'hôte.
AUTH_SYS. Au lieu de cela, un chiffrement est utilisé pour authentifier les utilisateurs
Puis le serveur applique les permissions du système de fichiers pour les utilisateurs des
sur le serveur, empêchant ainsi à un client mal intentionné de prendre la place d'un
clients NFS de la même manière que pour les utilisateurs locaux. Traditionnellement,
utilisateur sans posséder les informations d'utilisation Kerberos de cet utilisateur. Il est
ceci est fait à l'aide d'AUTH_SYS (aussi appelé AUTH_UNIX), qui se fie au client pour
également plus facile ainsi de sécuriser les montages sécurisés, puisqu'après que la
indiquer l'UID et le GID de l'utilisateur. Soyez conscient que cela signifie qu'un client
configuration Kerberos a eu lieu, cela fonctionne sans modification supplémentaire.
mal configuré ou malicieux pourrait facilement mal comprendre ceci et autoriser un
Pour paramétrer RPCSEC_GSS, veuillez utiliser la procédure suivante :
utilisateur à accéder à des fichiers auxquels il ne devrait pas avoir accès.
Procédure pour Paramétrer RPCSEC_GSS
Pour limiter les risques potentiels, les administrateurs autorisent souvent l'accès en
1. Créez les principaux
lecture seule ou limitent les permissions utilisateur à un utilisateur et un ID de groupe
nfs/client.mydomain@MYREALM et nfs/server.mydomain@MYREALM
communs. Malheureusement, ces solutions empêchent le partage NFS d'être utilisé
2. Ajoutez les clés correspondant aux onglets principaux pour le client et le serveur.
comme prévu à l'origine.
M.FILALI Linux : Administration des Serveurs 183 M.FILALI Linux : Administration des Serveurs 184
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
3. Du côté serveur, veuillez ajouter sec=krb5:krb5i:krb5p à l'export. Pour continuer à L'utilitaire rpcbind mappe les services RPC aux ports qu'ils écoutent. Les processus
autoriser AUTH_SYS, veuillez ajouter sec=krb5:krb5i:krb5p à la place. RPC notifient rpcbind lorsqu'ils démarrent, en enregistrant les ports qu'ils écoutent et
4. Du côté client, veuillez ajouter sec=krb5 (ou sec=krb5i, ou sec=krb5p, en fonction de les numéros de programme RPC qu'ils prévoient de servir. Le système client contacte
l'installation) aux options de montage. ensuite rpcbind sur le serveur avec un numéro de programme RPC particulier. Le
4.2.1. Sécurité NFS avec NFSv4 service rpcbindredirige le client vers le numéro de port correct afin de pouvoir
NFSv4 inclut la prise en charge des ACL basée sur le modèle Microsoft Windows NT, et communiquer avec le service requis.
non sur le modèle POSIX, à cause des fonctionnalités et du déploiement global de ce Comme les services basés RPC se fient à rpcbind pour effectuer toutes les connexions
dernier. avec les requêtes client entrantes, rpcbind doit être disponible avant que ces services ne
Une autre fonctionnalité importante de NFSv4 est la suppression de l'utilisation du démarrent.
protocole MOUNT pour monter les systèmes de fichiers. Ce protocole présentait des Le service rpcbind utilise des enveloppes TCP pour le contrôle d'accès, les règles de
failles de sécurité possibles à cause de la manière par laquelle il traitait les contrôle d'accès de rpcbind affectent tous les services basés RPC. De manière
identificateurs de fichiers. alternative, il est possible de spécifier les règles de contrôle d'accès de chacun des
4.3. Permissions de fichier démons RPC NFS. Les pages man de rpc.mountd et rpc.statd contiennent des
Une fois que le système de fichiers NFS est monté en lecture/écriture par un hôte
informations concernant la syntaxe précise de ces règles.
distant, la seule protection que chaque fichier partagé possède ses permissions. Si deux
5.1. Résolution des problèmes NFS et rpcbind
utilisateurs partageant la même valeur d'ID d'utilisateur montent le même système de Comme rpcbind fournit la coordination entre les services RPC et les numéros de port
fichiers NFS, ils pourront chacun modifier les fichiers de l'autre. En outre, toute utilisés pour communiquer avec ceux-ci, il est utile d'afficher le statut des services RPC
personne connectée en tant que root sur le système client peut utiliser la commande su en cours à l'aide de rpcbind lors des résolutions de problèmes. La
- pour accéder à tous les fichiers du partage NFS. commande rpcinfo affiche chaque service basé RPC avec les numéros de port, un
Par défaut, les listes de contrôle d'accès (ACL) sont prises en charge par NFS il est numéro de programme RPC, un numéro de version, et un type de protocole IP (TCP ou
recommandé de laisser cette fonctionnalité activée. UDP).
Par défaut, NFS utilise root squashing (« Écrasement root ») lors de l'exportation d'un Pour vous assurer que les bons services NFS basés RPC soient activés pour rpcbind,
système de fichiers. Ceci définit l'ID d'utilisateur de tout utilisateur root local accédant veuillez saisir la commande suivante :
au partage NFS en tant que nobody (personne). Le root squashing est contrôlé par # rpcinfo -p
l'option par défaut root_squash. Dans la mesure du possible, ne désactivez jamais le
Si l'un des services NFS ne démarre pas correctement, rpcbind sera incapable de
root squashing.
mapper les requêtes RPC des clients de ce service sur le bon port. Dans de nombreux
Lors de l'exportation d'un partage NFS en lecture seule, veuillez considérer l'utilisation
cas, si NFS n'est pas présent dans la sortie rpcinfo, redémarrer NFS entraînera le bon
de l'option all_squash. Cette option fait que tout utilisateur accédant au système de
enregistrement du service avec rpcbind et le début de son fonctionnement.
fichiers exporté prendra l'ID utilisateur de l'utilisateur nfsnobody.
5. NFS et rpcbind
Note : La section suivante s'applique uniquement aux implémentations NFSv3 qui
nécessitent le service rpcbind pour une compatibilité ascendante.
M.FILALI Linux : Administration des Serveurs 185 M.FILALI Linux : Administration des Serveurs 186
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°7-1 : Implémenter le serveur de partage NFS (Ennoncé) TP-N°7-1 : Implémenter le serveur de partage NFS (Corrigée)
linux1 (192.168.1.2) linux2 (192.168.1.3) I. configuration du serveur
Configurer le nome de la machine
~]# hostnamectl set-hostname srv-nfs
~]# hostname
srv-nfs
Serveur NFS Client NFS Configurer la carte reseau du serveur
Le service NFS (Network File System) assure la publication sur le réseau (à partir d'un ~]# ifconfig ens33 192.168.1.2 netmask 255.255.255.0
serveur) et l'utilisation (à partir d'un client) d'une arborescence de fichiers. Pour ~]# ifconfig ens33
l'utiliser, nous devons préparer le serveur puis le client. ens33: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
Sur La Machine Linux1: inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
1) Vérifier est ce que le package NFS est installé ...
2) Afficher les informations de NFS Desactiver les parefeux
3) Demarrer et activer les services rpcbind et nfs-server
~] # systemctl stop firewalld
4) Vérifier est ce qu'il y a des fichiers montés NFS
~] # systemctl disable firewalld
5) Vérifer le port 111 rpc
~] # setenforce 0
6) Exporter les dossiers pour les clients distants
1- Vérifier est ce que le package nfs est installé
Créer le répertoire /projectx et y mettre quelque fichiers
~]# rpm -qa|grep nfs
7) Rendre le dossier disponible en lecture et écriture pour tous les clients
nfs-utils-1.3.4-1.rc2.fc25.i686
8) Vérifier les répertoires exportés
...
Sur La Machine Linux2
2- Afficher les informations de nfs
9) Accéder aux dossiers à partir des clients distants linux2 : 192.168.1.3
Configurer le client NFS ~]# rpm -qi nfs-utils
Monter le partage NFS
Name : nfs-utils
Tester les droits d’accès
Sur La Machine Linux1 Epoch :1
10) Réexporter /projectx en lecture seule (pour 192.168.1.4) Version : 1.3.4
Sur La Machine Linux2 Release : 1.rc2.fc25
11) Accéder aux dossiers à partir des clients distants linux2 : 192.168.1.4 Architecture: i686
Reconfigurer la carte réseau du client
...
Monter le partage NFS
Tester les droits d’accès 3- Demarrer et activer les services rpcbind et nfs-server
12) Enregistrer une copie des fichiers de configuration de votre machine
~]# systemctl start rpcbind
13) Quitter par la commande : exit
~]# systemctl enable rpcbind
14) Rédiger un Rapport du TP (Commandes Résultats Interpretations)
~]# systemctl status rpcbind
M.FILALI Linux : Administration des Serveurs 187 M.FILALI Linux : Administration des Serveurs 188
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
● rpcbind.service - RPC bind service Cette commande permet de vérifier les répertoires montés nfs
Active: active (running) since . . . II. configuration du client
... Configurer le nome de la machine
~]# systemctl start nfs-server ~]# hostnamectl set-hostname cli-nfs
~]# systemctl enable nfs-server Configurer la carte reseau du client
~]# systemctl status nfs-server ~] # ifconfig ens33 192.168.1.3 netmask 255.255.255.0
● nfs-server.service - NFS server and services ~]# ifconfig ens33
Active: active (exited) since. . . ens33: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
... inet 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255
4- Vérifier est ce qu'il y a des fichiers montés nfs ...
~]#showmount 192.168.1.2 Desactiver les parefeux
Hosts on 192.168.1.2: ~] # systemctl stop firewalld
5- Vérifer le port 111 rpc ~] # systemctl disable firewalld
~]# netstat -ntlp ~] # setenforce 0
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3552/rpcbind Tester la connectivite avec le serveur
6- Exporter les dossiers pour les clients distants ~] # ping 192.168.1.2
Créer le répertoire /projectx et y mettre quelque fichiers 64 bytes from 192.168.1.2: icmp_seq=44 ttl=64 time=72.0 ms
Changer les droits du dossier et son contenu 64 bytes from 192.168.1.2: icmp_seq=45 ttl=64 time=31.9 ms
~] # mkdir /projectx 64 bytes from 192.168.1.2: icmp_seq=46 ttl=64 time=0.522 ms
~] # touch /projectx/f1 a- Vérifier est ce que le package nfs est installé
~] # chmod 777 /projectx ; chmod 777 /projectx/f1 ~]# rpm -qa|grep nfs
7-Accéder au fichier /etc/exports et saisir la ligne nfs-utils-1.3.4-1.rc2.fc25.i686
~] # vi /etc/exports ...
/projectx *(rw) b- Afficher les informations de nfs
Cette ligne signifie de rendre le dossier disponible en lecture et écriture pour tous les ~]# rpm -qi nfs-utils
clients Name : nfs-utils
~]# exportfs -v Epoch :1
~]# exportfs -a Version : 1.3.4
8- Vérifier les répertoires exportés Release : 1.rc2.fc25
M.FILALI Linux : Administration des Serveurs 189 M.FILALI Linux : Administration des Serveurs 190
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
~]# mount -t nfs 192.168.1.2:/projectx /projectx ~]# mount -t nfs 192.168.1.2:/home /home
Puis vérifier les points de montage (/projectx doit figurer) ~]# df -hT
M.FILALI Linux : Administration des Serveurs 191 M.FILALI Linux : Administration des Serveurs 192
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
TP-N°7-2 : Mise en place d’un serveur NFS (Devoir Libre) 7. Vérifiez sur le serveur les répertoires exportés avec la commande « showmount -e » et
avec la commande exportfs?
Objectif : Savoir comment configurer et gérer un serveur NFS dans un réseau.
8. Vérifiez le contenu du fichier /var/lib/nfs/etab ?
Maquette de travail :
a. Quels sont les droits donnés par défaut à l’utilisateur root ?
Vous avez besoin de deux machines sous Linux. Une machine jouera le rôle du serveur
b. Quels sont les droits donnés par défaut aux autres utilisateurs ?
NFS et l’autre le rôle du client NFS. La figure suivante présente le schéma de la
c. Quel est le mode utilisé par défaut ?
maquette où le m désigne le numéro de Binôme.
d. Interprétez au moins trois des autres options par défaut ?
Attention : si vous montez une arborescence sur un répertoire local, et que ce
répertoire contient des fichiers, ils seront masqués le temps de montage.
9. Désactivez les parfeux sur la machine serveur et cliente ?
10. Depuis la machine cliente affichez les données exportées par le serveur ?
11. Créez sur le client deux points de montage : /montage/nfs2 et /montage/nfs1 ?
12. En utilisant la commande mount, montez les dossiers exportés par le serveur sur les
Manipulations
deux points de montage ?
1. Quel est le rôle d’un serveur NFS dans un réseau ?
13. Testez les accès aux ressources partagées à partir du client ?
2. Expliquez le fonctionnement de NFS ?
14. Vérifiez les permissions d’accès lecture/écriture ?
3. Est-ce que NFS est utilisé avec des machines Windows ? ou seulement avec des machines
a. A partir du client, créez un fichier sur le système de fichier accessible en lecture
Linux ?
seul (nfs2) ?
4. Utiliser le man pour les fichiers et commandes de configuration suivants et noter les
b. A partir du client, créez un fichier sur le système de fichier accessible en écriture
options et les informations utiles : exports, fstab, mount, showmount, exportfs, rpcinfo.
(nfs1) ?
I. Montage et export à la volé
15. Depuis la machine cliente, Vérifiez les fichiers montés à partir du serveur avec la
1. A partir des fichiers de configuration, Configurez correctement vos machines en leurs
commande « showmount –a » ?
donnant des adresses IP statiques ?
16. Démontez les systèmes de fichiers ?
2. Vérifiez la configuration en utilisant la commande ifconfig ?
17. Changez l’utilisateur avec lequel vous êtes connecté à la machine cliente ?
3. Testez la connectivité des deux machines avec la commande ping ?
18. Réessayez de monter l’un des répertoires exportés par le serveur ? que remarquez-
4. Activez et demarrez les services rpcbind et nfs-server ?
vous ?
5. Sur la machines serveur, créez deux répertoires de nom /partage/nfs2 et
19. Sur le serveur annuler le partage de /partage/nfs2 et /partage/nfs1 ? vérifiez
/partage/nfs1 ? créez un fichier fich1 et un répertoire rep1 dans /partage/nfs1 et un
l’annulation avec la commande exportfs ?
fichier fich2 et un répertoire rep2 dans /partage/nfs2 ?
II. Montage et export permanents
6. Partagez ces deux répertoires avec la commande exportfs tout en sachant que :
1. Vérifiez sur le serveur l’existence du fichier /etc/exports. S’il n’existe pas créez-le ?
/partage/nfs2 sera partagé avec tout le monde en lecture seul
2. Partagez d’une manière permanente les deux répertoires /partage/nfs2 avec tout le
/partage/nfs1 sera partagé avec la deuxième machine en lecture/écriture
monde et /partage/nfs1 avec la machine cliente en spécifiant les options (rw et sync) et
(rw,async)?
M.FILALI Linux : Administration des Serveurs 193 M.FILALI Linux : Administration des Serveurs 194
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
3. sur le client, éditez et modifier le fichier /etc/fstab afin d’inclure les systèmes de fichiers CH8 : Implémenter le serveur de partage Samba
nfs exportés par le serveur en spécifiant les options (rw, sync et user) pour le partage
/partage/nfs2 et (rw et async) pour le partage /partage/nfs1? Ex :
192.168.m.1:/partage/nfs2 /montage/nfs2 nfs rw,sync,user 00
4. Redémarrez votre machine cliente et vérifiez que les modifications que vous avez
apportées dans le fichier fstab fonctionnent en utilisant la commande (showmount –a) ?
III. Montage automatique
1. Modifiez le fichier « fstab » afin de supprimer les montages permanents que vous avez
déjà configurés ? puis redémarrez votre machine cliente ?
2. Installer le package autofs
3. Activer et demarre le service autofs
4. Configurez correctement votre machine cliente afin de monter automatiquement les
répertoires déjà exportés dans la section précédente en utilisant les mêmes points de
montages et les mêmes options ?
~]# vi /etc/auto.master
#ajouter cette ligne à la fin
/- /etc/auto.mount
Editer le fichier Samba
~]# vi /etc/auto.mount Samba est une suite de programmes d'intéropérabilité Windows en source libre du
# Ajouter les points de montages Ex : protocole server message block (SMB). SMB permet à Microsoft Windows®, Linux,
/montage/nfs2 -fstype=nfs,rw,sync 192.168.m.1:/partage/nfs2 UNIX, et à d'autres systèmes d'exploitation d'accéder à des fichiers et à des
5. Redémarrez le service autofs ? imprimantes partagées à partir de serveurs qui prennent en charge ce protocole.
~]# service autofs restart L'utilisation de SMB par Samba leur permet d'apparaître comme serveur Windows
6. Utilisez les commandes tree et ls pour vérifier le montage automatique ? pour les clients Windows.
Note : Pour utiliser Samba, commencez par vous assurer que le paquet samba est
~]# tree point-de-montage
installé sur votre système en exécutant la commande suivante en tant
~]# ls point-de-montage
qu'utilisateur root :
7. Attendez 2min puis utilisez la commande tree pour vérifier le démontage
~]# yum install samba
automatique ?
~]# tree point-de-montage
1. Introduction à Samba
8. Enregistrer une copie des fichiers de configuration de votre machine Samba est un composant clé qui facilite l'intégration des serveurs Linux et des
9. Quitter par la commande : exit Desktops dans des environnements Active Directory (AD). Peut fonctionner soit en
10. Rédiger un Rapport du TP (Commandes Résultats Interpretations)
M.FILALI Linux : Administration des Serveurs 195 M.FILALI Linux : Administration des Serveurs 196
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
contrôleur de domaine (NT4-style), soit en tant que membre de domaine standard (AD 2000, Windows XP, et LanManager. Il participte également aux protocoles de
ou NT4-style). navigation qui composent l'affichage du Voisinage réseau Windows. Le port par
Ce que Samba peut faire : défaut sur lequel le serveur écoute le trafic NMB et le port UDP 137.
Servir des structures de répertoires et des imprimantes à des clients Linux, UNIX, Le démon nmbd est contrôlé par le service nmb.
et Windows Winbindd : Le service windbind résout les informations des utilisateurs et des groupes
Assister lors de la navigation réseau (avec NetBIOS) reçues d'un serveur exécutant Windows NT, 2000, 2003, Windows Server 2008, ou
Authentifier les connexions aux domaines Windows Windows Server 2012. Ceci rend les informations des utilisateurs et des groupes
Fournir des résolutions de serveur de noms Windows Internet Name Service (WINS) Windows compréhensibles par les plateformes UNIX. Cela est effectué en utilisant des
Agir en tant que contrôleur de domaine de sauvegarde (PDC) NT®-style Primary appels Microsoft RPC, PAM (« Pluggable Authentication Modules »), et NSS (« Name
Domain Controller Service Switch »). Cela permet aux utilisateurs de domaines Windows NT et d'AD
Agir en tant que contrôleur de domaine de sauvegarde (BDC) Backup Domain (Active Directory) d'apparaître et d'opérer comme s'ils étaient des utilisateurs UNIX sur
Controller pour un PDC basé Samba une machine UNIX. Malgré qu'il soit combiné à la distribution Samba, le
Agir en tant que serveur membre d'un domaine Active Directory service winbind est contrôlé séparément à partir du service smb.
Joindre un serveur Windows NT/2000/2003/2008 PDC/Windows Server 2012 Le démon winbind est contrôlé par le service winbind et ne requiert pas que le
Ce que Samba ne peut pas faire : service smb soit lancé pour opérer. winbind est également utilisé lorsque Samba est un
Agir en tant que BDC pour un PDC Windows (et vice-versa) membre d'Active Directory, et peut aussi être utilisé sur un contrôleur de domaines
Agir en tant que contrôleur de domaine Active Directory Samba (pour implémenter des groupes imbriqués et une confiance interdomaines).
Comme winbind est un service côté client utilisé pour connecter des serveurs Windows
2. Démons Samba et services connexes
basés NT.
Samba comprend trois démons (smbd, nmbd, et winbindd). Trois services (smb, nmb,
et winbind) contrôlent la manière par laquelle les démons sont lancés, arrêtés, ainsi que 3. Se connecter à un partage Samba
d'autres fonctionnalités liées aux services. Ces services agissent comme scripts init Vous pouvez utiliser la commande Nautilus ou l'utilitaire de ligne de commande pour
différents. Chaque démon est répertorié de manière détaillée ci-dessous, ainsi que les vous connecter aux partages de Samba disponibles.
services spécifiques qui en possèdent le contrôle. Procédure pour Se connecter à un partage Samba via Nautilus
Smbd : Le démon du serveur smbd fournit des services d'impression et de partage de 1. Pour afficher une liste des groupes de travail Samba et des domaines sur votre
fichiers aux clients Windows. De plus, il est responsable pour l'authentification réseau, veuillez sélectionner Places → Réseau dans le panneau GNOME, puis
utilisateur, le verrouillage de ressources, et le partage de données via le protocole SMB. sélectionner le réseau souhaité. Vous pouvez également saisir smb: dans la
Les ports par défaut sur lesquels le serveur écoute le trafic SMB sont les barre Fichier → Ouvrir l'emplacement de Nautilus.
ports TCP 139 et 445. Une icône s'affiche pour chaque groupe de travail ou domaine SMB sur le réseau.
Le démon smbd est contrôlé par le service smb.
Nmbd : Le démon du serveur nmbd comprend et répond aux requêtes de service de
noms NetBIOS comme celles produites par SMB/CIFS sur des systèmes basés
Windows. Ces systèmes incluent des clients Windows 95/98/ME, Windows NT, Windows
M.FILALI Linux : Administration des Serveurs 197 M.FILALI Linux : Administration des Serveurs 198
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Remplacez hostname par le nom d'hôte ou par l'adresse IP du serveur Samba auquel
vous souhaitez vous connecter, sharename par le nom du répertoire partagé que vous
souhaitez parcourir, et username par le nom d'utilisateur Samba du système. Saisissez
le mot de passe correct ou appuyez sur Entrée si aucun mot de passe n'est requis pour
l'utilisateur.
Si vous voyez l'invite smb:\>, cela signifie que vous vous êtes connecté. Une fois
connecté, veuillez saisir help pour obtenir la liste des commandes. Si vous souhaitez
parcourir le contenu de votre répertoire personnel, remplacez sharename par votre nom
Groupes de travail SMB dans Nautilus
d'utilisateur. Si le commutateur -U n'est pas utilisé, le nom d'utilisateur de l'utilisateur
2. Faites un double clic sur l'icône de groupe de travail ou de domaine pour afficher la
actuel sera transmis au serveur Samba.
liste des ordinateurs dans ce groupe de travail ou dans ce domaine.
2. Pour quitter smbclient, saisissez exit à l'invite smb:\>.
4. Monter le partage
Parfois, il peut être utile de monter un partage Samba sur un répertoire afin que les
fichiers puissent être traités comme s'ils faisaient partie du système de fichiers local.
Pour monter un partage Samba sur un répertoire, veuillez créer un répertoire pour le
monter dessus (s'il n'existe pas déjà), et exécutez la commande suivante en tant
qu'utilisateur root :
Machines SMB dans Nautilus mount -t cifs //nom du serveur/nom partage /mnt/point/ -o username=nom
3. une icône existe pour chaque machine dans le groupe de travail. Faites un double d'utilisateurmot de passe =mot de passe
clic sur une icône pour afficher les partages Samba sur la machine. Si une Cette commande mont nom partage à partir de nom du serveur dans le répertoire
combinaison nom d'utilisateur et mot de passe est requise, celle-ci vous sera local /mnt/point/.
demandée. Note : L'utilitaire mount.cifs est un RPM séparé (indépendant de Samba). Pour
Alternativement, vous pouvez également spécifier le serveur Samba et le nom du utiliser mount.cifs, commencez par vous assurer que le paquet cifs-utils soit installé
partage dans la barre Location : de Nautilus en utilisant la syntaxe suivante sur votre système en exécutant la commande suivante en tant qu'utilisateur root :
(remplacez servername et sharename par les valeurs appropriées) : ~]# yum install cifs-utils
smb://servername/sharename Avertissement : Certains serveur CIFS requièremt des mots de passe en texte brut
Procédure pour Se connecter à un partage Samba par l'interface en ligne de pour l'authentification. La prise en charge de l'authentification des mots passe en texte
commande brut peut être activée en utilisant la commande suivante en tant qu'utilisateur root :
1. Pour se connecter à un partage Samba à partir d'une invite de shell, veuillez saisir la ~]# echo 0x37 > /proc/fs/cifs/SecurityFlags
commande suivante : Avertissement : Cette opération peut exposer les mots de passe en supprimant le
~]$ smbclient //hostname/sharename -U username chiffrement de mot de passe.
M.FILALI Linux : Administration des Serveurs 199 M.FILALI Linux : Administration des Serveurs 200
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
5. Configurer un serveur Samba L'exemple ci-dessus permet aux utilisateurs tfox et carole de lire et d'écrire sur le
Le fichier de configuration par défaut (/etc/samba/smb.conf) permet aux utilisateurs de répertoire /home/share/, situé sur le serveur Samba, à partir d'un client Samba.
voir leur répertoire personnel en tant que partage Samba. Il partage également toutes 5.3. Mots de passe chiffrés
les imprimantes configurées pour le système en tant qu'imprimantes partagées Samba. Les mots de passe chiffrés sont activés par défaut car il est plus sûr de les utiliser. Pour
Vous pouvez attacher une imprimante au système et l'utiliser à partir de machines créer un utilisateur avec un mot de passe chiffré, veuillez utiliser la
Windows sur votre réseau. commande smbpasswd :
cela, les changements n'entreront en vigueur que lorsque vous redémarrez le démon ~]# systemctl start smb.service
Samba avec la commande suivante, en tant qu'utilisateur root : Important : Pour paramétrer un serveur membre d'un domaine, vous devez tout
~]# systemctl restart smb.service d'abord joindre le domaine ou Active Directory en utilisant la commande net
Pour spécifier le groupe de travail Windows et pour faire une brève description du joinavant de lancer le service smb. Il est également recommandé
serveur Samba, veuillez modifier les lignes suivantes dans votre d'exécuter winbind avant smbd.
fichier /etc/samba/smb.conf : Pour arrêter le serveur, veuillez saisir la commande suivante dans une invite de shell
Remplacez WORKGROUPNAME par le nom du groupe de travail Windows auquel cette L'option restart est une façon rapide d'arrêter, puis de redémarrer Samba. Cette
machine doit appartenir. BRIEF COMMENT ABOUT SERVER est optionnel et est manière est la plus efficace pour que les changements de configuration puissent entrer
utilisé comme commentaire Windows sur le système Samba. en vigueur après avoir modifié le fichier de configuration de Samba. Remarquez que
Pour créer un répertoire de partage Samba sur votre système Linux, veuillez ajouter la l'option de redémarrage lance le démon même s'il n'était pas exécuté à l'origine.
section suivante à votre fichier /etc/samba/smb.conf (après l'avoir modifiée pour refléter Pour redémarrer le serveur, veuillez saisir la commande suivante dans une invite de
M.FILALI Linux : Administration des Serveurs 201 M.FILALI Linux : Administration des Serveurs 202
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Pour redémarrer le serveur de manière conditionnelle, veuillez saisir la commande Partages d'invités Samba
suivante dans une invite de shell en tant qu'utilisateur root : Comme expliqué ci-dessus, le mode de sécurité niveau partage est déprécié. Pour
~]# systemctl try-restart smb.service configurer un partage d'invité Samba sans utiliser le paramètre security = share, suivre
du rechargement automatique effectué par le service smb. Pour vous assurer que le Procédure pour Configuration des partages d'invités Samba
fichier de configuration du serveur Samba soit rechargé sans redémarrer le service, 1. Créer un fichier de mise en correspondance des noms d'utilisateur, dans cet
veuillez saisir la commande suivante en tant qu'utilisateur root : exemple, /etc/samba/smbusers, et y ajouter la ligne suivante :
Par défaut, le service smb n'est pas lancé automatiquement pendant l'initialisation. 2. Ajouter la directive suivante à la section principale du fichier /etc/samba/smb.conf.
Pour configurer Samba pour qu'il soit lancé pendant l'initialisation, veuillez saisir ce Ne pas utiliser la directive valid users.
fichier /etc/samba/smb.conf, elle sera utilisée par Samba. Si le serveur accepte le nom Mode de sécurité domaine (sécurité niveau utilisateur)
d'utilisateur et mot de passe du client, le client peut alors monter plusieurs partages En mode de sécurité de domaine, le serveur Samba dispose d’un compte machine
sans spécifier un mot de passe pour chaque instance. Samba peut également accepter (compte de confiance de sécurité de domaine) et fait que toutes les demandes
des demandes de noms et mots de passe basés sur une session utilisateur. Le client d’authentification passent par les contrôleurs de domaine. Le serveur Samba est
maintient plusieurs contextes d’authentification en utilisant un UID unique pour transformé en serveur membre de domaine selon les directives suivantes du
M.FILALI Linux : Administration des Serveurs 203 M.FILALI Linux : Administration des Serveurs 204
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
Si vous avez un environnement Active Directory, il est possible de rejoindre le domaine entre groupes de travail et sous-réseaux. Pour son propre réseau, l'explorateur principal
en tant que membre Active Directory natif. Même si une politique de sécurité restreint de domaines devrait préférablement être l'explorateur principal local.
l’utilisation de protocoles d’authentification NT-compatible, le serveur Samba peut 8.1. Exploration de domaines
rejoindre une ADS à l’aide de Kerberos. Samba en mode membre Active Directory peut Par défaut, un PDC de serveur Windows d'un domaine est également l'explorateur
accepter des tickets Kerberos. principal de domaines de ce domaine. Un serveur Samba ne doit pas être paramétré
Dans le fichier /etc/samba/smb.conf, les directives suivantes font de Samba un membre comme serveur principal de domaines dans ce type de situation.
d'Active Directory. Pour les sous-réseaux qui n'incluent pas le PDC du serveur Windows, un serveur
[GLOBAL] Samba peut être implémenté en tant qu'explorateur principal local. La configuration du
realm = EXAMPLE.COM exploration) dans un environnement de contrôleur de domaine est la même chose
M.FILALI Linux : Administration des Serveurs 205 M.FILALI Linux : Administration des Serveurs 206
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
nmblookup <options> <netbios_name> Password last set: Thu, 29 Jan 2004 08:29:28
Le programme nmblookup résout les noms NetBIOS en adresses IP. Le programme GMT Password can change: Thu, 29 Jan 2004 08:29:28 GMT
diffuse sa requête sur le sous-réseau local jusqu'à ce que la machine cible réponde. Password must change: Mon, 18 Jan 2038 22:14:07 GMT
M.FILALI Linux : Administration des Serveurs 207 M.FILALI Linux : Administration des Serveurs 208
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
joe:503: ainsi que par un utilisateur ordinaire pour qu'il puisse modifier son propre mot de passe
lisa:504: Samba.
kristin:506: smbspool
~]$ pdbedit -x joe smbspool <job> <user> <title> <copies> <options> <filename>
~]$ pdbedit -L Le programme smbspool est une interface d'impression compatible avec CUPS sur
andriusb:505: lisa:504: kristin:506: Samba. Malgré sa conception destinée à une utilisation avec des imprimantes
rpcclient CUPS, smbspool peut également fonctionner avec des imprimantes n'utilisant pas
rpcclient <server> <options> CUPS.
Microsoft, qui fournissent accès aux interfaces utilisateur graphique (GUI) smbstatus <options>
d'administration Windows pour la gestion des systèmes. Ce programme est souvent Le programme smbstatus affiche le statut des connexions actuelles à un serveur Samba.
utilisé par des utilisateurs de niveau avancé, qui comprennent parfaitement la smbtar
complexité des RPC Microsoft. smbtar <options>
smbcacls Le programme smbcacls effectue des copies de sauvegarde et des restaurations de
smbcacls <//server/share> <filename> <options> fichiers et répertoires de partage basés Windows sur une bande d'archive locale. Malgré
Le programme smbcacls modifie les ACL Windows sur les fichiers et répertoires des similarités avec la commande tar, les deux ne sont pas compatibles.
partagés par un serveur Samba ou un serveur Windows. testparm
smbclient testparm <options> <filename> <hostname IP_address>
smbclient <//server/share> <password> <options> Le programme testparm vérifie la syntaxe du fichier /etc/samba/smb.conf. Si votre
Le programme smbclient est un client UNIX polyvalent offrant une fonctionnalité fichier smb.conf ne se trouve pas dans l'emplacement par défaut (/etc/samba/smb.conf),
similaire à ftp. vous n'aurez pas besoin de spécifier l'emplacement. La spécification du nom d'hôte et de
smbcontrol l'adresse IP sur le programme testparm vérifie si les
smbcontrol -i <options> fichiers hosts.allow et host.deny sont correctement configurés. Le
smbcontrol <options> <destination> <messagetype> <parameters> programme testparm affiche également un résumé du fichier smb.conf et le rôle du
Le programme smbcontrol envoie des messages de contrôle aux démons en cours serveur (stand-alone, domain, etc.), après avoir effectué des tests. Ceci est utile lors du
d'exécution smbd, nmbd, ou winbindd. L'exécution de smbcontrol -i exécute des débogage car les commentaires sont exclus et les informations sont présentées de façon
commandes de manière interactive jusqu'à ce qu'une ligne blanche ou que le concise pour permettre leur lecture à des administrateurs expérimentés.
Le programme smbpasswd gère des mots de passe chiffrés. Ce programme peut être Server role: ROLE_STANDALONE
utilisé par un super-utilisateur pour modifier le mot de passe de tout autre utilisateur, Exemple :
M.FILALI Linux : Administration des Serveurs 209 M.FILALI Linux : Administration des Serveurs 210
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 211 M.FILALI Linux : Administration des Serveurs 212
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
M.FILALI Linux : Administration des Serveurs 213 M.FILALI Linux : Administration des Serveurs 214
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
10. Definire les utilisateurs samba
M.FILALI Linux : Administration des Serveurs 215 M.FILALI Linux : Administration des Serveurs 216
Guide de formation avec ateliers pratiques Guide de formation avec ateliers pratiques
5- Se connecter au partage réseau sur le (Serveur) Windows putting file fich1 as \fich1 (0,0 kb/s) (average 0,0 kb/s)
~]# smbclient -m smb3 -U Admin //MR-PC/PartageSamba
Enter Admin's password: ******* Exercice : Que font ces Commandes ?
Admin: est un Compte crée sous Windows ~]# firewall-cmd --add-service=samba --permanent
M.FILALI Linux : Administration des Serveurs 217 M.FILALI Linux : Administration des Serveurs 218
Guide de formation avec ateliers pratiques