180
Administration UNIX Johan Moreau [email protected] 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

2009 2010 Fip3 A Unix

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 2009 2010 Fip3 A Unix

Administration UNIX

Johan Moreau

[email protected]

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

Page 2: 2009 2010 Fip3 A Unix

Johan Moreau

[email protected]

RSSI et Ingénieur R&D, IRCAD

Membre du bureau Clusir-Est

Enseignement en Master ULP, FIP

2

Page 3: 2009 2010 Fip3 A Unix

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

Page 4: 2009 2010 Fip3 A Unix

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

Page 5: 2009 2010 Fip3 A Unix

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

Page 6: 2009 2010 Fip3 A Unix

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

Page 7: 2009 2010 Fip3 A Unix

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

Page 8: 2009 2010 Fip3 A Unix

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

Page 9: 2009 2010 Fip3 A Unix

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

Page 10: 2009 2010 Fip3 A Unix

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

Page 11: 2009 2010 Fip3 A Unix

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

Page 12: 2009 2010 Fip3 A Unix

Introduction à la sécurité

Objectifs de la sécurité :

– Confidentialité : les données ne doivent pas

ê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

rester opérationnel

Intégrité

Dispon

ibilité

Confidentialité

Confidentiality + Integrity + Availability = CIA

12

Page 13: 2009 2010 Fip3 A Unix

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

Page 14: 2009 2010 Fip3 A Unix

2. Les bases

1. Démarrage du système

2. Structure de fichiers

3. Processus

4. Noyau

14

Page 15: 2009 2010 Fip3 A Unix

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

Page 16: 2009 2010 Fip3 A Unix

/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

Page 17: 2009 2010 Fip3 A Unix

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

Page 18: 2009 2010 Fip3 A Unix

inittab

– id :runlevel :action :process

– action possible

– sysinit

– once

– wait

– respawn

– ctrlaltdel

– initdefault

18

Page 19: 2009 2010 Fip3 A Unix

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

Page 20: 2009 2010 Fip3 A Unix

Système de fichiers UNIX

– ext2, ext3, ext4, reiserfs4, zfs, ...

– NTFS, FAT, vfat

– iso9660

– nfs, smbfs

– ...

20

Page 21: 2009 2010 Fip3 A Unix

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

Page 22: 2009 2010 Fip3 A Unix

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

Page 23: 2009 2010 Fip3 A Unix

Structure de fichiers

Représentation graphique

23

Page 24: 2009 2010 Fip3 A Unix

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

Page 25: 2009 2010 Fip3 A Unix

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

Page 26: 2009 2010 Fip3 A Unix

– /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

Page 27: 2009 2010 Fip3 A Unix

– /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

Page 28: 2009 2010 Fip3 A Unix

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

Page 29: 2009 2010 Fip3 A Unix

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

Page 30: 2009 2010 Fip3 A Unix

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

Page 31: 2009 2010 Fip3 A Unix

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

Page 32: 2009 2010 Fip3 A Unix

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

Page 33: 2009 2010 Fip3 A Unix

3. Nos amis

1. Compte Unix

2. Commande passwd

3. Droits sur les fichiers

4. Commande chown, chmod

5. Environnement d’éxecution

33

Page 34: 2009 2010 Fip3 A Unix

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

Page 35: 2009 2010 Fip3 A Unix

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

Page 36: 2009 2010 Fip3 A Unix

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

Page 37: 2009 2010 Fip3 A Unix

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

Page 38: 2009 2010 Fip3 A Unix

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

Page 39: 2009 2010 Fip3 A Unix

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

Page 40: 2009 2010 Fip3 A Unix

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

Page 41: 2009 2010 Fip3 A Unix

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

Page 42: 2009 2010 Fip3 A Unix

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

Page 43: 2009 2010 Fip3 A Unix

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

Page 44: 2009 2010 Fip3 A Unix

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

Page 45: 2009 2010 Fip3 A Unix

Environnement

– Trouver une commande : which commande

– Cherche dans la variable PATH

– Pour connaitre les chemins : echo $PATH

45

Page 46: 2009 2010 Fip3 A Unix

4. Les commandes

1. La documentation sous Unix

2. Les variables shell

3. Les commandes de base

4. Les commandes "avancées"

46

Page 47: 2009 2010 Fip3 A Unix

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

Page 48: 2009 2010 Fip3 A Unix

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

Page 49: 2009 2010 Fip3 A Unix

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

Page 50: 2009 2010 Fip3 A Unix

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

Page 51: 2009 2010 Fip3 A Unix

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

Page 52: 2009 2010 Fip3 A Unix

