100% ont trouvé ce document utile (2 votes)
718 vues359 pages

Admin Réseaux Linux Cours

Transféré par

Zak Mtcm
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (2 votes)
718 vues359 pages

Admin Réseaux Linux Cours

Transféré par

Zak Mtcm
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Administration des réseaux sous linux

BERRAHO SANAE
Objectifs du cours

• 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

Manipulation des notions/outils nécessaire à un administrateur


réseaux sous linux

26/09/2023 2
Introduction et généralités

Rôles d’un administrateur réseau

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.

L’administrateur réseau est responsable de ce qui peut se


passer à partir du réseau administré.
26/09/2023 3
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

26/09/2023 4
Introduction et généralités

Objectifs de l’administration des réseaux pour un administrateur

• 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.

26/09/2023 5
Introduction et généralités

Présentation de Linux

• 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

26/09/2023 6
Introduction et généralités

Quelques distributions Linux

• Mandriva: [Link]

• RedHat: [Link]

• Fedora: [Link]

• SuSE/Novell: [Link]

• Debian: [Link]

• Gentoo: [Link]

• Ubuntu: [Link]

26/09/2023 7
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

26/09/2023 8
Introduction et généralités

Installation d’Ubuntu

• 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

26/09/2023 9
Introduction et généralités

Le compte root

• 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.

26/09/2023 10
Introduction et généralités

Le système de fichiers Linux

• Tout est fichier.


• Tous les fichiers sont dans une unique arborescence.

SupMTI

26/09/2023 11
Introduction et généralités

Organisation des fichiers Linux

Nom du Commentaires
dossier
/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)

26/09/2023 12
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

26/09/2023 13
Première partie
Configuration d’un réseau local (LAN)

26/09/2023 14
Généralités

• 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.

26/09/2023 15
Configuration réseau

Principes

• 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.

26/09/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.

26/09/2023 17
Configuration réseau

Eléments de configuration

• 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

26/09/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;

26/09/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 ;

26/09/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.

26/09/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.

26/09/2023 22
Configuration réseau

Modes de configuration

Configuration statique
• 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.
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)
26/09/2023 23
Configuration d’une station

Afficher les paramètres des interfaces

• 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.
# ifconfig
eth0 Link encap:Ethernet HWaddr [Link]
inet addr:[Link] Bcast:[Link]
Mask:[Link]
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

26/09/2023 24
Configuration d’une station

Afficher les paramètres des interfaces

Lo Link encap:Local Loopback


inet addr:[Link] Mask:[Link]
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/09/2023 25
Configuration d’une station

Configuration statique: l’adresse IP


• Pour appliquer une configuration à une interface, on utilise
ifconfig, avec des arguments correspondants:
# ifconfig eth0 [Link]

• Pour supprimer une configuration IPv4, on utilise la commande:

# ifconfig eth0 down

• Pour activer l’interface, on utilise la commande:

# ifconfig eth0 up

Ifconfig est remplacée par la commande ip dans les dernières versions


d’Unix
26/09/2023 26
Configuration d’une station

Configuration statique: la passerelle par défaut

• 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 [Link], et peut


être jointe par votre interface eth0

# route add default gw [Link] dev eth0

26/09/2023 27
Configuration statique d’une station

Configuration statique: le serveur DNS

• 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/[Link]

• Exemple: Si le serveur DNS de votre fournisseur d'accès, a pour


adresse IPv4 [Link], il faut éditer le fichier pour qu’il contienne :

# nameserver [Link]

26/09/2023 28
Configuration d’une station

Configuration dynamique

• Dans un réseau IPv4, on peut demander une configuration par DHCP


en utilisant le programme dhclient

# dhclient eth0

26/09/2023 29
Configuration d’une station

Configuration permanente

• 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 :

# /etc/init.d/networking restart

• Pour les versions récentes d’Ubuntu, il faut faire


$ sudo ip addr flush interface-name
$ sudo systemctl restart networking
26/09/2023 30
Configuration d’une station

Configuration permanente: Ethernet statique

• Le fichier /etc/network/interfaces sert à paramétrer l’accès de


• Configuration permanente
votre ordinateur à un réseau. Il contient la configuration des
interfaces réseau :
• eth0, eth1, .. - liaison par câble
• lo - interface loopback ([Link]) 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

26/09/2023 31
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 [Link]
netmask [Link]
gateway [Link]
dns-nameservers [Link]

26/09/2023 32
Configuration d’une station

Configuration permanente: Ethernet statique

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

26/09/2023 33
Configuration d’une station

Configuration permanente: Ethernet DHCP

• 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:
auto lo
iface lo inet loopback

# configuration de l'interface eth0


auto eth0
iface eth0 inet dhcp

26/09/2023 34
Configuration d’une station

Tester le réseau
• Pour tester si la carte réseau fonctionne, on peut essayer de
communiquer avec une autre machine avec la commande:
# ping <adresse ip>

• 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.

26/09/2023 35
Outils de l’administrateur réseau

Outils de l’administrateur réseau sous linux

Fichiers de
Commandes
configuration

26/09/2023 36
Outils de l’administrateur réseau

