Administration des réseaux sous
linux
BERRAHO SANAE
• Objectif du module: former des administrateurs réseaux
⇒ Maîtriser les enjeux et les finalités de l'administration des
réseaux.
⇒ Aborder en détails la configuration réseau d'un poste client sous
Linux
⇒ Apprentissage et mise en place de services utilisés dans
l’administration réseau d’un parc de machines
⇒ connaître les principaux protocoles applicatifs et savoir mettre en
place les services associés sous Linux
11/11/2023 2
Objectifs du cours
Manipulation des notions/outils nécessaire à un administrateur
réseaux sous linux
Le rôle d’un administrateur réseau consiste (entre autre) à :
• Mettre en place et maintenir l’infrastructure du réseau (organisation,
. . . ).
• Installer et maintenir les services nécessaires au fonctionnement du
réseau.
• Assurer la sécurité des données internes au réseau (particulièrement
face aux attaques extérieures).
• S’assurer que les utilisateurs “n’outrepassent” pas leurs droits.
• Gérer les “logins” (i.e. noms d’utilisateurs, mot de passe, droits
d’accès, permissions particulières, . . . ).
• Gérer les systèmes de fichiers partagés et les maintenir.
11/11/2023 3
Introduction et généralités
Rôles d’un administrateur réseau
L’administrateur réseau est responsable de ce qui peut se
passer à partir du réseau administré.
11/11/2023 4
Introduction et généralités
Niveaux d’administration
• Un parc de machines (ou de postes) homogènes
• Poste individuel: peut être délégué a son propriétaire
• Serveur: forte responsabilisation sur la disponibilité des services
• Distribution/mise en commun des ressources
• Un parc de machines hétérogènes
• s'efforcer de rendre l'ensemble des équipements interopérable
• la complexité croît avec le taux d'hétérogénéité
• Un parc multi-sites
• Supervision du fonctionnement des réseaux.
• Optimisation pour l’utilisation des ressources.
• Détection et prévision des erreurs.
• Signalisation des pannes.
• Calculs de facturations à l’utilisation des ressources.
• Le support technique pour utilisateurs.
11/11/2023 5
Introduction et généralités
Objectifs de l’administration des réseaux pour un administrateur
• Linux est un système d'exploitation, comme UNIX, MS Windows,
Mac OS X.
• C'est un "UNIX-like", il suit le "modèle UNIX":
• Les fichiers sont de simples "paquets d'octets"
• Les données sont de simples flux de bits.
• Tout est fichier ( les programmes, les données, les flux réseaux, les
périphériques...)
• Multitâche
• Multi-utilisateurs
• Libre et gratuit
• Outils / logiciels gratuits
11/11/2023 6
Introduction et généralités
Présentation de Linux
• Mandriva: http://www.mandriva.com/
• RedHat: http://www.redhat.com/
• Fedora: http://fedora.redhat.com/
• SuSE/Novell: http://www.suse.com/
• Debian: http://www.debian.org/
• Gentoo: http://www.gentoo.org/
• Ubuntu: http://www.ubuntu.com/
11/11/2023 7
Introduction et généralités
Quelques distributions Linux
11/11/2023 8
Introduction et généralités
Pourquoi choisir Ubuntu
• Disponible gratuitement et librement
• Thème graphique et sonore particulier
• Toujours à la pointe: Une nouvelle version tous les six mois propulse
Ubuntu continuellement vers l'avant ;
• Le système des dépôts de logiciels permet d'installer en quelques
clics, avec une grande facilité , des logiciels extrêmement variés
• Les mises à jour de sécurité sont simplifiées et gérées
graphiquement : Une tâche de notification prévient lorsqu'une mise
à jour est disponible. En quelques clics, machine et logiciels sont
sécurisées ;
• Une vaste communauté contributive
• L'installation se fait en 4 étapes :
– Installation du logiciel VirtualBox
– Création d'une machine virtuelle
– Installation du système Linux
– Configuration du système
11/11/2023 9
Introduction et généralités
Installation d’Ubuntu
• L’administration d’un système UNIX, se fait en prenant l’identité
de root
• Souvent l’invité de commandes est le symbole « # » et le
répertoire de connexion /root
• Il est aussi possible de prendre temporairement, quand on est
déjà connecté, l’identité de l’administrateur grâce à la commande
su
• Il n’est pas conseillé de toujours travailler connecté en tant que
root. Il est préférable de disposer d’un compte ordinaire et
d’exécuter la commande su.
11/11/2023 10
Introduction et généralités
Le compte root
• Tout est fichier.
• Tous les fichiers sont dans une unique arborescence.
11/11/2023 11
Introduction et généralités
Le système de fichiers Linux
SupMTI
11/11/2023 12
Introduction et généralités
Organisation des fichiers Linux
Nom du
dossier
Commentaires
/bin Regroupe les fichiers exécutables pour l'initialisation du système et les
commandes « essentielles »
/boot Contient le noyau et des fichiers nécessaires au démarrage
/dev Contient les fichiers spéciaux servant pour communiquer avec les
périphériques (disques, adaptateur réseau, cartes son etc...)
/etc Contient les fichiers de configuration du système
/home Contient l'ensemble des répertoires personnels des utilisateurs du
système (le nom du répertoire correspondant au login de l'utilisateur)
/lib Contient les bibliothèques (souvent des parties de programmes qui
peuvent être commune à plusieurs programmes)
11/11/2023 13
Introduction et généralités
Organisation des fichiers Linux
/mnt Contient généralement l'ensemble des points de montage des
périphériques (cd, disquette...)
/floppy et pour le CD /cdrom au lieu de /mnt/floppy et
/mnt/cdrom/optContient des applications supplémentaires
/root Est le répertoire personnel de l'administrateur
/sbin Contient les exécutables uniquement accessibles à
l'administrateur
/tmp Contient les fichiers temporaires du système
/usr répertoire personnel des utilisateurs, Contient les programmes
accessibles à l'ensemble des utilisateurs
/var Contient les données de cache pour certaines applications (apt,
cups...) ou encore les fichiers enregistrant les messages du
système
11/11/2023 14
Première partie
Configuration d’un réseau local (LAN)
• Les réseaux informatiques utilisent un modèle composé de plusieurs
couches de protocoles.
• Le modèle OSI correspond à une approche plus théorique en
décomposant le fonctionnement en une pile de 7 couches.
• Modèle TCP/IP est un modèle de protocole, car il décrit les fonctions
qui interviennent à chaque couche des protocoles au sein de la suite
TCP/IP.
11/11/2023 15
Généralités
• Avant de pouvoir utiliser ou fournir des services sur un réseau, un
système Linux doit déjà être connecté à ce réseau.
• Sur un ordinateur de bureau, cette configuration est souvent
automatique, mais il est bon de la maîtriser si l'on souhaite jouer un
rôle d’administrateur réseau.
• Les réseaux informatiques utilisent un modèle composé de plusieurs
couches de protocoles.
• Nous nous intéressons ici à la couche réseau, qui utilise le protocole
IP (Internet protocol): c'est cette couche qui définit la topologie des
réseaux  Sa configuration est très importante.
11/11/2023 16
Configuration réseau
Principes
• Un ordinateur communique avec les autres ordinateurs en utilisant une
carte ou une clef réseau,
• Du point de vue du système d'exploitation, ce périphérique est une
interface réseau.
• Sous Linux, ces interfaces sont nommées:
• eth0, eth1… : interfaces filaires,
• wlan0, wlan1: interfaces sans fil (wifi, wimax…).
• lo (pour loopback): votre propre ordinateur.
11/11/2023 17
Configuration réseau
Principes
• Une adresse IP: identifie votre hôte sur le réseau où il est connecté. une
adresse unique sur un réseau. C’est une suite de 4 nombres allant de 0 à
255 (inclus) séparés par des points. Cette adresse IP appartient à une
classe réseau. Il existe 5 classes d’IP
11/11/2023 18
Configuration réseau
Eléments de configuration
• un masque de sous-réseau: cette donnée indique la partie de votre
adresse qui caractérise le réseau local sur lequel votre hôte est
connecté, et lui permet de déterminer, pour n’importe quelle adresse
IP, si celle-ci fait ou non partie du réseau local;
11/11/2023 19
Configuration réseau
Eléments de configuration
• une passerelle par défaut: c'est l'adresse IP à laquelle il faut
transmettre les paquets IP destinés à des hôtes situés hors du
réseau local, pour qu'ils soient routés vers le réseau local de leur
destinataire ;
11/11/2023 20
Configuration réseau
Eléments de configuration
• des serveurs DNS: ce sont les adresses de serveurs auxquels votre
système ira demander les correspondances entre noms de domaine
et adresses IP.
11/11/2023 21
Configuration réseau
Eléments de configuration
• sans adresse IP, il est impossible de recevoir les réponses à ses
requêtes ;
• sans masque de sous-réseau ou sans passerelle par défaut, il est
impossible de communiquer avec les hôtes situés hors du
réseau local ;
• sans serveur DNS, on ne peut pas désigner un hôte par son nom
de domaine, et il faut donc connaître les adresses IP de tous les
serveurs que l'on souhaite utiliser.
11/11/2023 22
Configuration réseau
Eléments de configuration
• vous devez connaître à l'avance votre configuration complète, pour
l'appliquer sur votre système.
• Configurer la connexion consiste à affecter à la carte réseau son adresse
IP et son masque de sous-réseau, à ajouter la passerelle par défaut à la
table de routage du noyau Linux, et à noter l'adresse des serveurs DNS
dans le fichier de configuration du résolveur DNS.
11/11/2023 23
Configuration réseau
Modes de configuration
Configuration statique
Configuration dynamique
• Très répandue, est plus adapté aux ordinateurs portables, susceptibles
d'être connectés à des réseaux différents
• lorsque le système démarre, ou détecte qu'il vient d'être connecté à un
réseau, envoie une demande de paramètres de connexion.
• Cette demande utilise le protocole DHCP (dynamic host configuration
protocol)
• La commande ifconfig (InterFace CONFIGuration) permet de connaître
la configuration réseaux et de configurer le réseau à la main ou dans
un script.
• Sans paramètres cette commande permet d’afficher les paramètres
réseaux des interfaces.
11/11/2023 24
Configuration d’une station
Afficher les paramètres des interfaces
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:B2:3A:24:F3:C4
inet addr:192.168.0.2 Bcast:192.168.0.255
Mask:255.255.255.0
inet6 addr: fe80::2c0:9fff:fef9:95b0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0
carrier:5
collisions:0 txqueuelen:1000
RX bytes:1520 (1.4 KiB) TX bytes:2024 (1.9 KiB)
Interrupt:10
11/11/2023 25
Configuration d’une station
Afficher les paramètres des interfaces
Lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6040 (5.8 KiB) TX bytes:6040 (5.8 KiB)
Cette commande peut également afficher les interfaces non
configurées, avec l'argument -a, pour all. Cela peut servir à
déterminer le nom d'une interface non encore configurée
• Pour appliquer une configuration à une interface, on utilise
ifconfig, avec des arguments correspondants:
• Pour supprimer une configuration IPv4, on utilise la commande:
• Pour activer l’interface, on utilise la commande:
11/11/2023 26
Configuration d’une station
Configuration statique: l’adresse IP
# ifconfig eth0 192.168.0.42
# ifconfig eth0 down
# ifconfig eth0 up
Ifconfig est remplacée par la commande ip dans les dernières versions
d’Unix
• La passerelle par défaut permet de définir l'hôte du réseau local vers
lequel envoyer tous les paquets destinés à des hôtes situés hors du
réseau local  Route par défaut.
• Cette route doit être ajoutée à la table de routage du noyau Linux, avec
la commande route.
• Exemple: la passerelle par défaut a pour adresse IP 192.168.0.1, et peut
être jointe par votre interface eth0
11/11/2023 27
Configuration d’une station
Configuration statique: la passerelle par défaut
# route add default gw 192.168.0.1 dev eth0
• La configuration IP et la route par défaut concernaient le noyau
Linux
• Les serveurs DNS concernent le résolveur: une fonction logicielle qui
permet de traduire les noms de domaines en adresses IP.
• Ce résolveur utilise pour cela les serveurs dont les adresses sont
notées dans le fichier /etc/resolv.conf
• Exemple: Si le serveur DNS de votre fournisseur d'accès, a pour
adresse IPv4 192.0.2.71, il faut éditer le fichier pour qu’il contienne :
11/11/2023 28
Configuration statique d’une station
Configuration statique: le serveur DNS
# nameserver 192.0.2.71
• Dans un réseau IPv4, on peut demander une configuration par DHCP
en utilisant le programme dhclient
11/11/2023 29
Configuration d’une station
# dhclient eth0
Configuration dynamique
• La configuration d’une interface avec ifconfig n’est pas enregistrée sur
le disque.
• elle n’est pas conservée en cas de réinitialisation du système (reboot)
• Pour enregistrer la configuration de manière permanente, if faut créer
cette configuration dans le fichier de configuration:
/etc/network/interfaces
• Pour réinitialiser le réseau après un changement dans les fichiers de
configuration, il faut faire :
• Pour les versions récentes d’Ubuntu, il faut faire
11/11/2023 30
Configuration d’une station
Configuration permanente
$ sudo ip addr flush interface-name
$ sudo systemctl restart networking
# /etc/init.d/networking restart
11/11/2023 31
Configuration d’une station
• Configuration permanente
Configuration permanente: Ethernet statique
• Le fichier /etc/network/interfaces sert à paramétrer l’accès de
votre ordinateur à un réseau. Il contient la configuration des
interfaces réseau :
• eth0, eth1, .. - liaison par câble
• lo - interface loopback (127.0.0.1) autrement appelé le
localhost qui permet par convention de contacter la machine
locale sans sortir de la machine locale
• wlan0, wlan1, .. - interface wifi
# cat /etc/network/interfaces
11/11/2023 32
Configuration d’une station
Configuration permanente: Ethernet statique
# configuration de l'interface lo
(obligatoire)
auto lo
iface lo inet loopback
# configuration de l'interface eth0
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.0.2.71
Quelques explications:
• auto ⇒ Le nom de l’interface à monter automatiquement lors du
démarrage du système
• iface ⇒ Définir le mode (static ou DHCP).
Syntaxe: iface <nom_config> <famille_adresse> <nom_méthode>
• address ⇒ L’adresse IP
• netmask ⇒ Le masque reseau
• broadcast ⇒ Le broadcast
• gateway ⇒ La passerelle
• dns-nameservers ⇒ Le serveur DNS
11/11/2023 33
Configuration d’une station
Configuration permanente: Ethernet statique
• Certains réseaux locaux sont configurés en DHCP (pour Dynamic Host
Configuration Protocol).
• la station n’a pas besoin de connaître son adresse IP pour se connecter,
mais l’addresse IP est fixée directement par le serveur DHCP
• Dans ce cas, le fichier interfaces est nettement simplifié et ne dépend
que de l’interface:
11/11/2023 34
Configuration d’une station
Configuration permanente: Ethernet DHCP
auto lo
iface lo inet loopback
# configuration de l'interface eth0
auto eth0
iface eth0 inet dhcp
• Pour tester si la carte réseau fonctionne, on peut essayer de
communiquer avec une autre machine avec la commande:
• La commande ping envoi un paquet à l'adresse IP puis attend que la
machine réponde. Elle affiche ensuite le temps qu'a pris toute
l'opération, en millisecondes.
11/11/2023 35
Configuration d’une station
Tester le réseau
# ping <adresse ip>
11/11/2023 36
Outils de l’administrateur réseau
Outils de l’administrateur réseau sous linux
Commandes
Fichiers de
configuration
• Le fichier /etc/hosts contient une liste de résolutions de noms
(adresses IP et noms de machine). Par exemple:
• Ce fichier contient une ligne pour l’entrée loopback
• Il doit aussi contenir une ligne indiquant le nom de l’ordinateur et
son adresse IP (utile en cas de défaillance du serveur DNS)
• Ce fichier indique que sup correspond à l'adresse IP 192.168.105.2,
qui sera accessible par cet alias.
11/11/2023 37
Outils de l’administrateur réseau
Fichier /etc/hosts
127.0.0.1 localhost
127.0.0.1 berraho-pc
192.168.105.2 sup
Fichiers de configuration
• le fichier /etc/networks contient les adresses des réseaux.
• Ce fichier est utilisé par la commande route pour donner un nom aux
différents réseaux.
• Chaque entrée est constituée du nom du réseau, suivi de son adresse
IP.
• Cette option permet par exemple d'adresser un réseau sur son nom,
plutôt que sur son adresse.
11/11/2023 38
Outils de l’administrateur réseau
Fichier /etc/networks
localnet 127.0.0.1
foo-net 192.168.1.0
# route add foo-
net
# route add -net
192.168.1.0
Au lieu de
Fichiers de configuration
• Le fichier /etc/host.conf permet de définir le comportement du système
lors de la résolution d'un nom.
• Dans cet exemple, les entrées permettent d'indiquer que la recherche
des noms pour leur résolution doit se faire d'abord localement, puis par
appel aux DNS si la recherche précédente a échoué.
• La deuxième ligne permet de faire en sorte que toutes les adresses
correspondant à une machine soient renvoyées.
• Si l'on avait utilisé l'option multi off, seule la première adresse IP trouvée
aurait été renvoyée.
11/11/2023 39
Outils de l’administrateur réseau
Fichier /etc/host.conf
order hosts,bind
multi on
Fichiers de configuration
• Le fichier /etc/resolv.conf contient les adresses IP des serveurs de noms
(machines chargées de la résolution de noms).
• nameserver indique l’adresse IP du serveur de noms auquel le résolveur
devrait envoyer ses requêtes.
11/11/2023 40
Outils de l’administrateur réseau
Fichier /etc/resolv.conf
Nameserver 192.168.1.1
Nameserver 192.168.1.2
Nameserver 192.168.1.3
Fichiers de configuration
• sans argument, affiche les interfaces réseau actives.
• L’option -a permet d’afficher toutes les interfaces, y compris celles
qui ne sont pas activées.
• L’options up / down permet d’activer ou désactiver interface en
particulier. On peut configurer une interface réseau
(dynamiquement, ne sera plus active après un reboot).
• Remplacée par la commande ip dans les dernières versions d’Unix.
11/11/2023 41
Outils de l’administrateur réseau
Commandes
Commande ifconfig
• Permet de visualiser ou modifier la table du cache arp de l'interface
• Permet de mettre en correspondance des adresses IP et les adresses MAC.
• A chaque nouvelle requête, le cache ARP de l'interface est mis à jour
• L’option -va affiche la table ARP.
• L’option -d nom_machine/@ip supprime l’entrée de la table,
• -s nom_machine adresses_mac ajoute une nouvelle entrée dans la table.
11/11/2023 42
Outils de l’administrateur réseau
Commande arp
Commandes
? (192.168.1.2) at 00:40:33:2D:B5:DD [ether]
on eth0
>Entries: 1 Skipped: 0 Found: 1
# arp –d 192.168.1.2
# arp –s 192.168.1.2 00:40:33:2D:B5:DD
• Le besoin:
o La communication entre machines ne peut s'effectuer qu'à travers
l'interface physique
o Les applicatifs ne connaissent que des adresses IP, comment
établir le lien adresse IP / adresse physique ?
• La solution : ARP
o Mise en place dans TCP/IP d’un protocole de bas niveau appelé
Adress Resolution Protocol (ARP)
o Rôle de ARP : fournir à une machine donnée l'adresse physique
d'une autre machine située sur le même réseau à partir de
l'adresse IP de la machine destinatrice
11/11/2023 43
Outils de l’administrateur réseau
Rappel sur le protocole ARP: Address Resolution Protocol
• La technique:
o Diffusion d'adresse sur le réseau physique
o La machine d'adresse IP émet un message contenant son adresse
physique
o Les machines non concernées ne répondent pas
o Gestion cache pour ne pas effectuer de requête ARP à chaque
émission
11/11/2023 44
Outils de l’administrateur réseau
Rappel sur le protocole ARP: Address Resolution Protocol
• Permet de voir, d’ajouter ou d’enlever les routes se trouvant déclarées
sur votre machine
• Le routage définit le chemin emprunté par les paquets entre son point
de départ et son point d'arrivée.
• Pour indiquer à votre machine où aller trouver les adresses qui ne sont
pas les adresses de votre réseau local, vous devez lui indiquer la
passerelle (ou gateway) vers laquelle elle doit envoyer tous les paquets
• Pour ajouter une route par défaut:
• Pour détruire cette route
11/11/2023 45
Outils de l’administrateur réseau
Commande route
Commandes
# route add default gw 192.168.0.1 dev eth0
# route del default
• Pour afficher la table de routage:
11/11/2023 46
Outils de l’administrateur réseau
Commande route
Commandes
# route -n
• permet de tester la configuration du réseau, visualiser l’état des
connexions, établir des statistiques, notamment pour surveiller les
serveurs
11/11/2023 47
Outils de l’administrateur réseau
Commande netstat (network statistics)
Commandes
# netstat
• Proto : le protocole utilisé. Les classiques TCP et UDP mais également
TCP6 et UDP6 pour les variantes IPV6.
• Recv-Q : Le nombre de Bytes dans la file d’attente de réception. Devrait
toujours être à zéro
• Send-Q : Le nombre de Bytes dans la file d’attente d’envoi. Devrait
toujours être à zéro
• Adresse locale : l’adresse et le port utilisé sur la machine locale
• Adresse distante : l’adresse et le port utilisé par la machine distante
• Etat : LISTEN quand le programme écoute et attend une connexion.
ESTABLISHED lorsque la connexion est établie.
• PID/Program name : Le numéro de processus et le nom du programme
11/11/2023 48
Outils de l’administrateur réseau
Commande netstat (network statistics)
Commandes
Quelques paramètres de la commande netstat:
• -a : Tous les ports
• -t : Tous les ports TCP
• -u : Tous les ports UDP
• -l : Tous les ports en écoute
• -n : Affiche directement les IP. Pas de résolution de nom.
• -p : Affiche le nom du programme et le PID associé
11/11/2023 49
Outils de l’administrateur réseau
Commande netstat (network statistics)
Commandes
• Permet d'afficher le chemin parcouru par un paquet pour arriver à
destination. Cette commande est importante, car elle permet
d'équilibrer la charge d'un réseau, en optimisant les routes.
• On peut utiliser soit l’adresse IP, soit le nom d’hôte.
11/11/2023 50
Outils de l’administrateur réseau
Commande traceroute
Commandes
# traceroute 192.168.1.109
• Permet d’interroger le serveur DNS et de diagnostiquer les
dysfonctionnements dans la résolution de nom.
11/11/2023 51
Outils de l’administrateur réseau
Commande dig
Commandes
# dig google.com
• La commande host interroge les serveurs de noms. Elle peut par
exemple être utilisée pour détecter des dysfonctionnement sur un
réseau (serveurs hors services).
11/11/2023 52
Outils de l’administrateur réseau
Commande host
Commandes
11/11/2023 53
Serveur DHCP
Dynamic Host Configuration Protocol
• Sur les réseaux locaux de grande taille ou sur les réseaux dont les
utilisateurs changent fréquemment, le service DHCP est très
recommandé.
⇒ De nouveaux utilisateurs peuvent se présenter travaillant sur
des ordinateurs portables et nécessitant une connexion.
⇒ D’autres peuvent disposer de nouvelles stations de travail
devant être connectées.
⇒ Plutôt que de faire attribuer des adresses IP par l’administrateur
réseau à chaque station de travail, il est plus efficace que les
adresses IP soient attribuées automatiquement à l’aide du
protocole DHCP.
11/11/2023 54
Dynamic Host Configuration Protocol
Service DHCP
• La Gestion des adresses IP
⇒ Les adresses IP doivent être unique
⇒ Nécessité d’une liste d’ordinateurs avec leurs adresses IP respectives
• La Gestion des principaux paramètres IP
⇒ Masques de sous-réseaux
⇒ Adresses IP du gateway
⇒ Serveurs DNS
11/11/2023 55
Dynamic Host Configuration Protocol
Problèmes de gestion avec IP
• DHCP : Dynamic Host Configuration Protocol
⇒ « Protocole de configuration Dynamique des clients »
• DHCP est une extension du protocole BOOTP qui permet à un
client sans disque dur (terminal X, imprimante, etc.) de démarrer
et de configurer automatiquement TCP/IP.
• Bâti sur un modèle client-serveur utilisant UDP
• Composé de deux parties :
⇒ Un protocole
⇒ Un mécanisme de création d’adresses
11/11/2023 56
Dynamic Host Configuration Protocol
Protocole DHCP
• DHCP permet de:
⇒ Allocation dynamique des adresses IP.
⇒ Utilisation automatique de la plupart des paramètres de réseau.
⇒ Maintenance des adresses IP en cours grâce au concept de « bail
d’adresses IP».
11/11/2023 57
Dynamic Host Configuration Protocol
Protocole DHCP
⇒ Un réseau peut avoir plusieurs serveurs DHCP.
⇒ Le client ne désigne pas un serveur
11/11/2023 58
Dynamic Host Configuration Protocol
Serveur DHCP: schéma classique
• Modèle client-serveur
• Le client :
⇒ Vient de démarrer et réclame sa configuration.
• Le serveur :
⇒ détient la politique d'attribution des configurations IP.
⇒ envoie une configuration donnée pour une durée donnée,
appelé bail à un client donné
11/11/2023 59
Dynamic Host Configuration Protocol
Serveur DHCP: Fonctionnement
• L'obtention d'une adresse se fait en 4 phases :
1) Demande de bail IP par le client.
2) Offre de bail IP par un serveur.
3) Sélection d'une offre par le client.
4) Accusé de réception de bail IP par le serveur.
11/11/2023 60
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
11/11/2023 61
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
• Lorsqu’un périphérique, configuré pour le protocole
DHCP, est mis sous tension ou se connecte au réseau
diffuse une demande d'adresse IP (DhcpDiscover) avec :
⇒ source 0.0.0.0
⇒ destination 255.255.255.255
⇒ Adresse MAC client
• Un client DHCP attend une offre pendant une seconde.
• En cas de non réponse il rediffuse sa demande quatre fois (à des intervalle
de 9, 13 et 16 secondes puis un intervalle aléatoire entre 0 et 1000 ms).
• Après ces quatre tentatives, il renouvelle sa demande toutes les 5 minutes.
11/11/2023 62
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
• Tous les serveurs reçoivent la demande.
• S'ils sont configurés pour répondre, ils diffusent des
offres (DhcpOffer) avec les informations suivantes :
1. L'adresse MAC du client
2. Une adresse IP
3. Un masque de sous-réseau
4. Une durée de bail (durée pendant laquelle
l’IP ne sera pas utilisée par un autre host)
5. Son adresse IP (du serveur)
11/11/2023 63
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
• Le client sélectionne une offre (en général la première)
• Le client annonce par diffusion qu'il a accepté une offre
(DhcpRequest).
• Le message DhcpRequest comporte l'identification du
serveur sélectionné.
• Ce dernier sait que son offre a été retenue ;
• Tous les autres serveurs DHCP retirent leurs offres
11/11/2023 64
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
• Le serveur ainsi sélectionné envoi accusé de
réception au client (DhcpAck).
• Son message contient éventuellement d'autres
informations (serveur DNS, Passerelle, etc.)
11/11/2023 65
Dynamic Host Configuration Protocol
DHCP: Demande d’@ IP
• Utilisation du mode non connecté via
UDP et N° Port 68 pour le client et 67
pour le serveur
11/11/2023 66
Dynamic Host Configuration Protocol
DHCP: Identification de l’application
11/11/2023 67
Dynamic Host Configuration Protocol
DHCP: renouvellement de bail
• L'affectation d'une adresse IP n'est pas permanente, elle est accordée
pour une durée limitée qui est le bail
⇒ Une fois que le client obtient le bail, celui-ci doit être renouvelé
avant son expiration via un autre message DHCPREQUEST.
⇒ Le client doit donc renouveler ce bail
• Deux modes de renouvellement possibles :
1. Automatique (Time triggred)
2. Manuel (utilisateur)
11/11/2023 68
Dynamic Host Configuration Protocol
DHCP: renouvellement de bail
• 1ère demande de renouvellement:
⇒ à 50% de l’utilisation du bail, le client envoie un message
DHCPREQUEST pour le renouvellement de son bail.
⇒ Si elle est accordée, le client continue avec un nouveau bail
et éventuellement de nouveaux paramètres (DhcpAck).
⇒ Si le serveur est absent, le bail reste donc valide pendant
50% de la valeur initiale
11/11/2023 69
Dynamic Host Configuration Protocol
DHCP: renouvellement de bail
• 2ème demande de renouvellement:
⇒ à 87.5% du bail, si le serveur est indisponible, le client envoie un
message DHCPDISCOVER.
⇒ Cette fois la demande est adressée à tous les serveurs (diffusion).
1. Un serveur peut répondre en proposant un nouveau bail
(DhcpAck)
2. Mais peut également répondre avec un message DhcpNack qui
oblige le client à se réinitialiser (reprise de la procédure
d'obtention d'un bail)
11/11/2023 70
Dynamic Host Configuration Protocol
DHCP: renouvellement de bail
• Si le bail expire (ou message DhcpNack):
•
⇒ À 100% du bail : reprise de la procédure, normale, d'obtention
d'un bail
11/11/2023 71
Dynamic Host Configuration Protocol
DHCP: renouvellement de bail
• Renouvellement manuel de bail
• L’utilisateur force manuellement le renouvellement du bail
⇒ dhclient -r: cette commande génère un
DHCPREQUEST
⇒ dhclient: cette commande obtient une nouvelle
adresse
11/11/2023 72
Dynamic Host Configuration Protocol
DHCP: messages
• DHCPDISCOVER: Requête de Localisation des serveurs DHCP
disponibles
• DHCPOFFER : Réponse d’un serveur à un paquet DHCPDISCOVER,
contenant les premiers paramètres DHCP
• DHCPREQUEST: Requête du client pour annoncer qu'il a accepté
une offre ou pour prolonger son bail
• DHCPACK : Réponse du serveur contenant des paramètres
supplémentaires en plus de l'adresse IP du client
• DHCPNAK : Réponse du serveur pour signaler au client que son
bail est expiré ou si le client annonce une mauvaise configuration
réseau
• DHCPDECLINE : le client annonce au serveur que l'adresse est déjà
utilisée
• DHCPRELEASE : le client libère son adresse IP
• DHCPINFORM : le client demande des paramètres locaux de
configuration si il a obtenu une adresse réseau grâce à d'autres
moyens (ex. configuration manuelle)
11/11/2023 73
Dynamic Host Configuration Protocol
DHCP: messages
• Les trames broadcast ne traversent pas les routeurs.
• Sur un réseau segmenté par des routeurs il est donc impossible de
servir tous les segments avec le même serveur DHCP.
1. Il faut donc mettre un serveur DHCP sur chaque segment,
2. Ou utiliser un agent de relais DHCP.
• Un agent de relais DHCP relaye les messages DHCP échangés entre un
client et un serveur DHCP situés sur des sous-réseaux différents.
⇒ Il est généralement installé sur un routeur pour pouvoir diriger
les messages vers le serveur DHCP.
⇒ L'agent doit connaître l'adresse du serveur DHCP mais ne peut
pas être lui même client DHCP.
• Serveur DHCP et agent de relais ont des adresses ip statiques.
• Le dialogue traverse le routeur et se fait en unicast.
11/11/2023 74
Dynamic Host Configuration Protocol
Agent de relais DHCP
11/11/2023 75
Dynamic Host Configuration Protocol
Agent de relais DHCP
1. Le client envoie une trame de broadcast DhcpDiscover (1)
2. l'agent de relais transfère la requête à la liste des serveurs
DHCP spécifiés lors du configuration de l'agent (2)
3. Le serveur retourne à l'agent une adresse (3)
4. L’agent diffuse la réponse sur le réseau ayant envoyé la
requête d'origine (4).
11/11/2023 76
Dynamic Host Configuration Protocol
Service DHCP
• Les adresses attribuées via le DHCP ne sont pas affectées aux hôtes
définitivement.
n
⇒ Si l’hôte est mis hors tension ou retiré du réseau, l’adresse est
retournée au pool pour être réutilisée.
⇒ utile pour les utilisateurs mobiles qui se connectent et se
déconnectent sur le réseau.
⇒ les utilisateurs peuvent librement se déplacer d’un endroit à un
autre et rétablir des connexions réseau.
⇒ L’hôte peut contenir une adresse IP une fois la connexion
matérielle établie, via un réseau local filaire ou sans fil.
11/11/2023 77
Dynamic Host Configuration Protocol
Adressage statique et adressage dynamique
• L’adressage dynamique et l’adressage statique ont chacun leur place
dans la conception des réseaux.
• De nombreux réseaux utilisent à la fois le protocole DHCP et
l’adressage statique.
- Le protocole DHCP est utilisé pour les hôtes à utilisation générale
(par exemple, les périphériques d’utilisateur final)
- Les adresses fixes pour les périphériques réseau :
⇒ les passerelles,
⇒ les commutateurs,
⇒ les serveurs
⇒ les imprimantes
11/11/2023 78
Dynamic Host Configuration Protocol
Configuration d’un serveur DHCP
• Définir une plage d'adresses qui peuvent être louées à des hôtes qui
en font la demande. En général on donne:
⇒ Une adresse de début (la première qui sera attribuée)
⇒ Une adresse de fin (la dernière)
⇒ Une ou plusieurs plages d'adresses à exclure de la location (ceci
permet de faire cohabiter un modèle de configuration IP
dynamique avec un modèle statique)
⇒ Un masque de sous-réseau
• Tous ces éléments sont attribués pour une durée de bail à fixer. Si, au
bout de cette durée, l'hôte ne sollicite pas à nouveau une adresse au
serveur, cette adresse est jugée disponible pour un autre hôte.
11/11/2023 79
Serveur DNS
Domain Name System
11/11/2023 80
DNS: Domain Name System
Service de résolution des noms
• L’Internet est constitué de réseaux (dizaines de milliers)
• Les réseaux sont constitués de sous-réseaux
• Les sous-réseaux sont constitués de machines
• La technologie de base (TCP/IP) permet d’atteindre les machines par
leurs adresses IP.
• Il est pratiquement devenu impossible aux utilisateurs de connaître
les adresses (IP) des machines auxquelles ils veulent accéder.
Pour cette raison, des noms de domaine ont été créés pour
convertir les adresses numériques en noms simples et
explicites.
11/11/2023 81
DNS: Domain Name System
Service de résolution des noms
• Avant d'installer un service quel qu'il soit, il faut s'assurer du bon
fonctionnement de la résolution de noms sur le réseau.
• Chaque ordinateur du réseau contenait un fichier /etc/hosts.
• Problème: À chaque fois que l'on rajoutait une machine sur le
réseau, il fallait mettre à jour ce fichier.
• La solution qui s'est imposée fut la création d'une base de données
distribuée, et ainsi est né le principe de serveur DNS .
Un serveur DNS permet de faire la correspondance entre
un nom canonique FQDN (ex: www.google.fr) et son
adresse IP.
11/11/2023 82
DNS: Domain Name System
Service de résolution des noms
• Protocole applicatif
• DNS est utilisé par d’autres protocoles applicatifs mais est rarement
utilisé directement par l’application.
• modèle client/serveur : un émetteur interroge un serveur de noms
(serveur DNS)
• Port 53/UDP (ou 53/TCP pour les mises à jour)
11/11/2023 83
DNS: Domain Name System
Protocole DNS
• Base de données distribuée et implémentée en hiérarchie sur de
nombreux serveurs de noms.
•
• Le DNS est basé sur un modèle en arborescence similaire à celui des
systèmes de fichiers et de répertoires, avec une gestion décentralisée
des données .
• Composé de trois composantes:
• Un “ espace de nommage”
• Les serveurs rendant l'espace de nommage disponible
• Les resolvers (clients) qui questionnent les serveurs à propos de
l'espace de nommage.
11/11/2023 84
DNS: Domain Name System
Système de noms de domaines
• Pourquoi pas de DNS centralisé? Un seul serveur contiendrait
toutes les correspondances requises par les applications de
l’internet.
⇒ dimension de l’internet : trop de correspondances à gérer,
nombre de requêtes au serveur trop important
⇒ tolérance aux pannes : si le serveur DNS tombe, tout internet
aussi
⇒ trafic impossible à supporter par un seul serveur
⇒ délai de réponse : il faut faire en sorte que la réponse soit la
plus proche possible du demandeur
⇒ problème lié à la maintenance et aux mises à jour perpétuelles
de la base.
11/11/2023 85
DNS: Domain Name System
Système de noms de domaines
11/11/2023 86
DNS: Domain Name System
L’espace de noms de domaine
• Chaque unité de donnée dans la base DNS est indexée par un nom
• Les noms constituent un chemin dans un arbre inversé appelé
l’espace de Noms de domaine
• Organisation similaire à un système de gestion de fichiers
• Chaque nœud est identifié par un nom
• Racine appelée root, identifiée par «.»
• 127 niveaux au maximum
• Base de donnée hiérarchique et distribuée
11/11/2023 87
DNS: Domain Name System
L’espace de noms de domaine
• Client veut l'IP pour www.amazon.com:
⇒ Client demande au serveur racine de trouver le serveur DNS com
⇒ Client demande au serveur DNS com de lui fournir le serveur DNS
amazon.com
⇒ Client demande au serveur DNS amazon.com de lui fournir
l'adresse IP de www.amazon.com
11/11/2023 88
DNS: Domain Name System
Nom de domaine
• Dans un réseau local, les machines peuvent-être identifiées par leurs
seuls noms. Par contre, à l‘échelle d'Internet, ces noms doivent être
concaténés avec le nom du domaine dans lequel elles sont déclarés.
Exemple:
Nom du domaine : afnic.fr
nom local de la machine : www
nom de la machine dans le DNS : www.afnic.fr
nom local de la machine : ftp
nom de la machine dans le DNS : ftp.afnic.fr
11/11/2023 89
DNS: Domain Name System
Nom de domaine
• Un nom de domaine est la séquence de labels depuis le nœud de
l’arbre correspondant jusqu’à la racine
• Deux nœuds fils ne peuvent avoir le même nom ==> unicité d’un
nom de domaine au niveau mondial
fr
ac-grenoble
. (root)
berges
berges.ac-grenoble.fr
• Un domaine est un sous-arbre de l’espace nom de domaine.
11/11/2023 90
DNS: Domain Name System
Domaine
fr
inria
ac-grenoble
berges
Domaine complet
Domaine fr
Domaine ac-grenoble
nœud berges.ac-grenoble.fr
Des nœuds peuvent avoir les
mêmes noms dans des
domaines différents :
srv.peugeot.fr et srv.renault.fr
• Le DNS est organisé sous la forme d’une arborescence inversée, avec
une « racine » dont dépendent les différentes « branches ».
• Au premier niveau de l’arborescence se trouvent les « Top-Level
Domains (TLD)» ou domaines de premier niveau, comme les .fr, .com
etc.
• Au second niveau, nous avons les noms de domaine « classiques »
comme « afnic.fr ».
• Deux types de TLD :
⇒ generic TLD: .com, .org, .gov, .net,. . .
⇒ countries TLD: .fr, .de, .uk,. . .
11/11/2023 91
DNS: Domain Name System
Domaine
11/11/2023 92
DNS: Domain Name System
Domaine
• Le système DNS est entièrement distribué au niveau planétaire ; Le
mécanisme sous-jacent est la délégation de domaine
• A tout domaine est associé une responsabilité administrative.
• Une organisation responsable d’un domaine peut :
• Découper le domaine en sous-domaines
• Déléguer les sous-domaines à d’autres organisations :
⇒ qui deviennent à leur tour responsables du (des) sous-
domaine(s) qui leurs sont délégué(s)
⇒ ces dernières peuvent, à leur tour, déléguer des sous-
domaines des sous-domaines qu’elles gèrent
• Le domaine parent contient alors seulement un pointeur vers le
sous-domaine délégué; Par exemple :
⇒ ac-grenoble.fr est délégué à l’organisation «Académie de
Grenoble»
⇒ L’Académie de Grenoble gère donc les données propres à ce
domaine.
11/11/2023 93
DNS: Domain Name System
Délégation
• Un domain identifie une sous arborescence de l’espace de nommage
(Domain = lieu topologique)
• Une zone contient une base avec l’ensemble des informations
associées à ce nœud (Zone = borne administrative)
• Le système DNS permet de diviser l’espace des noms en zones :
11/11/2023 94
DNS: Domain Name System
Domaine vs zone
⇒ Ces zones stockent des informations
relatives à un ou plusieurs domaines.
⇒ Avant tout, une zone est une base de
données de stockage contenant des
enregistrements RR (Resource Records)
concernant un nom de domaine DNS.
⇒ Si un sous-domaine est créé, il peut
être géré par la zone du domaine
parent ou par une zone qui lui est
propre.
11/11/2023 95
DNS: Domain Name System
Domaine vs zone
• Une zone = une administration centralisée avec au moins un
serveur DNS (généralement 1 primaire et 1 secondaire)
• Une zone doit connaître les adresses des serveurs DNS des zones
subordonnées.
11/11/2023 96
DNS: Domain Name System
Délégation de zone
La délégation permet de déléguer (décentraliser) l’administration
d’une partie de l’espace de nommage de domaine.
La zone .g délègue
l’administration des
zones .g1 et .g2
11/11/2023 97
DNS: Domain Name System
Les serveurs de noms
• Les logiciels qui gèrent les données de l’espace de noms de domaine
sont appelés des serveurs de nom ( domain name servers - DNS)
• Les serveurs de noms enregistrent les données propres à une partie
de l’espace de noms de domaine dans une ZONE.
• Le serveur de noms a autorité administrative sur cette zone.
• Un serveur de nom peut avoir autorité sur plusieurs zone.
• Une zone contient les informations d’un domaine sauf celles qui sont
déléguées.
fr
bc ab
ca
on qb domaine
zone
• A chaque zone, correspond un serveur DNS principal (unique) :
⇒ Il maintient la base de données de la zone dont il a l’autorité
administrative.
⇒ Il a le droit de lecture-écriture sur les données originales de la zone.
⇒ Il sert de point de mise à jour de la zone.
• Serveurs secondaires:
⇒ Ils contiennent une réplique dans son intégralité de la base de
données du serveur principal.
⇒ Les données sont en lecture seule (les modifications sont faites
d'abord sur le serveur principal)
⇒ Ils assurent l’équilibrage de la charge et la tolérance aux pannes.
11/11/2023 98
DNS: Domain Name System
Les serveurs de noms: Serveur primaire et serveur secondaire
11/11/2023 99
DNS: Domain Name System
Serveur autoritaire
• Un serveur de nom peut être primaire pour une (des) zone(s) et
secondaire pour d’autre(s).
• Les «resolvers» sont les processus clients qui contactent les serveurs
de noms.
Fonctionnement du resolver:
⇒ Il contacte un serveur de noms (dont l’ (les) adresse(s) est (sont)
configurées sur la machine exécutant ce resolver),
⇒ Il interprète les réponses,
⇒ Il retourne l’information au logiciel appelant,
⇒ Il gère le cache.
11/11/2023 100
DNS: Domain Name System
Les resolvers
• Les serveurs racine connaissent les
serveurs de nom ayant autorité sur
tous les domaines racines
• Les serveurs racines connaissent au
moins les serveurs de noms
pouvant résoudre le premier niveau
(.com, .edu, .fr, etc.)
• Pierre angulaire du système DNS : si
les serveurs racines ne sont plus
opérationnels, il n’y a plus de
communication sur l’Internet
• multiplicité des serveurs racines
• actuellement jusqu’à 13
éparpillés sur la planète
• chaque serveur racine reçoit
environ 100000 requêtes / heure
11/11/2023 101
DNS: Domain Name System
Les serveurs racine
11/11/2023 102
DNS: Domain Name System
Résolution de noms
• La résolution inverse consiste, elle, à retrouver le nom d'une machine
à partir de son adresse IP.
• Comme pour la résolution de nom, la résolution inverse s'appuie sur
un système en arborescence qui part du domaine particulier in-
addr.arpa
⇒ Chaque octet de l'adresse IP correspond à un niveau ; pour
chaque adresse, on crée un nom de domaine, sous-domaine de
in-addr.arpa, qu'on obtient en écrivant l'adresse IP ‘’à l‘inverse"
(en commençant par le dernier octet). Ainsi, pour l'adresse IP
192.134.4.9, on obtient le nom de domaine 9.4.134.192.in-
addr.arpa.
⇒ Puis la procédure est le même que celle de la résolution
classique.
11/11/2023 103
DNS: Domain Name System
Résolution inverse
11/11/2023 104
DNS: Domain Name System
Résolution inverse
• Le resolver permet de lancer des requêtes DNS pour la résolution de
nom. Il existe 2 modes d'interrogation pour un resolver :
Le mode récursif : le client (resolver) envoie une requête au serveur
DNS ; ce dernier renvoie une réponse complète au client qui est soit
la correspondance recherchée soit un message d'erreur.
Le mode non récursif ou itératif : le client envoie une requête au
serveur DNS ; ce dernier renvoie soit la réponse complète (s'il est
autoritaire pour la zone concernée) soit une réponse partielle
(adresse d'un autre serveur de noms qui va permettre au client
d'avancer dans le processus de résolution).
11/11/2023 105
DNS: Domain Name System
Résolution d’une requête
En général, le mode récursif est utilisé par les applications clientes
et le mode itératif par les revolvers des serveurs de noms.
• Requête récursive:
⇒ la machine qui demande la résolution de nom ;
⇒ contacte un serveur DNS et attend que ce dernier lui retourne la
réponse ;
⇒ si il en a besoin, le serveur demande à un autre serveur ;
⇒ ...
• Requête itérative:
⇒ le serveur de noms contacté fournit en réponse le nom d’un
autre serveur DNS à contacter pour avancer dans la résolution ;
⇒”je ne connais pas ce nom mais demande à ce serveur”.
11/11/2023 106
DNS: Domain Name System
Résolution d’une requête
• Idée générale des caches :
⇒ réduire le temps de réponse (diminue le nombre de messages
nécessaires à la résolution)
⇒ réduire la charge des serveurs (diminue le nombre de serveurs à
contacter)
• Le serveur de noms (quelconque) stocke dans son cache les
informations récentes
• A la prochaine demande, il peut répondre directement
• Attention:
⇒ les données expirent du cache après un certain temps TTL
(environ 2 jours)
⇒ un serveur qui mémorise dans son cache un enregistrement DNS
n’a pas autorité dessus =⇒ spécifie ”no authoritative” dans la
réponse
11/11/2023 107
DNS: Domain Name System
Serveur cache
• BIND, pour Berkeley Internet Name Daemon, est une implémentation
de résolution de noms d'hôtes sur un réseau d'adresses IP (et vice
versa).
• Le serveur de noms BIND fournit ses services de résolution de noms à
l'aide du démon /usr/sbin/named.
• BIND contient également un utilitaire d'administration appelé
/usr/sbin/rndc.
• BIND stocke ses fichiers de configuration aux emplacements suivants :
• le fichier /etc/named.conf — Le fichier de configuration du démon
named.
• le répertoire /var/named/ — Le répertoire de travail de named
qui stocke les fichiers de zone, de statistiques et les fichiers de
cache.
11/11/2023 108
DNS: Domain Name System
BIND en tant que serveur de noms
• Le fichier principal de configuration de BIND est /etc/bind/named.conf
• Le fichier named.conf est une suite de déclarations utilisant des
options imbriquées qui sont placées entre accolades, { }.
• Lorsqu'ils modifient le fichier named.conf, les administrateurs doivent
veillez tout particulièrement à ne pas faire de fautes de syntaxe car des
erreurs mineures en apparence empêcheront le démarrage du service
named
11/11/2023 109
DNS: Domain Name System
Fichier /etc/named.conf
11/11/2023 110
DNS: Domain Name System
Types courants de déclarations
Déclaration acl
Liste de contrôle d'accès, définit des groupes d'hôtes qui peuvent ensuite
être autorisés ou non à accéder au serveur de noms.
Une déclaration options permet de définir la manière dont elles seront
traitées par le serveur de noms
11/11/2023 111
DNS: Domain Name System
Types courants de déclarations
Déclaration include
Permet à des fichiers d'être inclus dans un fichier named.conf. Ce
faisant, des données de configurations critiques (telles que les clés,
keys) peuvent être placées dans un fichier séparé doté de permissions
restrictives.
Dans cette déclaration, <file-name> est remplacé par le chemin d'accès
absolu vers un fichier .
11/11/2023 112
DNS: Domain Name System
Types courants de déclarations
Déclaration zone
Définit les caractéristiques d'une zone tels que l'emplacement de ses
fichiers de configuration et les options spécifiques à la zone.
<zone-name> correspond au nom de la zone, <zone-class> à la classe
optionnelle de la zone et <zone-options> représente une liste des
options caractérisant la zone
11/11/2023 113
DNS: Domain Name System
Types courants de déclarations
Ici, la zone est identifiée en tant que example.com, le type est défini comme master et
le service named a comme instruction de lire le fichier /var/named/example.com.zone.
Elle indique à named de refuser la mise à jour à tout autre hôte.
Ici, zone configure named sur le serveur esclave de manière à ce qu'il cherche le
serveur maître à l'adresse IP 192.168.0.1 pour y trouver les informations concernant
la zone appelée example.com. Les informations que le serveur esclave reçoit du
serveur maître sont enregistrées dans le fichier /var/named/example.com.zone.
11/11/2023 114
DNS: Domain Name System
Balises de commentaire
• // — Lorsque ce symbole est placé en début de ligne, cette dernière
n'est pas prise en compte par named.
• # — Lorsque ce symbole est placé en début de ligne, cette dernière
n'est pas prise en compte par named.
• /* et */ — Lorsque du texte est placé entre ces symboles, le bloc de
texte en question n'est pas pris en compte par named.
• Contiennent des informations sur un espace de nom particulier et sont
stockés dans le répertoire de travail /var/named/.
• Chaque fichier de zone est nommé selon les données d'options
de file dans la déclaration zone.
• Chaque fichier de zone peut contenir des directives et
des enregistrements de ressources.
• Les directives donnent au serveur de noms l'instruction d'effectuer une
certaine tâche ou d'appliquer des paramètres spéciaux à la zone
• Les enregistrements de ressources définissent les paramètres de la
zone, assignant des identités aux hôtes individuels.
• Les directives sont facultatives, mais les enregistrements de
ressources sont requis pour fournir un service de nom à une zone.
11/11/2023 115
DNS: Domain Name System
Fichiers de zone
• Les directives sont identifiées par le symbole dollar ($) suivit du nom de
la directive
• Les directives les plus couramment utilisées sont les suivantes :
• $INCLUDE — Configure named de façon à ce qu'il inclue un autre
fichier de zone dans ce fichier de zone à l'endroit où la directive
apparaît
• $ORIGIN — Attache le nom de domaine à des enregistrements non-
qualifiés, comme ceux qui spécifient seulement l'hôte et rien de
plus
• $TTL — Règle la valeur par défaut de Time to Live (TTL) (ou temps
de vie) pour la zone. Cette valeur exprimée en secondes,
correspond à la durée pendant laquelle un enregistrement de
ressources de zone est valide. Chaque enregistrement de
ressources peut contenir sa propre valeur TTL, qui remplace alors
cette directive
11/11/2023 116
DNS: Domain Name System
Directives des fichiers de zone
• RR (Ressource Record), L'enregistrement de ressource peut être
considéré comme l'unité de donnée de base du DNS. Il donne
certaines caractéristiques d'un nom de domaine telles qu'une
adresse IP d'un serveur ou d'une machine du domaine, un alias pour
une machine, etc...
• Un enregistrement de ressource est composé de cinq champs :
11/11/2023 117
DNS: Domain Name System
L’enregistrement de ressource
• TTL (Time To Live) : La durée de vie est le temps pendant lequel la
valeur d'un RR dans un cache est considérée comme valide ;
• Record Class : La classe d'enregistrement définit le schéma de base
sur lequel est fondé le système d'enregistrements.
• Record Type : Donne le type d'un enregistrement (adresse IP, alias,
nom de domaine, etc...) ;
• SOA (Start Of Authority) : L'origine de l'autorité spécifie la zone pour
laquelle le serveur est autoritaire ;
• NS (Name Server) : NS est un type d'enregistrement qui spécifie le
serveur autoritaire pour la zone considérée ;
11/11/2023 118
DNS: Domain Name System
L’enregistrement de ressource
• A (Address) : Permet la mise en correspondance entre un FQDN
et une adresse IP;
• CNAME (Canonical Name) : Le type d'enregistrement nom
canonique donne un alias pour une machine donnée ;
• MX (Mail eXchanger) : Ce type d'enregistrement spécifie le relais
de messagerie pour la zone considéré ;
• PTR (Pointer) : Le type d'enregistrement "Pointeur" est utilisé
pour la résolution inverse pour la mise en correspondance entre
une adresse IP et un nom de domaine.
11/11/2023 119
DNS: Domain Name System
L’enregistrement de ressource
• Un fichier de zone de résolution de nom inverse est utilisé pour
traduire une adresse IP dans un espace de nom particulier en un FQDN.
Il ressemble beaucoup à un fichier de zone standard, sauf que les
enregistrements de ressources PTR servent à lier les adresses IP au
nom d'un domaine pleinement qualifié.
11/11/2023 120
DNS: Domain Name System
Fichiers de résolution de noms inverse
11/11/2023 121
Routage dans TCP/TP
• Pour échanger des informations entre les utilisateurs de plusieurs
réseaux locaux, les entités intermédiaires jouent un rôle capital.
• Contiennent les moyens nécessaires à l’acheminement des
informations entre deux stations quelconques dans le réseaux.
• Moyens (selon le modèle OSI) ∈ couche 3 : la couche réseaux.
11/11/2023 122
Routage
Introduction
• Routage= Processus par lequel un élément (courrier, appels
téléphoniques, paquets IP, …) va être acheminé d’un endroit à un
autre.
• Un élément faisant du routage doit connaître :
‒ La destination,
‒ De quelle source il peut apprendre les chemins d’accès à la
destination voulue,
‒ Les itinéraires possibles pour atteindre la destination,
‒ Le(s) meilleur(s) itinéraire(s) pour atteindre la destination,
‒ Un moyen d’actualiser les itinéraires.
11/11/2023 123
Routage
Définition
• Objectif: Acheminer des datagrammes IP d’une machine source A
vers une machine destination B.
• Problématique: Comment atteindre la machine B en connaissant
son adresse IP?
11/11/2023 124
Routage
Problématique
A B
Nécessité d’identifier toute les machines intermédiaires
11/11/2023 125
Routage
Problématique
11/11/2023 126
Routage
Problématique
11/11/2023 127
Routage
Problématique
11/11/2023 128
Routage
Problématique
11/11/2023 129
Routage
Problématique
11/11/2023 130
Routage
Problématique
11/11/2023 131
Routage
Problématique
• Le routage permet de faire communiquer plusieurs sous-réseaux.
• Une passerelle (en anglais gateway) assure la communication entre
les différents sous-réseaux.
• Une route définie sur une station est un chemin que doivent prendre
les paquets d’un certain sous-réseau vers une destination.
11/11/2023 132
Routage
Principe de base
11/11/2023 133
Routage
Passerelle par défaut
• Routeur = passerelle avec matériel et logiciel dédiés
11/11/2023 134
Routage
Routeur
Un routeur est un matériel réseau spécifique, conçu spécialement
pour le routage. Faire un routeur avec un PC à plusieurs cartes est
possible.
Définition:
• Processus de choix des chemins par lesquels les paquets sont
transmis à la machine destinataire
• Processus basé sur une table de routage IP routing table contenant les
informations relatives aux différentes destination possibles et à la
façon de les atteindre.
⇒ Exemple : netstat -r (sous UNIX)
Principe de base :
• L’émetteur ne connaît pas la route complète mais l’adresse du
prochain site IP qui le rapprochera de la destination (prochain saut)
• Simplicité des tables de routage
11/11/2023 135
Routage
Principe de base
11/11/2023 136
Routage
Fonction de routage
• Objectif = Déterminer le meilleur chemin pour atteindre la
destination
• Pour se faire on utilise:
‒ Les informations d’un protocole routé
‒ La table de routage correspondante: Détermination du
meilleur chemin
‒ Les Métriques: Mesure de qualité pour les chemins
Un protocole routé ou routable: comment les information sont
organisées pour être transportées sur le réseau. Les protocoles routés
transportent les données sur un réseau. (par exemple: IP)
Un protocole de routage: comment est réalisé l’acheminement des
paquets. (RIP,OSPF, BGP, …)
11/11/2023 137
Routage
0 24
8 16 31
Type de service Longueur totale
Identification Offset fragment
Adresse IP Source
Adresse IP Destination
Options IP (éventuellement)
4
VERS HLEN
19
Flags
Durée de vie Protocole Somme de contrôle Header
Padding
Données
. . .
Exemple de protocole routé: IP
11/11/2023 138
Routage
Processus de transmission
• Détermination du réseau de destination
⇒ Un équipement sur un réseau, peut atteindre directement les
machines sur le même segment sans routage (ARP), (Réseau Local)
⇒ Ne peut pas atteindre les équipements sur un autre réseau (ou
sous-réseau) sans un intermédiaire. (Réseau distant)
• Comment savoir?
⇒ IP source AND masque de SR local IP SR source
⇒ IP de destination AND masque de SR local  IP SR destination
• IP réseau locale = IP réseau de destination
⇒ Destination dans le même réseau
⇒ Transmission directe
• IP réseau locale ≠ IP réseau de destination
⇒ Destination dans un autre réseau
⇒ Transfert à la passerelle par défaut
11/11/2023 139
Routage
Table de routage
• Les informations de routage sont mémorisées dans la table de
routage des équipements (routeurs).
• Cette table doit être périodiquement mise à jour
• Manuellement : routage STATIQUE
• Automatiquement : routage DYNAMIQUE
• Le routage s’effectue sur deux opérations:
• La sélection de la meilleure voie,
• La commutation du paquet sur l ’interface appropriée.
11/11/2023 140
Routage
Table de routage sous linux
• La consultation/modification de la table de routage sous linux peut
être faite avec la commande route.
• Chaque machine possède une table de routage qui lui indique quoi
faire des paquets.
11/11/2023 141
Routage
Champs d’une table de routage sous linux
L‘adresse de destination, peut contenir :
⇒ Une adresse machine
⇒ Une adresse de sous-réseau
⇒ Une adresse de réseau
⇒ Une passerelle par défaut
Passerelle: indique ou le paquet
doit être envoyé. Peut être :
⇒ une carte réseau locale
⇒ un Routeur du sous-réseau
local
11/11/2023 142
Routage
Champs d’une table de routage sous linux
Genmask: définit la portion
d‘adresse réseau qui correspond
à l‘itinéraire.
Indic (Flags) :
⇒ U (Up) : la route est active
⇒ H (Host) : la route conduit à un hôte
⇒G (Gateway): la route passe par une
passerelle (voisine)
11/11/2023 143
Routage
Champs d’une table de routage sous linux
Comment le routeur choisi un itinéraire s’il
apprend la même route par des routeurs
voisins utilisant le même protocole de
routage?
11/11/2023 144
Routage
Champs d’une table de routage sous linux
Metric: correspond au nombre de
nœuds à franchir pour atteindre la
destination. Permet de déterminer le
meilleur itinéraire.
Ref: spécifie le nombre de référe-
nces à cette route (non utilisé par
le noyau Linux)
11/11/2023 145
Métrique: utilisée par les protocoles de routage pour sélectionner le
meilleur chemin:
⇒ Si un routeur apprend deux routes différentes pour le même
réseau à partir du même protocole de routage, il doit décider
quelle route est la meilleure.
⇒ Petite métrique = Route meilleure
Routage
Champs d’une table de routage sous linux
11/11/2023 146
Routage
Champs d’une table de routage sous linux
• Exemple de choix d’une route en fonction de la métrique:
‒ RIP a été configuré sur tous les routeurs.
‒ Le routeur 1 a deux chemins pour atteindre le sous-réseau 10.0.0.0/24: Une
route passe par le routeur 2, l’autre passe par le routeur 3 puis par le routeur
4.
‒ le RIP utilise le nombre de sauts comme métrique le chemin d’accès via le
routeur 2 est choisi car le sous-réseau n’est distant que d’un seul
‒ L’autre chemin aura une métrique supérieure de 2, car le sous-réseau est à
deux routeurs.
11/11/2023 147
Routage
Champs d’une table de routage sous linux
Use: comptabilise le nombre de
recherches associées à cette ro
-ute
Iface: l‘adresse de la carte réseau
qui émet le paquet.
11/11/2023 148
Routage
Table de routage sous linux
11/11/2023 149
Routage
Route par défaut
# route add default gw 192.168.3.131 dev eth0
• Appelé aussi réseau candidat par défaut
• Utilisée pour atteindre une destination inconnue: rediriger
l’inconnu vers un prochain saut définit
• utilisée si le prochain saut ne figure pas explicitement dans la table
de routage.
• Facilite la circulation des données sur un réseau de grande taille,
• Exemple : LAN vers Internet
• Pour ajouter une route par défaut dans sa table de routage, on
utilise la commande route :
11/11/2023 150
Routage
Route vers un poste
11/11/2023 151
Routage
Route vers un réseau
11/11/2023 152
Routage
Commandes de routage sous linux
11/11/2023 153
Routage
Analyse de route
• Permet d'afficher le chemin parcouru par un paquet pour arriver à
destination. Cette commande est importante, car elle permet
d'équilibrer la charge d'un réseau, en optimisant les routes.
• On peut utiliser soit l’adresse IP, soit le nom d’hôte.
Commande traceroute
# traceroute 192.168.1.109
11/11/2023 154
Routage
Configurer un poste Linux comme routeur
• Par défaut, un poste Linux ne délivre que les paquets qui
proviennent du poste ou qui lui sont destinés.
• Les autres paquets sont ignorés et donc le poste ne peut faire
fonction de routeur.
• Pour devenir routeur, le poste Linux doit relayer (retransmettre) les
paquets qui ne lui sont pas destinés.
Il faut modifier l’option ip_forward du noyau
11/11/2023 155
Routage
Activation/désactivation du routage
• Activer le routage:
# echo "1" > /proc/sys/net/ipv4/ip_forward
// OU
# sysctl -n -w net.ipv4.ip_forward=1
• Désactiver le routage:
# echo "0" > /proc/sys/net/ipv4/ip_forward //
OU
# sysctl -n -w net.ipv4.ip_forward=0
11/11/2023 156
Accès aux fichiers distants
• Dans beaucoup d’organisations, les utilisateurs n’ont pas de machine
attribuée : ils peuvent se connecter sur n’importe quelle machine.
• Problèmes à résoudre:
⇒ Il faut que l’utilisateur puisse retrouver ses données quelle que
soit machine sur laquelle il se connecte.
⇒ Il faut que son identifiant et son mot de passe soient reconnus
sur toutes les machines.
11/11/2023 157
Accès aux fichiers distants
Problèmes liés à la mobilité des utilisateurs
Une solution: centraliser les données.
11/11/2023 158
Accès aux fichiers distants
Idée générale
L’utilisateur doit pourvoir travailler sur n’importe quel poste
de travail !
• Les données (les fichiers, par exemple) sont stockées sur un serveur
(unique).
• Quand un utilisateur lit (ou modifie) ces données, elles ne sont pas
lues (ou modifiées) en local (sur sa machine) mais directement sur le
serveur.
• Principe de transparence :
⇒ L’utilisateur ne doit pas se rendre compte que les données
qu’il utilise sont stockées sur une autre machine.
⇒ Il utilise les données stockées sur le serveur comme toute
autre donnée stockée en local.
11/11/2023 159
Accès aux fichiers distants
La centralisation des données
Des échanges sur le réseau sont nécessaires à chaque
lecture/modification.
• C’est un ensemble client/serveur qui permet pour une machine de
mettre à disposition ses fichiers sur le réseau.
• L’accès aux fichiers distants est complètement transparent pour
l’utilisateur:
⇒ tout se passe comme si le système de fichiers distant était local
(disques réseaux)
⇒ l’utilisateur peut éditer le fichier, le modifier, . . . ; les modifications
seront répercutées sur le système de fichiers distant ;
⇒ les utilisateurs de la machine cliente peuvent utiliser n’importe quel
logiciel pour manipuler les fichiers distribués.
• Les deux principaux protocoles :
⇒ NFS: Network File System (Unix/Sun-RPC)
⇒ SMB: Server Message Block (issu du monde Microsoft)
11/11/2023 160
Accès aux fichiers distants
Principe
• Un système de fichiers réseau (NFS: Network File System), permet
aux hôtes distants de monter des systèmes de fichiers sur un réseau
et de les utiliser exactement comme des systèmes de fichiers locaux.
• Ceci permet aux administrateurs système de stocker des ressources
sur des serveurs centralisés sur le réseau.
• Protocole (couche Application) permettant de rendre transparent
l’utilisation de fichiers répartis sur différentes machines, via un
réseau.
11/11/2023 161
Accès aux fichiers distants
NFS: Network File System
• Protocole de partage de fichiers en réseau développé par Sun
• Basé sur l'utilisation des RPC (Remote Procedure Calls).
• Un serveur NFS:
⇒ exporte une arborescence qui est tout ou partie d'un disque logique
⇒ à une population de machines qui peuvent monter cette arborescence.
⇒ avec des droits et restrictions associés à ce montage.
• Un client NFS:
⇒ Monte les répertoires exportés par un serveur,
⇒ Traduit les opérations sur fichiers en appel de procédure NFS
• NFS v2 implémenté sur UDP.
• NFS V3 implémenté sur TCP.
• NFS V4 utilise l'authentification des utilisateurs basée sur Kerberos.
11/11/2023 162
Accès aux fichiers distants
Protocole NFS
NFS - Postes de travail sans disque
11/11/2023 163
Accès aux fichiers distants
Protocole NFS
NFS- Plusieurs postes de travail pour un même utilisateur...
11/11/2023 164
Accès aux fichiers distants
Protocole NFS
NFS - Plusieurs postes de travail pour un même utilisateur... vue
logique
11/11/2023 165
Accès aux fichiers distants
Protocole NFS
11/11/2023 166
Accès aux fichiers distants
NFS: client-serveur
• le client:
⇒ monte via le réseau les systèmes de fichiers dont elle a accès
⇒ adresse ses requêtes au serveur (lecture-écriture)
• le serveur:
⇒ donne les droits d’accès
⇒ répond aux requêtes des clients
• Sur la machine serveur, l’administrateur du réseau doit préciser
les répertoires qui pourront être accédés à distance par les
clients.
⇒ On dit que ces répertoires sont exportés.
• Sur la machine cliente, l’utilisateur doit, pour accéder à un
répertoire exporté, associer un répertoire local au répertoire
exporté.
⇒ On dit que le répertoire exporté a été monté sur le
répertoire local qui est le point de montage.
11/11/2023 167
Accès aux fichiers distants
NFS: client-serveur
• Le répertoire /utilisateurs/max est exporté par le serveur NFS.
• Le client a monté ce répertoire sur le point /home/max.
1. L’utilisateur exécute la commande cat /home/max/fichier.txt.
2. Le client envoie la requête “récupérer /fichier.txt” sur le répertoire
exporté /utilisateurs/max.
3. Le serveur NFS consulte le fichier /utilisateurs/max/fichier.txt.
4. Le serveur NFS envoie le contenu de ce fichier au client.
11/11/2023 168
Accès aux fichiers distants
NFS: Exemple
11/11/2023 169
Accès aux fichiers distants
NFS: principe de fonctionnement
• côté serveur:
⇒ Le fichier “/etc/exports” contient les informations sur les systèmes
exportés
⇒ la commande exportfs active l’exportation
⇒ le fichier “/etc/xtab” contient la liste actualisée
⇒ lancement du démon rpc.mountd pour répondre aux requêtes de
montage ( /var/state/nfs/rmtab).
⇒ Lancement du démon nfsd pour répondre aux accès en lecture-
écriture
• côté client:
⇒ requête de montage avec la commande mount <= rpc.mountd
⇒ gestion des fichiers actifs par le client “/etc/mtab”
⇒ requête d’accès lecture-écriture
11/11/2023 170
Accès aux fichiers distants
NFS: principe de fonctionnement
11/11/2023 171
Accès aux fichiers distants
NFS: principe de fonctionnement
• Sous Linux, le partage de fichiers peut être mis en œuvre grâce à
SAMBA, NFS et AppleTalk.
• SAMBA permet un partage entre machines Linux/Unix et machines
Windows
• SAMBA: service de partage de ressources sous UNIX pour les
machines sous Windows:
⇒ Une station Windows est capable d'accéder à des répertoires et
des fichiers se trouvant sur une machine Linux
• Début en 1991 (Andrew Tridgell, Australie)
• Architecture client/serveur
• Basé sur le protocole SMB: Server Message Block
11/11/2023 172
Accès aux fichiers distants
Serveur SAMBA
Serveur Samba: serveur de fichiers et de services classiques
• Partage de fichiers et de répertoires
• Partage d’imprimantes
• Prise en compte des comptes utilisateurs
• Gestion des permissions d’accès
• Exécution de scripts de connexion
11/11/2023 173
Accès aux fichiers distants
Serveur SAMBA
• Protocole de Microsoft et Intel permettant le partage de
ressources (disques, imprimantes. . .) à travers un réseau (1987). Il
a connu plusieurs évolutions (et différents noms SMB, CIFS et
SMB2)
11/11/2023 174
Accès aux fichiers distants
Protocole SMB: Server Message Block
• On peut se connecter à un répertoire
partagé par un serveur distant.
• On peut lui attribuer une lettre
(le monter ?)
• L’utilisateur doit s’identifier
auprès du serveur.
• Protocole de Microsoft et Intel permettant le partage de ressources
(disques, imprimantes, . . . ) à travers un réseau (1987)
• SMB est prévu pour être utilisé au dessus de l’interface NetBIOS
⇒ Utilisation des noms NetBIOS (15 caractères + 1 pour le type)
⇒ Utilisation du mécanisme de datagramme de NetBIOS par
broadcast comme service de nommage (nom → MAC, pas
d’adresse de niveau 3)
11/11/2023 175
Accès aux fichiers distants
Protocole SMB: Server Message Block
11/11/2023 176
• Permet d’identifier les éléments du réseau (et donc permet le
partage de fichiers, imprimantes, …)
• Equivalent au DNS pour Internet
• Ce n’est pas un protocole au sens OSI, c’est une méthode pour
nommer des machines
• Tous les réseaux Microsoft sont basés dessus
• Permet de nommer des machines, des groupes de travail, des
Domaines de faire fonctionner le voisinage réseau
• Un nom NetBIOS a 15 caractères maximum +1
⇒ Ce peut être le nom de la machine Windows (accessible via le
voisinage réseau)
⇒ Ou le nom du groupe de travail
• Le 16ème caractère indique dans quel cas on est et aussi la fonction
de la machine (standard ou contrôleur)
Accès aux fichiers distants
NetBios
• Ressources (systèmes de fichiers imprimantes, etc.) offertes par un
serveur à des clients Windows
• Connexion : utilisation d’un compte créé par root
⇒ Authentification par mot de passe
11/11/2023 177
Accès aux fichiers distants
SAMBA: Principe de fonctionnement
• La partie serveur de SaMBa est gérée par des programmes :
⇒ smbd : gestion du service
⇒ nmbd : résolution des noms NetBios
11/11/2023 178
Accès aux fichiers distants
SAMBA: Le serveur
• Côté client, le protocole SMB nécessite l'installation
préalable des protocoles NetBIOS et TCP/IP. Ce dernier est
indispensable car c’est le seul protocole réseau reconnu.
11/11/2023 179
Accès aux fichiers distants
SAMBA: Les clients
11/11/2023 180
Transfert de fichiers
Protocole FTP
• Système de transfert de fichiers :
⇒ Transmettre un fichier de manière efficace et fiable, entre un
client et un serveur
• Transfert dans le sens :
⇒ Client => serveur, ou serveur => client
⇒ Entre deux serveurs gérés par le client
• Les systèmes de fichiers (du client et du serveur) sont:
⇒ gérés localement et indépendamment
• Le système de nommage de fichiers:
⇒ Le nom d'un fichier est une chaine de caractères
⇒ Qui respecte le système de nommage de fichiers local
11/11/2023 181
Transfert de fichiers
Système de transfert de fichiers
• File Transfer Protocol (protocole de transfert de fichiers), ou FTP:
⇒ un protocole de communication destiné à l'échange informatique
de fichiers sur un réseau TCP/IP.
• Il permet, depuis un ordinateur:
⇒ de copier des fichiers vers un autre ordinateur du réseau,
⇒ d'administrer un site web
⇒ ou encore de supprimer ou de modifier des fichiers sur cet
ordinateur.
• La variante de FTP protégée par SSL s'appelle FTPS.
11/11/2023 182
Transfert de fichiers
Protocole FTP
• FTP obéit à un modèle client/serveur:
• le client, envoie des requêtes
• Le serveur réagit à ces requêtes
• En pratique, le serveur est un ordinateur sur lequel fonctionne un
logiciel lui-même appelé serveur FTP, qui rend publique une
arborescence de fichiers similaire à un système de fichiers Unix.
11/11/2023 183
Transfert de fichiers
FTP: Client/serveur
• Le protocole utilise deux types de connexions TCP :
⇒ Une connexion de contrôle initialisée par le client, vers le
serveur (port 21 en général), pour transmettre les commandes
de fichiers (transfert, suppression de fichiers, renommage,
liste des fichiers…)
⇒ Une connexion de données initialisée par le client ou le serveur
pour transférer les données requises (contenu des fichiers,
liste de fichiers)
11/11/2023 184
Transfert de fichiers
FTP: Types de connexion
• Utilisation de 2 ports de communication:
⇒ 20 : Port de données
⇒ 21 : Port de contrôle
11/11/2023 185
Transfert de fichiers
FTP: Numéros de ports
• Une session FTP se déroule en quatre étapes:
⇒ Authentification de l'utilisateur
⇒ Etablissement du canal de contrôle
⇒ Etablissement du canal de données
⇒ Fermeture de la connexion
11/11/2023 186
Transfert de fichiers
Session FTP
• FTP peut s'utiliser de deux façons différentes :
⇒ Mode actif
⇒ Mode passif
11/11/2023 187
Transfert de fichiers
FTP: Modes de fonctionnement
• Dans un premier temps, le client établit une première session TCP,
depuis un port aléatoire du client, vers le port 21 (TCP) du serveur
formant ainsi le control channel.
• Une fois la session établie et l'authentification FTP acceptée, le serveur
établit une session TCP, depuis son port 20 (FTP-DATA), vers un
port défini par le client, formant ainsi le data channel.
11/11/2023 188
Transfert de fichiers
FTP: Mode actif
11/11/2023 189
Transfert de fichiers
FTP: Mode actif
3. Le Serveur démarre une nouvelle connexion vers le client sur le port
spécifié par le Client, avec en port source le port 20.
4. Les données transiteront ensuite par cette connexion.
1. Le client contacte
le serveur sur le
port 21 depuis un
port aléatoire >
1024.
2. Le client envoie la
commande PORT
qui va spécifier au
serveur un
numéro de port a
contacter
• Dans un premier temps, le client établit une première session TCP,
depuis un port aléatoire du client, vers le port 21 (TCP) du serveur
formant ainsi le control channel.
• Une fois la session établie et l'authentification FTP acceptée, le client
demande au serveur de se mettre en attente de session TCP grâce à
la commande PASV, le serveur accepte et indique quel port il met à la
disposition du client,
• le client établit une seconde session TCP sur ce port ("data channel").
11/11/2023 190
Transfert de fichiers
FTP: Mode passif
1. Le client contacte le
serveur sur le port
21 depuis un port
aléatoire > 1024.
2. Le client envoie la
commande PASV
pour signifier au
serveur qu’il souhaite
une connexion dite
passive.
11/11/2023 191
Transfert de fichiers
FTP: Mode passif
3. Le serveur acquitte la demande du client et lui répond avec le port sur
lequel le joindre.
4. Le client démarre une nouvelle connexion vers le serveur sur le port
spécifié, avec en port source un nouveau port aléatoire > 1024. le client
établit une seconde session TCP sur ce port .
• En mode actif, c'est le client qui décide sur quel port doivent entrer
les données. Il définit ce port.
• Le serveur initie le transfert. Si le client se trouve derrière un pare-
feu, les données seront bloquées, vu qu'il n'est pas possible de
connaître le port qui devrait être translaté ou ouvert.
• En mode passif, c'est le serveur qui définit le port par lequel il envoie
les données.
• C'est le client qui initie le transfert. Il n'y a donc plus de problème au
niveau du client. Sur le serveur, il est possible de spécifier une plage
de ports de données et donc d'ouvrir cette plage sur le pare-feu.
11/11/2023 192
Transfert de fichiers
FTP: Mode actif vs mode passif
• vsftpd est un serveur FTP pour les systèmes d'exploitation de type
UNIX.
• L'acronyme vsftpd signifie "Very Secure FTP Daemon«
• VsFTPd est un serveur FTP conçu avec la problématique d'une
sécurité maximale.
• Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.),
aucune faille de sécurité n'a jamais été décelée dans VsFTPd.
• Ce serveur est notamment utilisé à grande échelle par des entreprises
11/11/2023 193
Transfert de fichiers
Serveur FTP: Vsftpd
La haute sécurité a été une de principales exigences de vsftpd:
• vsftpd fonctionne en mode chroot. Cela signifie que le
programme (ici vsftpd) s'exécute dans un nouveau répertoire
racine (/) et ne peut donc pas accéder aux autres programmes
et fichiers en dehors de ce répertoire.
• Il est en quelque sorte « emprisonné » dans cet
environnement. Si un attaquant potentiel compromettait le
serveur FTP, il serait isolé du reste du système et limiterait les
risques de dégâts.
11/11/2023 194
Transfert de fichiers
Serveur FTP: Vsftpd
Vsftpd possède de nombreuses caractéristiques qui manquent sur
les autres serveurs FTP, comme:
• très haut niveau de sécurité
• limitation de la bande passante
• bonne ajustabilité
• possibilité de définir des utilisateurs virtuels
• support IPnG
• performance meilleure que la moyenne
• possibilité d'attribuer des adresses IP virtuelles
• haute vitesse
11/11/2023 195
Transfert de fichiers
Vsftpd: caractéristiques
• La configuration par défaut de VsFTPd est très restrictive :
⇒ Le compte anonyme n’est pas autorisé à se connecter
au serveur
⇒ En lecture seule
⇒ Les utilisateurs ne peuvent accéder à leur compte
11/11/2023 196
Transfert de fichiers
Vsftpd: configuration par défaut
11/11/2023 197
Serveur Web
Apache
• Architecture Client/Serveur
• Nécessité d’un protocole de communication: HTTP
11/11/2023 198
Serveur Web
La base du web
• Serveur web ou serveur httpd (http daemon): logiciel qui sert
des pages Web aux clients.
• Capable d'interpréter les requêtes http arrivant sur le port
associé au protocole HTTP (port 80 par défaut) et de fournir une
réponse avec ce même protocole.
• Par extension, on appelle souvent la machine physique sur
laquelle tourne le logiciel un « serveur web »
11/11/2023 199
Serveur Web
Serveur web: Présentation
• Un serveur HTTP est à l’écoute des connections sur un port
donné.
• Le port standard pour un serveur HTTP est le numéro 80.
• Le client d’un serveur HTTP est le navigateur Internet.
• A chaque requête qu’il reçoit le serveur présente à l’utilisateur la
page demandée.
• Sur certains serveurs le port d’écoute n’est pas 80 mais par
exemple 1234. Dans ce cas on accèdera au serveur par l’adresse
suivante : http://www.site.com:1234/ .
11/11/2023 200
Serveur Web
Serveur web: Présentation
• Utilisation du réseau Internet et du protocole HTTP qui formalise
les échanges entre le Client (navigateur Chrome, Firefox, . . . ) et
le Serveur Web (Apache, Nginx, . . . ).
• L’utilisateur saisit une URL (Uniform Resource Locator) dans le
navigateur qui transmet la requête vers le serveur en utilisant le
protocole HTTP.
• Le serveur analyse la requête, la traite et renvoie vers le
navigateur sa réponse. Le plus souvent dans un format texte
structuré avec le langage de balises HTML
• La réponse contient aussi des images, du son, des vidéos et du
code dans le langage javascript qui sera exécuté par un
interpréteur dans le navigateur.
11/11/2023 201
Serveur Web
Fonctionnement du service web
• Le protocole HTTP (HyperText Transfer Protocol) est le protocole le
plus utilisé sur Internet depuis 1990.
• Ce protocole permet un transfert de fichiers (essentiellement au
format HTML, mais aussi au format CSS, JS, AVI…) localisés grâce à
une chaîne de caractères appelée URL entre un navigateur (le client)
et un serveur Web (appelé d’ailleurs httpd sur les machines UNIX).
11/11/2023 202
Serveur Web
Protocole HTTP
11/11/2023 203
Serveur Web
Protocole HTTP
• HTTP est un protocole requête/réponse opérant au dessus de TCP.
⇒ Le client ouvre une connexion TCP vers le serveur et envoie une
requête.
⇒ Le serveur analyse la requête et répond en fonction de sa
configuration.
• Exemple de requête HTTP:
• Exemple de réponse du serveur:
11/11/2023 204
Serveur Web
Protocole HTTP
Une réponse HTTP est un ensemble de lignes envoyées au navigateur
par le serveur:
• Une ligne de statut : c’est une ligne précisant la version du protocole
utilisé et l’état du traitement de la requête à l’aide d’un code et d’un
texte explicatif. La ligne comprend trois éléments devant être séparés
par un espace :
⇒ La version du protocole utilisé ;
⇒ Le code de statut ;
⇒ La signification du code .
• Les champs d’en-tête de la réponse : il s’agit d’un ensemble de lignes
facultatives permettant de donner des informations supplémentaires
sur la réponse et/ou le serveur.
11/11/2023 205
Serveur Web
Réponse HTTP
• Le corps de la réponse : il contient le document demandé.
• Le rôle du serveur web consiste à traduire une URL en ressource
locale. Consulter la page http://www.free.fr/, revient à envoyez une
requête HTTP à cette machine. Le service DNS joue donc un rôle
essentiel.
11/11/2023 206
Serveur Web
Réponse HTTP
• URL: Unified Resource Locator
⇒ ex: http://www.apache.org/download/apache_1_3_3_tar.gz
• URI: Unified Resource Indicator
⇒ ex: /download/apache_1_3_3_tar.gz
11/11/2023 207
Serveur Web
Protocole HTTP
• Les serveurs HTTP les plus utilisés sont :
⇒ Apache : HTTP serveur de la Apache Software Foundation.
⇒ IIS : Internet Information Services de Microsoft (IIS)
⇒ Sun ONE : Sun Microsystems
11/11/2023 208
Serveur Web
Exemple de serveurs HTTP
11/11/2023 209
Serveur Web
Exemple de serveurs HTTP
• Les navigateurs web
⇒ Firefox, Chrome, Chromium, Internet Explorer, Safari...
• Les clients en ligne de commande
⇒ wget, cURL...
• Les clients programmés spécifiquement
⇒ la plupart des langages de programmation permettent de
faire des requêtes HTTP)
11/11/2023 210
Serveur Web
Exemple de clients HTTP
• Ecrit en C (portable), plate forme UNIX (ou Linux) recommandée
• Multi-processus / multi-thread (daemon httpd)
• Configuration très flexible
• Architecture modulaire
• Comment obtenir Apache ?
⇒ inclut dans la plupart des distributions linux (httpd)
⇒ sources et binaires sur http://www.apache.org/dist/httpd
• Première version décembre 1995
• Dernière version : Apache 2.2
11/11/2023 211
Serveur Web
Apache: Présentation
11/11/2023 212
Serveur Web
Apache: Installation, démarrage et redémarrage
# Sudo apt-get install apache2
# sudo /etc/init.d/apache2 start
# Sudo etc/init.d/apache2 stop
# Sudo /etc/init.d/apache2 restart
# Sudo /etc/init.d/apache2 reload
• Juste après une installation standard, apache est fonctionnel.
• Il est capable de servir des pages html, des images, et plus
généralement des fichiers.
• Il n’est optimisé pour aucun usage précis.
• Il n’est pas non plus capable d’interpréter des pages en php (ou
en quelque langage que ce soit) ni d’accéder à aucun type de
bases de données.
11/11/2023 213
Serveur Web
Apache en version de base
Pour cela, il faudra jouer avec les fichiers de
configuration et les modules.
• L’emplacement des fichiers de configuration de apache varie très
fortement selon les distribution, et parfois d’une version d’une
même distribution à l’autres.
• De manière générale, les fichiers se trouvent dans /etc, et plus
précisément dans /etc/apache2 ou /etc/httpd.
11/11/2023 214
Serveur Web
Apache: fichier de configuration principal
Ubuntu
11/11/2023 215
Serveur Web
Apache: Les autres fichiers de configuration
11/11/2023 216
Serveur Web
Apache: Les modules disponibles
• Les modules d’apache étendent les fonctionnalités du logiciel.
• De nombreux modules sont disponibles.
• Certain n’ont pas été mis à jour depuis très longtemps.
• Les modules activés se trouvent dans le répertoire
/etc/apache2/mods-enabled/
• En pratique, ce ne sont pas des fichiers mais des liens vers les
fichiers .load et .conf situés dans le répertoire
/etc/apache2/mods-available/
• Pour activer un module, il suffit de créer un lien dans mods-enabled
vers les fichiers .load et .conf situés dans mods-available (l’utilitaire
a2enmod est la pour ca).
11/11/2023 217
Serveur Web
Apache: Les modules activés
• Les modules apache sont des bibliothèques et s’installent comme
suit:
• Les modules installés apparaissent dans mods-available et sont
activés automatiquement.
11/11/2023 218
Serveur Web
Apache: Installation de modules supplémentaire
# Sudo apt-get install libapache2-mod-php
11/11/2023 219
Serveur Web
Apache: Hébergement mutualisé
11/11/2023 220
Serveur Web
Apache: Fonctionnement des virtual Hosts
• Apache distingue les différents Virtual Hosts grâce au paramètre
Host de la requête http du client.
• En pratique, chaque site web situé d’un hébergement mutualisé
donné est nommé par une entrée différente dans le DNS.
• Les hôtes virtuels déployables sont décrits dans les fichiers situés
dans /etc/apache2/sites-available/.
• Les hôtes virtuels déployés sont décrits par les liens sur ces même
fichiers situés dans /etc/apache2/sites-enabled.
• L’outil a2ensite permet de créer facilement le lien dans sites-enabled
à partir du nom du fichier dans sites-available.
11/11/2023 221
Serveur Web
Apache: Fichiers de description des virtual Hosts
11/11/2023 222
Serveur Web
Modules et virtual Hosts: Outils pratiques
11/11/2023 223
Accès à distance au serveur
Protocole SSH
• Garder la mobilité
• Agir à distance
⇒ Gérer les serveurs
⇒ Dépanner les utilisateurs et les postes
• Interaction entre bureaux
⇒ Travail d’équipe
• Travailler dans un server à partir de clients légers
11/11/2023 224
Accès à distance au serveur
Pourquoi accéder à distance?
• L’utilisateur doit avoir un accès autorisé à l’ordinateur:
• gestion de l’utilisateur comme un utilisateur local (généralement
sous *nix) ;
• gestion séparée.
• Environnement hétérogène (Par ex : un étudiant se loggue depuis son
portable windows sur le serveur bsd de l’université):
• problème d’encodage ;
• problème d’affichage ;
• problème d’accès aux périphériques ;
• émulation de terminal ou de bureau.
• Sécurité:
• Que se passe-t-il si un utilisateur distant a accès aux touches du
clavier ?
• Que peut faire un utilisateur une fois loggué sur le vieux serveur
de test ?
11/11/2023 225
Accès à distance au serveur
Contraintes d’accès à distance
• Telnet (1983) : un des premiers standards de l’internet
• Rlogin/Rsh (1991) :
⇒ permet des accès sans mot de passe,
⇒ exécution de commandes à distance
• ssh :
⇒ les communications sont chiffrées ;
⇒ authentifications par mot de passe ou clefs ;
⇒ finalisé depuis 2006.
11/11/2023 226
Accès à distance au serveur
Exemples de connexions à distance
Protocoles:
• Telnet: Terminal Network ou Télécommunication Network
• SSH: Secure Shell
• RDP: Remote Desktop Protocol
• RFB: remote framebuffe
Outils:
• Open SSH / Putty
• TeamViewer
• DameWare
• Connexion bureau à distance
11/11/2023 227
Accès à distance au serveur
Protocoles et outils
11/11/2023 228
Accès à distance au serveur
Fonctionnement d’une connexion locale
11/11/2023 229
Accès à distance au serveur
Fonctionnement d’une connexion distante
• SSH= Secure Shell
• SSH est à la fois la définition d’un protocole et un ensemble de
programmes utilisant ce protocole,
• destinés à permettre aux utilisateurs d’ouvrir, depuis une machine
cliente, des sessions interactives sécurisé à distance sur des serveurs
et de transférer des fichiers entre les deux.
11/11/2023 230
Accès à distance au serveur
Présentation de SSH
• Echange de clés de chiffrement
• Toutes les trames sont chiffrées
• Impossible de lire les trames sur le réseau
via un sniffer
• Remplaçant de rlogin, telnet et rsh
Protocole SSH
• Authentification
• Transferts de fichiers
• Monter un répertoire distant localement
• Redirection de connexion
11/11/2023 231
Accès à distance au serveur
Fonctionnalités de SSH
SSH vise directement ces trois aspects de la sécurité:
• Confidentialité:
⇒ Protéger nos données des yeux indiscrets
• Authentification:
⇒ Cette personne est-elle bien celle qu'elle prétend être ?
• Autorisation:
⇒ Cette personne a-t-elle le droit de faire ce qu'elle veut faire ?
11/11/2023 232
Accès à distance au serveur
Préoccupations principales de SSH
• SSH permet de sécuriser les communications des réseaux en
utilisant la cryptographie.
• SSH est composé d’un ensemble d'outils permettant des
connexions sécurisées entre des machines. Ces outils ont pour
but de remplacer les utilitaires de connexions classiques
n'utilisant pas de chiffrage.
• Remplace: rcp, rlogin, rsh, telnet (ftp par sftp en SSH V2)
• SSH chiffre et compresse un canal de communication qui sécurise
les données transmises (permet d’éviter les sniffeurs réseaux)
• Non seulement le mot de passe est chiffré lors de la connexion
mais les informations circulant sur le réseau entre les deux
machines le sont aussi.
11/11/2023 233
Accès à distance au serveur
SSH: Sécurisation des connexions
• L’avantage important offert par SSH par rapport à ses prédécesseurs
est l’utilisation du cryptage pour assurer le transfert sécurisé
d’informations entre l’hôte et le client,
• Il existe trois technologies de cryptage différentes utilisées par SSH :
⇒ Cryptage symétrique
⇒ Cryptage asymétrique
⇒ Hachage
11/11/2023 234
Accès à distance au serveur
Techniques de cryptage utilisées par SSH
11/11/2023 235
Accès à distance au serveur
Cryptage symétrique
Cryptage symétrique= cryptage à clé partagée= cryptage à secret partagé
Si Alice veut envoyer un message confidentiel à Bob:
• Alice et Bob doivent d'abord posséder une même clef secrète.
• Alice chiffre le message avec la clé secrète puis l'envoie à Bob sur un
canal qui n'est pas forcément sécurisé.
• Bob déchiffre alors le message grâce à la clef secrète.
• Toute autre personne en possession de la clef secrète peut également
déchiffrer le message.
11/11/2023 236
Accès à distance au serveur
Cryptage symétrique
11/11/2023 237
Accès à distance au serveur
Cryptage symétrique
• Les algorithmes de chiffrement symétrique sont beaucoup moins
gourmands en ressources processeur que ceux de chiffrement
asymétrique
• Problème: l'échange de la clef secrète entre Alice et Bob
• Dans le protocole SSL, qui est utilisé par SSH, la cryptographie
asymétrique est utilisée au début de la communication pour que
Alice et Bob puissent s'échanger une clef secrète de manière
sécurisée,
• la suite la communication est sécurisée grâce à la cryptographie
symétrique en utilisant la clef secrète ainsi échangée.
11/11/2023 238
Accès à distance au serveur
Cryptage symétrique
• Principe: On utilise 2 clés
⇒ Une clé « publique » qui sert à crypter
⇒ Une clé « privée » servant à décrypter
• Clé publique : peut transiter
⇒ S'assurer toutefois de son authenticité
• Clé privée : reste chez son propriétaire
• Il doit être impossible de déduire la clé privée de la clé publique
• Méthodes principales :
• RSA : Rivest Shamir Adleman, 1977
• DSA : Digital Signature Algorithm, 1991
• ECDSA : Elliptic Curve DSA, 1992
11/11/2023 239
Cryptage asymétrique
Accès à distance au serveur
11/11/2023 240
Cryptage asymétrique
Accès à distance au serveur
Avantage:
⇒ Même en interceptant le message, impossible de le décrypter
sans la clé privée
Inconvénient:
⇒ Algorithmes lents en général
11/11/2023 241
Cryptage asymétrique
Accès à distance au serveur
1. Connexion TCP au port 22 du serveur
2. le client envoie une clef publique en utilisant la clef
publique du serveur (s’il ne l’a pas, il doit d’abord l’accepter,
ou la récupérer sur un serveur tiers.)
3. client et serveur se mettent d’accord sur une clef symétrique
4. les échanges suivants sont cryptés par cette nouvelle clef, y
compris l’authentification de l’utilisateur
5. régulièrement (tous les 1Go transférés / toutes les heures),
on change la clef
11/11/2023 242
Accès à distance au serveur
Etapes du protocole SSH
• Un serveur SSH dispose d'un couple de clefs RSA stocké dans
le répertoire /etc/ssh/ et généré lors de l'installation du
serveur.
• Le fichier ssh_host_rsa_key contient la clef privée et a les
permissions 600 (Lecture, écriture pour le propriétaire /
aucun droit pour les autres).
• Le fichier ssh_host_rsa_key.pub contient la clef publique et a
les permissions 644 (Lecture, écriture pour le propriétaire /
Lecture pour les autres)
11/11/2023 243
Accès à distance au serveur
Etablissement d’une connexion SSH
• Le serveur envoie sa clef publique au client. Celui-ci vérifie qu'il s'agit
bien de la clef du serveur, s'il l'a déjà reçue lors d'une connexion
précédente.
• Le client génère une clef secrète et l'envoie au serveur, en chiffrant
l'échange avec la clef publique du serveur (chiffrement asymétrique).
Le serveur déchiffre cette clef secrète en utilisant sa clé privée, ce qui
prouve qu'il est bien le vrai serveur.
• Pour le prouver au client, il chiffre un message standard avec la clef
secrète et l'envoie au client. Si le client retrouve le message standard en
utilisant la clef secrète, il a la preuve que le serveur est bien le vrai
serveur.
• Une fois la clef secrète échangée, le client et le serveur peuvent alors
établir un canal sécurisé grâce à la clef secrète commune (chiffrement
symétrique).
• Une fois que le canal sécurisé est en place, le client va pouvoir envoyer
au serveur le login et le mot de passe de l'utilisateur pour vérification. Le
canal sécurisé reste en place jusqu'à ce que l'utilisateur se déconnecte
11/11/2023 244
Accès à distance au serveur
Etablissement d’une connexion SSH
• La seule contrainte est de s'assurer que la clef publique
présentée par le serveur est bien sa clef publique…
• sinon le client risque de se connecter à un faux serveur qui aurait
pris l'adresse IP du vrai serveur.
• Une bonne méthode est par exemple de demander à
l'administrateur du serveur quelle est le fingerprint de la clef
publique du serveur avant de s'y connecter pour la première fois.
• Le fingerprint d'une clef publique est une chaîne de 32 caractères
hexadécimaux à peu près unique pour chaque clef (un hachage)
11/11/2023 245
Accès à distance au serveur
Etablissement d’une connexion SSH
• on ne stocke pas le mot de passe mais son empreinte ;
• on utilise généralement une valeur aléatoire seed ajoutée au mot
de passe pour se protéger des mots de passe identiques ;
• pour vérifier un mot de passe, on applique le même algorithme
et on vérifie que le résultat est identique.
11/11/2023 246
Accès à distance au serveur
Fonction de hachage
Site : http://www.openssh.org
• Version logicielle actuelle : openssh 7.9
⇒ Existe en format packagé pour toutes distributions
• Subit un audit permanent du code
• OpenSSH utilise principalement :
• OpenSSL
• Zlib pour la compression des flux
• Perl lors de l’installation, pour des applications tiers (sshcopyid…)
• ……
11/11/2023 247
Accès à distance au serveur
Terminologie de SSH
La boîte à outils SSH est généralement composée de :
• Serveur : sshd
• Clients : ssh, scp, sftp (ssh = slogin)
• Des outils de gestion: ssh-add, ssh-agent, ssh-keygen, sshkeyscan
• Les fichiers de configuration (OpenSSH) sont souvent dans:
⇒ Pour le serveur : /etc/ssh
⇒ Pour les clients : /etc/ssh et $HOME/.ssh
• Fonctionnement sur le schéma d’un système client – serveur
⇒ Les clients ssh demandent une ouverture de connexion au
serveur sshd
11/11/2023 248
Accès à distance au serveur
Les outils SSH
Cryptographie dans SSH:
• Repose sur les algorithmes d'OpenSSL
⇒ Algorithmes asymétriques:
• RSA et DSA
⇒ Algorithmes symétriques:
• 3DES, Blowfish, AES, Arcfour ...
11/11/2023 249
Accès à distance au serveur
SSH Sous Linux
11/11/2023 250
Accès à distance au serveur
Fonctionnement de SSH
11/11/2023 251
Accès à distance au serveur
L’authentification des serveurs
• Le principe d’authentification du serveur se fait par chiffrement
à clé publique du protocole SSH.
• Le client doit donc connaître la clé publique du serveur sur
lequel il veut se connecter avant toute connexion. Ainsi, il
existe un mécanisme pour la machine cliente pour stocker les
clés d'un serveur afin de les réutiliser ensuite;
• Il pourra ainsi vérifier la clé d'un serveur à chaque nouvelle
connexion avec celle enregistrée lors de la première connexion;
• Cela permet d'éviter les attaques du type man-in-themiddle
11/11/2023 252
Accès à distance au serveur
L’authentification des utilisateurs
• Une fois que la connexion sécurisée est mise en place entre le client
et le serveur, le client doit s'identifier sur le serveur afin d'obtenir un
droit d'accès.
⇒ Par mot de passe: le client envoie un nom d'utilisateur et un mot
de passe au serveur au travers de la communication sécurisé et le
serveur vérifie si l'utilisateur concerné a accès à la machine et si
le mot de passe fourni est valide
⇒ Par clés publiques : si l'authentification par clé est choisie par le
client, le serveur va créer un challenge et donner un accès au
client si ce dernier parvient à déchiffrer le challenge avec sa clé
privée
⇒ Par Kerberos, SmartCard, …
11/11/2023 253
Accès à distance au serveur
SSH: Accès aux fichiers distants
• Il est possible d’accéder aux fichiers d’une machine qui possède un
serveur SSH, avec les mêmes droits d’accès que l’utilisateur avec
lequel on est connecté.
11/11/2023 254
Annuaire LDAP
Lightweight Directory Access Protocol
• Un annuaire est un conteneur d’informations organisées.
• Un annuaire est similaire à une base de données :
⇒ on peut y mettre des informations et les consulter.
• mais il est plus spécialisé :
⇒ il est dédié plus à la lecture qu’à l’écriture,
⇒ l’accès aux données se fait par recherche multi-critères.
• Des exemples d’annuaires sont :
⇒ l’annuaire téléphonique (Pages jaunes),
⇒ les carnets d’adresse,
⇒ les répertoires de rues,
• Un annuaire global célèbre très utilisé : DNS
⇒ il a un espace de nommage uniforme
⇒ il est distribué entre des serveurs coopérants
11/11/2023 255
Annuaire LDAP
Qu’est ce qu’un annuaire?
• Un service d’annuaire électronique, c’est aussi en plus :
⇒ un protocole qui permet l’accès au contenu,
⇒ une syntaxe qui permet d’interroger la base de données,
⇒ un modèle de duplication des données,
⇒ un modèle de distribution des données.
• Un annuaire est caractérisée par :
⇒ une mise à jour dynamique : les données consultées sont
régulièrement mises à jour.
⇒ un contenu évolutif : des informations supplémentaires
peuvent être ajoutées.
⇒ une organisation plus flexible des données : il est possible
de créer des index et de faire des recherches avancées
11/11/2023 256
Annuaire LDAP
Caractéristiques d’un annuaire
11/11/2023 257
Annuaire LDAP
Annuaire vs Base de données
Sur un système informatique, les données ne sont pas organisées de
manière relationnelle comme sur les SGBD classiques (MySQL, PgSQL,
SQLServer, ...) mais de manière hiérarchique.
• Caractéristiques comparées des annuaires et des bases de
données:
⇒ le rapport lecture/écriture est plus élevé,
⇒ les bases sont plus facilement extensibles,
⇒ la diffusion se fait à plus large échelle,
⇒ la répartition des données entre des serveurs est plus éclatée,
⇒ il y a duplication de l’information,
⇒ il existe des possibilités d’avoir de fortes quantités
d’enregistrements mais de faibles capacités de stockage.
11/11/2023 258
Annuaire LDAP
Annuaire vs Base de données
• Un annuaire électronique est une sorte d’entrepôt de données qui
les rends disponibles pour des applications ou des utilisateurs.
⇒ des mots de passe ou des certificats d’authentification.
⇒ des adresses de courriels.
⇒ des informations de contact : téléphone, adresse, bureau...
⇒ des profils de configuration de logiciels.
⇒ etc.
11/11/2023 259
Annuaire LDAP
Un annuaire ≈ un entrepôt de données
• Standard conçu par les opérateurs télécom pour interconnecter
leurs annuaires téléphoniques.
• Destiné à devenir LE service d’annuaire GLOBAL distribué, normalisé
et fédérateur.
• Mais conçu aussi pour répondre à tout type de besoin d’annuaire
grâce à un modèle de données de type objet et extensible.
X.500 définit :
• les règles pour nommer les objets et les entités
• les protocoles pour fournir le service d’annuaire
• un mécanisme d’authentification.
11/11/2023 260
Annuaire LDAP
Historique (X.500)
11/11/2023 261
X.500 n'a pas abouti car elle ne s'est pas adaptée à l'essor des
communications distantes avec le protocole TCP/IP. Elle utilisait un système
compliqué pour communiquer impliquant l'ensemble du modèle OSI.
Annuaire LDAP
Historique (X.500)
• Apparition de LDAP en 1993.
⇒ Lightweight Directory Access Protocol (LDAP) est né de
l’adaptation de X.500 DAP au protocole TCP/IP.
• Deux groupes de travail aboutissent à deux produits fonctionnant
comme frontal X.500 :
⇒ Directory Assistance Service (DAS) : RFC 1202.
⇒ Interface to X.500 Implemented Efficiently (DIXIE) : RFC 1249.
• qui convergent finalement vers le standard IETF LDAP
⇒ LDAPv1 : RFC 1487.
⇒ LDAPv2 : RFC 1777.
⇒ LDAPv3 : RFC 2251.
• LDAP garde beaucoup d’aspects de X.500 dans les grandes
lignes, mais va dans le sens de la simplification.
11/11/2023 262
Annuaire LDAP
Historique du protocole LDAP
• fournir aux utilisateurs des informations fiables, facilement
accessibles
• permettre aux utilisateurs de mettre à jour eux-même leurs
informations personnelles
• rendre les informations accessibles de façon contrôlée
• éviter la redondance d’informations : un seul annuaire pour
l’ensemble des services
• faciliter la gestion (administration) des postes de travail, des
équipements réseau
• Tout ceci est fait sans remettre en cause les applications
existantes
11/11/2023 263
Annuaire LDAP
Objectifs d’un annuaire LDAP
• LDAP est un protocole d’annuaire standard et extensible. Il
fournit :
⇒ le protocole permettant d’accéder à l’information contenue
dans l’annuaire,
⇒ un modèle d’information définissant le type de données
contenues dans l’annuaire,
⇒ un modèle de nommage définissant comment l’information
est organisée et référencée,
⇒ un modèle fonctionnel définissant comment on accède à
l’information ,
11/11/2023 264
Annuaire LDAP
Les concepts de LDAP(1)
⇒ un modèle de sécurité définissant comment données et accès
sont protégés,
⇒ un modèle de duplication définissant comment la base est
répartie entre serveurs,
⇒ des APIs pour développer des applications clientes,
⇒ LDIF, un format d’échange de données.
11/11/2023 265
Annuaire LDAP
Les concepts de LDAP(2)
Le format LDIF (Ldap Data Interchange Format) est un format
standard qui permet de représenter sous forme de fichier texte les
donnés présentes dans un annuaire. Il offre également une
syntaxe qui permet de faire des modifications dans l'annuaire.
Le protocole définit :
• Comment s’établit la communication client-serveur :
⇒ commandes pour se connecter ou se déconnecter, pour
rechercher, comparer, créer, modifier ou effacer des entrées.
• Comment s’établit la communication serveur-serveur :
⇒ échanger leur contenu et le synchroniser (replication
service).
⇒ créer des liens permettant de relier des annuaires les uns
aux autres (referral service).
• Le format de transport des données :
⇒ pas l’ASCII (comme pour HTTP, SMTP,...) mais le Basic
Encoding Rules (BER), sous une forme allégée (appelée LBER
Lightweight).
11/11/2023 266
Annuaire LDAP
Le protocole LDAP(1)
Le protocole définit (suite) :
• Les mécanismes de sécurité :
⇒ méthodes de chiffrement et d’authentification
⇒ mécanismes de règles d’accès aux données.
• Les opérations de base :
⇒ interrogation : search, compare
⇒ mise à jour : add, delete, modify, rename
⇒ connexion au service : bind, unbind, abandon
11/11/2023 267
Annuaire LDAP
Le protocole LDAP(2)
11/11/2023 268
Annuaire LDAP
Le modèle d’information (1)
• Le modèle d’information définit le type de données pouvant être
stockées dans l’annuaire :
⇒ L’entrée (Entry) = élément de base de l’annuaire. Elle contient les
informations sur un objet de l’annuaire.
⇒ C'est lui qui contient les données. C'est l'équivalent en
programmation orientée objet d'une "classe d'objet".
⇒ Ces informations sont représentées sous la forme d’attributs
décrivant les caractéristiques de l’objet
⇒ Toute sorte de classe d’objet (réel ou abstrait) peut être
représentée.
Exemple d’entrée
11/11/2023 269
Annuaire LDAP
Le modèle d’information (2)
• Exemples de classes d’objet :
⇒ une entreprise
⇒ ses différents départements
⇒ son personnel
⇒ ses imprimantes
⇒ ses groupes de travail
11/11/2023 270
Annuaire LDAP
Le modèle d’information (3)
11/11/2023 271
Annuaire LDAP
Le modèle d’information (4)
• Un attribut est caractérisé par:
⇒ un nom
⇒ un type
⇒ une méthode de comparaison
⇒ un « Object Identifier » (IOD)
⇒ une valeur.
Exemple d’entrée
Remarque: un attribut peut être possédé par plusieurs classes !
Par exemple, une entré de type "Fournisseur" peut avoir le même
attribut "cn" (common name) qu'une entrée de type "Client".
Les attributs classiques de LDAP
11/11/2023 272
Annuaire LDAP
Le modèle d’information (5)
les types "Client" et "Salarié"
héritent des attributs du type
"Personne" qui lui même
héritent des attributs du type
"Top"
• Tout les types d'entrées (Client, Fournisseur, ...) et leur attributs (cn, ou,
...) sont définis dans un schéma.
• Le schéma définit l'ensemble des types d'entrées par le service LDAP.
Chaque entrée de l'annuaire fait obligatoirement référence à une classe
d'objet du schéma.
• Les types d'entrées sont organisées de manière hiérarchique. Le sommet
de cette organisation hiérarchique est toujours occupé par le type "Top".
Et cette organisation met en place un système d'héritage où chaque type
hérite des attributs de son type parent.
11/11/2023 273
Annuaire LDAP
Le modèle d’information (6)
• L’objet inetOrgPerson à la filiation suivante :
⇒ objectClass: top
⇒ objectClass: person
⇒ objectClass: organizationalPerson
⇒ objectClass: inetOrgPerson
• L’objet person a comme attributs :
commonName, surname, description,
seeAlso, telephoneNumber, userPassword
• L’objet fils organizationalPerson ajoute des
attributs comme : organizationUnitName,
title, postalAddress. . .
• L’objet petit-fils inetOrgPerson lui rajoute
des attributs comme :
mail, labeledURI, uid (userID), photo. . .
11/11/2023 274
Annuaire LDAP
Le modèle de nommage (1)
• Le modèle de nommage définit comment sont organisées les
entrées de l’annuaire et comment elles sont référencées.
⇒ Les entrées représentent des objets.
⇒ L’organisation de ces objets se fait suivant une structure logique
hiérarchique : le Directory Information Tree (DIT).
⇒ Au sein de ce DIT, l’identification d’une entrée se fait à l’aide
d’un nom, le Distinguish Name (DN).
11/11/2023 275
Annuaire LDAP
Le modèle de nommage (2)
Le Directory Information Tree (DIT)
• Classification des entrées dans une arborescence hiérarchique
(comparable au système de fichier Unix).
• Chaque nœud de l’arbre correspond à une entrée de l’annuaire ou
directory specific entry (DSE).
• Au sommet de l’arbre se trouve l’entrée Suffix ou Root Entry ou
BaseDN, qui caractérise une base LDAP.
11/11/2023 276
Annuaire LDAP
Le modèle de nommage (3)
Le Distinguished Name (DN)
• Référence de manière unique une entrée du DIT (⇔chemin d’un fichier
UNIX).
• Formé de la suite des noms des entrées, en partant de l’entrée et en
remontant vers le suffix, séparé par des ",".
• Ex : le DN de l’entrée jsmith vaut : uid=jsmith, ou=people, o=WorldCompany
• Chaque composant du DN est appelé Relative Distinguished Name (RDN).
• Le RDN est constitué d’un des attributs de l’entrée (et de sa valeur). Le choix
de cet attribut doit assurer que 2 entrées du DIT n’aient pas le même DN.
11/11/2023 277
Annuaire LDAP
Le modèle d’information – modèle de nommage (définitions)
11/11/2023 278
Annuaire LDAP
Le modèle d’information – modèle de nommage (définitions)
11/11/2023 279
Annuaire LDAP
Le modèle fonctionnel (1)
• Le modèle fonctionnel décrit le moyen d’accéder aux données et
les opérations qu’on peut leur appliquer :
⇒ Les opérations d’interrogation
⇒ Les opérations de comparaison.
⇒ Les opérations de mise à jour.
⇒ Les opérations d’authentification et de contrôle.
11/11/2023 280
Annuaire LDAP
Le modèle fonctionnel (2)
Les opérations d’interrogation
• LDAP ne fournit pas d’opération de lecture d’entrée.
• Pour connaître le contenu d’une entrée, il faut écrire une requête
qui pointe sur cette entrée.
• Une requête est composée de 8 paramètres :
• La base est le DN à partir duquel nous faire une recherche
11/11/2023 281
Annuaire LDAP
Le modèle fonctionnel (3)
Les opérations d’interrogation: Le scope
• Le scope est le nombre de niveaux sur lesquels l'action va être
effectuée. Il existe 3 niveaux différents :
⇒ sub: l'action est effectuée récursivement à partir de la base
spécifiée sur la totalité de l'arborescence
⇒ One: l'action est effectuée sur les fils directs, c'est-à-dire un
seul niveau inférieur par rapport à la base spécifiée.
⇒ Base: l'action est effectuée uniquement sur la base spécifiée.
•
11/11/2023 282
Annuaire LDAP
Le modèle fonctionnel (4)
Les opérations d’interrogation: Le scope
11/11/2023 283
Annuaire LDAP
Le modèle fonctionnel (5)
Les opérations d’interrogation: Les filtres
• Un filtre va permettre d'avoir des critères de la recherche.
• Il est constitué d'un ensemble d'opérations, portant sur des attributs,
combinées avec les opérateurs booléens classiques: ET, OU et NON.
• Sa syntaxe est donc : attribut OPERATEUR valeur
• La forme générale d'un filtre est une combinaison : (operator(search
operation)(search operation)...)).
Ex : (&(objectclass=inetOrgPerson)(!(mail=*)))
Toutes les entrées de type utilisateur sans adresse mail
11/11/2023 284
Annuaire LDAP
Le modèle fonctionnel (6)
Les opérations de comparaison
• Vérifier si l’attribut d’une entrée contient bien une valeur spécifiée.
• Le serveur répond vrai ou faux.
• Équivalent à une recherche, sauf que le serveur renvoie l’entrée si
vrai et ne renvoie rien dans deux cas :
⇒ si l’attribut ne contient pas cette valeur,
⇒ si l’attribut n’existe pas
• alors que la comparaison renvoie dans ce 2ème cas, un code
d’erreur.
11/11/2023 285
Annuaire LDAP
Le modèle fonctionnel (7)
Les opérations de mise à jours
• 4 opérations : add, delete, rename, modify
• Ces quatre opérations nécessitent les droits de contrôle appropriés
et des prérequis :
⇒ add, rename : entrée ne doit pas déjà exister, entrée doit avoir
un parent existant.
⇒ add, modify : les attributs doivent être conformes au schéma.
⇒ delete : entrée ne doit pas avoir d’enfant
11/11/2023 286
Annuaire LDAP
Le modèle fonctionnel (8)
Les opérations d’authentification et de contrôle
• 3 opérations : bind, unbind, abandon
⇒ bind = connexion.
⇒ unbind = déconnexion
⇒ abandon = le client indique au serveur qu’il laisse tomber la
requête qu’il avait envoyé. Celui-ci abandonne alors le process.
11/11/2023 287
Annuaire LDAP
Le modèle de sécurité (1)
• Le modèle de sécurité décrit le moyen de protéger les données de
l’annuaire des accès non autorisés.
• La sécurité se fait à plusieurs niveaux :
⇒ par l’authentification pour se connecter au service.
⇒ par un modèle de de contrôle d’accès aux données.
⇒ par le chiffrement des transactions entre les clients et les
serveurs ou entre les serveurs.
11/11/2023 288
Annuaire LDAP
Le modèle de sécurité (2)
• L’authentification LDAP est un protocole avec connexion : il faut
s’authentifier pour ouvrir la connexion (bind) en fournissant une identité.
• LDAPv3 propose plusieurs choix d’authentification :
⇒ Anonymous authentification - accès sans authentification
permettant de consulter les données accessibles en lecture pour
tous.
⇒ Root DN authentification - accès administrateur (tous les droits).
⇒ Mot de passe en clair - un DN plus un password qui transite en
clair sur le réseau.
⇒ Mot de passe + SSL ou TLS - la session est chiffrée et le mot de
passe ne transite plus en clair.
⇒ Certificats sur SSL - échange de certificats SSL (clef publiques
/privées).
L’authentification
• Le serveur attribue à l’utilisateur identifié, des droits d’accès aux
données (lecture, écriture, recherche et comparaison), qui lui ont
été définis par l’administrateur sous la forme d’ACLs.
• Pas encore normalisé par l’IETF donc non compatibles entre serveurs.
⇒ OpenLDAP : sous la forme de directives de contrôle d’accès dans
slapd.conf
• Les ACLs peuvent être placées au niveau des entrées, au sommet de
l’arbre ou sur un sous-arbre.
• Elles agissent sur les entrées ou certains de leurs attributs.
11/11/2023 289
Annuaire LDAP
Le modèle de sécurité (3)
Le contrôle d’accès
• LDAPv3 supporte le chiffrement des transactions (entre clients et
serveurs ou entre serveurs) via l’utilisation de SSL (ldaps) ou de
son successeur, TLS (startTLS extended operation).
• SSL ou TLS servent également pour l’authentification par
certificats :
⇒ permet au client de prouver son identité au serveur et, en
retour, à celui-ci d’en faire de même vis à vis du client.
11/11/2023 290
Annuaire LDAP
Le modèle de sécurité (4)
Le chiffrement
• Le modèle de duplication (replication service) définit comment
dupliquer l’annuaire sur plusieurs serveurs.
• Dupliquer l’annuaire peut pallier à :
⇒ une panne de l’un des serveurs,
⇒ une coupure du réseau,
⇒ surcharge du service.
• et garantir la qualité de service : temps de réponse et sûreté de
fonctionnement.
• Permet également :
⇒ d’améliorer les performances en plaçant les serveurs près des
clients
⇒ de répartir le travail entre plusieurs serveurs (load balancing)
⇒ de gérer les entrées localement et de les diffuser sur plusieurs
sites.
• Pas encore standard, mais est proposé par la plupart des serveurs.
11/11/2023 291
Annuaire LDAP
Le modèle de duplication (1)
• La duplication met en jeu plusieurs serveurs :
⇒ les supplier servers fournissent les données,
⇒ les consumer servers les reçoivent.
• Les informations de configuration décrivant les suppliers, les
consumers et quelles données ils échangent, forment le replication
agreement.
11/11/2023 292
Annuaire LDAP
Le modèle de duplication (2)
• On peut dupliquer :
⇒ l’arbre entier ou seulement un sous-arbre,
⇒ une partie des entrées et de leurs attributs qu’on aura spécifiés
via un filtre du genre :
• "on ne duplique que les objets de type personne",
• "on ne duplique que les attributs non confidentiels"
• Plusieurs manières de synchroniser les serveurs :
⇒ mise à jour totale ou incrémentale...
• Plusieurs stratégies de duplications :
⇒ single-master replication, multiple-master replication, cascading
replication .
11/11/2023 293
Annuaire LDAP
Le modèle de duplication (3)
• La duplication se fait en temps-réel ou à heure fixe (scheduling
replication).
• Deux précautions :
⇒ les serveurs doivent tous utiliser le même schéma de
données,
⇒ les règles d’accès aux données dupliquées doivent être
dupliquées.
• La mise en œuvre du replication service nécessite de le prévoir
au moment du design du DIT.
11/11/2023 294
Annuaire LDAP
Le modèle de duplication (4)
• LDAP Data Interchange Format (LDIF) est le standard de
représentation des entrées sous forme de texte.
• Il est utilisé pour afficher ou modifier les données de la base suivant
deux modes :
⇒ faire des importations/exportations de la base,
⇒ faire des modifications sur des entrées.
11/11/2023 295
Annuaire LDAP
LDIF
dn: <distinguished name>
objectClass: <object class>
objectClass: <object class>
[...]
attribute type:<attribute
value>
attribute type:<attribute
value>
[...]
11/11/2023 296
Annuaire LDAP
LDIF: mode import
dn: cn=June Rossi,
ou=accounting, o=Ace Industry,
c=US
objectClass: top
objectClass: person
objectClass:
organizationalPerson
objectClass: inetOrgPerson
cn: June Rossi
sn: Rossi givenName: June
mail: rossi@aceindustry.com
userPassword: {sha}KDIE3AL9DK
dn: cn=Walter Scott,
ou=accounting, o=Ace Industry,
c=US
objectClass: top
La forme générale est :
Une entrée de type personne se présente
de la manière suivante :
• Il faut bien choisir les schémas
⇒ Quelles informations veut-on stocker dans l’annuaire?
⇒ Quelles sont les applications qui vont utiliser l’annuaire
• Il faut réfléchir a l’organisation du DIT
⇒ impact sur la performance, les droits d’accès, . . .
• Puis dans un deuxième temps
⇒ gestion centralisée sur un seul serveur?
⇒ nombre de serveurs redondants? Emplacement?
11/11/2023 297
Annuaire LDAP
Mettre en place un annuaire LDAP
• Quelques exemples de logiciels :
⇒ OpenLDAP server,
⇒ Innosoft’s Distributed Directory Server,
⇒ Netscape Directory Server,
⇒ Sun Microsystems’s Directory Services,
⇒ IBM’s DSSeries LDAP Directory,
⇒ University of Michigan’s SLAPD
• D’autres annuaires supportent les requêtes au format LDAP :
⇒ Novell’s NetWare Directory Services (NDS) 3.0,
⇒ Microsoft’s Active Directory (AD),
⇒ Lotus Domino.
11/11/2023 298
Annuaire LDAP
Logiciels serveurs
• OpenLDAP est open source disponible sous la licence publique
(OpenLDAP Public License) à l’adresse http ://www.openldap.org/.
• OpenLDAP 2 est conforme à la norme LDAPv3.
• OpenLDAP existe pour de nombreuses plate-formes dont Linux,
Solaris, Mac OS 10.2, et de nombreuse versions de Windows.
• Le projet OpenLDAP s’inscrit dans la continuité du serveur LDAP de
l’université du Michigan.
11/11/2023 299
Annuaire LDAP
Avantages d’OpenLDAP
• Logiciel LDAP du domaine public
• le démon slapd:
⇒ traite les requêtes LDAP
• le démon slurpd:
⇒ permet la réplication
• des librairies LDAP:
⇒ par exemple pour authentifier les logins via LDAP :
libpamldap, libnssldap
• des utilitaires :
⇒ ldapadd, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd,
ldapsearch
11/11/2023 300
Annuaire LDAP
OpenLDAP
Le fichier /etc/ldap/slapd.conf permet de configurer le démon sladp
• définition des schémas utilisés:
include inetorgperson.schema
• définition du backend (type de la base de données utilisée)
backend bdb
• définition de la base, de l’annuaire et de l’administrateur
⇒ le suffixe (racine de l’arbre)
suffix "dc=labri,dc=fr’’
⇒ l’administrateur et son mot de passe
rootdn “cn=Manager,dc=labri,dc=fr”
rootpw MD5x0dg9sP0uUf+NRm0MIPz7Q==
⇒ le répertoire où la base est stockée
directory "/var/lib/ldap"
11/11/2023 301
Annuaire LDAP
Configuration du serveur LDAP
11/11/2023 302
Système Pare-feu
Netfilter, Iptables
11/11/2023 303
Système pare-feu
Définition
11/11/2023 304
Système pare-feu
Qu’est ce qu’un Firewall?
• Système physique ou logique servant d’interface entre un ou
plusieurs réseaux
• Analyse les informations des
couches 3, 4 et 7
11/11/2023 305
Système pare-feu
Pourquoi un Firewall?
• Contrôle: Gérer les connexions sortantes à partir du réseau
local.
• Sécurité: Protéger le réseau interne des intrusions venant de
l’extérieur.
• Vigilance: Surveiller/tracer le trafic entre le réseau local et
internet.
11/11/2023 306
Système pare-feu
Types de Firewalls
• Plusieurs types de firewalls :
⇒ Pare-feu au niveau réseau
⇒ Pare-feu au niveau applicatif
⇒ Pare-feu des applications
11/11/2023 307
Système pare-feu
Types de Firewalls?
• Pare-feu niveau réseau (Iptables, paquet filter,…)
⇒ Firewall fonctionnant à un niveau bas de la pile TCP/IP
⇒ Basé sur le filtrage des paquets
⇒ Possibilité (si mécanisme disponible) de filtrer les paquets suivant
l’état de la connexion
⇒ Intérêt: Transparence pour les utilisateurs de réseau
• Pare-feu au niveau applicatif (inetd, …)
⇒ Firewall fonctionnant au niveau le plus haut de la pile TCP/IP
⇒ permet de filtrer les communications application par application
⇒ Intérêt: Possibilité d’interpréter le contenu du trafic
• Pare-feu des applications (/etc/ftpaccess pour ftp,…)
⇒ Restrictions au niveau des différentes applications
11/11/2023 308
Système pare-feu
Filtrage de paquets
• Filtrage du trafic entrant et du trafic sortant:
⇒ Le firewall laisse passer certains paquets et rejette d’autres
paquets selon sa politique de sécurité.
11/11/2023 309
Système pare-feu
Filtrage de paquets
• Le filtrage se fait en analysant les entêtes des protocoles, en
priorité IP, UDP et TCP.
• En général, on définit une règle de filtrage en considérant:
⇒ Adresse IP source
⇒ Adresse IP destination
⇒ Port source
⇒ Port destination
⇒ Protocole encapsulé (ICMP, TCP, UDP,…)
⇒ Flag ACK (de TCP)
⇒ Type du message ICMP
• A chaque règle de filtrage est associé une action:
⇒ Laisser passer le paquet ou
⇒ Détruire/Rejeter le paquet
11/11/2023 310
Système pare-feu
Exemple de règles de filtrage
• Politique: Autoriser l’extérieure à accéder au service web sur le
réseau périphérique.
11/11/2023 311
Système pare-feu
Netfilter
• Netfilter est un framework implémentant le pare-feu au sein du
noyau Linux.
• Il se configure au moyen de l’outil iptables.
• Le filtrage réseau consiste à examiner les paquets réseaux et à
prendre des décisions sur le traitement à leur appliquer.
• Le système de filtrage permet notamment d’interdire des
connexions sur certains ports d’un ordinateur, de limiter le
nombre de connexions, de limiter les bandes passantes, etc.
• Netfilter a de très nombreuses fonctionnalités.
11/11/2023 312
Système pare-feu
Netfilter: principe de fonctionnement
• Lorsque la carte réseau reçoit un paquet, il est transmis à la
partie Netfilter du noyau ;
• Netfilter étudie ce paquet (en-têtes et contenu) en se basant sur
des règles définies par l’administrateur du système ;
• Netfilter choisit de laisser passer le paquet intact, de modifier ce
paquet, de le transmettre à une autre machine ou encore
d’interdire le passage.
11/11/2023 313
Système pare-feu
Netfilter: principe de fonctionnement
• Netfilter fonctionne en utilisant 3 tables :
⇒ la table filter correspond aux notions de filtrage réseau
(accepter ou refuser un paquet) ;
⇒ la table nat correspond aux fonctions de routage par
translation d’adresse (partage d’accès internet par exemple)
elle est consultée quand un paquet créant une nouvelle
connexion arrive;
⇒ la table mangle qui est utilisée pour marquer le paquet, le
modifier (notamment les bits de QOS) pour permettre de
faire par exemple de la qualité de service
11/11/2023 314
Système pare-feu
Netfilter: Table filter
• Netfilter se base sur 3 listes de règles pour définir son comportement
vis-à-vis d’un paquet (au niveau de la table filter). Le schéma suivant
récapitule le trajet d’un paquet au travers ces 3 chaînes :
Table filter
11/11/2023 315
Système pare-feu
Netfilter: Table filter
• Les trois chaînes ont les rôles suivants :
⇒ quand un paquet est reçu et est destiné à la machine locale,
ce paquet passe dans la chaîne INPUT. S’il est accepté par
cette chaîne, les processus qui attendent le paquet le recevront
11/11/2023 316
Système pare-feu
Netfilter: Table filter
• Les trois chaînes ont les rôles suivants :
⇒ quand un paquet est reçu et est destiné à une autre machine (la
machine locale doit le router vers une autre machine), ce
paquet passe dans la chaîne FORWARD. S’il est accepté, il est
retransmis vers sa destination ;
11/11/2023 317
Système pare-feu
Netfilter: Table filter
• Les trois chaînes ont les rôles suivants :
⇒ quand un paquet est émis par la machine locale, ce paquet
passe dans la chaîne OUTPUT. S’il est accepté, il sera envoyé
vers sa destination
11/11/2023 318
Système pare-feu
Netfilter: Table filter
• Pour chaque paquet qui passe dans ces chaînes, l’action peut
être :
⇒ ACCEPT, dans le cas ou le paquet est accepté ;
⇒ DROP, dans le cas ou le paquet est refusé silencieusement
(l’expéditeur ne reçoit d’erreur) ;
⇒ REJECT, dans le cas ou le paquet est refusé et l’expéditeur
reçoit une erreur
⇒ Chaque chaîne possède enfin une règle par défaut (policy)
qui définit l’action par défaut, initialement ACCEPT.
11/11/2023 319
Système pare-feu
IPtables
• Netfilter est lié à l’utilitaire iptables qui, travaillant dans l’espace
utilisateur, sert d’interface de configuration.
• iptables est un logiciel libre de l’espace utilisateur Linux grâce
auquel l’administrateur système peut configurer les chaînes et
règles dans le pare-feu en espace noyau (et qui est composé par
des modules Netfilter).
11/11/2023 320
Système pare-feu
IPtables
À l’arrivée d’un paquet (après décision de routage) :
1: Si le paquet est destiné à l’hôte local Alors
2: il traverse la chaîne INPUT.
3: Si il n’est pas rejeté Alors
4: il est transmis au processus impliqué.
5: Sinon
6: Si le paquet est destiné à un hôte d’un autre réseau Alors
7: il traverse la chaîne FORWARD
8: Si il n’est pas rejeté Alors
9: il poursuit alors sa route
Tous les paquets émis par des processus locaux au routeur
traversent la chaîne OUTPUT.
11/11/2023 321
Système pare-feu
Gestion du pare-feu
• Il suffit d’installer le paquet iptables, mais normalement celui-ci est
déjà installé
• Pour vérifier si le paquet est installé
Installation
# Sudo apt-get install iptables
# dpkg --list iptables
11/11/2023 322
Système pare-feu
Gestion du pare-feu
• Par défaut, iptables est réglé sur une politique permissive (open
config) où on laisse tout passer (policy ACCEPT).
• Cette commande permet de lister les règles qui sont actives
Configuration par défaut
# iptables -L
• Pour le moment, aucune règle
supplémentaire n’est définie ;
• cette commande vous
permettra de lister l’ensemble
des règles actives dans la table
filter.
• Ici, Netfilter accepte donc tous
les paquets.
11/11/2023 323
Système pare-feu
Gestion du pare-feu
• Pour bloquer une adresse qui aurait un comportement abusif :
• pour la débloquer :
• L’option -D ou --delete supprime la règle dans la chaîne spécifiée.
Bloquer des adresses IP spécifiques
# iptables -A INPUT -s xxx.xxx.xxx.xxx -j
DROP
# iptables -D INPUT -s xxx.xxx.xxx.xxx -j
DROP
11/11/2023 324
Système pare-feu
Gestion du pare-feu
• Pour bloquer un port spécifique en sortie :
• pour le débloquer :
• L’option -D ou --delete supprime la règle dans la chaîne spécifiée.
Bloquer/accepter des ports spécifiques
# iptables -A OUTPUT -p tcp --dport xxx -j
DROP
# iptables -D INPUT -p tcp –dport xxx -j DROP
11/11/2023 325
Système pare-feu
Gestion du pare-feu
• d’abord vérifier si vous pouvez effectuer une requête ICMP
• Pour bloquer le port 443 en sortie :
• pour le débloquer :
• Plusieurs ports peuvent être spécifiés en même temps
# iptables -A OUTPUT -p tcp –-dport 443 -j
DROP
# iptables -D INPUT -p tcp –-dport 443 -j
DROP
# iptables -A INPUT -p tcp -m multiport --dports 80,443
-j ACCEPT
Interdire tout paquet sortant vers le web
11/11/2023 326
Système pare-feu
Gestion du pare-feu
• d’abord vérifier le ping
• Pour bloquer le protocole ICMP en entrée :
• Vérifier que le ping ne marche pas, maintenant.
# iptables -A INPUT -p icmp -i enp0s3 -j DROP
Bloquer le protocole ICMP (ping)
11/11/2023 327
Système pare-feu
Gestion du pare-feu
• Un réseau complet peut être spécifié, par exemple pour autoriser
un accès SSH :
# iptables -A OUTPUT -p tcp -d 10.10.10.0/24 --dport
22 -j ACCEPT
Autoriser un réseau
11/11/2023 328
Système pare-feu
Gestion du pare-feu
• L’accès à l’interface de loopback doit toujours être possible. Les
lignes suivantes doivent impérativement être présentes :
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
Accès à la loopback
11/11/2023 329
Système pare-feu
Gestion du pare-feu
• Tester premièrement, que vous pouvez se connecter à votre
machine à travers Telnet
• Fermez le port telnet
• Vérifier maintenant que vous ne pouvez pas se connecter par telnet
# iptables -A INPUT -p tcp --dport 23 -m state –-
state
NEW,ESTABLISHED -j DROP
Fermer le port Telnet
# telnet localhost
11/11/2023 330
Système pare-feu
Gestion du pare-feu
• Pour limiter le nombre de paquets par adresse (protection contre le
flooding) :
• Pour limiter le nombre de connexions actives (ici 3 sur le port ssh) :
Limiter le nombre de connexion à une adresse
# iptables -A INPUT -p tcp --dport 80 -m limit --
limit 50/minute --limit-burst 100 –j ACCEPT
#iptables -A INPUT -p tcp --syn --dport 22 -m
connlimit --connlimit-above 3 -j REJECT
11/11/2023 331
Système pare-feu
Gestion du pare-feu
• Pou effacer toutes les entrées des iptables
• Pour remettre la politique par défaut (ACCEPT):
Réinitialiser les iptables
# iptables -F
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
11/11/2023 332
Système pare-feu
Gestion du pare-feu
Exemple de paramètres à utiliser
11/11/2023 333
Serveur de messagerie électronique
Postfix
• Vous ne voulez plus confier vos mails à Gmail, Yahoo ou
Hotmail ?
• Vous voulez héberger vos mails chez vous ?
11/11/2023 334
Messagerie électronique
Problématique
• L'ensemble des éléments contribuant à transmettre un
courriel de l'émetteur au récepteur
• courrier électronique: message transmis via un réseau
informatique
11/11/2023 335
Messagerie électronique
Système de messagerie électronique
• 3 composants principaux :
⇒ Agent de transfert de mail: Mail Transfert Agent (MTA)
⇒ Agent de livraison: Mail Delivery Agent (MDA)
⇒ Agent utilisateur: Mail User Agent (MUA)
11/11/2023 336
Messagerie électronique
Courier électronique: composants
• le bureau de poste
• reçoit les messages depuis les
autres MTA ou les clients mail,
• transmet les messages aux autres
MTA,
• Gère une liste de messages
sortants
• utilise le protocole Simple Mail
Transfer Protocol (SMTP)
⇒ modèle C/S : Client
(émetteur) - Serveur (MTA
récepteur)
⇒ le client se connecte sur le
port 25/TCP du serveur pour
transférer son message
• Exemple: sendmail, exim, postfix,
exchange, Lotus Domino
11/11/2023 337
Messagerie électronique
Mail Transfer Agent: MTA
• le facteur
• reçoit les messages depuis le MTA
Final,
• stocke les messages dans les
boites aux lettres utilisateurs,
• autres tâches :
• tris ;
• filtre (antispam,. . .) ;
• antivirus ;
• . . .
• généralement ce rôle est assuré
par le MTA
• Exemple: procmail, maildrop, . . .
11/11/2023 338
Messagerie électronique
Mail Delivery Agent: MDA
• Le stylo et le papier
• composition, édition, lecture du
courrier électronique
• dialogue un serveur pour
émettre/recevoir des messages
• Plusieurs protocoles :
• SMTP pour envoyer les
messages au serveur
• POP, IMAP, HTTP, . . .pour lire
les messages
• exemple : Kmail, Thunderbird,
Outlook, elm, pine, . . .
11/11/2023 339
Messagerie électronique
Mail User Agent: MUA
11/11/2023 340
Messagerie électronique
Parcours d’un mail
11/11/2023 341
Messagerie électronique
Parcours d’un mail
11/11/2023 342
Messagerie électronique
Parcours d’un mail
11/11/2023 343
Messagerie électronique
Parcours d’un mail
11/11/2023 344
Messagerie électronique
Parcours d’un mail
11/11/2023 345
Messagerie électronique
Parcours d’un mail
• SMTP signifie Simple Message Transfert Protocole, ce protocole
est utilisé pour transférer les messages électroniques sur les
réseaux.
• Le client utilise SMTP pour émettre les messages au serveur de
courrier électronique.
• Quant à la réception de messages électronique, le client utilise
les autres protocoles tels que POP (Post Office Protocol), IMAP
(Internet Message Access Protocol) et les systèmes propriétaires
(Microsoft Exchange et Lotus Note)
• Un serveur SMTP est un service qui écoute sur le port 25, son
principal objectif donc est de router les mails à partir de
l'adresse du destinataire.
11/11/2023 346
Messagerie électronique
SMTP : Introduction
• Le schéma suivant présente la succession de ces différentes
phases :
11/11/2023 347
Messagerie électronique
SMTP : Exemple général
• Le service SMTP est divisé en plusieurs parties, chacune assurant
une fonction spécifique :
• MUA : Mail User Agent, c’est le client de messagerie (Exemples :
Outlook, ThunderBird),
• MTA : Mail Transfert Agent, c'est l'élément principal d'un serveur
SMTP car c'est lui qui s'occupe d'envoyer les mails entre les
serveurs. En effet, avant d'arriver dans la boite mail du
destinataire, le mail va transiter de MTA en MTA. Il est possible de
connaitre l'ensemble des MTA par lesquels le mail est passé, pour
cela il suffit d'afficher la source du message,
• MDA : Mail Delivery Agent, c'est le service de remise des mails
dans les boîtes aux lettres (les espaces mémoires réservés) des
destinataires, il intervient donc en fin de la chaine d'envoie d'un
mail.
11/11/2023 348
Messagerie électronique
SMTP : Détail du
fonctionnement
• Un utilisateur souhaite émettre un courrier.
• Le client SMTP se charge de trouver le destinataire en échangeant
les commandes/réponses avec le serveur SMTP.
• Le serveur SMTP local se charge de transférer le courrier
11/11/2023 349
Messagerie électronique
SMTP : Structure client-
serveur
• Les adresses globales de courrier sont définies par les standards
RFC 5321 et 5322.
• une adresse se compose en deux parties : le nom de boîte à
lettre et le nom de domaine DNS
Exemple:
berraho.sanae@gmail.com
• La taille du nom de boîte à lettre ne doit pas dépasser 64 octets ;
le point« . » est autorisé
• En théorie, le nom de boîte à lettre n’attache pas au login. En
pratique, on utilise le login (berraho.sanae, par exemple) comme
le nom de boîte à lettre.
• Le système de nom de domaines (DNS) permet de déterminer le
serveur de courrier.
11/11/2023 350
Messagerie électronique
SMTP : Adresses de courrier
• Les protocoles POP (Post Office Protocol ) et IMAP (Internet
Message Access Protocol) sont les protocoles dérivés du
protocole SMTP.
• Ils sont utilisé pour relever du courrier dans une boite aux lettres
• Fonctions de transfert de courrier d’un serveur de messagerie
vers un client de messagerie
• Fonctions de gestion des archives de courrier (liste de messages
en attente, destruction de message…)
11/11/2023 351
Messagerie électronique
POP, IMAP
• Le protocole POP3 (Post Office Protocol version 3), le standard
RFC 1939, est largement implémenté. C’est un protocole le plus
simple.
• Le principe : le client se connecte au serveur pour relever
définitivement les messages en attente via TCP (port 110) ; les
messages sont transmis vers la boîte aux lettres du client.
• Afin d’éviter tous problèmes de sécurité, le client doit
s’authentifier. Les mesures de TLS (Transport Layer Security) et
SSL (Secure Socket Layer) pourront être utilisées.
11/11/2023 352
Messagerie électronique
POP: Principe
• Le protocole IMAP4 (Internet Message Access Protocol), le
standard RFC 3501 qui remplace le RFC 2060, est largement
implémenté par client. C’est un protocole le plus complet.
• deux modes (connected and disconnected modes) permettent à
un client de se connecter (ou se déconnecter, les courriers
récupérés durant une connexion sont dans un cache) au serveur
pour relever les messages en attente via TCP (port 143)
• les messages sont souvent stockés dans la boîte aux lettres du
serveur de messagerie; ce mode permet à un utilisateur de
consulter ses courriers via plusieurs machines différentes
• La boîte aux lettres du serveur peut être consultée par plusieurs
clients
11/11/2023 353
Messagerie électronique
IMAP: Principe
11/11/2023 354
Messagerie électronique
POP vs IMAP
Récupérer le courriel sur un
serveur de messagerie
La gestion de plusieurs accès
simultanés
La gestion de plusieurs boîtes
aux lettres
La synchronisation des
courriels entre le serveur
et le client
POP3 IMAP
Le tri du courrier selon des
critères
• Sendmail: crée par Eric Allman en 1980 est un logiciel Open
Source. La technique « séparation de tâches » est implémenté
afin d’éviter le problème de sécurité. (voir le fichier sendmail.cf)
• Postfix: crée principalement par Vietse Venema à IBM en 2001.
(voir main.cf et master.cf)
• Qmail: crée par Daniel. J. Bernstein en 1997. La sécurité de
messages a été un des objectifs. Qmail utilise maildir permettant
de stocker les messages client par client
• Exim, crée principalement par Philippe Hazel en 1997
11/11/2023 355
Messagerie électronique
Implémentations: Serveurs de messagerie libre
(MTA)
• Les messageries d’entreprise sont souvent intégrés dans des
suites bureautiques ou serveurs WEB
• Microsoft Exchange / Internet Information Service
• Lotus Notes/Domino (IBM)
• IMAIL
11/11/2023 356
Messagerie électronique
Implémentations: Serveurs de messagerie propriétaire (MTA)
• Gestion de boîte aux lettres
• Stockage: plusieurs utilisateurs utilisent le même fichier dans
lequel plusieurs messages sont stockés ou chaque utilisateur
possède un propre répertoire
• Filtrage des messages (SPAM, par exemple) et l’envoi de message
de réponse automatique
• Logiciels différents: procmail, maildrop, deliver et mailfilter. Des
MDA sont aussi intégrés aux grands logiciels de messagerie
intégrés (Exim, Exchange, par exemple)
• Standards de boîte aux lettres: maildir
• Les MDA incorporent les outils de protection contre les virus et le
SPAM (très grande variété de produits)
11/11/2023 357
Messagerie électronique
Implémentations: Serveurs de délivrance de messages
(MDA)
• Maildir est une structure
de répertoires particulière, qui est
utilisée pour sauvegarder
des courriers électroniques.
11/11/2023 358
Messagerie électronique
Implémentations: Serveurs de délivrance de messages
(MDA)
• Clients lourds : Nécessite l’installation d’une application particulière
sur le poste client.
• Quelques logiciels: Outlook Express, Mozilla Thenderbird, Eudora,
foxmail …
• Clients légers (clients WEB WEBMAIL, hotmail, Gmail et Yahoo par
exemple) : Pour consulter du courrier avec une application client
serveur WEB.
• Quelques logiciels : sqWebMail, IMP, SquirrelMail, ...
11/11/2023 359
Messagerie électronique
Implémentations: Client de messagerie (MUA)