Variable

Variable tradionnellement définie :

– HOME

– LOGIN

– PATH

– PWD

– USER

– ...

On peut obtenir l’ensemble des variables via la commande : env

52

Page 53: 2009 2010 Fip3 A Unix

Commande de base

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

– ls

– ls rep

– ls -l /tmp

– ls ../etc

– ls -altr

53

Page 54: 2009 2010 Fip3 A Unix

Commande de base

cd - Change Dir - modifie le répertoire courant

– cd

– cd /tmp

– cd ..

– cd /usr/local

– cd -

54

Page 55: 2009 2010 Fip3 A Unix

Commande de base

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

– cp file1 file2

– cp -r dir1 /tmp

– cp * /tmp

55

Page 56: 2009 2010 Fip3 A Unix

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

Page 57: 2009 2010 Fip3 A Unix

Commande de base

ln - LiNk - crée un lien

– ln -s file1 file2

– ln file1 file2

57

Page 58: 2009 2010 Fip3 A Unix

Commande de base

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

– mkdir /home/user/jmoreau

– mkdir -p /tmp/titi/toto

58

Page 59: 2009 2010 Fip3 A Unix

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

Page 60: 2009 2010 Fip3 A Unix

Commande de base

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

– pwd

60

Page 61: 2009 2010 Fip3 A Unix

Commande de base

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

– id

– whoami

61

Page 62: 2009 2010 Fip3 A Unix

Commande de base

cat - conCATenate - affiche des fichiers

– cat file1

– cat file1 file2

– cat -n file1

62

Page 63: 2009 2010 Fip3 A Unix

Commande de base

more/less - affiche des fichiers page par page

– more file1

– less file1

63

Page 64: 2009 2010 Fip3 A Unix

Commande avancée

find - Recherche un fichier (au sens large)

– find .

– find . -name "file1"

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

64

Page 65: 2009 2010 Fip3 A Unix

Commande avancée

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

– gzip file

– gunzip file.gz

65

Page 66: 2009 2010 Fip3 A Unix

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

Page 67: 2009 2010 Fip3 A Unix

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

Page 68: 2009 2010 Fip3 A Unix

Commande avancée

df - Display Free - Affiche l’espace disponible

– df

68

Page 69: 2009 2010 Fip3 A Unix

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

Page 70: 2009 2010 Fip3 A Unix

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

Page 71: 2009 2010 Fip3 A Unix

Commande avancée

sort - Tri les données

– sort

– sort -n

– sort -r

71

Page 72: 2009 2010 Fip3 A Unix

Commande avancée

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

– uniq

– uniq -c

72

Page 73: 2009 2010 Fip3 A Unix

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

Page 74: 2009 2010 Fip3 A Unix

Commande avancée

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

– bg monDemon

– fg

74

Page 75: 2009 2010 Fip3 A Unix

Commande avancée

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

– ps -e

– ps -a

– ps -ea

75

Page 76: 2009 2010 Fip3 A Unix

5. Les services

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

2. Les exemples de base

3. Les exemples "avancées"

76

Page 77: 2009 2010 Fip3 A Unix

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

Page 78: 2009 2010 Fip3 A Unix

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

Page 79: 2009 2010 Fip3 A Unix

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

Page 80: 2009 2010 Fip3 A Unix

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

Page 81: 2009 2010 Fip3 A Unix

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-serve r

/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

Page 82: 2009 2010 Fip3 A Unix

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

Page 83: 2009 2010 Fip3 A Unix

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

Page 84: 2009 2010 Fip3 A Unix

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

Page 85: 2009 2010 Fip3 A Unix

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

Page 86: 2009 2010 Fip3 A Unix

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

Page 87: 2009 2010 Fip3 A Unix

Arrêt du système

Arrêt :

– shutdown -h now

– halt

Redémarrage :

– shutdown -r now

– reboot

87

Page 88: 2009 2010 Fip3 A Unix

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

Page 89: 2009 2010 Fip3 A Unix

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

Page 90: 2009 2010 Fip3 A Unix

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

Page 91: 2009 2010 Fip3 A Unix

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

Page 92: 2009 2010 Fip3 A Unix

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

Page 93: 2009 2010 Fip3 A Unix

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

Page 94: 2009 2010 Fip3 A Unix

6. Matériels et logiciels

1. RAID

2. Partionnement

3. Logiciels

4. Planification de tâches

94

Page 95: 2009 2010 Fip3 A Unix

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

Page 96: 2009 2010 Fip3 A Unix

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

Page 97: 2009 2010 Fip3 A Unix

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