Fichiers de configuration

Fichier /etc/hosts
• Le fichier /etc/hosts contient une liste de résolutions de noms
(adresses IP et noms de machine). Par exemple:

[Link] localhost
[Link] berraho-pc
[Link] sup

• 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 [Link],
qui sera accessible par cet alias.

26/09/2023 37
Outils de l’administrateur réseau

Fichiers de configuration
Fichier /etc/networks
• 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.
localnet [Link]
foo-net [Link]

• Cette option permet par exemple d'adresser un réseau sur son nom,
plutôt que sur son adresse.

# route add foo-net Au lieu de # route add -net [Link]

26/09/2023 38
Outils de l’administrateur réseau

Fichiers de configuration
Fichier /etc/[Link]

• Le fichier /etc/[Link] permet de définir le comportement du système


lors de la résolution d'un nom.

order hosts,bind
multi on

• 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.

26/09/2023 39
Outils de l’administrateur réseau

Fichiers de configuration

Fichier /etc/[Link]

• Le fichier /etc/[Link] 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.

Nameserver [Link]
Nameserver [Link]
Nameserver [Link]

26/09/2023 40
Outils de l’administrateur réseau

Commandes

Commande ifconfig

• 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.

26/09/2023 41
Outils de l’administrateur réseau

Commandes
Commande arp
• 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.
? ([Link]) at [Link] [ether] on
eth0
>Entries: 1 Skipped: 0 Found: 1
• L’option -d nom_machine/@ip supprime l’entrée de la table,

# arp –d [Link]

• -s nom_machine adresses_mac ajoute une nouvelle entrée dans la table.


# arp –s [Link] [Link]
26/09/2023 42
Outils de l’administrateur réseau

Rappel sur le protocole ARP: Address Resolution Protocol

• 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

26/09/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

26/09/2023 44
Outils de l’administrateur réseau

Commandes
Commande route
• 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:

# route add default gw [Link] dev eth0

• Pour détruire cette route


# route del default
26/09/2023 45
Outils de l’administrateur réseau

Commandes
Commande route
• Pour afficher la table de routage:

# route -n

26/09/2023 46
Outils de l’administrateur réseau

Commandes
Commande netstat (network statistics)
• permet de tester la configuration du réseau, visualiser l’état des
connexions, établir des statistiques, notamment pour surveiller les
serveurs
# netstat

26/09/2023 47
Outils de l’administrateur réseau

Commandes
Commande netstat (network statistics)
• 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

26/09/2023 48
Outils de l’administrateur réseau

Commandes
Commande netstat (network statistics)

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é

26/09/2023 49
Outils de l’administrateur réseau

Commandes
Commande traceroute
• 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.

# traceroute [Link]

26/09/2023 50
Outils de l’administrateur réseau

Commandes
Commande dig
• Permet d’interroger le serveur DNS et de diagnostiquer les
dysfonctionnements dans la résolution de nom.
# dig [Link]

26/09/2023 51
Outils de l’administrateur réseau

Commandes
Commande host

• 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).

26/09/2023 52
Serveur DHCP
Dynamic Host Configuration Protocol

26/09/2023 53
Dynamic Host Configuration Protocol

Service DHCP

• 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.

26/09/2023 54
Dynamic Host Configuration Protocol

Problèmes de gestion avec IP

• 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

26/09/2023 55
Dynamic Host Configuration Protocol

Protocole DHCP

• 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

26/09/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».

⇒ Un réseau peut avoir plusieurs serveurs DHCP.


⇒ Le client ne désigne pas un serveur

26/09/2023 57
Dynamic Host Configuration Protocol

Serveur DHCP: schéma classique

26/09/2023 58
Dynamic Host Configuration Protocol

Serveur DHCP: Fonctionnement

• 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é

26/09/2023 59
Dynamic Host Configuration Protocol

DHCP: Demande d’@ IP

• 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.

26/09/2023 60
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 [Link]
⇒ destination [Link]
⇒ 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.
26/09/2023 61
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)

26/09/2023 62
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

26/09/2023 63
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.)

26/09/2023 64
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
26/09/2023 65
Dynamic Host Configuration Protocol

DHCP: Identification de l’application

26/09/2023 66
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)

26/09/2023 67
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

26/09/2023 68
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)

26/09/2023 69
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

26/09/2023 70
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

26/09/2023 71
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

26/09/2023 72
Dynamic Host Configuration Protocol

DHCP: messages

• 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)

26/09/2023 73
Dynamic Host Configuration Protocol

Agent de relais DHCP

•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.
[Link] faut donc mettre un serveur DHCP sur chaque segment,
[Link] 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.
26/09/2023 74
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).

26/09/2023 75
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.

26/09/2023 76
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

26/09/2023 77
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.

26/09/2023 78
Serveur DNS
Domain Name System

26/09/2023 79
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.

26/09/2023 80
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: [Link]) et son
adresse IP.

26/09/2023 81
DNS: Domain Name System

Service de résolution des noms

26/09/2023 82
DNS: Domain Name System

Protocole DNS

• 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)

