SlideShare a Scribd company logo
1 of 180
Download to read offline
Administration UNIX




                      Johan Moreau

                 Johan.Moreau@ircad.fr




          Formation d’Ingénieurs en Partenariat
          Spécialité « informatique industrielle »
  École Nationale Supérieure de Physique de Strasbourg
Centre de Formation d’Apprentis de l’Industrie du Haut-Rhin
                        2009–2010



                             1
Johan Moreau




    Johan.Moreau@ircad.fr

 RSSI et Ingénieur R&D, IRCAD

  Membre du bureau Clusir-Est

Enseignement en Master ULP, FIP




               2
Administration UNIX

1. Introduction : Unix, une grande famille

2. Les bases : architecture des systèmes UNIX

3. Nos amis : utilisateurs, groupes, et sécurité

4. Les commandes : basiques et avancées

5. Les services : bases et démarrage

6. Matériels et logiciels : installation et choix

7. Réseau : configuration et filtrage

8. Le monde des serveurs : HTTP,NFS,SMBFS, ...




                                            3
Bibliographie

– La programation sous UNIX. Ediscience, J.-M. Rifflet, Ediscience, ISBN
  2-84074-013-3
– Systèmes d’exploitation, sysytèmes centralisés, systèmes distribués,
  A. Tanenbaum, Inter-Editions, ISBN 978-2-7440-7299-4
– Les cahiers de l’admin : BSD, E. Dreyfus, Eyrolles, ISBN 978-2-212-11463-8
– Advanced Programming in the UNIX Environnement W.R. Stevens,
  Addison-Wesley, ISBN 0-201-56317-7




                                        4
1. Introduction

1. Pourquoi ce cours ?

2. Pourquoi UNIX ?

3. Introduction à l’administration

4. Quels besoins pour l’entreprise ?

5. Introduction à la sécurité

6. Unix, un monde à part




                                            5
Pourquoi ce cours ?

L’administration de service informatique est un vecteur d’emploi important.

Les systèmes basés sur UNIX sont de plus en plus nombreux.

L’administration UNIX et Windows est basée sur des concepts différents.

But de ce cours : donner un aperçu général du fonctionnement des systèmes UNIX
afin d’en maîtriser l’administration de base. Le système qui sera utilisé pour
présenter UNIX est GNU/Linux.




                                          6
Pourquoi UNIX ?

Objectif d’un système d’exploitation :

– Interface entre le matériel et l’utilisateur (disque, CPU, ...)
– Séparation des ressources d’un utilisateur des autres (données, processus, ...)

Pourquoi le choix d’UNIX ?

– Le prix (surtout pour Linux, FreeBSD, OpenBSD, ...).
– La disponibilité des sources.
– Apprentissage : concepts fondamentaux dans un système, simple et ouvert.
– Réellement multi-utilisateurs et multi-tâches depuis l’origine.




                                             7
Qu’est que GNU Linux ?

GNU/Linux est le terme que promeut le projet GNU et ses supporters, en particulier
Richard M. Stallman, son fondateur et principal activiste, pour se référer au système
d’exploitation libre GNU basé sur un noyau Linux, les composantes GNU pouvant
fonctionner sur d’autres noyaux : Les principaux arguments de cette position sont
les suivants :

– argument d’antériorité : GNU existait avant Linux ;
– argument de la confusion : le public risque d’attribuer à Linux ce qui vient du
  projet GNU ;
– argument philosophique : le public risque de ne pas connaître ou d’oublier les
  principes GNU qui s’appliquent pour Linux et qui sont à l’origine des logiciels
  libres ;

Pour toute l’histoire :

       http://fr.wikipedia.org/wiki/Linux_ou_GNU/Linux

                                          8
Introduction à l’administration

– Les "Systèmes d’Informations" ont une forte croissance ces dernières années.
– La complexité des SI impose des personnes qualifiées pour en assurer leur bon
  fonctionnement.
– Une grande partie du temps est accordée aux serveurs.
– Etude IDC de 2004 :

     Plus de 60% des serveurs fonctionnaient sous UNIX (propriétaires ou
     ouverts).




                                        9
Les besoins de l’entreprise

– L’entreprise a toujours de nouveaux besoins.
– Une entreprise sans mouvement est destinée à disparaître.
– Beaucoup de nouveaux besoins s’orientent vers le SI.
  – Mobilité (accès aux SI à tout moment)
  – Téléphonie IP (réduction des coûts, nouveaux concepts)
  – Internet et publication Web (marketing direct)
  – Services à valeurs ajoutées (mashup, ...)
– Disponbilité du SI extrêmement importante.




                                         10
Introduction à la sécurité

– la sécurité coûte cher :
  Étude du Computer Security Institute (rapport 2005) :

     En 2004, les dépenses de sécurité ont représenté entre 100 et 300 $ par
     employé (dans les entreprises de CA supérieur à 10 M$)

– l’absence de sécurité coûte cher :
  Étude du Computer Security Institute (rapport 2005) :

     En 2004, les incidents de sécurité ont coûté en moyenne 355 552 $ par
     entreprise (sur 639 réponses)




                                         11
Introduction à la sécurité

Objectifs de la sécurité :


– Confidentialité : les données ne doivent pas                           Confidentialité

  être connues par des tiers non autorisés
– Intégrité : les données ne doivent pas être
  altérées
– Disponibilité : le système informatique doit




                                                                                                   é
                                                                                                 lit
                                                           In




                                                                                                 bi
                                                            té




                                                                                              ni
  rester opérationnel




                                                                gr




                                                                                            po
                                                                  ité




                                                                                          is
                                                                                          D
                     Confidentiality + Integrity + Availability = CIA




                                           12
Unix, un monde à part

– 1969 UNICS : Ken Thompson, Dennis Ritchie
– 1971 + Brian Kernighan
– 1973 C
– 1978 Création de 1BSD
– 1984 100000 cpu sous UNIX
– 1984 Début de projet GNU
– 1985 Création de FSF
– 1991 Linux v0.02 annoncée sur comp.os.minix
– 1993 UNIX est le système de référence pour les serveurs
– 1996 Lancement de KDE
– 1997 Lancement de GNOME
– 2008 Linux v2.6.27

             PDF sur l’histoire d’UNIX : http ://www.levenez.com/unix/


                                        13
2. Les bases

1. Démarrage du système

2. Structure de fichiers

3. Processus

4. Noyau




                               14
Démarrage du système

Lancement d’un système Linux : boot et chargement du noyau
– Au boot le BIOS (ou EFI) exécute le MBR (Master Boot Record) situé sur le
  premier secteur (512 octets) du support bootable choisi (disque, CD, clef USB, ...)
Le MBR :
– scanne le disque pour trouver LA partition bootable (flag)
– lance le boot loader (chargeur de démarrage) du secteur de boot (premier
  secteur) de la partition bootable
Le bootloader
– charge le noyau en mémoire et l’exécute
– charge le ramdisk initrd.img en mémoire

    Bootloader traditionnel : Lilo (Linux Loader) Grub (Grand Unified Bootlader)




                                         15
/etc/lilo.conf

boot = /dev/sda2
delay = 50

image = /vmlinuz
  root = /dev/sda2
  label = debian
  read-only

image = /vmlinuz-2.6.27
  root = /dev/sda3
  label = unbuntu
  read-only

other = /dev/sda1
  label = dos
  table = /dev/sda




                                16
Démarrage du système

– initialisation de la machine (CPU, mémoire, registres)
– initialisation de la structure des données
– reconnaissance du matériel
– accès au système de fichier racine

– Une fois le noyau chargé en mémoire, il lance le premier processus : /bin/init
– init est le père de tous les autres processus qui seront créés par l’appel système
  fork()
– init lit le fichier /etc/inittab pour savoir :
  – quel est le fichier à exécuter pour continuer le chargement du système ?
  – quel est le runlevel (niveau d’exécution) par défaut ?
  – comment lancer les services pour un runlevel donné ?
  – ...
– Les noyaux Linux 2.6.32 ont des possibilités de démarage différentes


                                                  17
inittab

– id :runlevel :action :process
– action possible
  – sysinit
  – once
  – wait
  – respawn
  – ctrlaltdel
  – initdefault




                                    18
Périphérique UNIX

accès par des fichiers spéciaux : /dev/... :
– disques durs : hda, hdb, sda, sdb
– disquettes : fda, fdb
– terminaux : tty0, tty1, tty2
– ...




                                          19
Système de fichiers UNIX

– ext2, ext3, ext4, reiserfs4, zfs, ...
– NTFS, FAT, vfat
– iso9660
– nfs, smbfs
– ...




                                          20
Structure de fichiers

Sous Unix un fichier :

– est désigné par un nom
– possède un unique inode
– peut être dans les états : ouvert, fermé, lu, écrit
– peut être :
  – un fichier ordinaire/normal
  – un répertoire
  – un lien symbolique
  – un pseudo-fichier représentant :
     – un accès caractère par caractère
     – un accès par bloc
     – un dispositif de communication



                                           21
Structure de fichiers

Un inode stocke les informations suivantes :

– le type de fichier (-,d,l,c,p,b)
– le mode (permissions d’accès) du fichier (rwxr-x—)
– le nombre de liens
– l’identification du propriétaire (UID)
– l’identification du groupe (GID)
– la taille du fichier en nombre d’octets
– la date de création (atime), de dernière modification (mtime) et de dernier
  accès(ctime)
– adresse du fichier (13 adresses)




                                             22
Structure de fichiers

Représentation graphique




                                    23
Structure de fichiers

Représentation logique du système de fichiers. C’est une arborescence, plus
généralement un graphe orienté sans cycle.




                                       24
Structure de fichiers

– / Répertoire racine
– /bin Executables nécessaires pour le démarrage et le fontionnement en mode
  “single user”
– /boot Contains static files for the boot loader.
– /dev Périphériques et fichiers spéciaux
– /etc Fichiers de configuration de la machine. contient des sous-répertoires pour
  les “gros” logiciels (X11, mail, ...)
– /etc/skel Fichiers initiaux pour la création d’un compte
– /home Emplacement habituel des répertoires des utilisateurs.
– /lib Bibliothèques nécessaires au démarrage du système et aux commandes de
  base
– /mnt répertoire pour les montages temporaires
– /proc Point de montage pour proc qui fournit des infos sur les processus qui
  tournent et le noyau


                                           25
– /sbin comme bin, mais pour les commandes d’administration.
– /tmp Fichiers temporaires. Peuvent être effacés sans préavis.
– /usr Habituellement sur une partition séparée, partagable, en lecture seulement.
– /usr/X11R6 The X-Window system, version 11 release 6.
– /usr/doc Documentation.
– /usr/etc Fichiers de configuration.
– /usr/include Pour le compilateur C
– /usr/lib Bibliothèques, fichiers de configuration
– /usr/local Fichiers locaux du site. Contient bin lib doc etc info man sbin src sbin
– /usr/sbin Commandes d’administration pas indispensables pour le
  fonctionnement de base.
– /usr/share Répertoires partagés
– /usr/src Fichiers sources.
– /usr/src/linux Sources du noyau
– /var fichiers qui peuvent changer de taille
– /var/cache/man/cat[1-9] Pages de manuel préformattées

                                           26
– /var/lock Fichiers verrous
– /var/log Journaux divers
– /var/run Fichiers contenant les numéros des processus des services démarrés.
– /var/spool Fichiers en file d’attente
– /var/spool/at commandes différées
– /var/spool/cron commandes programmées
– /var/spool/lpd Files d’attente des imprimantes
– /var/spool/mail Boites aux lettres




                                         27
Noyau

Un noyau est un fichier exécutable qui se trouve sur le disque de boot Le nom de ce
fichier n’est pas standard et peut être UNIX, unix, vmunix, ... Le noyau assure la
gestion des ressources physiques et logiques du système :
– gestion des périphériques par les pilotes intégrés au noyau
– gestion des fichiers associée à la gestion des périphériques
– gestion des processus à l’aide de l’ordonnanceur (« process scheduler »)
Les processus accèdent aux services du noyau via un ensemble de fonctions
systèmes (principalement en langage C). Les primitives d’UNIX sont basées sur le
standard POSIX, définie par l’IEEE et normalisée par l’ISO.




                                         28
Noyau

Il y a 2 types de noyaux,

Micro-Noyau :
– petit noyau avec une fonctionnalité minimale : Initialisation, communication,
  contrôle de l’accès au matériel
– les autres fonctions sont mises dans des processus externes qui sont lancés
  dans l’espace utilisateur
Noyau monolithique :
– un seul noyau avec la fonctionnalité complète, souvent avec des parties
  sous-utilisées




                                         29
Noyau

Avantages du micro-noyau :

– Séparation des pilotes du noyau (sécurité,stabilité,gestion)
– Taille du noyau (lancement des parties utilisés)
– Flexibilité (échange ou test des pilotes)

Avantages du noyau monolithique :

– Contrôle du noyau (sécurité)
– Vitesse (communication interne au noyau)
– Flexibilité (utilisation du matériel)




                                           30
Noyau

Combinaison des avantages du micro-noyau avec les avantages du noyau
monolithique :

– Noyau monolithique qui peut être étendu par des modules
– Communication interne au noyau
– Flexibilité du système micro-noyau avec le chargement et déchargement des
  modules

Principe d’un Linux actuel.




                                       31
Noyau

Les commandes en charge des modules :

– lister des modules chargés (lsmod)
– charger un module (insmod)
– décharger un module (rmmod)
– charger un module avec des dépendances (modprobe)
– /etc/modules.conf ou via udevd




                                        32
3. Nos amis

1. Compte Unix

2. Commande passwd

3. Droits sur les fichiers

4. Commande chown, chmod

5. Environnement d’éxecution




                                   33
Compte UNIX

– un nom d’utilisateur (login) défini par un identifiant (uid)
– un mot de passe
– un groupe principal auquel appartient cet utilisateur (gid)
– un répertoire de travail (homedir)
– un langage de commandes (shell)




                                          34
Le shell

– Plusieurs familles : sh (sh, ksh, bash, zsh) vs csh (csh, tcsh)
– Fichier de configuration par utilisateur : .profile dans $HOME (ou .bash_profile
  dans certain cas pour bash sous Linux par exemple)

La plupart des exemples donnés dans le cours sont pour la famille sh.




                                          35
Login

Le login :

– Identification de l’utilisateur par le nom de login
– Base de l’autorisation
– Unique par le système d’exploitation
– Numéro d’identification (User ID = UID)




                                           36
passwd

Le mot de passe :

– Vérification de l’utilisateur
– N’est pas stocké en clair sur le disque
– Vérifié par un algorithme "Trap Door" :
  – Correspondance entre le mot crypté et le mot stocké
  – Risque d’attaque par "force brute"




                                            37
passwd

La commande passwd va mettre à jours les fichiers :

– /etc/passwd
– /etc/shadow
– /etc/groups
– /etc/gshadow

Le fichier /etc/passwd contient :

– le nom de login
– Le mot de passe (normalement vide si shadow présent)
– UID, GID
– Le nom réel
– Le répertoire de l’utilisateur
– Le shell par défaut de l’utilisateur


                                           38
Les mots de passe

C’est pourtant facile d’avoir un bon mot de passe :

– élargir l’alphabet : minuscules, majuscules, chiffres et caractères de ponctuation
  => augmente le nombre de combinaisons possibles
– agrandir la taille : plus de 8 caractères
  => augmente le nombre de combinaisons possibles
– facile à retenir (première lettre des mots d’une phrase)
  => pas besoin de l’écrire

Exemple : FIP,c1fg@S! (« FIP, c’est une filière géniale à Strasbourg ! ») :-)




                                              39
Droits d’accès

Types des droits :

– Lecture (r)
– Écriture (w)
– Exécution (x)

Notation :
– rw-r—–
– 640
Exemple :
– $ ls -l file
– -rw-rw-rw- 1 jmoreau None 38 Feb 25 2008 file




                                      40
Principe du confinement, ou du moindre privilège

Problème : comment changer son mot de passe (nécessite le privilège d’écrire dans
/etc/passwd, ou équivalent)

Attribut Set-User-Id-on-exec « bit setuid » sur les programmes : le processus est
exécuté sous l’identité effective du propriétaire du fichier exécutable (et non de
l’utilisateur réel)

Exemple :
    $ ls -l /usr/bin/passwd
    -r-sr-xr-x 2 root wheel                    5828 Oct     9 20:24 /usr/bin/passwd
Attribut Set-Group-Id-on-exec « bit setgid » : idem setuid, mais avec le groupe.




                                          41
Droits d’accès - Les cas particuliers

SUID, SGID (set user/group ID) :

– Droit s (avec x) ou S (sans x), 4000 (user) ou 2000 (group)
– Changement de propriétaire du programme en exécution (/bin/passwd)

Sticky Bit :
– Droit t (ou T), 1000
– Mis sur un répertoire
– Permet la suppression d’un fichier seulement au propriétaire




                                          42
Principe du confinement, ou du moindre privilège