Page 98: 2009 2010 Fip3 A Unix

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

Page 99: 2009 2010 Fip3 A Unix

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

Page 100: 2009 2010 Fip3 A Unix

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

Page 101: 2009 2010 Fip3 A Unix

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

Page 102: 2009 2010 Fip3 A Unix

Partionnement

Exemple de partionnement pour un serveur de développement :

102

Page 103: 2009 2010 Fip3 A Unix

Partionnement

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

103

Page 104: 2009 2010 Fip3 A Unix

Partionnement

Exemple de partionnement pour un serveur web :

104

Page 105: 2009 2010 Fip3 A Unix

Les logiciels sous UNIX

– à partir des sources

– sous Debian

– sous RedHat

105

Page 106: 2009 2010 Fip3 A Unix

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

Page 107: 2009 2010 Fip3 A Unix

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

Page 108: 2009 2010 Fip3 A Unix

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

Page 109: 2009 2010 Fip3 A Unix

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

Page 110: 2009 2010 Fip3 A Unix

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

Page 111: 2009 2010 Fip3 A Unix

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

Page 112: 2009 2010 Fip3 A Unix

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

Page 113: 2009 2010 Fip3 A Unix

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

Page 114: 2009 2010 Fip3 A Unix

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

Page 115: 2009 2010 Fip3 A Unix

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

Page 116: 2009 2010 Fip3 A Unix

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

Page 117: 2009 2010 Fip3 A Unix

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

Page 118: 2009 2010 Fip3 A Unix

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

Page 119: 2009 2010 Fip3 A Unix

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 broadca st 192.168.0.255 ip

119

Page 120: 2009 2010 Fip3 A Unix

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

Page 121: 2009 2010 Fip3 A Unix

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

Page 122: 2009 2010 Fip3 A Unix

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

Page 123: 2009 2010 Fip3 A Unix

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

Page 124: 2009 2010 Fip3 A Unix

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

Page 125: 2009 2010 Fip3 A Unix

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

Page 126: 2009 2010 Fip3 A Unix

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 De bian 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

Page 127: 2009 2010 Fip3 A Unix

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

Page 128: 2009 2010 Fip3 A Unix

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

Page 129: 2009 2010 Fip3 A Unix

Le filtrage IP

Applications

..............

.^. |

_ | | _ OUTPUT

INPUT |_|----+ +--->|_|

.^. \

| \

| \

décision de _ \

routage -------->|_|FORWARD--+

.^. |

_ | V

PREROUTING |_|-+ _

.^. |_|POSTROUTING

| |

| V

Interface d’entrée Interface de sortie

129

Page 130: 2009 2010 Fip3 A Unix

Le filtrage IP

La commande iptables sert à administrer ces fonctionnalités de filtrage. Cettecommande accepte de nombreuses options. Pour ajouter des règles de filtrage quis’applique aux paquets routés, la première forme de la commande utilisée est :

iptables -A FORWARD règle

130

Page 131: 2009 2010 Fip3 A Unix

Le filtrage IP

La règle suivante autorise les paquets en provenance de l’adresse ip IpSrc, portPortSrc et à destination de l’adresse IP IpDst, port PortDst, de protocole Proto (quipeut être tcp ou udp).

iptables -A FORWARD -p Proto -s IpSrc/Nbm --sport PortSrc \

-d IpDst/Nbm --dport PortDst -j ACCEPT

131

Page 132: 2009 2010 Fip3 A Unix

Le filtrage IP

La règle suivante bloque les paquets en provenance de IpSrc et à destination deIpDst, de protocole Proto (qui peut être tcp, udp ou icmp ; en l’absence de protocolela règle bloquera tous les paquets IP correspondants).

iptables -A FORWARD -p Proto -s IpSrc/Nbm -d IpDst/Nbm -j DRO P

On utilisera également les commandes suivantes :

iptables -L FORWARD -n

iptables -F FORWARD

iptables -P FORWARD ACCEPT

iptables -P FORWARD DROP

132

Page 133: 2009 2010 Fip3 A Unix

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 = ma sque de classe C)

10.1.1.3/32 : 10.1.1.3 255.255.255.255 (tous les bits à 1 = m asque "host")

– Il existe une option très utile pour orienter le filtrage. Il s’agit de l’option -ipermettant 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

Page 134: 2009 2010 Fip3 A Unix

Le filtrage IP

# Insérer les modules de suivi de connexion (non nécessaire s i

# 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 A CCEPT

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 FORWAR D.

iptables -A INPUT -j block

iptables -A FORWARD -j block

134