26/09/2023 83
DNS: Domain Name System

Système de noms de domaines

• 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.

26/09/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.

26/09/2023 85
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
26/09/2023 86
DNS: Domain Name System

L’espace de noms de domaine

• Base de donnée hiérarchique et distribuée

• Client veut l'IP pour [Link]:


⇒ Client demande au serveur racine de trouver le serveur DNS com
⇒ Client demande au serveur DNS com de lui fournir le serveur DNS
[Link]
⇒ Client demande au serveur DNS [Link] de lui fournir
l'adresse IP de [Link]
26/09/2023 87
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 : [Link]
nom local de la machine : www
nom de la machine dans le DNS : [Link]

nom local de la machine : ftp


nom de la machine dans le DNS : [Link]

26/09/2023 88
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
. (root)

fr

ac-grenoble

berges
[Link]

• Deux nœuds fils ne peuvent avoir le même nom ==> unicité d’un
nom de domaine au niveau mondial
26/09/2023 89
DNS: Domain Name System

Domaine

• Un domaine est un sous-arbre de l’espace nom de domaine.


Domaine complet

fr
Domaine fr

Domaine ac-grenoble
ac-grenoble
inria

berges nœud [Link]

Des nœuds peuvent avoir les


mêmes noms dans des
domaines différents :
[Link] et [Link]
26/09/2023 90
DNS: Domain Name System

Domaine

• 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 « [Link] ».
• Deux types de TLD :
⇒ generic TLD: .com, .org, .gov, .net,. . .
⇒ countries TLD: .fr, .de, .uk,. . .

26/09/2023 91
DNS: Domain Name System

Domaine

26/09/2023 92
DNS: Domain Name System

Délégation

• 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 :
⇒ [Link] est délégué à l’organisation «Académie de
Grenoble»
⇒ L’Académie de Grenoble gère donc les données propres à ce
domaine.
26/09/2023 93
DNS: Domain Name System

Domaine vs zone

• 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 :
⇒ 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.
26/09/2023 94
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.

26/09/2023 95
DNS: Domain Name System

Délégation de zone

La zone .g délègue
l’administration des
zones .g1 et .g2

La délégation permet de déléguer (décentraliser) l’administration


d’une partie de l’espace de nommage de domaine.

26/09/2023 96
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.
ca fr

bc ab on qb domaine

zone

26/09/2023 97
DNS: Domain Name System

Les serveurs de noms: Serveur primaire et serveur secondaire

• 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.

26/09/2023 98
DNS: Domain Name System

Serveur autoritaire

26/09/2023 99
DNS: Domain Name System

Les resolvers

• 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.

26/09/2023 100
DNS: Domain Name System

Les serveurs racine


• 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
26/09/2023 101
DNS: Domain Name System

Résolution de noms

26/09/2023 102
DNS: Domain Name System

Résolution inverse

• 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-
[Link]
⇒ Chaque octet de l'adresse IP correspond à un niveau ; pour
chaque adresse, on crée un nom de domaine, sous-domaine de
[Link], qu'on obtient en écrivant l'adresse IP ‘’à l‘inverse"
(en commençant par le dernier octet). Ainsi, pour l'adresse IP
[Link], on obtient le nom de domaine [Link].in-
[Link].
⇒ Puis la procédure est le même que celle de la résolution
classique.

26/09/2023 103
DNS: Domain Name System

Résolution inverse

26/09/2023 104
DNS: Domain Name System

Résolution d’une requête

• 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).

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.

26/09/2023 105
DNS: Domain Name System

Résolution d’une requête

• 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”.

26/09/2023 106
DNS: Domain Name System

Serveur cache

• 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

26/09/2023 107
DNS: Domain Name System

BIND en tant que serveur de noms

• 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/[Link] — 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.

26/09/2023 108
DNS: Domain Name System

Fichier /etc/[Link]

• Le fichier principal de configuration de BIND est /etc/bind/[Link]


• Le fichier [Link] est une suite de déclarations utilisant des
options imbriquées qui sont placées entre accolades, { }.
• Lorsqu'ils modifient le fichier [Link], 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

26/09/2023 109
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

26/09/2023 110
DNS: Domain Name System

Types courants de déclarations


Déclaration include
Permet à des fichiers d'être inclus dans un fichier [Link]. 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 .

26/09/2023 111
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

26/09/2023 112
DNS: Domain Name System

Types courants de déclarations

Ici, la zone est identifiée en tant que [Link], le type est défini comme master et
le service named a comme instruction de lire le fichier /var/named/[Link].
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 [Link] pour y trouver les informations concernant
la zone appelée [Link]. Les informations que le serveur esclave reçoit du
serveur maître sont enregistrées dans le fichier /var/named/[Link].
26/09/2023 113
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.

26/09/2023 114
DNS: Domain Name System

Fichiers de zone

• 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.

26/09/2023 115
DNS: Domain Name System

Directives des 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

26/09/2023 116
DNS: Domain Name System

L’enregistrement de ressource

• 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 :

26/09/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 ;

26/09/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.

26/09/2023 119
DNS: Domain Name System

Fichiers de résolution de noms inverse

