Vous êtes sur la page 1sur 52

BTS SRI Administration et Maintenance d’un système GNU/Linux

Chap.9 : Configuration réseau local (LAN)


1. Configuration d’une station
Un ordinateur communique avec les autres ordinateurs par des interfaces réseaux. En général, on a une
interface réseau pour chaque carte réseaux (pour les ordinateurs qui ont plusieurs cartes réseaux). Une
carte réseau (ethernet ou wifi) possède une adresse MAC, qui identifie la carte réseau sur le réseau. Pour
faire fonctionner une carte réseau, il faut configurer l’interface qui lui correspond.
1.1. Configurer les interfaces à la main avec ifconfig
Obtenir la configuration courante des interfaces
La commande ifconfig permet de connaître la configuration réseaux et de configurer le réseau à la main
ou dans un script.
Voici le résultat de ifconfig sur une configuration simple, configuré pour éthernet. Dans cet exemple, la
station a une interface eth0, qui a 192.168.0.2 comme adresse IP dans le sous réseau, ou réseau local
192.168.0 (appliquer le masque binaire Mask sur l’adresse IP). L’adresse MAC de la carte réseau est
00:B2:3A:24:F3:C4.
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:B2:3A:24:F3:C4
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:9fff:fef9:95b0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:5
collisions:0 txqueuelen:1000
RX bytes:1520 (1.4 KiB) TX bytes:2024 (1.9 KiB)
Interrupt:10

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6040 (5.8 KiB) TX bytes:6040 (5.8 KiB)
Pour obtenir ce résultat, il faut que la machine soit connectée par un câble ethernet à un routeur (ou un
modem-routeur) qui définisse le sous-réseau 192.168.0. On configure alors la station avec ifconfig :
# ifconfig eth0 192.168.0.2
Pour déconfigurer l’interface eth0
# ifconfig eth0 down
(Vérifier avec ifconfig : l’interface eth0 n’apparaît plus).
Le fichier resolv.conf et la résolution des noms
Sur internet, les stations (appelée hôtes ont des adresses IP, qui permettent de les identifier, mais on
peut aussi souvent désigner un hôte par un nom d’hôte ou nom de domaine (comme example.com ou
google.com). Pour accéder à une machine à partir de son nom, notre station doit résoudre l’hôte, c’est à
dire qu’elle doit trouver l’adresse IP de l’hôte à partir de son nom. Pour cela, notre station doit accéder à
un serveur, appelé serveur de noms ou DNS. Ce serveur connaît les adresses IP correspondant à tous les
noms d’hôte.
Le fichier /etc/resolv.conf contient les adresses IP d’un ou plusieurs serveurs de noms.
Voici un exemple :
# cat /etc/resolv.conf
search
nameserver 193.47.194.7
nameserver 193.47.194.9

1/52
Si l’on n’a pas accès à un serveur de noms, on ne peut accéder aux autres machines que par leur adresse
IP, à l’exception des machines qui sont définies dans le fichier /etc/hosts.
# cat /etc/hosts
# adresse IP Nom d’hôte
127.0.0.1 localhost
127.0.1.1 portable1
192.168.0.1 router
192.168.0.17 printer
208.77.188.166 example.com
...
1.2. Gérer la configuration dans le fichier interfaces
La configuration d’une interface avec ifconfig n’est pas enregistrée sur le disque, et en particulier, 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 un fichier de configuration.
Pour initialiser le réseau après configuration, il faut faire :
# /etc/init.d/networking start
Pour réinitialiser le réseau après un changement dans les fichiers de configuration, il faut faire :
# /etc/init.d/networking restart
Configuration des interfaces
La configuration des interfaces utilisée lors de l’initialisation du réseau est contenue dans le fichier
/etc/network/interfaces.
Pour ethernet static
# cat /etc/network/interfaces
# configuration de l’interface lo (obligatoire)
auto lo
iface lo inet loopback

# configuration de l’interface eth0


auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
Pour ethernet DHCP
Certains réseaux locaux sont configurés en DHCP (pour Dynamic Host Configuration Protocol). Dans un tel
réseau, la station n’a pas besoin de connaître son adresse IP pour se connecter, mais l’adresse 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 :
# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
1.3 Configuration WIFI
Le WIFI (protocole 802.11) est une technologie de réseaux locaux sans fil. On accède au réseau via un
serveur sans fil avec lequel on communique par des ondes électromagnétiques. Pour éviter que n’importe
qui puisse se connecter au réseau sans fil, ou n’intercepte les communications, les communications sont
cryptées. Il existe deux protocoles courant de cryptage : WEP et WPA.
Voici le fichier interfaces configuré avec une clef de cryptage WEP. l’ESSID est le nom du réseau sans fil.
# cat /etc/network/interfaces
auto lo
iface lo inet loopback

# l’interface wlan0 correspond ici à la carte wifi


auto wlan0
iface wlan0 inet dhcp
wireless-essid mon_essid

2/52
wireless-mode managed
wireless-key AF32852BE7A39B522BG60C4353
Le ESSID et la clef WEP doivent correspondre et être correctement configurés sur le serveur sans fil.
Voici à quoi ressemble la configuration du réseau lors d’une connexion sans fil :
# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6040 (5.8 KiB) TX bytes:6040 (5.8 KiB)

wlan0 Link encap:Ethernet HWaddr 00:24:F2:C1:AB:23


inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::213:d4ff:fef4:cd49/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:421 errors:0 dropped:0 overruns:0 frame:0
TX packets:460 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4823848 (4.6 MiB) TX bytes:79806 (77.9 KiB)
Pour obtenir les paramètres spécifiques au réseau WIFI, on utilise iwconfig
# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:"my_essid"
Mode:Managed Frequency:2.437 GHz Access Point: 00:F0:C3:A4:C1:41
Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=0/100 Signal level=-23 dBm Noise level=-86 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:5 Invalid misc:2 Missed beacon:98
sit0 no wireless extensions.
2. Routage
Lorsque l’on utilise la commande ifup ou le script de démarrage du réseau, les informations concernant la
passerelle sont lues directement depuis le fichier /etc/sysconfig/network (champ GATEWAY).
Lorsque l’on utilise ifconfig ou si la passerelle n’est pas renseignée, il faut indiquer cette passerelle (et
d’autres routes éventuellement) par la commande /sbin/route qui permet de configurer la table de
routage.
Pour ajouter une route statique vers le réseau 192.168.100.0/24 en utilisant l’interface physique eth2
qui permet de joindre la machine 192.168.2.1 qui, elle, permet d’atteindre un réseau, le
192.168.100.0/24 :
# route add -net 192.168.100.0/24 gw 192.168.2.1 eth2
Pour plus de commodité, on peut définir des réseaux par un nom au lieu de mettre la notation CIDR qui
dans l’exemple est 192.168.100.0/24. Il suffit pour cela de l’indiquer dans le fichier /etc/networks.
mon_reseau 192.168.100.0/24
Pour ajouter une route par défaut vers la machine 192.168.1.1 joignable par l’interface physique eth0 :
# route add default gw 192.168.1.1 eth0
Pour afficher la table de routage du noyau Linux, on utilise la commande /sbin/route sans options.
L’option -n permet d’éviter simplement la résolution de nom DNS, ce qui est commode lorsque l’on
travaille sur le réseau et qu’elle n’est pas opérationnelle.
/sbin/route -n
Table de routage IP du noyau
Destination Passerelle Genmask ... Iface

3/52
192.168.1.0 0.0.0.0 255.255.255.0 ... eth0
192.168.2.0 0.0.0.0 2 55.255.255.0 ... eth2
192.168.100.0 192.168.2.1 255.255.255.0 ... eth2
127.0.0.0 0.0.0.0 255.0.0.0 lo
0.0.0.0 192.168.1.1 0.0.0.0 eth0
La route vers le réseau 0.0.0.0 signifie « vers n’importe quel réseau » : c’est la route par défaut ou
passerelle par défaut (route add default ... ou celle se trouvant dans le fichier /etc/sysconfig/network).
Cette ligne est évidemment la dernière consultée par le système lors d’une demande d’accès à une
machine : cela signifie que l’adresse demandée ne se trouve sur aucun des sous-réseaux décrits par les
routes précédentes.
L’autre route peut être ajoutée automatiquement à chaque démarrage en l’indiquant dans le fichier
/etc/sysconfig/static-routes.
Les informations de routage peuvent être créées automatiquement à l’aide de démons spéciaux plutôt que
de les indiquer statiquement. C’est le rôle des logiciels routed et gated qui peuvent mettre à jour
dynamiquement les routes en récupérant les informations depuis le réseau. Cela permet d’utiliser
automatiquement des passerelles de secours en cas de défaillance d’une des passerelles.
3. Les outils associés au réseau
Voici quelques outils permettant d’effectuer des tests de fonctionnement du réseau.
a. ping
Cette commande envoie un paquet ICMP (ECHO_REQUEST) à une machine et attend sa réponse
(ECHO_RESPONSE). Cela permet de vérifier qu’une machine est joignable et qu’elle est capable de
répondre. Si c’est bien le cas, cela signifie que sa configuration réseau et la notre sont correctes.
Quelques options utiles pour la commande ping :
− -c <N> : envoie N paquets et stoppe ;
− -q : mode « calme » (quiet), rien n’est affiché à part les lignes de résumé au démarrage et à la fin de
l’exécution ;
− -b : envoie le ou les paquets à un ensemble de machines (broadcast).
# ping www.transfer-tic.org
b. netstat
Donne des informations générales sur la configuration réseau, à savoir les tables de routage, les
statistiques des interfaces, etc.
Quelques options de netstat :
− -n : ne pas résoudre les noms ;
− -r : affiche la table de routage, équivalent à la commande route ;
− -v : mode verbeux ;
− -l : liste des connexions/interfaces ;
− -c : mise à jour permanente.
# netstat -n
Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat
tcp 0 0 134.157.9.32:22 134.157.9.52:46903 ESTABLISHED
tcp 0 0 134.157.9.32:22 134.157.9.52:46639 ESTABLISHED
tcp 0 0 134.157.9.32:800 134.157.9.11:2049 ESTABLISHED
tcp 0 0 134.157.9.32:643 134.157.9.11:111 TIME_WAIT
On remarque deux connexions sur le port 22, une sur le port 800 et une sur le port 643.
c. arp
Cette commande permet d’afficher la table cache de résolution d’adresses du noyau (i.e. l’association
avec l'adresse physique MAC d’une machine) pour les machines présentes sur le même réseau.

4/52
# arp
Address HWtype HWaddress Flags Mask Iface
cerbere.lodyc.jussieu.f ether 00:B0:D0:D1:8B:2A C eth0
nestor.lodyc.jussieu.fr ether 00:04:76:E4:BB:33 C eth0
d. traceroute
Affiche les différents noeuds (ou passerelles) traversés pour joindre une machine.
Quelques options de traceroute :
− -n : ne pas résoudre les noms (DNS) ;
− -v : mode verbeux ;
− -f <ttl> : change le TTL (Time To Live) ;
− -w <sec> : change le time-out sur les paquets retournés.
traceroute -n www.transfer-tic.org
La commande traceroute force les noeuds intermédiaires traversés à renvoyer une réponse qui est un
message d’erreur (ICMP TIME_EXCEEDED), en positionnant une valeur de TTL trop basse. Dès qu’un
message d’erreur est reçu, la commande incrémente cette valeur et renvoie le message ce qui lui permet
de passer au noeud suivant et ainsi de suite.
L’utilitaire tcpdump permet de visualiser tous les échanges se produisant sur le réseau auquel votre
machine est connectée.
Cette commande permet le débogage de problèmes réseau, mais aussi de récupérer certaines
informations qui circulent « en clair » sur le réseau.
# surveillance de la machine 192.168.10.1
tcpdump src 192.168.10.1

5/52
Chap.10 : DNS
1. Présentation
Le Système de Noms de Domaines DNS (Domain Name System) transforme les noms d’hôte en adresses IP : c’est la
résolution de nom. Il transforme les adresses IP en noms d’hôte : c’est la résolution inverse. Il permet de regrouper les
machines par domaines de nom. Il fournit des informations de routage et de courrier électronique.
Les noms de domaine sont séparés par des points, chaque élément pouvant être composé de 63 caractères ; il ne peut y
avoir qu’un maximum de 127 éléments et le nom complet ne doit pas dépasser 255 caractères. Le nom complet non
abrégé est appelé FQDN (Fully Qualified Domain Name). Dans un FQDN, l’élément le plus à droite est appelé TLD (Top
Level Domain), celui le plus à gauche représente l’hôte et donc l’adresse IP.

Représentation d’une arborescence DNS

Une zone est une partie d’un domaine gérée par un serveur particulier. Une zone peut gérer un ou plusieurs sous-
domaines, et un sous-domaine peut être réparti en plusieurs zones. Une zone représente l’unité d’administration dont
une personne peut être responsable.
Installation

On va installer le serveur DNS bind 9

Mise à jour de la liste des paquets:

apt-get update

Installation du serveur:

apt-get install bind9

Lancement
Pour lancer le serveur, tapez :
/etc/init.d/bind9 restart

6/52
2. Configurer un serveur DNS Bind sur Debian

Bind (Berkeley Internet Name Daemon) est le serveur de noms le plus utilisé sur Internet. Bind 9 supporte l’IPv6, les
noms de domaine unicode, le multithread et de nombreuses améliorations de sécurité.

2.1. Configuration générale


/etc/bind/named.conf est le fichier de configuration principal du serveur DNS BIND. Il est le premier fichier lu par
named. La directive include permet de répartir la configuration sur plusieurs fichiers pour des fins de clarté ou
d'organisation.
2.2. Structure et format
named.conf est structuré en clauses regroupant chacune un ensemble d'instructions sous la forme d'un bloc. Il faut
impérativement respecter la syntaxe du fichier qui peut être résumée par les règles suivantes :
− Une instruction se termine par « ; » ;
− Un bloc d'instructions débute par « { » et se termine par « }; » ;
− Un commentaire est écrit sous l'une des formes suivantes :
/* commentaire au style C */
// commentaire au style C++
# commentaire au style PERL/SHELL
Voici un fichier named.conf de base.
options {
directory "/var/lib/named";
forwarders { 10.0.0.1; };
notify no;
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "." in {
type hint;
file "root.hint";
};
2.3. Section globale
La configuration globale est placée dans la section options. Voici un détail de quelques options importantes (le point-
virgule doit être précisé) :
− directory "filename"; : emplacement des fichiers contenant les données des zones.
− forwarders { adresseip;}; : si le serveur bind ne peut résoudre lui-même la requête, elle est renvoyée à un
serveur DNS extérieur, par exemple celui du fournisseur d’accès.
− Listenonport 53 {127.0.0.1; adresseip; }; : port d’écoute du DNS suivi des adresses d’écoute. On indique ici les
adresses IP des interfaces réseau de la machine. Il ne faut pas oublier 127.0.0.1.
− Allowquery { 127.0.0.1; réseau; }; : machine(s) ou réseau(x) autorisés à utiliser le service DNS. Par exemple
192.168.1/24. Si la directive est absente, tout est autorisé.
− Allowtransfer { 192.168.1.2; }; : machine(s) ou réseau(x) autorisés à copier la base de données dans le cas d’une
relation maître et esclave. Par défaut aucune copie n’est autorisée.

7/52
− notify no; : on notifie ou non les autres serveurs DNS d’un changement dans les zones ou d’un redémarrage du
serveur.
2.4. Section de zones
Pour chaque domaine ou sous-domaine, on définit deux sections zone. La première contient les informations de
résolution de nom (nom vers IP) et la seconde les informations de résolution inverse (IP vers Nom). Dans chacun des cas,
la zone peut être maître Master ou esclave Slave :
− Master : le serveur contient la totalité des enregistrements de la zone dans ses fichiers de zone. Lorsqu’il reçoit
une requête, il cherche dans ses fichiers (ou dans son cache) la résolution de celle-ci.
− Slave : le serveur ne contient par défaut aucun enregistrement. Il se synchronise avec un serveur maître duquel
il récupère toutes les informations de zone. Ces informations peuvent être placées dans un fichier. Dans ce cas
l’esclave stocke une copie locale de la base. Lors de la synchronisation, le numéro de série de cette copie est
comparé à celui du maître. Si les numéros sont différents, une nouvelle copie a lieu, sinon la précédente
continue à être utilisée.
2.5. Zone de résolution
Elle est généralement appelée zone. Pour chaque domaine ou sous-domaine, elle indique dans quel fichier sont placées
les informations de la zone (c’est-à-dire et entre autres les adresses IP associées à chaque hôte), son type (maître ou
esclave), si on autorise ou non la notification, l’adresse IP du serveur DNS maître dans le cas d’un esclave, etc.
Le nom de la zone est très important puisque c’est lui qui détermine le domaine de recherche. Quand le DNS reçoit une
requête, il recherche dans toutes les zones une correspondance.
zone "domaine.org" {
type "master";
file "domaine.org.zone";
};
 type : master ou slave ;
 file : nom du fichier qui contient les informations de la zone. Il n’y a pas de règles précises de nommage mais
pour des raisons de lisibilité il est conseillé de lui donner le même nom que la zone tant pour une zone master
que pour une slave. Pour un master, c’est l’original éventuellement rempli par vos soins. Pour un slave, ce n’est
pas obligatoire. S’il est présent, ce sera une copie du master, synchronisée.
 Dans le cas d’un Master, on peut rajouter allowtransfer (serveurs autorisés à dupliquer la zone) et notify yes
(indique une mise à jour ou une relance pour les slaves).
En cas de Slave : on rajoute la directive masters pour indiquer à partir de quel serveur Master dupliquer.
2.6. Zone de résolution inverse
Pour chaque réseau ou sous-réseau IP (ou plage d’adresses) on définit une zone de résolution inverse dont le fichier
contient une association IP vers nom de machine. C’est en fait presque la même chose que la zone de résolution sauf
que l’on doit respecter une convention de nommage :
 Le nom de la zone se termine toujours par un domaine spécial .in-addr.arpa ;
 On doit tout d’abord déterminer quel réseau la zone doit couvrir (cas des sous-réseaux). Pour nous : un réseau
de classe C 192.168.1.0 soit 192.168.1/24 ;
 On inverse l’ordre des octets dans l’adresse : 1.168.192 ;
 On ajoute in-addr.arpa. Notre nom de zone sera donc 1.168.192.in-addr.arpa ;
 Pour le reste, les mêmes remarques que pour la zone de résolution s’appliquent ;
Zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1.zone";
};

2.7. Exemple

8/52
Soit un domaine domaine.org sur un réseau de classe C 192.168.1.0. Soit deux serveurs DNS 192.168.1.1 Master et
192.168.1.2 Slave.
Sur le Master
zone "domaine.org" {
type master;
file "domaine.org.zone";
allow-transfer { 192.168.1.2; } ;
notify yes;
};
zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1.zone";
allow-transfer { 192.168.1.2; } ;
notify yes;
};
Sur le Slave
zone "domaine.org" {
type slave;
file "domaine.org.zone";
masters { 192.168.1.1; };
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "192.168.1.zone";
masters { 192.168.1.1; } ;
2.8. Zones spéciales
Le fichier named.conf inclut par défaut la déclaration des zones particulières racine, localhost et « 127.in-addr.arpa » :
− le fichier de la zone racine, désigné par « . » et de type hint, contient la liste des serveurs à interroger lorsqu'un
serveur de nom n'arrive pas à résoudre une requête ;
− la zone « localhost » permet la résolution du nom « localhost » à l'adresse de boucle locale « 127.0.0.1 » lors de
l'utilisation du serveur DNS ;
− la zone « 127.in-addr.arpa » assure la résolution inversée de l'adresse de boucle locale « 127.0.0.1 ».
3. Fichiers de zone
3.1. Définitions
Les fichiers de zones utilisent plusieurs termes, caractères et abréviations spécifiques.
 RR : Ressource Record. Nom d’un enregistrement DNS (les données du DNS).
 SOA : Start Of Authority. Permet de décrire la zone.
 IN : the Internet. Définit une classe d’enregistrement qui correspond aux données Internet (IP). C’est celle par
défaut si elle n’est pas précisée pour les enregistrements.
 A : Address. Permet d’associer une adresse IP à un nom d’hôte. Pour Ipv6 c’est AAAA.
 NS : Name Server. Désigne un serveur DNS de la zone.
 MX : Mail eXchanger. Désigne un serveur de courrier électronique, avec un indicateur de priorité. Plus la valeur
est faible, plus la priorité est élevée.
 CNAME : Canonical Name. Permet de rajouter des alias : lier un nom à un autre. On peut créer des alias sur des
noms d’hôte et aussi sur des alias.
 PTR : Pointer. Dans une zone de résolution inverse, fait pointer une IP sur un nom d’hôte.
 TTL : Time To Live. Durée de vie des enregistrements de la zone.

9/52
 @ : dans les déclarations de la zone, c’est un alias (caractère de remplacement) pour le nom de la zone déclarée
dans /etc/bind/named.conf. Ainsi si la zone s’appelle domaine.org, @ vaut domaine.org. Dans la déclaration de
l’administrateur de la SOA, il remplace ponctuellement le point dans l’adresse de courrier électronique.
 Le point « . »: Si l’on omet le point en fin de déclaration d’hôte, le nom de la zone est concaténé à la fin du nom.
Par exemple pour la zone domaine.org, si on écrit poste1, cela équivaut à poste1.domaine.org. Si on écrit
poste1.domaine.org (sans le point à la fin) alors on obtient comme résultat poste1.domaine.org.domaine.org !
Pour éviter cela, vous devez écrire poste1.domaine.org. (notez le point à la fin).
Certains enregistrements nécessitent une notion de durée, qui est généralement exprimée en secondes, mais aussi
parfois avec des abréviations :
− 1M : une minute, soit 60 secondes (1M, 10M, 30M, etc.) ;
− 1H : une heure, 3600 secondes ;
− 1D : un jour, 86400 secondes ;
− 1W : une semaine, 604800 secondes ;
− 365D : un an, 31536000 secondes.
3.2. Zone
Commencez tout d’abord par une directive TTL qui indique le temps de vie de la zone en secondes. Durant ce temps,
les données peuvent être placées en cache par les autres serveurs de noms distants.
$TTL 86400
Après les directives TTL, placez un enregistrement de ressources SOA :
<domain> IN SOA <primary-name-server> <hostmaster-email> (
<serial-number>
<time-to-refresh>
<time-to-retry>
<time-to-expire>
<minimum-TTL> )
 domain : c’est le nom de la zone, le même nom que celui utilisé dans /etc/bind/named.conf. On peut le
remplacer par @ sinon il ne faut pas oublier de le terminer par un point (pour éviter une concaténation).
 Primary-name-server : le nom du serveur DNS maître sur cette zone. Il ne faudra pas oublier de le déclarer dans
la liste des hôtes (enregistrements PTR ou A).
 Hostmaster-email : adresse de courrier électronique de l’administrateur du serveur de nom. Le caractère @
étant déjà réservé à un autre usage, on utilise un point pour le remplacer. Ainsi « admin@domaine.org » devra
s’écrire « admin.domaine.org. ».
 Serial-number : c’est un numéro de série que l’on doit incrémenter manuellement à chaque modification du
fichier zone pour que le serveur de nom sache qu’il doit recharger cette zone. Elle est utilisée pour la
synchronisation avec les serveurs esclaves. Si le numéro de série est le même qu’à la dernière synchronisation
les données ne sont pas rafraîchies. Par convention on place YYYYMMDDNN (année-mois-jour-numéro) sur dix
chiffres.
 Time-to-refresh : indique à tout serveur esclave combien de temps il doit attendre avant de demander au
serveur de noms maître si des changements ont été effectués dans la zone.
 Time-to-retry : indique au serveur esclave combien de temps attendre avant d’émettre à nouveau une demande
de rafraîchissement si le serveur maître n’a pas répondu. La demande aura lieu toutes les time-to-retry
secondes.
 Time-to-expire : si malgré les tentatives de contacts toutes les time-to-retry secondes le serveur n’a pas
répondu au bout de la durée indiquée dans time-to-expire, le serveur esclave cesse de répondre aux requêtes
pour cette zone.
 Minimum-TTL : le serveur de noms demande aux autres serveurs de noms de mettre en cache les informations
pour cette zone pendant au moins la durée indiquée.

10/52
@ IN SOA dns1.domaine.org. hostmaster.domaine.org. (
2005122701 ; serial
21600 ; refresh de 6 heures
3600 ; tenter toutes les 1 heures
604800 ; tentatives expirent après une semaine
86400 ) ; TTL mini d’un jour
Passez ensuite aux enregistrements NS (Name Server) où vous spécifiez les serveurs de noms de cette zone.
IN NS dns1
IN NS dns2
Note : Quand on ne spécifie pas en début de ligne un nom d’hôte ou de zone (complet ou @), cela veut dire qu’on
utilise le même que la ligne du dessus. Tant qu’on n’en précise pas de nouveau, c’est le dernier indiqué qui est utilisé.
Ainsi ci-dessus les lignes pourraient être :
@ IN NS dns1
@ IN NS dns2
ou :
domaine.org. IN NS dns1
domaine.org. IN NS dns2
Note : l’absence de point après le nom de l’hôte veut dire qu’il sera concaténé avec le nom de domaine domaine.org
pour obtenir dns1.domaine.org.
IN NS dns1
équivaut à :
IN NS dns1.domaine.org.
Passez ensuite à l’énumération des serveurs de courrier électronique de la zone. La valeur numérique située après MX
indique la priorité. Plus la valeur est basse plus le serveur est prioritaire et susceptible d’être contacté en premier.
IN MX 10 mail
IN MX 15 mail2
Vous pouvez maintenant déclarer les autres hôtes dont les serveurs de noms, de mails, les postes, etc.
dns1 IN A 192.168.1.1
dns2 IN A 192.168.1.2
server1 IN A 192.168.1.3
server2 IN A 192.168.1.4
poste1 IN A 192.168.1.11
poste2 IN A 192.168.1.12
poste3 IN A 192.168.1.13
On remarque que nos serveurs mail et mail2 ne sont pas déclarés, et que l’on n’a pas indiqué de serveur Web et ftp.
Nous allons utiliser les alias, en faisant pointer ces noms d’hôtes sur d’autres hôtes.
mail IN CNAME server1
mail2 IN CNAME server2
www IN CNAME server1
ftp IN CNAME server1
La configuration de la zone est terminée, il faut maintenant s’occuper de la zone de résolution inverse.
3.3. Zone de résolution inverse
La zone de résolution inverse est presque identique à la précédente, si ce n’est que les enregistrements A sont
remplacés par des enregistrements PTR destinés à traduire une IP en nom d’hôte. Le TTL et la déclaration SOA doivent
être si possible identiques (sauf le nom de la zone). Vous placez aussi les enregistrements NS.
IN NS dns1.domaine.org.
IN NS dns2.domaine.org.
Passez aux enregistrements PTR traduisant l’adresse IP pour chaque hôte.

11/52
1 IN PTR dns1.domaine.org.
2 IN PTR dns2.domaine.org.
3 IN PTR server1.domaine.org.
4 IN PTR server2.domaine.org.
11 IN PTR poste1.domaine.org.
12 IN PTR poste2.domaine.org.
13 IN PTR poste3.domaine.org.
4. Diagnostic des problèmes de configuration
La commande named-checkconf vérifie la syntaxe du fichier named.conf. Vous lui fournissez en paramètre le fichier. La
sortie indiquera les lignes posant problème.
La commande named-checkzone vérifie la syntaxe d’un fichier de zone (y compris de résolution inverse). Vous lui
spécifiez en paramètre le nom du fichier zone
4.1. Interrogation dig et host
Le programme dig est un outil d’interrogation avancé de serveur de noms, capable de restituer toutes les informations
des zones.
> dig free.fr

;; ANSWER SECTION:
free.fr. 86363 IN A 212.27.48.10

Par défaut dig ne restitue que l’adresse de l’hôte passé en paramètre. En cas de réussite, le statut vaut NOERROR, le
nombre de réponses est indiqué par ANSWER et la réponse se situe en dessous de la section ANSWER. Pour obtenir une
résolution inverse il existe deux solutions.
$ dig 10.48.27.212.in-addr.arpa ptr
ou plus simplement :
$ dig -x 212.27.48.10

;; ANSWER SECTION:
10.48.27.212.in-addr.arpa. 86400 IN PTR www.free.fr.

Dans la première syntaxe, remarquez que vous pouvez rajouter un paramètre d’interrogation. Voici les principaux.
 a : uniquement l’adresse ;
 any : toutes les informations concernant le domaine ;
 mx : les serveurs de messagerie ;
 ns : les serveurs de noms ;
 soa : la zone Start of Authority ;
 hinfo : infos sur l’hôte ;
 txt : texte de description ;
 ptr : zone reverse de l’hôte ;
 axfr : liste de tous les hôtes de la zone.

$ dig free.fr any


L’outil host fournit le même résultat de manière peut-être un peu plus simple.

$ host free.fr
free.fr has address 212.27.48.10

12/52
free.fr mail is handled by 10 mx1.free.fr.
$ host -t any free.fr
free.fr has address 212.27.48.10
free.fr name server freens1-g20.free.fr.
$ host -a free.fr

;; ANSWER SECTION:
free.fr. 86140 IN A 212.27.48.10
free.fr. 86140 IN NS freens1-g20.free.fr.
free.fr. 86140 IN SOA freens1-g20.free.fr.

4.2. Commande nslookup
La commande nslookup est officiellement abandonnée et remplacée par la commande dig. nslookup est cependant
presque universellement disponible.
SYNTAXE
nslookup [option …] nom [serveur]
Les paramètres nom et Serveur ont les mêmes significations que ceux de la commande host.
EXEMPLES
Les lignes de commande suivantes sont équivalentes et assurent la résolution du nom d'hôte « www.exemple.com » à
partir du serveur DNS par défaut.
nslookup www.exemple.com
nslookup www.exemple.com a
nslookup -type=A www.exemple.com
Même exemple mais en interrogeant le serveur DNS « dns.exemple.com ».
nslookup www.exemple.com dns.exemple.com
Les lignes de commande suivantes sont équivalentes et assurent la résolution inversée de l'hôte d'adresse IP
192.168.1.10
nslookup 192.168.1.10
nslookup 10.1.168.192.in-addr.arpa ptr
nslookup -type=ptr 10.1.168.192.in-addr.arpa
5. Sécurité
Dans un système informatique ouvert sur Internet, le service DNS est un service critique. En effet :
− la non disponibilité du serveur DNS entraînera la non disponibilité des serveurs web et de messagerie ;
− une intrusion dans le serveur DNS, entraîne la collecte d'informations privées telles que les adresses IP d'autre
serveurs, des postes clients, des commutateurs, etc ;
− si les informations du DNS sont empoisonnées (modifiées), un pirate peut rediriger les internautes vers ses
serveurs au lieu des serveurs réels. Le problème sera plus grave s'il y a des transactions financières.
Pour renforcer la sécurité de ce service, les opérations suivantes peuvent être appliquées :
− l'exécution du démon correspondant dans un environnement enfermé ;
− l'utilisation des listes de contrôle d'accès (ACL : Access control List) ;
− la signature des transactions (TSIG : Transaction SIGnature) et
− la signature des informations des zones (DNSSec : DNS Security).

13/52
Chap.11 : Services web
1. Serveur web
Un serveur web est un fournisseur de service http. Un serveur http est un serveur hébergeant un ou plusieurs sites
Web.
Un serveur web est donc un « simple » logiciel capable d'interpréter les requêtes HTTP arrivant sur le port associé au
protocole HTTP (par défaut le port 80), et de fournir une réponse avec ce même protocole.

Client http
BD (fichiers html)

Les principaux serveurs web sur le marché sont entre autres :


Pour un usage professionnel:
 Apache (serveur http qui équipe tous nos serveurs)
 Serveur web IIS (Internet Information Server)
2. Le serveur Web Apache2
2.1. Installation
 Préparer son serveur
Se connecter en root sur le serveur puis effectuer une mise à jour :
apt-get update
apt-get upgrade
Une fois le serveur à jour, on peut commencer à installer les différents services nécessaires sur notre serveur.
Attention, pensez à redémarrer les services après chaque installation ou reconfiguration :
# /etc/init.d/nom_service restart
 Installer apache 2
Il nous faut installer un serveur HTTP qui va s'occuper d'afficher nos différentes pages. Pour cela, je vous propose
d'installer l'un des serveurs les plus utilisés et les plus connus : Apache. Nous installerons ici sa version 2.
# apt-get install apache2
En installant le service Apache2, un service web de base est déjà disponible en ligne dans le fichier
/etc/apache2/sites-enabled/000-default.
Tester l'installation d'apache en tapant: http://xxx.xxx.xxx.xxx/ (IP du serveur), vous devriez
obtenir le message : it works !!
2.2. L’arborescence du serveur Web Apache2
Les fichiers de paramétrage se trouvent sous linux dans le répertoire /etc/apache2, les fichiers de données (les pages
web) dans /var/www et les fichiers logs dans /var/log/apache2.
apache2.conf -> fichier de base du serveur, contient des « includes » (voir plus bas)
conf.d -> paramétrage du serveur d’une manière globale : par exemple pour la sécurité, le caracter-set …
envvars -> les variables environnement
httpd.conf -> fichier présent uniquement pour la compatibilité avec certains logiciels qui ont besoin de voir ce fichier,
même vide. Plus utilisé.
magic -> permet de définir le type de fichier d’après son extension, pour que le serveur adapte sa réponse au client
(choix du type MIME renvoyé, la langue,..)
mods-available -> les modules supplémentaires disponibles

14/52
mods-enabled -> les modules supplémentaires activés
.htaccess -> fichier de configuration dynamique du serveur. Son emplacement spécifie le répertoire qu’il paramètre.
ports.conf -> pour définir et ajouter des ports d’écoute du serveur
sites-available -> les fichiers de configuration des sites disponibles, mais pas en ligne
sites-enabled -> les fichiers de configuration des sites en ligne commenter default port * :80
Un des points forts d’Apache est son architecture modulaire. Il est facile d’ajouter ou de supprimer des modules selon
les besoins : database, langage de programmation du style Python, Perl, PHP, Java, ….
Après chaque modification des fichiers de configuration, redémarrer le serveur avec la commande :
# service apache2 reload
Le chargement des fichiers se fait par « include » dans le fichier apache2.conf
Include mods-enabled/*.load -> le chargement du module dans le serveur
Include mods-enabled/*.conf -> le fichier de paramétrage du module
Include httpd.conf
Include ports.conf
Include conf.d/
Include sites-enabled/
2.3. Fichiers log
Par défaut sous Debian, Apache enregistre les erreurs dans le fichier /var/log/apache2/error.log. Quand
quelque chose ne fonctionne pas, ce fichier fournit souvent des pistes pour trouver la solution.
Il enregistre également toutes les requêtes dans /var/log/apache2/access.log.
3. Configuration du serveur
La configuration du serveur se trouve dans /etc/apache2/apache2.conf. Ce fichier contient des instructions
Include qui permettent de déplacer certaines parties de la configuration dans d'autres fichiers. Debian utilise cette
fonctionnalité pour les modules (comme PHP) et la gestion des serveurs virtuels :
3.1. Configuration des modules
Le répertoire /etc/apache2/mods-available contient les modules installés. Le repertoire
/etc/apache2/mods-enabled contient les modules actives. Les modules actifs sont des liens symboliques vers les
modules installés.
Pour activer ou désactiver un module, on peut manipuler directement les liens ou utiliser les commandes a2enmod et
a2dismod.
3.2. Configuration des sites
De la même manière, le répertoire /etc/apache2/sites-available contient les sites web disponibles et
/etc/apache2/sites-enabled les sites actifs. Il en existe un préinstallé : le site default.
Les sites peuvent s'activer ou se désactiver en manipulant les liens dans sites-enabled ou en utilisant a2ensite
et a2dissite.
3.3. Quelques directives classiques
La syntaxe d'Apache est assez simple. On trouve des blocs (ou contextes) comme par exemple :
<VirtualHost ...> # début de bloc VirtualHost
...
<Directory ...> # début de bloc Directory
...
</Directory> # fin de bloc Directory
...
</VirtualHost> # fin de bloc VirtualHost
Et des directives comme par exemple :
Include /etc/apache2/sites-enabled/

15/52
3.4. Paramètres généraux
Les paramètres qui sont (en général) valable pour tous les serveurs se trouve dans apache2.conf :
User www-data : fixe l’utilisateur qui peut posséder des scripts et données sensibles.
Group www-data : fixe le groupe qui peut posséder des scripts et données sensibles. Si on veut utiliser un utilisateur à
posséder (par exemple) des scripts cgi, on doit ajouter cet utilisateur à groupe www-data par adduser.
AccessFileName .htaccess : Cette clause fixe le nom du fichier (par défaut .htaccess) à trouver dans un répertoire pour
que l’accès de ce répertoire soit protégé, en imposant à l’utilisateur une authentification par nom et mot de passe. Ces
comptes sont spécifiques à Apache et n’interfèrent pas avec les comptes Linux.
Port 80 : Apache écoute sur le port tcp usuel
ServerRoot /etc/apache2 : Il s’agit du répertoire où le serveur trouvera son répertoire de configuration. On trouve dans
/etc/apache2, un lien vers /var/log/httpd/access log, le fichier-journal des accès aux ressources, réussis ou non (le
consulter)
PidFile /var/run/httpd.pid : C’est le fichier où le serveur en exécution stocke son premier numéro de processus (PID), ce
qui peut être utile à d’autres processus.
ErrorLog /var/log/apache2/error.log : C’est le fichier qui contient l’historique des erreurs qui se sont produites (exemple
: script cgi qui n’a pas marché...).
3.5. Paramètres spécifiques à chaque serveur
Les paramètres spécifiques à chaque serveur (qui se trouvent dans sites-enabled sont (liste non exhaustive) :
DocumentRoot /var/www/ : fixe la racine du serveur Web, c’est-à-dire le répertoire de base où sont cherchées par
défaut les pages html, lorsque l’URL ne comporte pas de chemin de répertoire
DirectoryIndex index.html index.php index.htm... : Il est courant d’omettre le nom du fichier de la page d’accueil d’un
site ou de l’un de ses sous-répertoires. Pour ne pas retourner systématiquement une erreur 404 signalant une adresse
erronnée, le serveur possède une liste standard de noms de fichiers qu’il s’efforce de trouver dans le répertoire. Cette
liste ordonnée est indiquée par la clause DirectoryIndex
ServerAdmin webmaster@localhost: S’il a un problème, le serveur écrit un message à cette adresse CustomLog
/var/log/apache2/access.log combined
CustomLog /var/log/apache2/access.log combined : Définit le fichier qui contient l’historique des connections, des
clients, des dates, de l’origine (referer site) de la connexion, ainsi que le format pour mémoriser ces informations (ici le
format combined).
4. Virtual hosts
Un Virtual Host est un serveur web servi par Apache2. Les Virtual Hosts sont gérés comme des modules. Chaque site
obtient un fichier de configuration qui lui est propre. En ajoutant une adresse IP (alias) à une interface virtuelle, on peut
créer plusieurs serveurs virtuels.
Création des interfaces virtuelles dans linux :
Dans le fichier /etc/network/interfaces ajouter (après l’interface eth0) 2 interfaces eth0:0 et eth0:1 en y adressant les
paramètres IP :

16/52
Activer les deux interfaces virtuelles
# ifup eth0:0
# ifup eth0:1
Puis vérifier avec la commande ifconfig que les 3 interfaces sont bien disponibles.
Le répertoire /etc/apache2/sites-available vous permet de préparer les sites avant de les mettre en ligne.
Le plus simple est d’utiliser le fichier par défaut (default, le Default Virtual Host), de le copier et de le modifier selon vos
besoins.
Nous prenons pour exemples les noms de www2 et www3 pour nos deux sites virtuels. Créer un fichier www2 dans le
répertoire /etc/apache2/sites-available .
Les adresses IP à utiliser sont celles configurées précédemment dans le fichier
/etc/network/interfaces : eth0:0 , eth0:1

17/52
Le premier site web virtuel www2 :

Dans ce fichier vous retrouvez :


- l’adresse IP du 1er serveur web virtuel www2 accessible sur le port 80 (http)
- l’adresse email de l’administrateur système
- le répertoire de stockage du serveur web www2
- le nom par lequel le serveur sera accessible ( répertoire.nom-de-votre-domaine)
- l’emplacement des fichiers de log
Le deuxième site web virtuel www3 :

Pour activer les 2 sites taper la commande suivante :


# a2ensite www2
# a2ensite www3
Créer les répertoires /var/www/www2 et /var/www/www3
Copier le fichier index.html qui se trouve dans /var/www dans chacun de ces répertoires.

18/52
Puis modifier le fichier index.html comme ceci par exemple pour le www2 :
cd /var/www/www2
# cat index.html
<html><body><h1>Bienvenue sur ce site www2 de grp5.info-msj.net</h1>
<p>Page par défaut pour site www2.grp5.info-msj.net</p>
</body></html>

Modifier ensuite le fichier /etc/apache2/ports.conf :

L’adresse IP des 2 serveurs web virtuels www2 et www3 accessibles sur le port 80 (http)

19/52
Lancer enfin le service apache :
# service apache2 restart
5. Vérification du fonctionnement du server HHTP WEB Apache 2

Tester enfin sur le navigateur web l’accès au site www2 et www3 :

20/52
Chap.12 : Messagerie
Serveur Postfix
Postfix est un serveur de messagerie électronique et un logiciel libre. Il se charge de la livraison de messages
électroniques et a été conçu comme une alternative plus rapide, plus facile à administrer et plus sécurisée que
l'historique Sendmail. Il permet de gérer presque tous les cas d'une utilisation professionnelle et il remplace idéalement
toutes sortes de solutions moins libres.
Afin d'optimiser l'analyse de courriels, Postfix permet de déléguer la gestion de ceux-ci à un processus externe, qui se
chargera de déterminer si le courriel est accepté ou refusé (très utile dans les systèmes anti-pourriel).

Etapes d’envoi d’emails


Principe de base
Une boîte aux lettres est représentée par son adresse e-mail de type : exemple@nomdudomaine.com. Si le
domaine n'est pas renseigné alors c'est une boîte aux lettres locale au serveur.
Il existe 3 composantes du système de messagerie :
 le MUA (Message User Agent) : il est chargé de lire et envoyer le courrier. C'est la partie visible pour l'utilisateur.
On y retrouve par exemple : Thunderbird, Outlook, Mail et bien d'autres…
 le MTA (Message Transfer Agent) : il a pour but de transférer le courrier d'une machine à une autre. On peut
citer Postfix, Qmail, Sendmail, …
 le MDA (Message Delivery Agent) : il délivre le message provenant du MTA dans une boîte aux lettres. C'est
notamment le rôle de Procmail.
Ensuite s'ajoutent les protocoles inhérents à la messagerie tels que SMTP, POP, IMAP pour ne citer que les plus connus :
 SMTP : (Simple Mail Transfert Protocol) ou encore protocole simple de transfert de courrier en français est un
protocole de communication qui est utilisé pour transférer le courrier électronique vers les serveurs de message
électronique, il est simple d’ailleurs comme indiqué sur son nom, son principal objectif est de router les mails à
partir de l'adresse du destinataire, il va aussi vérifier l'existance de celui ci d'abord avant d'envoyer le corps du
message. Un serveur SMTP est un service qui écoute sur le port 25.

21/52
 POP : Le protocole POP qui signifie Post Office Protocol ou encore protocole de bureau de poste en français
permet de récupérer son courrier sur un serveur distant. Ce protocole est utile pour les personnes n’étant pas
connectées à internet en permanence afin de consulter les mails reçus hors connexion.
 IMAP : IMAP signifie Internet Message Access Protocol, tout comme POP, c'est un protocole de récupération de
mails. Mais ce qui fait sa particularité c'est qu'avec le protocol IMAP, les mails restent stockés dans des dossiers
sur le serveur et permet de proposer de nombreuses fonctionnalités très pratiques comme par exemple
recopier sur le serveur des messages qui sont en local, effacer ou déplacer des messages sans les lire avec des
règles de tri automatique.

Installation
# apt-get install postfix
Au cours de l'installation du paquet, plusieurs questions sont posées par l'intermédiaire de Debconf. Les réponses
permettront de générer un /etc/postfix/main.cf
A la première question, répondre “Site Internet” qui est adapté à un serveur qui reçoit et envoie le courrier directement
à ses destinataires.
La deuxième question porte sur le nom complet de la machine employée pour générer une adresse email depuis un
nom d'utilisateur local. En gros il faut mettre la partie suivant l'arobase @. Par exemple pour john@exemple.com, la
réponse est exemple.com.
Configuration
Fichier de configuration postfix
Le fichier de configuration de Postfix est le fichier /etc/postfix/main.cf
Il est important de connaitre quelques principaux paramètres:
myhostname: Ce paramètre désigne le nom complet de l'ordinateur, le FQDN du serveur.
mydestination: il convient habituellement ici de donner tous les noms de domaines pour lesquels cette machine fait
office de serveur MX.
mynetworks: indique les réseaux à envoyer du courrier par l'intermédiaire de cette machine. Par défaut Postfix est
configuré pour n'accepter que des courriers issus de la machine elle-même. Il faut généralement ajouter le réseau local.
home_mailbox: indique le répertoire de stockage du courrier qui pourra être rapatrier plus tard avec POP ou IMAP.
inet_interfaces ;depuis quelles interfaces réseaux lire les requêtes
myorigin : Quel domaine afficher dans le courrier sortant 
alias_maps : Gestion des aliases et de la re-direction des mails
Exemple de configuration
En général, on ne change pas les autres paramètres, sauf pour des cas plus spécifiques à adapter selon vos besoins. Voici
un exemple du fichier /etc/postfix/main.cf
...
myhostname = debian.mondomaine.local
mydestination = exemple.com, mail.exemple.com, mondomaine.local,
debian.mondomaine.local, localhost.mondomaine.local , localhost
mynetworks = 127.0.0.0/8 192.168.0.0/24
inet_interfaces = all
myorigin = $mydomain
alias_maps = hash:/etc/postfix/aliases
...
Test de la configuration

22/52
Il faut au préalable redémarrer Postfix:
# /etc/init.d/postfix restart
On suppose un utilisateur John.
# adduser john
Répondre aux questions.
Si la commande mail n'est pas installée, installez le paquet mailutils
# apt-get install mailutils
# su john
Maintenant, tentez d'envoyer un mail à john@exemple.com Puis consulter:
# mail
Il devrait y avoir un mail reçu. Postfix fonctionne.
Configuration serveur POP
Le protocole de récupération POP est le plus simple à mettre en œuvre pour récupérer son courrier électronique.
Nous allons utiliser courier-pop, un serveur POP très simple à mettre en œuvre. (Nous ne détaillerons pas la
configuration du serveur dans cet article.)
# aptitude install courier-pop
Nous créons ensuite un répertoire dans le répertoire utilisateur.
# su john
# cd /home/john
# maildirmake Maildir
Nous devons indiquer à Postfix de rediriger les mails reçus vers le nouveau répertoire de stockage des mails des
utilisateurs. Il faut éditer le fichier /etc/postfix/main.cf et ajouter à la fin
...
home_mailbox = Maildir/
...
On relance Postfix pour prendre en compte la nouvelle configuration
# /etc/init.d/postfix restart
C'est prêt. Vous pouvez configurer votre logiciel de courrier électronique préféré. Le nom d'utilisateur et le mot de
passe sont les mêmes que les comptes utilisateurs locaux du serveur.
Restrictions à la réception et à l'envoi
Avec le nombre croissant de messages non sollicités ( spams), il est nécessaire d'être de plus en plus vigilant et strict
sur les messages que le serveur accepte. Voici quelques stratégies intégrées à Postfix.
Exemple de restriction en fonction de l'adresse du client dans le fichier /etc/postfix/main.cf:
smtpd_client_restrictions = permit_mynetworks,
warn_if_reject reject_unknown_client,
check_client_access hash:/etc/postfix/access_clientip,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org
Dans ces listes de règles sont évaluées dans l'ordre, de la première à la dernière. L'ordre a donc une importance et
l'inversion de deux règles peut mettre en place un comportement différent.
permit_mynetwork: placer en tête, permet d'accepter toute les machines sur réseau local.

23/52
reject_unknown_client: Refuse les machines dépourvues de configuration DNS valide. Cette restriction est trop sévère,
alors elle est précédée de warn_if_reject pour transformer l'avertissement en simple refus enregistré dans les logs.
check_client_access: permet de mettre en place une liste noire et une liste blanche.
reject_rbl_client: Indique un serveur distant de listes noires.

Création du fichier des aliases « /etc/postfix/aliases »


Le fichier des alias permet de re-diriger une adresse vers une autre boite (même externe) ou d’écrire une même adresse
sous plusieurs formes.
La création de la table des aliases s’effectue avec la commande spécifique «  postalias  » et en mettant le signe « : »
comme séparateur de colonne alors que les autres tables (canonical, transport...) sont créées avec la commande
«  postmap  » sans le signe «  : » comme séparateur :
Éditer le fichier « /etc/postfix/aliases » et saisir les informations sous la forme suivante :
root :        pglinux
pglinux :        tony.galmiche@pg.com
tg :        tony.galmiche@pg.com
Créer la table à partir du fichier texte :
Postalias /etc/postfix/aliases
ATTENTION : Après chaque modification de ce fichier, il faut recréer la table et recharger le fichier de configuration :
postalias /etc/postfix/aliases
/etc/init.d/postfix reload

24/52
Chap. 13 : Gestion des clients réseau
13 .1 : Mise en place d'un Serveur DHCP sous Linux
1. Présentation
Un serveur DHCP (Dynamic Host Configuration Protocol) a pour rôle de distribuer de façon automatique, des adresses IP
à des clients pour une durée déterminée.
Au lieu d'affecter manuellement à chaque hôte une adresse statique, ainsi que tous les paramètres tels que (serveur de
noms, passerelle par défaut, nom du réseau), un serveur DHCP alloue à un client, un bail d'accès au réseau, pour une
durée déterminée (durée du bail). Le serveur passe en paramètres au client toutes les informations dont il a besoin.
2. Fonctionnement

Quand une machine vient de démarrer, elle n'a pas de configuration réseau (même pas de configuration par
défaut), et pourtant, elle doit arriver à émettre un message sur le réseau pour qu'on lui donne une vraie
configuration. La technique utilisée est le broadcast : pour trouver et dialoguer avec un serveur DHCP, la
machine va simplement émettre un paquet spécial, dit de broadcast, sur l'adresse IP 255.255.255.255 et sur le
réseau local.
La première requête émise par le client est un message DHCPDISCOVER.
Le serveur répond par un DHCPOFFER, en particulier pour soumettre une adresse IP au client.
Le client établit sa configuration, demande éventuellement d'autres paramètres, puis fait un DHCPREQUEST
pour valider son adresse IP.
Le serveur répond simplement par un DHCPACK avec l'adresse IP pour confirmation de l'attribution.
Normalement, c'est suffisant pour qu'un client obtienne une configuration réseau efficace, mais cela peut être
plus ou moins long selon que le client accepte ou non l'adresse IP ou demande des infos complémentaires...
3. Installation et utilisation de base du serveur :
Pour installer le serveur DHCP, il suffit de taper la commande :
aptitude install dhcp3-server
Pour démarrer le serveur, tapez :
/etc/init.d/dhcp3-server start
Pour arrêter le serveur, tapez :
/etc/init.d/dhcp3-server stop
Pour redémarrer le serveur, tapez :

25/52
/etc/init.d/dhcp3-server restart
La configuration du serveur se fait à partir du fichier /etc/dhcp/dhcpd.conf (ce fichier peut varier selon
la version de DHCP et la distribution de linux).
Commencez par faire une sauvegarde de ce fichier avec cette commande :
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.old
Pour configurer votre serveur vous aller éditer le fichier /etc/dhcp/dhcpd.conf avec le logiciel vi :
vi /etc/dhcp/dhcpd.conf
A chaque fois que vous voulez tester un changement de configuration, relancez le serveur :
/etc/init.d/dhcp3-server restart
Avec un client Linux pour redemander une adresse au serveur DHCP on utilise la commande :
dhclient
4. Configuration du serveur DHCP :
Instructions :
• L'adresse de mon réseau est 192.168.10.0/24
• Je voudrais distribuer des adresses IP dans la plage d'adresses suivante : de 192.168.10.101 à 192.168.10.110
• L'adresse de ma passerelle sera 192.168.10.254
• L'adresse de mon serveur DNS est 192.168.10.252
• Le domaine DNS auquel j'appartiens est torcylac.greta.fr
• Le serveur Windows doit toujours obtenir l'adresse 192.168.10.1
• L'imprimante doit toujours obtenir l'adresse 192.168.10.101

Pour effectuer cette configuration, il faut aller sur le serveur et modifier les directives du fichier
/etc/dhcp/dhcpd.conf . Dans ce fichier, toutes les lignes commençant par # ne sont pas prises en
compte.
Exemple de fichier de configuration à modifier selon vos besoins :
# CONFIGURATION GENERALE
# Durée du bail par défaut et du bail maximum
default-lease-time 7200;
max-lease-time 14400;
# Adresse des serveurs DNS et nom du domaine auquel on appartient
option domain-name-servers 192.168.10.252;
option domain-name " torcylac.greta.fr ";
# CONFIGURATION D'UN (SOUS-)RESEAU
# On peut déclarer plusieurs réseaux si on en a besoin
subnet 192.168.10.0 netmask 255.255.255.0 {
# Plage des adresses IP que l'on peut distribuer
range 192.168.10.101 192.168.10.110;
# Durée du bail par défaut et du bail maximum
default-lease-time 7200;
max-lease-time 14400;
# Masque de sous-réseau, broadcast, passerelle par défaut

26/52
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.255;
option routers 192.168.10.254;
# Adresse des serveurs DNS et nom du domaine
option domain-name-servers 192.168.10.252;
option domain-name " torcylac.greta.fr ";
}

5. Réservation d'adresses MAC :

Pour réserver une adresse MAC on va déclarer les machines avec la directive host.
# CONFIGURATION D'UN GROUPE DE MACHINES CONNUES
group
{
# Le nom à droite de host sera aussi le nom DNS de l'hôte
use-host-decl-names on;
# CONFIGURATION D'UNE MACHINE REPEREE PAR SON @ MAC
# On peut déclarer plusieurs machines si on en a besoin
# Déclaration de l'imprimante
host imprimante {
# Il sera repéré par l'adresse MAC de sa carte réseau
hardware ethernet 00:80:C8:59:8F:63;
# Il aura toujours l'adresse IP 101
fixed-address 192.168.10.101;
}
# Idem pour la machine server
host server {
hardware ethernet 00:60:52:07:42:fa;
fixed-address 192.168.10.1;
}
}

6. Configuration des clients


Par défaut l’attribution des adresses IP est configurée en DHCP sur les clients. Pour en être sûr il faudra vérifier
le fichier “ /etc/network/interfaces “

27/52
7. Vérification du bon fonctionnement :
Pour vérifier que le serveur DHCP est en fonctionnement, vous pouvez regarder si le DHCP est dans la liste des
processus de Linux :
ps ax
Si le serveur est en échec, un message d'erreur aura été noté dans le journal du système Linux.
Pour voir le journal Linux il faut taper :
more /var/log/syslog
Pour vérifier côté client que les hôtes reçoivent bien des adresses, il faut faire :
– Sous Windows :
ipconfig /release
ipconfig /renew
– Sous Linux :
dhclient
Enfin pour vérifier côté serveur que les baux ont bien été attribués, on peut regarder le fichier des baux
d'adresses :
more /var/lib/dhcp3/dhcpd.leases
8. Rôle de l'agent de relais DHCP
 Comme les clients contactent les serveurs DHCP à l'aide d'une diffusion, dans un inter-réseau, vous
devrez théoriquement installer un serveur DHCP par sous-réseau. Si votre routeur prend en charge la
RFC 1542, il peut faire office d'agent de relais DHCP, et ainsi relayer les diffusions de demande
d'adresse IP des clients DHCP dans chaque sous-réseau.
 Si votre routeur ne prend pas en charge la RFC 1542, une machine serveur peut être configurée comme
agent de relais DHCP, il suffira de lui spécifier l'adresse du serveur DHCP. Les demandes des clients
DHCP seront relayées vers le serveur DHCP par l'agent de relais DHCP qui transmettra les offres aux
clients.

28/52
Agent de relais DHCP dans un réseau routé

• Installation
Installez le paquet isc-dhcp-relay.
apt-get install isc-dhcp-relay
• Configuration
Ouvrez le fichier /etc/default/isc-dhcp-relay
Editez ensuite la ligne SERVERS afin d’ajouter une liste de serveurs DHCP autoritaires et la ligne
INTERFACES afin de spécifier les interfaces sur lesquelles votre DHCP va écouter.
SERVERS="10.1.1.1"
INTERFACES="eth0"
Relancez ensuite le service isc-dhcp-relay
service isc-dhcp-relay restart

29/52
13.2 : Mise en place d’un serveur LDAP
1 Serveur LDAP
1.1 Définition :

Un annuaire LDAP (Lightweight Directory Access Protocol) est un annuaire électronique. Il peut contenir
diverses informations sur divers objets du réseau. Par exemple : les utilisateurs (nom, prénom, adresse,
fonction, numéro de téléphone...)
Un annuaire LDAP sert pour :
o la centralisation de la gestion des objets du réseau
o la centralisation de l’authentification des utilisateurs
o la distribution des certifications
o autres
LDAP fournit à l'utilisateur des méthodes lui permettant de :
• se connecter
• se déconnecter
• rechercher des informations
• comparer des informations
• insérer des entrées
• modifier des entrées
• supprimer des entrées
LDAP fonctionne sur le port TCP 389.
Un serveur LDAP utilise un protocole assurant une communication :
- serveur-client pour permettre aux utilisateurs de bénéficier des avantages d’un serveur LDAP.
- Serveur-serveur pour permettre un échange des données (processus de réplication)
1.2 L'arborescence d'informations (DIT : Directory Information Tree)
LDAP organise les données de manière hiérarchique dans l'annuaire. Ceci signifie que toutes les informations
découlent d'une seule et même "racine".

Termes à connaître
Avant de poursuivre, voici quelques termes à connaître :

30/52
• Chaque élément est appelé une entrée (an entry). Une entrée peut être un branchement (un noeud, a node) ou
un élément terminal (une feuille, a leaf).
• Chaque élément possède un DN (Distinguished Name). Le DN est le nom complet de l'élément qui permet de le
positionner dans l'arborescence. Il est unique dans l'annuaire.
Exemple : "cn=ventes,ou=groups,dc=martymac,dc=com"
• Chaque élément possède également un RDN (Relative Distinguished Name). Le RDN est la partie du DN de
l'élément qui est relative au DN supérieur. Le RDN d'un élément ne permet pas de l'identifier de manière
absolue dans l'annuaire.
Exemple : "cn=ventes"
• La racine est l'élément supérieur de tous les autres, c'est la base de l'arborescence. On l'appelle root en anglais,
parfois on parle de "root DN".
Exemple : "dc=martymac,dc=com"
Les DN de chaque entrée sont composés au moins d'un attribut de l'élément (par exemple "cn" ou "uid") et de
sa valeur. Un attribut est l'une des caractéristiques de cet élément.
Remarquez que la racine choisie ici est composée du nom du domaine où est hébergé notre serveur LDAP,
martymac.com, décomposé en "dc" (Domain Components) pour obtenir dc=martymac,dc=com.
L'arbre se découpe ensuite en deux "ou" (Organisational Units) qui constituent deux branchements : "users" et
"groups", dans lesquels nous trouvons ensuite les entrées feuilles de notre arbre : les utilisateurs et les groupes.
Chacune des entrées de notre arbre correspond à un type de données particulier, défini par une classe d'objet.
1.3 Les données contenues dans l'annuaire (modèle d'information)
1.3.1 Les attributs
Un attribut est une valeur contenue dans une entrée. Une entrée peut bien entendu contenir plusieurs attributs.
Prenons l'exemple de l'entrée LDAP complète d'un compte utilisateur POSIX :

Ceci correspond à une entrée complète, extraite par une interrogation de l'annuaire. Le format affiché est le
format LDIF, nous y reviendrons.
Nous pouvons observer ici des attributs nommés "dn", "objectClass", "cn", "uid", ...
1.3.2 Les classes d'objets

Un objectClass définit un regroupement d'attributs obligatoires ou autorisés pour une entrée. Une entrée peut
posséder un ou plusieurs objectClass. Ce sont ces objectClass qui définissent la présence de tous les autres
attributs.

31/52
Ici, l'objectClass "posixAccount" rend obligatoire les attributs cn, uid, uidNumber, gidNumber et
homeDirectory. Il rend possible l'utilisation des 4 autres attributs userPassword, loginShell, gecos et
description.
1.3.3 Les schémas
La syntaxe et la liste des attributs connus de l'annuaire sont écrits dans ce que l'on appelle les "schémas".
Concrètement, un schéma est un fichier qui décrit un à un les attributs disponibles (leur nom, leur type, etc...),
ainsi que les objectClass qui y font appel. Au démarrage du serveur LDAP, le ou les fichiers de schéma
spécifiés dans sa configuration seront chargés.
Dans notre exemple, l'objectClass posixAccount est défini dans le fichier /etc/ldap/schema /nis.schema.
1.3.4 Le format LDIF

Les données contenues dans l'annuaire sont présentées dans un certain format : il s'agit du format LDIF (LDAP
Data Interchange Format).
Toute interaction avec un annuaire se fait par le biais de ce format : l'ajout, la modification, la suppression
d'entrées, l'interrogation de l'annuaire y compris.
Dans ce format, chaque entrée constitue un paragraphe, et, au sein de chaque paragraphe, chaque ligne constitue
un attribut. Voici un exemple un peu plus complet, incluant le groupe de notre utilisateur :

2 OpenLDAP
Après avoir étudié les nombreux concepts liés aux annuaires LDAP, passons désormais à la pratique et étudions
l'implémentation libre la plus utilisée : OpenLDAP.
2.1 Installation

Les paquets à installer sont les suivants : slapd et ldap-utils.


# apt-get install slapd ldap-utils
2.2 Les outils fournis par OpenLDAP
Le projet OpenLDAP implémente un serveur LDAP, mais également les commandes clientes permettant de
manipuler des informations contenues dans l'annuaire.

32/52
2.2.1 Les commandes liées au serveur
Le paquet slapd fournit les binaires suivants :
# dpkg -L slapd | grep bin
/usr/sbin
/usr/sbin/slapd
/usr/sbin/slurpd
/usr/sbin/slapadd
/usr/sbin/slapcat
/usr/sbin/slapdn
/usr/sbin/slapindex
/usr/sbin/slappasswd
/usr/sbin/slaptest
Chacune de ces commandes permet d'agir directement au niveau du serveur OpenLDAP, notamment au niveau
de sa base de données. Il est donc impératif de les exécuter sur le serveur où fonctionne le serveur OpenLDAP.
Démons :
• slapd : le démon OpenLDAP !
• slurpd : le démon de réplication
Commandes de manipulation de la base (backend) gérée par OpenLDAP
• slapindex : crée les index au sein de la base
• slapcat : effectue un dump (une copie intégrale) de la base
• slapadd : ajoute des entrées LDIF dans la base
• slappasswd : utilitaire de conversion de mots de passe
Commandes de test/validation :
• slaptest : teste la validité du fichier de configuration slapd.conf
• slapdn : teste la conformité d'un DN donné en ligne de commande
2.2.2 Les commandes clientes

Le paquet ldap-utils fournit les commandes suivantes :


# dpkg -L ldap-utils | grep bin
/usr/bin
/usr/bin/ldapsearch
/usr/bin/ldapmodify
/usr/bin/ldapdelete
/usr/bin/ldapmodrdn
/usr/bin/ldappasswd
/usr/bin/ldapwhoami
/usr/bin/ldapcompare
/usr/bin/ldapadd
Chaque commande cliente utilise le protocole LDAP pour agir sur l'annuaire. Elles peuvent donc, cette fois-ci,
être utilisées à distance.
• ldapsearch : effectue une recherche au sein de l'annuaire
• ldapadd : ajoute une entrée
• ldapdelete : supprime une entrée
• ldapmodify : modifie une entrée (ajoute/suppr. un attribut, ajoute/suppr. une entrée, ...)
• ldapmodrdn : modifie le rdn d'une entrée (renomme une entrée)
• ldappasswd : modifie le mot de passe d'une entrée LDAP
• ldapwhoami : affiche avec quel utilisateur le binding a eu lieu
• ldapcompare : permet de comparer l'attribut d'une entrée à une valeur spécifiée

33/52
2.3 Configuration du serveur
L'intégralité de la configuration du serveur OpenLDAP (le démon slapd) s'effectue en modifiant le fichier
/etc/ldap/slapd.conf (ou /etc/ldap/ldap.conf pour les versions récentes de la famille Debian)
Voici un exemple de configuration, ainsi que l'explication des directives :

34/52
Utilisez votre éditeur préféré, puis sauvegardez votre configuration. Testez-là ensuite pour voir si aucune erreur
n'a été commise :
# slaptest -f /etc/ldap/slapd.conf
config file testing succeeded
Enfin, (re)-démarrez le serveur LDAP :
# /etc/init.d/slapd restart
3 Administration du serveur
Notre serveur est désormais configuré. Nous allons maintenant voir comment nous pouvons l'administrer.
3.1 Slapindex

L'opération de génération des index n'est à effectuer qu'une seule fois et ceci se fait par le biais de la commande
slapindex.
# slapindex
3.2 Slapcat
Elle effectue un "dump" de la base LDAP au format LDIF. Il est conseillé de l'utiliser régulièrement pour
effectuer des sauvegardes de notre annuaire.
# slapcat > sauvegarde.ldif
3.3 Slapadd

Elle est typiquement utilisée pour restaurer une sauvegarde effectuée avec slapcat :
# slapadd < sauvegarde.ldif
3.4 Arrêt et démarrage du serveur
L'arrêt et le démarrage du serveur LDAP se font par le biais du script /etc/init.d/slapd :
/etc/init.d/slapd [start|stop|restart]
L'administration du serveur étant terminée, je vous propose de le démarrer et de découvrir les commandes
clientes fournies par OpenLDAP :
# /etc/init.d/slapd start
4 Utilisation des outils clients
4.1 Ajouter une entrée : ldapadd
Pour ajouter une entrée dans l'annuaire, il faut utiliser la commande ldapadd. Sa syntaxe est la suivante :
ldapadd -W -D <binddn> -x -H ldap://<serveur> -f <fichier.ldif>
L'option "-W" active la demande de mot de passe pour s'authentifier en tant que <binddn>.

35/52
L'option "-x" permet de ne pas utiliser SASL pour l'authentification. Enfin, le fichier LDIF source doit contenir
une (ou plusieurs) entrée(s) à insérer et l'intégralité de ses (leurs) attributs.
Exemple :
Fichier LDIF à insérer (fichier.ldif) :

Insertion de l'entrée :
# ldapadd -W -D "cn=Manager,dc=martymac,dc=com" -x -H ldap://localhost –f fichier.ldif
Enter LDAP Password:
adding new entry "uid=dupont,ou=users,dc=martymac,dc=com"
4.2 Initialiser l'annuaire

Fichier LDIF à insérer (fichier.ldif) :

36/52
Le fichier ci-dessus comprend :
• l'entrée de la racine (indispensable)
• l'entrée des deux ou : users et groups
• un groupe : utilisateurs
• deux utilisateurs : garfield et odie appartenant au groupe utilisateurs (attr. gidNumber)
Insertion de cette arborescence :
# ldapadd -W -D "cn=Manager,dc=martymac,dc=com" -x -H ldap://localhost –f fichier.ldif
4.3 Rechercher une entrée : ldapsearch

La commande ldapsearch permet d'effectuer une recherche au sein de l'annuaire. Voici sa syntaxe :
ldapsearch -x -H ldap://<serveur> -b <base> [-s portée] [filtre]
[attributs]
Exemples :
On recherche tous les uid commençant par "garf" à partir de la racine de l'annuaire :
ldapsearch -x -H ldap://localhost -b "dc=martymac,dc=com" "(uid=garf*)"
On recherche toutes les entrées ayant un gidNumber égal à 2000 :
ldapsearch -x -H ldap://localhost -b dc=martymac,dc=com "(gidNumber=2000)"
Cette commande nous retourne les 2 utilisateurs, mais aussi le groupe car il possède lui aussi l'attribut
gidNumber. Améliorons notre requête pour ne retourner que les deux comptes utilisateurs :
ldapsearch -x -H ldap://localhost -b dc=martymac,dc=com
"(&(gidNumber=2000)
(objectClass=posixAccount))"
On affiche enfin uniquement leur répertoire home (et pas la totalité de l'entrée comme c'est le cas par défaut) :
ldapsearch -x -H ldap://localhost -b dc=martymac,dc=com
"(&(gidNumber=2000)
(objectClass=posixAccount))" homeDirectory
Le résultat de cette dernière requête est le suivant :
# [...]
# garfield, users, martymac.com
dn: uid=garfield,ou=users,dc=martymac,dc=com
homeDirectory: /home/garfield
# odie, users, martymac.com
dn: uid=odie,ou=users,dc=martymac,dc=com
homeDirectory: /home/odie
# [...]

37/52
4.4 Supprimer une entrée : ldapdelete
La suppression d'une entrée se fait par la commande ldapdelete. Voici sa syntaxe :
ldapdelete -W -D <binddn> -x -H ldap://<serveur> <dn>
Exemples :
Suppression de l'utilisateur odie :
ldapdelete -x -H ldap://localhost -W -D "cn=Manager,dc=martymac,dc=com"
"uid=odie,ou=users,dc=martymac,dc=com"
Suppression de la branche users :
ldapdelete -x -H ldap://localhost -W -D "cn=Manager,dc=martymac,dc=com" -r
"ou=users,dc=martymac,dc=com"
4.5 Modifier une entrée : ldapmodify

La commande ldapmodify permet d'effectuer toutes sortes d'opérations, y compris l'ajout et la suppression
d'entrées.
Sa syntaxe est la suivante :
ldapmodify -W -D <binddn> -x -H ldap://<serveur> -f <fichier.ldif>
Voici une liste (non exhaustive) d'opérations possibles :
• ajouter d'une entrée
• supprimer d'une entrée
• ajouter un attribut
• supprimer un attribut
• modifier un attribut
Ajouter une entrée :
Ajoutons un utilisateur "john".
Fichier LDIF (fichier.ldif) :
dn: uid=john,ou=users,dc=martymac,dc=com
changetype: add
objectClass: account
objectClass: posixAccount
cn: john
uid: john
uidNumber: 10003
Supprimer une entrée :
Fichier LDIF (fichier.ldif) :
dn: uid=john,ou=users,dc=martymac,dc=com
changetype: delete
Ajouter un attribut :
dn: uid=garfield,ou=users,dc=martymac,dc=com
changetype: modify
add: description
description: gros chat paresseux
Supprimer un attribut :

38/52
dn: uid=garfield,ou=users,dc=martymac,dc=com
changetype: modify
replace: description
description: ami fidele de john
4.6 Renommer une entrée : ldapmodrdn
L'outil ldapmodrdn permet de modifier le RDN (uniquement) d'une entrée. Il s'utilise de cette manière :
ldapmodrdn -W -D <binddn> -x -H ldap://<serveur> <dn> <nouveau_rdn>
Exemple :
Pour renommer "garfield" en "pookie", nous pourrions saisir cette commande :
ldapmodrdn -W -D "cn=Manager,dc=martymac,dc=com" -x -H ldap://localhost
"uid=garfield,ou=users,dc=martymac,dc=com" "uid=pookie"
L'attribut "uid: pookie" sera ajouté automatiquement à l'entrée car il compose le nouveau RDN. L'ancienne
valeur de l'uid ("uid: garfield") sera conservée.

39/52
13.3 : Configuration d’un serveur/client NIS
Le service NIS (Network Information System), permet de centraliser les connexions sur un réseau local
Généralités
L'objectif central de tout serveur de fichiers d'un réseau local est de permettre aux utilisateurs du réseau de se
connecter au serveur de fichier sous un compte centralisé au niveau du réseau, et non pas défini machine par
machine et aussi d'accéder à ses fichiers (répertoire personnel, ...)
• NIS maintient une base de données (ou annuaire) centralisée au niveau d'un groupe de machines appelé
domaine NIS.
• Ces informations sont alors stockées dans le répertoire /var/yp/nom-domaine, sous forme d'un ensemble
de fichiers binaires appelés cartes ou maps.
• Les types d'informations que les stations "clientes", viennent chercher sont essentiellement :
• les correspondances entre noms et adresse IP des machines du réseau,
• les vérifications des noms de login, mots de passe et groupe d'appartenance des comptes
utilisateurs existants sur le serveur.
• Toutes ces informations sont contenues habituellement dans les fichiers
• /etc/hosts (annuaire des machines connues),
• /etc/passwd, (annuaires des utilisateurs qui contient les répertoires à la connexion)
• /etc/group (annuaire des groupes)
• et /etc/shadow (mots de passe cryptés).
• Les informations sont contenues dans 6 maps usuels, situés dans /var/yp/nom-domaine, et appelés
• hosts.byname, hosts.byaddr,
• passwd.byname, passwd.byuid,
• group.byname et group.bygid
• ….
• Les applications NIS utilisent les fonctions RPC =Remote Procedure Calls)
• Les fonctions RPC sont gérées par un service appelé portmap.
Configuration du serveur NIS
Installation
▫ Le paquetage à installer est nis (aussi portmap)
sudo apt-get install portmap nis
Son installation va créer des fichiers dans :
 /usr/sbin : les serveurs ypserv et rpc.yppasswd,
 /etc/rc.d/init.d/: les scripts de contrôle ypserv et yppasswd des serveurs
 /etc/yp.conf : le fichier de configuration du serveur
 /var/yp, place des cartes et du fichier Makefile qui permet leur génération
 /usr/lib/yp, autres exécutables .
▫ Il vous sera demandé le nom de votre domaine NIS. Cela peut-être n'importe quoi ; assurez vous juste
qu'il soit identique entre le serveur et les clients.
 Editez "/etc/default/portmap" et commentez la ligne ARGS="-i 127.0.0.2"
 Editez "/etc/default/nis" et définissez la ligne NISSERVER à NISSERVER=master

40/52
 Editez "/etc/yp.conf" et ajoutez une ligne de serveur sur la forme:
ypserver 127.0.0.1
Lancement
▫ Du côté serveur, les services à lancer sont :
 portmap,
 ypserv (le serveur NIS)
 et yppasswd (le service spécialisé dans le changement des mots de passe).
▫ On procède alors au lancement ou à l'arrêt manuel de NIS par :
service portmap start
service ypserv start
service yppasswd start
Configuration
1. Choisir un nom de domaine NIS,
• Le nom de domaine NIS est indépendamment du nom de domaine du réseau,
• et également sans rapport avec un éventuel nom de domaine Samba .
• soit ecole par exemple,
• Supposons de plus que le serveur ait pour adresse IP : 192.168.0.1 avec un masque
255.255.255.0
2. Déclaration du domaine NIS :
• Editer le fichier /etc/sysconfig/network, et y ajouter cette ligne :
NISDOMAIN=ecole
• Ou à partir d’une ligne de commande
#domainname ecole
• Relancer le serveur (service ypserver restart)
• Vérification :
La commande domainname doit obtenir comme réponse ce nom de domaine NIS.
#domainname
ecole
3. Préciser les machines autorisées à accéder au service NIS :
• Editer le fichier /var/yp/securenets et insérer les lignes
# pour permettre l'accès sur le serveur même
255.0.0.0 127.0.0.0
# pour permettre l'accès de toutes les machines du sous-réseau (masque et adresse réseau)
255.255.255.0 192.168.0.0
4. Préciser les informations que NIS doit gérer
• Editer le fichier /var/yp/Makefile et lister sur la ligne commençant par all: les données à gérer :
all: passwd group hosts
NB

41/52
Il est recommandé de ne rien modifier d'autre sauf "si on sait ce que l'on fait ...", car pour l'essentiel il a été
correctement paramétré lors de l'installation de la distribution.
5. Générer les cartes :
• Il s'agit maintenant de créer les 3 cartes (maps) correspondant aux 3 fichiers
• /etc/passwd, /etc/ group et /etc/hosts.
• L'utilitaire /usr/bin/make doit être exécuté par root dans le répertoire du Makefile
# cd /var/yp
# make
Il y a création d'un sous-répertoire /var/yp/ecole (portant le nom du domaine NIS) contenant les 6 fichiers
binaires de permissions 600 :
hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid, group.byname et group.bygid
6. Pour définir des règles d’accès supplémentaires:
Editer le fichier /etc/ypserv.conf et indiquer une règle d’accès comme ci-dessous :
# Host : domain :Map :Security
#
192.168.0. * : passwd.byname : port
192.168.0. * : passwd.byuid : port
• Host : adresse ip d’une machine ou d’un reseau ou *
• Domain : nom de domaine ou *
• Map : nom du map concerné par cette règle
• Security
▫ none : accès toujours autorise
▫ port : accès autorise si port <1024
▫ deny : accès non autorise
7. Relancer le serveur
service ypserv restart
Le serveur devrait être fonctionnel.
• Vérification
# ps ax | grep yp
root 550 ..... ypserv
root 823 ...... rpc.yppasswdd
Configuration d'une machine cliente
1. Dans /etc/sysconfig/network, comme sur le serveur il faut déclarer le nom du domaine en ajoutant la
ligne NISDOMAIN = "ecole"
2. Editer /etc/yp.conf pour déclarer le serveur NIS
domain ecole server nom_serveur
ypserver hostname
broadcast
3. Editer /etc/nsswitch.conf, et veillez à la présence active des lignes
passwd: files nis

42/52
group: files nis
hosts: files nis dns
• Option de recherche
▫ Source[ réponse=action]
Algorithme de recherche
• Plusieurs sources d’informations peuvent être proposées pour chaque recherche. Les entrées supportées
sont :
▫ files
▫ nis
▫ dns
▫ Compact (compatibilité pour passwd et group avec ancienne version)
• Il est possible de spécifier plusieurs sources. Chaque recherche retourne une réponse qui prend les
valeurs suivantes:
▫ SUCCESS l’information est disponible
▫ UNAVAIL la source de l’information n’est pas disponible, quelle que soit la raison
▫ NOTFOUND la source répond qu’elle ne détient pas l’information
▫ TRAYAGAIN la source est occupée
• Pour chaque statut, deux actions sont possible
▫ Continue essayer la source suivante dans la liste
▫ return arrêter la recherche et fournir le résultat disponible
• Les actions par défaut sont :
▫ SUCCESS=return
▫ UNAVAIL=continue
▫ NOTFOUND=continue
▫ TRYAGAIN=continue
4. En ligne de commande, (re)lancer le service client. On devrait obtenir 2 messages : recherche d'un
domaine NIS, puis tentative de liaison à un serveur NIS.
• # service ypbind start
• Binding to the NIS domain: [OK]
• Listening for an NIS domain server: nom_serveur ………………..
Tests
#ypwhich
▫ doit donner le nom complet de la machine qui hébergé le serveur
#ypcat passwd
▫ permet d’afficher la carte des comptes utilisateurs
• Chagement de mot de passe
▫ yppasswd user
Première connexion
Login : user1
Passwd :*****

43/52
Last login: ………
No directory /home/user1
Logging in with home=“/”.
Bash->
Tout est normal user1 n’a pas de répertoire personnel sur la station.
▫ NFS
▫ telnet
Pbs clients
• #service ypbind start
Binding to the nis domain … [failed]
Listening for an nis domain server … ypwhich:ne peut communiquer par ypbind
• #domainname
Le nom du domaine n’a pas été précisé
• #service ypbind start
Binding to the nis domain … [OK]
Listening for an nis domain server … ypwhich:ne peut communiquer par ypbind
Le nom de domaine est bien connu, mais il y a un problème quand le client cherche à se lier au serveur
du domaine
▫ La première cause à suspecter est un dysfonctionnement réseau.

44/52
Chap.14 : Sécurité du système

Configurer un routeur sous Linux


Présentation
Les distributions sous Linux sont très polyvalentes et cela permet entre autre de les transformer en véritables routeurs.
Il faut bien sûr pour cela que notre machine Linux dispose d’au moins deux interfaces réseaux car la première fonction
d’un routeur et de faire la passerelle (gateway) entre un réseau et un autre qui ne pourraient communiquer sans.
Configuration des deux interfaces
Un routeur est un élément central d’un réseau et toutes les machines de ce réseau s’y réfèrent pour leurs requêtes. Il
est donc obligatoire que notre routeur ait une IP fixe sur chacune de ces interfaces. Nous travaillerons ici sur l’interface
« eth0 » qui sera orientée vers le réseau simulant un réseau externe « WAN » en 192.168.1.0/24 et une seconde
interface « eth1 » qui sera vers notre « LAN » en 192.168.10.0/24.
Assurez-vous que votre machine dispose bien de deux interfaces, après il faut se rendre dans le fichier
“/etc/network/interfaces” pour configurer nos interfaces réseaux :

Nous pourrons ensuite redémarrer notre service


/etc/init.d/networking restart
Vérifier la bonne configuration de nos interfaces avec la commande suivante :
ifconfig
Activation du mode routeur
Par défaut, une machine Linux ne fait pas passer n’importe quel paquet comme doit le faire un routeur. On doit donc
activer cette fonctionnalité qui est sous la forme d’une option dans le fichier “/etc/sysctl.conf“, on devra y chercher la
ligne suivante afin de la dé-commenter :

Cette option active donc le forwarding (le “relayage” des paquets) d’une interface à une autre ou plus précisément d’un
réseau à un autre. On pourra ensuite reloader notre sysctl :
sysctl -p /etc/sysctl.conf
Activation du NAT
Dans la plupart des cas, notre routeur fera du NAT sur notre réseau LAN. Le NAT permet de ne pas montrer aux autres
réseaux que tout un réseau se cache derrière. Le NAT permet aussi de simplifier les tâches de routage car il évite dans
beaucoup de cas d’avoir à manipuler des tables de routage.
Pour mettre en place le NAT, on rappelle que notre interface eth0 est notre interface extérieure “WAN” en
192.168.1.0/24. Le NAT se met en sortie de cette interface WAN.

45/52
Nous devons passer la commande suivante :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nous pourrons vérifier notre iptables en faisant la commande suivante :
iptables -L -t nat
 “-L”  sert à lister les règles Iptables
 “-t nat” sert à préciser la table NAT qui n’est pas prise en compte par défaut
Automatiser le montage des règles iptables
Nous allons maintenant automatiser le montage de nos règles à l’activation de notre interface eth0. Pour cela, on
commence par enregistrer nos règles Iptables dans un fichier au choix (ici “/etc/iptables_rules.save“) avec la
commande prévue à cet effet :
iptables-save > /etc/iptables_rules.save
On se rend ensuite à nouveau dans notre fichier de configuration réseau “/etc/network/interfaces” et on ajoute cette
ligne à la fin de la configuration de notre interface eth0 :
post-up iptables-restore < /etc/iptables_rules.save
Pour vérifier que le montage automatique de nos règles fonctionne correctement. Nous pouvons voir avec la
commande suivante que notre règle est présente :
iptables -L -t nat
Nous aurons alors cette réponse :

Nous voyons bien sur la chaine “POSTROUTING” de notre table “nat” que le MASQUERADE est présent vers tous les
réseaux. Dès lors, nous allons supprimer nos règles avec la commande :
iptables -F -t nat
 “-F” sert à effacer les règles de bases
 “-t nat” sert à nouveau à préciser la table NAT qui n’est pas prise en compte par défaut
On pourra alors refaire un affichage de règles pour constater que notre règle de a disparue :

Enfin, on rechargera nos interfaces réseaux avec la commande suivante :


/etc/init.d/networking restart

46/52
La mise en place d'un serveur vsftpd
Présentation
VsFTPd (Very Secure FTP daemon ) est un serveur FTP conçu avec une sécurité maximale. Contrairement aux autres
serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille majeure de sécurité n'a jamais été décelée dans VsFTPd.
Ce serveur est notamment utilisé à grande échelle par des entreprises telles que Red Hat.
La configuration par défaut de VsFTPd est très restrictive :
 Seul le compte anonyme est autorisé à se connecter au serveur
 En lecture seule
 Les utilisateurs ne peuvent pas accéder à leurs répertoires
Installation
sudo apt-get install vsftpd
Configuration de vsftpd
La configuration de VsFTPd est centralisée dans un seul et même fichier /etc/vsftpd.conf. Choisissez votre éditeur de
texte favori (en mode super utilisateur) et appliquez les modifications suivantes en fonction du mode de
fonctionnement de VsFTPd.
Configuration de base
 Vous pouvez personnaliser le texte de connexion au serveur
ftpd_banner=Bienvenue sur le serveur ftp de LUCAS
 Pour permettre des utilisateurs anonymes de se connecter au serveur en lecture seule.
anonymous_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=YES
local_root=<Path_du_répertoire_anonyme>
 Pour permettre à vos utilisateurs locaux (ceux qui ont un compte sur la machine) de se connecter au serveur et
d'écrire.
local_enable=YES
write_enable=YES
local_umask=022
 Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel afin qu'il ne puissent pas naviguer
dans le système de fichier.
Il faut créer un répertoire dédié à la configuration de vsftpd et y mettre le fichier liste.
sudo mkdir /etc/vsftpd
sudo gedit /etc/vsftpd/chroot.list
Les identifiants des utilisateurs concernés doivent être renseignés dans /etc/vsftpd/chroot.list sous la forme d'une
simple liste:
utilisateur_1
utilisateur_2
...
Il faut ensuite modifier la configuration générale (/etc/vsftpd.conf) et ajouter ces lignes:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
Attention, si chroot_local_user est à YES, cette liste devient la liste des utilisateurs qui ne seront PAS dans leur "prison"

47/52
Configuration avancée
Si vous voulez changer le port pour transmettre les commandes qui est par défaut (21) :
listen_port=222
 Pour avoir un monitoring basique (voir les utilisateurs connectés) :
setproctitle_enable=YES
Ensuite, pour voir la trace des utilisateurs il suffit de taper la commande suivante dans un terminal :
ps -aef | grep vsftpd
ou pour suivre les connexions en continu :
watch -n 1 'ps ax | grep vsftpd | grep -v grep'
Attention, tous les utilisateurs du système ayant accès à la commande "ps" pourront également visualiser la liste des
utilisateurs connectés.
* Monitoring d'après le fichier de log
sudo tail -f /var/log/vsftpd.log
Après chaque changement sur la configuration, pensez à relancer le serveur pour les prendre en compte :
sudo service vsftpd reload
Partage de dossier et chroot
Les utilisateurs étant chrootés dans leur home (ce n'est pas obligatoire mais conseillé) il faut trouver un moyen de leur
permettre de naviguer dans un dossier à l'extérieur de leur home.
ln pour faire un lien symbolique ne fonctionne pas : problème de droit.
La commande à utiliser est mount avec l'option –bind
mkdir ~/PointDeMontage
sudo mount --bind <path_complet_du_dossier_à_relier> /home/<utilisateur>/PointDeMontage

vsftpd et SSL
Le principal défaut du protocole FTP est que le couple nom d'utilisateur / mot de passe transite en clair sur le réseau. Il
est cependant possible d'ajouter une couche de sécurité supplémentaire, à savoir SSL, pour chiffrer les échanges
d'authentification et/ou de données.
Le fichier /usr/share/doc/vsftpd/README.ssl fourni avec vsftpd contient certaines mises en garde de sécurité.
Création du certificat
Il vous faut installer le paquet openssl
sudo openssl req -new -x509 -days 365 -nodes -out
/etc/ssl/private/vsftpd.cert.pem -keyout /etc/ssl/private/vsftpd.key.pem
Openssl va vous poser quelques questions, exemple :
Common Name (eg, YOUR name) []:
Il faut écrire le nom ou l'ip que les clients utiliseront. Il est possible de faire un certificat signé par sa propre autorité de
certification et donc générer des certificats valides, une fois que vos clients ont reconnu votre autorité de certification :
Creating and Using a self signed SSL Certificates in debian
Un certificat (vsftpd.cert.pem) ainsi qu'une clé privée (vsftpd.key.pem) ont été générés dans le dossier /etc/ssl/private/.
Sécurisons-les :
sudo chown root:root /etc/ssl/private/vsftpd.cert.*
sudo chmod 600 /etc/ssl/private/vsftpd.cert.*
Configuration de vsftpd.conf / Partie SSL
À la fin de votre fichier /etc/vsftpd.conf
# Options for SSL

48/52
# encrypted connections.
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
# require_ssl_reuse=NO # Certains clients FTP nécessitent cette ligne
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/ssl/private/vsftpd.cert.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key.pem
A priori, un :
sudo service vsftpd reload
devrait bien se passer.

49/52
OpenSSH
Administration et Configuration
 SSH (Secure Shell) est un outil très puissant permettant d’établir une connexion chiffrée entre une machine
cliente et une machine serveur.
 Une connexion SSH peut également servir à faire du transfert de fichier crypté, via le sftp (SSH file transfer
protocol)
Installation
 installer openssh-server sur la machine à joindre en SSH, qui sera le "serveur".
# apt-get install openssh-server
 Il vous faudra installer sur la machine qui commande, le "client", openssh-client.
# apt-get install openssh-client
Utilisations de SSH
Accès à distance à la console en ligne de commande (shell ssh)
 Pour ouvrir une session sur un ordinateur distant ayant un serveur SSH, vous devez écrire quelque chose comme
ceci :
ssh <nom_utilisateur>@<ipaddress> -p <num_port>
 Exemple :
ssh bts2@192.168.23.42 -p 22
L'option -p <num_port> qui précise le port utilisé par le serveur est facultative. Si rien n'est précisé, c'est le port 22 qui
sera utilisé par défaut (protocole TCP).
Transfert - copie de fichiers
 Pour copier un fichier à partir d'un ordinateur sur un autre avec SSH, vous devrez utiliser la
commande scp ou rcp. Cela ressemblera à ceci :
scp <fichier> <username>@<ipaddressDistant>:<DestinationDirectory>
Exemples
Pour un fichier:
scp fichier.txt bts2@192.168.1.103:/home/bts2
Pour un répertoire:
scp -r rep_doc bts2@192.168.1.103:/home/bts2

 Vous pouvez aussi bien copier des fichiers à partir des ordinateurs à distance sur votre disque local :
scp bts2@192.168.1.103:/home/bts2/urls.txt .
Ici, le point . à la fin de commande indique de copier le fichier dans le répertoire courant.
 Vous pouvez aussi le renommer en le copiant (« mon.txt ») sur le disque local (toujours dans le répertoire
courant):
scp bts2@192.168.1.103:/home/bts2/urls.txt ./mon.txt
 Vous pouvez très bien copier un fichier d'un ordinateur vers un autre tout en étant sur un troisième ordinateur :
scp nom@ordi1:chemin/fichier nom@ordi2:chemin/fichier
 Dans le cas où le port SSH du serveur ne serait pas le port par défaut (22), il faut indiquer le port distant à
utiliser :
scp -P port fichier.txt bts2@192.168.1.103:/home/bts2
Authentification

50/52
Authentification par mot de passe
 L'authentification par mot de passe (transmis chiffré) est le mode d'identification par défaut.
 Suite à l'installation du paquet openssh-server il peut parfois être nécessaire de modifier le fichier de
configuration /etc/ssh/sshd_config notamment si vous rencontrez le problème suivant :
moi@maison:~$ ssh user@domain.com Permission denied (publickey).
 Dans ce cas, il faut très simplement modifier avec les droits d'administration le fichier /etc/ssh/sshd_config sur
le serveur SSH de la manière suivante :
# Change to yes to enable tunnelled clear text passwords PasswordAuthentication **yes**
 Puis en cas de modifications, relancer le service.
Authentification par un système de clés publique/privée
 SSH offre l'Authentification par clé publique/privée au lieu des mots de passe « simples ». De cette manière, il
faut être en possession de non plus d'une mais de deux informations pour se connecter (avoir la clé privée et
connaître le mot de passe de cette clé).
Ceci peut permettre par exemple :
 à un administrateur de se connecter à des centaines de machines sans devoir connaître des centaines de mots
de passe différents ;
 de ne pas avoir un mot de passe à saisir toutes les 2 minutes (en utilisant ssh-agent).
Exemple
Pour une clé utilisant le protocole de chiffrage RSA, vous saisirez dans le terminal du client :
ssh-keygen -t rsa
 Il vous sera alors demandé où sauver la clé privée (acceptez juste l'endroit par défaut : ~/.ssh, et ne changez pas
le nom du fichier généré) puis de choisir une passphrase (phrase de reconnaissance).
 Votre clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement localisées dans les fichiers
cachés .ssh/id_rsa.pub pour la clé publique et .ssh/id_rsa pour la clé privée.
 Il faut maintenant envoyer au serveur votre clé publique pour qu'il puisse vous chiffrer des messages.
 L'utilisateur distant doit avoir cette clé (c'est une ligne de caractères en code ASCII) dans son fichier de clés
d'autorisation situé à~/.ssh/authorized_keys sur le système distant. Employez la commande ssh-copy-id.
 ssh-copy-id est un script qui utilise ssh pour se connecter à une machine à distance en utilisant le mot de passe
de l'utilisateur. L'authentification par mot de passe doit donc être autorisée dans le fichier de configuration du
serveur ssh (par défaut sur Ubuntu).
ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<ipaddress>
ou si le port est différent du port standard 22 (notez les guillemets):
ssh-copy-id -i ~/.ssh/id_rsa.pub "<username>@<ipaddress> -p <num_port> "
Vous devrez alors donner le mot de passe utilisateur de cet ordinateur. Après que votre clé publique ait été ajoutée,
vous devenez un hôte de confiance.
Si l'authentification par mot de passe est désactivée, alors vous aurez besoin de copier-coller votre clé suivant un autre
moyen.
Voici une ligne à copier pour ajouter sa clé publique sur le serveur distant :
ssh login@serveur "echo $(cat ~/.ssh/id_rsa.pub) >> .ssh/authorized_keys "
Lancez :
ssh <username>@<ipaddress> -p <num_port>
 Dorénavant n'utilisez plus votre mot de passe mais votre passphrase pour vous connecter. Celle-ci sert à
déchiffrer votre clé privée de votre système local.

51/52
 Si ça ne marche pas, c'est-à-dire que le mot de passe vous est quand même demandé, essayez sur votre serveur
la commande :
tail -f /var/log/auth.log
Configuration du serveur SSH
 La configuration par défaut du serveur SSH sous Ubuntu est suffisante pour fonctionner correctement. Le fichier
de configuration à éditer avec les droits d'administration est /etc/ssh/sshd_config.
 Tableau des principales directives à modifier le cas échéant :

Directive du fichier Val par défaut sous Valeur possible Effet de la valeur choisie
Ubuntu

Port 22 Tous les ports de 1 à Permet d'éviter des désagréments


65535 avec les robots qui scannent
Internet, notamment les ports par
défaut

PubkeyAuthentication no yes Choisir yes si vous voulez établir


l'authentification par clé comme
expliqué plus haut

PermitRootLogin no yes, without-password Cette option permet d'autoriser


ou non une connexion au serveur
openSSH avec le login root.

Cette option permet d'autoriser


ou non des connexions avec un
couple identifiant/mot de passe. Il
PasswordAuthentication est plus sûr d'autoriser l'accès à la
yes no
machine uniquement aux
utilisateurs avec des clés SSH
placées dans le fichier
~/.ssh/authorized_keys.

52/52

Vous aimerez peut-être aussi