Utilisations de cette élévation de privilège :
– changement de mot de passe, de shell, etc.
– ajout d’un fichier dans la file d’attente du gestionnaire d’imprimante
– consultation d’informations système (netstat)
– écriture d’un message sur la console d’un ou plusieurs autres utilisateurs
– etc.
Problème potentiel : élévation de privilège => l’impact des bogues est plus grave
=> programmation plus difficile (environnement hostile)
=> effort de réduction du nombre de programmes avec le bit setuid dans les Unix
sécurisés




                                            43
Droits d’accès

Modifications des droits :

– chmod u+rw file
– chmod 640 file

Modification du propriétaire :
– chown jmoreau.users file
– chown 512 file
Droit par défaut géré par le umask (complément à 777). Exemple : droit 644 =>
umask 133




                                        44
Environnement

– Trouver une commande : which commande
– Cherche dans la variable PATH
– Pour connaitre les chemins : echo $PATH




                                       45
4. Les commandes

1. La documentation sous Unix

2. Les variables shell

3. Les commandes de base

4. Les commandes "avancées"




                                   46
Documentation

Le système le plus important : man

– man ls
– man man
– man passwd
– man 5 passwd

Les niveaux de man :

 1. Programmes exécutables ou commandes de l’interpréteur de commandes
    (shell)

 2. Appels système (Fonctions fournies par le noyau)

 3. Appels de bibliothèque (fonctions fournies par les bibliothèques des
    programmes)

 4. Fichiers spéciaux (situés généralement dans /dev)


                                         47
5. Formats des fichiers et conventions.

6. Jeux

7. Divers

8. Commandes de gestion du système (généralement réservées à root)

9. Noyau




                                         48
Documentation

Un système récent : info
– info est plus puissant que man mais moins standard
– plus difficile à manipuler que man
– format officiel du projet GNU
– pages plus à jours que le man
Une source supplémentaire : /usr/share/doc
– emplacement des HOWTO : documentation lourde pour un projet
– nombreux exemples
D’autres sources :
– whereis
– locate
– apropos
– ...
Ne jamais sous-estimer la documentation fournie avec votre système !


                                       49
Variable

Le shell peut utiliser des variables :
– les variables sont non typées
– une simple déclaration A=monFichier
– attention, il ne faut pas mettre d’espace autour de "="
– pour utiliser la variable :
– $A ou ${A}
– variables spéciales :
  – Paramètres : $1 $2 $3...$9
  – Nom du script : $0
  – Valeur de retour : $ ?
  – Process ID du shell : $$




                                            50
Variable

Chaîne de caractères, 3 possibilités :

– Pas de modifications avec ” (simples quotes) :
  – echo ’Ceci est un $A’
  – » Ceci est un $A
– Évaluation des variables et des commandes avec "" (guillemets) :
  – A=1
  – echo "Ceci est un $A"
  – » Ceci est un 1
– Exécution du contenu avec “ (quotes inversées) :
  – le fichier file contient le texte : bonjour
  – echo ‘cat file‘
  – » bonjour



                                            51
Variable

Variable tradionnellement définie :
– HOME
– LOGIN
– PATH
– PWD
– USER
– ...
On peut obtenir l’ensemble des variables via la commande : env




                                        52
Commande de base

ls - LiSt - liste le contenu d’un répertoire

– ls
– ls rep
– ls -l /tmp
– ls ../etc
– ls -altr




                                               53
Commande de base

cd - Change Dir - modifie le répertoire courant

– cd
– cd /tmp
– cd ..
– cd /usr/local
– cd -




                                         54
Commande de base

cp - CoPy - copie un fichier (au sens général)

– cp file1 file2
– cp -r dir1 /tmp
– cp * /tmp




                                        55
Commande de base

mv - MoVe - déplace (ou renomme) un fichier (au sens général)

– mv file1 file2
– mv file1 /tmp/
– mv -f file1 file2
– mv -v file1 file2




                                      56
Commande de base

ln - LiNk - crée un lien

– ln -s file1 file2
– ln file1 file2




                                  57
Commande de base

mkdir - MaKe DIRectory - crée un répertoire

– mkdir /home/user/jmoreau
– mkdir -p /tmp/titi/toto




                                        58
Commande de base

rm - ReMove - supprime le fichier ou le répertoire

– rm file1
– rm -f file1
– rm -rf /tmp/toto/
– rm -i file1




                                        59
Commande de base

pwd - Path on Working Directory - retourne le répertoire de travail

– pwd




                                          60
Commande de base

id/whoami - IDentity - retourne l’identité de l’utilisateur

– id
– whoami




                                             61
Commande de base

cat - conCATenate - affiche des fichiers

– cat file1
– cat file1 file2
– cat -n file1




                                         62
Commande de base

more/less - affiche des fichiers page par page

– more file1
– less file1




                                       63
Commande avancée

find - Recherche un fichier (au sens large)

– find .
– find . -name "file1"
– find . -name "file1 -exec {}  ;
–




                                          64
Commande avancée

gzip/gunzip - applique l’algorithme Lempel-Ziv sur le fichier

– gzip file
– gunzip file.gz




                                         65
Commande avancée

tar - Tape ARchiver - crée une archive

– tar cf file.tar dir1
– tar xf file.tar
– tar zxvf file.tar.gz dir1




                                         66
Commande avancée

du - Disk Usage - Affiche des statistiques sur les systèmes de fichiers montés

– du
– du -k
– du -h
– du -hs




                                        67
Commande avancée

df - Display Free - Affiche l’espace disponible

– df




                                         68
Commande avancée

grep - affiche des lignes qui contiennent ou pas l’expression

– grep XYZ file1
– grep -v XYZ file1
– grep -n XYZ file1
– grep -i XYZ file1




                                         69
Commande avancée

head/tail - affiche les premières/dernières lignes

– head -5 file1
– head -c 20 file1
– tail -5 file1
– tail -f file1




                                         70
Commande avancée

sort - Tri les données

– sort
– sort -n
– sort -r




                                71
Commande avancée

uniq - Applique un filtre sur les ligne répétées

– uniq
– uniq -c




                                          72
Commande avancée

tr - TRanslate - convertit les caractères de la première liste dans les caractères de
la deuxième liste à la même position

– tr [A-Z][a-z] file1
– tr -d ’15’ < winfile.txt > unixfile.txt




                                           73
Commande avancée

bg/fg - BackGround - Envoi le processus en arrière/avant plan

– bg monDemon
– fg




                                        74
Commande avancée

ps - Process Status - Donne des informations sur les processus en cours

– ps -e
– ps -a
– ps -ea




                                       75
5. Les services

1. Le démarrage des services (ou "démons")

2. Les exemples de base

3. Les exemples "avancées"




                                     76
initd

– cf Chapitre 1, le noyau donne la main à init à la fin du chargement
– init a le PID n 1
– init est le " père " de tous les processus du système
– en fonction du runlevel il démarre tel ou tel ensemble de services




                                         77
runlevel

Pour rappel (cf Chapitre 1). 0. Arrêt du système effectué par la commande init 0
(shutdown -h sous Linux)
 1. Mode single-user (mode mono-utilisateur) pour des opérations particulières
    (maintenance : un seul utilisateur, pas de mode réseau, ...)

 2. Mode multi-utilisateurs, réseau activé avec services réseaux de base (sans
    services réseau sous Linux)

 3. Mode multi-utilisateurs, réseau activé avec services réseaux avancés (avec
    services réseau sous Linux)

 4. Mode multi-utilisateur spécifique

 5. Sur certains Unix et suivant l’architecture matérielle, maintenance matérielle
    depuis un firmware de la machine(Sous Linux mode multi-utilisateurs avec
    interface graphique)

 6. Reboot de la machine (shutdown -r)


                                          78
scripts de démarrage

2 cas : BSD ou SYSTEM V

– BSD : utilisation d’un ou deux scripts qui gèrent l’ensemble des tâches à
  accomplir (rc1.d, rc.local, ...)
– SYSTEM V avec un script qui lance divers démons et tâches réparties au sein
  d’une arborescence spécifique dépendant du runlevel.




                                          79
scripts de démarrage

– inittab exécute en fonction du runlevel (exemple level 3) : /etc/rc.d/rc3
– /etc/rc.d/init.d : scripts d’arrêt et de relance des services
– /etc/rc<niveau>.d/ : un répertoire par niveau(rc3.d, rc5.d, ...), liens vers les scripts
  contenus dans /etc/rc.d/init.d.
– Les liens contenus dans /etc/rc<niveau>.d/
  – Snn<NomService> : S pour start, nn est une valeur numérique sur deux
     caractères(01 05 10 15 ou autre) déterminant l’ordre de lancement des
     services
  – Knn<NomService> : K pour Kill, nn la valeur déterminant l’ordre d’arrêt des
     services.
– exemples
  – S00network — S01nfs
  – K00network — K01nfs


                                            80
Script de démarrage des services

Exemple /etc/rc2.d/S* :
/etc/rc2.d/S10sysklogd         /etc/rc2.d/S20lpd
/etc/rc2.d/S11pcmcia           /etc/rc2.d/S20makedev
/etc/rc2.d/S12kerneld          /etc/rc2.d/S20nfs-kernel-server
/etc/rc2.d/S14ppp              /etc/rc2.d/S20openldapd
/etc/rc2.d/S19bind             /etc/rc2.d/S20postgresql
/etc/rc2.d/S19nfs-common       /etc/rc2.d/S20sendmail
/etc/rc2.d/S19nis              /etc/rc2.d/S20ssh
/etc/rc2.d/S19nscd             /etc/rc2.d/S25nfs-server
/etc/rc2.d/S20apmd             /etc/rc2.d/S89atd
/etc/rc2.d/S20autofs           /etc/rc2.d/S89cron
/etc/rc2.d/S20exim             /etc/rc2.d/S91apache
/etc/rc2.d/S20gpm              /etc/rc2.d/S99gdm
/etc/rc2.d/S20inetd            /etc/rc2.d/S99rmnologin
/etc/rc2.d/S20irmanager        /etc/rc2.d/S99wdm
/etc/rc2.d/S20logoutd          /etc/rc2.d/S99xdm




                                         81
Script de démarrage des services

Les services ont généralement une syntaxe simple permettant de les lancer ou de
les stopper.

– start : démarre le service
– stop : arrêt du service
– status : état (lancé, arrêté, PID, ...) du service
– restart : effectue un arrêt/relance du service
– reload : dans certains cas seulement, le service est invité à relire sa configuration




                                            82
Script de démarrage des services
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/lpd
PIDFILE=/var/spool/lpd/lpd.lock

test -x $DAEMON -a -f /usr/sbin/pac || exit 0

case "$1" in
  start)
         echo -n "Starting printer spooler: lpd"
         if start-stop-daemon --quiet --stop --signal 0 
              --pidfile $PIDFILE --name lpd
         then
                  echo " already running."
                  exit
         fi
         /sbin/start-stop-daemon --start --quiet --exec $DAEMON
         echo "."
         ;;
  stop)
         echo -n "Stopping printer spooler: lpd"


                                     83
if start-stop-daemon --quiet --stop --signal 0 
                 --pidfile $PIDFILE --name lpd
        then
                 PID=‘cat $PIDFILE‘
                 start-stop-daemon --quiet --stop --exec 
                    $DAEMON --pidfile $PIDFILE --name lpd
                 # Now we wait for it to die
                 while kill -0 $PID 2>/dev/null; do sleep 1; done
                 echo "."
        else
                 echo " not running.";
        fi
        ;;
  force-reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: /etc/init.d/lpd {start|stop|restart|force-reload}"
        exit 1
esac
exit 0



                                    84
Script de démarrage des services

Sous Linux, le répertoire /var/lock/subsys contient la liste des services lancés, un
fichier par service. Le répertoire /var/run contient dans certains cas la liste des PID
et des fichiers de verrouillage de certains services.

La commande service permet d’effectuer des actions sur les services sans se
déplacer dans /etc/rc.d/init.d.

– service [-f -R -s -d] <nomService> action
– -f : full-restart, redémarrage complet du service
– -R : full-restart-all : redémarrage de tous les services actuellement lancés
– -s : status-all : statut de tous les services lancés
– -d : debug, informations complémentaires




                                            85
ouverture de session

– init lance le processus getty(gestionnaire de terminal).
– getty lance un prompt attendant la saisie du nom de l’utilisateur.
– Avant ce prompt le contenu du fichier /etc/issue est affiché.
– Le nom validé, le terminal exécute la commande login qui va demander la saisie
  du mot de passe.
– Si le mot de passe est correct (vérification dans /etc/passwd et /etc/shadow ou
  autre système), alors login affiche le contenue de /etc/motd et exécute un
  shell(toujours défini dans /etc/passwd).
– Une fois la session terminée (fin du shell), init relance un terminal pour une
  nouvelle connexion. (respwan dans inittab)
– Le paramétrage du terminal se fait par le fichier /etc/gettydefs. C’est getty qui va
  permettre un bon fonctionnement du terminal de l’utilisateur, en s’adaptant :
  VT100, VT220, XTERM, CONSOLE, ...


                                          86
Arrêt du système

Arrêt :
– shutdown -h now
– halt
Redémarrage :
– shutdown -r now
– reboot




                           87
Exemples de services de base

– /etc/init.d/network : script de gestion du réseau
– /etc/init.d/sshd : script de gestion du serveur de shell à distance
– /etc/init.d/cupsd : script de gestion du serveur d’impression
– /etc/init.d/syslogd : script de gestion du serveur de log
– ...




                                           88
Exemples de services "avancés"

– /etc/init.d/apache : script de gestion du serveur web Apache
– /etc/init.d/nfsd : script de gestion du serveur de système de fichiers réseau NFS
– ...




                                         89
syslog

Le démon syslog(processus appelé syslogd) permet de recevoir, traiter et stocker
des messages d’erreurs(ou d’informations) émis par le noyau ou certains démons.

/etc/syslog.conf permet de définir l’origine, l’importance et la destination de chaque
message, sous forme de deux champs :

– L’origine
– Le niveau




                                          90
syslog

L’origine définit un ensemble de systèmes et de sous-systèmes(noyau, services). La
liste, extensible, est composée à l’origine des éléments suivants :

– auth : service de sécurité et d’authentification
– cron : service cron
– daemon : les démons du système
– kern : le noyau
– lpr : le service d’impression
– mail : la messagerie
– news : le réseau
– syslog : syslog lui-même
– user : messages des processus utilisateurs
– uucp : Unix to Unix CoPy



                                          91
syslog

Le niveau définit la "criticité" :

– emerg : Le système est inutilisable
– alert : Une intervention immédiate est indispensable
– crit : Erreur critique pour le sous-système
– err : Erreur de fonctionnement
– warning : Avertissement
– notice : Évènement normal méritant d’être signalé
– info : Pour information seulement
– debug : Pour la mise au point
– none : Jamais




                                          92
syslog

On peut envoyer les messages de syslog vers différentes destinations

– fichiers (arborescence /var/log)
– mail à un utilisateur
– console
– serveur syslog distant (port udp/tcp 514)
– ...




                                         93
6. Matériels et logiciels

1. RAID

2. Partionnement

3. Logiciels

4. Planification de tâches




                                       94
RAID

De part l’impact d’une indisponibilité d’un service tournant sur une machine
« serveur », les choix matériels pour ces machines ne sont pas ceux qui sont faits
pour les postes utilisateurs traditionnels.

Le cas le plus fréquent est le choix de la technologie disques. En effet les disques
sont accédés beaucoup plus souvent et de manière beaucoup plus aléatoire.




                                              95
RAID

On distingue deux types de supports RAID :

– un support matériel : Le contrôleur de disque gère lui-même le RAID et la
  tolérance aux pannes.
– un support logiciel : le système Unix gère lui-même le RAID à l’aide de pilotes et
  d’outils particuliers propres au système. Il devient ainsi possible de faire du RAID
  même avec un contrôleur non prévu à cet effet.




                                          96
RAID

Disques en miroir :

Les écritures de données sont dupliquées sur plusieurs disques, généralement
deux, pour se prémunir des défaillances d’un disque. Dans ce cas il reste toujours
un disque disponible.

Bandes de données ("data striping","striped disk") :

Il s’agit de découper les données à écrire sur disque et segments séquentiels et
contigus pouvant résider sur plusieurs disques physiques distincts. L’ensemble des
segments d’une bande constitue un disque logique. Une solution plus élaborée est
l’utilisation d’une bande de parité calculée à partir des données d’une autre bande.
Il est alors possible de reconstruire les données.




                                          97
RAID

– RAID 0 : Un disque sans redondance avec bandes : agrégat de plusieurs
  partitions en une seule.
– RAID 1 : Des disques en miroir, mirroring
– RAID 2 : Miroir avec écriture en parallèle et correction d’erreur (« EEC »)
– RAID 3 : Écriture en parallèle avec contrôle de parité.
– RAID 4 : Bandes avec parité, la bande de parité est sur un seul disque
– RAID 5 : Bandes avec parité, la bande est répartie sur plusieurs disques.
  Tolérance de panne d’un seul disque.