• 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é.

26/09/2023 120
Routage dans TCP/TP

26/09/2023 121
Routage

Introduction

• 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.

26/09/2023 122
Routage

Définition

• 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.

26/09/2023 123
Routage

Problématique

• 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?

A B

Nécessité d’identifier toute les machines intermédiaires

26/09/2023 124
Routage

Problématique

26/09/2023 125
Routage

Problématique

26/09/2023 126
Routage

Problématique

26/09/2023 127
Routage

Problématique

26/09/2023 128
Routage

Problématique

26/09/2023 129
Routage

Problématique

26/09/2023 130
Routage

Problématique

26/09/2023 131
Routage

Principe de base

• 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.

26/09/2023 132
Routage

Passerelle par défaut

26/09/2023 133
Routage

Routeur

• Routeur = passerelle avec matériel et logiciel dédiés

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.
26/09/2023 134
Routage

Principe de base

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

26/09/2023 135
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, …)

26/09/2023 136
Routage

Exemple de protocole routé: IP

0 4 8 16 19 24 31
VERS HLEN Type de service Longueur totale
Identification Flags Offset fragment
Durée de vie Protocole Somme de contrôle Header
Adresse IP Source
Adresse IP Destination
Options IP (éventuellement) Padding
Données
...

26/09/2023 137
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
26/09/2023 138
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.

26/09/2023 139
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.

26/09/2023 140
Routage

Champs d’une table de routage sous linux

L‘adresse de destination, peut contenir : Passerelle: indique ou le paquet


⇒ Une adresse machine doit être envoyé. Peut être :
⇒ Une adresse de sous-réseau ⇒ une carte réseau locale
⇒ Une adresse de réseau ⇒ un Routeur du sous-réseau
⇒ Une passerelle par défaut local

26/09/2023 141
Routage

Champs d’une table de routage sous linux

Indic (Flags) :
Genmask: définit la portion ⇒ U (Up) : la route est active
d‘adresse réseau qui correspond ⇒ H (Host) : la route conduit à un hôte
à l‘itinéraire. ⇒G (Gateway): la route passe par une
passerelle (voisine)

26/09/2023 142
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?

26/09/2023 143
Routage

Champs d’une table de routage sous linux

Metric: correspond au nombre de Ref: spécifie le nombre de référe-


nœuds à franchir pour atteindre la nces à cette route (non utilisé par
destination. Permet de déterminer le le noyau Linux)
meilleur itinéraire.

26/09/2023 144
Routage

Champs d’une table de routage sous linux

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

26/09/2023 145
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 [Link]/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.
26/09/2023 146
Routage

Champs d’une table de routage sous linux

Use: comptabilise le nombre de


Iface: l‘adresse de la carte réseau
recherches associées à cette ro
qui émet le paquet.
-ute

26/09/2023 147
Routage

Table de routage sous linux

26/09/2023 148
Routage

Route par défaut

• 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 :

# route add default gw [Link] dev eth0

26/09/2023 149
Routage

Route vers un poste

26/09/2023 150
Routage

Route vers un réseau

26/09/2023 151
Routage

Commandes de routage sous linux

26/09/2023 152
Routage

Analyse de route

Commande traceroute
• 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.

# traceroute [Link]

26/09/2023 153
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

26/09/2023 154
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

26/09/2023 155
Accès aux fichiers distants

26/09/2023 156
Accès aux fichiers distants

Problèmes liés à la mobilité des utilisateurs

• 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.

Une solution: centraliser les données.

26/09/2023 157
Accès aux fichiers distants

Idée générale

L’utilisateur doit pourvoir travailler sur n’importe quel poste


de travail !

26/09/2023 158
Accès aux fichiers distants

La centralisation des données

• 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.

Des échanges sur le réseau sont nécessaires à chaque


lecture/modification.

• 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.

26/09/2023 159
Accès aux fichiers distants

Principe

• 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)

26/09/2023 160
Accès aux fichiers distants

NFS: Network File System

• 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.

26/09/2023 161
Accès aux fichiers distants

Protocole NFS

• 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.

26/09/2023 162
Accès aux fichiers distants

Protocole NFS

NFS - Postes de travail sans disque

26/09/2023 163
Accès aux fichiers distants

Protocole NFS

NFS- Plusieurs postes de travail pour un même utilisateur...

26/09/2023 164
Accès aux fichiers distants

Protocole NFS

NFS - Plusieurs postes de travail pour un même utilisateur... vue


logique

26/09/2023 165
Accès aux fichiers distants

NFS: client-serveur

• le serveur:
⇒ donne les droits d’accès
⇒ répond aux requêtes des clients

• 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)
26/09/2023 166
Accès aux fichiers distants

NFS: client-serveur

• 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.

26/09/2023 167
Accès aux fichiers distants

NFS: Exemple

• 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/[Link].


2. Le client envoie la requête “récupérer /[Link]” sur le répertoire exporté
/utilisateurs/max.
3. Le serveur NFS consulte le fichier /utilisateurs/max/[Link].
4. Le serveur NFS envoie le contenu de ce fichier au client.
26/09/2023 168
Accès aux fichiers distants