Page 135: 2009 2010 Fip3 A Unix

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

Page 136: 2009 2010 Fip3 A Unix

8. Le monde des serveurs

1. HTTP

2. SSH

3. NFS/SMBFS

4. NIS/LDAP/Kerberos

136

Page 137: 2009 2010 Fip3 A Unix

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

Page 138: 2009 2010 Fip3 A Unix

Principe d’un serveur Web

138

Page 139: 2009 2010 Fip3 A Unix

Principe d’un serveur Web

139

Page 140: 2009 2010 Fip3 A Unix

Principe d’un serveur Web

140

Page 141: 2009 2010 Fip3 A Unix

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; ch arset=ISO-8859-1">

<title>Google</title>

....

</center>

</body>

</html>

Connection closed by foreign host.

141

Page 142: 2009 2010 Fip3 A Unix

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

Page 143: 2009 2010 Fip3 A Unix

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

Page 144: 2009 2010 Fip3 A Unix

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

Page 145: 2009 2010 Fip3 A Unix

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 [email protected]

DocumentRoot /var/www/www.mondomaine.fr

CustomLog /var/log/apache2/www.mondomaine.fr_access. log combined

ErrorLog /var/log/apache2/www.mondomaine.fr_error.lo g

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

Page 146: 2009 2010 Fip3 A Unix

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

Page 147: 2009 2010 Fip3 A Unix

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

Page 148: 2009 2010 Fip3 A Unix

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

Page 149: 2009 2010 Fip3 A Unix

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

Page 150: 2009 2010 Fip3 A Unix

SSH : tunnel

ssh -L 2012 :serveur.exemple.org :80 [email protected]

150

Page 151: 2009 2010 Fip3 A Unix

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

Page 152: 2009 2010 Fip3 A Unix

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

Page 153: 2009 2010 Fip3 A Unix

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=10 0)

/pub (ro,insecure,all_squash)

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

153

Page 154: 2009 2010 Fip3 A Unix

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

Page 155: 2009 2010 Fip3 A Unix

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 p artagé> <point de montage>

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

$ cat /etc/fstab

...

pc230:/home/partage /mnt nfs defaults 0 0

...

155

Page 156: 2009 2010 Fip3 A Unix

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

Page 157: 2009 2010 Fip3 A Unix

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

Page 158: 2009 2010 Fip3 A Unix

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

Page 159: 2009 2010 Fip3 A Unix

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ésea u)

server string = %h Serveur (Samba %v)

# Utilisateurs interdits

invalid users = root

# Enregistre un fichier de log par machine cliente du réseau M S

log file = /var/log/samba/log.%m

# Taille maximale des logs : 1 Mo

max log size = 1000

...

159

Page 160: 2009 2010 Fip3 A Unix

SAMBA : partage par ressource sur un réseau Workgroup

Dans le cas du mode share, pour pouvoir positionner un mot de p asse

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/smbpa sswd :

# smbpasswd -a invite

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

Il faut ensuite créer le répertoire partagé et donner l’arbo rescence

partagée à l’utilisateur invite du groupe invite :

# mkdir /home/partage

# chown invite.invite /home/partage

160

Page 161: 2009 2010 Fip3 A Unix

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

Page 162: 2009 2010 Fip3 A Unix

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

Page 163: 2009 2010 Fip3 A Unix

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(2 89)

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

Page 164: 2009 2010 Fip3 A Unix

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

Page 165: 2009 2010 Fip3 A Unix

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

Page 166: 2009 2010 Fip3 A Unix

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

Page 167: 2009 2010 Fip3 A Unix

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

Page 168: 2009 2010 Fip3 A Unix

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

Page 169: 2009 2010 Fip3 A Unix

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

Page 170: 2009 2010 Fip3 A Unix

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

Page 171: 2009 2010 Fip3 A Unix

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

Page 172: 2009 2010 Fip3 A Unix

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

Page 173: 2009 2010 Fip3 A Unix

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

Page 174: 2009 2010 Fip3 A Unix

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=l dap \

> -a domainname=testing.ldap \

> 10.0.0.1

174

Page 175: 2009 2010 Fip3 A Unix

LDAP

– getent passwd

– ldapadd

– ldapsearch

– ldapdelete

– ...

175

Page 176: 2009 2010 Fip3 A Unix

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

Page 177: 2009 2010 Fip3 A Unix

Kerberos

177

Page 178: 2009 2010 Fip3 A Unix

Kerberos

178

Page 179: 2009 2010 Fip3 A Unix

Kerberos

179

Page 180: 2009 2010 Fip3 A Unix

Kerberos

180