– RAID 6 : Bandes avec deux fonctions de parité, réparties sur deux disques.
  Tolérance de panne de deux disques simultanés.
– RAID 1+0 (10) : Bandes en mirroir

Une solution RAID est une solution de tolérance aux pannes et ne remplace jamais
une sauvegarde.


                                          98
Partionnement

Une fois la technologie « disque » choisie, il est important de décider comment
répartir les données sur le(s) disque(s). Une installation de base ne nécessite que
deux partitions, la partition racine / et une partition de swap (mémoire virtuelle). Le
kernel Linux 2.4 est notamment plus performant lorsqu’un swap est disponible : il
peut ainsi y déplacer des données non fréquemment utilisées.




                                           99
Partionnement

On peut également subdiviser le système en plusieurs partitions. Les raisons d’un
tel partitionnement plus fin sont :
– performance : plusieurs périphériques swap distribués sur plusieurs partitions de
  disques-durs différents ; séparation des logs et des queues (/var/log et /var/spool)
  sur un serveur de mail très chargé (noter que cela augmente le risque de panne !)
– indépendance à la réinstallation ou au changement de distribution : mettre /home
  sur un répertoire séparé
– limiter le risque de casse en cas de problème, ou assurer une limite sans quotas
  par utilisateurs/groupes
– spécifier des options de montages spéciales pour la performance (noatime,
  async) ou pour la sécurité (noexec, nosuid, etc)




                                          100
Partionnement

La performance est souvent un problème négligé, mais il est essentiel. Un bon
partitionnement peut contribuer à améliorer la performance globale du système. Il
faut commencer par défnir les tâches ou les applications que le système doit
exécuter. Exemple de partionnement pour un serveur de messagerie :




                                        101
Partionnement

Exemple de partionnement pour un serveur de développement :




                                     102
Partionnement

Exemple de partionnement pour un serveur de bases de données :




                                     103
Partionnement

Exemple de partionnement pour un serveur web :




                                     104
Les logiciels sous UNIX

– à partir des sources
– sous Debian
– sous RedHat




                                   105
Les logiciels sous UNIX

A partir des sources :
– télécharger, vérifier, extraire, configurer, compiler, installer
– utilisation de gzip, gunzip, bzip2, tar
– puis de configure, make, make install




                                            106
Les logiciels sous UNIX