NFS: principe de fonctionnement

26/09/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 [Link] 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 <= [Link]
⇒ gestion des fichiers actifs par le client “/etc/mtab”
⇒ requête d’accès lecture-écriture

26/09/2023 170
Accès aux fichiers distants

NFS: principe de fonctionnement

26/09/2023 171
Accès aux fichiers distants

Serveur SAMBA

• 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

26/09/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

26/09/2023 173
Accès aux fichiers distants

Protocole SMB: Server Message Block

• 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)

• 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.

26/09/2023 174
Accès aux fichiers distants

Protocole SMB: Server Message Block

• 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)

26/09/2023 175
Accès aux fichiers distants

NetBios

• 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)

26/09/2023 176
Accès aux fichiers distants

SAMBA: Principe de fonctionnement

• 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

26/09/2023 177
Accès aux fichiers distants

SAMBA: Le serveur

• La partie serveur de SaMBa est gérée par des programmes :

⇒ smbd : gestion du service

⇒ nmbd : résolution des noms NetBios

26/09/2023 178
Accès aux fichiers distants

SAMBA: Les clients

• 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.

26/09/2023 179
Transfert de fichiers
Protocole FTP

26/09/2023 180
Transfert de fichiers

Système de transfert de fichiers

• 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

26/09/2023 181
Transfert de fichiers

Protocole FTP

• 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.

26/09/2023 182
Transfert de fichiers

FTP: Client/serveur

• 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.

26/09/2023 183
Transfert de fichiers

FTP: Types de connexion

• 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)

26/09/2023 184
Transfert de fichiers

FTP: Numéros de ports

• Utilisation de 2 ports de communication:


⇒ 20 : Port de données
⇒ 21 : Port de contrôle

26/09/2023 185
Transfert de fichiers

Session FTP

• 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

26/09/2023 186
Transfert de fichiers

FTP: Modes de fonctionnement

• FTP peut s'utiliser de deux façons différentes :


⇒ Mode actif
⇒ Mode passif

26/09/2023 187
Transfert de fichiers

FTP: Mode actif

• 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.

26/09/2023 188
Transfert de fichiers

FTP: Mode actif

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

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.
26/09/2023 189
Transfert de fichiers

FTP: Mode passif

• 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").

26/09/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.
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 .
26/09/2023 191
Transfert de fichiers

FTP: Mode actif vs mode passif

• 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.

26/09/2023 192
Transfert de fichiers

Serveur FTP: Vsftpd

• 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

26/09/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.

26/09/2023 194
Transfert de fichiers

Vsftpd: caractéristiques

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

26/09/2023 195
Transfert de fichiers

Vsftpd: configuration par défaut

• 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

26/09/2023 196
Serveur Web
Apache

26/09/2023 197
Serveur Web

La base du web

• Architecture Client/Serveur
• Nécessité d’un protocole de communication: HTTP

26/09/2023 198
Serveur Web

Serveur web: Présentation

• 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 »

26/09/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 : [Link] .

26/09/2023 200
Serveur Web

Fonctionnement du service web

• 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.

26/09/2023 201
Serveur Web

Protocole HTTP

• 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).

26/09/2023 202
Serveur Web

Protocole HTTP

26/09/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:

26/09/2023 204
Serveur Web

Réponse 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.

26/09/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 [Link] revient à envoyez une requête
HTTP à cette machine. Le service DNS joue donc un rôle essentiel.

26/09/2023 206
Serveur Web

Protocole HTTP

• URL: Unified Resource Locator


⇒ ex: [Link]

• URI: Unified Resource Indicator


⇒ ex: /download/apache_1_3_3_tar.gz

26/09/2023 207
Serveur Web

Exemple de serveurs 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

26/09/2023 208
Serveur Web

Exemple de serveurs HTTP

26/09/2023 209
Serveur Web

Exemple de clients 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)

26/09/2023 210
Serveur Web

Apache: Présentation

• 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 [Link]
• Première version décembre 1995
• Dernière version : Apache 2.2

26/09/2023 211
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

26/09/2023 212
Serveur Web

Apache en version de base

• 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.

Pour cela, il faudra jouer avec les fichiers de


configuration et les modules.

26/09/2023 213
Serveur Web

Apache: fichier de configuration principal

• 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.

Ubuntu

26/09/2023 214
Serveur Web

Apache: Les autres fichiers de configuration

26/09/2023 215
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.

26/09/2023 216
Serveur Web

Apache: Les modules activés

• 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).

26/09/2023 217
Serveur Web

Apache: Installation de modules supplémentaire

• Les modules apache sont des bibliothèques et s’installent comme


suit:

# Sudo apt-get install libapache2-mod-php

• Les modules installés apparaissent dans mods-available et sont


activés automatiquement.

26/09/2023 218
Serveur Web

Apache: Hébergement mutualisé

26/09/2023 219
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.

26/09/2023 220
Serveur Web

Apache: Fichiers de description des virtual Hosts

26/09/2023 221
Serveur Web

Modules et virtual Hosts: Outils pratiques

