Administration Système et Réseau LINUX - e

Transcription

Administration Système et Réseau LINUX - e
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
Administration Système et Réseau
LINUX
Page 1/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
Table des matières
MODULE 12 : La planification des tâches.......................................................................................................6
1 Introduction..................................................................................................................................................................6
2 Les tâches régulières....................................................................................................................................................6
3 Les tâches ponctuelles..................................................................................................................................................6
4 Exemples......................................................................................................................................................................6
5 La table cron système...................................................................................................................................................7
6 Implémentation Fedora à partir de la version Core 11.................................................................................................7
7 Notes personnelles.......................................................................................................................................................8
MODULE 13 : La journalisation système (issue du système BSD).................................................................9
1 Introduction.................................................................................................................................................................9
2 Principes de la journalisation, log et daemon.............................................................................................................9
3 Installation et mise en service.....................................................................................................................................9
3.1 La distribution linux Fedora...............................................................................................................................9
3.2 Syslog.................................................................................................................................................................9
3.3 Syslog et réseau..................................................................................................................................................9
4 La configuration principale.......................................................................................................................................10
4.1 Le fichier syslog.conf utilise sa propre syntaxe...............................................................................................10
4.2 La hiérarchie en place et la personnalisation...................................................................................................10
5 Exemple avec la journalisation du daemon xinetd....................................................................................................10
6 Notes.........................................................................................................................................................................11
MODULE 14 : La configuration réseau........................................................................................................12
1 Généralités et arrêt/marche de l'accès réseau............................................................................................................12
1.1 Généralités........................................................................................................................................................12
1.2 L'arrêt/marche de l'accès réseau.......................................................................................................................12
2 Configuration des paramètres réseaux......................................................................................................................12
2.1 Installation de la carte réseau...........................................................................................................................12
2.2 Les interfaces....................................................................................................................................................13
2.3 La table de routage système.............................................................................................................................13
3 Fichiers de configuration et scripts...........................................................................................................................14
3.1 Généralités........................................................................................................................................................14
3.2 Les paramètres globaux....................................................................................................................................14
3.3 Les paramètres par interface.............................................................................................................................14
3.4 Validation des paramètres réseaux...................................................................................................................15
3.5 Spécificités Fedora...........................................................................................................................................15
MODULE 15 : L'allocation dynamique des paramètres réseaux (DHCP)......................................................16
1 Généralités................................................................................................................................................................16
2 La configuration du client.........................................................................................................................................16
2.1 Le service dhcp.................................................................................................................................................16
2.2 Les fichiers paramètres.....................................................................................................................................16
3 La configuration du serveur......................................................................................................................................17
3.1 Les modes de distribution d'adresses................................................................................................................17
3.2 Le fichier /etc/dhcp/dhcpd.conf........................................................................................................................17
MODULE 16 : Le filtrage IP par iptables......................................................................................................19
1 Généralités................................................................................................................................................................19
2 Les buts du filtrage IP...............................................................................................................................................19
3 Historique des versions.............................................................................................................................................19
4 Les pré-requis systèmes............................................................................................................................................19
5 Le principe du filtrage iptables à l'aide de la table filter..........................................................................................19
6 Algorithme du filtrage..............................................................................................................................................20
7 Utilisation d'iptables.................................................................................................................................................20
7.1 Manipulation des chaînes.................................................................................................................................20
7.2 Manipulation des règles....................................................................................................................................21
8 Commandes systèmes...............................................................................................................................................21
8.1 Gestion des modules du noyau.........................................................................................................................21
8.2 Mise en service du forwarding.........................................................................................................................21
8.3 Sauvegarde des règles......................................................................................................................................21
Page 2/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
9 Exemples de règles...................................................................................................................................................21
MODULE 17 : La centralisation des services réseaux par xinetd..................................................................24
1.1 Généralités.............................................................................................................................................................24
2 Le contrôle d'accès aux services et le tcp-wrapper...................................................................................................24
2.1 Généralités........................................................................................................................................................24
2.2 Les listes de contrôles hosts.deny et hosts.allow.............................................................................................24
3 Le super-daemon xinetd............................................................................................................................................25
3.1 Généralités........................................................................................................................................................25
3.2 Configuration du daemon xinetd......................................................................................................................25
3.3 Liaison et ré-acheminement de port.................................................................................................................26
MODULE 18 : L'impression..........................................................................................................................27
1 Les principaux serveurs d'impression.......................................................................................................................27
1.1 Généralités........................................................................................................................................................27
1.2 Installation........................................................................................................................................................27
2 Le daemon LPD........................................................................................................................................................27
2.1 paramétrage......................................................................................................................................................27
3 Le daemon CUPS......................................................................................................................................................27
4 Remarques.................................................................................................................................................................29
MODULE 19 : Le partage de fichier par NFS................................................................................................30
1 Généralités................................................................................................................................................................30
2 RPC et portIP............................................................................................................................................................30
3 Paramétrage d'un serveur NFS..................................................................................................................................31
3.1 Structure du fichier /etc/exports (Extrait de la page de man exports)..............................................................31
3.2 Lancement de rcpbind et de NFS.....................................................................................................................31
4 paramétrage du client NFS........................................................................................................................................32
5 Montage au démarrage et optimisation.....................................................................................................................32
5.1 Montage au démarrage.....................................................................................................................................32
5.2 Montage optimisé ou automontage...................................................................................................................32
MODULE 20 : Administration et authentification centralisées par NIS........................................................33
1 Généralités................................................................................................................................................................33
2 Principe du client-serveur NIS..................................................................................................................................33
3 Paramétrage du serveur NIS......................................................................................................................................33
3.1 Les pré-requis...................................................................................................................................................33
3.2 Le domaine.......................................................................................................................................................33
3.3 Déclaration des hosts autorisés.........................................................................................................................34
3.4 Choix des fichiers d'administration à gérer par le serveur NIS.......................................................................34
4 paramétrage du client NIS........................................................................................................................................34
4.1 Les pré-requis...................................................................................................................................................34
4.2 Le domaine.......................................................................................................................................................35
4.3 Configuration du client NIS.............................................................................................................................35
4.4 Organisation hiérarchique de l'administration.................................................................................................35
5 Tests et expérimentation...........................................................................................................................................35
MODULE 21: L'annuaire LDAP....................................................................................................................36
1 Généralités................................................................................................................................................................36
1.1 Définition..........................................................................................................................................................36
1.2 Historique, du fichier local à l'annuaire...........................................................................................................36
1.3 Annuaire et SGBD............................................................................................................................................36
1.4 Le protocole LDAP..........................................................................................................................................36
2 Le modèle d'information...........................................................................................................................................37
2.1 Terminologie....................................................................................................................................................37
2.2 Le schéma d'annuaire (Directory Schema).......................................................................................................37
2.4 Les classes d'objets...........................................................................................................................................38
2.5 Le format d'échange de données LDIF.............................................................................................................39
3 Le modèle de désignation.........................................................................................................................................40
3.1 L'arbre DIT (Directory Information Tree)........................................................................................................40
3.2 L'accès aux entrées...........................................................................................................................................40
4 Le modèle fonctionnel..............................................................................................................................................40
5 Le modèle de sécurité...............................................................................................................................................41
6 Installation sur linux (fedora core 6).........................................................................................................................41
6.1 Client................................................................................................................................................................41
Page 3/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
6.2 serveur..............................................................................................................................................................41
6.3 Autres...............................................................................................................................................................42
7 Création de l'annuaire...............................................................................................................................................42
7.1 Création de l'arborescence................................................................................................................................42
Les fichiers ldif correspondants sont respectivement; societe.ldif, branche.ldif, users.ldif :.................................43
Leur insertion dans l'annuaire est réalisées par les commandes :...........................................................................44
7.2 Paramétrage......................................................................................................................................................44
8 Utilisation de l'annuaire............................................................................................................................................45
9 Exemple d'installation/implémentation sur CentOS.................................................................................................45
MODULE 22 : Le système graphique Xwindow...........................................................................................47
1 Généralités................................................................................................................................................................47
2 Concept client/serveur Xwindow..............................................................................................................................47
3 Fonctionnalités et spécificités...................................................................................................................................47
3.1 Le clavier..........................................................................................................................................................47
3.2 L'écran..............................................................................................................................................................47
4 Le Display Manager..................................................................................................................................................48
5 Le Window Manager................................................................................................................................................48
6 Sécurité et contrôle d'accès.......................................................................................................................................48
6.1 Les listes de machines......................................................................................................................................48
6.2 Le magic-cookie...............................................................................................................................................48
6.3 Sécurisation par clés de codage........................................................................................................................48
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation........................................................49
1 Structure physique d'un disque.................................................................................................................................49
1.1 Généralités........................................................................................................................................................49
1.2 Taille d'un disque.............................................................................................................................................49
1.3 Calcul de la taille d'une partition......................................................................................................................50
2 Structure logique d'un disque....................................................................................................................................50
2.1 MBR MasterBootRecord et BR BootRecord...................................................................................................50
2.2 Démarrage, MBR et BR...................................................................................................................................51
2.3 Partitions primaires et étendues........................................................................................................................51
2.4 Le Linux-Loader LILO et la commande ''lilo''.................................................................................................52
2.5 Création d'une disquette d'amorce....................................................................................................................53
2.6 Création d'une disquette d'amorce avec un chargeur LILO..............................................................................53
MODULE 24: L'archive tar, les installations rpm et yum..............................................................................54
1 Définition d’une archive............................................................................................................................................54
2 Les installations.........................................................................................................................................................54
3 La commande tar........................................................................................................................................................54
4 La base de données RPM...........................................................................................................................................55
5 Les commandes d’interrogation de la base RPM.......................................................................................................55
Les commandes d’interrogation les plus courantes sur la base rpm.......................................................................55
Les commandes d’interrogation les plus courantes sur un fichier de l’arborescence.............................................56
Les commandes d’interrogation les plus courantes sur fichier de type package non-installé (pas pris en compte
par le bd)..................................................................................................................................................................56
6 Les installations par le gestionnaire d'archives YUM...............................................................................................56
7 Paramétrage de YUM et des site-dépôts....................................................................................................................57
MODULE 25 : La personnalisation d'un noyau système................................................................................58
1 Le noyau (kernel)......................................................................................................................................................58
1.1 Généralités........................................................................................................................................................58
1.2 Fonctions..........................................................................................................................................................58
2 La compilation..........................................................................................................................................................58
2.1 Les buts recherchés..........................................................................................................................................58
2.2 Choix des composantes de la compilation.......................................................................................................59
2.3 La compilation..................................................................................................................................................59
2.4 Phase de test et d'installation............................................................................................................................60
3 Mise à jour d'un noyau par un « patch »...................................................................................................................60
MODULE 26 : Les niveaux de démarrage systemV......................................................................................61
1 Principe de démarrage de Linux (système V)...........................................................................................................61
2 Les niveaux de démarrage (run-level)......................................................................................................................61
2.1 Généralités........................................................................................................................................................61
2.2 Description de /etc/inittab................................................................................................................................62
Page 4/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
3 Le processus d'initialisation init................................................................................................................................63
3.1 Organisation et hiérarchie................................................................................................................................63
3.2 Gestion des scripts d'arrêt/démarrage par niveau.............................................................................................64
3.3 Les outils de gestion des scripts.......................................................................................................................65
Page 5/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 12 : La planification des tâches.
MODULE 12 : La planification des tâches.
1 Introduction.
Pour assurer la cohérence du système il est nécessaire de réaliser un certain nombre de tâches différées et
périodiques. On dispose des services cron pour les tâches régulières et de at pour les tâches
2 Les tâches régulières.
Le démon crond lit toutes les minutes le contenu des fichiers du répertoire /var/spool/cron pour connaître les
processus à exécuter. Chaque utilisateur possède son propre fichier cron qui doit porter son nom. Les fichiers
/etc/cron.allow et /etc/cron.deny permettent d’indiquer la liste des personnes autorisées à employer le service
cron. Le fichier cron contient les informations suivantes :
<mn> <h> <jours> <mois> <jour de la semaine de 0-6> <commande(s) à exécuter>
Remarque:
Le caractère * désigne le « quel que soit », la virgule sépare plusieurs valeurs, le tiret (-) définit un intervalle et
le slash ( / ) une fréquence. Pour manipuler les fichiers cron, il faut utiliser la commande crontab. L’utilitaire
graphique kcron permet plus aisément de configurer les fichiers cron. La commande anacron permet de démarrer
des services qui n’ont pas pu être exécutés à la date prévue (surcharge système, arrêt système …).
3 Les tâches ponctuelles.
•
Le démon atd lit le contenu des fichiers de /var/spool/at/ pour exécuter des tâches ponctuelles.
•
La commande at [-f <script>] <date> ou at now [ -f <script> ] + <mn ou h ou jours > permet de créer les
fichiers du même répertoire.
•
Les fichiers /etc/at.allow et /etc/at.deny permettent d’indiquer la liste des personnes autorisées à utiliser
le service.
4 Exemples.
EX1
Pour exécuter ''prog toutes les minutes''
$ crontab -e (édition vi d'un fichier temporaire féré par cron)
* * * * * prog
$crontab -l (pour lister les taches plannifiées par l'utilisateur).
EX2
Idem toutes les 2 minutes pendant les 10 premières minutes de chaque heure, chaque jour du mois,
chaque mois et que le lundi.
0,2,4,6,8,10 * * * 1 prog
ou bien
0-10/2 * * * 1 prog
Autres exemples dans la section5 du man de crontab.
Page 6/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 12 : La planification des tâches.
EX3 tâche ponctuelle
$at 16:10
at> ls -l > /dev/pts/2 (envoi le resultat de la commande ls sur la 2eme fenetre
graphique).
Cntrl+D
$at -l (pour listes les taches ponctuelles).
5 La table cron système.
Le système gère sa propre table cron (/etc/contab) :
01 * * * * root run-parts /etc/cron.hourly (toutes les Nheures et 1minute)
02 4 * * * root run-parts /etc/cron.daily (tous les jours à 4h02)
22 4 * * 0 root run-parts /etc/cron.weekly (tous les dimanches à 4H22)
42 4 1 * * root run-parts /etc/cron.monthly (tous les premiers du mois à 4h42)
pour lancer les exécutables présents dans les répertoires /etc/cron.hourly .../daily .../weekly ..../monthly.
6 Implémentation Fedora à partir de la version Core 11.
depuis FEDORA CORE 11 /etc/crontab est vide!
La commande anacron complète crond pour éviter certains conflits observés. Anacron était chargé a l'origine
de relancer les taches non-éxécutées dans le cas par exemple d'une machine éteinte a l'heure prévue pour une
tache cron.
Sur FC11, cron lance anacron qui se charge de toutes les tâches, en retard ou non.
Notes:
•
•
•
run-parts dir ->éxécution de tout ce qui se trouve dans dir
/etc/crontab est vide et doit le rester
/etc/anacrontab (le delay correspond au temps laissé entre deux tâches):
Exemple /etc/anacrontab
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1
5
cron.daily
nice run-parts /etc/cron.daily
7
25
cron.weekly
nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly
nice run-parts /etc/cron.monthly
/etc/cron.d/0hourly:
01 * * * * root run-parts /etc/cron.hourly
/etc/cron.hourly/0anacron
(selon test, exécute seulement si date courante differente de date de référence anacron) :
Page 7/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 12 : La planification des tâches.
#!/bin/bash
day=`cat /var/spool/anacron/cron.daily`
if [ `date +%Y%m%d` = "$day" ]; then
exit 0;
fi
# in case anacron is already running,
# there will be log (daemon won't be running twice).
if test -x /usr/bin/on_ac_power; then
/usr/bin/on_ac_power &> /dev/null
if test $? -eq 1; then
exit 0
fi
fi
/usr/sbin/anacron -s
ps: les tâches plus fréquentes que l'heure doivent être mises dans /etc/cron.d; 2 solutions possibles:
1)
cat /tmp/create-file.sh
#!/bin/bash
touch /tmp/file-$(date +%H:%M)
+
cat /etc/cron.d/create-file
* * * * * root /tmp/create-file.sh
2)
cat /etc/cron.d/create-via-dir-minutely
* * * * * root run-parts /etc/cron.minutely
+
mkdir /etc/cron.minutely/ ; mv /tmp/create-file.sh /etc/cron.minutely/
(la différence se voit dans le log)
7 Notes personnelles
Page 8/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 13 : La journalisation système (issue du système BSD).
MODULE 13 : La journalisation système (issue du système BSD).
1 Introduction.
Les systèmes d'exploitation conserve un historique des évènement passés, ces traces archivées au fil du
temps peuvent ensuite servir au système, aux applications et aux utilisateurs. Elles permettent souvent de
comprendre un état présent dépendant d'évènements survenus dans un passé plus au moins proche.
Ces fichiers de données appelés journaux, représentent une aide considérable au debug pour
l'administrateur ou le développeur.
Ces fichiers comparables à des carnets de bord utilisés dans la marine sont appelés log. Une deuxième
origine provient également de la marine utilisant autrefois des rondins (log en anglais) attachés à des
cordes permettant de déterminer la vitesse d'une embarcation.
2 Principes de la journalisation, log et daemon.
La journalisation consiste à écrire, dans un fichier appelé log ou journal, la totalité des évènements
survenue sur une certaine durée. Cette durée écoulée, on ouvre un nouveau journal et on archive l'ancien
et ainsi de suite.
La dimension de stockage pouvant devenir problématique à un certain moment, le système où
l'administrateur détruira les logs le plus anciens.
Tous les systèmes Unix possèdent un daemon de journalisation, le plus répandu est syslogd et provient
de la branche universitaire BSD (Berkeley System Development).
3 Installation et mise en service.
3.1 La distribution linux Fedora.
Elle utilise le package sysklogd pour installer deux daemons; klogd et syslogd chargés
respectivement des évènements noyau (kernel) et de tous les autres gravitant autour du système.
3.2 Syslog.
L'implémentation de syslog dans l'arborescence linux est classique.
•
daemon (binaire exécutable):
/sbin/syslogd
•
configuration principale (texte):
/etc/syslog.conf
•
options courantes à modifier (variables):
/etc/sysconfig/syslog
•
script de démarrage (bash) /etc/init.d/syslog
voir schéma en 3.3 Syslog et réseau.
Le daemon syslogd a la spécificité de pouvoir travailler également en réseau, une centralisation de la
journalisation peut alors se faire sur une seule machine recevant les évènements d'autres connectées
sur le même réseau.
Page 9/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 13 : La journalisation système (issue du système BSD).
4 La configuration principale.
4.1 Le fichier syslog.conf utilise sa propre syntaxe.
•
1 seule règle par ligne
•
2 champs par ligne; le sélecteur, composé de deux variables nommées facility et priority, et
l'action représentant en général le fichier cible de journalisation.
Exemple: cron.warning
/var/log/cron.log
4.2 La hiérarchie en place et la personnalisation.
La variable facility décrit le type de programme demandant une journalisation, ceci permet un
traitement plus approprié des messages envoyés. Les thèmes sont déclinés de la façon suivante :
auth
authentification (quasi-obsolète)
authpriv
authentification-private (à utiliser de préférence)
cron
système de la programmation temporelle de tâches
daemon
daemons sans classification particulière
kernel
message du noyau
lpr
système d'impression
mail
système du courrier électronique
news
système des « nouvelles » (peu utilisé aujourd'hui)
syslog
message interne à syslog
user
message utilisateur
uucp
message de protocole unix-to-unix-copy
local0 à local7 réservés aux personnalisations locales
La variable priority décrit le degré de gravité du message allant du plus faible au plus fort :
debug
pour debug (à priori temporaire)
info
simple information
notice
condition normale
warning
alertes simples
err
erreurs produites
crit
niveau critique du système en question
emerg
le système n'est plus utilisable
*
caractère générique pour les sept « priority »
(chaque niveau de priorité englobe les niveaux de priorités inférieures)
5 Exemple avec la journalisation du daemon xinetd.
•
ajout d'xinetd au système de journalisation système
syslog.conf: ajouter
•
local4.*
/var/log/xinetd.log
prise en compte de la journalisation pour xinetd
xinetd.conf: ajouter
log-type = SYSLOG local4 info
Page 10/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 13 : La journalisation système (issue du système BSD).
(nécessaire pour récupérer les messages d'xinetd et des sous-daemons traités par lui-même)
•
option de démarrage pour le script de démarrage d'xinetd
/etc/init.d/xinetd: trouver la ligne chargeant l'exécution et commençant par « daemon.... »
ajouter
•
-syslog
local4
prise en compte des modifications
/etc/init.d/syslog restart; /etc/init.d/xinetd restart
6 Notes.
•
La commande shell logger permet d'envoyer des messages au système de journalisation via la ligne
de commande.
•
La distribution Fedora Core 11 utilise l'extension du daemon syslogd nommé rsyslogd et son fichier
de configuration /etc/rsyslog.conf
•
Schéma d'arborescence.
/
etc
sysconfig
syslog
(options du daemon)
sbin
bin
init.d
syslog.conf
(configuration du
service)
syslog
(script d'arrêt/marche)
Page 11/65
syslogd
(daemon)
...
usr
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 14 : La configuration réseau.
MODULE 14 : La configuration réseau.
1 Généralités et arrêt/marche de l'accès réseau.
1.1 Généralités.
Du point de vue système, la mise en service réseau est une suite d'opérations qui vont permettre au kernel
de dialoguer avec l'extérieur. Ce dialogue ne pourra se faire que par l'intermédiaire de différents matériels
de types modems, cartes réseau, ports séries/parallèles ou tout autre qui sera identifié sous le terme
générique d'interface-réseau. Les plus courantes sont eth0, eth1..., ethN (pour les N cartes ethernet
installées sur la machine) et lo (pour l'interface loopback (boucle arrière) servant par exemple dans le cas
d'une communication client/serveur sur une même machine).
1.2 L'arrêt/marche de l'accès réseau.
L'appel du script de démarrage systèmeV network (voir module 24) avec l'un des arguments standardisés
du type start, stop, restart, status permet la mise en fonction, l'arrêt ou d'obtenir l'état du service réseau.
Note: Ce script a pour fonction de provoquer des arrêts/marches de la fonction réseau telle qu'elle a été
perçue au dernier démarrage. Les changements de paramètres réseaux ne seront donc pas pris en compte.
2 Configuration des paramètres réseaux.
2.1 Installation de la carte réseau.
Toute carte installée physiquement dans un PC doit être reconnue par le système d'exploitation pour être
paramétrée ensuite. La commande lsdev nous informe sur les périphériques que perçoit le noyau.
[root@zephyr root]# lsdev
Device
DMA IRQ I/O Ports
-----------------------------------------------8139too
2000-20ff
acpi
9
ALI
1800-18ff
ALi
1800-18ff 1c00-1cff 2480-248f 8000-803f 8040-805f
cascade
4 2
dma
0080-008f
dma1
0000-001f
dma2
00c0-00df
eth0
11
fpu
00f0-00ff
ide0
14 01f0-01f7 03f6-03f6
ide1
15 0170-0177 0376-0376
keyboard
1 0060-006f
Mouse
12
PCI
0cf8-0cff 4000-40ff 4400-44ff
pic1
0020-003f
pic2
00a0-00bf
Realtek
2000-20ff
serial
02f8-02ff 03f8-03ff
timer
0 0040-005f
usb-ohci
10
vga+
03c0-03df
VIA
2400-247f
Dans le cas où le device eth0 est absent il faut alors vérifier :
- la présence d'un module correspondant à la carte comme par exemple :
/lib/modules/2.4.21/kernel/drivers/net/8139too.o
(ceci attestant qu'un module a été compilé pour le noyau en service).
- que le fichier /etc/modules.conf possède bien une correspondance comme :
Page 12/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 14 : La configuration réseau.
alias eth0 8139too
- que le module est bien chargé via la commande lsmod.
L'absence éventuelle du module oblige alors à faire une nouvelle compilation du noyau avec cette option.
(voir module compilation du noyau).
2.2 Les interfaces.
La commande ifconfig exécutée sans argument permet de consulter le paramétrage des interfaces
réseau déjà configurées. Accompagnée d'arguments, elle déclare de nouvelles interfaces qui auront :
un nom (eth0 pour carte ethernet 0, ppp0 pour ligne point-to-point 0...)
une adresse IP
une adresse de masque réseau
une adresse de diffusion
un indicateur marche/arrêt (up, down)
exemple de consultation :
root@zephyr tmp]# ifconfig
eth0
Lien encap:Ethernet HWaddr 00:00:E2:8D:20:1A
inet adr:82.225.146.47 Bcast:82.225.146.255 Masque:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17660 errors:0 dropped:0 overruns:0 frame:0
TX packets:14353 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:21358589 (20.3 Mb) TX bytes:1599038 (1.5 Mb)
Interruption:11 Adresse de base:0xd000
lo
Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:29 (29.0 b) TX bytes:29 (29.0 b)
exemple de paramétrage de la première interface ethernet :
#ifconfig eth0 down
#ifconfig eth0 192.168.3.45 netmask 255.255.255.0 broadcast 192.168.3.255 up
Si les paramètres désirés étaient les mêmes qu'auparavant, la commande aurait put être :
#ifconfig eth0 up
note: il est possible d'affecter plusieurs adresses IP à une même interface réseau. On parle alors d'IPaliasing, le nom de l'interface sera suffixée par ':x' où x sera un chiffre donnant l'ordre de l'alias (eth0:0,
eth0:1...eth0:N).
2.3 La table de routage système.
A chaque émission de paquets IP un aiguillage ou routage est opéré pour savoir quelle route nécessaire
emprunter pour arriver à destination.
Le routage peut se résumer aux opérations suivantes dans le cas simple d'une émission de paquet :
•
L'adresse de destination du paquet va être comparée à chaque route exprimée dans la table de
Page 13/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 14 : La configuration réseau.
routage système.
•
Dès qu'il y aura correspondance d'adresses le paquet sera expédié, dans la négative la route suivante
est envisagée.
•
Si aucune route ne correspond, une route par défaut est prise qui aiguille en général le paquet sur le
routeur le plus proche. Ce dernier aura peut-être une route correspondante, dans la négative il
passera le paquet à son routeur le plus proche.
La table de routage système est implantée dans le noyau et se consulte ou se modifie via la commande
route .
Ex de consultation:
[root@zephyr tmp]# route
Table de routage IP du noyau
Destination Passerelle
82.225.146.0 *
127.0.0.0
*
default
82.225.146.254
Genmask
255.255.255.0
255.0.0.0
0.0.0.0
Indic Metric Ref
U
0
0
U
0
0
UG 0
0
Use Iface
0 eth0
0 lo
0 eth0
Ex :
Pour ajouter une route à tous les paquets IP d'adresse de destination 192.168.1.xxx via eth0.
# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
Pour ajouter une route par défaut (dernière de la table) sur une passerelle d'adresse 192.168.1.1 via eth0.
# route add default gw 192.168.1.1 eth0
note: la commande route complétera, dans le mesure du possible, les arguments manquants lors d'une
adjonction de route. Pour lever toute ambiguïté une destruction de route se fera obligatoirement avec tous
les arguments de la route.
3 Fichiers de configuration et scripts.
3.1 Présentation du paramétrage réseau de la famille RedHat.
Applet graphique gnome, barre de menu supéprieure à
droite.
(chargé également de la recherche WIFI)
Scripts systèmes de paramétrage réseau
(prise en compte de l'environnement et des périhériques
existants)
Commandes de base unix
(commandes dites dynamiques; prises en compte
immédiates mais éphémères)
NetworkManager
ifup, ifdown...
domainname, hostname,
route, ifconfig, dhclient...
Noyau linux
(kernel)
Page 14/65
Fichiers paramètres lus par les scripts:
- /etc/sysconfig/network
- /etc/sysconfig/network-scripts/ifcfg-eth0
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 14 : La configuration réseau.
3.2 Les paramètres globaux à la machine (hors spécificités par interface).
Il sont décrits dans le fichier /etc/sysconfig/network sous la forme de variables dont le nom est
exprimé en majuscule et initialisées selon les règles syntaxiques du shell. On y trouve par exemple :
[coulon@zephyr coulon]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zephyr
NISDOMAIN=iut
3.3 Les paramètres par interface.
Il existe un fichier de configuration par interface nommé ifcfg-XXX (XXX représentant le nom de
l'interface). Ces fichiers sont dans le répertoire /etc/sysconfig/network-scripts. On trouvera
par exemple pour l'interface eth0 les variables ou paramètres suivants :
[coulon@zephyr coulon]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
#IPADDR=196.20.12.100
#NETMASK=255.255.255.0
#GATEWAY=192.168.1.254
3.4 Validation des paramètres réseaux.
Les contenus de ces fichiers seront pris en compte lors du démarrage via le script ifup se trouvant dans
/etc/sysconfig/network-scripts. L'administrateur devra également utiliser ce script pour
prendre en compte des nouveaux paramètres différents de celui du dernier démarrage. Le script ifdown
existe également pour l'opération inverse.
Ex d'une séquence de modification des paramètres réseau concernant les nomIP et addrIP.
Edition et modification du fichier /etc/sysconfig/network
#hostname xxxxx (changement de nomIP en ligne de commande)
Edition et modification du fichier /etc/sysconfig/network-scripts/ifcfg-eth0
#ifcfg eth0 stop (arrêt de paramètres mais interface encore visible par ifconfig ).
#ifup eth0
#ifconfig (pour vérification)
3.5 Spécificités Fedora.
Le paramétrage manuelle n'est rendu possible que si aucun programme externe ne gère les configurations
réseaux. Fedora utilise aujourd'hui les utilitaires suivants :
- NetworkManager
- le daemon dhcdbd (bus de messages inter-applicatif)
- le daemon dhclient (daemon client de gestion de bail avec un serveur dhcp)
Ces trois programmes sont à stopper afin qu'il n'y est aucun parasite dans un paramétrage manuel.
Page 15/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 15 : L'allocation dynamique des paramètres réseaux (DHCP).
MODULE 15 : L'allocation dynamique des paramètres réseaux (DHCP).
1 Généralités.
Le protocole DHCP DynamicHostConfigurationProtocol a pour fonction d'attribuer dynamiquement à une
machine cliente ses paramètres IP, et de manière facultative lui fournir le nom d'un fichier à charger en
mémoire pour exécution. Cette dernière fonction étant rendue possible par l'implémentation du protocole
BOOTP qui utilisera la plupart du temps TFTP pour aller chercher par réseau un noyau ou toute autre
application de démarrage (ex outil de déploiement d'image disque). DHCP utilise le protocole réseau UDP dit
non-connecté qui travaille en mode datagramme.
Les requêtes de ce client sont expédiées en mode diffusion sans savoir à quel serveur elles sont adressées. Le
premier serveur DHCP actif répondra ou non, en conformité à son paramétrage.
2 La configuration du client.
2.1 Le service dhcp.
Le client est un daemon dhclient installé avec le package rpm suivant pour une version RedHat :
[root@zephyr root]# rpm -qil dhclient
Name
: dhclient
Relocations: (not relocatable)
Version : 3.0.4
Vendor: Red Hat, Inc.
Release : 21.fc6
Build Date: lun 11 sep 2006 19:11:59 CEST
Install Date: jeu 07 déc 2006 10:02:57 CET
Build Host: hs20-bc1-7.build.redhat.com
Group
: System Environment/Base
Source RPM: dhcp-3.0.4-21.fc6.src.rpm
Size
: 535643
License: distributable
Signature : DSA/SHA1, mer 04 oct 2006 03:13:47 CEST, Key ID b44269d04f2a6fd2
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL
: http://isc.org/products/DHCP/
Summary : Fournit le démon client ISC DHCP dhclient et dhclient-script .
Description :
DHCP (Dynamic Host Configuration Protocol) est un protocole permettant à des périphériques individuels sur un
réseau IP d'obtenir leurs propres informations de configuration de réseau (adresse IP, masque de sous-réseau,
adresse de diffusion, etc.) à partir d'un serveur DHCP. Le but général de DHCP est de faciliter l'administration
d'un grand réseau.
Installez un service DHCP (ou un agent relais) ainsi qu'un démon client DHCP sur vos clients si vous voulez
utiliser DHCP sur votre réseau. Le paquetage dhclient fournit les démons clients ISC DHCP.
/sbin/dhclient
/sbin/dhclient-script
/usr/share/doc/dhclient-3.0.4
/usr/share/doc/dhclient-3.0.4/dhclient.conf.sample
/usr/share/man/man5/dhclient-eval.5.gz
/usr/share/man/man5/dhclient-options.5.gz
/usr/share/man/man5/dhclient.conf.5.gz
/usr/share/man/man5/dhclient.leases.5.gz
/usr/share/man/man8/dhclient-script.8.gz
/usr/share/man/man8/dhclient.8.gz
/var/lib/dhclient
S'il est validé par l'administrateur, le protocole dhcp sera utilisé pour renseigner les paramètres IP des
interfaces réseau concernées au démarrage et le daemon n'a plus à intervenir ensuite dans le cas le plus
courant. Il est néanmoins possible de l'utiliser par la ligne de commande pour faire des tests ou bien le
relancer (voir man dhclient, /sbin/dhclient-script et /sbin/dhclient)
2.2 Les fichiers paramètres.
Ces fichiers sont dans le répertoire /etc/sysconfig/network-scripts (voir 3.3 du module14), il
Page 16/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 15 : L'allocation dynamique des paramètres réseaux (DHCP).
en existe un par interface réseau (la variable BOOTPROTO est à initialiser à dhcp).
3 La configuration du serveur.
La configuration est faite essentiellement dans le fichier /etc/dhcp/dhcpd.conf.
Le fichier /etc/sysconfig/dhcpd peut contenir des options de démarrage du daemon via la variable
DHCPARGS. Le fichier /etc/dhcpd.leases doit exister, même vide, pour autoriser le lancement du
daemon via le script de démarrage SystemV.
Note: Le noyau doit avoir été compilé avec l'option multicast en ce qui concerne les interfaces réseau. A
vérifier avec la commande ifconfig.
3.1 Les modes de distribution d'adresses.
Le serveur dhcp a la possibilité selon sa configuration de travailler selon trois modes :
-dynamique; les adresses sont distribuées sur leur disponibilité. Un fichier de bail (lease) gère la
possibilité de fournir les adresses en fonction d'un intervalle déclaré par l'administrateur ainsi qu'un temps
imparti par défaut et un maximum. Ce délai dépasser un nouveau bail est déclaré s'il y a une adresse libre.
-automatique; le principe est le même mais l'adresse est attribuée de façon permanente (la valeur de leasetime réservée OxFFFFFFFF est utilisée).
-manuel; il s'agit de faire correspondre par une clé une requête cliente et le paramétrage du serveur. On
utilise le plus souvent l'adresseIP et l'adresseMAC(physique) de l'interface réseau du client.
3.2 Le fichier /etc/dhcp/dhcpd.conf.
Ce fichier n'étant pas toujours créer à l'installation via le package rpm, une copie peut être faite à partir du
fichier d'exemple comprenant le mot sample dans un sous-répertoire de /usr/share/doc où se trouve
les pages de man ainsi que les documentations déposées par les packages rpm.
On remarque dans l'exemple suivant les trois parties distinctes:
-les paramètres globaux
-la déclaration d'intervalle d'adresses
-la réservation pour l'host prof en distribution manuelle.
# Exemple de /etc/dhcp/dhcpd.conf
default-lease-time 86400; #24heures hors-demande autre par le client
max-lease-time 604800; #7 jours
option subnet-mask 255.255.255.0; # 5 paramètres attribués ...
option broadcast-address 192.168.1.255; # ...par défaut...
option routers 192.168.1.254; #...en l'absence de requêtes...
option domain-name-servers 192.168.1.1, 192.168.1.2; #...clientes...
option domain-name "mondomaine.org"; # ...précises.
# Exemple d'adressage par intervalle (ici de 192.168.1.10 à ....100 de et ...150 à ....200)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
Page 17/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 15 : L'allocation dynamique des paramètres réseaux (DHCP).
# Exemple d'adressage manuel pour l'hôte prof).
host prof {
hardware ethernet 00:00:88:88:aa:aa;
fixed-address 192.168.32.13;
}
Note de syntaxe: elle est du type langage C avec ; pour fin de ligne et accolades pour les blocs.
Page 18/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 16 : Le filtrage IP par iptables.
MODULE 16 : Le filtrage IP par iptables.
1 Généralités.
Le filtrage de paquets est l'opération qui revient à observer les en-têtes IP passant devant une interface réseau
et de décider de leur sort (ou cible) qui peut être :
-un DROP (le paquet est considéré comme n'ayant jamais existé).
-un ACCEPT (le paquet est pris en compte).
-autres cibles plus ou moins complexes comme LOG, REJECT, RETURN, REDIRECT, SNAT, DNAT,
MASQUERADE...
2 Les buts du filtrage IP.
Le Contrôle.
Utilisé généralement en sortie. On décide d'autoriser ou non l'accès à certaines adresses ou sites à partir du
réseau filtré.
La sécurité.
Utilisé généralement en entrée. On décide d'autoriser ou non certaines adresses à utiliser certains ports ou
machines sur son réseau filtré.
Contrôle de normalité.
On veut détecter les anormalités émanant de son réseau filtré pour éviter un trafic ou des collisions trop
importantes.
3 Historique des versions.
1994
1998
1999
premier filtrage IP sur les noyau 1.1, c'est le portage de ipfw du système BSD Unix.
implémentation au noyau 2.2 du filtrage par chaînes avec ipchains.
le noyau 2.4 intègre iptables qui est toujours en vigueur.
4 Les pré-requis systèmes.
Le noyau doit être compilé avec l'option d'infrastructure netfilter composée de différents modules comme
celui d'iptables.
5 Le principe du filtrage iptables à l'aide de la table filter.
Le noyau contient par défaut trois listes de règles qui vont être lues séquentiellement et mises en
correspondance avec les paquets filtrés. Ces listes sont appelées des chaînes de firewall et portent les noms
INPUT, OUTPUT et FORWARD ( fig.1).
Page 19/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 16 : Le filtrage IP par iptables.
Entrée d'un
paquet.
( fig. 1 )
Décision de
routage
Emission du paquet.
FORWARD
OUTPUT
INPUT
Processus locaux
Chaque chaîne entourée d'un cercle est composée d'une suite de règles.
Quand un paquet se présente devant une chaîne son en-tête est examinée ce qui va déterminer sa cible qui sera le
plus simplement DROP ou ACCEPT.
Par sécurité une chaîne se termine par une règle par défaut ayant pour cible un DROP.
6 Algorithme du filtrage.
A la réception du paquet, le noyau décide par sa table de routage standard de la destination horsfiltrage du paquet ;
•
soit le paquet est destiné à la machine filtrante et il est orienté vers la chaîne INPUT, puis
filtré pour être ciblé sur DROP ou ACCEPT.
•
soit le paquet est dirigé sur la chaîne de FORWARD. Cela implique que le routage ou
forwarding est autorisé sur cette machine. Le cas échéant, il passe les règles de la chaîne
FORWARD et suit sa cible correspondante. Dans le cas d'une cible ACCEPT, le paquet est
alors émis.
A l'émission du paquet émanant de la machine filtrante, il est envoyé à la chaîne OUTPUT puis
émis dans le cas d'une correspondance sur une règle ciblée en ACCEPT.
En plus de la table filter il existe les tables NAT et MANGLE. La première gère les translations
d'adresses et contient par défaut les chaînes prerouting, postrouting et output.
La deuxième permet le marquage de paquets entrant ou émis dans le but de faire des
traitements spécifiques sur ces paquets. Elle utilise ses chaînes input, output, prerouting,
postrouting et forward.
7 Utilisation d'iptables.
7.1 Manipulation des chaînes.
iptables -N
iptables -X
iptables -P
iptables -L
iptables -F
iptables -Z
Nouvelle chaîne.
Effacer une chaîne vide.
Changer la règle par défaut pour une chaîne de départ.
Lister les règles.
Détruire (flush)les règles d'une chaîne.
Mettre à zéro les compteurs de bits et de paquet d'une chaîne.
Page 20/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 16 : Le filtrage IP par iptables.
7.2 Manipulation des règles.
iptables -A
iptables -I
iptables -R
iptables -D
Ajouter une nouvelle règle à la chaîne.
Insérer une nouvelle règle à une position dans la chaîne.
Remplacer une règle à une position dans la chaîne.
Supprimer une règle à une position dans la chaîne.
8 Commandes systèmes.
8.1 Gestion des modules du noyau.
Les modules sont des fonctionnalités supplémentaire au noyau qui ont été compilés à la demande de
l'utilisateur comme option modulaire. Ces modules sont normalement chargés automatiquement à la
demande des programmes nécessitant un service supplémentaire. Il est possible faire ces (dé)chargements
de façon manuelle.
insmod nom-de-module
lsmod
rmmod nom-de-module
modprobe -l
attache manuellement le module au noyau.
donne la liste des modules chargés.
désinstalle manuellement un module du noyau.
Liste tous les modules pouvant être chargés.
8.2 Mise en service du forwarding.
Le routage par forwardind est généralement désactivé par souci de sécurité, il faut alors le valider
dynamiquement.
echo 1 > /proc/sys/net/ipv4/ip_forward
ou bien statiquement et pris en compte après un redémarrage.
net.ipv4.ip_forward=1 (dans le fichier /etc/sysctl.conf).
8.3 Sauvegarde des règles.
L'administrateur doit gérer le stockage de ces règles au risque de les perdre sur un redémarrage. Les
commandes iptables-save, iptables-restore sont dédiées à cela.
L'usage des administrateurs est d'ajouter un script firewall dans /etc/init.d pour systématiser le
chargement des règles au démarrage de la machine.
9 Exemples de règles.
Ex1: On désire tester l'installation des modules iptables et son fonctionnement.
On teste le fonctionnement normal.
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.076 ms
--- 127.0.0.1 ping statistics --1 packets transmitted, 1 received, 0% loss, time 0ms
On créé une nouvelle règle pour la chaîne INPUT qui détruit les paquets d'adresse source locale
pour le protocole icmp.
Page 21/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 16 : Le filtrage IP par iptables.
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
On teste pour constater que le paquet est bien transmis et non reçu.
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.076 ms
--- 127.0.0.1 ping statistics --1 packets transmitted, 0 received, 0% loss, time 0ms
Ex2: On désire partager à partir d'un LAN une machine à deux interfaces réseaux dont l'une est
connectée via un modem (ppp0) sur internet. On veut protéger le LAN des intrusions tout en
permettant un accès en sortie et en entrée quand il s'agit de la réponse d'une requête émanant du
LAN.
On va utiliser un module permettant le suivi de connection par ''états'' nommé conntrack.
#insmod ip_conntrack
#insmod ip_conntrack_ftp
On crée une nouvelle chaîne appelé block pour y mettre des règles qui seront respecter dans les
cas de l'INPUT et du FORWARD, cela évite de les écrire deux fois.
#iptables -N block
On crée une règle qui laissera les paquets passer uniquement dans le cas d'une liaison déjà
établie et dont les adresses dst et src sont en relation avec cette liaison.
#iptables -A block -m state –state ESTABLISHED,RELATED -j ACCEPT
On crée une règle qui laissera passer les paquets d'une nouvelle liaison uniquement si sa
demande provient de l'interface concernée par le LAN.
#iptables -A block -m state –state NEW -i ! ppp0 -j ACCEPT
On renvoie les paquets se présentant devant les chaînes INPUT et FORWARD sur la chaîne block.
#iptables -A INPUT -j block
#iptables -A FORWARD -j block
Le schéma de filtrage devient alors celui de la figure 2.
Page 22/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 16 : Le filtrage IP par iptables.
Entrée d'un
paquet.
( fig. 2 )
Décision de
routage
INPUT
Emission du paquet.
FORWARD
block
Processus locaux
Page 23/65
OUTPUT
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 17 : La centralisation des services réseaux par xinetd.
MODULE 17 : La centralisation des services réseaux par xinetd.
1.1 Généralités.
Le daemon xinetd appelé également super-daemon va s'interposer entre les requêtes réseaux et les serveurs
concernés du type telnet, ftp, ssh, http...
Il va considérer la requête et pouvoir y réagir de plusieurs façons :
-autoriser ou interdire l'accès au serveur.
-lancer le serveur concerné et lui passer la requête.
-changer le port de la requête à l'insu du client.
-journaliser la communication.
Ex mode autonome ou « stand-alone ».
serveur ssh, ftp, telnet
commandes shell clientes:
ssh
ftp
telnet
adresse ip serveur + No de port
sshd
vsftpd
réponses
in.telnetd
Ex mode centralisé par xinetd.
serveur ssh, ftp, telnet
commandes shell clientes:
adresse ip serveur + No de port
ssh
ftp
telnet
xinetd
sshd
arrêt/marches des
« sous-daemons » par
xinetd
vsftpd
in.telnetd
2 Le contrôle d'accès aux services et le tcp-wrapper.
2.1 Généralités
Les fonctions du tcp-wrapper (regroupeur) sont intégrées dans la librairie libwrap.a qui est installée via le
package rpm tcp_wrappers-libs. L'analyse des requêtes se fera par le programme tcpd qui lira à chaque
appel les fichiers ou listes de contrôles hosts.allow et hosts.deny.
2.2 Les listes de contrôles hosts.deny et hosts.allow.
Ces deux listes de contrôles sont lues à chaque requête réseau. Le fichier hosts.allow est prioritaire
sur hosts.deny et sera consulté en second lieu, si deux règles sont contradictoires la dernière lue sera
prise en vigueur.
Leurs syntaxes est identiques, il y a une règle par ligne comportant deux champs obligatoires et un
Page 24/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 17 : La centralisation des services réseaux par xinetd.
troisième facultatif, le séparateur de champs est le caractère '':''.
<liste_démons> : <liste_clients>[ : spawn <commande_shell> &]
liste_démons:
liste de deamon(s) séparé(s) par un espace.
liste_clients:
adresse(s) IP, noms IP, adresse de domaine (192.168.20. ou 196.20.12.0/24 ou
196.20.12.*, ou 196.20.12.3? pour signifier de 196.20.12.30-39).
commande_shell:
n'importe quel exécutable disponible sur la ligne de commande, appelée par la
commande spawn et lancer en background (&).
Exemple d'une règle du fichier hosts.deny concernant le daemon in.telnetd :
in.telnetd: 196.20.12. : spawn (/bin/echo $(date) %u >> /var/log/tcpWrapper-telnet) &
A chaque refus de connection par telnet sera stockés, dans un fichier de journalisation, la date courante et
le nom de login.
3 Le super-daemon xinetd.
3.1 Généralités.
Xinetd est qualifié de super-daemon car il va permettre le contrôle de daemons de services réseaux. Il va
remplir les fonctions suivantes :
-arrêt/marche des daemons déclenchés par les requêtes clientes adressées aux services gérés.
-contrôle des demandes en liaison avec le tcpWrapper.
-prise d'information et journalisation supplémentaire à tcpWrapper.
-personnalisation de connection par gestion des nombres d'instances de services en cours.
-ré-acheminement de port entre le client et le daemon géré.
3.2 Configuration du daemon xinetd.
Le daemon xinetd est mis en fonction par son script systemV respectif se trouvant dans
/etc/init.d. Ses paramètres se trouvent dans le fichier /etc/xinetd.conf qui lui-même inclut
les fichiers se trouvant dans son répertoire respectif ; /etc/xinetd.d. Ce répertoire contient un fichier
de paramètres par service géré.
Ex de fichier /etc/xinetd.d/wu-ftpd chargé de la gestion du service ftp distribué par l'Université
de Washington (wu-ftp) :
# default: on
# description: The wu-ftpd FTP server serves FTP connections. It uses \
#
normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = no
socket_type = stream
wait
= no
user
= root
server
= /usr/sbin/in.ftpd
server_args
= -l -a
log_on_success
+= DURATION
nice
= 10
}
Note: un manuel est dédié à xinetd.conf qui explicite toutes les options possibles. Les plus sensibles à
Page 25/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 17 : La centralisation des services réseaux par xinetd.
l'installation seront disable (no pour valider le service) et server (le path absolu du daemon du service).
Le service xinetd doit être relancé pour prendre en compte les changements de paramètres.
3.3 Liaison et ré-acheminement de port.
La liaison permet de relier un service à une interface spécifiée et à nulle autre même en présence de
plusieurs adresses IP sur une machine. Un service ne sera disponible qu'a partir d'une seule adresse
spécifiée par l'option bind.
Le ré-acheminement redirige une requête cliente sur un port et/ou une adresse IP différente(s) de la
demande sans que cela soit visible à l'utilisateur. L'option redirect initialisée avec une adresse IP et un
numéro de port va traiter le ré-acheminement.
Ex assurant que le service telnet est lié uniquement à l'adresseIP externe 129.102.8.20. Toute demande
faites à cette adresse est ré-acheminée vers une deuxième interface réseau interne d'adresse 10.0.0.10
pouvant passer par un firewall. L'utilisateur ou le programme auront l'illusion de travailler directement
avec la machine 129.102.8.20.
service telnet
{
socket_type
= stream
wait
= yes
server
= /usr/sbin/in.telnetd
log_on_success
+= DURATION USERID
log_on_failure
+= USERID
bind
= 129.102.8.20
redirect = 10.0.0.10 2323
}
Page 26/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 18 : L'impression.
MODULE 18 : L'impression.
1 Les principaux serveurs d'impression.
1.1 Généralités.
Le serveur d'impression le plus répandu sur Unix est lpd (LinePrinterDaemon) qui tend a être remplacé par
cups (CommonUnixPrintingSystrem-deamon) qui reprend les grands principes de son prédécesseur en y
ajoutant un confort d'administration dont une interface graphique de paramétrage.
Cups implémente un autre daemon nommé cups-lpd qui le rend compatible aux requêtes clientes de type
lpd.
Cups et lpd sont deux serveurs pouvant être paramétrés pour gérer l'impression sur la machine où ils sont
installés. On peut également rédiriger les impressions sur une autre machine appelée serveur d'impression
qui elle même possèdera l'un des deux daemons en service.
1.2 Installation.
Les deux produits sont disponibles au format rpm en ce qui concerne une installation RedHat ou Fedora.
Leurs contrôles et mises en fonction respecte les niveaux de démarrage du SystemV (voir module 24).
2 Le daemon LPD.
2.1 paramétrage.
Le daemon lpd utilise essentiellement le fichier /etc/printcap qui contient une ligne par imprimante
déclarée. On y trouve en autre le nom de l'imprimante ou ses alias, l'adresseIP, les noms des fichiers logs,
le filtre d'impression.
2.2 L'organisation dans l'arborescence Unix.
Chaque imprimante déclarée possède un répertoire de file d'attente respectif à son propre nom. On trouvera
par exemple les répertoires, /var/spool/lpd/lp1 et /var/spool/lpd/lp2 dans le cas de 2
imprimantes déclarées sur un système.
2.3 Principe.
LPD scrute ses répertoires spooler en permanence dans le but de voir si un nouveau job d'impression y a
été placé par la commande lpr. Le cas échéant il utilise les paramètres issus d'/etc/printcap pour
savoir à quel périphérique passer le job une fois qu'il aura été traduit dans un langage compatible avec
l'imprimante. Il s'agit la plupart du temps de fichiers postscripts.
2.4 Les commandes d'impression.
lpr
$lpr -Plp1 /etc/passwd (pour imprimer le fichier /etc/passwd sur l'imprimante lp1).
lpq
$lpq (pour connaître l'état de la file d'attente par défaut, non spécifiée par l'option -P).
lprm
$lprm 3 (pour enlever le 3ème job en file d'attente).
lpstat
$lpstat -Plp1 (pour obtenir le status de l'imprimante nommée lp1).
3 Le daemon CUPS.
3.1 paramétrage.
Page 27/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 18 : L'impression.
Les imprimantes sont paramétrables via l'interface graphique disponible par un client http comme
netscape. L'adresse URL est celle de la machine courante en y spécifiant l'utilisation du port 631.
(ex http://localhost:631).Les login et password de l'utilisateur root seront nécessaires.
3.2 L'organisation dans l'arborescence Unix.
Elle est basée sur la même ergonomie que lpd.
3.3 Principe.
Le daemon cups utilise les fichiers PPD (PostscriptPrinterDescription) propre à chaque type d'imprimante
ce qui permet d'en utiliser toutes les spécificités sans difficulté (recto-verso, format, type de bacs de
chargement...).
3.4 Les commandes.
Toutes les commandes lpr seront compatibles avec cups. La commande lpoption permet d'utiliser les
options de l'imprimante sans passer par l'interface graphique.
Page 28/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 18 : L'impression.
4 Remarques.
L'interface graphique printtool est disponible également sur RedHat pour le paramétrage d'imprimantes.
Page 29/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 19 : Le partage de fichier par NFS.
MODULE 19 : Le partage de fichier par NFS.
1 Généralités.
•
Fonctionalités.
Le service NFS NetworkFileSystem permet le partage de fichiers dans une structure client-serveur de
machines Unix ou Linux. Cela va permettre de faire des opérations de montage de FileSystem via un réseau
TCP/IP de la même manière qu'il est possible de le faire localement. Le résultat d'un montage NFS se
concrétisera donc par l'adjonction d'une arborescence externe rattachée à un point de montage de
l'arborescence locale. Après un tel montage, l'accès au fichiers locaux ou distants sera transparent.
L'administration des montages NFS est contrôlée du point de vue des adresses IP.
•
Historique.
Ce protocole développé par la société SUN vers 1980 est devenu rapidement un standard Unix. On utilise
aujourd'hui les versions 2 et 3 compatibles entre elles, la version 3 est utilisée par défaut lors d'une demande
de connection client-serveur.
•
Implémentation.
NFS est géré par plusieurs daemons communiquant avec le noyau. Ce dernier doit avoir été compilé avec les
options respectives ce qui est fait par défaut dans la plupart des cas. Les archives RPM concernant rpcbind et
NFS doivent également être présentes.
2 RPC et portIP.
•
RPC RemoteProcedureCall.
Les RPC sont un ensemble d'appels de procédures à distance permettant la transparence d'utilisation locale ou
distante comme NFS pour le montage de FS. Les RPC œuvrent au niveau de la couche session du modèle
OSI.
•
Map RPC/PortIP
Le service systemV rpcbind et daemon de même nom travaille à l'aide d'une carte de correspondance entre les
numéros de port IP (voir /etc/services) et les numéros de programmes RPC. rpcbind stocke, aux
lancements des processus utilisant les RPC, le numéro de programme RPC et le numéro de service IP qu'ils
utilisent. Ainsi, chaque requête émanant d'un client en possession d'un numéro de programme passe par
rpcbind qui lui indique son numéro de port IP à utiliser.
La carte d'rpcbind est à rafraîchissement dynamique à condition qu'il soit lancé avant les services RPC, cette
chronologie est impérative dans le cas d'NFS par exemple.
La commande rpcinfo permet de voir la carte de correspondance de rpcbind.
[root@zephyr root]# rpcinfo -p localhost
program no_version protocole no_port
100000
2 tcp
111 portmapper
100000
2 udp
111 portmapper
100011
1 udp
807 rquotad
100011
2 udp
807 rquotad
100011
1 tcp
810 rquotad
100011
2 tcp
810 rquotad
100005
1 udp 32768 mountd
100005
1 tcp 34322 mountd
100005
2 udp 32768 mountd
Page 30/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 19 : Le partage de fichier par NFS.
100005
2 tcp 34322 mountd
100005
3 udp 32768 mountd
100005
3 tcp 34322 mountd
100003
2 udp 2049 nfs
100021
1 udp 32770 nlockmgr
100021
3 udp 32770 nlockmgr
3 Paramétrage d'un serveur NFS.
3.1 Structure du fichier /etc/exports (Extrait de la page de man exports).
Le fichier /etc/exports sert de liste de contrôle d'accès pour les systèmes de fichiers à exporter aux
clients NFS. Il est utilisé à la fois par le daemon de montage NFS mountd et par le daemon serveur NFS
nfsd.
Chaque ligne est composée de deux champs minimum. Le premier est le nom du répertoire exporté. Tous
les champs suivants représentent une liste de hosts séparés par un espace dont les options sont exprimées
entre parenthèses. Les lignes blanches sont ignorées, et un # indique un commentaire s'étendant jusqu'à
la fin de la ligne.
exemple de fichier /etc/exports :
# repertoire liste-machines (liste-options)
/home/user1 host1(ro) host2(rw)
/usr/src
host4(ro) host2(ro)
/var/www/html *.uvsq.fr (ro) host2 (rw)
/usr/share/doc (ro)
Attention, la syntaxe prévoit l'espace ou le tab comme séparateur de champs et l'* comme host générique.
Un host non-exprimé est remplacé l'*, un droit non-exprimé est remplacé par ReadOnly.
Cet exemple met en valeur l'ambiguïté des valeurs prises par défaut dans la 2eme ligne.
/home/coulon host1(rw) #export pour host1 en mode lect./ecrit.
/home/coulon host1 (rw) #export pour host1 en lect. par défaut et lect./ecrit. pour tous les autres.
Toute modification du fichier /etc/exports devra être suivie de la commande de validation :
# exportfs -a
La vérification de ces paramètres peut être faites avec les commandes exportfs ou showmount. Ces
commandes nécessitent que le serveur NFS soit lancé. Dans la cas contraire, rpcbind signalera que ces
commandes font appels à des programmes qu'il n'a pas mis dans sa carte.
La question des pouvoirs de l'utilisateur root sur un FS distant monté est considérée par l'option
root_squash qui est prise par défaut. A l'inverse l'option no_root_squash est à stipuler et donne tous les
droits à l'utilisateur root sur le FS distant monté.
3.2 Lancement de rcpbind et de NFS.
Leur lancement se fait via les scripts de démarrage systemV standards.
# service rpcbind start
il lance le daemon rpcbind
# service nfs start
Page 31/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 19 : Le partage de fichier par NFS.
il lance les daemons rpc.mountd, nfsd et rpc.rquotad.
rpcbind: correspondance numRPC/num_port_IP.
rpc.rquotad: quotas utilisateurs du serveur.
rpc.mountd: réception des demandes de montage et comparaisons avec les exports du serveur.
nfsd: dialogue entre le noyau et les requêtes dynamiques distantes.
4 paramétrage du client NFS.
Les étapes de mise en œuvre d'un client sont les suivantes :
-lancer rpcbind.
-prévoir un point de montage dans l'arborescence (dans /mnt ou autre).
-monter le répertoire distant (ex: # mount -t nfs serveur:/home/httpd/html /mnt/nfs ).
note: la version 4 affecte par défaut l'utilisateur nobody aux fichiers/dossiers montés sur le client. Il faut
modifier le fichier /etc/idmapd.conf en dé-validant ces paramètres par des commentaires.
5 Montage au démarrage et optimisation.
5.1 Montage au démarrage.
Le fichier /etc/fstab est prêt, au même titre que pour les FS locaux, à recevoir une ligne
correspondant à un FS distant. On ajoute alors « nomIP: » devant le répertoire à importer.
5.2 Montage optimisé ou automontage.
Le montage par /etc/fstab possède l'inconvénient d'occuper le réseau, le serveur, et le client même
lorsque le partage de fichiers n'est pas utilisé. L'automonteur va permettre des (dé)montages dynamiques
qui seront dictés par les requêtes d'accès aux fichiers et soulager ainsi cette charge inutile. Un déplacement
dans l'arborescence ou l'ouverture d'un fichier sont causes d'automontages dès qu'il s'agit d'aller vers un FS
distant monté.
On peut prendre comme exemple une machine démarrant en niveau 5 sans montage NFS tant qu'aucun
login n'a été effectué. Le login d'un utilisateur entraine un accès à son compte qui est alors monté à ce
moment précis.
Implémentation:
L'automounter se lance à partir du script /etc/init.d/autofs qui prend sa configuration dans le
fichier /etc/auto.master.
Ce fichier contient une entrée par ligne à deux champs ; <point de montage>
<type de map>
Généralement, on utilise une map représenté par un fichier nommé auto.xxx (xxx représentant le point de
montage en question).
exemple: on désire monter le répertoire /home exporté par le serveur PC1 à chaque requête faite sur le
répertoire /home local.
/etc/auto.master :
/etc/auto.home :
/home/
*
auto.home
Page 32/65
-fstype=nfs,hard,intr PC1:/home/&
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 20 : Administration et authentification centralisées par NIS.
MODULE 20 : Administration et authentification centralisées par NIS.
1 Généralités.
•
Fonctionalités.
Le système NIS NetworkInformationSystem développé par SUN vers 1980 est le complément de NFS. Il
permet de centraliser les principaux fichiers d'administration utilisés généralement en local.
(/etc/hosts..passwd....group...shadow...).
•
Historique.
A sa création ce système portait le nom de YellowPages comme celui faisant référence au service des
renseignements des British-Telecom. Ces derniers étant les premiers dépositaires du nom, la justice tranchât
en leurs faveurs. A la la fin des années 80 les YellowPages informatiques avaient laissé la place au système
NIS dont la plupart des commandes continuent à être préfixées par les caractères yp.
•
Implémentation.
NIS est géré par plusieurs daemons communiquant avec le noyau. Ce dernier doit avoir été compilé avec les
options respectives ce que est fait par défaut dans la plupart des cas. Les archives RPM concernant rpcbind et
NIS doivent également être présentes.
2 Principe du client-serveur NIS.
Un serveur NIS dit primaire, possédant toutes les informations d'administration dans les fichiers standards du
répertoire /etc, transfère ces données dans des maps respectives à chaque fichier et les rend consultables par le
réseau. Ces maps sont organisées de la même façon qu'un système de base de données et garantissent intégrité et
disponibilité des données.
Par souci de fiabilité, il existe des serveurs secondaires possédant également toutes les données. Les requêtes
sont de type broadcast et rien n'assure à l'avance qu'une requête soit adressée au serveur principal ou à un autre.
Les serveurs secondaires sont des serveurs recevant des mises à jour régulières des maps mais qui n'ont pas la
structure principale dans /etc qui a servi à les créer. Les ajouts/retraits de données se font uniquement sur le
serveur principal.
Le client possède les outils nécessaires à la consultation des maps en envoyant une requête de type broadcast.
Pour ce faire, il doit auparavant se déclarer faisant partie d'un domaine identique à celui des serveurs. Ce
domaine n'est lié en rien au domaine IP.
3 Paramétrage du serveur NIS.
3.1 Les pré-requis.
Les packages rpcbind et ypserv doivent être installés au préalable. ypserv aura placé les daemons ypserv et
rpc.yppasswd dans /usr/bin et les scripts de démarrage respectifs dans /etc/init.d (ypserv,
yppasswd).
Le service rpcbind doit être lancé puis ensuite ypserv et yppasswd.
ypserv: serveur NIS.
rpc.yppasswd: daemon ayant en charge via la commande yppasswd, de passer au serveur un nouveau mot
de passe entré sur un client NIS. Il y aura déclenchement automatique de la reconstruction des maps
(update) ainsi qu'un envoi de mise à jour au serveur secondaire éventuel (push).
Page 33/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 20 : Administration et authentification centralisées par NIS.
3.2 Le domaine.
Il faut renseigner le fichier des paramètres réseaux globaux qui est /etc/sysconfig/network pour
y ajouter la ligne suivante:
NISDOMAIN=xxx (où xxx est une suite de caractères représentant le domaine associé au service NIS).
Ce paramètre sera pris en compte après redémarrage ou dynamiquement par la commande nisdomainname.
La relance du serveur doit retourner le nom de domaine.
3.3 Déclaration des hosts autorisés [ facultatifs ].
Ils sont à définir dans le fichier /var/yp/securenets :
255.0.0.0 127.0.0.0
#pour le localhost au cas où la machine serait également cliente NIS.
255.255.255.0 192.168.1.0 # pour tout le domaine concerné.
3.4 Choix des fichiers d'administration à gérer par le serveur NIS.
Il s'agit de choisir les fichiers placés dans /etc/ que l'on désire divulguer et donc traduire en maps NIS.
Notes sur makefile :
La traduction, au même titre qu'une compilation, va être exécutée via la commande standard make et son
fichier indispensable le Makefile ( /var/yp/Makefile). Les paramètres spécifiques à chaque
traduction/compilation/action sont rattachés à une suite de mots clés suivis de leurs actions respectives. On
utilisera la commande make ainsi :
#make all ≈ #make (faire tout ce qui est contenu dans le Makefile).
#make programme1 (se placer à l'endroit du Makefile à l'étiquette programme1 et faire les actions associées).
Il s'agit dans notre cas de trouver le mot clé all et d'y valider les actions associées aux fichiers se trouvant
dans /etc/ et que l'on désire centraliser sur le serveur.
Il suffit ensuite de lancer l'une des deux commandes :
#make
ou
#make all
On trouvera alors deux maps par fichier d'administration choisi se trouvant dans le nouveau répertoire
/var/yp/xxx (xxx est le nom du domaine NIS déclaré).
Il faut valider ensuite les hosts correspondant aux clients dont vous désirer donner la consultation des maps
possibles. Changer le fichier /etc/ypserv.conf de la façon suivante :
# Host
: Map
#
192.168.2.
192.168.2
: Security : Passwd_mangle
: passwd.byname : port
: passwd.byuid : port
: yes
: yes
Ne pas oublier de relancer le serveur.
4 paramétrage du client NIS.
4.1 Les pré-requis.
Les packages rpcbind et ypbind doivent être installés au préalable.
Le service rpcbind doit être lancé puis ensuite ypbind.
Page 34/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 20 : Administration et authentification centralisées par NIS.
4.2 Le domaine.
idem au serveur.
4.3 Configuration du client NIS.
Elle s'effectue dans le fichier /etc/yp.conf où l'on ajoute les lignes suivantes :
domain xxx(son nom) server 192.168.0.1
ypserver xxx(son nom IP).
Ne pas oublier de relancer le client NIS.
4.4 Organisation hiérarchique de l'administration.
Elle est à paramètrer dans le fichier /etc/nsswitch.conf. (NameService Switch). L'ordre de priorité
se lit de la gauche vers la droite. Chaque requête va tenter d'être traitée dans l'ordre précisé et s'arrêter dès
au premier répondant à la demande.
ex de fichier /etc/nsswitch.conf (files représentent les fichiers locaux se trouvant dans /etc) :
passwd: files nis
group:
files nis
hosts:
files nis dns
Ne pas oublier de relancer le client NIS.
5 Tests et expérimentation.
Une relation client/serveur NIS doit pouvoir se tester avec les opérations suivantes :
-login à travers un réseau en l'absence du login sur la machine locale.
-changement de mot de passe via le réseau.
Les commandes utilitaires d'un client NIS sont :
ypwhich: pour connaître le serveur auquel le client est associé.
ypcat: consultation des maps.
ypmatch: équivalent du grep avec recherche sur les maps.
yppasswd: changement du mot de passe.
Page 35/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
MODULE 21: L'annuaire LDAP.
1 Généralités.
1.1 Définition.
LDAP signifie Lightweight Directory Access Protocol qui est une version allégée de DAP qui est le
protocole d'accès au service d'annuaire X500. LDAP a été conçu pour fournir un système d'annuaire
sur TCP/IP disponible en réseau interne ou externe.
1.2 Historique, du fichier local à l'annuaire.
1970. Gestion multi-utilisateurs et LAN par fichiers; /etc/hosts, /etc/passwd, /etc/group...
1980. Gestion centralisée par NIS et YellowPages.
1984. Gestion du nommage IP par DNS (annuaire à fonctionnalité dédiée).
1988. Annuaire X500 (système lourd et non adapté à TCP/IP).
1993. Annuaire LDAP (développé comme frontal à X500).
1995. LDAP est un annuaire à part entière et dédié à TCP/IP.
1.3 Annuaire et SGBD.
Bien que proche et dérivé d'un Système de Gestion de Bases de Données, un annuaire possède ses
propres caractéristiques :
-un schéma standardisé, extensif et non dédié à une problématique propre comme sur un SGBD.
-une conception optimisée pour son utilisation principale qui est la consultation (rapide en lecture).
-une indépendance des objets entre eux.
-une ignorance des structures de stockage des objets.
-la possibilité d'objets distribués sur plusieurs annuaires.
-l'impossibilité d'objets répartis sur plusieurs annuaires.
Un annuaire est assimilable à un dépôt de données concernant les utilisateurs du réseau mais pouvant
être étendu à n'importe quels autres besoins comme la gestion de parc machines, inventaires...
1.4 Le protocole LDAP.
Conçu à ses débuts comme frontal à X500, LDAP fournit un service de représentation des données
et un mode de communication entre client et serveur. Il utilise quatre modèles de référence :
-un modèle d'information, qui donne les type de données de l'annuaire.
-un modèle de désignation, qui organise l'arborescence et la nomenclature des objets.
-un modèle fonctionnel, qui permet l'accès et la consultation/modification/destruction des données.
-un modèle de sécurité, qui gère l'authentification et le cryptage.
Le protocole gère également les communications entre client et serveur, les réplications de données
pour redondance et optimisation ainsi que les liens entre annuaires permettant un accès direct distant.
L'encodage des données de type LBER (Lightweight Basic Encoding Rules) est simplifié par
l'intermédiaire d'outils (scripts) et de fichiers texte de type LDIF (Lightweight Data Interchange
Format).
Page 36/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
2 Le modèle d'information.
C'est le modèle décrivant les données gérées par un annuaire ldap où il est question de schéma, de
classes d'objets, d'entrées et d'attributs.
2.1 Terminologie.
LDAP permet la consultation de données appelées entrées(entry) pouvant avoir une représentation
concrète (personne, machine...) ou abstraite (adresse IP, numéro de téléphone...).
Ces entrées sont composées de plusieurs objets comprenant chacun des attributs.
Un attribut est une paire mot-réservé:valeur.
La terminologie d'objet, empruntée aux langages orientés objet, est en réalité une instenciation de la
classe d'objet concernée, constituée de ses attributs et de ses propres valeurs.
2.2 Le schéma d'annuaire (Directory Schema).
C'est l'ensemble de toutes les classes d'objets et d'attributs disponibles dans l'annuaire. C'est à grace
à lui que le serveur LDAP va garantir sa structure logique. Toute création de nouvelle entrée sera
composée d'une classe existante au schéma composée de ses attributs propres.
2.3 Les attributs d'entrée.
Il existe deux sortes d'attributs, ceux réservés au serveur (system attributes) et ceux réservés à
l'utilisateur (user attributes). Il est possible de créer des attributs mais il est plus simple d'utiliser les
existants qui sont déja nombreux.
Voici une liste d'attributs utilisateur extraite du site www.commentcamarche.net, ceux marqués en
gras sont très fréquemment rencontrés.
Attribut
Description
aliasedObjectName
DN de l'objet dont celui en cours est un alias
authorityRevocationList
Liste de certificats révoqués par l'autorité chargée de les réguler
businessCategory
Activité professionnelle d'une entreprise ou d'une personne
c
Code du pays en deux lettres (respectant le standard ISO 3166)
caCertificate
Certificat de l'autorité de régulation
certificateRevocationList
Liste des certificats révoqués par l'autorité de régulation
cn
Nom de l'objet (common name)
dc
Une des parties du NomIP d'un domaine internet (domain componet)
description
Description de l'objet
DistinguishedName ou dn
Nom distingué (utilisé par d'autres attributs par héritage)
facsimileTelephoneNumber
Numéro de fax
GivenName ou gn
Prénom de la personne
houseIdentifier
Identifiant d'un batiment
initials
Initiales d'une personne
internationalSDNNumber
Numéro ISDN
l
localité de l'objet (géographique)
member
Distinguished Name des membres
name
Nom (utilisé par d'autres attributs par héritage)
o
Nom de l'organisation
ObjectClass
Classe d'objets
ou
Unité organisationnelle (branche de l'organisation)
Page 37/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
Attribut
Description
owner
Nom du propriétaire de l'objet
postalAddress
Numéro de série de l'objetAdresse postale (sans le code postal)
postaCode
Code postal
postalOfficeBox
Boîte aux lettres (postale)
presentationAddress
Adresse réseau de la présentation de l'objet (généralement une URL de la présentation )
protocolInformation
Attribut complémentaire à presentationAddress pour définir le protocole à utiliser
registeredAddress
Adresse postale pour des envois de courriers recommandés et de colis
seeAlso
DN d'objets complémentaires
serialNumber
Numéro de série de l'objet
sn
Nom de famille de la personne (surname)
st
Etat ou région (state)
street
Nom de la rue et assimiilé (boulevard, ...)
telephoneNumber
Numéro de téléphone
telexNumber
Numéro de télex
title
Titre de la personne (différent de fonction)
uid
Identifiant unique de l'objet
userCertificate
Certificat de l'utilisateur
userPassword
Mot de passe de l'utilisateur
2.4 Les classes d'objets.
Les classes d'objets ldap définissent leurs propres structures et attributs. L'instanciation correspond
alors à la création d'une entrée à partir d'une classe dont les attributs sont complétés de leurs valeurs.
La notion d'héritage existe également. Toute classe hérite directement de sa classe ascendante
qui est unique.
Une classe peut engendrer plusieurs « sous-classes », héritant chacune de leur parent.
Il existe trois types de classes objets:
-la classe abstraite, l'héritage seul est possible, non instanciable, la classe top qui est la plus haute
hiérarchiquement est abstraite.
-la classe structurelle, elle est instanciable, la création d'entrées est donc possible.
-la classe auxiliaire, non instanciable, elle donne la possibilité d'ajouter des attributs à une classe
structurelle.
Ci-dessous, une figure représentative de l'héritage de classe :
Page 38/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
(abstract)
top
(structural)
(auxiliary)
person
companyPerson
(structural)
(structural)
organizationalPerson
residentialPerson
La classe person hérite de la classe top, tous les attributs de top sont disponibles (instaciation possible car structural).
La classe companyPerson hérite de la classe top et complète la classe person (pas d'instanciation).
Les classes organizationalPerson et residentialPerson hérite de la classe person, tous les attributs de person sont disponibles.
Une classe d'objet est déclarée par :
-un nom unique
-un OID (ObjectIdentifier) unique, c'est une suite de chiffres séparés par des points.
-des attributs obligatoires (avec mot réservé MUST).
-des attributs facultatifs (avec mot réservé MAY).
-un type (structurel, auxiliaire ou abstrait).
2.5 Le format d'échange de données LDIF.
Le format LDIF permet de représenter les données LDAP sous format texte standardisé, il est utilisé
pour afficher ou modifier les données de la base. Les fichiers sont importés ou exportés par
l'intermédiaire d'outils de type applicatif ou script. Voici l'exemple d'un fichier LDIF exporté d'un
fichier /etc/hosts d'une machine linux :
dn: cn=localhost.localdomain,ou=Hosts,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
objectClass: top
objectClass: ipHost
objectClass: device
ipHostNumber: 127.0.0.1
cn: localhost.localdomain
cn: localhost
dn: cn=precision,ou=Hosts,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
objectClass: top
objectClass: ipHost
objectClass: device
ipHostNumber: 196.53.25.200
cn: precision
Page 39/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
3 Le modèle de désignation.
C'est le modèle décrivant le nommage des objets et leur classement hiérarchique sous la forme d'un
arbre.
3.1 L'arbre DIT (Directory Information Tree).
L'arborescence ldap est assimilable à celle d'unix aux spécificités près suivantes :
-sa racine unique est appelée root entry.
-chaque noeud de l'arbre représente une entrée appelée DSE (Directory Service Entry).
-l'arbre est décrit par une entrée appelée rootDSE (root Directory Specific Entry).
Chaque noeud ou entrée est unique mais correspond à une classe d'objet qui peut etre utilisée à tout
autre niveau de l'arbre.
Ex de DIT :
dc=iut-velizy,dc=uvsq,dc=fr
ou=apprenant
ou=enseignant
uid=12392
cn=dupond
3.2 L'accès aux entrées.
On accède à une entrée par son DN (Distinguished Name) qui est assimilable au path de l'arbre unix.
Il peut etre absolu ou relatif, on parle alors de RDN (Relative Distinguished Name).
Les principaux attributs utilisés pour exprimer un DN sont les suivants :
Attribut Description
dn
Nom distingué (utilisé par d'autres attributs par héritage)
dc
Une des parties du NomIP d'un domaine internet (domain componet)
ou
Unité organisationnelle (branche de l'organisation)
o
Nom de l'organisation
cn
Nom de l'objet (common name)
sn
Nom de famille de la personne (surname)
uid
Identifiant unique de l'objet
Accès par DN à l'entrée dupond -> dn: cn=dupond,ou=enseignant,dc=iut-velizy,dc=uvsq,dc=fr
Par RDN à partir de dc=iut-velizy,dc=uvsq,dc=fr -> rdn: cn=dupond,ou=enseignant
4 Le modèle fonctionnel.
C'est le modèle décrivant les modalités d'accès à un serveur ldap ainsi que les opérations de création,
modification et destruction.
Les opérations de base sont les suivantes :
Page 40/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
Opération
Description
search
Recherche sur critère
compare
Comparaison de 2 objets
add
Ajout d'entrée
modify
Modification du contenu d'une entrée
delete
Suppression d'un objet
rename
Modification du dn d'une entrée
bind
Connexion à un serveur
unbind
Deconnexion d'un serveur
abandon
Arret d'une opération
extended
Opération étendue (permet création d'opération autre que les 9 précédentes)
On utilise plus couramment des outils d'interface et de fichiers de LDIF qui feront appel aux opérations
de base (voir 2.5).
5 Le modèle de sécurité.
C'est le modèle décrivant les aspects d'authentification, de droits d'accès, et de sécurité réseau qui sont
déclinés ainsi par la norme ldap :
-authentification.
-signature électronique.
-cryptage.
-filtrage réseau.
-ACL d'accès aux données.
-journalisation
6 Installation sur linux (fedora core 6)
6.1 Client
Les packages nécessaires sont :
-openldap-2.3.27-4.i386.rpm (contient les librairies et documentations).
-openldap-clients-2.3.27-4.i386.rpm (contient les commandes d'accès de
recherche/modification/destruction de la base ldap).
Ils sont installables via la commande yum ; #yum install openldap openldap-clients
6.2 serveur
Les packages nécessaires sont :
-openldap-2.3.27-4.i386.rpm (contient les librairies et documentations).
-openldap-servers-2.3.27-4.i386.rpm (contient l'application ldap, le schéma de base de l'annuaire, les
scripts perl de migration pour transfert des fichiers /etc ou autres vers l'annuaire).
Ils sont installables via la commande yum ; #yum install openldap openldap-servers
Page 41/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
6.3 Autres.
De manière facultative, les scripts shell disponibles sur le site contribs.martymac.com permettent les
manipulations de la base concernant les comptes POSIX (utilisateurs, groupes, machines). Ils sont
également utilisés par samba-ldap et n'ont que les commandes standards openldap-client comme
dépendances.
Il est également possible de développer des petits scripts pour grouper certaines commandes
fastidieuses et difficiles à retrouver.
Exemple d'un script permettant d'extraire les entrées cn désirées dans un fichier ldif. On peut ensuite
facilement détruire celles d'origines par la commande ldapdelete et les regénérer via ldapadd avec
le fichier ldif en entrée standard.
#!/bin/bash
#extract entries from ldap to redirect to /tmp/ldif
#for example used to save by extract, to delete after (ldapdelete)
#and restore after modify of /tmp/ldif
usage="Usage: extract entry1 entry2...entryN (entry format must be \"cn=...\")"
base="dc=fc,dc=iut-velizy,dc=uvsq,dc=fr"
cat /dev/null >/tmp/ldif
for i in $*; do
if [ $(echo $i | grep -v cn= ) ]; then exec echo $usage;fi
done
for i in $*;do
typeset -i long=$(ldapsearch -x -D cn=jp,$base -w toto $i | wc -l )
tailer=$[ long - 7 ] ; header=$[ tailer - 6 ]
ldapsearch -x -D cn=jp,$base -w toto $i | tail -$tailer | head -$header >>
/tmp/ldif
done
cat /tmp/ldif
7 Création de l'annuaire.
7.1 Création de l'arborescence.
7.1.1 Utilisation des fichiers ldif.
Après avoir décidé de son arborescence, on peut la réaliser à travers des fichiers ldif :
dc=iut-velizy,dc=uvsq,dc=fr
ou=hosts
ou=people
cn=penelope
Page 42/65
cn=paul
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
Les fichiers ldif correspondants sont respectivement; societe.ldif, branche.ldif, users.ldif :
dn: dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
objectClass: dcObject
objectClass: organization
o: iut
dc: fc
dn: ou=Hosts,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
ou: Hosts
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: uvsq.fr
dn: ou=People,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: uvsq.fr
dn: uid=paul,ou=People,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
uid: paul
cn: paul
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$sxySUJd8$7WIw/Xyi3i.HI6G2UBPDa.
ShadowLastChange: 13573
ShadowMax: 99999
ShadowWarning: 7
loginShell: /bin/bash
UidNumber: 10008
GidNumber: 10007
homeDirectory: /home/paul
dn: uid=penelope,ou=People,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
uid: penelope
cn: penelope
objectClass: account
objectClass: posixAccount
Page 43/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$sxySUJd8$7WIw/Xyi3isdfsdfHI6G2UBPDa.
ShadowLastChange: 13573
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 10009
gidNumber: 10007
homeDirectory: /home/penelope
Leur insertion dans l'annuaire est réalisées par les commandes :
#ldapadd -x -D "cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" -w toto -f societe.ldif
#ldapadd -x -D "cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" -w toto -f branche.ldif
#ldapadd -x -D "cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" -w toto -f users.ldif
-x désactive l'authentification SASL
-D exprime le DN de l'utilisateur ayant le droit de faire l'insertion.
-w exprime le mot de passe (passwd).
-f exprime une entrée de type fichier.
7.2 Paramétrage.
La création de l'arborescence n'aurait put etre faite sans que le service ldap soit paramétré et démarré
comme l'indique cette procédure :
Serveur
fichier /etc/openldap/slapd.conf
database bdb
suffix “dc=fc,dc=iut-velizy,dc=uvsq,dc=fr”
rootdn “cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr”
rootpw toto
…
access to *
by self write
by * read
(le suffixe de la base).
(l'administrateur de la base).
(le mot de passe de l'administrateur).
(les ACL exprimant les droits d'accès).
Le démarrage de l'annuaire se fait via les scripts systemV:
#service ldap start
Client
fichier /etc/openldap/ldap.conf (valider l'host et le suffixe de la base impérativement)
fichier /etc/nsswitch.conf (valider la consultation ldap après files )
Sur linux, le système PAM (Plug-In Authentification Module) partage sa librairie à toutes les
applications utilisant l'authentification. De nombreux paramètres sont présents à l'installation mais
il est parfois nécessaire de faire ces ajustements dans /etc/pam.conf ou dans /etc/pam.d.
Page 44/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
8 Utilisation de l'annuaire.
Exemples de commandes d'accès à l'annuaire :
cat /etc/passwd et getent passwd
permet de comparer les entrées disponibles en local et via l'annuaire
/usr/share/openldap/migration/migrate_passwd.pl /etc/passwd passwd.ldif
ldapadd -x -D "cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" -w jp -f passwd.ldif
permet de migrer en une seule commande le fichier local /etc/passwd dans un fichier ldif puis d'en
insérer le contenu dans l'annuaire.
ldapsearch -x -b "dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" cn=raoul
permet une recherche anonyme sur le serveur local.
ldapsearch -h 193.51.29.201 -x -b "dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" cn=raoul
permet une recherche anonyme sur le serveur distant
ldapdelete -x -D "cn=jp,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr" -w toto
cn=maelzel,ou=Hosts,dc=fc,dc=iut-velizy,dc=uvsq,dc=fr
permet la destruction d'une entrée correspondant à une machine.
9 Exemple d'installation/implémentation sur CentOS.
9.1 Journalisation.
9.1.1 Préciser au log système de prendre en charge l'annuaire ldap.
/etc/rsyslog.conf: (ligne 60): ajouter local3.*
/var/log/ldap.log
9.1.2 Préciser au script de démarrage de ldap qu'il travaille avec la journalisation système rsyslog.
/etc/init.d/slapd: (ligne 197): ajouter en fin de ligne du start daemon: -l LOCAL3
9.1.3 Re-démarrer les deux daemons concernés.
/etc/init.d/rsyslog restart ; /etc/init.d/slapd restart
9.2 Serveur.
9.2.1 Dé-valider la configuration au format ldif pour celle au format texte.
mv /etc/openldap/slapd.d /etc/openldap/slapd.d.NOT-USED
9.2.2 Reprendre la configuration de type texte.
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
Page 45/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 21: L'annuaire LDAP.
9.2.3 Faire paramétrage « classique » client/serveur voir §7.2
9.2.4 migrer les fichiers POSIX en fichiers ldif
▪
aller dans /usr/share/migrationtools
▪
modifier le point d'entrée de l'annaire (suffix) du fichier migrate_common.ph
▪
créer un fichier base.ldif à partir du script migrate_base.pl
▪
insérer le fichier base.ldif dans l'annaire
▪
idem pour tous les fichiers retenus à insérer dans l'annuaire.
9.2.5 Paramétrer l'authentification via LDAP
▪
modification du fichier /etc/nsswitch.conf voir §7.2
▪
paramétrage du fichier /etc/nslcd.conf + démarrage du daemon respectif
Une nouvelle conception est également utilisée. Elle s'appelle SSSD (System Security
Services Daemon) et tente à remplacer nss et pam.
9.2.6 notes personnelles
Page 46/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 22 : Le système graphique Xwindow.
MODULE 22 : Le système graphique Xwindow.
1 Généralités.
Xwindow est le système graphique standard sur Unix. Il gère la communication des équipements écran,
clavier, souris qui représente peu d'information à transmettre. Cela rend la chose utilisable sur une machine
locale aussi bien que sur un réseau.
Xwindow est le résultat de projets élaborés par les sociétés Xerox, Apple et par l'institut du MIT durant les
années 80. Différentes versions ont vu le jour au cours de cette période pour ce stabiliser aujourd'hui à la
version 11 release 6, on parle alors de X11R6.
2 Concept client/serveur Xwindow.
Un system graphique Xwindow fonctionne sur une structure client/serveur même si les deux composantes
résident sur la même machine.
Le serveur a en charge la gestion du matériel clavier, souris, écran.
L'application cliente utilise le serveur X et réalise l'interface homme-machine à l'aide des librairies Xwindow.
Serveur et application se servent du protocole Xwindow pour communiquer.
Note: Il est à noter que les notions de client et serveur sont inversées dans le cas d'Xwindow. Une station de
travail possédant un serveur X utilise des applications clientes distantes stockées par exemple sur un serveur
de fichiers.
3 Fonctionnalités et spécificités.
3.1 Le clavier.
Les séquences de touches suivantes sont perçues et interprétées par le serveurX :
-Cntrl, shift, meta + combinaisons avec clic droit et gauche de la souris.
Le copier/coller est obtenu, à la souris, par selection et clic-centre de la souris. Il est disponible entre toute
application puisque il est géré par le graphique.
3.2 L'écran.
Il est défini selon des classes d'objets dont le contenant principal est la RootWindow. La place des fenêtres
qui y seront contenues est exprimée sur un repère abscisses/ordonnées placé en haut à gauche de l'écran.
La géometrie des applications clientes est definie également selon ce repère.
fig.1
fig.2
Ex: xterm -geometry 100x10+250+450
y
y
x
x
xterm
w
Page 47/65
h
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 22 : Le système graphique Xwindow.
Le client et le serveur Xwindow pouvant se trouver sur une seule machine ou plusieurs, la variable
d'environnement DISPLAY va définir la machine recevant l'affichage.
Ex. pour un affichage local et initialisation en ligne de commande.
DISPLAY=localhost:0.0 ou
DISPLAY=:0.0
Le premier 0 exprime la première carte vidéo référencée sur la machine.
Le deuxième 0 exprime le premier port sur la carte vidéo.
Ex. pour un affichage distant et initialisation en ligne de commande.
DISPLAY=129.102.10.5:0.0
ou
DISPLAY=nomIP:0.0
Ex. pour lancer un xterm avec display distant en variable.
#xterm -display nomIP:0.0
4 Le Display Manager.
L'entrée sur un système commence toujours par une phase d'authentification, c'est le DisplayManager qui va
la réaliser dans le cas d'un système graphique Xwindow. Avant l'arrivée des micro-ordinateurs les
DisplayManager proposait également un choix de machine au moment de l'authentification d'où cette
appellation qui perdure aujourd'hui bien qu'ayant perdu son sens premier.
Il existe plusieurs DisplayManager que l'administrateur peut tester et installer selon ses besoins :
xdm, kdm, gdm...
5 Le Window Manager.
Comme l'indique son nom le WindowManager a en charge l'habillage des fenêtres mais également les menussouris et la notion de bureau.
C'est également à l'administrateur de faire des tests pour savoir celui qu'il doit installer parmis les plus
courants :
fvwm, twm, mwm, ou bien gnome et kde pour les plus sophistiqués.
6 Sécurité et contrôle d'accès.
6.1 Les listes de machines.
La commande xhost gère une liste de machines autorisées à exporter leur display sur la machine locale.
xhost xhost +
xhost + PC1
xhost - PC2
mise en fonction du contrôle par liste.
arrêt du contrôle par liste.
ajout du host PC1 à la liste des machines autorisées.
retrait du host PC2 de la liste des machines autorisées.
6.2 Le magic-cookie.
Il sert à valider ou non l'utilisateur demandeur du serveur X. Le cookie se trouve dans le
fichier .Xauthority placé dans le répertoire personnel de l'utilisateur. Il est connu par le serveur et identifie
à la connection l'utilisateur voulant utiliser le display de la machine. La reconnaissance repose sur les
droits unix du fichier contenant le cookie autorisé en lecture uniquement pour le propriétaire.
6.3 Sécurisation par clés de codage.
Il est possible d'utiliser ssh (SecureShell) pour transmettre le display et le cookie codés par clés
publiques/privées pour augmenter la sécurité.
Page 48/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
1 Structure physique d'un disque.
1.1 Généralités.
Une disquette ou « floppy » (disque mou) est assimilable, du point de vue de sa forme, à un petit disque audio
de type vinyl sur le lequel on vient poser une tête de lecture. L'accès à une disquette est assez proche de cela à
la différence que deux têtes opèrent en simultané, chacune sur une face pour une opération de lecture ou
d'écriture.
(fig. 3)
Un disque-dur est basé sur le même principe mais sera composé de plusieurs disques ou plateaux.
(fig. 4)
Soit l'exemple de la figure 4 où 8 têtes de lecture solidarisées, maintenant une position fixe pendant une
rotation complète des disques, dessinent un « cylindre » (figure 5).
Chaque plateau est constitué de pistes concentriques elles mêmes composées de secteurs.
(fig. 5)
(fig. 6) Disque vu de dessus.
pistes (tracks)
secteurs
Le nombre d'octets par secteur est en général de 512 mais il peut également en être un multiple.
1.2 Taille d'un disque.
Il existe une norme industrielle appelée CHS représentant le nombre de « Cylinders, Heads, Sectors ». On
Page 49/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
résumera la taille d'un disque à la formule suivante :
Size of disk = CHS * sizeof sector
Ex:
On veut exprimer la taille d'un disque de 4092 cyl, 16 têtes possédant 63 secteurs par piste.
Taille en secteurs = 4092 * 16 * 63 = 4 124 736
Taille en octets = 4 124 736 * 512 = 2 111 864 832 ≈ 2,111 GigaOctets.
1.3 Calcul de la taille d'une partition.
Dans un souci d'administration et de maintenance les systèmes Unix sont toujours installés sur des disque
partitionnés (swap et root étant les deux partition minimum).
Le partitionnement est l'opération de découpage d'un disque en plusieurs parties. Chaque partie sera
délimitée par un cylindre de début et de fin qui fixeront sa taille.
On la calcule de la manière suivante pour un résultat en MegaOctets :
(fig. 6)
m – n 1 ∗NbH ∗NbS ∗512
20
2
m
n
2 Structure logique d'un disque.
2.1 MBR MasterBootRecord et BR BootRecord.
Un disque partionné en quatre s'est vu octroyer un MBR et trois BR de la façon suivante :
MBR
Partition 1
BR
Partition 2
BR
Partition 3
BR
Partition 4
Le MBR est le secteur d'amorce principal au disque et les BR des secteurs d'amorçes propres à chaque
partition.
Ils sont constitués de la façon suivante :
Page 50/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
MBR
(512o)
BR
446 Déroulement de la
octets procédure de boot.
Code pour amorçage à
partir de cette partition
512 octets
64
Table
octets descriptive des
4 partitions
primaires.
AA55
(validation BIOS)
AA55
2.2 Démarrage, MBR et BR.
Le « bios » lit au démarrage le secteur 0 du disque appelé MasterBootRecord et charge ce qui est présent
à cet emplacement. Le bios trouvera soit :
-le code d'amorce pour démarrage à partir de cette première partition.
-un chargeur d'amorce type grub, permettant un aiguillage sur différents OS et partitions.
-le numéro de la partition chargée du démarrage (noté par un « * » par les utilitaires disques).
Dans les deux derniers cas, la place du code d'amorce ne se trouve pas sur la première partition mais sur
celle considérée dans le BootRecord respectif à la partition.
L'appel du code d'amorce étant géré par le bios ou par un chargeur, ils doivent se trouver dans les limites
d'adressage du bios qui est limité au 1024 premiers cylindres. Ce code doit également résider sur l'une des
quatre partitions primaires que le bios reconnaît. On créé généralement une petite partition de quelques
méga-octets pouvant contenir plusieurs noyaux (≈ 20 Mo).
note:
dos/windows
Linux
-->les BR sont écrits par défaut.
-->les BR sont à écrire en fin d'installation par la commande grub-install.
2.3 Partitions primaires et étendues.
Le concept de partition étendue va permettre d'aller au delà des 4 partitions primaires. Elle n'abrite pas
réellement des données mais donne la possibilité de déclarer des partitions logiques (64 maxi) à l'intérieur
d'elle-même.
Cette partition étendue est considérée par le bios faisant partie des 4 partitions primaires. Elle est unique sur
un disque.
Ex. de partitionnement.
part. prim. 1
part. prim. 1
part. prim. 1
part. prim. 2
part. prim. 3
part. étendue part. log. 5
≈ part. prim. 4 ...
...
Page 51/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
part. prim. 1
part. prim. 1
part. prim. 3
part. prim. 1
part. log. 5
...
part. log. 5
part. log. 6
part. log. 64
part. étendue part. log. 6
part. étendue part. log. 7
≈ part. prim. 4 part. log. 7
≈ part. prim. 4 part. log. 8
La partition étendue, servant de contenant aux partitions logiques, elle gère dans son BootRecord la table des
64 partitions logiques possibles.
2.4 Le Linux-Loader LILO et la commande ''lilo''.
Il a en charge les tâches suivantes :
-aiguillage du choix d'OS.
-chargement du secteur d'amorce.
L'invite d'aiguillage, s'exécutera au chargement du lilo s'il est placé dans le BR d'une partition contenue dans
les 1024 premiers cylindres, et que cette partition est déclarée d'amorce par un utilitaire disque comme
« fdisk ». Si aucune partition n'est déclarée comme telle, le lilo doit se trouver impérativement dans le MBR.
La commande « lilo », a exécuter sous login root, sert à (de)installer le chargeur à partir de la configuration se
trouvant dans le fichier « /etc/lilo.conf ». Il contient une section de parametres globaux situés en début de
fichier s'achevant par le paramètre « image » ou « other » qui déclare le début d'une section spécifique à un
démarrage.
ex de fichier « lilo.conf » :
prompt
force le message d'invite « lilo : », il n'y pas de valeur par défaut.
timeout=50
c'est la durée maxi d'attente à l'invite au delà de laquelle le démarrage commencera sans choix d'OS.
default=linux
c'est l'image prise par défaut en cas de « timeout »
boot=/dev/hda
l'installation du lilo est faite ici sur le MBR du disque
map=/boot/map
carte utilisé par le noyau
install=/boot/boot.b
copie de sauvegarde du BR
message=/boot/message
message graphique ou texte au moment de l'invite
lba32
uiliser l'adressage LinearBlockAddress32 pour aller au delà de 1024 cylindres
#image=/boot/vmlinuz-2.4.18-3
#image=/boot/vmlinux-2421.2
image=/boot/vmlinux-2421.4
le noyau en question
label=linux
initrd=/boot/initrd-2.4.18-3.img
utilisation d'un périphérique ramdisk pendant le démarrage.
read-only
Page 52/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 23 : L'installation d'un ou plusieurs systèmes d'exploitation.
root=/dev/hda5
other=/dev/hda2
le 2eme OS ici windowsNT disponible sur la 2eme partition.
optional
label=NT
note:
l'emploi du « lba » utilise une conversion d'adresse qui permettra au lilo d'aller au delà des 1024
cylindres. Ceci a pour conséquence de modifier le nombre de têtes de lecture visibles par l'utilitaire
« fdisk ». Il est généralement égale à 255 et représente donc ainsi une valeur virtuelle.
2.5 Création d'une disquette d'amorce.
Cette pratique est simple et permet de pouvoir démarrer en système en cas de panne ou bien de tester un
nouveau noyau avant de l'installer définitivement. Trois phases sont nécessaires à cela :
-faire une recopie brute du noyau sur une disquette sans y avoir créer de FS.
#dd if=/boot/vmlinux-2421.4 of=/dev/fd0 bs=1k
1188+1 enregistrements lus.
1188+1 enregistrements écrits.
-indiquer que le périphérique racine est la 5ème partition de votre disque dur.
#rdev /dev/fd0 /dev/hda5
-déclarer la disquette bootable (-R), et le noyau en mode écriture/lecture (0).
#rdev -R /dev/fd0 0
2.6 Création d'une disquette d'amorce avec un chargeur LILO.
Dans le cas d'une machine multi-OS, il est préférable d'avoir une disquette contenant un loader et de
pouvoir profiter ainsi de tous les OS. Il faut d'abord connaître la version du noyau en cours.
#uname -r
2.4.21
On créé la disquette.
#mkbootdisk 2.4.21
On démarre sur le floppy avec l'option linux par défaut. Il faut ensuite modifier le fichier lilo.conf du
floppy pour y ajouter l'image windows le cas échéant.
Page 53/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 24: L'archive tar, les installations rpm et yum.
MODULE 24: L'archive tar, les installations rpm et yum.
1 Définition d’une archive.
Une archive est un fichier compressé ou non contenant plusieurs autres fichiers. Cette simplification d’une
arborescence multi-fichiers en un seul permet de faciliter l'administration d'un système, et d’optimiser les
transferts réseaux. Lorsque l’on dispose d’une distribution de logiciel par archive, on est à peu près certain
d'avoir tous les fichiers nécessaires à son bon fonctionnement.
2 Les installations.
1.1 Via les fichiers sources.
C'est l'installation la plus sommaire, elle permet un contrôle complet de personnalisation ou
d'optimisation (tuning). Une installation par compilation peut se résumer aux opérations suivantes:
- se procurer les fichiers sources (en langage de programmation) par téléchargement
- les placer par exemple dans /tmp
- construire les binaires exécutables grâce à un compilateur comme gcc
- placer les résultats de compilation dans les répertoires bin dédiés aux exécutables
Très souvent, la distribution de fichiers sources sont au format d'archive tar, ce type d'archive,
couramment utilisé sur unix, sert également à packager les fichiers textes et autres.
1.2 Via les fichiers binaires.
Selon ces principes, l'installation par fichiers binaires se passe de la phase de compilation pour faire une
simple recopie des exécutables en bonne place. L'opération est donc plus simple et plus rapide mais
comporte des lourdeurs non-négligeables.
En effet, elle nécessite des compilations aux préalables de types génériques; peu optimisées car
compatibles pour des familles complètes de micro-processeurs et configurées de la façon la plus
standard. De plus il est impératif que tous les outils et librairies nécessaires au fonctionnement soient
déjà en places; c'est ce que l'on appelle les dépendances.
C'est le mécanisme des installations binaires qui est utilisé par la famille RedHat (RedHat, Fedora,
CentOS).
PackageKit (daemon) --> YUM --> RPM
3 La commande tar.
C’est le format standard d'archivage Unix. Tar est l'abréviation de tape-archiver, outil servant à l'origine aux
sauvegardes sur bandes magnétiques.
Attention, c'est à l'utilisateur de gérer les suffixes d'archives, le commande file donnera le type d'un fichier
même sur une erreur de suffixe.
Ex1 créer l'archive xinetd.tar du répertoire /etc/xinetd.d
tar -cvf xinetd.tar /etc/xinetd.d
Ex2 idem avec compression gzip.
tar -cvzf xinetd.tar.gz /etc/xinetd.d
Page 54/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 24: L'archive tar, les installations rpm et yum.
Ex3 idem avec compression bzip2.
tar -cvjf xinetd.tar.bz2 /etc/xinetd.d
Ex4 listing du contenu de l'archive xinetd.tar
tar -tvf xinetd.tar
Ex5 installation ou extraction de l'archive xinetd.tar dans le répertoire courant.
tar -xvf xinetd.tar
Ex6 pour copier le contenu d'un répertoire dans un autre.
cd fromdir; tar cf - . | (cd todir; tar xpf -)
2 Les compresseurs gzip et bzip2.
gzip compresse un fichier ou une arborescence (-r) fichier/fichier sans créer d'archive. bzip2 compresse un ou
plusieurs fichiers exprimés sur la ligne de commande. bzip2 ne travaille pas en mode récursif.
3 Les distributions linux.
Il existe plusieurs types d'archives selon les distributions de linux. RedHat propose ses packages rpm
(RedhatPackageManager) et debian ses archives deb.
Chaque distributeur va utiliser ses propres packages pour réaliser son installation tout en étant compatible avec
les autres versions de linux. On peut installer des packages deb sur RedHat et des packages rpm sur debian.
4 La base de données RPM.
RPM est un système de gestion de base de données d'archives nommé RedhatPackageManager. Les
options de la commande rpm sont regroupées en 5 parties:
- query(-q)
- verify(-v)
- signature(vérification d'intégrité et d'origine d'un package)
- database (init et rebuild)
- install/upgrade/erase (-i, -u -e).
5 Les commandes d’interrogation de la base RPM.
Elle peuvent être exécutées sur trois cibles différentes :
- sur la base-rpm qui contient l'inventaire de tout ce qui est installé sur le système.
- sur tout fichier présent sur le système (par ex. pour connaître son package d'installation).
- sur tout fichier de type package-rpm (par ex. pour l’installation d'un nouveau package).
Les commandes d’interrogation les plus courantes sur la base rpm.
Ex1 obtenir la liste complète des packages installés.
#rpm -qa
Ex2 connaître les packages installés contenant le motif cc.
#rpm -qa | grep cc
Ex3 obtenir les informations disponibles dans la bd-rpm sur le package gcc.
#rpm -qi gcc-2.96-110 ou rpm -qi gcc
Ex4 idem avec la liste des fichiers installés par le package gcc.
#rpm -qil gcc
Page 55/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 24: L'archive tar, les installations rpm et yum.
Les commandes d’interrogation les plus courantes sur un fichier de l’arborescence.
#rpm -qif /etc/passwd
Name
: setup
Relocations: (not relocateable)
Version : 2.5.12
Vendor: Red Hat, Inc.
Release : 1
Build Date: mer 03 avr 2002 19:15:15 CEST
Install date: lun 16 déc 2002 14:24:41 CET
Build Host: stripples.devel.redhat.com
Group
: System Environment/Base
Source RPM: setup-2.5.12-1.src.rpm
Size
: 34340
License: public domain
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary : A set of system configuration and setup files.
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.
Les commandes d’interrogation les plus courantes sur fichier de type package non-installé (pas pris en
compte par le bd).
Ex1 obtenir des informations sur un package téléchargé dans /tmp.
rpm -qip /tmp/lzo-1.08-1.i386.rpm
Les commandes d’installation les plus courantes.
Ex1 demande d’installation du package lzo
rpm -ivh /tmp/lzo-1.08-1.i386.rpm
(i install, v verbose, hash pour sablier hachuré)
Ex2 idem mais avec option u comme upgrade en cas de package déjà installé.
rpm -uvh /tmp/lzo-1.08-1.i386.rpm i
6 Les installations par le gestionnaire d'archives YUM.
YUM permet l'installation des packages rpm en respectant les dépendances et la version de la
distribution. Il utilise des site-dépôts de références ainsi que des serveurs miroirs.
Ex1 pour connaitre les archives disponibles traitant du protocole dhcp.
#yum search dhcp
...
dhclient-2-4-1
dhcpd-2.3.1
dhcp-tools-3.1
...
note: les caractères de type générique comme '*' ne sont pas nécessaires.
Ex2 pour lister tous les packages disponibles pour la distribution.
#yum list
note: le troisième champs de réponse correspond à l'état d'installation du package :
fedora -> package disponible
installed
-> package déjà installé
updates
-> package de mise à jour disponible
@updates -> package déja mis à jour
note: un nom de package peut être passé en paramètre pour connaître uniquement l'état d'installation.
Page 56/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 24: L'archive tar, les installations rpm et yum.
Ex3 pour installer un client dhcp.
#yum install dhclient-2-4-1
Ex4 pour enlever le package rpm correspondant au client dhcp
#yum remove dhclient-2-4-1
Ex5 pour nettoyer les caches
7 Paramétrage de YUM et des site-dépôts.
Pour Fedora, la configuration se fait par le fichier /etc/yum.conf qui lui-même indique le répertoire
/etc/yum.repos.d/ où chaque fichier comprend un paramétrage spécifique par domaine (distribution
standard, mise à jour, version-beta...)
Exemple de fichier /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
Page 57/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 25 : La personnalisation d'un noyau système.
MODULE 25 : La personnalisation d'un noyau système.
1 Le noyau (kernel).
1.1 Généralités.
Le noyau linux est distribué selon les termes d'une licence OpenSource sur les sites miroirs de l'adresse
principale www.fr.kernel.org (version française). La version 2.6.0 décompressée est composée de 212Mo
de codes source en langage C pour les différentes architectures disponibles.
La noyau lui-même représente 1,5 million de lignes de code. Ce développement a pu voir le jour grâce à
un groupe de travail reparti sur internet, organisé et centralisé par Linus Torvald.
Le noyau est un fichier nommé vmlinuz-XXX (XXX pour No de version), se trouvant dans
/boot. Sa taille est généralement comprise entre 300Ko et 1,4Mo, espace tenant sur une disquette.
Le No de version est composé d'un nombre à trois chiffres afin de donner les précisions suivantes :
No de version concernant les
améliorations et corrections.
No majeur (ne change qu'en cas de
restructuration globale du kernel).
vmlinux-2.6.0
No d'évolution, change à l'occasion d'ajout de fonctionnalités(paire
pour stable et impaire pour signifier en cours de développement).
1.2 Fonctions.
On peut résumer les six tâches principales du noyau ainsi :
-reprise des infos du bios pour la gestion du hardware.
-création du premier processus pour le lancement ultérieur d' init.
-liaison entre le hardware et l'applicatif ou la ligne de commande.
-ordonnancement des processus.
-gestion des FileSystem.
-gestion des arrêts/marches.
2 La compilation.
2.1 Les buts recherchés.
On décide de compiler un nouveau noyau en générale pour l'une des raisons suivantes :
-optimisation de la taille du kernel ( se débarrasser des parties inutiles).
-optimisation du code pour un processeur. La composition livrée par défaut correspond à une famille de
processeurs où il peut manquer des instructions clés à un microprocesseur en particulier.
-ajout de matériel, nouvelle technologie ou ordinateur exotique sortant des cas génériques (portable).
Page 58/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 25 : La personnalisation d'un noyau système.
2.2 Choix des composantes de la compilation.
Ce choix va être orienté par adjonction ou retrait de matériel et service mais également dans le type
d'implémentation. En effet, les fonctionnalités du kernel sont dites modulaires ou bien directement
implémentées dans le noyau.
Les modules, du point de vue du fonctionnement, font parties intégrantes du noyau mais sont répartis dans
d'autres fichiers se trouvant dans /lib/modules. Ils sont chargés et déchargés dynamiquement par les
utilisateurs ou le système lors de requêtes ou bien d'inutilisation. On optimise ainsi la place mémoire
utilisée tout en conservant un fort potentiel de fonctionnalités disponibles à tout moment. Ce principe de
noyau possède tout de même l'inconvénient d'un temps de latence pris à chaque chargement.
Le paramétrage d'une configuration noyau est regroupé par thèmes et sous-chapitres comme sur la figure
7.
(fig. 7)
Il existe 3 types de menus de configuration à lancer à partir d'un Makefile contenu dans
/usr/src/linux :
-mode texte standard;
-mode texte à menu
-mode graphique xwindow
#make config
#make menuconfig
#make xconfig
La configuration se terminant par une commande « save » pour valider tous les paramètres.
2.3 La compilation.
La compilation se déroule en trois temps suivant les commandes :
#make dep ; make clean
(on crée les dépendances puis on vérifie l'absence de tous fichiers antérieures à la compilation)
#make zImage
(création d'un nouveau noyau appelé /usr/src/linux/arch/i386/boot/zImage)
ou bien
Page 59/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 25 : La personnalisation d'un noyau système.
#make bzImage
(création d'un nouveau noyau compressé appelé /usr/src/linux/arch/i386/boot/zImage)
#make zdisk
(création du nouveau noyau directement sur le floppy)
#make modules
(création des modules choisis)
Ces trois lignes de commandes peuvent se réduire à une seule avec le caractère « ; ». Il est d'usage de
donner des noms de noyau correspondant à la version et à l'heure à laquelle il est compilé dans le cas de
plusieurs tests.
2.4 Phase de test et d'installation.
Une première méthode consiste à utiliser une disquette de test. On recopie le nouveau noyau dessus, on
redémarre puis on teste les nouvelles fonctionnalités.
La deuxième méthode passe par l'utilisation du chargeur « lilo ». Il s'agit de l'utiliser ainsi :
-copie du nouveau noyau à coté de l'ancien dans /boot. (le nom doit être différent).
-créer un nouveau paragraphe « image » à l'identique de celui que vous utilisez déjà. Changer le
nom de l'image par le nom du nouveau noyau ainsi que le nom du label. Installer la nouvelle
configuration du lilo.
-relancer votre système et tester le nouveau label du lilo.
L'installation réside ensuite simplement à pérenniser son test. Dans le premier cas on installe le noyau du
floppy dans le « lilo ». Dans le deuxième cas, on enlève l'image crée dans le « lilo » puis on refait le lien
symbolique se trouvant dans /boot pour qu'il pointe sur le nouveau noyau.
3 Mise à jour d'un noyau par un « patch ».
Il est possible de mettre à jour un noyau directement par un « patch » en suivant généralement ces trois étapes.
# cp patch-2.2.1.gz /usr/src
# gzip -d patch-2.2.1.gz
# patch -p 1 -i patch-2.2.1
Page 60/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 26 : Les niveaux de démarrage systemV.
MODULE 26 : Les niveaux de démarrage systemV.
1 Principe de démarrage de Linux (système V).
On considère ici un système linux installé sur une machine de type PC. Ce cas très fréquemment rencontré ne
représente pas de façon exhaustive le parc linux en service aujourd'hui.
Schématiquement les étapes du démarrage sont:
Mise sous tension.
ON
Inventaire hardware.
BIOS
Aiguillage d'OS si plusieurs OS résidants.
LILO
Chargement du noyau (kernel).
LOAD
Lancement du processus parent de tous.
INIT
(fig. 1)
lecture et exécution du fichier /etc/inittab
Lancement des
scripts respectifs
au niveau
sélectionné
Utilisation
courante
jusqu'au
prochain
''shutdown''.
2 Les niveaux de démarrage (run-level).
2.1 Généralités.
Comme le montre la figure 1, le démarrage d'un système informatique se fait par le lancement chronologique
de programmes ou processus. Le tout premier et très petit, appelé bootstrap (chausse-pied), qui
est résidant dans l'électronique de la machine a en charge d'en appeler un autre plus conséquent et ainsi de
suite tout le long du démarrage. Cet « empilage » de programmes étant chronologique et extensif, on peut dire
que plus un démarrage occupera de temps, plus la machine aura de fonctionnalités à son actif. Toutes ces
fonctionnalités n'étant pas forcément nécessaires ou désirées à chaque démarrage, on parlera de niveau de
démarrage pour exprimer une partie ou la totalité de cet « empilage ».
Les run-levels sont paramétrés dans le fichier /etc/inittab,le process init va prendre la valeur
numérique de run-level déclarée par défaut parmi les suivantes :
0 Arrêt
1 Mono-utilisateur (root uniquement, on parle de single-user-mode).
2 Multi-utilisateurs sans NFS.
3 Multi-utilisateurs complet.
4 Réservé aux tests.
5 Multi-utilisateurs et environnement graphique.
Page 61/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 26 : Les niveaux de démarrage systemV.
6 Redémarrage.
notes:
On peut utiliser init par la ligne de commandes en lui donnant un argument compris entre 0 et 6.
Au démarrage et à partir de « l'invite lilo », on peut passer une option de 1 à 5 qui sera prise en compte dès que le process
« init » existera ( ex. LILO: linux 3).
La commande runlevel permet de connaître à tout moment le niveaux de démarrages courant et précédent.
L'équivalent avec Grub se fait par l'édition des trois lignes de commandes disponibles au démarrage.
Exemple pour démarrer en single-user, éditer la ligne chargeant le « kernel » et ajouter en fin de ligne un espace suivi du mot
« single », puis demander le démarrage par la lettre b (boot).
2.2 Description de /etc/inittab.
Sa syntaxe est la suivante ; <id>:<niveau(x)>:<action>:<programme>
<id>
<niveau(x)>
<action>
<programme>
identificateur de ligne (il doit être unique).
le(s) niveau(x) concernés.
contexte d'interprétation de la ligne.
programme ou script à exécuter dans le contexte précisé par le champ précédent.
Un exemple de fichier /etc/inittab :
#
# inittab
This file describes how the INIT process should set up
#
the system in a certain run-level.
#
# Author:
Miquel van Smoorenburg, <[email protected]>
#
Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
Commentaires (commençant par #) donnant un résumé de chaque run-level.
id:5:initdefault:
initdefault est le paramètre lu à chaque démarrage et déterminant le runlevel du prochain démarrage.
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
script lancé après la reconnaissance du hard (2ème champ vide car la notion de niveau n'est pas encore définie)
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
rc est le script qui va démarrer/arrêter les services relatifs au niveau passé en argument. wait précise qu'il faut attendre la fin
de ce process avant de continuer l'initialisation
# Things to run in every runlevel.
Page 62/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 26 : Les niveaux de démarrage systemV.
ud::once:/sbin/update
opération d'écriture des buffer-disks sur les disques faite à chaque entrée dans un runlevel. (2eme champ vide = all level)
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
simulation du cntrl-alt-delete de windows
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have power installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
pf, lance le shutdown différé de 2mn (-f sans fsck, -h halt). pr, arrête le shutdown si l'onduleur est à nouveau en service.
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
mise en place des 6 consôles textes obtenues par cntrl+alt+f1...f6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
respawn ~= restart proc after wait not, pour relancer le process dès qu'il est terminé.
ATTENTION! L'implémentation sous CentOS est différente, celle ci est décrite en en-tête du fichier inittab,
elle indique que ce fichier est réparti en plusieurs, stockés dans le répertoire /etc/init
3 Le processus d'initialisation init.
3.1 Organisation et hiérarchie.
Le process init est issu d'un package rpm nommé SysVinit.
La totalité des acteurs du process /bin/init est placée dans /etc/rc.d. On y trouvera comme sur la
figure 2 :
-les trois fichiers, rc, rc.local, rc.sysinit.
-les répertoires initd, rc0.d, rc1d.....rc6.d.
Le process init va exécuter les tâches suivantes:
-exécution de rc.sysinit. Il y a lancement des scripts sans distinction de niveau et initialisation des
paramètres généraux. Les principaux sont ; premier path d'exécution, horloge système, nom de host, mapping
clavier, polices du système. Il y a ensuite ajout des premiers modules au noyau selon les entrées/sorties
présentes et validées.
-exécution de tous les scripts inhérents au niveau de démarrage via le script rc.
-exécution de /etc/rc.d/rc.local représentant la ''personnalisation'' du démarrage du système sur
lequel on se trouve (valable pour tous les niveaux).
Page 63/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 26 : Les niveaux de démarrage systemV.
/
sbin
...
init
rc
rc.sysinit
home
etc
init.d
rc.d
rc.local
init.d
rc0.d
httpd
...
nfs
(fig. 2)
tmp
...
var
rc...
rc5.d
rc6.d
K20nfs
S58httpd
...
rc1.d
3.2 Gestion des scripts d'arrêt/démarrage par niveau.
Cette gestion est réalisée à l'exécution du script /etc/inittab (lancé par init) et plus précisément par
les sept lignes comprenant les identificateurs l0, l1,...l6. Ces lignes « appellent » le script rc suivi d'un
argument correspondant au runlevel. Le script rc va aller consulter le répertoire correspondant au runlevel et
exécuter tout les fichiers présent dans ce répertoire.
Les noms de ces fichiers vont déterminer l'action à faire (S pour Start et K pour Kill) et la chronologie à
respecter qui est interprétée numériquement de 00 à 99. Le script rc va exécuter, tous les scripts pointés par
un lien préfixé par un s (start) en entrée de niveau et ceux suffixés par un k (kill) en sortie de niveau.
En réalité, ces fichiers ne sont pas des scripts mais des liens symboliques pointant sur les scripts placés, dans
leur totalité et sans distinction, dans le répertoire /etc/init.d (voir figure 2).
Tout ajout/retrait d'un service s'effectuera par la création/destruction de liens dans le(s) répertoire(s) du ou des
niveaux de démarrage concernés.
Voici un exemple de liens trouvés dans /etc/rc.d/rc2.d :
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
root
root
root
root
root
root
root
root
root
root
root
15 déc 16 2002 K03rhnsd -> ../init.d/rhnsd
13 déc 16 2002 K05atd -> ../init.d/atd
15 sep 7 12:02 K15httpd -> ../init.d/httpd
13 déc 16 2002 K20nfs -> ../init.d/nfs
20 déc 16 2002 K44rawdevices -> ../init.d/rawdevices
15 déc 16 2002 K46radvd -> ../init.d/radvd
15 déc 16 2002 K50snmpd -> ../init.d/snmpd
19 déc 16 2002 K50snmptrapd -> ../init.d/snmptrapd
16 déc 16 2002 K50xinetd -> ../init.d/xinetd
16 déc 16 2002 K65identd -> ../init.d/identd
16 déc 16 2002 K72autofs -> ../init.d/autofs
Page 64/65
Jean-Paul Coulon
V1.26
Linux - Administration Système & Réseau
MODULE 26 : Les niveaux de démarrage systemV.
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
14 déc 16
15 déc 16
17 déc 16
17 déc 16
15 déc 16
18 déc 16
18 déc 16
14 déc 16
17 déc 16
16 déc 16
18 déc 16
16 déc 16
16 déc 16
14 déc 16
13 déc 16
18 déc 16
13 déc 16
15 déc 16
13 déc 16
17 déc 16
14 déc 16
11 déc 16
2002 K74ntpd -> ../init.d/ntpd
2002 K75netfs -> ../init.d/netfs
2002 K86nfslock -> ../init.d/nfslock
2002 K87portmap -> ../init.d/portmap
2002 K95kudzu -> ../init.d/kudzu
2002 S08ipchains -> ../init.d/ipchains
2002 S08iptables -> ../init.d/iptables
2002 S09isdn -> ../init.d/isdn
2002 S10network -> ../init.d/network
2002 S12syslog -> ../init.d/syslog
2002 S17keytable -> ../init.d/keytable
2002 S20random -> ../init.d/random
2002 S24pcmcia -> ../init.d/pcmcia
2002 S26apmd -> ../init.d/apmd
2002 S60lpd -> ../init.d/lpd
2002 S80sendmail -> ../init.d/sendmail
2002 S85gpm -> ../init.d/gpm
2002 S90crond -> ../init.d/crond
2002 S90xfs -> ../init.d/xfs
2002 S95anacron -> ../init.d/anacron
2002 S98wine -> ../init.d/wine
2002 S99local -> ../rc.local
3.3 Les outils de gestion des scripts.
Il existe trois outils principaux trouvés sur RedHat.
-chkconfig (mode texte).
-serviceconf, system-config-services (graphique RedHat)
-ksysv (graphique multi-fenêtres, uniquement avec KDE).
Exemples de l'utilisation de chkconfig :
chkconfig --list
liste complète des services présents et de leurs états pour tous les niveaux de démarage.
chkconfig --list httpd
liste les états du service httpd pour tous les niveaux de démarage.
chkconfig --add totod
ajout du service totod (état d'arrêt) pour tous les niveaux.
chkconfig --del totod
retrait du service totod pour tous les niveaux.
chkconfig --level 2 totod on
mise à l'état marche du service totod pour le niveau 2.
Les scripts ont dans leurs premières lignes de commentaires, des directives indiquant la gestion par l'outil
chkconfig ainsi que les niveaux et état par défaut.
Ex: Contenu dans les premières lignes du script de démarrage du daemon lpd (LinePrinterDaemon).
# chkconfig: 2345 60 60 (validé pour les niveaux 2345 S60 et K60)
Page 65/65

Documents pareils