Sous Debian :
– /etc/dpkg/dpkg.cfg, /etc/apt/apt.conf, /etc/apt/sources.list
– /var/lib/dpkg/*
– dpkg, dpkg-reconfigure
– apt-get
– dselect
Très bon système de dépendances.




                                          107
Les logiciels sous UNIX

Sous RedHat :
– rpm
– /etc/rpmrc, /usr/lib/rpm/*
– urpmi/yum
Système précédement moins performant, mais maintenant pratiquement équivalent
à apt.




                                         108
Planification de tâches

Le démon cron exécute des commandes pour un utilisateur, selon des critères
temporels : date et heure : La périodicité (tou(te)s les) quand elles sont soumises
par la commande crontab. L’échéance (à telle heure) quand elles sont soumises par
la commande at. A leur tour et dès que possible quand elles sont soumises par la
commande batch.




                                         109
Planification de tâches

Il peut y avoir des contraintes d’utilisation.

– L’utilisateur doit avoir l’autorisation de soumettre une requête. La liste des
  utilisateurs autorisés est située dans le fichier cron.allow, et la liste des
  utilisateurs interdits dans cron.deny, dans/usr/lib/cron. Pour les commandes at et
  batch les fichiers sont at.allow et at.deny. Si ces fichiers n’existent pas seul root
  est autorisé à utiliser ces commandes. Pour autoriser tout le monde, il suffit de
  créer un fichier deny vide (aucun utilisateur interdit).
– Le démon cron exécute une commande dans un environnement réduit (seules les
  variables HOME, LOGNAME et SHELL sont initialisées avec des valeurs
  simples). Les autres variables doivent êtres initialisées ou récupérées par ou
  depuis un script.
– Le démon cron mémorise l’historique des actions dans /usr/lib/cron/log. Il faut
  penser à purger régulièrement ces fichiers (ou faire des rotations).


                                            110
Planification de tâches

Le démon cron fonctionne à l’aide d’une table, appelée une « crontable ». C’est un
fichier texte simple. Pour modifier sa crontable personnelle on utilise la commande
crontab -e. Le format est le suivant : Minutes Heures Jour du mois Mois Jour de la
semaine Commande




                                        111
Planification de tâches

On utilise le format suivant pour les valeurs périodiques :
– Une valeur pour indiquer quand il faut exécuter la commande. Ex : la valeur 15
  dans le champ minute signifie la quinzième minute
– Une liste de valeurs séparées par des virgules. Ex : 1,4,7,10 dans le champ Mois
  pour Janvier, Avril, Juillet, Octobre
– Un intervalle de valeurs. Ex : 1-5 dans le champ Jour de la Semaine indique du
  lundi (1) au vendredi (5). Le 0 est le dimanche et le 6 le samedi.
– Le caractère * pour toutes les valeurs possibles. Ex : * dans le champ Jour du
  mois indique tous les jours du ou des mois.




                                          112
Planification de tâches

Exemples : Exécution de df tous les jours, toute l’année, tous les quarts d’heure :

0,15,30,45 * * * * df > /tmp/libre

Exécution d’une commande tous les jours ouvrables à 17 heures :

0 17 * * 1-5 finTravail.sh

Pour lister les crontabs actives : crontab -l Pour supprimer la crontab active : crontab
-r Pour éditer la crontab d’un utilisateur particulier : crontab -u user




                                            113
Planification de tâches

La commande « at » exécute une commande à une date et une heure données. La
commande est lue depuisl’entréestandard. Si celle-ci est stockée dans un fichier, il
faudra rediriger celui-ci vers la commande.

$ at heure [date] < ficCommandes

Exemples : Exécution de ficcommandes à 15 heures

$ at 1500 < ficCommandes

Exemple : Exécution à minuit

$ at midnight < ficCommandes :

Exemple : Exécution dans trois heures

$ at now + 3 hours < ficCommandes


                                         114
7. Réseau

1. Rappel sur IP

2. La configuration réseau

3. Le client DHCP et le client DNS

4. Le filtrage IP par iptables




                                        115
Rappel sur IP

– Créé par la DARPA : Defense Advanced Research Project Agency dans les
  années 70 pour le projet ARPANET
– Dans les faits, travail de l’université de Berkeley pour ajouter TCP/IP à UNIX
  BSD4
– Généricité et standardisation assurées par divers organismes :
  – Internet Activities Board : protocoles TCP/IP
  – Internet Reseach Task Force : protocoles au-dessus d’IP
  – Internet Engineering Task Force : fonctionement du NET
  – différents Network Information Center : adresses
– IP : le coeur du système : version actuelle v4, IPv6 disponible depuis de
  nombreuses années, mais évolution difficile




                                         116
IP sous UNIX

– Présence d’une carte réseau ! ou en tout cas d’une carte fournissant de la
  modulation/démodulation de fréquence ...
– Installation d’un drivers pouvant gérer cette carte :
  – soit via l’intégration du drivers dans le noyau
  – soit via la présence du drivers sous forme de module
– Vérification de la présence d’une carte réseau et du drivers associé :
  – /var/log/messages
  – dmesg
  – lspci, lsdev




                                          117
Interface réseau

– Présence d’une « pseudo-interface » pour faire la correspondace entre les
  couches réseau et les couches de transport TCP/IP
– eth0, eth1, em0, wifi0, ppp0 ...
– La configuration de la pseudo-interface se fait via ifconfig
eth0:UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST mtu 1500
inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:19:e3:d3:e9:8f
media: autoselect status: active
supported media: autoselect




                                          118
Interface réseau

– eth0 : pseudo-interface ethernet 0
– adresse IP : 192.168.0.10
– masque sous-réseau : 0xffffff00, 255.255.255.0, /24
– adresse de diffusion : 192.168.0.255
ifconfig eth0 down
ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 ip




                                         119
Interface réseau

– Possibilité de créer des alias (IP-Aliasing) : eth0 :0
– Possibilité de créer des pseudo-interfaces à partir d’autres pseudo-interfaces :
  vlan0.0 :0 (utile pour les VLANs ou l’ agreggation de liens)
– Configuration fine du module en charge de la carte réseau :
  – en paramêtre du module lors du chargement : modprobe ipw2100 mode=2
     channel=4
  – via mii-tool : mii-tool –force=100baseTx-FD eth0
  – via ethtool : ethtool -s eth0 speed 10 duplex full autoneg off




                                           120
Le routage IP

– A chaque émission de paquet IP, un aiguillage est opéré : « le routage »
– Par où dois-je envoyer ce message pour qu’il arrive à destination ?
  – l’adresse du paquet va être comparée à chaque route
  – dès correspondance, le paquet est envoyé
  – si aucune route ne correspond, passage par la route par défaut




                                        121
Le routage IP

– Pour configurer les route, utilisation de la commande : route
[jmo@jmoreau]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags        Metric Ref     Use Iface
192.168.99.0    0.0.0.0         255.255.255.0   U            0      0         0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U            0      0         0 lo
[jmo@jmoreau]# route add default gw 192.168.99.254
[jmo@jmoreau]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags        Metric   Ref   Use   Iface
192.168.99.0    0.0.0.0         255.255.255.0   U            0        0       0   eth0
127.0.0.0       0.0.0.0         255.0.0.0       U            0        0       0   lo
0.0.0.0         192.168.99.254 0.0.0.0          UG           0        0       0   eth0




                                        122
Le routage IP

– route add default gw ...
– route add -net 192.168.1.0 netmask 255.255.255.0 eth0
– route add -host 192.168.2.1 eth0
– ...




                                      123
fichier de configuration du réseau

– RedHat/Fedora : /etc/sysconfig/network-scripts
– Debian/Ubuntu : /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.9
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.2
dns-nameservers 192.168.1.7
dns-search localdomain

Prise en compte des paramêtres après un /etc/init.d/network restart




                                                         124
Le client DHCP

– Allocation dynamique de paramêtres réseaux
– Dynamic Host Configuration Protocol (DHCP)
– Le but : s’adresser à un serveur qui sait pour nous quels sont nos paramêtres
  réseaux
– Associé à BOOTP/TFTP, possibilité d’aller chercher un fichier (une image disque
  par exemple)
– DHCP fonctionne au-dessus d’UDP.




                                        125
Le client DHCP
apt-get install dhcp3-client

Dans le fichier /etc/network/interfaces

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet dhcp

Prise en compte des paramêtres après un /etc/init.d/network restart




                                                         126
Le client DNS

– La configuration peut être fournie de différentes manières :
   – via le fichier /etc/network/interfaces ( dns-nameservers, dns-search)
   – via le client DHCP
   – via le fichier /etc/resolv.conf
nameserver 212.27.40.240
nameserver 212.27.40.241

2 des serveurs DNS de la société FREE.




                                              127
Le filtrage IP

– Un filtre à paquets est un programme qui examine l’en-tête des paquets qui
  passent, et décide du sort du paquet entier. Il peut choisir de le détruire, le laisser
  passer, répondre qu’il n’est pas intéressé, etc...
– Sous Linux, le filtrage de paquets s’effectue au niveau du noyau.
– Il offre les même fonctionnalités qu’un firewall dédié.
– Netfilter : architecture de filtrage IP du noyau
– IPTables : application de contrôle de cette architecture




                                          128
Le filtrage IP
                    Applications
                   ..............
                     .^.     |
                _     |      |      _ OUTPUT
        INPUT |_|----+       +--->|_|
               .^.                   
                |                     
                |                      
       décision de           _           
         routage -------->|_|FORWARD--+
               .^.                        |
            _ |                           V
PREROUTING |_|-+                          _
           .^.                           |_|POSTROUTING
            |                             |
            |                             V
     Interface d’entrée           Interface de sortie




                                     129
Le filtrage IP
La commande iptables sert à administrer ces fonctionnalités de filtrage. Cette
commande accepte de nombreuses options. Pour ajouter des règles de filtrage qui
s’applique aux paquets routés, la première forme de la commande utilisée est :
iptables -A FORWARD règle




                                      130
Le filtrage IP
La règle suivante autorise les paquets en provenance de l’adresse ip IpSrc, port
PortSrc et à destination de l’adresse IP IpDst, port PortDst, de protocole Proto (qui
peut être tcp ou udp).
    iptables -A FORWARD -p Proto -s IpSrc/Nbm --sport PortSrc 
             -d IpDst/Nbm --dport PortDst -j ACCEPT




                                         131
Le filtrage IP
La règle suivante bloque les paquets en provenance de IpSrc et à destination de
IpDst, de protocole Proto (qui peut être tcp, udp ou icmp ; en l’absence de protocole
la règle bloquera tous les paquets IP correspondants).
      iptables -A FORWARD -p Proto -s IpSrc/Nbm -d IpDst/Nbm -j DROP

On utilisera également les commandes suivantes :

iptables     -L   FORWARD -n
iptables     -F   FORWARD
iptables     -P   FORWARD ACCEPT
iptables     -P   FORWARD DROP




                                                    132
Le filtrage IP

– Lorsqu’une règle est ajoutée avec la commande iptables, elle est immédiatement
  active.
– Les ports et le protocole sont optionnels. Ainsi on peut simplement construire un
  filtre sur des adresses IP (comme les access-list simples sur cisco).
– Le champ Nbm (nombre de bits pour le masque) après IpSrc ou IpDst indique le
  nombre de bits à 1 consécutifs composant le masque. Cette notation s’appelle
  également notation CIDR. Exemple :
  195.10.19.0/24 : 195.10.19.0 255.255.255.0 (24 bits à 1 = masque de classe C)
  10.1.1.3/32 : 10.1.1.3 255.255.255.255 (tous les bits à 1 = masque "host")
– Il existe une option très utile pour orienter le filtrage. Il s’agit de l’option -i
  permettant de préciser pour quelle interface réseau d’entrée le filtre s’applique :
            iptables -A FORWARD -p ... -s ... -d ...          -i eth0 -j DROP




                                         133
Le filtrage IP
# Insérer les modules de suivi de connexion (non nécessaire si
# compilé dans le noyau).
insmod ip_conntrack
insmod ip_conntrack_ftp

# Créer une chaîne qui bloque les nouvelles connexions, sauf celles
# qui viennent de l’intérieur.
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A block -j DROP

# Sauter sur cette chaîne à partir des chaînes INPUT et FORWARD.
iptables -A INPUT -j block
iptables -A FORWARD -j block




                                   134
Le filtrage IP
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
#




                                   135
8. Le monde des serveurs

1. HTTP

2. SSH

3. NFS/SMBFS

4. NIS/LDAP/Kerberos




                                 136
HTTP, HTML, Apache

– HTML : Hypertext Markup Language, HTML permet en particulier d’insérer des
  hyperliens dans du texte
– HTTP : Hypertext Transfer Protocol, protocole de communication client-serveur
  développé pour le World Wide Web. Il est utilisé pour transférer les documents
  (document HTML, image, feuille de style, etc.) entre le serveur HTTP et le
  navigateur Web (inventé par Tim Berners-Lee)
– Apache : Logiciel libre et gratuit utilisable en tant que serveur HTTP et extrêment
  répandu. (Janvier 2008 : 50,93 selon Netcraft)




                                         137
Principe d’un serveur Web




           138
Principe d’un serveur Web




           139
Principe d’un serveur Web




           140
HTTP
telnet www.google.fr 80

GET / HTTP/1.0
Host: example.com
Referer: http://example.com/

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Google</title>
....
</center>
</body>
</html>
Connection closed by foreign host.




                                   141
Les serveurs Web

– Mode statique, le serveur dispose de pages HTML totalement écrites et ne
  nécessitant aucune autre information pour être affichée
– Mode dynamique, via un langage complémentataire à HTML, la page va
  interroger une base de données qui va lui fournir le complément d’informations
  nécessaire à son affichage.
– Dans ce dernier cas, il existe un ensemble extrêment connu et utilisé : LAMP
  (Linux, Apache, Mysql, PHP)




                                        142
Apache

– successeur de NCSA HTTPd 1.3
– support de multiples platformes
– support multithread
– support d’IPv6
– modules d’interprétation pour Perl, PHP, Python, Ruby, ...
– modules proxy, ré-écriture d’URL, .htaccess, ...




                                         143
Apache : .htaccess

– les .htaccess sont des fichiers de configuration d’Apache
– ils peuvent être placés dans n’importe quel répertoire du site
– ils permettent de modifier les droits d’accès, créer des redirection
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins




                                         144
Apache : virtualhost
 # cd /etc/apache2/sites-enabled
 # vi www.mondomaine.fr

 # Ne mettre cette ligne que dans UN seul fichier
 NameVirtualHost 192.168.30.220

 <VirtualHost 192.168.30.220>
       ServerName www.mondomaine.fr
       ServerAlias mondomaine.fr
       ServerAdmin webmaster@mondomaine.fr
       DocumentRoot /var/www/www.mondomaine.fr
       CustomLog /var/log/apache2/www.mondomaine.fr_access.log combined
       ErrorLog /var/log/apache2/www.mondomaine.fr_error.log
 </VirtualHost>

 # cd /var/www
 # mkdir www.mondomaine.fr

 # echo "<html><body>www.mondomaine.fr</body></html>" >
/var/www/www.mondomaine.fr/index.html
Pris en compte après /etc/init.d/apache2 restart



                                                    145
Apache sur Debian

– apt-get install apache2
– apt-get remove apache
– /var/log/apache2/access.log : contient les logs de connexion au serveur Web
– /var/log/apache2/error.log : contient les erreurs survenues




                                         146
SSH : définition

– SSH (Secure SHELL) permet de se connecter à un ordinateur distant et de
  disposer d’un shell sécurisé.
– Par défaut, le serveur SSH attend les connexions distantes sur le port 22 /
  protocole TCP.

Pour installer un serveur SSH, on utilise la commande suivante :
– apt-get install ssh




                                        147
SSH : principes

– ssh <login>@<nom ou adresse IP du serveur>
– ssh jmo@mamachine ou ssh mamachine -l jmo
– ssh mamachine -p 2222
– ssh -X mamachine




                                    148
SSH : fonctionnalités

– scp, sftp, ...
– existe sous windows via Putty, Winscp ou cygwin
– clé automatique via la création d’un jeu de clé publique/privé avec dépôt de la clé
  publique dans le homedir côté serveur ( /.ssh/authorized_keys).




                                         149
SSH : tunnel




ssh -L 2012 :serveur.exemple.org :80 toto@serveur.exemple.org




                                      150
Système de fichiers réseau

– afin de fournir un espace de stockage commun
– pour fournir un espace de sauvegarde
– pour centraliser l’information sur du matériel performant
– ...




                                         151
NFS

– Le protocole NFS (Network File System) permet de partager des fichiers dans les
  réseaux Unix.
– Le principe de montage est le même que pour un disque local
– Développé par la société SUN dabs les années 1980
– Version 2 et 3 principalement utilisé, v4 disponible depuis quelques temps
– Le noyau doit être compilé avec le support NFS




                                        152
NFS : configuration

– apt-get install nfs-kernel-server
– man exports : /etc/exports
 $ cat /etc/exports

 # fichier exemple /etc/exports
 /               master(rw) trusty(rw,no_root_squash)
 /projects       proj*.local.domain(rw)
 /usr            *.local.domain(ro) @trusted(rw)
 /home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
 /pub            (ro,insecure,all_squash)


Prise en compte uniquement après /etc/init.d/nfs-kernel-server restart ou via exportfs -ra




                                                           153
NFS et les RPC

– De manière sous-jacente NFS utilise les RPC
– RPC : Remote Procedure Call
– RPC : Ensemble d’apels de procédures à distance permettant la transparence
  d’utilisation locale ou distante. Fonctionne au niveau de la couche session du
  modèle OSI.
– Portmap : tableau de correspondance entre port IP et numéro de programme
  RPC
 $ rpcinfo -p localhost

 100000 2 tcp 111 portmapper
 ...
 100005 2 udp 32768 mountd




                                        154
NFS côté client

– Les services (portmap et nfs) doivent être lancés
– Puis le montage doit être réalisé
 mount -t nfs <nom ou adresse IP du serveur NFS>:<répertoire partagé> <point de montage

 $ mount -t nfs pc230:/home/partage /mnt

 $ cat /etc/fstab
 ...
 pc230:/home/partage     /mnt   nfs   defaults   0    0
 ...




                                        155
smbfs/CIFS

– Samba est l’implémentation du protocole SMB (Server Message Block) sous Unix
  / Linux. Il sert à partager des fichiers et des imprimantes avec les réseaux
  Microsoft.
– Samba lance deux services : smbd et nmbd.
– Le protocole SMB est tout sauf performant : il pollue le reseau par l’utilisation
  intensive du broadcast. Ceci lui offre l’avantage de pouvoir découvrir qui l’entoure
  et donc de limiter sa configuration
– Samba utilise les ports 137 (netbios name service, nbname, en UDP), 138
  (netbios datagram service nbdatagram, en UDP), 139 (netbios session service,
  nbsession, en TCP), et 445 ("direct-hosted" tcp, en tcp et udp).
– La méthode de connexion traditionnelle smb utilise les ports 137, 138 et 139
  tandis que la nouvelle méthode (CIFS, sur windows XP) n’utilise que le port 445.



                                          156
smbfs/CIFS

– apt-get install samba smbclient smbfs winbind
– /etc/samba/smb.conf
– testparm analyse le fichier smb.conf et signale les erreurs
– /etc/init.d/samba restart

Le fichier /etc/samba/smb.conf se divise en différentes sections :

– La section global : configuration globale de samba
– La section homes : cette section particulière permet de remonter une ressource
  qui correspond au répertoire de travail (home directory) de l’utilisateur qui s’est
  authentifié.




                                          157
smbfs/CIFS : Samba

– Projet libre et gratuit : Samba
– 4 modes configurations
  – Partage par ressource
  – Partage par utilisateur
  – Inscription dans un domaine
  – Controleur de domaine




                                       158
SAMBA
# Section GLOBAL
# Configuration globale de Samba
[global]
      # Nom du groupe de travail
      workgroup = WORKGROUP

      # Nom Netbios de la machine (identification réseau)
      netbios name = PC230

      # Chaine de commentaire associé au serveur (voisinage réseau)
      server string = %h Serveur (Samba %v)

      # Utilisateurs interdits
      invalid users = root

      # Enregistre un fichier de log par machine cliente du réseau MS
      log file = /var/log/samba/log.%m

      # Taille maximale des logs : 1 Mo
      max log size = 1000
...


                                    159
SAMBA : partage par ressource sur un réseau Workgroup
Dans le cas du mode share, pour pouvoir positionner un mot de passe
sur une ressource, il faut créer un compte UNIX ’invite’ :

# adduser --shell /bin/false --disabled-login invite

On Crée ensuite une entrée dans le fichier /etc/samba/smbpasswd :

# smbpasswd -a invite

Le mot de passe saisi correspondra à celui du répertoire partagé.

Il faut ensuite créer le répertoire partagé et donner l’arborescence
partagée à l’utilisateur invite du groupe invite :

# mkdir /home/partage
# chown invite.invite /home/partage




                                   160
SAMBA : partage utilisateur sur un réseau Workgroup

Dans le cas du mode user, pour ne partager une ressource partagée qu’a certains
utilisateurs, il faut tout d’abord créer un compte UNIX pour chacun d’eux :
 # adduser --shell /bin/false --disabled-login paul
 # adduser --shell /bin/false --disabled-login pierre

On crée ensuite une entrée dans le fichier /etc/samba/smbpasswd :

 # smbpasswd -a paul
 # smbpasswd -a pierre




                                                       161
SAMBA : partage utilisateur sur un réseau Workgroup

Coté Linux, les utilisateurs doivent avoir le droit d’écriture sur le répertoire partagé.
La meilleure méthode consiste à créer un groupe Unix contenant les utilisateurs
autorisés, et d’attribuer le repertoire partagé au groupe en question :
 #   addgroup prive
 #   adduser paul prive
 #   adduser pierre prive
 #   mkdir /home/prive
 #   chgrp prive /home/prive
 #   chmod 770 /home/prive




                                           162
SAMBA : partage sur un domaine Microsoft

Remarque : Pour que le serveur Linux puisse rejoindre le domaine existant, il faut se
connecter au moins une fois avec le compte Administrateur définit sur le contrôleur
de domaine, afin que ce dernier crée un compte machine :
 # net join -U Administrateur
 Administrateur’s password:
 [2008/02/12 11:58:41, 0] utils/net_ads.c:ads_startup(289)
 ads_connect: Chaîne multi-octets ou étendue de caractères invalide ou incomplète
 ADS join did not work, falling back to RPC...
 Joined domain DOMAINE.




                                         163
SAMBA : partage sur un domaine Microsoft

Dans le cas du mode server, les utilisateurs (login et mot de passe) sont définit sur
un serveur existant.

Coté Linux, les utilisateurs doivent avoir le droit d’écriture sur le répertoire partagé.
Cependant, les utilisateurs ne sont pas définit sur le serveur Linux mais sur le
contrôleur de domaine. La solution consiste à permettre à tout le monde d’écrire
dans ce répertoire, Samba se chargeant de n’autoriser que les utilisateurs autorisés
sur le contrôleur de domaine.
 # mkdir /home/prive
 # chmod 777 /home/prive




                                           164
NIS

– Network Information System
– Système client-serveur
– Développement de SUN
– Base de donnée avec des informations comparable à /etc/passwd
– Historiquement : YellowPages, problème avec British-Telecom
– Mais le préfixe yp est resté dans certaines commandes
– Le noyau doit être compilé avec le support




                                       165
NIS

– Serveur Maitre/Esclave afin d’augmenter la robustesse
– Serveurs secondaires mis a jour régulièrement, mais pas instantanément
– Client cherche son serveur par diffusion
– Principe des domaines (/bin/domainname)
– Premier serveur est pris
– Informations sont accessibles par commande (ypcat)
– Les données des bases sont transmises en clair




                                        166
NIS : côté serveur

– apt-get install nis
– /etc/defaultdomain
– /etc/ypserv.securenets avec 255.255.255.0 192.168.30.0
– /etc/default/nis avec MASTER si serveur
– /etc/init.d/nis restart
– /usr/lib/yp/ypinit -m




                                       167
NIS : côté client

– /etc/defaultdomain
– /etc/yp.conf avec l’adresse du serveur ypserver 192.168.30.230
– /etc/init.d/nis start
– /etc/nsswitch.conf avec netgroup : nis
– /etc/passwd avec + : : : : : : à la fin
– /etc/shadow avec + : : : : : : : : à la fin
– /etc/group avec + : : : à la fin
– ypcat passwd.byname
– ajout d’un utilisateur sur le seveur avec adduser jack
– mise à jours des bases : /usr/lib/yp/ypinit -m




                                               168
LDAP

– Lightweight Directory Access Protocol
– à l’origine une surcouche à X500 (système lourd et non adpaté à TCP/IP)
– Système client-serveur
– Serveur Maitre/Esclave
– Standard ouvert
– Mis à jour instantanément




                                          169
LDAP : les caractéristiques

– Base de donne multi-utilisation avec un schéma standardisé et extensif
– Conception optimisé pour la consultation
– Indépendance des objets entre eux et ignorance des structures de stockage
– Possibilité d’objets distribués sur plusieurs annuaires, mais impossibilité d’objets
  répartis sur plusieurs annuaires




                                          170
LDAP : les modèles

– modèle d’information, qui donne les données de l’annuaire
– modèle de désignation, qui organise l’arborescence et la nomenclature des objets
– modèle fonctionnel, qui permet l’accès et la consultation, modification et
  destruction des données
– modèle de sécurité, qui gère l’authentification et le chiffrement




                                         171
LDAP : LDIF

– Représentation des données LDAP sous forme de texte
dn: cn=host1,ou=hosts,dc=testing,dc=ldap
changetype: add
cn: host1
iphostnumber: 10.0.0.2
objectclass: top
objectclass: device
objectclass: ipHost




                                     172
LDAP : OpenLDAP : côté serveur
server # domainname testing.ldap
server # domainname > /etc/defaultdomain

server # vi /etc/hosts
10.0.0.1 peter peter.testing.ldap loghost

server # directoryserver setup

server # /usr/lib/ldap/idsconfig




                                   173
LDAP : OpenLDAP : côté client
server # ldapmodify -c 
> -D "cn=directory manager" 
> -w nssecret 
> -f /tmp/host1.ldif

client # domainname testing.ldap client # domainname > /etc/defaultdomain

client # ldapclient 
> -v init 
> -a proxypassword=proxy 
> -a proxydn=cn=proxyagent,ou=profile,dc=testing,dc=ldap 
> -a domainname=testing.ldap 
> 10.0.0.1




                                   174
LDAP

– getent passwd
– ldapadd
– ldapsearch
– ldapdelete
– ...




                   175
Kerberos

– Problème du LDAP, le mot de passe en clair lors des communication
– Kerberos est un protocole d’authentification réseau créé au Massachusetts
  Institute of Technology (MIT)
– Kerberos utilise un système de tickets au lieu de mots de passe en texte clair.
– L’ensemble repose sur des clés secrètes (chiffrement symétrique)
– Disponible sous UNIX et à la base des Windows récents




                                         176
Kerberos




  177
Kerberos




  178
Kerberos




  179
Kerberos




  180

More Related Content

What's hot

Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)Julien SIMON
 
Réseau local sous windows 2003 server
Réseau local sous windows 2003 serverRéseau local sous windows 2003 server
Réseau local sous windows 2003 serverOussama BenGharbi
 
NTFS francais
NTFS francaisNTFS francais
NTFS francaiszdi301
 
Install Party Linux (Université Constantine 2) - Clic Club
Install Party Linux (Université Constantine 2) - Clic ClubInstall Party Linux (Université Constantine 2) - Clic Club
Install Party Linux (Université Constantine 2) - Clic ClubAdel Belbekri
 
Installer un réseau poste à poste dans une école primaire
Installer un réseau poste à poste dans une école primaireInstaller un réseau poste à poste dans une école primaire
Installer un réseau poste à poste dans une école primairejniemiec
 
Logiciel système
Logiciel systèmeLogiciel système
Logiciel systèmebenaaa
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...Jean-Antoine Moreau
 
Mac os vs linux
Mac os vs linuxMac os vs linux
Mac os vs linuxomri hajer
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéECAM Brussels Engineering School
 
Cm5 archi ordinateur
Cm5 archi ordinateurCm5 archi ordinateur
Cm5 archi ordinateurformateur3
 

What's hot (20)

Systemes d'exploitation
Systemes  d'exploitationSystemes  d'exploitation
Systemes d'exploitation
 
Routage protocole
Routage protocoleRoutage protocole
Routage protocole
 
Install party
Install partyInstall party
Install party
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)
 
Réseau local sous windows 2003 server
Réseau local sous windows 2003 serverRéseau local sous windows 2003 server
Réseau local sous windows 2003 server
 
Linux
Linux Linux
Linux
 
NTFS francais
NTFS francaisNTFS francais
NTFS francais
 
Install Party Linux (Université Constantine 2) - Clic Club
Install Party Linux (Université Constantine 2) - Clic ClubInstall Party Linux (Université Constantine 2) - Clic Club
Install Party Linux (Université Constantine 2) - Clic Club
 
Installer un réseau poste à poste dans une école primaire
Installer un réseau poste à poste dans une école primaireInstaller un réseau poste à poste dans une école primaire
Installer un réseau poste à poste dans une école primaire
 
Nour C2I
Nour C2INour C2I
Nour C2I
 
Logiciel système
Logiciel systèmeLogiciel système
Logiciel système
 
Backup mondo
Backup mondoBackup mondo
Backup mondo
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
 
Mac os vs linux
Mac os vs linuxMac os vs linux
Mac os vs linux
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Cm5 archi ordinateur
Cm5 archi ordinateurCm5 archi ordinateur
Cm5 archi ordinateur
 
SdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoireSdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoire
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 

Viewers also liked

caterpillar Quarterly Releases2008 1st
caterpillar Quarterly Releases2008 1stcaterpillar Quarterly Releases2008 1st
caterpillar Quarterly Releases2008 1stfinance5
 
wyeth 2Q 2008 Net Revenue Report
wyeth 	2Q 2008 Net Revenue Reportwyeth 	2Q 2008 Net Revenue Report
wyeth 2Q 2008 Net Revenue Reportfinance12
 
Ferry 1000 T 330 Knots 6 Mn$ Roi 1600%
Ferry   1000 T  330 Knots   6 Mn$   Roi  1600%Ferry   1000 T  330 Knots   6 Mn$   Roi  1600%
Ferry 1000 T 330 Knots 6 Mn$ Roi 1600%andy appan
 
Walgreens Net Lease Property
Walgreens Net Lease PropertyWalgreens Net Lease Property
Walgreens Net Lease PropertyThe Boulder Group
 
Market Outlook - 27 August 2010
Market Outlook - 27 August 2010Market Outlook - 27 August 2010
Market Outlook - 27 August 2010Angel Broking
 
Tourism Plan 2010 TAC TPEI Final
Tourism Plan 2010 TAC TPEI FinalTourism Plan 2010 TAC TPEI Final
Tourism Plan 2010 TAC TPEI Finalguestf27e36b
 
Final Business Plan Project
Final Business Plan ProjectFinal Business Plan Project
Final Business Plan Projectehofstetter
 
Yves Rocher, Campaña 4, 2015
Yves Rocher, Campaña 4, 2015Yves Rocher, Campaña 4, 2015
Yves Rocher, Campaña 4, 2015Karla Banda
 
Police and modern media (Gazette)
Police and modern media (Gazette)Police and modern media (Gazette)
Police and modern media (Gazette)Twittercrisis
 
The Energy Audit: Improving Your Bottom Line
The Energy Audit:  Improving Your Bottom LineThe Energy Audit:  Improving Your Bottom Line
The Energy Audit: Improving Your Bottom LineeCO Zero LLC
 
журнал злокачественные опухоли № 2 (2014)
журнал злокачественные опухоли № 2 (2014)журнал злокачественные опухоли № 2 (2014)
журнал злокачественные опухоли № 2 (2014)oncoportal.net
 
Sample2 Email
Sample2 EmailSample2 Email
Sample2 Emailicallc
 
White sulphur springs geothermal well
White sulphur springs geothermal wellWhite sulphur springs geothermal well
White sulphur springs geothermal wellDarrel Dunn
 
Cash Budget Project
Cash Budget ProjectCash Budget Project
Cash Budget ProjectTyler Trick
 
Buy Britannia Industries for a target of Rs1110 - Prabhudas Lilladher
Buy Britannia Industries for a target of Rs1110 - Prabhudas LilladherBuy Britannia Industries for a target of Rs1110 - Prabhudas Lilladher
Buy Britannia Industries for a target of Rs1110 - Prabhudas LilladherIndiaNotes.com
 

Viewers also liked (20)

Micro zone data
Micro zone dataMicro zone data
Micro zone data
 
caterpillar Quarterly Releases2008 1st
caterpillar Quarterly Releases2008 1stcaterpillar Quarterly Releases2008 1st
caterpillar Quarterly Releases2008 1st
 
Rm gizmo
Rm gizmoRm gizmo
Rm gizmo
 
all page likes
all page likesall page likes
all page likes
 
wyeth 2Q 2008 Net Revenue Report
wyeth 	2Q 2008 Net Revenue Reportwyeth 	2Q 2008 Net Revenue Report
wyeth 2Q 2008 Net Revenue Report
 
Ferry 1000 T 330 Knots 6 Mn$ Roi 1600%
Ferry   1000 T  330 Knots   6 Mn$   Roi  1600%Ferry   1000 T  330 Knots   6 Mn$   Roi  1600%
Ferry 1000 T 330 Knots 6 Mn$ Roi 1600%
 
Walgreens Net Lease Property
Walgreens Net Lease PropertyWalgreens Net Lease Property
Walgreens Net Lease Property
 
2011 parent orientation_ecs_website
2011 parent orientation_ecs_website2011 parent orientation_ecs_website
2011 parent orientation_ecs_website
 
Market Outlook - 27 August 2010
Market Outlook - 27 August 2010Market Outlook - 27 August 2010
Market Outlook - 27 August 2010
 
Tourism Plan 2010 TAC TPEI Final
Tourism Plan 2010 TAC TPEI FinalTourism Plan 2010 TAC TPEI Final
Tourism Plan 2010 TAC TPEI Final
 
Final Business Plan Project
Final Business Plan ProjectFinal Business Plan Project
Final Business Plan Project
 
Yves Rocher, Campaña 4, 2015
Yves Rocher, Campaña 4, 2015Yves Rocher, Campaña 4, 2015
Yves Rocher, Campaña 4, 2015
 
59041 okeefe
59041 okeefe59041 okeefe
59041 okeefe
 
Police and modern media (Gazette)
Police and modern media (Gazette)Police and modern media (Gazette)
Police and modern media (Gazette)
 
The Energy Audit: Improving Your Bottom Line
The Energy Audit:  Improving Your Bottom LineThe Energy Audit:  Improving Your Bottom Line
The Energy Audit: Improving Your Bottom Line
 
журнал злокачественные опухоли № 2 (2014)
журнал злокачественные опухоли № 2 (2014)журнал злокачественные опухоли № 2 (2014)
журнал злокачественные опухоли № 2 (2014)
 
Sample2 Email
Sample2 EmailSample2 Email
Sample2 Email
 
White sulphur springs geothermal well
White sulphur springs geothermal wellWhite sulphur springs geothermal well
White sulphur springs geothermal well
 
Cash Budget Project
Cash Budget ProjectCash Budget Project
Cash Budget Project
 
Buy Britannia Industries for a target of Rs1110 - Prabhudas Lilladher
Buy Britannia Industries for a target of Rs1110 - Prabhudas LilladherBuy Britannia Industries for a target of Rs1110 - Prabhudas Lilladher
Buy Britannia Industries for a target of Rs1110 - Prabhudas Lilladher
 

Similar to 2009 2010 Fip3 A Unix

Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008Hedi Magroun
 
Systeme Dexploitation Open Source Linux
Systeme Dexploitation Open Source LinuxSysteme Dexploitation Open Source Linux
Systeme Dexploitation Open Source Linuxyousseffouzi41
 
Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Wajdi Ben Helal
 
0484-systemes-d-exploitation-os.pdf
0484-systemes-d-exploitation-os.pdf0484-systemes-d-exploitation-os.pdf
0484-systemes-d-exploitation-os.pdfRihabBENLAMINE
 
Install party
Install partyInstall party
Install partyhastu2
 
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfresume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfFootballLovers9
 
Introduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptIntroduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptMahdiHERMASSI1
 
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptx
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptxMISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptx
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptxPriscilleGANKIA
 
Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésAlexandre LAHAYE
 
1 les logicielslibres
1 les logicielslibres1 les logicielslibres
1 les logicielslibresSylvain DENIS
 

Similar to 2009 2010 Fip3 A Unix (20)

Cours linux
Cours linuxCours linux
Cours linux
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008
 
Systeme Dexploitation Open Source Linux
Systeme Dexploitation Open Source LinuxSysteme Dexploitation Open Source Linux
Systeme Dexploitation Open Source Linux
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Chapitre i généralités et notions de base
Chapitre i généralités et notions de base
 
Historique
HistoriqueHistorique
Historique
 
0484-systemes-d-exploitation-os.pdf
0484-systemes-d-exploitation-os.pdf0484-systemes-d-exploitation-os.pdf
0484-systemes-d-exploitation-os.pdf
 
Install party
Install partyInstall party
Install party
 
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdfresume-theorique-m104-2203-6246fb9f3e558 (2).pdf
resume-theorique-m104-2203-6246fb9f3e558 (2).pdf
 
Cours se chap1
Cours se chap1Cours se chap1
Cours se chap1
 
Introduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptIntroduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).ppt
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptx
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptxMISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptx
MISE EN ŒUVRE ET IMPLEMENTATION SUR GLPI.pptx
 
Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarqués
 
Cour1
Cour1Cour1
Cour1
 
Cours se chap1_2
Cours se chap1_2Cours se chap1_2
Cours se chap1_2
 
1 les logicielslibres
1 les logicielslibres1 les logicielslibres
1 les logicielslibres
 
Systemes
SystemesSystemes
Systemes
 

More from Johan Moreau

Les premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueLes premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueJohan Moreau
 
Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Johan Moreau
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 
Implications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseImplications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseJohan Moreau
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockJohan Moreau
 
Firewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureFirewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureJohan Moreau
 
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?Johan Moreau
 
Processus de développement
Processus de développementProcessus de développement
Processus de développementJohan Moreau
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-EstJohan Moreau
 

More from Johan Moreau (12)

Les premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueLes premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaque
 
Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Actions prioritaires pour la SSI
Actions prioritaires pour la SSI
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Implications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseImplications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entreprise
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de Shellshock
 
Firewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureFirewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructure
 
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
 
Processus de développement
Processus de développementProcessus de développement
Processus de développement
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-Est
 

Recently uploaded

SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 

Recently uploaded (20)

SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 

2009 2010 Fip3 A Unix

  • 1. Administration UNIX Johan Moreau Johan.Moreau@ircad.fr Formation d’Ingénieurs en Partenariat Spécialité « informatique industrielle » École Nationale Supérieure de Physique de Strasbourg Centre de Formation d’Apprentis de l’Industrie du Haut-Rhin 2009–2010 1
  • 2. Johan Moreau Johan.Moreau@ircad.fr RSSI et Ingénieur R&D, IRCAD Membre du bureau Clusir-Est Enseignement en Master ULP, FIP 2
  • 3. Administration UNIX 1. Introduction : Unix, une grande famille 2. Les bases : architecture des systèmes UNIX 3. Nos amis : utilisateurs, groupes, et sécurité 4. Les commandes : basiques et avancées 5. Les services : bases et démarrage 6. Matériels et logiciels : installation et choix 7. Réseau : configuration et filtrage 8. Le monde des serveurs : HTTP,NFS,SMBFS, ... 3
  • 4. Bibliographie – La programation sous UNIX. Ediscience, J.-M. Rifflet, Ediscience, ISBN 2-84074-013-3 – Systèmes d’exploitation, sysytèmes centralisés, systèmes distribués, A. Tanenbaum, Inter-Editions, ISBN 978-2-7440-7299-4 – Les cahiers de l’admin : BSD, E. Dreyfus, Eyrolles, ISBN 978-2-212-11463-8 – Advanced Programming in the UNIX Environnement W.R. Stevens, Addison-Wesley, ISBN 0-201-56317-7 4
  • 5. 1. Introduction 1. Pourquoi ce cours ? 2. Pourquoi UNIX ? 3. Introduction à l’administration 4. Quels besoins pour l’entreprise ? 5. Introduction à la sécurité 6. Unix, un monde à part 5
  • 6. Pourquoi ce cours ? L’administration de service informatique est un vecteur d’emploi important. Les systèmes basés sur UNIX sont de plus en plus nombreux. L’administration UNIX et Windows est basée sur des concepts différents. But de ce cours : donner un aperçu général du fonctionnement des systèmes UNIX afin d’en maîtriser l’administration de base. Le système qui sera utilisé pour présenter UNIX est GNU/Linux. 6
  • 7. Pourquoi UNIX ? Objectif d’un système d’exploitation : – Interface entre le matériel et l’utilisateur (disque, CPU, ...) – Séparation des ressources d’un utilisateur des autres (données, processus, ...) Pourquoi le choix d’UNIX ? – Le prix (surtout pour Linux, FreeBSD, OpenBSD, ...). – La disponibilité des sources. – Apprentissage : concepts fondamentaux dans un système, simple et ouvert. – Réellement multi-utilisateurs et multi-tâches depuis l’origine. 7
  • 8. Qu’est que GNU Linux ? GNU/Linux est le terme que promeut le projet GNU et ses supporters, en particulier Richard M. Stallman, son fondateur et principal activiste, pour se référer au système d’exploitation libre GNU basé sur un noyau Linux, les composantes GNU pouvant fonctionner sur d’autres noyaux : Les principaux arguments de cette position sont les suivants : – argument d’antériorité : GNU existait avant Linux ; – argument de la confusion : le public risque d’attribuer à Linux ce qui vient du projet GNU ; – argument philosophique : le public risque de ne pas connaître ou d’oublier les principes GNU qui s’appliquent pour Linux et qui sont à l’origine des logiciels libres ; Pour toute l’histoire : http://fr.wikipedia.org/wiki/Linux_ou_GNU/Linux 8
  • 9. Introduction à l’administration – Les "Systèmes d’Informations" ont une forte croissance ces dernières années. – La complexité des SI impose des personnes qualifiées pour en assurer leur bon fonctionnement. – Une grande partie du temps est accordée aux serveurs. – Etude IDC de 2004 : Plus de 60% des serveurs fonctionnaient sous UNIX (propriétaires ou ouverts). 9
  • 10. Les besoins de l’entreprise – L’entreprise a toujours de nouveaux besoins. – Une entreprise sans mouvement est destinée à disparaître. – Beaucoup de nouveaux besoins s’orientent vers le SI. – Mobilité (accès aux SI à tout moment) – Téléphonie IP (réduction des coûts, nouveaux concepts) – Internet et publication Web (marketing direct) – Services à valeurs ajoutées (mashup, ...) – Disponbilité du SI extrêmement importante. 10
  • 11. Introduction à la sécurité – la sécurité coûte cher : Étude du Computer Security Institute (rapport 2005) : En 2004, les dépenses de sécurité ont représenté entre 100 et 300 $ par employé (dans les entreprises de CA supérieur à 10 M$) – l’absence de sécurité coûte cher : Étude du Computer Security Institute (rapport 2005) : En 2004, les incidents de sécurité ont coûté en moyenne 355 552 $ par entreprise (sur 639 réponses) 11
  • 12. Introduction à la sécurité Objectifs de la sécurité : – Confidentialité : les données ne doivent pas Confidentialité être connues par des tiers non autorisés – Intégrité : les données ne doivent pas être altérées – Disponibilité : le système informatique doit é lit In bi té ni rester opérationnel gr po ité is D Confidentiality + Integrity + Availability = CIA 12
  • 13. Unix, un monde à part – 1969 UNICS : Ken Thompson, Dennis Ritchie – 1971 + Brian Kernighan – 1973 C – 1978 Création de 1BSD – 1984 100000 cpu sous UNIX – 1984 Début de projet GNU – 1985 Création de FSF – 1991 Linux v0.02 annoncée sur comp.os.minix – 1993 UNIX est le système de référence pour les serveurs – 1996 Lancement de KDE – 1997 Lancement de GNOME – 2008 Linux v2.6.27 PDF sur l’histoire d’UNIX : http ://www.levenez.com/unix/ 13
  • 14. 2. Les bases 1. Démarrage du système 2. Structure de fichiers 3. Processus 4. Noyau 14
  • 15. Démarrage du système Lancement d’un système Linux : boot et chargement du noyau – Au boot le BIOS (ou EFI) exécute le MBR (Master Boot Record) situé sur le premier secteur (512 octets) du support bootable choisi (disque, CD, clef USB, ...) Le MBR : – scanne le disque pour trouver LA partition bootable (flag) – lance le boot loader (chargeur de démarrage) du secteur de boot (premier secteur) de la partition bootable Le bootloader – charge le noyau en mémoire et l’exécute – charge le ramdisk initrd.img en mémoire Bootloader traditionnel : Lilo (Linux Loader) Grub (Grand Unified Bootlader) 15
  • 16. /etc/lilo.conf boot = /dev/sda2 delay = 50 image = /vmlinuz root = /dev/sda2 label = debian read-only image = /vmlinuz-2.6.27 root = /dev/sda3 label = unbuntu read-only other = /dev/sda1 label = dos table = /dev/sda 16
  • 17. Démarrage du système – initialisation de la machine (CPU, mémoire, registres) – initialisation de la structure des données – reconnaissance du matériel – accès au système de fichier racine – Une fois le noyau chargé en mémoire, il lance le premier processus : /bin/init – init est le père de tous les autres processus qui seront créés par l’appel système fork() – init lit le fichier /etc/inittab pour savoir : – quel est le fichier à exécuter pour continuer le chargement du système ? – quel est le runlevel (niveau d’exécution) par défaut ? – comment lancer les services pour un runlevel donné ? – ... – Les noyaux Linux 2.6.32 ont des possibilités de démarage différentes 17
  • 18. inittab – id :runlevel :action :process – action possible – sysinit – once – wait – respawn – ctrlaltdel – initdefault 18
  • 19. Périphérique UNIX accès par des fichiers spéciaux : /dev/... : – disques durs : hda, hdb, sda, sdb – disquettes : fda, fdb – terminaux : tty0, tty1, tty2 – ... 19
  • 20. Système de fichiers UNIX – ext2, ext3, ext4, reiserfs4, zfs, ... – NTFS, FAT, vfat – iso9660 – nfs, smbfs – ... 20
  • 21. Structure de fichiers Sous Unix un fichier : – est désigné par un nom – possède un unique inode – peut être dans les états : ouvert, fermé, lu, écrit – peut être : – un fichier ordinaire/normal – un répertoire – un lien symbolique – un pseudo-fichier représentant : – un accès caractère par caractère – un accès par bloc – un dispositif de communication 21
  • 22. Structure de fichiers Un inode stocke les informations suivantes : – le type de fichier (-,d,l,c,p,b) – le mode (permissions d’accès) du fichier (rwxr-x—) – le nombre de liens – l’identification du propriétaire (UID) – l’identification du groupe (GID) – la taille du fichier en nombre d’octets – la date de création (atime), de dernière modification (mtime) et de dernier accès(ctime) – adresse du fichier (13 adresses) 22
  • 24. Structure de fichiers Représentation logique du système de fichiers. C’est une arborescence, plus généralement un graphe orienté sans cycle. 24
  • 25. Structure de fichiers – / Répertoire racine – /bin Executables nécessaires pour le démarrage et le fontionnement en mode “single user” – /boot Contains static files for the boot loader. – /dev Périphériques et fichiers spéciaux – /etc Fichiers de configuration de la machine. contient des sous-répertoires pour les “gros” logiciels (X11, mail, ...) – /etc/skel Fichiers initiaux pour la création d’un compte – /home Emplacement habituel des répertoires des utilisateurs. – /lib Bibliothèques nécessaires au démarrage du système et aux commandes de base – /mnt répertoire pour les montages temporaires – /proc Point de montage pour proc qui fournit des infos sur les processus qui tournent et le noyau 25
  • 26. – /sbin comme bin, mais pour les commandes d’administration. – /tmp Fichiers temporaires. Peuvent être effacés sans préavis. – /usr Habituellement sur une partition séparée, partagable, en lecture seulement. – /usr/X11R6 The X-Window system, version 11 release 6. – /usr/doc Documentation. – /usr/etc Fichiers de configuration. – /usr/include Pour le compilateur C – /usr/lib Bibliothèques, fichiers de configuration – /usr/local Fichiers locaux du site. Contient bin lib doc etc info man sbin src sbin – /usr/sbin Commandes d’administration pas indispensables pour le fonctionnement de base. – /usr/share Répertoires partagés – /usr/src Fichiers sources. – /usr/src/linux Sources du noyau – /var fichiers qui peuvent changer de taille – /var/cache/man/cat[1-9] Pages de manuel préformattées 26
  • 27. – /var/lock Fichiers verrous – /var/log Journaux divers – /var/run Fichiers contenant les numéros des processus des services démarrés. – /var/spool Fichiers en file d’attente – /var/spool/at commandes différées – /var/spool/cron commandes programmées – /var/spool/lpd Files d’attente des imprimantes – /var/spool/mail Boites aux lettres 27
  • 28. Noyau Un noyau est un fichier exécutable qui se trouve sur le disque de boot Le nom de ce fichier n’est pas standard et peut être UNIX, unix, vmunix, ... Le noyau assure la gestion des ressources physiques et logiques du système : – gestion des périphériques par les pilotes intégrés au noyau – gestion des fichiers associée à la gestion des périphériques – gestion des processus à l’aide de l’ordonnanceur (« process scheduler ») Les processus accèdent aux services du noyau via un ensemble de fonctions systèmes (principalement en langage C). Les primitives d’UNIX sont basées sur le standard POSIX, définie par l’IEEE et normalisée par l’ISO. 28
  • 29. Noyau Il y a 2 types de noyaux, Micro-Noyau : – petit noyau avec une fonctionnalité minimale : Initialisation, communication, contrôle de l’accès au matériel – les autres fonctions sont mises dans des processus externes qui sont lancés dans l’espace utilisateur Noyau monolithique : – un seul noyau avec la fonctionnalité complète, souvent avec des parties sous-utilisées 29
  • 30. Noyau Avantages du micro-noyau : – Séparation des pilotes du noyau (sécurité,stabilité,gestion) – Taille du noyau (lancement des parties utilisés) – Flexibilité (échange ou test des pilotes) Avantages du noyau monolithique : – Contrôle du noyau (sécurité) – Vitesse (communication interne au noyau) – Flexibilité (utilisation du matériel) 30
  • 31. Noyau Combinaison des avantages du micro-noyau avec les avantages du noyau monolithique : – Noyau monolithique qui peut être étendu par des modules – Communication interne au noyau – Flexibilité du système micro-noyau avec le chargement et déchargement des modules Principe d’un Linux actuel. 31
  • 32. Noyau Les commandes en charge des modules : – lister des modules chargés (lsmod) – charger un module (insmod) – décharger un module (rmmod) – charger un module avec des dépendances (modprobe) – /etc/modules.conf ou via udevd 32
  • 33. 3. Nos amis 1. Compte Unix 2. Commande passwd 3. Droits sur les fichiers 4. Commande chown, chmod 5. Environnement d’éxecution 33
  • 34. Compte UNIX – un nom d’utilisateur (login) défini par un identifiant (uid) – un mot de passe – un groupe principal auquel appartient cet utilisateur (gid) – un répertoire de travail (homedir) – un langage de commandes (shell) 34
  • 35. Le shell – Plusieurs familles : sh (sh, ksh, bash, zsh) vs csh (csh, tcsh) – Fichier de configuration par utilisateur : .profile dans $HOME (ou .bash_profile dans certain cas pour bash sous Linux par exemple) La plupart des exemples donnés dans le cours sont pour la famille sh. 35
  • 36. Login Le login : – Identification de l’utilisateur par le nom de login – Base de l’autorisation – Unique par le système d’exploitation – Numéro d’identification (User ID = UID) 36
  • 37. passwd Le mot de passe : – Vérification de l’utilisateur – N’est pas stocké en clair sur le disque – Vérifié par un algorithme "Trap Door" : – Correspondance entre le mot crypté et le mot stocké – Risque d’attaque par "force brute" 37
  • 38. passwd La commande passwd va mettre à jours les fichiers : – /etc/passwd – /etc/shadow – /etc/groups – /etc/gshadow Le fichier /etc/passwd contient : – le nom de login – Le mot de passe (normalement vide si shadow présent) – UID, GID – Le nom réel – Le répertoire de l’utilisateur – Le shell par défaut de l’utilisateur 38
  • 39. Les mots de passe C’est pourtant facile d’avoir un bon mot de passe : – élargir l’alphabet : minuscules, majuscules, chiffres et caractères de ponctuation => augmente le nombre de combinaisons possibles – agrandir la taille : plus de 8 caractères => augmente le nombre de combinaisons possibles – facile à retenir (première lettre des mots d’une phrase) => pas besoin de l’écrire Exemple : FIP,c1fg@S! (« FIP, c’est une filière géniale à Strasbourg ! ») :-) 39
  • 40. Droits d’accès Types des droits : – Lecture (r) – Écriture (w) – Exécution (x) Notation : – rw-r—– – 640 Exemple : – $ ls -l file – -rw-rw-rw- 1 jmoreau None 38 Feb 25 2008 file 40
  • 41. Principe du confinement, ou du moindre privilège Problème : comment changer son mot de passe (nécessite le privilège d’écrire dans /etc/passwd, ou équivalent) Attribut Set-User-Id-on-exec « bit setuid » sur les programmes : le processus est exécuté sous l’identité effective du propriétaire du fichier exécutable (et non de l’utilisateur réel) Exemple : $ ls -l /usr/bin/passwd -r-sr-xr-x 2 root wheel 5828 Oct 9 20:24 /usr/bin/passwd Attribut Set-Group-Id-on-exec « bit setgid » : idem setuid, mais avec le groupe. 41
  • 42. Droits d’accès - Les cas particuliers SUID, SGID (set user/group ID) : – Droit s (avec x) ou S (sans x), 4000 (user) ou 2000 (group) – Changement de propriétaire du programme en exécution (/bin/passwd) Sticky Bit : – Droit t (ou T), 1000 – Mis sur un répertoire – Permet la suppression d’un fichier seulement au propriétaire 42
  • 43. Principe du confinement, ou du moindre privilège Utilisations de cette élévation de privilège : – changement de mot de passe, de shell, etc. – ajout d’un fichier dans la file d’attente du gestionnaire d’imprimante – consultation d’informations système (netstat) – écriture d’un message sur la console d’un ou plusieurs autres utilisateurs – etc. Problème potentiel : élévation de privilège => l’impact des bogues est plus grave => programmation plus difficile (environnement hostile) => effort de réduction du nombre de programmes avec le bit setuid dans les Unix sécurisés 43
  • 44. Droits d’accès Modifications des droits : – chmod u+rw file – chmod 640 file Modification du propriétaire : – chown jmoreau.users file – chown 512 file Droit par défaut géré par le umask (complément à 777). Exemple : droit 644 => umask 133 44
  • 45. Environnement – Trouver une commande : which commande – Cherche dans la variable PATH – Pour connaitre les chemins : echo $PATH 45
  • 46. 4. Les commandes 1. La documentation sous Unix 2. Les variables shell 3. Les commandes de base 4. Les commandes "avancées" 46
  • 47. Documentation Le système le plus important : man – man ls – man man – man passwd – man 5 passwd Les niveaux de man : 1. Programmes exécutables ou commandes de l’interpréteur de commandes (shell) 2. Appels système (Fonctions fournies par le noyau) 3. Appels de bibliothèque (fonctions fournies par les bibliothèques des programmes) 4. Fichiers spéciaux (situés généralement dans /dev) 47
  • 48. 5. Formats des fichiers et conventions. 6. Jeux 7. Divers 8. Commandes de gestion du système (généralement réservées à root) 9. Noyau 48
  • 49. Documentation Un système récent : info – info est plus puissant que man mais moins standard – plus difficile à manipuler que man – format officiel du projet GNU – pages plus à jours que le man Une source supplémentaire : /usr/share/doc – emplacement des HOWTO : documentation lourde pour un projet – nombreux exemples D’autres sources : – whereis – locate – apropos – ... Ne jamais sous-estimer la documentation fournie avec votre système ! 49
  • 50. Variable Le shell peut utiliser des variables : – les variables sont non typées – une simple déclaration A=monFichier – attention, il ne faut pas mettre d’espace autour de "=" – pour utiliser la variable : – $A ou ${A} – variables spéciales : – Paramètres : $1 $2 $3...$9 – Nom du script : $0 – Valeur de retour : $ ? – Process ID du shell : $$ 50
  • 51. Variable Chaîne de caractères, 3 possibilités : – Pas de modifications avec ” (simples quotes) : – echo ’Ceci est un $A’ – » Ceci est un $A – Évaluation des variables et des commandes avec "" (guillemets) : – A=1 – echo "Ceci est un $A" – » Ceci est un 1 – Exécution du contenu avec “ (quotes inversées) : – le fichier file contient le texte : bonjour – echo ‘cat file‘ – » bonjour 51
  • 52. Variable Variable tradionnellement définie : – HOME – LOGIN – PATH – PWD – USER – ... On peut obtenir l’ensemble des variables via la commande : env 52
  • 53. Commande de base ls - LiSt - liste le contenu d’un répertoire – ls – ls rep – ls -l /tmp – ls ../etc – ls -altr 53
  • 54. Commande de base cd - Change Dir - modifie le répertoire courant – cd – cd /tmp – cd .. – cd /usr/local – cd - 54
  • 55. Commande de base cp - CoPy - copie un fichier (au sens général) – cp file1 file2 – cp -r dir1 /tmp – cp * /tmp 55
  • 56. Commande de base mv - MoVe - déplace (ou renomme) un fichier (au sens général) – mv file1 file2 – mv file1 /tmp/ – mv -f file1 file2 – mv -v file1 file2 56
  • 57. Commande de base ln - LiNk - crée un lien – ln -s file1 file2 – ln file1 file2 57
  • 58. Commande de base mkdir - MaKe DIRectory - crée un répertoire – mkdir /home/user/jmoreau – mkdir -p /tmp/titi/toto 58
  • 59. Commande de base rm - ReMove - supprime le fichier ou le répertoire – rm file1 – rm -f file1 – rm -rf /tmp/toto/ – rm -i file1 59
  • 60. Commande de base pwd - Path on Working Directory - retourne le répertoire de travail – pwd 60
  • 61. Commande de base id/whoami - IDentity - retourne l’identité de l’utilisateur – id – whoami 61
  • 62. Commande de base cat - conCATenate - affiche des fichiers – cat file1 – cat file1 file2 – cat -n file1 62
  • 63. Commande de base more/less - affiche des fichiers page par page – more file1 – less file1 63
  • 64. Commande avancée find - Recherche un fichier (au sens large) – find . – find . -name "file1" – find . -name "file1 -exec {} ; – 64
  • 65. Commande avancée gzip/gunzip - applique l’algorithme Lempel-Ziv sur le fichier – gzip file – gunzip file.gz 65
  • 66. Commande avancée tar - Tape ARchiver - crée une archive – tar cf file.tar dir1 – tar xf file.tar – tar zxvf file.tar.gz dir1 66
  • 67. Commande avancée du - Disk Usage - Affiche des statistiques sur les systèmes de fichiers montés – du – du -k – du -h – du -hs 67
  • 68. Commande avancée df - Display Free - Affiche l’espace disponible – df 68
  • 69. Commande avancée grep - affiche des lignes qui contiennent ou pas l’expression – grep XYZ file1 – grep -v XYZ file1 – grep -n XYZ file1 – grep -i XYZ file1 69
  • 70. Commande avancée head/tail - affiche les premières/dernières lignes – head -5 file1 – head -c 20 file1 – tail -5 file1 – tail -f file1 70
  • 71. Commande avancée sort - Tri les données – sort – sort -n – sort -r 71
  • 72. Commande avancée uniq - Applique un filtre sur les ligne répétées – uniq – uniq -c 72
  • 73. Commande avancée tr - TRanslate - convertit les caractères de la première liste dans les caractères de la deuxième liste à la même position – tr [A-Z][a-z] file1 – tr -d ’15’ < winfile.txt > unixfile.txt 73
  • 74. Commande avancée bg/fg - BackGround - Envoi le processus en arrière/avant plan – bg monDemon – fg 74
  • 75. Commande avancée ps - Process Status - Donne des informations sur les processus en cours – ps -e – ps -a – ps -ea 75
  • 76. 5. Les services 1. Le démarrage des services (ou "démons") 2. Les exemples de base 3. Les exemples "avancées" 76
  • 77. initd – cf Chapitre 1, le noyau donne la main à init à la fin du chargement – init a le PID n 1 – init est le " père " de tous les processus du système – en fonction du runlevel il démarre tel ou tel ensemble de services 77
  • 78. runlevel Pour rappel (cf Chapitre 1). 0. Arrêt du système effectué par la commande init 0 (shutdown -h sous Linux) 1. Mode single-user (mode mono-utilisateur) pour des opérations particulières (maintenance : un seul utilisateur, pas de mode réseau, ...) 2. Mode multi-utilisateurs, réseau activé avec services réseaux de base (sans services réseau sous Linux) 3. Mode multi-utilisateurs, réseau activé avec services réseaux avancés (avec services réseau sous Linux) 4. Mode multi-utilisateur spécifique 5. Sur certains Unix et suivant l’architecture matérielle, maintenance matérielle depuis un firmware de la machine(Sous Linux mode multi-utilisateurs avec interface graphique) 6. Reboot de la machine (shutdown -r) 78
  • 79. scripts de démarrage 2 cas : BSD ou SYSTEM V – BSD : utilisation d’un ou deux scripts qui gèrent l’ensemble des tâches à accomplir (rc1.d, rc.local, ...) – SYSTEM V avec un script qui lance divers démons et tâches réparties au sein d’une arborescence spécifique dépendant du runlevel. 79
  • 80. scripts de démarrage – inittab exécute en fonction du runlevel (exemple level 3) : /etc/rc.d/rc3 – /etc/rc.d/init.d : scripts d’arrêt et de relance des services – /etc/rc<niveau>.d/ : un répertoire par niveau(rc3.d, rc5.d, ...), liens vers les scripts contenus dans /etc/rc.d/init.d. – Les liens contenus dans /etc/rc<niveau>.d/ – Snn<NomService> : S pour start, nn est une valeur numérique sur deux caractères(01 05 10 15 ou autre) déterminant l’ordre de lancement des services – Knn<NomService> : K pour Kill, nn la valeur déterminant l’ordre d’arrêt des services. – exemples – S00network — S01nfs – K00network — K01nfs 80
  • 81. Script de démarrage des services Exemple /etc/rc2.d/S* : /etc/rc2.d/S10sysklogd /etc/rc2.d/S20lpd /etc/rc2.d/S11pcmcia /etc/rc2.d/S20makedev /etc/rc2.d/S12kerneld /etc/rc2.d/S20nfs-kernel-server /etc/rc2.d/S14ppp /etc/rc2.d/S20openldapd /etc/rc2.d/S19bind /etc/rc2.d/S20postgresql /etc/rc2.d/S19nfs-common /etc/rc2.d/S20sendmail /etc/rc2.d/S19nis /etc/rc2.d/S20ssh /etc/rc2.d/S19nscd /etc/rc2.d/S25nfs-server /etc/rc2.d/S20apmd /etc/rc2.d/S89atd /etc/rc2.d/S20autofs /etc/rc2.d/S89cron /etc/rc2.d/S20exim /etc/rc2.d/S91apache /etc/rc2.d/S20gpm /etc/rc2.d/S99gdm /etc/rc2.d/S20inetd /etc/rc2.d/S99rmnologin /etc/rc2.d/S20irmanager /etc/rc2.d/S99wdm /etc/rc2.d/S20logoutd /etc/rc2.d/S99xdm 81
  • 82. Script de démarrage des services Les services ont généralement une syntaxe simple permettant de les lancer ou de les stopper. – start : démarre le service – stop : arrêt du service – status : état (lancé, arrêté, PID, ...) du service – restart : effectue un arrêt/relance du service – reload : dans certains cas seulement, le service est invité à relire sa configuration 82
  • 83. Script de démarrage des services #!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/sbin/lpd PIDFILE=/var/spool/lpd/lpd.lock test -x $DAEMON -a -f /usr/sbin/pac || exit 0 case "$1" in start) echo -n "Starting printer spooler: lpd" if start-stop-daemon --quiet --stop --signal 0 --pidfile $PIDFILE --name lpd then echo " already running." exit fi /sbin/start-stop-daemon --start --quiet --exec $DAEMON echo "." ;; stop) echo -n "Stopping printer spooler: lpd" 83
  • 84. if start-stop-daemon --quiet --stop --signal 0 --pidfile $PIDFILE --name lpd then PID=‘cat $PIDFILE‘ start-stop-daemon --quiet --stop --exec $DAEMON --pidfile $PIDFILE --name lpd # Now we wait for it to die while kill -0 $PID 2>/dev/null; do sleep 1; done echo "." else echo " not running."; fi ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/lpd {start|stop|restart|force-reload}" exit 1 esac exit 0 84
  • 85. Script de démarrage des services Sous Linux, le répertoire /var/lock/subsys contient la liste des services lancés, un fichier par service. Le répertoire /var/run contient dans certains cas la liste des PID et des fichiers de verrouillage de certains services. La commande service permet d’effectuer des actions sur les services sans se déplacer dans /etc/rc.d/init.d. – service [-f -R -s -d] <nomService> action – -f : full-restart, redémarrage complet du service – -R : full-restart-all : redémarrage de tous les services actuellement lancés – -s : status-all : statut de tous les services lancés – -d : debug, informations complémentaires 85
  • 86. ouverture de session – init lance le processus getty(gestionnaire de terminal). – getty lance un prompt attendant la saisie du nom de l’utilisateur. – Avant ce prompt le contenu du fichier /etc/issue est affiché. – Le nom validé, le terminal exécute la commande login qui va demander la saisie du mot de passe. – Si le mot de passe est correct (vérification dans /etc/passwd et /etc/shadow ou autre système), alors login affiche le contenue de /etc/motd et exécute un shell(toujours défini dans /etc/passwd). – Une fois la session terminée (fin du shell), init relance un terminal pour une nouvelle connexion. (respwan dans inittab) – Le paramétrage du terminal se fait par le fichier /etc/gettydefs. C’est getty qui va permettre un bon fonctionnement du terminal de l’utilisateur, en s’adaptant : VT100, VT220, XTERM, CONSOLE, ... 86
  • 87. Arrêt du système Arrêt : – shutdown -h now – halt Redémarrage : – shutdown -r now – reboot 87
  • 88. Exemples de services de base – /etc/init.d/network : script de gestion du réseau – /etc/init.d/sshd : script de gestion du serveur de shell à distance – /etc/init.d/cupsd : script de gestion du serveur d’impression – /etc/init.d/syslogd : script de gestion du serveur de log – ... 88
  • 89. Exemples de services "avancés" – /etc/init.d/apache : script de gestion du serveur web Apache – /etc/init.d/nfsd : script de gestion du serveur de système de fichiers réseau NFS – ... 89
  • 90. syslog Le démon syslog(processus appelé syslogd) permet de recevoir, traiter et stocker des messages d’erreurs(ou d’informations) émis par le noyau ou certains démons. /etc/syslog.conf permet de définir l’origine, l’importance et la destination de chaque message, sous forme de deux champs : – L’origine – Le niveau 90
  • 91. syslog L’origine définit un ensemble de systèmes et de sous-systèmes(noyau, services). La liste, extensible, est composée à l’origine des éléments suivants : – auth : service de sécurité et d’authentification – cron : service cron – daemon : les démons du système – kern : le noyau – lpr : le service d’impression – mail : la messagerie – news : le réseau – syslog : syslog lui-même – user : messages des processus utilisateurs – uucp : Unix to Unix CoPy 91
  • 92. syslog Le niveau définit la "criticité" : – emerg : Le système est inutilisable – alert : Une intervention immédiate est indispensable – crit : Erreur critique pour le sous-système – err : Erreur de fonctionnement – warning : Avertissement – notice : Évènement normal méritant d’être signalé – info : Pour information seulement – debug : Pour la mise au point – none : Jamais 92
  • 93. syslog On peut envoyer les messages de syslog vers différentes destinations – fichiers (arborescence /var/log) – mail à un utilisateur – console – serveur syslog distant (port udp/tcp 514) – ... 93
  • 94. 6. Matériels et logiciels 1. RAID 2. Partionnement 3. Logiciels 4. Planification de tâches 94
  • 95. RAID De part l’impact d’une indisponibilité d’un service tournant sur une machine « serveur », les choix matériels pour ces machines ne sont pas ceux qui sont faits pour les postes utilisateurs traditionnels. Le cas le plus fréquent est le choix de la technologie disques. En effet les disques sont accédés beaucoup plus souvent et de manière beaucoup plus aléatoire. 95
  • 96. RAID On distingue deux types de supports RAID : – un support matériel : Le contrôleur de disque gère lui-même le RAID et la tolérance aux pannes. – un support logiciel : le système Unix gère lui-même le RAID à l’aide de pilotes et d’outils particuliers propres au système. Il devient ainsi possible de faire du RAID même avec un contrôleur non prévu à cet effet. 96
  • 97. RAID Disques en miroir : Les écritures de données sont dupliquées sur plusieurs disques, généralement deux, pour se prémunir des défaillances d’un disque. Dans ce cas il reste toujours un disque disponible. Bandes de données ("data striping","striped disk") : Il s’agit de découper les données à écrire sur disque et segments séquentiels et contigus pouvant résider sur plusieurs disques physiques distincts. L’ensemble des segments d’une bande constitue un disque logique. Une solution plus élaborée est l’utilisation d’une bande de parité calculée à partir des données d’une autre bande. Il est alors possible de reconstruire les données. 97
  • 98. RAID – RAID 0 : Un disque sans redondance avec bandes : agrégat de plusieurs partitions en une seule. – RAID 1 : Des disques en miroir, mirroring – RAID 2 : Miroir avec écriture en parallèle et correction d’erreur (« EEC ») – RAID 3 : Écriture en parallèle avec contrôle de parité. – RAID 4 : Bandes avec parité, la bande de parité est sur un seul disque – RAID 5 : Bandes avec parité, la bande est répartie sur plusieurs disques. Tolérance de panne d’un seul disque. – RAID 6 : Bandes avec deux fonctions de parité, réparties sur deux disques. Tolérance de panne de deux disques simultanés. – RAID 1+0 (10) : Bandes en mirroir Une solution RAID est une solution de tolérance aux pannes et ne remplace jamais une sauvegarde. 98
  • 99. Partionnement Une fois la technologie « disque » choisie, il est important de décider comment répartir les données sur le(s) disque(s). Une installation de base ne nécessite que deux partitions, la partition racine / et une partition de swap (mémoire virtuelle). Le kernel Linux 2.4 est notamment plus performant lorsqu’un swap est disponible : il peut ainsi y déplacer des données non fréquemment utilisées. 99
  • 100. Partionnement On peut également subdiviser le système en plusieurs partitions. Les raisons d’un tel partitionnement plus fin sont : – performance : plusieurs périphériques swap distribués sur plusieurs partitions de disques-durs différents ; séparation des logs et des queues (/var/log et /var/spool) sur un serveur de mail très chargé (noter que cela augmente le risque de panne !) – indépendance à la réinstallation ou au changement de distribution : mettre /home sur un répertoire séparé – limiter le risque de casse en cas de problème, ou assurer une limite sans quotas par utilisateurs/groupes – spécifier des options de montages spéciales pour la performance (noatime, async) ou pour la sécurité (noexec, nosuid, etc) 100
  • 101. Partionnement La performance est souvent un problème négligé, mais il est essentiel. Un bon partitionnement peut contribuer à améliorer la performance globale du système. Il faut commencer par défnir les tâches ou les applications que le système doit exécuter. Exemple de partionnement pour un serveur de messagerie : 101
  • 102. Partionnement Exemple de partionnement pour un serveur de développement : 102
  • 103. Partionnement Exemple de partionnement pour un serveur de bases de données : 103
  • 104. Partionnement Exemple de partionnement pour un serveur web : 104
  • 105. Les logiciels sous UNIX – à partir des sources – sous Debian – sous RedHat 105
  • 106. Les logiciels sous UNIX A partir des sources : – télécharger, vérifier, extraire, configurer, compiler, installer – utilisation de gzip, gunzip, bzip2, tar – puis de configure, make, make install 106
  • 107. Les logiciels sous UNIX Sous Debian : – /etc/dpkg/dpkg.cfg, /etc/apt/apt.conf, /etc/apt/sources.list – /var/lib/dpkg/* – dpkg, dpkg-reconfigure – apt-get – dselect Très bon système de dépendances. 107
  • 108. Les logiciels sous UNIX Sous RedHat : – rpm – /etc/rpmrc, /usr/lib/rpm/* – urpmi/yum Système précédement moins performant, mais maintenant pratiquement équivalent à apt. 108
  • 109. Planification de tâches Le démon cron exécute des commandes pour un utilisateur, selon des critères temporels : date et heure : La périodicité (tou(te)s les) quand elles sont soumises par la commande crontab. L’échéance (à telle heure) quand elles sont soumises par la commande at. A leur tour et dès que possible quand elles sont soumises par la commande batch. 109
  • 110. Planification de tâches Il peut y avoir des contraintes d’utilisation. – L’utilisateur doit avoir l’autorisation de soumettre une requête. La liste des utilisateurs autorisés est située dans le fichier cron.allow, et la liste des utilisateurs interdits dans cron.deny, dans/usr/lib/cron. Pour les commandes at et batch les fichiers sont at.allow et at.deny. Si ces fichiers n’existent pas seul root est autorisé à utiliser ces commandes. Pour autoriser tout le monde, il suffit de créer un fichier deny vide (aucun utilisateur interdit). – Le démon cron exécute une commande dans un environnement réduit (seules les variables HOME, LOGNAME et SHELL sont initialisées avec des valeurs simples). Les autres variables doivent êtres initialisées ou récupérées par ou depuis un script. – Le démon cron mémorise l’historique des actions dans /usr/lib/cron/log. Il faut penser à purger régulièrement ces fichiers (ou faire des rotations). 110
  • 111. Planification de tâches Le démon cron fonctionne à l’aide d’une table, appelée une « crontable ». C’est un fichier texte simple. Pour modifier sa crontable personnelle on utilise la commande crontab -e. Le format est le suivant : Minutes Heures Jour du mois Mois Jour de la semaine Commande 111
  • 112. Planification de tâches On utilise le format suivant pour les valeurs périodiques : – Une valeur pour indiquer quand il faut exécuter la commande. Ex : la valeur 15 dans le champ minute signifie la quinzième minute – Une liste de valeurs séparées par des virgules. Ex : 1,4,7,10 dans le champ Mois pour Janvier, Avril, Juillet, Octobre – Un intervalle de valeurs. Ex : 1-5 dans le champ Jour de la Semaine indique du lundi (1) au vendredi (5). Le 0 est le dimanche et le 6 le samedi. – Le caractère * pour toutes les valeurs possibles. Ex : * dans le champ Jour du mois indique tous les jours du ou des mois. 112
  • 113. Planification de tâches Exemples : Exécution de df tous les jours, toute l’année, tous les quarts d’heure : 0,15,30,45 * * * * df > /tmp/libre Exécution d’une commande tous les jours ouvrables à 17 heures : 0 17 * * 1-5 finTravail.sh Pour lister les crontabs actives : crontab -l Pour supprimer la crontab active : crontab -r Pour éditer la crontab d’un utilisateur particulier : crontab -u user 113
  • 114. Planification de tâches La commande « at » exécute une commande à une date et une heure données. La commande est lue depuisl’entréestandard. Si celle-ci est stockée dans un fichier, il faudra rediriger celui-ci vers la commande. $ at heure [date] < ficCommandes Exemples : Exécution de ficcommandes à 15 heures $ at 1500 < ficCommandes Exemple : Exécution à minuit $ at midnight < ficCommandes : Exemple : Exécution dans trois heures $ at now + 3 hours < ficCommandes 114
  • 115. 7. Réseau 1. Rappel sur IP 2. La configuration réseau 3. Le client DHCP et le client DNS 4. Le filtrage IP par iptables 115
  • 116. Rappel sur IP – Créé par la DARPA : Defense Advanced Research Project Agency dans les années 70 pour le projet ARPANET – Dans les faits, travail de l’université de Berkeley pour ajouter TCP/IP à UNIX BSD4 – Généricité et standardisation assurées par divers organismes : – Internet Activities Board : protocoles TCP/IP – Internet Reseach Task Force : protocoles au-dessus d’IP – Internet Engineering Task Force : fonctionement du NET – différents Network Information Center : adresses – IP : le coeur du système : version actuelle v4, IPv6 disponible depuis de nombreuses années, mais évolution difficile 116
  • 117. IP sous UNIX – Présence d’une carte réseau ! ou en tout cas d’une carte fournissant de la modulation/démodulation de fréquence ... – Installation d’un drivers pouvant gérer cette carte : – soit via l’intégration du drivers dans le noyau – soit via la présence du drivers sous forme de module – Vérification de la présence d’une carte réseau et du drivers associé : – /var/log/messages – dmesg – lspci, lsdev 117
  • 118. Interface réseau – Présence d’une « pseudo-interface » pour faire la correspondace entre les couches réseau et les couches de transport TCP/IP – eth0, eth1, em0, wifi0, ppp0 ... – La configuration de la pseudo-interface se fait via ifconfig eth0:UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST mtu 1500 inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255 ether 00:19:e3:d3:e9:8f media: autoselect status: active supported media: autoselect 118
  • 119. Interface réseau – eth0 : pseudo-interface ethernet 0 – adresse IP : 192.168.0.10 – masque sous-réseau : 0xffffff00, 255.255.255.0, /24 – adresse de diffusion : 192.168.0.255 ifconfig eth0 down ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 ip 119
  • 120. Interface réseau – Possibilité de créer des alias (IP-Aliasing) : eth0 :0 – Possibilité de créer des pseudo-interfaces à partir d’autres pseudo-interfaces : vlan0.0 :0 (utile pour les VLANs ou l’ agreggation de liens) – Configuration fine du module en charge de la carte réseau : – en paramêtre du module lors du chargement : modprobe ipw2100 mode=2 channel=4 – via mii-tool : mii-tool –force=100baseTx-FD eth0 – via ethtool : ethtool -s eth0 speed 10 duplex full autoneg off 120
  • 121. Le routage IP – A chaque émission de paquet IP, un aiguillage est opéré : « le routage » – Par où dois-je envoyer ce message pour qu’il arrive à destination ? – l’adresse du paquet va être comparée à chaque route – dès correspondance, le paquet est envoyé – si aucune route ne correspond, passage par la route par défaut 121
  • 122. Le routage IP – Pour configurer les route, utilisation de la commande : route [jmo@jmoreau]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.99.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo [jmo@jmoreau]# route add default gw 192.168.99.254 [jmo@jmoreau]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.99.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.99.254 0.0.0.0 UG 0 0 0 eth0 122
  • 123. Le routage IP – route add default gw ... – route add -net 192.168.1.0 netmask 255.255.255.0 eth0 – route add -host 192.168.2.1 eth0 – ... 123
  • 124. fichier de configuration du réseau – RedHat/Fedora : /etc/sysconfig/network-scripts – Debian/Ubuntu : /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.9 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.2 dns-nameservers 192.168.1.7 dns-search localdomain Prise en compte des paramêtres après un /etc/init.d/network restart 124
  • 125. Le client DHCP – Allocation dynamique de paramêtres réseaux – Dynamic Host Configuration Protocol (DHCP) – Le but : s’adresser à un serveur qui sait pour nous quels sont nos paramêtres réseaux – Associé à BOOTP/TFTP, possibilité d’aller chercher un fichier (une image disque par exemple) – DHCP fonctionne au-dessus d’UDP. 125
  • 126. Le client DHCP apt-get install dhcp3-client Dans le fichier /etc/network/interfaces # The loopback interface auto lo iface lo inet loopback # The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) auto eth0 iface eth0 inet dhcp Prise en compte des paramêtres après un /etc/init.d/network restart 126
  • 127. Le client DNS – La configuration peut être fournie de différentes manières : – via le fichier /etc/network/interfaces ( dns-nameservers, dns-search) – via le client DHCP – via le fichier /etc/resolv.conf nameserver 212.27.40.240 nameserver 212.27.40.241 2 des serveurs DNS de la société FREE. 127
  • 128. Le filtrage IP – Un filtre à paquets est un programme qui examine l’en-tête des paquets qui passent, et décide du sort du paquet entier. Il peut choisir de le détruire, le laisser passer, répondre qu’il n’est pas intéressé, etc... – Sous Linux, le filtrage de paquets s’effectue au niveau du noyau. – Il offre les même fonctionnalités qu’un firewall dédié. – Netfilter : architecture de filtrage IP du noyau – IPTables : application de contrôle de cette architecture 128
  • 129. Le filtrage IP Applications .............. .^. | _ | | _ OUTPUT INPUT |_|----+ +--->|_| .^. | | décision de _ routage -------->|_|FORWARD--+ .^. | _ | V PREROUTING |_|-+ _ .^. |_|POSTROUTING | | | V Interface d’entrée Interface de sortie 129
  • 130. Le filtrage IP La commande iptables sert à administrer ces fonctionnalités de filtrage. Cette commande accepte de nombreuses options. Pour ajouter des règles de filtrage qui s’applique aux paquets routés, la première forme de la commande utilisée est : iptables -A FORWARD règle 130
  • 131. Le filtrage IP La règle suivante autorise les paquets en provenance de l’adresse ip IpSrc, port PortSrc et à destination de l’adresse IP IpDst, port PortDst, de protocole Proto (qui peut être tcp ou udp). iptables -A FORWARD -p Proto -s IpSrc/Nbm --sport PortSrc -d IpDst/Nbm --dport PortDst -j ACCEPT 131
  • 132. Le filtrage IP La règle suivante bloque les paquets en provenance de IpSrc et à destination de IpDst, de protocole Proto (qui peut être tcp, udp ou icmp ; en l’absence de protocole la règle bloquera tous les paquets IP correspondants). iptables -A FORWARD -p Proto -s IpSrc/Nbm -d IpDst/Nbm -j DROP On utilisera également les commandes suivantes : iptables -L FORWARD -n iptables -F FORWARD iptables -P FORWARD ACCEPT iptables -P FORWARD DROP 132
  • 133. Le filtrage IP – Lorsqu’une règle est ajoutée avec la commande iptables, elle est immédiatement active. – Les ports et le protocole sont optionnels. Ainsi on peut simplement construire un filtre sur des adresses IP (comme les access-list simples sur cisco). – Le champ Nbm (nombre de bits pour le masque) après IpSrc ou IpDst indique le nombre de bits à 1 consécutifs composant le masque. Cette notation s’appelle également notation CIDR. Exemple : 195.10.19.0/24 : 195.10.19.0 255.255.255.0 (24 bits à 1 = masque de classe C) 10.1.1.3/32 : 10.1.1.3 255.255.255.255 (tous les bits à 1 = masque "host") – Il existe une option très utile pour orienter le filtrage. Il s’agit de l’option -i permettant de préciser pour quelle interface réseau d’entrée le filtre s’applique : iptables -A FORWARD -p ... -s ... -d ... -i eth0 -j DROP 133
  • 134. Le filtrage IP # Insérer les modules de suivi de connexion (non nécessaire si # compilé dans le noyau). insmod ip_conntrack insmod ip_conntrack_ftp # Créer une chaîne qui bloque les nouvelles connexions, sauf celles # qui viennent de l’intérieur. iptables -N block iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT iptables -A block -j DROP # Sauter sur cette chaîne à partir des chaînes INPUT et FORWARD. iptables -A INPUT -j block iptables -A FORWARD -j block 134
  • 135. Le filtrage IP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms --- 127.0.0.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss # 135
  • 136. 8. Le monde des serveurs 1. HTTP 2. SSH 3. NFS/SMBFS 4. NIS/LDAP/Kerberos 136
  • 137. HTTP, HTML, Apache – HTML : Hypertext Markup Language, HTML permet en particulier d’insérer des hyperliens dans du texte – HTTP : Hypertext Transfer Protocol, protocole de communication client-serveur développé pour le World Wide Web. Il est utilisé pour transférer les documents (document HTML, image, feuille de style, etc.) entre le serveur HTTP et le navigateur Web (inventé par Tim Berners-Lee) – Apache : Logiciel libre et gratuit utilisable en tant que serveur HTTP et extrêment répandu. (Janvier 2008 : 50,93 selon Netcraft) 137
  • 141. HTTP telnet www.google.fr 80 GET / HTTP/1.0 Host: example.com Referer: http://example.com/ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>Google</title> .... </center> </body> </html> Connection closed by foreign host. 141
  • 142. Les serveurs Web – Mode statique, le serveur dispose de pages HTML totalement écrites et ne nécessitant aucune autre information pour être affichée – Mode dynamique, via un langage complémentataire à HTML, la page va interroger une base de données qui va lui fournir le complément d’informations nécessaire à son affichage. – Dans ce dernier cas, il existe un ensemble extrêment connu et utilisé : LAMP (Linux, Apache, Mysql, PHP) 142
  • 143. Apache – successeur de NCSA HTTPd 1.3 – support de multiples platformes – support multithread – support d’IPv6 – modules d’interprétation pour Perl, PHP, Python, Ruby, ... – modules proxy, ré-écriture d’URL, .htaccess, ... 143
  • 144. Apache : .htaccess – les .htaccess sont des fichiers de configuration d’Apache – ils peuvent être placés dans n’importe quel répertoire du site – ils permettent de modifier les droits d’accès, créer des redirection AuthType Basic AuthName "Password Required" AuthUserFile /www/passwords/password.file AuthGroupFile /www/passwords/group.file Require Group admins 144
  • 145. Apache : virtualhost # cd /etc/apache2/sites-enabled # vi www.mondomaine.fr # Ne mettre cette ligne que dans UN seul fichier NameVirtualHost 192.168.30.220 <VirtualHost 192.168.30.220> ServerName www.mondomaine.fr ServerAlias mondomaine.fr ServerAdmin webmaster@mondomaine.fr DocumentRoot /var/www/www.mondomaine.fr CustomLog /var/log/apache2/www.mondomaine.fr_access.log combined ErrorLog /var/log/apache2/www.mondomaine.fr_error.log </VirtualHost> # cd /var/www # mkdir www.mondomaine.fr # echo "<html><body>www.mondomaine.fr</body></html>" > /var/www/www.mondomaine.fr/index.html Pris en compte après /etc/init.d/apache2 restart 145
  • 146. Apache sur Debian – apt-get install apache2 – apt-get remove apache – /var/log/apache2/access.log : contient les logs de connexion au serveur Web – /var/log/apache2/error.log : contient les erreurs survenues 146
  • 147. SSH : définition – SSH (Secure SHELL) permet de se connecter à un ordinateur distant et de disposer d’un shell sécurisé. – Par défaut, le serveur SSH attend les connexions distantes sur le port 22 / protocole TCP. Pour installer un serveur SSH, on utilise la commande suivante : – apt-get install ssh 147
  • 148. SSH : principes – ssh <login>@<nom ou adresse IP du serveur> – ssh jmo@mamachine ou ssh mamachine -l jmo – ssh mamachine -p 2222 – ssh -X mamachine 148
  • 149. SSH : fonctionnalités – scp, sftp, ... – existe sous windows via Putty, Winscp ou cygwin – clé automatique via la création d’un jeu de clé publique/privé avec dépôt de la clé publique dans le homedir côté serveur ( /.ssh/authorized_keys). 149
  • 150. SSH : tunnel ssh -L 2012 :serveur.exemple.org :80 toto@serveur.exemple.org 150
  • 151. Système de fichiers réseau – afin de fournir un espace de stockage commun – pour fournir un espace de sauvegarde – pour centraliser l’information sur du matériel performant – ... 151
  • 152. NFS – Le protocole NFS (Network File System) permet de partager des fichiers dans les réseaux Unix. – Le principe de montage est le même que pour un disque local – Développé par la société SUN dabs les années 1980 – Version 2 et 3 principalement utilisé, v4 disponible depuis quelques temps – Le noyau doit être compilé avec le support NFS 152
  • 153. NFS : configuration – apt-get install nfs-kernel-server – man exports : /etc/exports $ cat /etc/exports # fichier exemple /etc/exports / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash) Prise en compte uniquement après /etc/init.d/nfs-kernel-server restart ou via exportfs -ra 153
  • 154. NFS et les RPC – De manière sous-jacente NFS utilise les RPC – RPC : Remote Procedure Call – RPC : Ensemble d’apels de procédures à distance permettant la transparence d’utilisation locale ou distante. Fonctionne au niveau de la couche session du modèle OSI. – Portmap : tableau de correspondance entre port IP et numéro de programme RPC $ rpcinfo -p localhost 100000 2 tcp 111 portmapper ... 100005 2 udp 32768 mountd 154
  • 155. NFS côté client – Les services (portmap et nfs) doivent être lancés – Puis le montage doit être réalisé mount -t nfs <nom ou adresse IP du serveur NFS>:<répertoire partagé> <point de montage $ mount -t nfs pc230:/home/partage /mnt $ cat /etc/fstab ... pc230:/home/partage /mnt nfs defaults 0 0 ... 155
  • 156. smbfs/CIFS – Samba est l’implémentation du protocole SMB (Server Message Block) sous Unix / Linux. Il sert à partager des fichiers et des imprimantes avec les réseaux Microsoft. – Samba lance deux services : smbd et nmbd. – Le protocole SMB est tout sauf performant : il pollue le reseau par l’utilisation intensive du broadcast. Ceci lui offre l’avantage de pouvoir découvrir qui l’entoure et donc de limiter sa configuration – Samba utilise les ports 137 (netbios name service, nbname, en UDP), 138 (netbios datagram service nbdatagram, en UDP), 139 (netbios session service, nbsession, en TCP), et 445 ("direct-hosted" tcp, en tcp et udp). – La méthode de connexion traditionnelle smb utilise les ports 137, 138 et 139 tandis que la nouvelle méthode (CIFS, sur windows XP) n’utilise que le port 445. 156
  • 157. smbfs/CIFS – apt-get install samba smbclient smbfs winbind – /etc/samba/smb.conf – testparm analyse le fichier smb.conf et signale les erreurs – /etc/init.d/samba restart Le fichier /etc/samba/smb.conf se divise en différentes sections : – La section global : configuration globale de samba – La section homes : cette section particulière permet de remonter une ressource qui correspond au répertoire de travail (home directory) de l’utilisateur qui s’est authentifié. 157
  • 158. smbfs/CIFS : Samba – Projet libre et gratuit : Samba – 4 modes configurations – Partage par ressource – Partage par utilisateur – Inscription dans un domaine – Controleur de domaine 158
  • 159. SAMBA # Section GLOBAL # Configuration globale de Samba [global] # Nom du groupe de travail workgroup = WORKGROUP # Nom Netbios de la machine (identification réseau) netbios name = PC230 # Chaine de commentaire associé au serveur (voisinage réseau) server string = %h Serveur (Samba %v) # Utilisateurs interdits invalid users = root # Enregistre un fichier de log par machine cliente du réseau MS log file = /var/log/samba/log.%m # Taille maximale des logs : 1 Mo max log size = 1000 ... 159
  • 160. SAMBA : partage par ressource sur un réseau Workgroup Dans le cas du mode share, pour pouvoir positionner un mot de passe sur une ressource, il faut créer un compte UNIX ’invite’ : # adduser --shell /bin/false --disabled-login invite On Crée ensuite une entrée dans le fichier /etc/samba/smbpasswd : # smbpasswd -a invite Le mot de passe saisi correspondra à celui du répertoire partagé. Il faut ensuite créer le répertoire partagé et donner l’arborescence partagée à l’utilisateur invite du groupe invite : # mkdir /home/partage # chown invite.invite /home/partage 160
  • 161. SAMBA : partage utilisateur sur un réseau Workgroup Dans le cas du mode user, pour ne partager une ressource partagée qu’a certains utilisateurs, il faut tout d’abord créer un compte UNIX pour chacun d’eux : # adduser --shell /bin/false --disabled-login paul # adduser --shell /bin/false --disabled-login pierre On crée ensuite une entrée dans le fichier /etc/samba/smbpasswd : # smbpasswd -a paul # smbpasswd -a pierre 161
  • 162. SAMBA : partage utilisateur sur un réseau Workgroup Coté Linux, les utilisateurs doivent avoir le droit d’écriture sur le répertoire partagé. La meilleure méthode consiste à créer un groupe Unix contenant les utilisateurs autorisés, et d’attribuer le repertoire partagé au groupe en question : # addgroup prive # adduser paul prive # adduser pierre prive # mkdir /home/prive # chgrp prive /home/prive # chmod 770 /home/prive 162
  • 163. SAMBA : partage sur un domaine Microsoft Remarque : Pour que le serveur Linux puisse rejoindre le domaine existant, il faut se connecter au moins une fois avec le compte Administrateur définit sur le contrôleur de domaine, afin que ce dernier crée un compte machine : # net join -U Administrateur Administrateur’s password: [2008/02/12 11:58:41, 0] utils/net_ads.c:ads_startup(289) ads_connect: Chaîne multi-octets ou étendue de caractères invalide ou incomplète ADS join did not work, falling back to RPC... Joined domain DOMAINE. 163
  • 164. SAMBA : partage sur un domaine Microsoft Dans le cas du mode server, les utilisateurs (login et mot de passe) sont définit sur un serveur existant. Coté Linux, les utilisateurs doivent avoir le droit d’écriture sur le répertoire partagé. Cependant, les utilisateurs ne sont pas définit sur le serveur Linux mais sur le contrôleur de domaine. La solution consiste à permettre à tout le monde d’écrire dans ce répertoire, Samba se chargeant de n’autoriser que les utilisateurs autorisés sur le contrôleur de domaine. # mkdir /home/prive # chmod 777 /home/prive 164
  • 165. NIS – Network Information System – Système client-serveur – Développement de SUN – Base de donnée avec des informations comparable à /etc/passwd – Historiquement : YellowPages, problème avec British-Telecom – Mais le préfixe yp est resté dans certaines commandes – Le noyau doit être compilé avec le support 165
  • 166. NIS – Serveur Maitre/Esclave afin d’augmenter la robustesse – Serveurs secondaires mis a jour régulièrement, mais pas instantanément – Client cherche son serveur par diffusion – Principe des domaines (/bin/domainname) – Premier serveur est pris – Informations sont accessibles par commande (ypcat) – Les données des bases sont transmises en clair 166
  • 167. NIS : côté serveur – apt-get install nis – /etc/defaultdomain – /etc/ypserv.securenets avec 255.255.255.0 192.168.30.0 – /etc/default/nis avec MASTER si serveur – /etc/init.d/nis restart – /usr/lib/yp/ypinit -m 167
  • 168. NIS : côté client – /etc/defaultdomain – /etc/yp.conf avec l’adresse du serveur ypserver 192.168.30.230 – /etc/init.d/nis start – /etc/nsswitch.conf avec netgroup : nis – /etc/passwd avec + : : : : : : à la fin – /etc/shadow avec + : : : : : : : : à la fin – /etc/group avec + : : : à la fin – ypcat passwd.byname – ajout d’un utilisateur sur le seveur avec adduser jack – mise à jours des bases : /usr/lib/yp/ypinit -m 168
  • 169. LDAP – Lightweight Directory Access Protocol – à l’origine une surcouche à X500 (système lourd et non adpaté à TCP/IP) – Système client-serveur – Serveur Maitre/Esclave – Standard ouvert – Mis à jour instantanément 169
  • 170. LDAP : les caractéristiques – Base de donne multi-utilisation avec un schéma standardisé et extensif – Conception optimisé pour la consultation – Indépendance des objets entre eux et ignorance des structures de stockage – Possibilité d’objets distribués sur plusieurs annuaires, mais impossibilité d’objets répartis sur plusieurs annuaires 170
  • 171. LDAP : les modèles – modèle d’information, qui donne les données de l’annuaire – modèle de désignation, qui organise l’arborescence et la nomenclature des objets – modèle fonctionnel, qui permet l’accès et la consultation, modification et destruction des données – modèle de sécurité, qui gère l’authentification et le chiffrement 171
  • 172. LDAP : LDIF – Représentation des données LDAP sous forme de texte dn: cn=host1,ou=hosts,dc=testing,dc=ldap changetype: add cn: host1 iphostnumber: 10.0.0.2 objectclass: top objectclass: device objectclass: ipHost 172
  • 173. LDAP : OpenLDAP : côté serveur server # domainname testing.ldap server # domainname > /etc/defaultdomain server # vi /etc/hosts 10.0.0.1 peter peter.testing.ldap loghost server # directoryserver setup server # /usr/lib/ldap/idsconfig 173
  • 174. LDAP : OpenLDAP : côté client server # ldapmodify -c > -D "cn=directory manager" > -w nssecret > -f /tmp/host1.ldif client # domainname testing.ldap client # domainname > /etc/defaultdomain client # ldapclient > -v init > -a proxypassword=proxy > -a proxydn=cn=proxyagent,ou=profile,dc=testing,dc=ldap > -a domainname=testing.ldap > 10.0.0.1 174
  • 175. LDAP – getent passwd – ldapadd – ldapsearch – ldapdelete – ... 175
  • 176. Kerberos – Problème du LDAP, le mot de passe en clair lors des communication – Kerberos est un protocole d’authentification réseau créé au Massachusetts Institute of Technology (MIT) – Kerberos utilise un système de tickets au lieu de mots de passe en texte clair. – L’ensemble repose sur des clés secrètes (chiffrement symétrique) – Disponible sous UNIX et à la base des Windows récents 176