26/09/2023 222
Accès à distance au serveur
Protocole SSH

26/09/2023 223
Accès à distance au serveur

Pourquoi accéder à distance?

• 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

26/09/2023 224
Accès à distance au serveur

Contraintes d’accès à 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 ?

26/09/2023 225
Accès à distance au serveur

Exemples de connexions à 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.

26/09/2023 226
Accès à distance au serveur

Protocoles et outils

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

26/09/2023 227
Accès à distance au serveur

Fonctionnement d’une connexion locale

26/09/2023 228
Accès à distance au serveur

Fonctionnement d’une connexion distante

26/09/2023 229
Accès à distance au serveur

Présentation de SSH

• 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.

Protocole 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

26/09/2023 230
Accès à distance au serveur

Fonctionnalités de SSH

• Authentification
• Transferts de fichiers
• Monter un répertoire distant localement
• Redirection de connexion

26/09/2023 231
Accès à distance au serveur

Préoccupations principales 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 ?

26/09/2023 232
Accès à distance au serveur

SSH: Sécurisation des connexions

• 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.

26/09/2023 233
Accès à distance au serveur

Techniques de cryptage utilisées par SSH

• 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

26/09/2023 234
Accès à distance au serveur

Cryptage symétrique

Cryptage symétrique= cryptage à clé partagée= cryptage à secret partagé

26/09/2023 235
Accès à distance au serveur

Cryptage symétrique
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.

26/09/2023 236
Accès à distance au serveur

Cryptage symétrique

26/09/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.

26/09/2023 238
Accès à distance au serveur

Cryptage asymé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

26/09/2023 239
Accès à distance au serveur

Cryptage asymétrique

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

26/09/2023 240
Accès à distance au serveur

Cryptage asymétrique

26/09/2023 241
Accès à distance au serveur

Etapes du protocole SSH

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

26/09/2023 242
Accès à distance au serveur

Etablissement d’une connexion 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)

26/09/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

26/09/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)

26/09/2023 245
Accès à distance au serveur

Fonction de hachage

• 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.

26/09/2023 246
Accès à distance au serveur

Terminologie de SSH

Site : [Link]
• 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…)
• ……

26/09/2023 247
Accès à distance au serveur

Les outils 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

26/09/2023 248
Accès à distance au serveur

SSH Sous Linux

Cryptographie dans SSH:


• Repose sur les algorithmes d'OpenSSL
⇒ Algorithmes asymétriques:
• RSA et DSA
⇒ Algorithmes symétriques:
• 3DES, Blowfish, AES, Arcfour ...

26/09/2023 249
Accès à distance au serveur

Fonctionnement de SSH

26/09/2023 250
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

26/09/2023 251
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, …

26/09/2023 252
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é.

26/09/2023 253
Annuaire LDAP
Lightweight Directory Access Protocol

26/09/2023 254
Annuaire LDAP

Qu’est ce qu’un annuaire?

• 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
26/09/2023 255
Annuaire LDAP

Caractéristiques d’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
26/09/2023 256
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.

26/09/2023 257
Annuaire LDAP

Annuaire vs Base de données

• 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.

26/09/2023 258
Annuaire LDAP

Un annuaire ≈ un entrepôt 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.

26/09/2023 259
Annuaire LDAP

Historique (X.500)

• 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.

26/09/2023 260
Annuaire LDAP

Historique (X.500)

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.
26/09/2023 261
Annuaire LDAP

Historique du protocole LDAP

• 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.

26/09/2023 262
Annuaire LDAP

Objectifs d’un annuaire 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

26/09/2023 263
Annuaire LDAP

Les concepts de LDAP(1)

• 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 ,

26/09/2023 264
Annuaire LDAP

Les concepts de LDAP(2)

⇒ 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.

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.

26/09/2023 265
Annuaire LDAP

Le protocole LDAP(1)

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).

26/09/2023 266
Annuaire LDAP

Le protocole LDAP(2)

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

26/09/2023 267
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

26/09/2023 268
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

26/09/2023 269
Annuaire LDAP

Le modèle d’information (3)

26/09/2023 270
Annuaire LDAP

Le modèle d’information (4)

• Un attribut est caractérisé par: Les attributs classiques de LDAP


⇒ un nom
⇒ un type
⇒ une méthode de comparaison
⇒ un « Object Identifier » (IOD)
⇒ une valeur.

Remarque: un attribut peut être possédé par plusieurs classes !


Exemple d’entrée
Par exemple, une entré de type "Fournisseur" peut avoir le même
attribut "cn" (common name) qu'une entrée de type "Client".

26/09/2023 271
Annuaire LDAP

Le modèle d’information (5)

• 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.

les types "Client" et "Salarié"


héritent des attributs du type
"Personne" qui lui même
héritent des attributs du type
"Top"

26/09/2023 272
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. . .

26/09/2023 273
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).

26/09/2023 274
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.
26/09/2023 275
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.
26/09/2023 276
Annuaire LDAP

Le modèle d’information – modèle de nommage (définitions)

26/09/2023 277
Annuaire LDAP

Le modèle d’information – modèle de nommage (définitions)