Admin_Réseaux_linux_cours.pptx

  • 1.
    Administration des réseauxsous linux BERRAHO SANAE
  • 2.
    • Objectif dumodule: former des administrateurs réseaux ⇒ Maîtriser les enjeux et les finalités de l'administration des réseaux. ⇒ Aborder en détails la configuration réseau d'un poste client sous Linux ⇒ Apprentissage et mise en place de services utilisés dans l’administration réseau d’un parc de machines ⇒ connaître les principaux protocoles applicatifs et savoir mettre en place les services associés sous Linux 11/11/2023 2 Objectifs du cours Manipulation des notions/outils nécessaire à un administrateur réseaux sous linux
  • 3.
    Le rôle d’unadministrateur réseau consiste (entre autre) à : • Mettre en place et maintenir l’infrastructure du réseau (organisation, . . . ). • Installer et maintenir les services nécessaires au fonctionnement du réseau. • Assurer la sécurité des données internes au réseau (particulièrement face aux attaques extérieures). • S’assurer que les utilisateurs “n’outrepassent” pas leurs droits. • Gérer les “logins” (i.e. noms d’utilisateurs, mot de passe, droits d’accès, permissions particulières, . . . ). • Gérer les systèmes de fichiers partagés et les maintenir. 11/11/2023 3 Introduction et généralités Rôles d’un administrateur réseau L’administrateur réseau est responsable de ce qui peut se passer à partir du réseau administré.
  • 4.
    11/11/2023 4 Introduction etgénéralités Niveaux d’administration • Un parc de machines (ou de postes) homogènes • Poste individuel: peut être délégué a son propriétaire • Serveur: forte responsabilisation sur la disponibilité des services • Distribution/mise en commun des ressources • Un parc de machines hétérogènes • s'efforcer de rendre l'ensemble des équipements interopérable • la complexité croît avec le taux d'hétérogénéité • Un parc multi-sites
  • 5.
    • Supervision dufonctionnement des réseaux. • Optimisation pour l’utilisation des ressources. • Détection et prévision des erreurs. • Signalisation des pannes. • Calculs de facturations à l’utilisation des ressources. • Le support technique pour utilisateurs. 11/11/2023 5 Introduction et généralités Objectifs de l’administration des réseaux pour un administrateur
  • 6.
    • Linux estun système d'exploitation, comme UNIX, MS Windows, Mac OS X. • C'est un "UNIX-like", il suit le "modèle UNIX": • Les fichiers sont de simples "paquets d'octets" • Les données sont de simples flux de bits. • Tout est fichier ( les programmes, les données, les flux réseaux, les périphériques...) • Multitâche • Multi-utilisateurs • Libre et gratuit • Outils / logiciels gratuits 11/11/2023 6 Introduction et généralités Présentation de Linux
  • 7.
    • Mandriva: http://www.mandriva.com/ •RedHat: http://www.redhat.com/ • Fedora: http://fedora.redhat.com/ • SuSE/Novell: http://www.suse.com/ • Debian: http://www.debian.org/ • Gentoo: http://www.gentoo.org/ • Ubuntu: http://www.ubuntu.com/ 11/11/2023 7 Introduction et généralités Quelques distributions Linux
  • 8.
    11/11/2023 8 Introduction etgénéralités Pourquoi choisir Ubuntu • Disponible gratuitement et librement • Thème graphique et sonore particulier • Toujours à la pointe: Une nouvelle version tous les six mois propulse Ubuntu continuellement vers l'avant ; • Le système des dépôts de logiciels permet d'installer en quelques clics, avec une grande facilité , des logiciels extrêmement variés • Les mises à jour de sécurité sont simplifiées et gérées graphiquement : Une tâche de notification prévient lorsqu'une mise à jour est disponible. En quelques clics, machine et logiciels sont sécurisées ; • Une vaste communauté contributive
  • 9.
    • L'installation sefait en 4 étapes : – Installation du logiciel VirtualBox – Création d'une machine virtuelle – Installation du système Linux – Configuration du système 11/11/2023 9 Introduction et généralités Installation d’Ubuntu
  • 10.
    • L’administration d’unsystème UNIX, se fait en prenant l’identité de root • Souvent l’invité de commandes est le symbole « # » et le répertoire de connexion /root • Il est aussi possible de prendre temporairement, quand on est déjà connecté, l’identité de l’administrateur grâce à la commande su • Il n’est pas conseillé de toujours travailler connecté en tant que root. Il est préférable de disposer d’un compte ordinaire et d’exécuter la commande su. 11/11/2023 10 Introduction et généralités Le compte root
  • 11.
    • Tout estfichier. • Tous les fichiers sont dans une unique arborescence. 11/11/2023 11 Introduction et généralités Le système de fichiers Linux SupMTI
  • 12.
    11/11/2023 12 Introduction etgénéralités Organisation des fichiers Linux Nom du dossier Commentaires /bin Regroupe les fichiers exécutables pour l'initialisation du système et les commandes « essentielles » /boot Contient le noyau et des fichiers nécessaires au démarrage /dev Contient les fichiers spéciaux servant pour communiquer avec les périphériques (disques, adaptateur réseau, cartes son etc...) /etc Contient les fichiers de configuration du système /home Contient l'ensemble des répertoires personnels des utilisateurs du système (le nom du répertoire correspondant au login de l'utilisateur) /lib Contient les bibliothèques (souvent des parties de programmes qui peuvent être commune à plusieurs programmes)
  • 13.
    11/11/2023 13 Introduction etgénéralités Organisation des fichiers Linux /mnt Contient généralement l'ensemble des points de montage des périphériques (cd, disquette...) /floppy et pour le CD /cdrom au lieu de /mnt/floppy et /mnt/cdrom/optContient des applications supplémentaires /root Est le répertoire personnel de l'administrateur /sbin Contient les exécutables uniquement accessibles à l'administrateur /tmp Contient les fichiers temporaires du système /usr répertoire personnel des utilisateurs, Contient les programmes accessibles à l'ensemble des utilisateurs /var Contient les données de cache pour certaines applications (apt, cups...) ou encore les fichiers enregistrant les messages du système
  • 14.
  • 15.
    • Les réseauxinformatiques utilisent un modèle composé de plusieurs couches de protocoles. • Le modèle OSI correspond à une approche plus théorique en décomposant le fonctionnement en une pile de 7 couches. • Modèle TCP/IP est un modèle de protocole, car il décrit les fonctions qui interviennent à chaque couche des protocoles au sein de la suite TCP/IP. 11/11/2023 15 Généralités
  • 16.
    • Avant depouvoir utiliser ou fournir des services sur un réseau, un système Linux doit déjà être connecté à ce réseau. • Sur un ordinateur de bureau, cette configuration est souvent automatique, mais il est bon de la maîtriser si l'on souhaite jouer un rôle d’administrateur réseau. • Les réseaux informatiques utilisent un modèle composé de plusieurs couches de protocoles. • Nous nous intéressons ici à la couche réseau, qui utilise le protocole IP (Internet protocol): c'est cette couche qui définit la topologie des réseaux  Sa configuration est très importante. 11/11/2023 16 Configuration réseau Principes
  • 17.
    • Un ordinateurcommunique avec les autres ordinateurs en utilisant une carte ou une clef réseau, • Du point de vue du système d'exploitation, ce périphérique est une interface réseau. • Sous Linux, ces interfaces sont nommées: • eth0, eth1… : interfaces filaires, • wlan0, wlan1: interfaces sans fil (wifi, wimax…). • lo (pour loopback): votre propre ordinateur. 11/11/2023 17 Configuration réseau Principes
  • 18.
    • Une adresseIP: identifie votre hôte sur le réseau où il est connecté. une adresse unique sur un réseau. C’est une suite de 4 nombres allant de 0 à 255 (inclus) séparés par des points. Cette adresse IP appartient à une classe réseau. Il existe 5 classes d’IP 11/11/2023 18 Configuration réseau Eléments de configuration
  • 19.
    • un masquede sous-réseau: cette donnée indique la partie de votre adresse qui caractérise le réseau local sur lequel votre hôte est connecté, et lui permet de déterminer, pour n’importe quelle adresse IP, si celle-ci fait ou non partie du réseau local; 11/11/2023 19 Configuration réseau Eléments de configuration
  • 20.
    • une passerellepar défaut: c'est l'adresse IP à laquelle il faut transmettre les paquets IP destinés à des hôtes situés hors du réseau local, pour qu'ils soient routés vers le réseau local de leur destinataire ; 11/11/2023 20 Configuration réseau Eléments de configuration
  • 21.
    • des serveursDNS: ce sont les adresses de serveurs auxquels votre système ira demander les correspondances entre noms de domaine et adresses IP. 11/11/2023 21 Configuration réseau Eléments de configuration
  • 22.
    • sans adresseIP, il est impossible de recevoir les réponses à ses requêtes ; • sans masque de sous-réseau ou sans passerelle par défaut, il est impossible de communiquer avec les hôtes situés hors du réseau local ; • sans serveur DNS, on ne peut pas désigner un hôte par son nom de domaine, et il faut donc connaître les adresses IP de tous les serveurs que l'on souhaite utiliser. 11/11/2023 22 Configuration réseau Eléments de configuration
  • 23.
    • vous devezconnaître à l'avance votre configuration complète, pour l'appliquer sur votre système. • Configurer la connexion consiste à affecter à la carte réseau son adresse IP et son masque de sous-réseau, à ajouter la passerelle par défaut à la table de routage du noyau Linux, et à noter l'adresse des serveurs DNS dans le fichier de configuration du résolveur DNS. 11/11/2023 23 Configuration réseau Modes de configuration Configuration statique Configuration dynamique • Très répandue, est plus adapté aux ordinateurs portables, susceptibles d'être connectés à des réseaux différents • lorsque le système démarre, ou détecte qu'il vient d'être connecté à un réseau, envoie une demande de paramètres de connexion. • Cette demande utilise le protocole DHCP (dynamic host configuration protocol)
  • 24.
    • La commandeifconfig (InterFace CONFIGuration) permet de connaître la configuration réseaux et de configurer le réseau à la main ou dans un script. • Sans paramètres cette commande permet d’afficher les paramètres réseaux des interfaces. 11/11/2023 24 Configuration d’une station Afficher les paramètres des interfaces # ifconfig eth0 Link encap:Ethernet HWaddr 00:B2:3A:24:F3:C4 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::2c0:9fff:fef9:95b0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:5 collisions:0 txqueuelen:1000 RX bytes:1520 (1.4 KiB) TX bytes:2024 (1.9 KiB) Interrupt:10
  • 25.
    11/11/2023 25 Configuration d’unestation Afficher les paramètres des interfaces Lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:92 errors:0 dropped:0 overruns:0 frame:0 TX packets:92 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6040 (5.8 KiB) TX bytes:6040 (5.8 KiB) Cette commande peut également afficher les interfaces non configurées, avec l'argument -a, pour all. Cela peut servir à déterminer le nom d'une interface non encore configurée
  • 26.
    • Pour appliquerune configuration à une interface, on utilise ifconfig, avec des arguments correspondants: • Pour supprimer une configuration IPv4, on utilise la commande: • Pour activer l’interface, on utilise la commande: 11/11/2023 26 Configuration d’une station Configuration statique: l’adresse IP # ifconfig eth0 192.168.0.42 # ifconfig eth0 down # ifconfig eth0 up Ifconfig est remplacée par la commande ip dans les dernières versions d’Unix
  • 27.
    • La passerellepar défaut permet de définir l'hôte du réseau local vers lequel envoyer tous les paquets destinés à des hôtes situés hors du réseau local  Route par défaut. • Cette route doit être ajoutée à la table de routage du noyau Linux, avec la commande route. • Exemple: la passerelle par défaut a pour adresse IP 192.168.0.1, et peut être jointe par votre interface eth0 11/11/2023 27 Configuration d’une station Configuration statique: la passerelle par défaut # route add default gw 192.168.0.1 dev eth0
  • 28.
    • La configurationIP et la route par défaut concernaient le noyau Linux • Les serveurs DNS concernent le résolveur: une fonction logicielle qui permet de traduire les noms de domaines en adresses IP. • Ce résolveur utilise pour cela les serveurs dont les adresses sont notées dans le fichier /etc/resolv.conf • Exemple: Si le serveur DNS de votre fournisseur d'accès, a pour adresse IPv4 192.0.2.71, il faut éditer le fichier pour qu’il contienne : 11/11/2023 28 Configuration statique d’une station Configuration statique: le serveur DNS # nameserver 192.0.2.71
  • 29.
    • Dans unréseau IPv4, on peut demander une configuration par DHCP en utilisant le programme dhclient 11/11/2023 29 Configuration d’une station # dhclient eth0 Configuration dynamique
  • 30.
    • La configurationd’une interface avec ifconfig n’est pas enregistrée sur le disque. • elle n’est pas conservée en cas de réinitialisation du système (reboot) • Pour enregistrer la configuration de manière permanente, if faut créer cette configuration dans le fichier de configuration: /etc/network/interfaces • Pour réinitialiser le réseau après un changement dans les fichiers de configuration, il faut faire : • Pour les versions récentes d’Ubuntu, il faut faire 11/11/2023 30 Configuration d’une station Configuration permanente $ sudo ip addr flush interface-name $ sudo systemctl restart networking # /etc/init.d/networking restart
  • 31.
    11/11/2023 31 Configuration d’unestation • Configuration permanente Configuration permanente: Ethernet statique • Le fichier /etc/network/interfaces sert à paramétrer l’accès de votre ordinateur à un réseau. Il contient la configuration des interfaces réseau : • eth0, eth1, .. - liaison par câble • lo - interface loopback (127.0.0.1) autrement appelé le localhost qui permet par convention de contacter la machine locale sans sortir de la machine locale • wlan0, wlan1, .. - interface wifi # cat /etc/network/interfaces
  • 32.
    11/11/2023 32 Configuration d’unestation Configuration permanente: Ethernet statique # configuration de l'interface lo (obligatoire) auto lo iface lo inet loopback # configuration de l'interface eth0 auto eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.0.2.71
  • 33.
    Quelques explications: • auto⇒ Le nom de l’interface à monter automatiquement lors du démarrage du système • iface ⇒ Définir le mode (static ou DHCP). Syntaxe: iface <nom_config> <famille_adresse> <nom_méthode> • address ⇒ L’adresse IP • netmask ⇒ Le masque reseau • broadcast ⇒ Le broadcast • gateway ⇒ La passerelle • dns-nameservers ⇒ Le serveur DNS 11/11/2023 33 Configuration d’une station Configuration permanente: Ethernet statique
  • 34.
    • Certains réseauxlocaux sont configurés en DHCP (pour Dynamic Host Configuration Protocol). • la station n’a pas besoin de connaître son adresse IP pour se connecter, mais l’addresse IP est fixée directement par le serveur DHCP • Dans ce cas, le fichier interfaces est nettement simplifié et ne dépend que de l’interface: 11/11/2023 34 Configuration d’une station Configuration permanente: Ethernet DHCP auto lo iface lo inet loopback # configuration de l'interface eth0 auto eth0 iface eth0 inet dhcp
  • 35.
    • Pour testersi la carte réseau fonctionne, on peut essayer de communiquer avec une autre machine avec la commande: • La commande ping envoi un paquet à l'adresse IP puis attend que la machine réponde. Elle affiche ensuite le temps qu'a pris toute l'opération, en millisecondes. 11/11/2023 35 Configuration d’une station Tester le réseau # ping <adresse ip>
  • 36.
    11/11/2023 36 Outils del’administrateur réseau Outils de l’administrateur réseau sous linux Commandes Fichiers de configuration
  • 37.
    • Le fichier/etc/hosts contient une liste de résolutions de noms (adresses IP et noms de machine). Par exemple: • Ce fichier contient une ligne pour l’entrée loopback • Il doit aussi contenir une ligne indiquant le nom de l’ordinateur et son adresse IP (utile en cas de défaillance du serveur DNS) • Ce fichier indique que sup correspond à l'adresse IP 192.168.105.2, qui sera accessible par cet alias. 11/11/2023 37 Outils de l’administrateur réseau Fichier /etc/hosts 127.0.0.1 localhost 127.0.0.1 berraho-pc 192.168.105.2 sup Fichiers de configuration
  • 38.
    • le fichier/etc/networks contient les adresses des réseaux. • Ce fichier est utilisé par la commande route pour donner un nom aux différents réseaux. • Chaque entrée est constituée du nom du réseau, suivi de son adresse IP. • Cette option permet par exemple d'adresser un réseau sur son nom, plutôt que sur son adresse. 11/11/2023 38 Outils de l’administrateur réseau Fichier /etc/networks localnet 127.0.0.1 foo-net 192.168.1.0 # route add foo- net # route add -net 192.168.1.0 Au lieu de Fichiers de configuration
  • 39.
    • Le fichier/etc/host.conf permet de définir le comportement du système lors de la résolution d'un nom. • Dans cet exemple, les entrées permettent d'indiquer que la recherche des noms pour leur résolution doit se faire d'abord localement, puis par appel aux DNS si la recherche précédente a échoué. • La deuxième ligne permet de faire en sorte que toutes les adresses correspondant à une machine soient renvoyées. • Si l'on avait utilisé l'option multi off, seule la première adresse IP trouvée aurait été renvoyée. 11/11/2023 39 Outils de l’administrateur réseau Fichier /etc/host.conf order hosts,bind multi on Fichiers de configuration
  • 40.
    • Le fichier/etc/resolv.conf contient les adresses IP des serveurs de noms (machines chargées de la résolution de noms). • nameserver indique l’adresse IP du serveur de noms auquel le résolveur devrait envoyer ses requêtes. 11/11/2023 40 Outils de l’administrateur réseau Fichier /etc/resolv.conf Nameserver 192.168.1.1 Nameserver 192.168.1.2 Nameserver 192.168.1.3 Fichiers de configuration
  • 41.
    • sans argument,affiche les interfaces réseau actives. • L’option -a permet d’afficher toutes les interfaces, y compris celles qui ne sont pas activées. • L’options up / down permet d’activer ou désactiver interface en particulier. On peut configurer une interface réseau (dynamiquement, ne sera plus active après un reboot). • Remplacée par la commande ip dans les dernières versions d’Unix. 11/11/2023 41 Outils de l’administrateur réseau Commandes Commande ifconfig
  • 42.
    • Permet devisualiser ou modifier la table du cache arp de l'interface • Permet de mettre en correspondance des adresses IP et les adresses MAC. • A chaque nouvelle requête, le cache ARP de l'interface est mis à jour • L’option -va affiche la table ARP. • L’option -d nom_machine/@ip supprime l’entrée de la table, • -s nom_machine adresses_mac ajoute une nouvelle entrée dans la table. 11/11/2023 42 Outils de l’administrateur réseau Commande arp Commandes ? (192.168.1.2) at 00:40:33:2D:B5:DD [ether] on eth0 >Entries: 1 Skipped: 0 Found: 1 # arp –d 192.168.1.2 # arp –s 192.168.1.2 00:40:33:2D:B5:DD
  • 43.
    • Le besoin: oLa communication entre machines ne peut s'effectuer qu'à travers l'interface physique o Les applicatifs ne connaissent que des adresses IP, comment établir le lien adresse IP / adresse physique ? • La solution : ARP o Mise en place dans TCP/IP d’un protocole de bas niveau appelé Adress Resolution Protocol (ARP) o Rôle de ARP : fournir à une machine donnée l'adresse physique d'une autre machine située sur le même réseau à partir de l'adresse IP de la machine destinatrice 11/11/2023 43 Outils de l’administrateur réseau Rappel sur le protocole ARP: Address Resolution Protocol
  • 44.
    • La technique: oDiffusion d'adresse sur le réseau physique o La machine d'adresse IP émet un message contenant son adresse physique o Les machines non concernées ne répondent pas o Gestion cache pour ne pas effectuer de requête ARP à chaque émission 11/11/2023 44 Outils de l’administrateur réseau Rappel sur le protocole ARP: Address Resolution Protocol
  • 45.
    • Permet devoir, d’ajouter ou d’enlever les routes se trouvant déclarées sur votre machine • Le routage définit le chemin emprunté par les paquets entre son point de départ et son point d'arrivée. • Pour indiquer à votre machine où aller trouver les adresses qui ne sont pas les adresses de votre réseau local, vous devez lui indiquer la passerelle (ou gateway) vers laquelle elle doit envoyer tous les paquets • Pour ajouter une route par défaut: • Pour détruire cette route 11/11/2023 45 Outils de l’administrateur réseau Commande route Commandes # route add default gw 192.168.0.1 dev eth0 # route del default
  • 46.
    • Pour afficherla table de routage: 11/11/2023 46 Outils de l’administrateur réseau Commande route Commandes # route -n
  • 47.
    • permet detester la configuration du réseau, visualiser l’état des connexions, établir des statistiques, notamment pour surveiller les serveurs 11/11/2023 47 Outils de l’administrateur réseau Commande netstat (network statistics) Commandes # netstat
  • 48.
    • Proto :le protocole utilisé. Les classiques TCP et UDP mais également TCP6 et UDP6 pour les variantes IPV6. • Recv-Q : Le nombre de Bytes dans la file d’attente de réception. Devrait toujours être à zéro • Send-Q : Le nombre de Bytes dans la file d’attente d’envoi. Devrait toujours être à zéro • Adresse locale : l’adresse et le port utilisé sur la machine locale • Adresse distante : l’adresse et le port utilisé par la machine distante • Etat : LISTEN quand le programme écoute et attend une connexion. ESTABLISHED lorsque la connexion est établie. • PID/Program name : Le numéro de processus et le nom du programme 11/11/2023 48 Outils de l’administrateur réseau Commande netstat (network statistics) Commandes
  • 49.
    Quelques paramètres dela commande netstat: • -a : Tous les ports • -t : Tous les ports TCP • -u : Tous les ports UDP • -l : Tous les ports en écoute • -n : Affiche directement les IP. Pas de résolution de nom. • -p : Affiche le nom du programme et le PID associé 11/11/2023 49 Outils de l’administrateur réseau Commande netstat (network statistics) Commandes
  • 50.
    • Permet d'afficherle chemin parcouru par un paquet pour arriver à destination. Cette commande est importante, car elle permet d'équilibrer la charge d'un réseau, en optimisant les routes. • On peut utiliser soit l’adresse IP, soit le nom d’hôte. 11/11/2023 50 Outils de l’administrateur réseau Commande traceroute Commandes # traceroute 192.168.1.109
  • 51.
    • Permet d’interrogerle serveur DNS et de diagnostiquer les dysfonctionnements dans la résolution de nom. 11/11/2023 51 Outils de l’administrateur réseau Commande dig Commandes # dig google.com
  • 52.
    • La commandehost interroge les serveurs de noms. Elle peut par exemple être utilisée pour détecter des dysfonctionnement sur un réseau (serveurs hors services). 11/11/2023 52 Outils de l’administrateur réseau Commande host Commandes
  • 53.
    11/11/2023 53 Serveur DHCP DynamicHost Configuration Protocol
  • 54.
    • Sur lesréseaux locaux de grande taille ou sur les réseaux dont les utilisateurs changent fréquemment, le service DHCP est très recommandé. ⇒ De nouveaux utilisateurs peuvent se présenter travaillant sur des ordinateurs portables et nécessitant une connexion. ⇒ D’autres peuvent disposer de nouvelles stations de travail devant être connectées. ⇒ Plutôt que de faire attribuer des adresses IP par l’administrateur réseau à chaque station de travail, il est plus efficace que les adresses IP soient attribuées automatiquement à l’aide du protocole DHCP. 11/11/2023 54 Dynamic Host Configuration Protocol Service DHCP
  • 55.
    • La Gestiondes adresses IP ⇒ Les adresses IP doivent être unique ⇒ Nécessité d’une liste d’ordinateurs avec leurs adresses IP respectives • La Gestion des principaux paramètres IP ⇒ Masques de sous-réseaux ⇒ Adresses IP du gateway ⇒ Serveurs DNS 11/11/2023 55 Dynamic Host Configuration Protocol Problèmes de gestion avec IP
  • 56.
    • DHCP :Dynamic Host Configuration Protocol ⇒ « Protocole de configuration Dynamique des clients » • DHCP est une extension du protocole BOOTP qui permet à un client sans disque dur (terminal X, imprimante, etc.) de démarrer et de configurer automatiquement TCP/IP. • Bâti sur un modèle client-serveur utilisant UDP • Composé de deux parties : ⇒ Un protocole ⇒ Un mécanisme de création d’adresses 11/11/2023 56 Dynamic Host Configuration Protocol Protocole DHCP
  • 57.
    • DHCP permetde: ⇒ Allocation dynamique des adresses IP. ⇒ Utilisation automatique de la plupart des paramètres de réseau. ⇒ Maintenance des adresses IP en cours grâce au concept de « bail d’adresses IP». 11/11/2023 57 Dynamic Host Configuration Protocol Protocole DHCP ⇒ Un réseau peut avoir plusieurs serveurs DHCP. ⇒ Le client ne désigne pas un serveur
  • 58.
    11/11/2023 58 Dynamic HostConfiguration Protocol Serveur DHCP: schéma classique
  • 59.
    • Modèle client-serveur •Le client : ⇒ Vient de démarrer et réclame sa configuration. • Le serveur : ⇒ détient la politique d'attribution des configurations IP. ⇒ envoie une configuration donnée pour une durée donnée, appelé bail à un client donné 11/11/2023 59 Dynamic Host Configuration Protocol Serveur DHCP: Fonctionnement
  • 60.
    • L'obtention d'uneadresse se fait en 4 phases : 1) Demande de bail IP par le client. 2) Offre de bail IP par un serveur. 3) Sélection d'une offre par le client. 4) Accusé de réception de bail IP par le serveur. 11/11/2023 60 Dynamic Host Configuration Protocol DHCP: Demande d’@ IP
  • 61.
    11/11/2023 61 Dynamic HostConfiguration Protocol DHCP: Demande d’@ IP • Lorsqu’un périphérique, configuré pour le protocole DHCP, est mis sous tension ou se connecte au réseau diffuse une demande d'adresse IP (DhcpDiscover) avec : ⇒ source 0.0.0.0 ⇒ destination 255.255.255.255 ⇒ Adresse MAC client • Un client DHCP attend une offre pendant une seconde. • En cas de non réponse il rediffuse sa demande quatre fois (à des intervalle de 9, 13 et 16 secondes puis un intervalle aléatoire entre 0 et 1000 ms). • Après ces quatre tentatives, il renouvelle sa demande toutes les 5 minutes.
  • 62.
    11/11/2023 62 Dynamic HostConfiguration Protocol DHCP: Demande d’@ IP • Tous les serveurs reçoivent la demande. • S'ils sont configurés pour répondre, ils diffusent des offres (DhcpOffer) avec les informations suivantes : 1. L'adresse MAC du client 2. Une adresse IP 3. Un masque de sous-réseau 4. Une durée de bail (durée pendant laquelle l’IP ne sera pas utilisée par un autre host) 5. Son adresse IP (du serveur)
  • 63.
    11/11/2023 63 Dynamic HostConfiguration Protocol DHCP: Demande d’@ IP • Le client sélectionne une offre (en général la première) • Le client annonce par diffusion qu'il a accepté une offre (DhcpRequest). • Le message DhcpRequest comporte l'identification du serveur sélectionné. • Ce dernier sait que son offre a été retenue ; • Tous les autres serveurs DHCP retirent leurs offres
  • 64.
    11/11/2023 64 Dynamic HostConfiguration Protocol DHCP: Demande d’@ IP • Le serveur ainsi sélectionné envoi accusé de réception au client (DhcpAck). • Son message contient éventuellement d'autres informations (serveur DNS, Passerelle, etc.)
  • 65.
    11/11/2023 65 Dynamic HostConfiguration Protocol DHCP: Demande d’@ IP • Utilisation du mode non connecté via UDP et N° Port 68 pour le client et 67 pour le serveur
  • 66.
    11/11/2023 66 Dynamic HostConfiguration Protocol DHCP: Identification de l’application
  • 67.
    11/11/2023 67 Dynamic HostConfiguration Protocol DHCP: renouvellement de bail • L'affectation d'une adresse IP n'est pas permanente, elle est accordée pour une durée limitée qui est le bail ⇒ Une fois que le client obtient le bail, celui-ci doit être renouvelé avant son expiration via un autre message DHCPREQUEST. ⇒ Le client doit donc renouveler ce bail • Deux modes de renouvellement possibles : 1. Automatique (Time triggred) 2. Manuel (utilisateur)
  • 68.
    11/11/2023 68 Dynamic HostConfiguration Protocol DHCP: renouvellement de bail • 1ère demande de renouvellement: ⇒ à 50% de l’utilisation du bail, le client envoie un message DHCPREQUEST pour le renouvellement de son bail. ⇒ Si elle est accordée, le client continue avec un nouveau bail et éventuellement de nouveaux paramètres (DhcpAck). ⇒ Si le serveur est absent, le bail reste donc valide pendant 50% de la valeur initiale
  • 69.
    11/11/2023 69 Dynamic HostConfiguration Protocol DHCP: renouvellement de bail • 2ème demande de renouvellement: ⇒ à 87.5% du bail, si le serveur est indisponible, le client envoie un message DHCPDISCOVER. ⇒ Cette fois la demande est adressée à tous les serveurs (diffusion). 1. Un serveur peut répondre en proposant un nouveau bail (DhcpAck) 2. Mais peut également répondre avec un message DhcpNack qui oblige le client à se réinitialiser (reprise de la procédure d'obtention d'un bail)
  • 70.
    11/11/2023 70 Dynamic HostConfiguration Protocol DHCP: renouvellement de bail • Si le bail expire (ou message DhcpNack): • ⇒ À 100% du bail : reprise de la procédure, normale, d'obtention d'un bail
  • 71.
    11/11/2023 71 Dynamic HostConfiguration Protocol DHCP: renouvellement de bail • Renouvellement manuel de bail • L’utilisateur force manuellement le renouvellement du bail ⇒ dhclient -r: cette commande génère un DHCPREQUEST ⇒ dhclient: cette commande obtient une nouvelle adresse
  • 72.
    11/11/2023 72 Dynamic HostConfiguration Protocol DHCP: messages • DHCPDISCOVER: Requête de Localisation des serveurs DHCP disponibles • DHCPOFFER : Réponse d’un serveur à un paquet DHCPDISCOVER, contenant les premiers paramètres DHCP • DHCPREQUEST: Requête du client pour annoncer qu'il a accepté une offre ou pour prolonger son bail • DHCPACK : Réponse du serveur contenant des paramètres supplémentaires en plus de l'adresse IP du client
  • 73.
    • DHCPNAK :Réponse du serveur pour signaler au client que son bail est expiré ou si le client annonce une mauvaise configuration réseau • DHCPDECLINE : le client annonce au serveur que l'adresse est déjà utilisée • DHCPRELEASE : le client libère son adresse IP • DHCPINFORM : le client demande des paramètres locaux de configuration si il a obtenu une adresse réseau grâce à d'autres moyens (ex. configuration manuelle) 11/11/2023 73 Dynamic Host Configuration Protocol DHCP: messages
  • 74.
    • Les tramesbroadcast ne traversent pas les routeurs. • Sur un réseau segmenté par des routeurs il est donc impossible de servir tous les segments avec le même serveur DHCP. 1. Il faut donc mettre un serveur DHCP sur chaque segment, 2. Ou utiliser un agent de relais DHCP. • Un agent de relais DHCP relaye les messages DHCP échangés entre un client et un serveur DHCP situés sur des sous-réseaux différents. ⇒ Il est généralement installé sur un routeur pour pouvoir diriger les messages vers le serveur DHCP. ⇒ L'agent doit connaître l'adresse du serveur DHCP mais ne peut pas être lui même client DHCP. • Serveur DHCP et agent de relais ont des adresses ip statiques. • Le dialogue traverse le routeur et se fait en unicast. 11/11/2023 74 Dynamic Host Configuration Protocol Agent de relais DHCP
  • 75.
    11/11/2023 75 Dynamic HostConfiguration Protocol Agent de relais DHCP 1. Le client envoie une trame de broadcast DhcpDiscover (1) 2. l'agent de relais transfère la requête à la liste des serveurs DHCP spécifiés lors du configuration de l'agent (2) 3. Le serveur retourne à l'agent une adresse (3) 4. L’agent diffuse la réponse sur le réseau ayant envoyé la requête d'origine (4).
  • 76.
    11/11/2023 76 Dynamic HostConfiguration Protocol Service DHCP • Les adresses attribuées via le DHCP ne sont pas affectées aux hôtes définitivement. n ⇒ Si l’hôte est mis hors tension ou retiré du réseau, l’adresse est retournée au pool pour être réutilisée. ⇒ utile pour les utilisateurs mobiles qui se connectent et se déconnectent sur le réseau. ⇒ les utilisateurs peuvent librement se déplacer d’un endroit à un autre et rétablir des connexions réseau. ⇒ L’hôte peut contenir une adresse IP une fois la connexion matérielle établie, via un réseau local filaire ou sans fil.
  • 77.
    11/11/2023 77 Dynamic HostConfiguration Protocol Adressage statique et adressage dynamique • L’adressage dynamique et l’adressage statique ont chacun leur place dans la conception des réseaux. • De nombreux réseaux utilisent à la fois le protocole DHCP et l’adressage statique. - Le protocole DHCP est utilisé pour les hôtes à utilisation générale (par exemple, les périphériques d’utilisateur final) - Les adresses fixes pour les périphériques réseau : ⇒ les passerelles, ⇒ les commutateurs, ⇒ les serveurs ⇒ les imprimantes
  • 78.
    11/11/2023 78 Dynamic HostConfiguration Protocol Configuration d’un serveur DHCP • Définir une plage d'adresses qui peuvent être louées à des hôtes qui en font la demande. En général on donne: ⇒ Une adresse de début (la première qui sera attribuée) ⇒ Une adresse de fin (la dernière) ⇒ Une ou plusieurs plages d'adresses à exclure de la location (ceci permet de faire cohabiter un modèle de configuration IP dynamique avec un modèle statique) ⇒ Un masque de sous-réseau • Tous ces éléments sont attribués pour une durée de bail à fixer. Si, au bout de cette durée, l'hôte ne sollicite pas à nouveau une adresse au serveur, cette adresse est jugée disponible pour un autre hôte.
  • 79.
  • 80.
    11/11/2023 80 DNS: DomainName System Service de résolution des noms • L’Internet est constitué de réseaux (dizaines de milliers) • Les réseaux sont constitués de sous-réseaux • Les sous-réseaux sont constitués de machines • La technologie de base (TCP/IP) permet d’atteindre les machines par leurs adresses IP. • Il est pratiquement devenu impossible aux utilisateurs de connaître les adresses (IP) des machines auxquelles ils veulent accéder. Pour cette raison, des noms de domaine ont été créés pour convertir les adresses numériques en noms simples et explicites.
  • 81.
    11/11/2023 81 DNS: DomainName System Service de résolution des noms • Avant d'installer un service quel qu'il soit, il faut s'assurer du bon fonctionnement de la résolution de noms sur le réseau. • Chaque ordinateur du réseau contenait un fichier /etc/hosts. • Problème: À chaque fois que l'on rajoutait une machine sur le réseau, il fallait mettre à jour ce fichier. • La solution qui s'est imposée fut la création d'une base de données distribuée, et ainsi est né le principe de serveur DNS . Un serveur DNS permet de faire la correspondance entre un nom canonique FQDN (ex: www.google.fr) et son adresse IP.
  • 82.
    11/11/2023 82 DNS: DomainName System Service de résolution des noms
  • 83.
    • Protocole applicatif •DNS est utilisé par d’autres protocoles applicatifs mais est rarement utilisé directement par l’application. • modèle client/serveur : un émetteur interroge un serveur de noms (serveur DNS) • Port 53/UDP (ou 53/TCP pour les mises à jour) 11/11/2023 83 DNS: Domain Name System Protocole DNS
  • 84.
    • Base dedonnées distribuée et implémentée en hiérarchie sur de nombreux serveurs de noms. • • Le DNS est basé sur un modèle en arborescence similaire à celui des systèmes de fichiers et de répertoires, avec une gestion décentralisée des données . • Composé de trois composantes: • Un “ espace de nommage” • Les serveurs rendant l'espace de nommage disponible • Les resolvers (clients) qui questionnent les serveurs à propos de l'espace de nommage. 11/11/2023 84 DNS: Domain Name System Système de noms de domaines
  • 85.
    • Pourquoi pasde DNS centralisé? Un seul serveur contiendrait toutes les correspondances requises par les applications de l’internet. ⇒ dimension de l’internet : trop de correspondances à gérer, nombre de requêtes au serveur trop important ⇒ tolérance aux pannes : si le serveur DNS tombe, tout internet aussi ⇒ trafic impossible à supporter par un seul serveur ⇒ délai de réponse : il faut faire en sorte que la réponse soit la plus proche possible du demandeur ⇒ problème lié à la maintenance et aux mises à jour perpétuelles de la base. 11/11/2023 85 DNS: Domain Name System Système de noms de domaines
  • 86.
    11/11/2023 86 DNS: DomainName System L’espace de noms de domaine • Chaque unité de donnée dans la base DNS est indexée par un nom • Les noms constituent un chemin dans un arbre inversé appelé l’espace de Noms de domaine • Organisation similaire à un système de gestion de fichiers • Chaque nœud est identifié par un nom • Racine appelée root, identifiée par «.» • 127 niveaux au maximum
  • 87.
    • Base dedonnée hiérarchique et distribuée 11/11/2023 87 DNS: Domain Name System L’espace de noms de domaine • Client veut l'IP pour www.amazon.com: ⇒ Client demande au serveur racine de trouver le serveur DNS com ⇒ Client demande au serveur DNS com de lui fournir le serveur DNS amazon.com ⇒ Client demande au serveur DNS amazon.com de lui fournir l'adresse IP de www.amazon.com
  • 88.
    11/11/2023 88 DNS: DomainName System Nom de domaine • Dans un réseau local, les machines peuvent-être identifiées par leurs seuls noms. Par contre, à l‘échelle d'Internet, ces noms doivent être concaténés avec le nom du domaine dans lequel elles sont déclarés. Exemple: Nom du domaine : afnic.fr nom local de la machine : www nom de la machine dans le DNS : www.afnic.fr nom local de la machine : ftp nom de la machine dans le DNS : ftp.afnic.fr
  • 89.
    11/11/2023 89 DNS: DomainName System Nom de domaine • Un nom de domaine est la séquence de labels depuis le nœud de l’arbre correspondant jusqu’à la racine • Deux nœuds fils ne peuvent avoir le même nom ==> unicité d’un nom de domaine au niveau mondial fr ac-grenoble . (root) berges berges.ac-grenoble.fr
  • 90.
    • Un domaineest un sous-arbre de l’espace nom de domaine. 11/11/2023 90 DNS: Domain Name System Domaine fr inria ac-grenoble berges Domaine complet Domaine fr Domaine ac-grenoble nœud berges.ac-grenoble.fr Des nœuds peuvent avoir les mêmes noms dans des domaines différents : srv.peugeot.fr et srv.renault.fr
  • 91.
    • Le DNSest organisé sous la forme d’une arborescence inversée, avec une « racine » dont dépendent les différentes « branches ». • Au premier niveau de l’arborescence se trouvent les « Top-Level Domains (TLD)» ou domaines de premier niveau, comme les .fr, .com etc. • Au second niveau, nous avons les noms de domaine « classiques » comme « afnic.fr ». • Deux types de TLD : ⇒ generic TLD: .com, .org, .gov, .net,. . . ⇒ countries TLD: .fr, .de, .uk,. . . 11/11/2023 91 DNS: Domain Name System Domaine
  • 92.
    11/11/2023 92 DNS: DomainName System Domaine
  • 93.
    • Le systèmeDNS est entièrement distribué au niveau planétaire ; Le mécanisme sous-jacent est la délégation de domaine • A tout domaine est associé une responsabilité administrative. • Une organisation responsable d’un domaine peut : • Découper le domaine en sous-domaines • Déléguer les sous-domaines à d’autres organisations : ⇒ qui deviennent à leur tour responsables du (des) sous- domaine(s) qui leurs sont délégué(s) ⇒ ces dernières peuvent, à leur tour, déléguer des sous- domaines des sous-domaines qu’elles gèrent • Le domaine parent contient alors seulement un pointeur vers le sous-domaine délégué; Par exemple : ⇒ ac-grenoble.fr est délégué à l’organisation «Académie de Grenoble» ⇒ L’Académie de Grenoble gère donc les données propres à ce domaine. 11/11/2023 93 DNS: Domain Name System Délégation
  • 94.
    • Un domainidentifie une sous arborescence de l’espace de nommage (Domain = lieu topologique) • Une zone contient une base avec l’ensemble des informations associées à ce nœud (Zone = borne administrative) • Le système DNS permet de diviser l’espace des noms en zones : 11/11/2023 94 DNS: Domain Name System Domaine vs zone ⇒ Ces zones stockent des informations relatives à un ou plusieurs domaines. ⇒ Avant tout, une zone est une base de données de stockage contenant des enregistrements RR (Resource Records) concernant un nom de domaine DNS. ⇒ Si un sous-domaine est créé, il peut être géré par la zone du domaine parent ou par une zone qui lui est propre.
  • 95.
    11/11/2023 95 DNS: DomainName System Domaine vs zone • Une zone = une administration centralisée avec au moins un serveur DNS (généralement 1 primaire et 1 secondaire) • Une zone doit connaître les adresses des serveurs DNS des zones subordonnées.
  • 96.
    11/11/2023 96 DNS: DomainName System Délégation de zone La délégation permet de déléguer (décentraliser) l’administration d’une partie de l’espace de nommage de domaine. La zone .g délègue l’administration des zones .g1 et .g2
  • 97.
    11/11/2023 97 DNS: DomainName System Les serveurs de noms • Les logiciels qui gèrent les données de l’espace de noms de domaine sont appelés des serveurs de nom ( domain name servers - DNS) • Les serveurs de noms enregistrent les données propres à une partie de l’espace de noms de domaine dans une ZONE. • Le serveur de noms a autorité administrative sur cette zone. • Un serveur de nom peut avoir autorité sur plusieurs zone. • Une zone contient les informations d’un domaine sauf celles qui sont déléguées. fr bc ab ca on qb domaine zone
  • 98.
    • A chaquezone, correspond un serveur DNS principal (unique) : ⇒ Il maintient la base de données de la zone dont il a l’autorité administrative. ⇒ Il a le droit de lecture-écriture sur les données originales de la zone. ⇒ Il sert de point de mise à jour de la zone. • Serveurs secondaires: ⇒ Ils contiennent une réplique dans son intégralité de la base de données du serveur principal. ⇒ Les données sont en lecture seule (les modifications sont faites d'abord sur le serveur principal) ⇒ Ils assurent l’équilibrage de la charge et la tolérance aux pannes. 11/11/2023 98 DNS: Domain Name System Les serveurs de noms: Serveur primaire et serveur secondaire
  • 99.
    11/11/2023 99 DNS: DomainName System Serveur autoritaire
  • 100.
    • Un serveurde nom peut être primaire pour une (des) zone(s) et secondaire pour d’autre(s). • Les «resolvers» sont les processus clients qui contactent les serveurs de noms. Fonctionnement du resolver: ⇒ Il contacte un serveur de noms (dont l’ (les) adresse(s) est (sont) configurées sur la machine exécutant ce resolver), ⇒ Il interprète les réponses, ⇒ Il retourne l’information au logiciel appelant, ⇒ Il gère le cache. 11/11/2023 100 DNS: Domain Name System Les resolvers
  • 101.
    • Les serveursracine connaissent les serveurs de nom ayant autorité sur tous les domaines racines • Les serveurs racines connaissent au moins les serveurs de noms pouvant résoudre le premier niveau (.com, .edu, .fr, etc.) • Pierre angulaire du système DNS : si les serveurs racines ne sont plus opérationnels, il n’y a plus de communication sur l’Internet • multiplicité des serveurs racines • actuellement jusqu’à 13 éparpillés sur la planète • chaque serveur racine reçoit environ 100000 requêtes / heure 11/11/2023 101 DNS: Domain Name System Les serveurs racine
  • 102.
    11/11/2023 102 DNS: DomainName System Résolution de noms
  • 103.
    • La résolutioninverse consiste, elle, à retrouver le nom d'une machine à partir de son adresse IP. • Comme pour la résolution de nom, la résolution inverse s'appuie sur un système en arborescence qui part du domaine particulier in- addr.arpa ⇒ Chaque octet de l'adresse IP correspond à un niveau ; pour chaque adresse, on crée un nom de domaine, sous-domaine de in-addr.arpa, qu'on obtient en écrivant l'adresse IP ‘’à l‘inverse" (en commençant par le dernier octet). Ainsi, pour l'adresse IP 192.134.4.9, on obtient le nom de domaine 9.4.134.192.in- addr.arpa. ⇒ Puis la procédure est le même que celle de la résolution classique. 11/11/2023 103 DNS: Domain Name System Résolution inverse
  • 104.
    11/11/2023 104 DNS: DomainName System Résolution inverse
  • 105.
    • Le resolverpermet de lancer des requêtes DNS pour la résolution de nom. Il existe 2 modes d'interrogation pour un resolver : Le mode récursif : le client (resolver) envoie une requête au serveur DNS ; ce dernier renvoie une réponse complète au client qui est soit la correspondance recherchée soit un message d'erreur. Le mode non récursif ou itératif : le client envoie une requête au serveur DNS ; ce dernier renvoie soit la réponse complète (s'il est autoritaire pour la zone concernée) soit une réponse partielle (adresse d'un autre serveur de noms qui va permettre au client d'avancer dans le processus de résolution). 11/11/2023 105 DNS: Domain Name System Résolution d’une requête En général, le mode récursif est utilisé par les applications clientes et le mode itératif par les revolvers des serveurs de noms.
  • 106.
    • Requête récursive: ⇒la machine qui demande la résolution de nom ; ⇒ contacte un serveur DNS et attend que ce dernier lui retourne la réponse ; ⇒ si il en a besoin, le serveur demande à un autre serveur ; ⇒ ... • Requête itérative: ⇒ le serveur de noms contacté fournit en réponse le nom d’un autre serveur DNS à contacter pour avancer dans la résolution ; ⇒”je ne connais pas ce nom mais demande à ce serveur”. 11/11/2023 106 DNS: Domain Name System Résolution d’une requête
  • 107.
    • Idée généraledes caches : ⇒ réduire le temps de réponse (diminue le nombre de messages nécessaires à la résolution) ⇒ réduire la charge des serveurs (diminue le nombre de serveurs à contacter) • Le serveur de noms (quelconque) stocke dans son cache les informations récentes • A la prochaine demande, il peut répondre directement • Attention: ⇒ les données expirent du cache après un certain temps TTL (environ 2 jours) ⇒ un serveur qui mémorise dans son cache un enregistrement DNS n’a pas autorité dessus =⇒ spécifie ”no authoritative” dans la réponse 11/11/2023 107 DNS: Domain Name System Serveur cache
  • 108.
    • BIND, pourBerkeley Internet Name Daemon, est une implémentation de résolution de noms d'hôtes sur un réseau d'adresses IP (et vice versa). • Le serveur de noms BIND fournit ses services de résolution de noms à l'aide du démon /usr/sbin/named. • BIND contient également un utilitaire d'administration appelé /usr/sbin/rndc. • BIND stocke ses fichiers de configuration aux emplacements suivants : • le fichier /etc/named.conf — Le fichier de configuration du démon named. • le répertoire /var/named/ — Le répertoire de travail de named qui stocke les fichiers de zone, de statistiques et les fichiers de cache. 11/11/2023 108 DNS: Domain Name System BIND en tant que serveur de noms
  • 109.
    • Le fichierprincipal de configuration de BIND est /etc/bind/named.conf • Le fichier named.conf est une suite de déclarations utilisant des options imbriquées qui sont placées entre accolades, { }. • Lorsqu'ils modifient le fichier named.conf, les administrateurs doivent veillez tout particulièrement à ne pas faire de fautes de syntaxe car des erreurs mineures en apparence empêcheront le démarrage du service named 11/11/2023 109 DNS: Domain Name System Fichier /etc/named.conf
  • 110.
    11/11/2023 110 DNS: DomainName System Types courants de déclarations Déclaration acl Liste de contrôle d'accès, définit des groupes d'hôtes qui peuvent ensuite être autorisés ou non à accéder au serveur de noms. Une déclaration options permet de définir la manière dont elles seront traitées par le serveur de noms
  • 111.
    11/11/2023 111 DNS: DomainName System Types courants de déclarations Déclaration include Permet à des fichiers d'être inclus dans un fichier named.conf. Ce faisant, des données de configurations critiques (telles que les clés, keys) peuvent être placées dans un fichier séparé doté de permissions restrictives. Dans cette déclaration, <file-name> est remplacé par le chemin d'accès absolu vers un fichier .
  • 112.
    11/11/2023 112 DNS: DomainName System Types courants de déclarations Déclaration zone Définit les caractéristiques d'une zone tels que l'emplacement de ses fichiers de configuration et les options spécifiques à la zone. <zone-name> correspond au nom de la zone, <zone-class> à la classe optionnelle de la zone et <zone-options> représente une liste des options caractérisant la zone
  • 113.
    11/11/2023 113 DNS: DomainName System Types courants de déclarations Ici, la zone est identifiée en tant que example.com, le type est défini comme master et le service named a comme instruction de lire le fichier /var/named/example.com.zone. Elle indique à named de refuser la mise à jour à tout autre hôte. Ici, zone configure named sur le serveur esclave de manière à ce qu'il cherche le serveur maître à l'adresse IP 192.168.0.1 pour y trouver les informations concernant la zone appelée example.com. Les informations que le serveur esclave reçoit du serveur maître sont enregistrées dans le fichier /var/named/example.com.zone.
  • 114.
    11/11/2023 114 DNS: DomainName System Balises de commentaire • // — Lorsque ce symbole est placé en début de ligne, cette dernière n'est pas prise en compte par named. • # — Lorsque ce symbole est placé en début de ligne, cette dernière n'est pas prise en compte par named. • /* et */ — Lorsque du texte est placé entre ces symboles, le bloc de texte en question n'est pas pris en compte par named.
  • 115.
    • Contiennent desinformations sur un espace de nom particulier et sont stockés dans le répertoire de travail /var/named/. • Chaque fichier de zone est nommé selon les données d'options de file dans la déclaration zone. • Chaque fichier de zone peut contenir des directives et des enregistrements de ressources. • Les directives donnent au serveur de noms l'instruction d'effectuer une certaine tâche ou d'appliquer des paramètres spéciaux à la zone • Les enregistrements de ressources définissent les paramètres de la zone, assignant des identités aux hôtes individuels. • Les directives sont facultatives, mais les enregistrements de ressources sont requis pour fournir un service de nom à une zone. 11/11/2023 115 DNS: Domain Name System Fichiers de zone
  • 116.
    • Les directivessont identifiées par le symbole dollar ($) suivit du nom de la directive • Les directives les plus couramment utilisées sont les suivantes : • $INCLUDE — Configure named de façon à ce qu'il inclue un autre fichier de zone dans ce fichier de zone à l'endroit où la directive apparaît • $ORIGIN — Attache le nom de domaine à des enregistrements non- qualifiés, comme ceux qui spécifient seulement l'hôte et rien de plus • $TTL — Règle la valeur par défaut de Time to Live (TTL) (ou temps de vie) pour la zone. Cette valeur exprimée en secondes, correspond à la durée pendant laquelle un enregistrement de ressources de zone est valide. Chaque enregistrement de ressources peut contenir sa propre valeur TTL, qui remplace alors cette directive 11/11/2023 116 DNS: Domain Name System Directives des fichiers de zone
  • 117.
    • RR (RessourceRecord), L'enregistrement de ressource peut être considéré comme l'unité de donnée de base du DNS. Il donne certaines caractéristiques d'un nom de domaine telles qu'une adresse IP d'un serveur ou d'une machine du domaine, un alias pour une machine, etc... • Un enregistrement de ressource est composé de cinq champs : 11/11/2023 117 DNS: Domain Name System L’enregistrement de ressource
  • 118.
    • TTL (TimeTo Live) : La durée de vie est le temps pendant lequel la valeur d'un RR dans un cache est considérée comme valide ; • Record Class : La classe d'enregistrement définit le schéma de base sur lequel est fondé le système d'enregistrements. • Record Type : Donne le type d'un enregistrement (adresse IP, alias, nom de domaine, etc...) ; • SOA (Start Of Authority) : L'origine de l'autorité spécifie la zone pour laquelle le serveur est autoritaire ; • NS (Name Server) : NS est un type d'enregistrement qui spécifie le serveur autoritaire pour la zone considérée ; 11/11/2023 118 DNS: Domain Name System L’enregistrement de ressource
  • 119.
    • A (Address): Permet la mise en correspondance entre un FQDN et une adresse IP; • CNAME (Canonical Name) : Le type d'enregistrement nom canonique donne un alias pour une machine donnée ; • MX (Mail eXchanger) : Ce type d'enregistrement spécifie le relais de messagerie pour la zone considéré ; • PTR (Pointer) : Le type d'enregistrement "Pointeur" est utilisé pour la résolution inverse pour la mise en correspondance entre une adresse IP et un nom de domaine. 11/11/2023 119 DNS: Domain Name System L’enregistrement de ressource
  • 120.
    • Un fichierde zone de résolution de nom inverse est utilisé pour traduire une adresse IP dans un espace de nom particulier en un FQDN. Il ressemble beaucoup à un fichier de zone standard, sauf que les enregistrements de ressources PTR servent à lier les adresses IP au nom d'un domaine pleinement qualifié. 11/11/2023 120 DNS: Domain Name System Fichiers de résolution de noms inverse
  • 121.
  • 122.
    • Pour échangerdes informations entre les utilisateurs de plusieurs réseaux locaux, les entités intermédiaires jouent un rôle capital. • Contiennent les moyens nécessaires à l’acheminement des informations entre deux stations quelconques dans le réseaux. • Moyens (selon le modèle OSI) ∈ couche 3 : la couche réseaux. 11/11/2023 122 Routage Introduction
  • 123.
    • Routage= Processuspar lequel un élément (courrier, appels téléphoniques, paquets IP, …) va être acheminé d’un endroit à un autre. • Un élément faisant du routage doit connaître : ‒ La destination, ‒ De quelle source il peut apprendre les chemins d’accès à la destination voulue, ‒ Les itinéraires possibles pour atteindre la destination, ‒ Le(s) meilleur(s) itinéraire(s) pour atteindre la destination, ‒ Un moyen d’actualiser les itinéraires. 11/11/2023 123 Routage Définition
  • 124.
    • Objectif: Acheminerdes datagrammes IP d’une machine source A vers une machine destination B. • Problématique: Comment atteindre la machine B en connaissant son adresse IP? 11/11/2023 124 Routage Problématique A B Nécessité d’identifier toute les machines intermédiaires
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
    • Le routagepermet de faire communiquer plusieurs sous-réseaux. • Une passerelle (en anglais gateway) assure la communication entre les différents sous-réseaux. • Une route définie sur une station est un chemin que doivent prendre les paquets d’un certain sous-réseau vers une destination. 11/11/2023 132 Routage Principe de base
  • 133.
  • 134.
    • Routeur =passerelle avec matériel et logiciel dédiés 11/11/2023 134 Routage Routeur Un routeur est un matériel réseau spécifique, conçu spécialement pour le routage. Faire un routeur avec un PC à plusieurs cartes est possible.
  • 135.
    Définition: • Processus dechoix des chemins par lesquels les paquets sont transmis à la machine destinataire • Processus basé sur une table de routage IP routing table contenant les informations relatives aux différentes destination possibles et à la façon de les atteindre. ⇒ Exemple : netstat -r (sous UNIX) Principe de base : • L’émetteur ne connaît pas la route complète mais l’adresse du prochain site IP qui le rapprochera de la destination (prochain saut) • Simplicité des tables de routage 11/11/2023 135 Routage Principe de base
  • 136.
    11/11/2023 136 Routage Fonction deroutage • Objectif = Déterminer le meilleur chemin pour atteindre la destination • Pour se faire on utilise: ‒ Les informations d’un protocole routé ‒ La table de routage correspondante: Détermination du meilleur chemin ‒ Les Métriques: Mesure de qualité pour les chemins Un protocole routé ou routable: comment les information sont organisées pour être transportées sur le réseau. Les protocoles routés transportent les données sur un réseau. (par exemple: IP) Un protocole de routage: comment est réalisé l’acheminement des paquets. (RIP,OSPF, BGP, …)
  • 137.
    11/11/2023 137 Routage 0 24 816 31 Type de service Longueur totale Identification Offset fragment Adresse IP Source Adresse IP Destination Options IP (éventuellement) 4 VERS HLEN 19 Flags Durée de vie Protocole Somme de contrôle Header Padding Données . . . Exemple de protocole routé: IP
  • 138.
    11/11/2023 138 Routage Processus detransmission • Détermination du réseau de destination ⇒ Un équipement sur un réseau, peut atteindre directement les machines sur le même segment sans routage (ARP), (Réseau Local) ⇒ Ne peut pas atteindre les équipements sur un autre réseau (ou sous-réseau) sans un intermédiaire. (Réseau distant) • Comment savoir? ⇒ IP source AND masque de SR local IP SR source ⇒ IP de destination AND masque de SR local  IP SR destination • IP réseau locale = IP réseau de destination ⇒ Destination dans le même réseau ⇒ Transmission directe • IP réseau locale ≠ IP réseau de destination ⇒ Destination dans un autre réseau ⇒ Transfert à la passerelle par défaut
  • 139.
    11/11/2023 139 Routage Table deroutage • Les informations de routage sont mémorisées dans la table de routage des équipements (routeurs). • Cette table doit être périodiquement mise à jour • Manuellement : routage STATIQUE • Automatiquement : routage DYNAMIQUE • Le routage s’effectue sur deux opérations: • La sélection de la meilleure voie, • La commutation du paquet sur l ’interface appropriée.
  • 140.
    11/11/2023 140 Routage Table deroutage sous linux • La consultation/modification de la table de routage sous linux peut être faite avec la commande route. • Chaque machine possède une table de routage qui lui indique quoi faire des paquets.
  • 141.
    11/11/2023 141 Routage Champs d’unetable de routage sous linux L‘adresse de destination, peut contenir : ⇒ Une adresse machine ⇒ Une adresse de sous-réseau ⇒ Une adresse de réseau ⇒ Une passerelle par défaut Passerelle: indique ou le paquet doit être envoyé. Peut être : ⇒ une carte réseau locale ⇒ un Routeur du sous-réseau local
  • 142.
    11/11/2023 142 Routage Champs d’unetable de routage sous linux Genmask: définit la portion d‘adresse réseau qui correspond à l‘itinéraire. Indic (Flags) : ⇒ U (Up) : la route est active ⇒ H (Host) : la route conduit à un hôte ⇒G (Gateway): la route passe par une passerelle (voisine)
  • 143.
    11/11/2023 143 Routage Champs d’unetable de routage sous linux Comment le routeur choisi un itinéraire s’il apprend la même route par des routeurs voisins utilisant le même protocole de routage?
  • 144.
    11/11/2023 144 Routage Champs d’unetable de routage sous linux Metric: correspond au nombre de nœuds à franchir pour atteindre la destination. Permet de déterminer le meilleur itinéraire. Ref: spécifie le nombre de référe- nces à cette route (non utilisé par le noyau Linux)
  • 145.
    11/11/2023 145 Métrique: utiliséepar les protocoles de routage pour sélectionner le meilleur chemin: ⇒ Si un routeur apprend deux routes différentes pour le même réseau à partir du même protocole de routage, il doit décider quelle route est la meilleure. ⇒ Petite métrique = Route meilleure Routage Champs d’une table de routage sous linux
  • 146.
    11/11/2023 146 Routage Champs d’unetable de routage sous linux • Exemple de choix d’une route en fonction de la métrique: ‒ RIP a été configuré sur tous les routeurs. ‒ Le routeur 1 a deux chemins pour atteindre le sous-réseau 10.0.0.0/24: Une route passe par le routeur 2, l’autre passe par le routeur 3 puis par le routeur 4. ‒ le RIP utilise le nombre de sauts comme métrique le chemin d’accès via le routeur 2 est choisi car le sous-réseau n’est distant que d’un seul ‒ L’autre chemin aura une métrique supérieure de 2, car le sous-réseau est à deux routeurs.
  • 147.
    11/11/2023 147 Routage Champs d’unetable de routage sous linux Use: comptabilise le nombre de recherches associées à cette ro -ute Iface: l‘adresse de la carte réseau qui émet le paquet.
  • 148.
  • 149.
    11/11/2023 149 Routage Route pardéfaut # route add default gw 192.168.3.131 dev eth0 • Appelé aussi réseau candidat par défaut • Utilisée pour atteindre une destination inconnue: rediriger l’inconnu vers un prochain saut définit • utilisée si le prochain saut ne figure pas explicitement dans la table de routage. • Facilite la circulation des données sur un réseau de grande taille, • Exemple : LAN vers Internet • Pour ajouter une route par défaut dans sa table de routage, on utilise la commande route :
  • 150.
  • 151.
  • 152.
  • 153.
    11/11/2023 153 Routage Analyse deroute • Permet d'afficher le chemin parcouru par un paquet pour arriver à destination. Cette commande est importante, car elle permet d'équilibrer la charge d'un réseau, en optimisant les routes. • On peut utiliser soit l’adresse IP, soit le nom d’hôte. Commande traceroute # traceroute 192.168.1.109
  • 154.
    11/11/2023 154 Routage Configurer unposte Linux comme routeur • Par défaut, un poste Linux ne délivre que les paquets qui proviennent du poste ou qui lui sont destinés. • Les autres paquets sont ignorés et donc le poste ne peut faire fonction de routeur. • Pour devenir routeur, le poste Linux doit relayer (retransmettre) les paquets qui ne lui sont pas destinés. Il faut modifier l’option ip_forward du noyau
  • 155.
    11/11/2023 155 Routage Activation/désactivation duroutage • Activer le routage: # echo "1" > /proc/sys/net/ipv4/ip_forward // OU # sysctl -n -w net.ipv4.ip_forward=1 • Désactiver le routage: # echo "0" > /proc/sys/net/ipv4/ip_forward // OU # sysctl -n -w net.ipv4.ip_forward=0
  • 156.
    11/11/2023 156 Accès auxfichiers distants
  • 157.
    • Dans beaucoupd’organisations, les utilisateurs n’ont pas de machine attribuée : ils peuvent se connecter sur n’importe quelle machine. • Problèmes à résoudre: ⇒ Il faut que l’utilisateur puisse retrouver ses données quelle que soit machine sur laquelle il se connecte. ⇒ Il faut que son identifiant et son mot de passe soient reconnus sur toutes les machines. 11/11/2023 157 Accès aux fichiers distants Problèmes liés à la mobilité des utilisateurs Une solution: centraliser les données.
  • 158.
    11/11/2023 158 Accès auxfichiers distants Idée générale L’utilisateur doit pourvoir travailler sur n’importe quel poste de travail !
  • 159.
    • Les données(les fichiers, par exemple) sont stockées sur un serveur (unique). • Quand un utilisateur lit (ou modifie) ces données, elles ne sont pas lues (ou modifiées) en local (sur sa machine) mais directement sur le serveur. • Principe de transparence : ⇒ L’utilisateur ne doit pas se rendre compte que les données qu’il utilise sont stockées sur une autre machine. ⇒ Il utilise les données stockées sur le serveur comme toute autre donnée stockée en local. 11/11/2023 159 Accès aux fichiers distants La centralisation des données Des échanges sur le réseau sont nécessaires à chaque lecture/modification.
  • 160.
    • C’est unensemble client/serveur qui permet pour une machine de mettre à disposition ses fichiers sur le réseau. • L’accès aux fichiers distants est complètement transparent pour l’utilisateur: ⇒ tout se passe comme si le système de fichiers distant était local (disques réseaux) ⇒ l’utilisateur peut éditer le fichier, le modifier, . . . ; les modifications seront répercutées sur le système de fichiers distant ; ⇒ les utilisateurs de la machine cliente peuvent utiliser n’importe quel logiciel pour manipuler les fichiers distribués. • Les deux principaux protocoles : ⇒ NFS: Network File System (Unix/Sun-RPC) ⇒ SMB: Server Message Block (issu du monde Microsoft) 11/11/2023 160 Accès aux fichiers distants Principe
  • 161.
    • Un systèmede fichiers réseau (NFS: Network File System), permet aux hôtes distants de monter des systèmes de fichiers sur un réseau et de les utiliser exactement comme des systèmes de fichiers locaux. • Ceci permet aux administrateurs système de stocker des ressources sur des serveurs centralisés sur le réseau. • Protocole (couche Application) permettant de rendre transparent l’utilisation de fichiers répartis sur différentes machines, via un réseau. 11/11/2023 161 Accès aux fichiers distants NFS: Network File System
  • 162.
    • Protocole departage de fichiers en réseau développé par Sun • Basé sur l'utilisation des RPC (Remote Procedure Calls). • Un serveur NFS: ⇒ exporte une arborescence qui est tout ou partie d'un disque logique ⇒ à une population de machines qui peuvent monter cette arborescence. ⇒ avec des droits et restrictions associés à ce montage. • Un client NFS: ⇒ Monte les répertoires exportés par un serveur, ⇒ Traduit les opérations sur fichiers en appel de procédure NFS • NFS v2 implémenté sur UDP. • NFS V3 implémenté sur TCP. • NFS V4 utilise l'authentification des utilisateurs basée sur Kerberos. 11/11/2023 162 Accès aux fichiers distants Protocole NFS
  • 163.
    NFS - Postesde travail sans disque 11/11/2023 163 Accès aux fichiers distants Protocole NFS
  • 164.
    NFS- Plusieurs postesde travail pour un même utilisateur... 11/11/2023 164 Accès aux fichiers distants Protocole NFS
  • 165.
    NFS - Plusieurspostes de travail pour un même utilisateur... vue logique 11/11/2023 165 Accès aux fichiers distants Protocole NFS
  • 166.
    11/11/2023 166 Accès auxfichiers distants NFS: client-serveur • le client: ⇒ monte via le réseau les systèmes de fichiers dont elle a accès ⇒ adresse ses requêtes au serveur (lecture-écriture) • le serveur: ⇒ donne les droits d’accès ⇒ répond aux requêtes des clients
  • 167.
    • Sur lamachine serveur, l’administrateur du réseau doit préciser les répertoires qui pourront être accédés à distance par les clients. ⇒ On dit que ces répertoires sont exportés. • Sur la machine cliente, l’utilisateur doit, pour accéder à un répertoire exporté, associer un répertoire local au répertoire exporté. ⇒ On dit que le répertoire exporté a été monté sur le répertoire local qui est le point de montage. 11/11/2023 167 Accès aux fichiers distants NFS: client-serveur
  • 168.
    • Le répertoire/utilisateurs/max est exporté par le serveur NFS. • Le client a monté ce répertoire sur le point /home/max. 1. L’utilisateur exécute la commande cat /home/max/fichier.txt. 2. Le client envoie la requête “récupérer /fichier.txt” sur le répertoire exporté /utilisateurs/max. 3. Le serveur NFS consulte le fichier /utilisateurs/max/fichier.txt. 4. Le serveur NFS envoie le contenu de ce fichier au client. 11/11/2023 168 Accès aux fichiers distants NFS: Exemple
  • 169.
    11/11/2023 169 Accès auxfichiers distants NFS: principe de fonctionnement
  • 170.
    • côté serveur: ⇒Le fichier “/etc/exports” contient les informations sur les systèmes exportés ⇒ la commande exportfs active l’exportation ⇒ le fichier “/etc/xtab” contient la liste actualisée ⇒ lancement du démon rpc.mountd pour répondre aux requêtes de montage ( /var/state/nfs/rmtab). ⇒ Lancement du démon nfsd pour répondre aux accès en lecture- écriture • côté client: ⇒ requête de montage avec la commande mount <= rpc.mountd ⇒ gestion des fichiers actifs par le client “/etc/mtab” ⇒ requête d’accès lecture-écriture 11/11/2023 170 Accès aux fichiers distants NFS: principe de fonctionnement
  • 171.
    11/11/2023 171 Accès auxfichiers distants NFS: principe de fonctionnement
  • 172.
    • Sous Linux,le partage de fichiers peut être mis en œuvre grâce à SAMBA, NFS et AppleTalk. • SAMBA permet un partage entre machines Linux/Unix et machines Windows • SAMBA: service de partage de ressources sous UNIX pour les machines sous Windows: ⇒ Une station Windows est capable d'accéder à des répertoires et des fichiers se trouvant sur une machine Linux • Début en 1991 (Andrew Tridgell, Australie) • Architecture client/serveur • Basé sur le protocole SMB: Server Message Block 11/11/2023 172 Accès aux fichiers distants Serveur SAMBA
  • 173.
    Serveur Samba: serveurde fichiers et de services classiques • Partage de fichiers et de répertoires • Partage d’imprimantes • Prise en compte des comptes utilisateurs • Gestion des permissions d’accès • Exécution de scripts de connexion 11/11/2023 173 Accès aux fichiers distants Serveur SAMBA
  • 174.
    • Protocole deMicrosoft et Intel permettant le partage de ressources (disques, imprimantes. . .) à travers un réseau (1987). Il a connu plusieurs évolutions (et différents noms SMB, CIFS et SMB2) 11/11/2023 174 Accès aux fichiers distants Protocole SMB: Server Message Block • On peut se connecter à un répertoire partagé par un serveur distant. • On peut lui attribuer une lettre (le monter ?) • L’utilisateur doit s’identifier auprès du serveur.
  • 175.
    • Protocole deMicrosoft et Intel permettant le partage de ressources (disques, imprimantes, . . . ) à travers un réseau (1987) • SMB est prévu pour être utilisé au dessus de l’interface NetBIOS ⇒ Utilisation des noms NetBIOS (15 caractères + 1 pour le type) ⇒ Utilisation du mécanisme de datagramme de NetBIOS par broadcast comme service de nommage (nom → MAC, pas d’adresse de niveau 3) 11/11/2023 175 Accès aux fichiers distants Protocole SMB: Server Message Block
  • 176.
    11/11/2023 176 • Permetd’identifier les éléments du réseau (et donc permet le partage de fichiers, imprimantes, …) • Equivalent au DNS pour Internet • Ce n’est pas un protocole au sens OSI, c’est une méthode pour nommer des machines • Tous les réseaux Microsoft sont basés dessus • Permet de nommer des machines, des groupes de travail, des Domaines de faire fonctionner le voisinage réseau • Un nom NetBIOS a 15 caractères maximum +1 ⇒ Ce peut être le nom de la machine Windows (accessible via le voisinage réseau) ⇒ Ou le nom du groupe de travail • Le 16ème caractère indique dans quel cas on est et aussi la fonction de la machine (standard ou contrôleur) Accès aux fichiers distants NetBios
  • 177.
    • Ressources (systèmesde fichiers imprimantes, etc.) offertes par un serveur à des clients Windows • Connexion : utilisation d’un compte créé par root ⇒ Authentification par mot de passe 11/11/2023 177 Accès aux fichiers distants SAMBA: Principe de fonctionnement
  • 178.
    • La partieserveur de SaMBa est gérée par des programmes : ⇒ smbd : gestion du service ⇒ nmbd : résolution des noms NetBios 11/11/2023 178 Accès aux fichiers distants SAMBA: Le serveur
  • 179.
    • Côté client,le protocole SMB nécessite l'installation préalable des protocoles NetBIOS et TCP/IP. Ce dernier est indispensable car c’est le seul protocole réseau reconnu. 11/11/2023 179 Accès aux fichiers distants SAMBA: Les clients
  • 180.
    11/11/2023 180 Transfert defichiers Protocole FTP
  • 181.
    • Système detransfert de fichiers : ⇒ Transmettre un fichier de manière efficace et fiable, entre un client et un serveur • Transfert dans le sens : ⇒ Client => serveur, ou serveur => client ⇒ Entre deux serveurs gérés par le client • Les systèmes de fichiers (du client et du serveur) sont: ⇒ gérés localement et indépendamment • Le système de nommage de fichiers: ⇒ Le nom d'un fichier est une chaine de caractères ⇒ Qui respecte le système de nommage de fichiers local 11/11/2023 181 Transfert de fichiers Système de transfert de fichiers
  • 182.
    • File TransferProtocol (protocole de transfert de fichiers), ou FTP: ⇒ un protocole de communication destiné à l'échange informatique de fichiers sur un réseau TCP/IP. • Il permet, depuis un ordinateur: ⇒ de copier des fichiers vers un autre ordinateur du réseau, ⇒ d'administrer un site web ⇒ ou encore de supprimer ou de modifier des fichiers sur cet ordinateur. • La variante de FTP protégée par SSL s'appelle FTPS. 11/11/2023 182 Transfert de fichiers Protocole FTP
  • 183.
    • FTP obéità un modèle client/serveur: • le client, envoie des requêtes • Le serveur réagit à ces requêtes • En pratique, le serveur est un ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP, qui rend publique une arborescence de fichiers similaire à un système de fichiers Unix. 11/11/2023 183 Transfert de fichiers FTP: Client/serveur
  • 184.
    • Le protocoleutilise deux types de connexions TCP : ⇒ Une connexion de contrôle initialisée par le client, vers le serveur (port 21 en général), pour transmettre les commandes de fichiers (transfert, suppression de fichiers, renommage, liste des fichiers…) ⇒ Une connexion de données initialisée par le client ou le serveur pour transférer les données requises (contenu des fichiers, liste de fichiers) 11/11/2023 184 Transfert de fichiers FTP: Types de connexion
  • 185.
    • Utilisation de2 ports de communication: ⇒ 20 : Port de données ⇒ 21 : Port de contrôle 11/11/2023 185 Transfert de fichiers FTP: Numéros de ports
  • 186.
    • Une sessionFTP se déroule en quatre étapes: ⇒ Authentification de l'utilisateur ⇒ Etablissement du canal de contrôle ⇒ Etablissement du canal de données ⇒ Fermeture de la connexion 11/11/2023 186 Transfert de fichiers Session FTP
  • 187.
    • FTP peuts'utiliser de deux façons différentes : ⇒ Mode actif ⇒ Mode passif 11/11/2023 187 Transfert de fichiers FTP: Modes de fonctionnement
  • 188.
    • Dans unpremier temps, le client établit une première session TCP, depuis un port aléatoire du client, vers le port 21 (TCP) du serveur formant ainsi le control channel. • Une fois la session établie et l'authentification FTP acceptée, le serveur établit une session TCP, depuis son port 20 (FTP-DATA), vers un port défini par le client, formant ainsi le data channel. 11/11/2023 188 Transfert de fichiers FTP: Mode actif
  • 189.
    11/11/2023 189 Transfert defichiers FTP: Mode actif 3. Le Serveur démarre une nouvelle connexion vers le client sur le port spécifié par le Client, avec en port source le port 20. 4. Les données transiteront ensuite par cette connexion. 1. Le client contacte le serveur sur le port 21 depuis un port aléatoire > 1024. 2. Le client envoie la commande PORT qui va spécifier au serveur un numéro de port a contacter
  • 190.
    • Dans unpremier temps, le client établit une première session TCP, depuis un port aléatoire du client, vers le port 21 (TCP) du serveur formant ainsi le control channel. • Une fois la session établie et l'authentification FTP acceptée, le client demande au serveur de se mettre en attente de session TCP grâce à la commande PASV, le serveur accepte et indique quel port il met à la disposition du client, • le client établit une seconde session TCP sur ce port ("data channel"). 11/11/2023 190 Transfert de fichiers FTP: Mode passif
  • 191.
    1. Le clientcontacte le serveur sur le port 21 depuis un port aléatoire > 1024. 2. Le client envoie la commande PASV pour signifier au serveur qu’il souhaite une connexion dite passive. 11/11/2023 191 Transfert de fichiers FTP: Mode passif 3. Le serveur acquitte la demande du client et lui répond avec le port sur lequel le joindre. 4. Le client démarre une nouvelle connexion vers le serveur sur le port spécifié, avec en port source un nouveau port aléatoire > 1024. le client établit une seconde session TCP sur ce port .
  • 192.
    • En modeactif, c'est le client qui décide sur quel port doivent entrer les données. Il définit ce port. • Le serveur initie le transfert. Si le client se trouve derrière un pare- feu, les données seront bloquées, vu qu'il n'est pas possible de connaître le port qui devrait être translaté ou ouvert. • En mode passif, c'est le serveur qui définit le port par lequel il envoie les données. • C'est le client qui initie le transfert. Il n'y a donc plus de problème au niveau du client. Sur le serveur, il est possible de spécifier une plage de ports de données et donc d'ouvrir cette plage sur le pare-feu. 11/11/2023 192 Transfert de fichiers FTP: Mode actif vs mode passif
  • 193.
    • vsftpd estun serveur FTP pour les systèmes d'exploitation de type UNIX. • L'acronyme vsftpd signifie "Very Secure FTP Daemon« • VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale. • Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille de sécurité n'a jamais été décelée dans VsFTPd. • Ce serveur est notamment utilisé à grande échelle par des entreprises 11/11/2023 193 Transfert de fichiers Serveur FTP: Vsftpd
  • 194.
    La haute sécuritéa été une de principales exigences de vsftpd: • vsftpd fonctionne en mode chroot. Cela signifie que le programme (ici vsftpd) s'exécute dans un nouveau répertoire racine (/) et ne peut donc pas accéder aux autres programmes et fichiers en dehors de ce répertoire. • Il est en quelque sorte « emprisonné » dans cet environnement. Si un attaquant potentiel compromettait le serveur FTP, il serait isolé du reste du système et limiterait les risques de dégâts. 11/11/2023 194 Transfert de fichiers Serveur FTP: Vsftpd
  • 195.
    Vsftpd possède denombreuses caractéristiques qui manquent sur les autres serveurs FTP, comme: • très haut niveau de sécurité • limitation de la bande passante • bonne ajustabilité • possibilité de définir des utilisateurs virtuels • support IPnG • performance meilleure que la moyenne • possibilité d'attribuer des adresses IP virtuelles • haute vitesse 11/11/2023 195 Transfert de fichiers Vsftpd: caractéristiques
  • 196.
    • La configurationpar défaut de VsFTPd est très restrictive : ⇒ Le compte anonyme n’est pas autorisé à se connecter au serveur ⇒ En lecture seule ⇒ Les utilisateurs ne peuvent accéder à leur compte 11/11/2023 196 Transfert de fichiers Vsftpd: configuration par défaut
  • 197.
  • 198.
    • Architecture Client/Serveur •Nécessité d’un protocole de communication: HTTP 11/11/2023 198 Serveur Web La base du web
  • 199.
    • Serveur webou serveur httpd (http daemon): logiciel qui sert des pages Web aux clients. • Capable d'interpréter les requêtes http arrivant sur le port associé au protocole HTTP (port 80 par défaut) et de fournir une réponse avec ce même protocole. • Par extension, on appelle souvent la machine physique sur laquelle tourne le logiciel un « serveur web » 11/11/2023 199 Serveur Web Serveur web: Présentation
  • 200.
    • Un serveurHTTP est à l’écoute des connections sur un port donné. • Le port standard pour un serveur HTTP est le numéro 80. • Le client d’un serveur HTTP est le navigateur Internet. • A chaque requête qu’il reçoit le serveur présente à l’utilisateur la page demandée. • Sur certains serveurs le port d’écoute n’est pas 80 mais par exemple 1234. Dans ce cas on accèdera au serveur par l’adresse suivante : http://www.site.com:1234/ . 11/11/2023 200 Serveur Web Serveur web: Présentation
  • 201.
    • Utilisation duréseau Internet et du protocole HTTP qui formalise les échanges entre le Client (navigateur Chrome, Firefox, . . . ) et le Serveur Web (Apache, Nginx, . . . ). • L’utilisateur saisit une URL (Uniform Resource Locator) dans le navigateur qui transmet la requête vers le serveur en utilisant le protocole HTTP. • Le serveur analyse la requête, la traite et renvoie vers le navigateur sa réponse. Le plus souvent dans un format texte structuré avec le langage de balises HTML • La réponse contient aussi des images, du son, des vidéos et du code dans le langage javascript qui sera exécuté par un interpréteur dans le navigateur. 11/11/2023 201 Serveur Web Fonctionnement du service web
  • 202.
    • Le protocoleHTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur Internet depuis 1990. • Ce protocole permet un transfert de fichiers (essentiellement au format HTML, mais aussi au format CSS, JS, AVI…) localisés grâce à une chaîne de caractères appelée URL entre un navigateur (le client) et un serveur Web (appelé d’ailleurs httpd sur les machines UNIX). 11/11/2023 202 Serveur Web Protocole HTTP
  • 203.
  • 204.
    • HTTP estun protocole requête/réponse opérant au dessus de TCP. ⇒ Le client ouvre une connexion TCP vers le serveur et envoie une requête. ⇒ Le serveur analyse la requête et répond en fonction de sa configuration. • Exemple de requête HTTP: • Exemple de réponse du serveur: 11/11/2023 204 Serveur Web Protocole HTTP
  • 205.
    Une réponse HTTPest un ensemble de lignes envoyées au navigateur par le serveur: • Une ligne de statut : c’est une ligne précisant la version du protocole utilisé et l’état du traitement de la requête à l’aide d’un code et d’un texte explicatif. La ligne comprend trois éléments devant être séparés par un espace : ⇒ La version du protocole utilisé ; ⇒ Le code de statut ; ⇒ La signification du code . • Les champs d’en-tête de la réponse : il s’agit d’un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la réponse et/ou le serveur. 11/11/2023 205 Serveur Web Réponse HTTP
  • 206.
    • Le corpsde la réponse : il contient le document demandé. • Le rôle du serveur web consiste à traduire une URL en ressource locale. Consulter la page http://www.free.fr/, revient à envoyez une requête HTTP à cette machine. Le service DNS joue donc un rôle essentiel. 11/11/2023 206 Serveur Web Réponse HTTP
  • 207.
    • URL: UnifiedResource Locator ⇒ ex: http://www.apache.org/download/apache_1_3_3_tar.gz • URI: Unified Resource Indicator ⇒ ex: /download/apache_1_3_3_tar.gz 11/11/2023 207 Serveur Web Protocole HTTP
  • 208.
    • Les serveursHTTP les plus utilisés sont : ⇒ Apache : HTTP serveur de la Apache Software Foundation. ⇒ IIS : Internet Information Services de Microsoft (IIS) ⇒ Sun ONE : Sun Microsystems 11/11/2023 208 Serveur Web Exemple de serveurs HTTP
  • 209.
  • 210.
    • Les navigateursweb ⇒ Firefox, Chrome, Chromium, Internet Explorer, Safari... • Les clients en ligne de commande ⇒ wget, cURL... • Les clients programmés spécifiquement ⇒ la plupart des langages de programmation permettent de faire des requêtes HTTP) 11/11/2023 210 Serveur Web Exemple de clients HTTP
  • 211.
    • Ecrit enC (portable), plate forme UNIX (ou Linux) recommandée • Multi-processus / multi-thread (daemon httpd) • Configuration très flexible • Architecture modulaire • Comment obtenir Apache ? ⇒ inclut dans la plupart des distributions linux (httpd) ⇒ sources et binaires sur http://www.apache.org/dist/httpd • Première version décembre 1995 • Dernière version : Apache 2.2 11/11/2023 211 Serveur Web Apache: Présentation
  • 212.
    11/11/2023 212 Serveur Web Apache:Installation, démarrage et redémarrage # Sudo apt-get install apache2 # sudo /etc/init.d/apache2 start # Sudo etc/init.d/apache2 stop # Sudo /etc/init.d/apache2 restart # Sudo /etc/init.d/apache2 reload
  • 213.
    • Juste aprèsune installation standard, apache est fonctionnel. • Il est capable de servir des pages html, des images, et plus généralement des fichiers. • Il n’est optimisé pour aucun usage précis. • Il n’est pas non plus capable d’interpréter des pages en php (ou en quelque langage que ce soit) ni d’accéder à aucun type de bases de données. 11/11/2023 213 Serveur Web Apache en version de base Pour cela, il faudra jouer avec les fichiers de configuration et les modules.
  • 214.
    • L’emplacement desfichiers de configuration de apache varie très fortement selon les distribution, et parfois d’une version d’une même distribution à l’autres. • De manière générale, les fichiers se trouvent dans /etc, et plus précisément dans /etc/apache2 ou /etc/httpd. 11/11/2023 214 Serveur Web Apache: fichier de configuration principal Ubuntu
  • 215.
    11/11/2023 215 Serveur Web Apache:Les autres fichiers de configuration
  • 216.
    11/11/2023 216 Serveur Web Apache:Les modules disponibles • Les modules d’apache étendent les fonctionnalités du logiciel. • De nombreux modules sont disponibles. • Certain n’ont pas été mis à jour depuis très longtemps.
  • 217.
    • Les modulesactivés se trouvent dans le répertoire /etc/apache2/mods-enabled/ • En pratique, ce ne sont pas des fichiers mais des liens vers les fichiers .load et .conf situés dans le répertoire /etc/apache2/mods-available/ • Pour activer un module, il suffit de créer un lien dans mods-enabled vers les fichiers .load et .conf situés dans mods-available (l’utilitaire a2enmod est la pour ca). 11/11/2023 217 Serveur Web Apache: Les modules activés
  • 218.
    • Les modulesapache sont des bibliothèques et s’installent comme suit: • Les modules installés apparaissent dans mods-available et sont activés automatiquement. 11/11/2023 218 Serveur Web Apache: Installation de modules supplémentaire # Sudo apt-get install libapache2-mod-php
  • 219.
    11/11/2023 219 Serveur Web Apache:Hébergement mutualisé
  • 220.
    11/11/2023 220 Serveur Web Apache:Fonctionnement des virtual Hosts • Apache distingue les différents Virtual Hosts grâce au paramètre Host de la requête http du client. • En pratique, chaque site web situé d’un hébergement mutualisé donné est nommé par une entrée différente dans le DNS. • Les hôtes virtuels déployables sont décrits dans les fichiers situés dans /etc/apache2/sites-available/. • Les hôtes virtuels déployés sont décrits par les liens sur ces même fichiers situés dans /etc/apache2/sites-enabled. • L’outil a2ensite permet de créer facilement le lien dans sites-enabled à partir du nom du fichier dans sites-available.
  • 221.
    11/11/2023 221 Serveur Web Apache:Fichiers de description des virtual Hosts
  • 222.
    11/11/2023 222 Serveur Web Moduleset virtual Hosts: Outils pratiques
  • 223.
    11/11/2023 223 Accès àdistance au serveur Protocole SSH
  • 224.
    • Garder lamobilité • Agir à distance ⇒ Gérer les serveurs ⇒ Dépanner les utilisateurs et les postes • Interaction entre bureaux ⇒ Travail d’équipe • Travailler dans un server à partir de clients légers 11/11/2023 224 Accès à distance au serveur Pourquoi accéder à distance?
  • 225.
    • L’utilisateur doitavoir un accès autorisé à l’ordinateur: • gestion de l’utilisateur comme un utilisateur local (généralement sous *nix) ; • gestion séparée. • Environnement hétérogène (Par ex : un étudiant se loggue depuis son portable windows sur le serveur bsd de l’université): • problème d’encodage ; • problème d’affichage ; • problème d’accès aux périphériques ; • émulation de terminal ou de bureau. • Sécurité: • Que se passe-t-il si un utilisateur distant a accès aux touches du clavier ? • Que peut faire un utilisateur une fois loggué sur le vieux serveur de test ? 11/11/2023 225 Accès à distance au serveur Contraintes d’accès à distance
  • 226.
    • Telnet (1983): un des premiers standards de l’internet • Rlogin/Rsh (1991) : ⇒ permet des accès sans mot de passe, ⇒ exécution de commandes à distance • ssh : ⇒ les communications sont chiffrées ; ⇒ authentifications par mot de passe ou clefs ; ⇒ finalisé depuis 2006. 11/11/2023 226 Accès à distance au serveur Exemples de connexions à distance
  • 227.
    Protocoles: • Telnet: TerminalNetwork ou Télécommunication Network • SSH: Secure Shell • RDP: Remote Desktop Protocol • RFB: remote framebuffe Outils: • Open SSH / Putty • TeamViewer • DameWare • Connexion bureau à distance 11/11/2023 227 Accès à distance au serveur Protocoles et outils
  • 228.
    11/11/2023 228 Accès àdistance au serveur Fonctionnement d’une connexion locale
  • 229.
    11/11/2023 229 Accès àdistance au serveur Fonctionnement d’une connexion distante
  • 230.
    • SSH= SecureShell • SSH est à la fois la définition d’un protocole et un ensemble de programmes utilisant ce protocole, • destinés à permettre aux utilisateurs d’ouvrir, depuis une machine cliente, des sessions interactives sécurisé à distance sur des serveurs et de transférer des fichiers entre les deux. 11/11/2023 230 Accès à distance au serveur Présentation de SSH • Echange de clés de chiffrement • Toutes les trames sont chiffrées • Impossible de lire les trames sur le réseau via un sniffer • Remplaçant de rlogin, telnet et rsh Protocole SSH
  • 231.
    • Authentification • Transfertsde fichiers • Monter un répertoire distant localement • Redirection de connexion 11/11/2023 231 Accès à distance au serveur Fonctionnalités de SSH
  • 232.
    SSH vise directementces trois aspects de la sécurité: • Confidentialité: ⇒ Protéger nos données des yeux indiscrets • Authentification: ⇒ Cette personne est-elle bien celle qu'elle prétend être ? • Autorisation: ⇒ Cette personne a-t-elle le droit de faire ce qu'elle veut faire ? 11/11/2023 232 Accès à distance au serveur Préoccupations principales de SSH
  • 233.
    • SSH permetde sécuriser les communications des réseaux en utilisant la cryptographie. • SSH est composé d’un ensemble d'outils permettant des connexions sécurisées entre des machines. Ces outils ont pour but de remplacer les utilitaires de connexions classiques n'utilisant pas de chiffrage. • Remplace: rcp, rlogin, rsh, telnet (ftp par sftp en SSH V2) • SSH chiffre et compresse un canal de communication qui sécurise les données transmises (permet d’éviter les sniffeurs réseaux) • Non seulement le mot de passe est chiffré lors de la connexion mais les informations circulant sur le réseau entre les deux machines le sont aussi. 11/11/2023 233 Accès à distance au serveur SSH: Sécurisation des connexions
  • 234.
    • L’avantage importantoffert par SSH par rapport à ses prédécesseurs est l’utilisation du cryptage pour assurer le transfert sécurisé d’informations entre l’hôte et le client, • Il existe trois technologies de cryptage différentes utilisées par SSH : ⇒ Cryptage symétrique ⇒ Cryptage asymétrique ⇒ Hachage 11/11/2023 234 Accès à distance au serveur Techniques de cryptage utilisées par SSH
  • 235.
    11/11/2023 235 Accès àdistance au serveur Cryptage symétrique Cryptage symétrique= cryptage à clé partagée= cryptage à secret partagé
  • 236.
    Si Alice veutenvoyer un message confidentiel à Bob: • Alice et Bob doivent d'abord posséder une même clef secrète. • Alice chiffre le message avec la clé secrète puis l'envoie à Bob sur un canal qui n'est pas forcément sécurisé. • Bob déchiffre alors le message grâce à la clef secrète. • Toute autre personne en possession de la clef secrète peut également déchiffrer le message. 11/11/2023 236 Accès à distance au serveur Cryptage symétrique
  • 237.
    11/11/2023 237 Accès àdistance au serveur Cryptage symétrique
  • 238.
    • Les algorithmesde chiffrement symétrique sont beaucoup moins gourmands en ressources processeur que ceux de chiffrement asymétrique • Problème: l'échange de la clef secrète entre Alice et Bob • Dans le protocole SSL, qui est utilisé par SSH, la cryptographie asymétrique est utilisée au début de la communication pour que Alice et Bob puissent s'échanger une clef secrète de manière sécurisée, • la suite la communication est sécurisée grâce à la cryptographie symétrique en utilisant la clef secrète ainsi échangée. 11/11/2023 238 Accès à distance au serveur Cryptage symétrique
  • 239.
    • Principe: Onutilise 2 clés ⇒ Une clé « publique » qui sert à crypter ⇒ Une clé « privée » servant à décrypter • Clé publique : peut transiter ⇒ S'assurer toutefois de son authenticité • Clé privée : reste chez son propriétaire • Il doit être impossible de déduire la clé privée de la clé publique • Méthodes principales : • RSA : Rivest Shamir Adleman, 1977 • DSA : Digital Signature Algorithm, 1991 • ECDSA : Elliptic Curve DSA, 1992 11/11/2023 239 Cryptage asymétrique Accès à distance au serveur
  • 240.
    11/11/2023 240 Cryptage asymétrique Accèsà distance au serveur Avantage: ⇒ Même en interceptant le message, impossible de le décrypter sans la clé privée Inconvénient: ⇒ Algorithmes lents en général
  • 241.
  • 242.
    1. Connexion TCPau port 22 du serveur 2. le client envoie une clef publique en utilisant la clef publique du serveur (s’il ne l’a pas, il doit d’abord l’accepter, ou la récupérer sur un serveur tiers.) 3. client et serveur se mettent d’accord sur une clef symétrique 4. les échanges suivants sont cryptés par cette nouvelle clef, y compris l’authentification de l’utilisateur 5. régulièrement (tous les 1Go transférés / toutes les heures), on change la clef 11/11/2023 242 Accès à distance au serveur Etapes du protocole SSH
  • 243.
    • Un serveurSSH dispose d'un couple de clefs RSA stocké dans le répertoire /etc/ssh/ et généré lors de l'installation du serveur. • Le fichier ssh_host_rsa_key contient la clef privée et a les permissions 600 (Lecture, écriture pour le propriétaire / aucun droit pour les autres). • Le fichier ssh_host_rsa_key.pub contient la clef publique et a les permissions 644 (Lecture, écriture pour le propriétaire / Lecture pour les autres) 11/11/2023 243 Accès à distance au serveur Etablissement d’une connexion SSH
  • 244.
    • Le serveurenvoie sa clef publique au client. Celui-ci vérifie qu'il s'agit bien de la clef du serveur, s'il l'a déjà reçue lors d'une connexion précédente. • Le client génère une clef secrète et l'envoie au serveur, en chiffrant l'échange avec la clef publique du serveur (chiffrement asymétrique). Le serveur déchiffre cette clef secrète en utilisant sa clé privée, ce qui prouve qu'il est bien le vrai serveur. • Pour le prouver au client, il chiffre un message standard avec la clef secrète et l'envoie au client. Si le client retrouve le message standard en utilisant la clef secrète, il a la preuve que le serveur est bien le vrai serveur. • Une fois la clef secrète échangée, le client et le serveur peuvent alors établir un canal sécurisé grâce à la clef secrète commune (chiffrement symétrique). • Une fois que le canal sécurisé est en place, le client va pouvoir envoyer au serveur le login et le mot de passe de l'utilisateur pour vérification. Le canal sécurisé reste en place jusqu'à ce que l'utilisateur se déconnecte 11/11/2023 244 Accès à distance au serveur Etablissement d’une connexion SSH
  • 245.
    • La seulecontrainte est de s'assurer que la clef publique présentée par le serveur est bien sa clef publique… • sinon le client risque de se connecter à un faux serveur qui aurait pris l'adresse IP du vrai serveur. • Une bonne méthode est par exemple de demander à l'administrateur du serveur quelle est le fingerprint de la clef publique du serveur avant de s'y connecter pour la première fois. • Le fingerprint d'une clef publique est une chaîne de 32 caractères hexadécimaux à peu près unique pour chaque clef (un hachage) 11/11/2023 245 Accès à distance au serveur Etablissement d’une connexion SSH
  • 246.
    • on nestocke pas le mot de passe mais son empreinte ; • on utilise généralement une valeur aléatoire seed ajoutée au mot de passe pour se protéger des mots de passe identiques ; • pour vérifier un mot de passe, on applique le même algorithme et on vérifie que le résultat est identique. 11/11/2023 246 Accès à distance au serveur Fonction de hachage
  • 247.
    Site : http://www.openssh.org •Version logicielle actuelle : openssh 7.9 ⇒ Existe en format packagé pour toutes distributions • Subit un audit permanent du code • OpenSSH utilise principalement : • OpenSSL • Zlib pour la compression des flux • Perl lors de l’installation, pour des applications tiers (sshcopyid…) • …… 11/11/2023 247 Accès à distance au serveur Terminologie de SSH
  • 248.
    La boîte àoutils SSH est généralement composée de : • Serveur : sshd • Clients : ssh, scp, sftp (ssh = slogin) • Des outils de gestion: ssh-add, ssh-agent, ssh-keygen, sshkeyscan • Les fichiers de configuration (OpenSSH) sont souvent dans: ⇒ Pour le serveur : /etc/ssh ⇒ Pour les clients : /etc/ssh et $HOME/.ssh • Fonctionnement sur le schéma d’un système client – serveur ⇒ Les clients ssh demandent une ouverture de connexion au serveur sshd 11/11/2023 248 Accès à distance au serveur Les outils SSH
  • 249.
    Cryptographie dans SSH: •Repose sur les algorithmes d'OpenSSL ⇒ Algorithmes asymétriques: • RSA et DSA ⇒ Algorithmes symétriques: • 3DES, Blowfish, AES, Arcfour ... 11/11/2023 249 Accès à distance au serveur SSH Sous Linux
  • 250.
    11/11/2023 250 Accès àdistance au serveur Fonctionnement de SSH
  • 251.
    11/11/2023 251 Accès àdistance au serveur L’authentification des serveurs • Le principe d’authentification du serveur se fait par chiffrement à clé publique du protocole SSH. • Le client doit donc connaître la clé publique du serveur sur lequel il veut se connecter avant toute connexion. Ainsi, il existe un mécanisme pour la machine cliente pour stocker les clés d'un serveur afin de les réutiliser ensuite; • Il pourra ainsi vérifier la clé d'un serveur à chaque nouvelle connexion avec celle enregistrée lors de la première connexion; • Cela permet d'éviter les attaques du type man-in-themiddle
  • 252.
    11/11/2023 252 Accès àdistance au serveur L’authentification des utilisateurs • Une fois que la connexion sécurisée est mise en place entre le client et le serveur, le client doit s'identifier sur le serveur afin d'obtenir un droit d'accès. ⇒ Par mot de passe: le client envoie un nom d'utilisateur et un mot de passe au serveur au travers de la communication sécurisé et le serveur vérifie si l'utilisateur concerné a accès à la machine et si le mot de passe fourni est valide ⇒ Par clés publiques : si l'authentification par clé est choisie par le client, le serveur va créer un challenge et donner un accès au client si ce dernier parvient à déchiffrer le challenge avec sa clé privée ⇒ Par Kerberos, SmartCard, …
  • 253.
    11/11/2023 253 Accès àdistance au serveur SSH: Accès aux fichiers distants • Il est possible d’accéder aux fichiers d’une machine qui possède un serveur SSH, avec les mêmes droits d’accès que l’utilisateur avec lequel on est connecté.
  • 254.
  • 255.
    • Un annuaireest un conteneur d’informations organisées. • Un annuaire est similaire à une base de données : ⇒ on peut y mettre des informations et les consulter. • mais il est plus spécialisé : ⇒ il est dédié plus à la lecture qu’à l’écriture, ⇒ l’accès aux données se fait par recherche multi-critères. • Des exemples d’annuaires sont : ⇒ l’annuaire téléphonique (Pages jaunes), ⇒ les carnets d’adresse, ⇒ les répertoires de rues, • Un annuaire global célèbre très utilisé : DNS ⇒ il a un espace de nommage uniforme ⇒ il est distribué entre des serveurs coopérants 11/11/2023 255 Annuaire LDAP Qu’est ce qu’un annuaire?
  • 256.
    • Un serviced’annuaire électronique, c’est aussi en plus : ⇒ un protocole qui permet l’accès au contenu, ⇒ une syntaxe qui permet d’interroger la base de données, ⇒ un modèle de duplication des données, ⇒ un modèle de distribution des données. • Un annuaire est caractérisée par : ⇒ une mise à jour dynamique : les données consultées sont régulièrement mises à jour. ⇒ un contenu évolutif : des informations supplémentaires peuvent être ajoutées. ⇒ une organisation plus flexible des données : il est possible de créer des index et de faire des recherches avancées 11/11/2023 256 Annuaire LDAP Caractéristiques d’un annuaire
  • 257.
    11/11/2023 257 Annuaire LDAP Annuairevs Base de données Sur un système informatique, les données ne sont pas organisées de manière relationnelle comme sur les SGBD classiques (MySQL, PgSQL, SQLServer, ...) mais de manière hiérarchique.
  • 258.
    • Caractéristiques comparéesdes annuaires et des bases de données: ⇒ le rapport lecture/écriture est plus élevé, ⇒ les bases sont plus facilement extensibles, ⇒ la diffusion se fait à plus large échelle, ⇒ la répartition des données entre des serveurs est plus éclatée, ⇒ il y a duplication de l’information, ⇒ il existe des possibilités d’avoir de fortes quantités d’enregistrements mais de faibles capacités de stockage. 11/11/2023 258 Annuaire LDAP Annuaire vs Base de données
  • 259.
    • Un annuaireélectronique est une sorte d’entrepôt de données qui les rends disponibles pour des applications ou des utilisateurs. ⇒ des mots de passe ou des certificats d’authentification. ⇒ des adresses de courriels. ⇒ des informations de contact : téléphone, adresse, bureau... ⇒ des profils de configuration de logiciels. ⇒ etc. 11/11/2023 259 Annuaire LDAP Un annuaire ≈ un entrepôt de données
  • 260.
    • Standard conçupar les opérateurs télécom pour interconnecter leurs annuaires téléphoniques. • Destiné à devenir LE service d’annuaire GLOBAL distribué, normalisé et fédérateur. • Mais conçu aussi pour répondre à tout type de besoin d’annuaire grâce à un modèle de données de type objet et extensible. X.500 définit : • les règles pour nommer les objets et les entités • les protocoles pour fournir le service d’annuaire • un mécanisme d’authentification. 11/11/2023 260 Annuaire LDAP Historique (X.500)
  • 261.
    11/11/2023 261 X.500 n'apas abouti car elle ne s'est pas adaptée à l'essor des communications distantes avec le protocole TCP/IP. Elle utilisait un système compliqué pour communiquer impliquant l'ensemble du modèle OSI. Annuaire LDAP Historique (X.500)
  • 262.
    • Apparition deLDAP en 1993. ⇒ Lightweight Directory Access Protocol (LDAP) est né de l’adaptation de X.500 DAP au protocole TCP/IP. • Deux groupes de travail aboutissent à deux produits fonctionnant comme frontal X.500 : ⇒ Directory Assistance Service (DAS) : RFC 1202. ⇒ Interface to X.500 Implemented Efficiently (DIXIE) : RFC 1249. • qui convergent finalement vers le standard IETF LDAP ⇒ LDAPv1 : RFC 1487. ⇒ LDAPv2 : RFC 1777. ⇒ LDAPv3 : RFC 2251. • LDAP garde beaucoup d’aspects de X.500 dans les grandes lignes, mais va dans le sens de la simplification. 11/11/2023 262 Annuaire LDAP Historique du protocole LDAP
  • 263.
    • fournir auxutilisateurs des informations fiables, facilement accessibles • permettre aux utilisateurs de mettre à jour eux-même leurs informations personnelles • rendre les informations accessibles de façon contrôlée • éviter la redondance d’informations : un seul annuaire pour l’ensemble des services • faciliter la gestion (administration) des postes de travail, des équipements réseau • Tout ceci est fait sans remettre en cause les applications existantes 11/11/2023 263 Annuaire LDAP Objectifs d’un annuaire LDAP
  • 264.
    • LDAP estun protocole d’annuaire standard et extensible. Il fournit : ⇒ le protocole permettant d’accéder à l’information contenue dans l’annuaire, ⇒ un modèle d’information définissant le type de données contenues dans l’annuaire, ⇒ un modèle de nommage définissant comment l’information est organisée et référencée, ⇒ un modèle fonctionnel définissant comment on accède à l’information , 11/11/2023 264 Annuaire LDAP Les concepts de LDAP(1)
  • 265.
    ⇒ un modèlede sécurité définissant comment données et accès sont protégés, ⇒ un modèle de duplication définissant comment la base est répartie entre serveurs, ⇒ des APIs pour développer des applications clientes, ⇒ LDIF, un format d’échange de données. 11/11/2023 265 Annuaire LDAP Les concepts de LDAP(2) Le format LDIF (Ldap Data Interchange Format) est un format standard qui permet de représenter sous forme de fichier texte les donnés présentes dans un annuaire. Il offre également une syntaxe qui permet de faire des modifications dans l'annuaire.
  • 266.
    Le protocole définit: • Comment s’établit la communication client-serveur : ⇒ commandes pour se connecter ou se déconnecter, pour rechercher, comparer, créer, modifier ou effacer des entrées. • Comment s’établit la communication serveur-serveur : ⇒ échanger leur contenu et le synchroniser (replication service). ⇒ créer des liens permettant de relier des annuaires les uns aux autres (referral service). • Le format de transport des données : ⇒ pas l’ASCII (comme pour HTTP, SMTP,...) mais le Basic Encoding Rules (BER), sous une forme allégée (appelée LBER Lightweight). 11/11/2023 266 Annuaire LDAP Le protocole LDAP(1)
  • 267.
    Le protocole définit(suite) : • Les mécanismes de sécurité : ⇒ méthodes de chiffrement et d’authentification ⇒ mécanismes de règles d’accès aux données. • Les opérations de base : ⇒ interrogation : search, compare ⇒ mise à jour : add, delete, modify, rename ⇒ connexion au service : bind, unbind, abandon 11/11/2023 267 Annuaire LDAP Le protocole LDAP(2)
  • 268.
    11/11/2023 268 Annuaire LDAP Lemodèle d’information (1) • Le modèle d’information définit le type de données pouvant être stockées dans l’annuaire : ⇒ L’entrée (Entry) = élément de base de l’annuaire. Elle contient les informations sur un objet de l’annuaire. ⇒ C'est lui qui contient les données. C'est l'équivalent en programmation orientée objet d'une "classe d'objet". ⇒ Ces informations sont représentées sous la forme d’attributs décrivant les caractéristiques de l’objet ⇒ Toute sorte de classe d’objet (réel ou abstrait) peut être représentée. Exemple d’entrée
  • 269.
    11/11/2023 269 Annuaire LDAP Lemodèle d’information (2) • Exemples de classes d’objet : ⇒ une entreprise ⇒ ses différents départements ⇒ son personnel ⇒ ses imprimantes ⇒ ses groupes de travail
  • 270.
    11/11/2023 270 Annuaire LDAP Lemodèle d’information (3)
  • 271.
    11/11/2023 271 Annuaire LDAP Lemodèle d’information (4) • Un attribut est caractérisé par: ⇒ un nom ⇒ un type ⇒ une méthode de comparaison ⇒ un « Object Identifier » (IOD) ⇒ une valeur. Exemple d’entrée Remarque: un attribut peut être possédé par plusieurs classes ! Par exemple, une entré de type "Fournisseur" peut avoir le même attribut "cn" (common name) qu'une entrée de type "Client". Les attributs classiques de LDAP
  • 272.
    11/11/2023 272 Annuaire LDAP Lemodèle d’information (5) les types "Client" et "Salarié" héritent des attributs du type "Personne" qui lui même héritent des attributs du type "Top" • Tout les types d'entrées (Client, Fournisseur, ...) et leur attributs (cn, ou, ...) sont définis dans un schéma. • Le schéma définit l'ensemble des types d'entrées par le service LDAP. Chaque entrée de l'annuaire fait obligatoirement référence à une classe d'objet du schéma. • Les types d'entrées sont organisées de manière hiérarchique. Le sommet de cette organisation hiérarchique est toujours occupé par le type "Top". Et cette organisation met en place un système d'héritage où chaque type hérite des attributs de son type parent.
  • 273.
    11/11/2023 273 Annuaire LDAP Lemodèle d’information (6) • L’objet inetOrgPerson à la filiation suivante : ⇒ objectClass: top ⇒ objectClass: person ⇒ objectClass: organizationalPerson ⇒ objectClass: inetOrgPerson • L’objet person a comme attributs : commonName, surname, description, seeAlso, telephoneNumber, userPassword • L’objet fils organizationalPerson ajoute des attributs comme : organizationUnitName, title, postalAddress. . . • L’objet petit-fils inetOrgPerson lui rajoute des attributs comme : mail, labeledURI, uid (userID), photo. . .
  • 274.
    11/11/2023 274 Annuaire LDAP Lemodèle de nommage (1) • Le modèle de nommage définit comment sont organisées les entrées de l’annuaire et comment elles sont référencées. ⇒ Les entrées représentent des objets. ⇒ L’organisation de ces objets se fait suivant une structure logique hiérarchique : le Directory Information Tree (DIT). ⇒ Au sein de ce DIT, l’identification d’une entrée se fait à l’aide d’un nom, le Distinguish Name (DN).
  • 275.
    11/11/2023 275 Annuaire LDAP Lemodèle de nommage (2) Le Directory Information Tree (DIT) • Classification des entrées dans une arborescence hiérarchique (comparable au système de fichier Unix). • Chaque nœud de l’arbre correspond à une entrée de l’annuaire ou directory specific entry (DSE). • Au sommet de l’arbre se trouve l’entrée Suffix ou Root Entry ou BaseDN, qui caractérise une base LDAP.
  • 276.
    11/11/2023 276 Annuaire LDAP Lemodèle de nommage (3) Le Distinguished Name (DN) • Référence de manière unique une entrée du DIT (⇔chemin d’un fichier UNIX). • Formé de la suite des noms des entrées, en partant de l’entrée et en remontant vers le suffix, séparé par des ",". • Ex : le DN de l’entrée jsmith vaut : uid=jsmith, ou=people, o=WorldCompany • Chaque composant du DN est appelé Relative Distinguished Name (RDN). • Le RDN est constitué d’un des attributs de l’entrée (et de sa valeur). Le choix de cet attribut doit assurer que 2 entrées du DIT n’aient pas le même DN.
  • 277.
    11/11/2023 277 Annuaire LDAP Lemodèle d’information – modèle de nommage (définitions)
  • 278.
    11/11/2023 278 Annuaire LDAP Lemodèle d’information – modèle de nommage (définitions)
  • 279.
    11/11/2023 279 Annuaire LDAP Lemodèle fonctionnel (1) • Le modèle fonctionnel décrit le moyen d’accéder aux données et les opérations qu’on peut leur appliquer : ⇒ Les opérations d’interrogation ⇒ Les opérations de comparaison. ⇒ Les opérations de mise à jour. ⇒ Les opérations d’authentification et de contrôle.
  • 280.
    11/11/2023 280 Annuaire LDAP Lemodèle fonctionnel (2) Les opérations d’interrogation • LDAP ne fournit pas d’opération de lecture d’entrée. • Pour connaître le contenu d’une entrée, il faut écrire une requête qui pointe sur cette entrée. • Une requête est composée de 8 paramètres : • La base est le DN à partir duquel nous faire une recherche
  • 281.
    11/11/2023 281 Annuaire LDAP Lemodèle fonctionnel (3) Les opérations d’interrogation: Le scope • Le scope est le nombre de niveaux sur lesquels l'action va être effectuée. Il existe 3 niveaux différents : ⇒ sub: l'action est effectuée récursivement à partir de la base spécifiée sur la totalité de l'arborescence ⇒ One: l'action est effectuée sur les fils directs, c'est-à-dire un seul niveau inférieur par rapport à la base spécifiée. ⇒ Base: l'action est effectuée uniquement sur la base spécifiée. •
  • 282.
    11/11/2023 282 Annuaire LDAP Lemodèle fonctionnel (4) Les opérations d’interrogation: Le scope
  • 283.
    11/11/2023 283 Annuaire LDAP Lemodèle fonctionnel (5) Les opérations d’interrogation: Les filtres • Un filtre va permettre d'avoir des critères de la recherche. • Il est constitué d'un ensemble d'opérations, portant sur des attributs, combinées avec les opérateurs booléens classiques: ET, OU et NON. • Sa syntaxe est donc : attribut OPERATEUR valeur • La forme générale d'un filtre est une combinaison : (operator(search operation)(search operation)...)). Ex : (&(objectclass=inetOrgPerson)(!(mail=*))) Toutes les entrées de type utilisateur sans adresse mail
  • 284.
    11/11/2023 284 Annuaire LDAP Lemodèle fonctionnel (6) Les opérations de comparaison • Vérifier si l’attribut d’une entrée contient bien une valeur spécifiée. • Le serveur répond vrai ou faux. • Équivalent à une recherche, sauf que le serveur renvoie l’entrée si vrai et ne renvoie rien dans deux cas : ⇒ si l’attribut ne contient pas cette valeur, ⇒ si l’attribut n’existe pas • alors que la comparaison renvoie dans ce 2ème cas, un code d’erreur.
  • 285.
    11/11/2023 285 Annuaire LDAP Lemodèle fonctionnel (7) Les opérations de mise à jours • 4 opérations : add, delete, rename, modify • Ces quatre opérations nécessitent les droits de contrôle appropriés et des prérequis : ⇒ add, rename : entrée ne doit pas déjà exister, entrée doit avoir un parent existant. ⇒ add, modify : les attributs doivent être conformes au schéma. ⇒ delete : entrée ne doit pas avoir d’enfant
  • 286.
    11/11/2023 286 Annuaire LDAP Lemodèle fonctionnel (8) Les opérations d’authentification et de contrôle • 3 opérations : bind, unbind, abandon ⇒ bind = connexion. ⇒ unbind = déconnexion ⇒ abandon = le client indique au serveur qu’il laisse tomber la requête qu’il avait envoyé. Celui-ci abandonne alors le process.
  • 287.
    11/11/2023 287 Annuaire LDAP Lemodèle de sécurité (1) • Le modèle de sécurité décrit le moyen de protéger les données de l’annuaire des accès non autorisés. • La sécurité se fait à plusieurs niveaux : ⇒ par l’authentification pour se connecter au service. ⇒ par un modèle de de contrôle d’accès aux données. ⇒ par le chiffrement des transactions entre les clients et les serveurs ou entre les serveurs.
  • 288.
    11/11/2023 288 Annuaire LDAP Lemodèle de sécurité (2) • L’authentification LDAP est un protocole avec connexion : il faut s’authentifier pour ouvrir la connexion (bind) en fournissant une identité. • LDAPv3 propose plusieurs choix d’authentification : ⇒ Anonymous authentification - accès sans authentification permettant de consulter les données accessibles en lecture pour tous. ⇒ Root DN authentification - accès administrateur (tous les droits). ⇒ Mot de passe en clair - un DN plus un password qui transite en clair sur le réseau. ⇒ Mot de passe + SSL ou TLS - la session est chiffrée et le mot de passe ne transite plus en clair. ⇒ Certificats sur SSL - échange de certificats SSL (clef publiques /privées). L’authentification
  • 289.
    • Le serveurattribue à l’utilisateur identifié, des droits d’accès aux données (lecture, écriture, recherche et comparaison), qui lui ont été définis par l’administrateur sous la forme d’ACLs. • Pas encore normalisé par l’IETF donc non compatibles entre serveurs. ⇒ OpenLDAP : sous la forme de directives de contrôle d’accès dans slapd.conf • Les ACLs peuvent être placées au niveau des entrées, au sommet de l’arbre ou sur un sous-arbre. • Elles agissent sur les entrées ou certains de leurs attributs. 11/11/2023 289 Annuaire LDAP Le modèle de sécurité (3) Le contrôle d’accès
  • 290.
    • LDAPv3 supportele chiffrement des transactions (entre clients et serveurs ou entre serveurs) via l’utilisation de SSL (ldaps) ou de son successeur, TLS (startTLS extended operation). • SSL ou TLS servent également pour l’authentification par certificats : ⇒ permet au client de prouver son identité au serveur et, en retour, à celui-ci d’en faire de même vis à vis du client. 11/11/2023 290 Annuaire LDAP Le modèle de sécurité (4) Le chiffrement
  • 291.
    • Le modèlede duplication (replication service) définit comment dupliquer l’annuaire sur plusieurs serveurs. • Dupliquer l’annuaire peut pallier à : ⇒ une panne de l’un des serveurs, ⇒ une coupure du réseau, ⇒ surcharge du service. • et garantir la qualité de service : temps de réponse et sûreté de fonctionnement. • Permet également : ⇒ d’améliorer les performances en plaçant les serveurs près des clients ⇒ de répartir le travail entre plusieurs serveurs (load balancing) ⇒ de gérer les entrées localement et de les diffuser sur plusieurs sites. • Pas encore standard, mais est proposé par la plupart des serveurs. 11/11/2023 291 Annuaire LDAP Le modèle de duplication (1)
  • 292.
    • La duplicationmet en jeu plusieurs serveurs : ⇒ les supplier servers fournissent les données, ⇒ les consumer servers les reçoivent. • Les informations de configuration décrivant les suppliers, les consumers et quelles données ils échangent, forment le replication agreement. 11/11/2023 292 Annuaire LDAP Le modèle de duplication (2)
  • 293.
    • On peutdupliquer : ⇒ l’arbre entier ou seulement un sous-arbre, ⇒ une partie des entrées et de leurs attributs qu’on aura spécifiés via un filtre du genre : • "on ne duplique que les objets de type personne", • "on ne duplique que les attributs non confidentiels" • Plusieurs manières de synchroniser les serveurs : ⇒ mise à jour totale ou incrémentale... • Plusieurs stratégies de duplications : ⇒ single-master replication, multiple-master replication, cascading replication . 11/11/2023 293 Annuaire LDAP Le modèle de duplication (3)
  • 294.
    • La duplicationse fait en temps-réel ou à heure fixe (scheduling replication). • Deux précautions : ⇒ les serveurs doivent tous utiliser le même schéma de données, ⇒ les règles d’accès aux données dupliquées doivent être dupliquées. • La mise en œuvre du replication service nécessite de le prévoir au moment du design du DIT. 11/11/2023 294 Annuaire LDAP Le modèle de duplication (4)
  • 295.
    • LDAP DataInterchange Format (LDIF) est le standard de représentation des entrées sous forme de texte. • Il est utilisé pour afficher ou modifier les données de la base suivant deux modes : ⇒ faire des importations/exportations de la base, ⇒ faire des modifications sur des entrées. 11/11/2023 295 Annuaire LDAP LDIF
  • 296.
    dn: <distinguished name> objectClass:<object class> objectClass: <object class> [...] attribute type:<attribute value> attribute type:<attribute value> [...] 11/11/2023 296 Annuaire LDAP LDIF: mode import dn: cn=June Rossi, ou=accounting, o=Ace Industry, c=US objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: June Rossi sn: Rossi givenName: June mail: rossi@aceindustry.com userPassword: {sha}KDIE3AL9DK dn: cn=Walter Scott, ou=accounting, o=Ace Industry, c=US objectClass: top La forme générale est : Une entrée de type personne se présente de la manière suivante :
  • 297.
    • Il fautbien choisir les schémas ⇒ Quelles informations veut-on stocker dans l’annuaire? ⇒ Quelles sont les applications qui vont utiliser l’annuaire • Il faut réfléchir a l’organisation du DIT ⇒ impact sur la performance, les droits d’accès, . . . • Puis dans un deuxième temps ⇒ gestion centralisée sur un seul serveur? ⇒ nombre de serveurs redondants? Emplacement? 11/11/2023 297 Annuaire LDAP Mettre en place un annuaire LDAP
  • 298.
    • Quelques exemplesde logiciels : ⇒ OpenLDAP server, ⇒ Innosoft’s Distributed Directory Server, ⇒ Netscape Directory Server, ⇒ Sun Microsystems’s Directory Services, ⇒ IBM’s DSSeries LDAP Directory, ⇒ University of Michigan’s SLAPD • D’autres annuaires supportent les requêtes au format LDAP : ⇒ Novell’s NetWare Directory Services (NDS) 3.0, ⇒ Microsoft’s Active Directory (AD), ⇒ Lotus Domino. 11/11/2023 298 Annuaire LDAP Logiciels serveurs
  • 299.
    • OpenLDAP estopen source disponible sous la licence publique (OpenLDAP Public License) à l’adresse http ://www.openldap.org/. • OpenLDAP 2 est conforme à la norme LDAPv3. • OpenLDAP existe pour de nombreuses plate-formes dont Linux, Solaris, Mac OS 10.2, et de nombreuse versions de Windows. • Le projet OpenLDAP s’inscrit dans la continuité du serveur LDAP de l’université du Michigan. 11/11/2023 299 Annuaire LDAP Avantages d’OpenLDAP
  • 300.
    • Logiciel LDAPdu domaine public • le démon slapd: ⇒ traite les requêtes LDAP • le démon slurpd: ⇒ permet la réplication • des librairies LDAP: ⇒ par exemple pour authentifier les logins via LDAP : libpamldap, libnssldap • des utilitaires : ⇒ ldapadd, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch 11/11/2023 300 Annuaire LDAP OpenLDAP
  • 301.
    Le fichier /etc/ldap/slapd.confpermet de configurer le démon sladp • définition des schémas utilisés: include inetorgperson.schema • définition du backend (type de la base de données utilisée) backend bdb • définition de la base, de l’annuaire et de l’administrateur ⇒ le suffixe (racine de l’arbre) suffix "dc=labri,dc=fr’’ ⇒ l’administrateur et son mot de passe rootdn “cn=Manager,dc=labri,dc=fr” rootpw MD5x0dg9sP0uUf+NRm0MIPz7Q== ⇒ le répertoire où la base est stockée directory "/var/lib/ldap" 11/11/2023 301 Annuaire LDAP Configuration du serveur LDAP
  • 302.
  • 303.
  • 304.
    11/11/2023 304 Système pare-feu Qu’estce qu’un Firewall? • Système physique ou logique servant d’interface entre un ou plusieurs réseaux • Analyse les informations des couches 3, 4 et 7
  • 305.
    11/11/2023 305 Système pare-feu Pourquoiun Firewall? • Contrôle: Gérer les connexions sortantes à partir du réseau local. • Sécurité: Protéger le réseau interne des intrusions venant de l’extérieur. • Vigilance: Surveiller/tracer le trafic entre le réseau local et internet.
  • 306.
    11/11/2023 306 Système pare-feu Typesde Firewalls • Plusieurs types de firewalls : ⇒ Pare-feu au niveau réseau ⇒ Pare-feu au niveau applicatif ⇒ Pare-feu des applications
  • 307.
    11/11/2023 307 Système pare-feu Typesde Firewalls? • Pare-feu niveau réseau (Iptables, paquet filter,…) ⇒ Firewall fonctionnant à un niveau bas de la pile TCP/IP ⇒ Basé sur le filtrage des paquets ⇒ Possibilité (si mécanisme disponible) de filtrer les paquets suivant l’état de la connexion ⇒ Intérêt: Transparence pour les utilisateurs de réseau • Pare-feu au niveau applicatif (inetd, …) ⇒ Firewall fonctionnant au niveau le plus haut de la pile TCP/IP ⇒ permet de filtrer les communications application par application ⇒ Intérêt: Possibilité d’interpréter le contenu du trafic • Pare-feu des applications (/etc/ftpaccess pour ftp,…) ⇒ Restrictions au niveau des différentes applications
  • 308.
    11/11/2023 308 Système pare-feu Filtragede paquets • Filtrage du trafic entrant et du trafic sortant: ⇒ Le firewall laisse passer certains paquets et rejette d’autres paquets selon sa politique de sécurité.
  • 309.
    11/11/2023 309 Système pare-feu Filtragede paquets • Le filtrage se fait en analysant les entêtes des protocoles, en priorité IP, UDP et TCP. • En général, on définit une règle de filtrage en considérant: ⇒ Adresse IP source ⇒ Adresse IP destination ⇒ Port source ⇒ Port destination ⇒ Protocole encapsulé (ICMP, TCP, UDP,…) ⇒ Flag ACK (de TCP) ⇒ Type du message ICMP • A chaque règle de filtrage est associé une action: ⇒ Laisser passer le paquet ou ⇒ Détruire/Rejeter le paquet
  • 310.
    11/11/2023 310 Système pare-feu Exemplede règles de filtrage • Politique: Autoriser l’extérieure à accéder au service web sur le réseau périphérique.
  • 311.
    11/11/2023 311 Système pare-feu Netfilter •Netfilter est un framework implémentant le pare-feu au sein du noyau Linux. • Il se configure au moyen de l’outil iptables. • Le filtrage réseau consiste à examiner les paquets réseaux et à prendre des décisions sur le traitement à leur appliquer. • Le système de filtrage permet notamment d’interdire des connexions sur certains ports d’un ordinateur, de limiter le nombre de connexions, de limiter les bandes passantes, etc. • Netfilter a de très nombreuses fonctionnalités.
  • 312.
    11/11/2023 312 Système pare-feu Netfilter:principe de fonctionnement • Lorsque la carte réseau reçoit un paquet, il est transmis à la partie Netfilter du noyau ; • Netfilter étudie ce paquet (en-têtes et contenu) en se basant sur des règles définies par l’administrateur du système ; • Netfilter choisit de laisser passer le paquet intact, de modifier ce paquet, de le transmettre à une autre machine ou encore d’interdire le passage.
  • 313.
    11/11/2023 313 Système pare-feu Netfilter:principe de fonctionnement • Netfilter fonctionne en utilisant 3 tables : ⇒ la table filter correspond aux notions de filtrage réseau (accepter ou refuser un paquet) ; ⇒ la table nat correspond aux fonctions de routage par translation d’adresse (partage d’accès internet par exemple) elle est consultée quand un paquet créant une nouvelle connexion arrive; ⇒ la table mangle qui est utilisée pour marquer le paquet, le modifier (notamment les bits de QOS) pour permettre de faire par exemple de la qualité de service
  • 314.
    11/11/2023 314 Système pare-feu Netfilter:Table filter • Netfilter se base sur 3 listes de règles pour définir son comportement vis-à-vis d’un paquet (au niveau de la table filter). Le schéma suivant récapitule le trajet d’un paquet au travers ces 3 chaînes : Table filter
  • 315.
    11/11/2023 315 Système pare-feu Netfilter:Table filter • Les trois chaînes ont les rôles suivants : ⇒ quand un paquet est reçu et est destiné à la machine locale, ce paquet passe dans la chaîne INPUT. S’il est accepté par cette chaîne, les processus qui attendent le paquet le recevront
  • 316.
    11/11/2023 316 Système pare-feu Netfilter:Table filter • Les trois chaînes ont les rôles suivants : ⇒ quand un paquet est reçu et est destiné à une autre machine (la machine locale doit le router vers une autre machine), ce paquet passe dans la chaîne FORWARD. S’il est accepté, il est retransmis vers sa destination ;
  • 317.
    11/11/2023 317 Système pare-feu Netfilter:Table filter • Les trois chaînes ont les rôles suivants : ⇒ quand un paquet est émis par la machine locale, ce paquet passe dans la chaîne OUTPUT. S’il est accepté, il sera envoyé vers sa destination
  • 318.
    11/11/2023 318 Système pare-feu Netfilter:Table filter • Pour chaque paquet qui passe dans ces chaînes, l’action peut être : ⇒ ACCEPT, dans le cas ou le paquet est accepté ; ⇒ DROP, dans le cas ou le paquet est refusé silencieusement (l’expéditeur ne reçoit d’erreur) ; ⇒ REJECT, dans le cas ou le paquet est refusé et l’expéditeur reçoit une erreur ⇒ Chaque chaîne possède enfin une règle par défaut (policy) qui définit l’action par défaut, initialement ACCEPT.
  • 319.
    11/11/2023 319 Système pare-feu IPtables •Netfilter est lié à l’utilitaire iptables qui, travaillant dans l’espace utilisateur, sert d’interface de configuration. • iptables est un logiciel libre de l’espace utilisateur Linux grâce auquel l’administrateur système peut configurer les chaînes et règles dans le pare-feu en espace noyau (et qui est composé par des modules Netfilter).
  • 320.
    11/11/2023 320 Système pare-feu IPtables Àl’arrivée d’un paquet (après décision de routage) : 1: Si le paquet est destiné à l’hôte local Alors 2: il traverse la chaîne INPUT. 3: Si il n’est pas rejeté Alors 4: il est transmis au processus impliqué. 5: Sinon 6: Si le paquet est destiné à un hôte d’un autre réseau Alors 7: il traverse la chaîne FORWARD 8: Si il n’est pas rejeté Alors 9: il poursuit alors sa route Tous les paquets émis par des processus locaux au routeur traversent la chaîne OUTPUT.
  • 321.
    11/11/2023 321 Système pare-feu Gestiondu pare-feu • Il suffit d’installer le paquet iptables, mais normalement celui-ci est déjà installé • Pour vérifier si le paquet est installé Installation # Sudo apt-get install iptables # dpkg --list iptables
  • 322.
    11/11/2023 322 Système pare-feu Gestiondu pare-feu • Par défaut, iptables est réglé sur une politique permissive (open config) où on laisse tout passer (policy ACCEPT). • Cette commande permet de lister les règles qui sont actives Configuration par défaut # iptables -L • Pour le moment, aucune règle supplémentaire n’est définie ; • cette commande vous permettra de lister l’ensemble des règles actives dans la table filter. • Ici, Netfilter accepte donc tous les paquets.
  • 323.
    11/11/2023 323 Système pare-feu Gestiondu pare-feu • Pour bloquer une adresse qui aurait un comportement abusif : • pour la débloquer : • L’option -D ou --delete supprime la règle dans la chaîne spécifiée. Bloquer des adresses IP spécifiques # iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP # iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
  • 324.
    11/11/2023 324 Système pare-feu Gestiondu pare-feu • Pour bloquer un port spécifique en sortie : • pour le débloquer : • L’option -D ou --delete supprime la règle dans la chaîne spécifiée. Bloquer/accepter des ports spécifiques # iptables -A OUTPUT -p tcp --dport xxx -j DROP # iptables -D INPUT -p tcp –dport xxx -j DROP
  • 325.
    11/11/2023 325 Système pare-feu Gestiondu pare-feu • d’abord vérifier si vous pouvez effectuer une requête ICMP • Pour bloquer le port 443 en sortie : • pour le débloquer : • Plusieurs ports peuvent être spécifiés en même temps # iptables -A OUTPUT -p tcp –-dport 443 -j DROP # iptables -D INPUT -p tcp –-dport 443 -j DROP # iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT Interdire tout paquet sortant vers le web
  • 326.
    11/11/2023 326 Système pare-feu Gestiondu pare-feu • d’abord vérifier le ping • Pour bloquer le protocole ICMP en entrée : • Vérifier que le ping ne marche pas, maintenant. # iptables -A INPUT -p icmp -i enp0s3 -j DROP Bloquer le protocole ICMP (ping)
  • 327.
    11/11/2023 327 Système pare-feu Gestiondu pare-feu • Un réseau complet peut être spécifié, par exemple pour autoriser un accès SSH : # iptables -A OUTPUT -p tcp -d 10.10.10.0/24 --dport 22 -j ACCEPT Autoriser un réseau
  • 328.
    11/11/2023 328 Système pare-feu Gestiondu pare-feu • L’accès à l’interface de loopback doit toujours être possible. Les lignes suivantes doivent impérativement être présentes : # iptables -A INPUT -i lo -j ACCEPT # iptables -A OUTPUT -o lo -j ACCEPT Accès à la loopback
  • 329.
    11/11/2023 329 Système pare-feu Gestiondu pare-feu • Tester premièrement, que vous pouvez se connecter à votre machine à travers Telnet • Fermez le port telnet • Vérifier maintenant que vous ne pouvez pas se connecter par telnet # iptables -A INPUT -p tcp --dport 23 -m state –- state NEW,ESTABLISHED -j DROP Fermer le port Telnet # telnet localhost
  • 330.
    11/11/2023 330 Système pare-feu Gestiondu pare-feu • Pour limiter le nombre de paquets par adresse (protection contre le flooding) : • Pour limiter le nombre de connexions actives (ici 3 sur le port ssh) : Limiter le nombre de connexion à une adresse # iptables -A INPUT -p tcp --dport 80 -m limit -- limit 50/minute --limit-burst 100 –j ACCEPT #iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
  • 331.
    11/11/2023 331 Système pare-feu Gestiondu pare-feu • Pou effacer toutes les entrées des iptables • Pour remettre la politique par défaut (ACCEPT): Réinitialiser les iptables # iptables -F # iptables -P INPUT ACCEPT # iptables -P FORWARD ACCEPT # iptables -P OUTPUT ACCEPT
  • 332.
    11/11/2023 332 Système pare-feu Gestiondu pare-feu Exemple de paramètres à utiliser
  • 333.
    11/11/2023 333 Serveur demessagerie électronique Postfix
  • 334.
    • Vous nevoulez plus confier vos mails à Gmail, Yahoo ou Hotmail ? • Vous voulez héberger vos mails chez vous ? 11/11/2023 334 Messagerie électronique Problématique
  • 335.
    • L'ensemble deséléments contribuant à transmettre un courriel de l'émetteur au récepteur • courrier électronique: message transmis via un réseau informatique 11/11/2023 335 Messagerie électronique Système de messagerie électronique
  • 336.
    • 3 composantsprincipaux : ⇒ Agent de transfert de mail: Mail Transfert Agent (MTA) ⇒ Agent de livraison: Mail Delivery Agent (MDA) ⇒ Agent utilisateur: Mail User Agent (MUA) 11/11/2023 336 Messagerie électronique Courier électronique: composants
  • 337.
    • le bureaude poste • reçoit les messages depuis les autres MTA ou les clients mail, • transmet les messages aux autres MTA, • Gère une liste de messages sortants • utilise le protocole Simple Mail Transfer Protocol (SMTP) ⇒ modèle C/S : Client (émetteur) - Serveur (MTA récepteur) ⇒ le client se connecte sur le port 25/TCP du serveur pour transférer son message • Exemple: sendmail, exim, postfix, exchange, Lotus Domino 11/11/2023 337 Messagerie électronique Mail Transfer Agent: MTA
  • 338.
    • le facteur •reçoit les messages depuis le MTA Final, • stocke les messages dans les boites aux lettres utilisateurs, • autres tâches : • tris ; • filtre (antispam,. . .) ; • antivirus ; • . . . • généralement ce rôle est assuré par le MTA • Exemple: procmail, maildrop, . . . 11/11/2023 338 Messagerie électronique Mail Delivery Agent: MDA
  • 339.
    • Le styloet le papier • composition, édition, lecture du courrier électronique • dialogue un serveur pour émettre/recevoir des messages • Plusieurs protocoles : • SMTP pour envoyer les messages au serveur • POP, IMAP, HTTP, . . .pour lire les messages • exemple : Kmail, Thunderbird, Outlook, elm, pine, . . . 11/11/2023 339 Messagerie électronique Mail User Agent: MUA
  • 340.
  • 341.
  • 342.
  • 343.
  • 344.
  • 345.
  • 346.
    • SMTP signifieSimple Message Transfert Protocole, ce protocole est utilisé pour transférer les messages électroniques sur les réseaux. • Le client utilise SMTP pour émettre les messages au serveur de courrier électronique. • Quant à la réception de messages électronique, le client utilise les autres protocoles tels que POP (Post Office Protocol), IMAP (Internet Message Access Protocol) et les systèmes propriétaires (Microsoft Exchange et Lotus Note) • Un serveur SMTP est un service qui écoute sur le port 25, son principal objectif donc est de router les mails à partir de l'adresse du destinataire. 11/11/2023 346 Messagerie électronique SMTP : Introduction
  • 347.
    • Le schémasuivant présente la succession de ces différentes phases : 11/11/2023 347 Messagerie électronique SMTP : Exemple général
  • 348.
    • Le serviceSMTP est divisé en plusieurs parties, chacune assurant une fonction spécifique : • MUA : Mail User Agent, c’est le client de messagerie (Exemples : Outlook, ThunderBird), • MTA : Mail Transfert Agent, c'est l'élément principal d'un serveur SMTP car c'est lui qui s'occupe d'envoyer les mails entre les serveurs. En effet, avant d'arriver dans la boite mail du destinataire, le mail va transiter de MTA en MTA. Il est possible de connaitre l'ensemble des MTA par lesquels le mail est passé, pour cela il suffit d'afficher la source du message, • MDA : Mail Delivery Agent, c'est le service de remise des mails dans les boîtes aux lettres (les espaces mémoires réservés) des destinataires, il intervient donc en fin de la chaine d'envoie d'un mail. 11/11/2023 348 Messagerie électronique SMTP : Détail du fonctionnement
  • 349.
    • Un utilisateursouhaite émettre un courrier. • Le client SMTP se charge de trouver le destinataire en échangeant les commandes/réponses avec le serveur SMTP. • Le serveur SMTP local se charge de transférer le courrier 11/11/2023 349 Messagerie électronique SMTP : Structure client- serveur
  • 350.
    • Les adressesglobales de courrier sont définies par les standards RFC 5321 et 5322. • une adresse se compose en deux parties : le nom de boîte à lettre et le nom de domaine DNS Exemple: berraho.sanae@gmail.com • La taille du nom de boîte à lettre ne doit pas dépasser 64 octets ; le point« . » est autorisé • En théorie, le nom de boîte à lettre n’attache pas au login. En pratique, on utilise le login (berraho.sanae, par exemple) comme le nom de boîte à lettre. • Le système de nom de domaines (DNS) permet de déterminer le serveur de courrier. 11/11/2023 350 Messagerie électronique SMTP : Adresses de courrier
  • 351.
    • Les protocolesPOP (Post Office Protocol ) et IMAP (Internet Message Access Protocol) sont les protocoles dérivés du protocole SMTP. • Ils sont utilisé pour relever du courrier dans une boite aux lettres • Fonctions de transfert de courrier d’un serveur de messagerie vers un client de messagerie • Fonctions de gestion des archives de courrier (liste de messages en attente, destruction de message…) 11/11/2023 351 Messagerie électronique POP, IMAP
  • 352.
    • Le protocolePOP3 (Post Office Protocol version 3), le standard RFC 1939, est largement implémenté. C’est un protocole le plus simple. • Le principe : le client se connecte au serveur pour relever définitivement les messages en attente via TCP (port 110) ; les messages sont transmis vers la boîte aux lettres du client. • Afin d’éviter tous problèmes de sécurité, le client doit s’authentifier. Les mesures de TLS (Transport Layer Security) et SSL (Secure Socket Layer) pourront être utilisées. 11/11/2023 352 Messagerie électronique POP: Principe
  • 353.
    • Le protocoleIMAP4 (Internet Message Access Protocol), le standard RFC 3501 qui remplace le RFC 2060, est largement implémenté par client. C’est un protocole le plus complet. • deux modes (connected and disconnected modes) permettent à un client de se connecter (ou se déconnecter, les courriers récupérés durant une connexion sont dans un cache) au serveur pour relever les messages en attente via TCP (port 143) • les messages sont souvent stockés dans la boîte aux lettres du serveur de messagerie; ce mode permet à un utilisateur de consulter ses courriers via plusieurs machines différentes • La boîte aux lettres du serveur peut être consultée par plusieurs clients 11/11/2023 353 Messagerie électronique IMAP: Principe
  • 354.
    11/11/2023 354 Messagerie électronique POPvs IMAP Récupérer le courriel sur un serveur de messagerie La gestion de plusieurs accès simultanés La gestion de plusieurs boîtes aux lettres La synchronisation des courriels entre le serveur et le client POP3 IMAP Le tri du courrier selon des critères
  • 355.
    • Sendmail: créepar Eric Allman en 1980 est un logiciel Open Source. La technique « séparation de tâches » est implémenté afin d’éviter le problème de sécurité. (voir le fichier sendmail.cf) • Postfix: crée principalement par Vietse Venema à IBM en 2001. (voir main.cf et master.cf) • Qmail: crée par Daniel. J. Bernstein en 1997. La sécurité de messages a été un des objectifs. Qmail utilise maildir permettant de stocker les messages client par client • Exim, crée principalement par Philippe Hazel en 1997 11/11/2023 355 Messagerie électronique Implémentations: Serveurs de messagerie libre (MTA)
  • 356.
    • Les messageriesd’entreprise sont souvent intégrés dans des suites bureautiques ou serveurs WEB • Microsoft Exchange / Internet Information Service • Lotus Notes/Domino (IBM) • IMAIL 11/11/2023 356 Messagerie électronique Implémentations: Serveurs de messagerie propriétaire (MTA)
  • 357.
    • Gestion deboîte aux lettres • Stockage: plusieurs utilisateurs utilisent le même fichier dans lequel plusieurs messages sont stockés ou chaque utilisateur possède un propre répertoire • Filtrage des messages (SPAM, par exemple) et l’envoi de message de réponse automatique • Logiciels différents: procmail, maildrop, deliver et mailfilter. Des MDA sont aussi intégrés aux grands logiciels de messagerie intégrés (Exim, Exchange, par exemple) • Standards de boîte aux lettres: maildir • Les MDA incorporent les outils de protection contre les virus et le SPAM (très grande variété de produits) 11/11/2023 357 Messagerie électronique Implémentations: Serveurs de délivrance de messages (MDA)
  • 358.
    • Maildir estune structure de répertoires particulière, qui est utilisée pour sauvegarder des courriers électroniques. 11/11/2023 358 Messagerie électronique Implémentations: Serveurs de délivrance de messages (MDA)
  • 359.
    • Clients lourds: Nécessite l’installation d’une application particulière sur le poste client. • Quelques logiciels: Outlook Express, Mozilla Thenderbird, Eudora, foxmail … • Clients légers (clients WEB WEBMAIL, hotmail, Gmail et Yahoo par exemple) : Pour consulter du courrier avec une application client serveur WEB. • Quelques logiciels : sqWebMail, IMP, SquirrelMail, ... 11/11/2023 359 Messagerie électronique Implémentations: Client de messagerie (MUA)