26/09/2023 278
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.

26/09/2023 279
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


26/09/2023 280
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.

26/09/2023 281
Annuaire LDAP

Le modèle fonctionnel (4)

Les opérations d’interrogation: Le scope

26/09/2023 282
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
26/09/2023 283
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.

26/09/2023 284
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

26/09/2023 285
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.

26/09/2023 286
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.

26/09/2023 287
Annuaire LDAP

Le modèle de sécurité (2)

L’authentification
• 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).

26/09/2023 288
Annuaire LDAP

Le modèle de sécurité (3)

Le contrôle d’accès
• 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
[Link]
• 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.

26/09/2023 289
Annuaire LDAP

Le modèle de sécurité (4)

Le chiffrement
• 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.

26/09/2023 290
Annuaire LDAP

Le modèle de duplication (1)

• 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.

26/09/2023 291
Annuaire LDAP

Le modèle de duplication (2)

• 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.

26/09/2023 292
Annuaire LDAP

Le modèle de duplication (3)

• 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 .

26/09/2023 293
Annuaire LDAP

Le modèle de duplication (4)

• 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.

26/09/2023 294
Annuaire LDAP

LDIF

• 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.

26/09/2023 295
Annuaire LDAP

LDIF: mode import

Une entrée de type personne se présente


de la manière suivante :
dn: cn=June Rossi, ou=accounting,
La forme générale est : o=Ace Industry, c=US
objectClass: top
dn: <distinguished name> objectClass: person
objectClass: <object class> objectClass: organizationalPerson
objectClass: <object class> objectClass: inetOrgPerson
[...] cn: June Rossi
attribute type:<attribute value> sn: Rossi givenName: June
mail: rossi@[Link]
attribute type:<attribute value>
userPassword: {sha}KDIE3AL9DK
[...]
dn: cn=Walter Scott, ou=accounting,
o=Ace Industry, c=US
objectClass: top
objectClass: person
objectClass: organizationalPerson
26/09/2023 296
Annuaire LDAP

Mettre en place un annuaire LDAP

• 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?

26/09/2023 297
Annuaire LDAP

Logiciels serveurs

• 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.

26/09/2023 298
Annuaire LDAP

Avantages d’OpenLDAP

• OpenLDAP est open source disponible sous la licence publique


(OpenLDAP Public License) à l’adresse http ://[Link]/.
• 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.

26/09/2023 299
Annuaire LDAP

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

26/09/2023 300
Annuaire LDAP

Configuration du serveur LDAP

Le fichier /etc/ldap/[Link] permet de configurer le démon sladp


• définition des schémas utilisés:
include [Link]
• 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"

26/09/2023 301
Système Pare-feu
Netfilter, Iptables

26/09/2023 302
Système pare-feu

Définition

26/09/2023 303
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

26/09/2023 304
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.

26/09/2023 305
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

26/09/2023 306
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

26/09/2023 307
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é.

26/09/2023 308
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

26/09/2023 309
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.

26/09/2023 310
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.

26/09/2023 311
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.

26/09/2023 312
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

26/09/2023 313
Système pare-feu

Netfilter: Table filter

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 :

26/09/2023 314
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

26/09/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é à 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 ;

26/09/2023 316
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

26/09/2023 317
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.

26/09/2023 318
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).

26/09/2023 319
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.
26/09/2023 320
Système pare-feu

Gestion du pare-feu

Installation

• Il suffit d’installer le paquet iptables, mais normalement celui-ci est


déjà installé

# Sudo apt-get install iptables

• Pour vérifier si le paquet est installé

# dpkg --list iptables

26/09/2023 321
Système pare-feu

Gestion du pare-feu
Configuration par défaut
• Par défaut, iptables est réglé sur une politique permissive (open
config) où on laisse tout passer (policy ACCEPT).

# iptables -L

• Cette commande permet de lister les règles qui sont actives


• 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.
26/09/2023 322
Système pare-feu

Gestion du pare-feu

Bloquer des adresses IP spécifiques


• Pour bloquer une adresse qui aurait un comportement abusif :

# iptables -A INPUT -s [Link] -j DROP

• pour la débloquer :

# iptables -D INPUT -s [Link] -j DROP

• L’option -D ou --delete supprime la règle dans la chaîne spécifiée.

26/09/2023 323
Système pare-feu

Gestion du pare-feu

Bloquer/accepter des ports spécifiques


• Pour bloquer un port spécifique en sortie :

# iptables -A OUTPUT -p tcp --dport xxx -j DROP

• pour le débloquer :

# iptables -D INPUT -p tcp –dport xxx -j DROP

• L’option -D ou --delete supprime la règle dans la chaîne spécifiée.

26/09/2023 324
Système pare-feu

Gestion du pare-feu

Interdire tout paquet sortant vers le web


• d’abord vérifier si vous pouvez effectuer une requête ICMP

• Pour bloquer le port 443 en sortie :

# iptables -A OUTPUT -p tcp –-dport 443 -j DROP

• pour le débloquer :

# iptables -D INPUT -p tcp –-dport 443 -j DROP

• Plusieurs ports peuvent être spécifiés en même temps


# iptables -A INPUT -p tcp -m multiport --dports 80,443 -j
ACCEPT
26/09/2023 325
Système pare-feu

Gestion du pare-feu

Bloquer le protocole ICMP (ping)


• d’abord vérifier le ping

• Pour bloquer le protocole ICMP en entrée :

# iptables -A INPUT -p icmp -i enp0s3 -j DROP

• Vérifier que le ping ne marche pas, maintenant.

26/09/2023 326
Système pare-feu

Gestion du pare-feu

Autoriser un réseau

• Un réseau complet peut être spécifié, par exemple pour autoriser


un accès SSH :

# iptables -A OUTPUT -p tcp -d [Link]/24 --dport 22 -j


ACCEPT

26/09/2023 327
Système pare-feu

Gestion du pare-feu

Accès à la loopback

• 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

26/09/2023 328
Système pare-feu

Gestion du pare-feu

Fermer le port Telnet


• Tester premièrement, que vous pouvez se connecter à votre
machine à travers Telnet

# telnet localhost

• Fermez le port telnet


# iptables -A INPUT -p tcp --dport 23 -m state –-state

NEW,ESTABLISHED -j DROP

• Vérifier maintenant que vous ne pouvez pas se connecter par telnet

26/09/2023 329
Système pare-feu

Gestion du pare-feu

Limiter le nombre de connexion à une adresse


• Pour limiter le nombre de paquets par adresse (protection contre le
flooding) :

# iptables -A INPUT -p tcp --dport 80 -m limit --limit


50/minute --limit-burst 100 –j ACCEPT

• Pour limiter le nombre de connexions actives (ici 3 sur le port ssh) :

#iptables -A INPUT -p tcp --syn --dport 22 -m


connlimit --connlimit-above 3 -j REJECT

26/09/2023 330
Système pare-feu

Gestion du pare-feu

Réinitialiser les iptables

• Pou effacer toutes les entrées des iptables

# iptables -F

• Pour remettre la politique par défaut (ACCEPT):

# iptables -P INPUT ACCEPT


# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

26/09/2023 331
Système pare-feu

Gestion du pare-feu

Exemple de paramètres à utiliser

26/09/2023 332
Serveur de messagerie électronique
Postfix

26/09/2023 333
Messagerie électronique

Problématique

• Vous ne voulez plus confier vos mails à Gmail, Yahoo ou


Hotmail ?
• Vous voulez héberger vos mails chez vous ?

26/09/2023 334
Messagerie électronique

Système de messagerie électronique

• L'ensemble des éléments contribuant à transmettre un


courriel de l'émetteur au récepteur
• courrier électronique: message transmis via un réseau
informatique

26/09/2023 335
Messagerie électronique

Courier électronique: composants

• 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)

26/09/2023 336
Messagerie électronique

Mail Transfer Agent: MTA

• 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
26/09/2023 337
Messagerie électronique

Mail Delivery Agent: MDA

• 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, . . .
26/09/2023 338
Messagerie électronique

Mail User Agent: MUA

• 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, . . .

26/09/2023 339
Messagerie électronique

Parcours d’un mail

26/09/2023 340
Messagerie électronique

Parcours d’un mail

26/09/2023 341
Messagerie électronique

Parcours d’un mail

26/09/2023 342
Messagerie électronique

Parcours d’un mail

26/09/2023 343
Messagerie électronique

Parcours d’un mail

26/09/2023 344
Messagerie électronique

Parcours d’un mail

26/09/2023 345
Messagerie électronique

SMTP : Introduction

• 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.

26/09/2023 346
Messagerie électronique

SMTP : Exemple général

• Le schéma suivant présente la succession de ces différentes


phases :

26/09/2023 347
Messagerie électronique

SMTP : Détail du fonctionnement

• 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.

26/09/2023 348
Messagerie électronique

SMTP : Structure client-serveur

• 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

26/09/2023 349
Messagerie électronique

SMTP : Adresses de courrier

• 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:
[Link]@[Link]
• 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 ([Link], 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.

26/09/2023 350
Messagerie électronique

POP, IMAP

• 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…)

26/09/2023 351
Messagerie électronique

POP: Principe

• 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.

26/09/2023 352
Messagerie électronique

IMAP: 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

26/09/2023 353
Messagerie électronique

POP vs IMAP

POP3 IMAP

Le tri du courrier selon des


Récupérer le courriel sur critères
un serveur de messagerie

26/09/2023 354
Messagerie électronique

Implémentations: Serveurs de messagerie libre (MTA)

• 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 [Link])
• Postfix: crée principalement par Vietse Venema à IBM en 2001.
(voir [Link] et [Link])
• 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

26/09/2023 355
Messagerie électronique

Implémentations: Serveurs de messagerie propriétaire (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

26/09/2023 356
Messagerie électronique

Implémentations: Serveurs de délivrance de messages (MDA)

• 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)

26/09/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.

26/09/2023 358
Messagerie électronique

Implémentations: Client de messagerie (MUA)

• 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, ...

26/09/2023 359

Vous aimerez peut-être aussi