Vous êtes sur la page 1sur 163

Sécurité des systèmes d’information

A. NAANAA
PLAN

Introduction à la sécurité

Sécurisation des accès physiques

Verrouillage d'accès physique aux serveurs

Protection par BIOS

Protection des chargeurs de démarrages
 Les commandes de diagnostic

Outils de collecte (nmap, tcpdump, ethereal, netcat)

Les fichiers de journalisation

Éléments de la sécurité locale

Sécurité des utilisateurs (Authentification PAM)

Sécurité des processus

Sécurité des fichiers et du système de fichiers

Éléments de la sécurité réseau

Sécurisation inetd

Les tcp-wrappers

Infrastructure à base de clés

Mise en ouevre de SSL
2

Iptables

Introduction au VPN
PLAN

Les pare-feu

Pare-feu de filtrage: iptables/netfilter

Pare-feu proxy
 L'audit de sécurité

Les r-commandes

Autorisation

/etc/hosts

/.rhosts
 L'art de cryptographie

Cryptographie

Cryptanalyse

crypto-système
 Secure SHell (SSH)

Cryptage DSA, RSA

Fichiers et clés

Configuration, transfert
 Bootp/DHCP 3
Chapitre 1
Introduction à la sécurité

4
La problématique de la sécurité


La connectivité globale ont fait accroître les besoins en
termes de sécurité

Il faut protéger les informations et données
personnelles, commerciales, industrielles ou militaires

Il faut faire faces à tous les risques d'attaque ou de
piratage

Quelques objectifs de la sécurité

Contrôle d’accès

Techniques de mot de passe /Firewalls

Authentification

Signatures numériques

Confidentialité

Cryptographie

Intégrité

Signatures numériques

Virus

Anti-virus 5
Particularité de la sécurité Linux

Même si Linux est conceptuellement bien architecturé (Modèle en
couches, notion de FileSystem, notion de Processus, Bonne gestion
mémoire, Serveur X11 pour le graphisme, ...), il ne garantit qu'un certain
degré de sécurité !

Linux est conçu pour être un système d'exploitation à usage
général. C'est un système ouvert, multi-tâches et multi-utilisateurs

Un effort complémentaire doit être apporté afin de garantir la
sécurité locale du système

Un effort complémentaire doit être apporté afin de garantir la
sécurité des communications réseau

6
Particularité de la sécurité Linux


Comment administrer la sécurité Linux

D'abord bien comprendre le modèle de fonctionnement de Linux et
le modèle de fonctionnement de la pile TCP/IP

Utilisation de commandes systèmes, de fichiers de configuration,
et de scripts

Utilisation d'utilitaires additionnels simples et souvent gratuits
dédiés à la sécurité

Utilisation de suites logicielles de sécurité plus complètes

7
Chapitre 2
Sécurité des accès physiques

8
Protection de l'accès physique

L'objectif est d'empêcher une personne mal intentionnée d'obtenir les
accès administrateur sur la machine qu'elle utilise

Il faut savoir qu'une grande partie des piratages sont lancés par
des pirates ayant un accès physique sur un réseau

Bien fermer à clé les locaux hébergeant les serveurs, les routeurs et
les machines sensibles

Instaurer un système automatisé pour le contrôle d'accès par
badges et des lecteurs de badges

Instaurer éventuellement un système de vidéo surveillance des
équipements critiques

9
Protection de l'accès physique


Verrouillez les stations sensibles avec des cadenas sur les ours des
machines

Ceci empêchera tout d'abord le vol, mais évitera aussi des disques
durs montés en secret avec des utilitaires installés dessus

10
Protection par BIOS

Placer un mot de passe pour le BIOS

Ne pas oublier le mot de passe, afin d'éviter le retrait de la pile du
BIOS

Attention : certains BIOS peuvent comporter des failles logicielles
permettent d'outrepasser ces protections. S'informer sur la version
de votre BIOS

Désactivez au niveau BIOS, le boot sur le lecteur de disquette et sur le
lecteur de (CD/DVD)ROM

11
Protection par BIOS

Certaines versions de Linux s'installent en RAM grâce un nombre
limité de disquettes, ce qui rend possible le montage de tous les
systèmes de fichiers présents sur le(s) disque(s) dur(s) et d'en
modifier le contenu

Backtrack (http://www.backtrack-linux.org/) est livré avec un
panel assez important d'utilitaires dédiés à la sécurité

Le programme NTFS2DOS, peut être lancé depuis une
disquette de démarrage DOS. Après transformation, une
partition NTFS est accédée sans restrictions

Des systèmes comme Knoppix (http://www.knoppix-fr.org/)
système Linux bootable sur CD, peuvent être utilisés pour monter
12
les différentes systèmes de fichiers du disque
Le multi-boot

Le multi-boot est utile pour les postes de travail, mais l'est-il vraiment
en cas du serveur ?

Le mutli-boot est contre indiqué en termes de sécurité : un
attaquant pouvant avoir accès à l'un des systèmes de la machine
peut soit endommager le chargeur de démarrage, soit supprimer
une partition entière avec sont système d'exploitation ou bien un
logiciel de partitionnement

Omettre, si possible, la facilité de multi-boot sur le serveur

13
Le multi-boot


Éviter l'option failsafe au démarrage proposée LILO (Linux Loader) ou
par GRUB (GRand Unified Bootloader)

Cette option peut permettre d'obtenir un accès root (sans mot de
passe) pour la maintenance du système

Éviter le système de fichiers FAT pour Windows

NTFS permet une sécurisation accrue par rapport à FAT et FAT32.
Passez vos machines en NTFS

Il est déconseillé fortement d'utiliser Windows 95,98 et Me : le
niveau de sécurité offert par ces systèmes en natif n'est pas élevé!

14
Protection du chargeur de démarrage LILO

Exemple de contenu /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message Remarque
default=linux LILO est de plus en plus délaissé par les
image=/boot/vmlinuz-2.4.0-0.43.6 récentes distributions de Linux au profit
label=linux de GRUB.
initrd=/boot/initrd-2.4.0-0.43.6.img Il est nécessaire de savoir le configurer
read-only puisque beaucoup de systèmes actuels
root=/dev/hda5 l'utilisent encore.


Protection de LILO

Éditer le fichier de configuration lilo.conf en y ajoutant une clause password avant la
définition des images :
password = mot_de_passe

Inconvénient : Ce mot de passe est écrit en clair et peut être lu par n’importe quelle
personne qui se connecte à la machine, pour remédier à ce défaut l’administrateur peut
retirer le droit de lecture à tout autre utilisateur (excepté lui bien évidemment).
15
#chown root root /etc/lilo.conf ; chmod 600 /etc/lilo.conf
Protection du chargeur de démarrage GRUB
La protection de l'accès au chargeur GRUB est fortement recommandée

car GRUB permet d’offrir un accès à une interface de type shell


permettant de modifier la configuration de celui ci, d’obtenir des
informations système(commande cat) et de booter en ‘single mode’

Notation des partitions dans GRUB

La notation des partitions sous Grub est assez particulière. Un
exemple : (fd0). Cela signifie qu'il s'agit du premier périphérique
souple (disquette...). Le nombre 0 indique qu'il s'agit du premier
périphérique.

Quelques exemples pour mieux saisir la notation Grub :

(hd0,1) : seconde partition principale du premier disque dur

(hd0,4) : première partition étendue de premier disque dur. Les
16
partitions étendues commencent par 5.
Protection du chargeur de démarrage GRUB
 Protection de GRUB avec un mot de passe crypté
$grub
grub> md5crypt
Password : *******
Encrypted : kw485/fgf$&ee
On doit copier le code encrypté et l’insérer dans le fichier de configuration
/etc/grub.conf avant la définition des images :
Timeout = 100
Password --md5 kw485/fgf$&ee
Title Linux
Remarque : est possible de protéger GRUB par un mot de passe en clair,
mais ceci est sans grande efficacité (cf. LILO) 17
Chapitre 3
Les commandes de diagnostic

18
En-tête du protocole IP

Version:
Version: 44 (Ipv4)
(Ipv4)
IHL
IHL :: IP
IP Header
Header Length
Length (en-tête)
(en-tête)
TOS
TOS :: Type
Type ofof Service
Service (priorité)
(priorité)
Total
Total Length
Length :: dudu paquet
paquet
Idnetification
Idnetification :: numéro
numéro du du fragment
fragment
Flags
Flags :: par
par ex.
ex. dernier
dernier fragment
fragment
Fragmentation
Fragmentation Offset Offset :: position
position dudu fragment
fragment
TTL
TTL :: Time
Time ToTo Live,
Live, nombre
nombre max max dede sauts
sauts (hops)
(hops)
pour
pour attendre
attendre lala destination
destination
Protocol
Protocol :: de de niveau
niveau supérieur
supérieur (TCP
(TCP ou ou UDP)
UDP)
Header
Header checksum
checksum
Source
Source address
address :: 3232 bits,
bits, par
par ex:213.178.10.1
ex:213.178.10.1
Destination
Destination Address
Address :: 32
32 bits
bits
Options
Options :: par
par ex.
ex. cryptage
cryptage
Padding
Padding :: remplissage
remplissage àà 32 32 bits
bits

19
En-tête du protocole UDP

Source
SourcePort
Port: : (Application)
(Application)
Destination
DestinationPort
Port: :(Application)
(Application)
Length :
Length :
checksum
checksum: :

20
Outils de diagnostic

Commande Description

ifconfig Affiche la configuration IP

ping Teste la connectivité d'un poste

netstat Affiche les statistiques, liste les ports ouverts

nslookup, dig Testent le service DNS

tcpdump, ethereal Analyseurs de trames

nmap Scanner de ports

ps, top Liste les processus actifs

lsof Liste les fichiers et les sockets21


ouverts
Protocole IP : ifconfig

22
Protocole IP : ping

23
Protocole IP : ping

24
Protocole IP : netstat

25
Les processus

26
Analyseurs de trames

27
En-tête TCP : tcpdump

28
En-tête TCP:tcpdump

29
Etheral

30
Etheral

31
Les scanners réseau

32
Le scanner nmap

33
Le scanner nmap

34
Déterminer le système d'exploitation avec
nmap

35
Quelques options de namp

36
Identifier les versions des logiciels en écoute

37
Identifier les versions des logiciels en écoute

d
e

38
Les failles applicatives

39
Les failles applicatives

40
Les équipements physiques de diagnostic

41
Quelques éléments de méthodologie

42
Les problèmes réseau

43
Chapitre 4
Sécurité locale : utilisateurs,
processus et fichiers

44
Sécurité des utilisateurs

45
Pratiques de la sécurité des utilisateurs

46
Sécurisation des comptes utilisateur

47
Introduction à l'authentification avec PAM

48
Fichiers de configuration PAM

49
Configuration centrale de PAM

50
Restrictions d'accès: la manière flexible

51
Restriction d'accès : tout le monde dehors

52
Restrictions de connexions en fonction de
l'heure

53
Permettre aux utilisateurs de consoles de
contrôler le système

54
Données des privilèges root avec sudo

55
Suivi du système local

56
Sécurité des processus

57
Pratiques de la sécurité des processus

58
Suivi et limitation des processus

59
Limitation des processus

60
Utilisation des journaux pour suivre des
processus

61
Sécurité des fichiers

62
Pratiques de la sécurité des fichiers et du
système de fichiers

63
Fixer les permissions par ID d'utilisateur et
du groupe

64
Autres modes de fichiers

65
Exemples typiques d'autorisations

peuvent

66
Nettoyage : fichiers et répertoires

peuvent

67
Intégrité des données avec tripwire

68
Configuration de tripwire

69
Chapitre 5
Éléments de la sécurité réseau

70
Encodages des communications

71
Pratiques de sécurité par encodage

72
Pourquoi l'encodage ?

73
Composantes de base de la cryptographie

74
Nombres aléatoires

75
Codage à sens unique

76
Encodage symétrique

77
Codage asymétrique I

78
Codage asymétrique II

79
Applications : rpm

80
Infrastructure de clés publiques

81
Certificats numériques

82
Génération de certificats numériques

83
Configuration des r-commandes et ssh
PLAN
 LES R_COMMANDES

 SECURE SHELL

 DHCP & BOOTP


Les R-commandes
• Présentation

 Les r-commandes (r comme Remote : distant)


regroupent des commandes distantes.

 Pour les utiliser, un mécanisme d’autorisation


permet de remplacer l’étape d’authentification sur
la machine cible.
Autorisation

 Le mécanisme d’autorisation se met en place grâce


aux déclarations adéquates dans le fichiers de la
machine cible (machine serveur) .

 La machine cliente doit obligatoirement être


déclarée dans le fichier /etc/hosts du serveur pour
pouvoir être référence ensuite dans les fichiers
d’autorisation créer chez le serveur le fichier
~/home/user/.rhosts .

87
/etc/hosts

 Correspondance statiques de noms de hotes:On


associe les adresses IP avec les noms des hotes,une
ligne par adresse IP.
 Pour chaque hôte, une unique ligne doit être présente,
avec les informations suivantes:

• Format:
adresse_IP Nom_officiel

88
/etc/hosts(Suite)

89
/.rhosts

 Le fichier ".rhosts" est propre à chaque utilisateur. Il


est donc placé dans le répertoire de travail de chacun
(home directory).

 Ce fichier contient la liste des utilisateurs pouvant se


connecter sous le nom de l'utilisateur courant à partir
d'une rcommande sans mot de passe.

91
rhosts(Suite)

92
93
rlogin(Remonte Login)

 rlogin démarre une session terminal sur un hôte


distant.

 Il existe 2 types de rlogin :

 sans mot de passe


 avec mot de passe
94
rlogin(Suite)
• Syntaxe:

rlogin hôte [-l nom_utilisateur]

• Option

-l : permet de se connecter sous un autre nom que le


nom de l'utilisateur courant.

95
rsh(Remote shell)

 permet de demander l'exécution d'une commande


shell sur une machine distante sans avoir besoin de
s'y connecter (par un rlogin).

 rsh se comporte comme un rlogin.

 Cette commande ne fonctionne que dans le cas où


un mécanisme d’autorisation est déclaré.

97
rsh(Suite)

 rsh est lancé par le démon rshd définit dans le


fichier /etc/services.

• Syntaxe:

rsh machine [-l utilisateur] [-n] commande

• Option
-n: Permet de dire au shell distant d'utiliser /dev/null
comme fichier standard d'entrée.

98
rcp(Remote Copy)

 Elle permet de copier un ensemble de fichiers d'une


machine à une autre.

 La copie entre deux machines peut être effectuée


depuis une machine tierce.

100
Rcp(Remote Copy)

• Syntaxe

rcp [-p] [-r] source cible

• Option
-r :Permet de copier récursivement les sous
répertoires.
-p :Demande la modification des dates des fichiers
copiés sur la machine cible.

101
$rcp -r anis@oranix:/home/anis/fichier /tmp

102
rusers (Remote USERS)

 Renvoie les utilisateurs “logués” sur les machines


locales.
• Syntaxe:
rusers [-ahu] [host]
• Options:
-a:Liste les hôtes qui n’ont pas d’utilisateurs connectés.

103
rusers(Suite)

-h: Trier la liste des hôtes par ordre alphabétique.

-u: Trier les hôtes par le nombre d’utilisateurs qui y


sont connectés.

104
Reboot

 Redémarrer une machine distante.


 Syntaxe:
reboot
NB:
 Il faut se connecter à distance avec (rlogin,ssh,rsh..).
 Il faut avoir le mot de passe root de la machine à
redémarrer.

106
Rexec(Suite)

 Exécuter une commande à distance

• Syntaxe
rexec –l login –p password host commande

108
SSH

110
Secure SHell
• SSH
 Protocole qui permet de faire des connexions
sécurisées (i.e. cryptées) entre un serveur et un
client SSH.
 Il utilise la cryptographie
 Symétrique

 Asymétrique (RSA ou DSA)

111
Le système de clés de SSH

• La cryptographie asymétrique
 chaque personne dispose d'un couple de clé :
 une clé publique

 une clé privée

 Quand A envoie un message confidentiel à B


 A le crypte avec la clé publique de B

 Seul B pourra le décrypter en utilisant sa clé


privée

112
Le système de clés de SSH(suite)

• La cryptographie symétrique

 Pour pouvoir échanger des messages, A et B


doivent posséder la même clé secrète :
 A crypte le message avec ce clé

 B le décrypter en utilisant ce même clé

Toute autre personne en possession de la clé


secrète peut décrypter le message.

113
Le système de clés de SSH(suite)

 La cryptographie symétrique est moins gourmande


en ressources processeur.
 Problème :échanger la clé secrète.

 SSH(se basant sur le protocole SSL)utilise la


cryptographie :
 asymétrique pour échanger la clé sécrète

 symétrique pour communiquer

114
Établir une connexion SSH
Envoie sa clé publique

S Envoie sa clé cryptée avec


la clé publique du serveur C
E
L
R
I
V Envoie un message crypté
avec la clé privée du client E
E
N
U Accepte ou refuse la T
R connexion

115
Établir une connexion SSH

• Échanger la clé sécrète


1. Le serveur envoie sa clé publique au client.
2. Le client génère une clé secrète, la crypte avec
celle du serveur et l'envoie.
3. Le serveur décrypte la clé secrète du client en
utilisant sa clé privée.
=>Ces étapes(1,2 et 3) résume le Cryptage
asymétrique

116
Établir une connexion SSH(suite)
• Communiquer
1. Le serveur crypte un message standard avec la
clé secrète et l'envoie au client.
2. Si le client retrouve le message standard en
utilisant la clé secrète, il envoie le login et le mot
de passe de l'utilisateur.
=> Ces étapes(4 et 5) résume le Cryptage
symétrique

 Le canal sécurisé reste en place jusqu'à ce que


l'utilisateur se déloge.

117
Fichiers & Clés

• Coté serveur

 le répertoire /etc/ssh et générées lors de


l'installation du serveur dont

 Le fichier ssh_host_rsa_key contient la clé privée


( permissions 600).

 Le fichier ssh_host_rsa_key.pub contient la clé


publique ( permissions 644 )

118
Configuration

 fichier de configuration du serveur:


/etc/ssh/sshd_config

 fichier de configuration du client SSH:


/etc/ssh/ssh_config

119
Fichiers de Configuration SSH

• /etc/ssh/sshd_config

Port 22 # le serveur écoute sur le port 22


Protocol 2 , 1 # serveur accepte les versions
n 1
et 2 du protocole
PermitRootLogin yes # ou ‘ no’
# yes : Pouvoir se loguer en root
# no : Il faut se connecter en tant que b
simple user
120
Se Logue par SSH

• Première Étape
 Il faut ajouter le nom du serveur dans le fichier
/etc/hosts.equiv (ou /etc/ssh/shosts.equiv )
ce fichier contient les équivalences entre les
machines .

 S’authentifier soit par mot de passe, soit par clé.

121
Authentification par mot de passe

• Syntaxe

Ssh [-option] login@NomServeur


-C : pour la compression des
messages.
-2 : pour la version 2 .
 ~/.ssh/known_hosts contient toutes les clés
public des serveurs ssh sur lesquels le client s’est
connecté .

122
Authentification par clé

 Les utilisateurs peuvent s'authentifier aussi par le


couple de clés privée/publique, comme le fait le
serveur SSH auprès du client SSH.
 Pour générer les clés :
• Syntaxe
ssh –keygen –t dsa/rsa

124
Authentification par clé

 Lors de la création des clés, un mot de passe est


demander pour protéger la clé privée.. La pass
phrase (mot de passe) qui sera alors demandé à
chaque utilisation de la clé privée

126
Autorisé sa Clé

 Il faut copier la clé publique du client dans le


fichier~/.ssh/authorized_keys de la machine
serveur . Crée le fichier s'il n'existe pas déjà.
 la clé publique du client est stockée dans le fichier
~/.ssh/id_dsa.pub avec permissions.
 La clé privée est stockée dans
~/.ssh/id_dsa avec permissions 600

128
Transfert de fichiers par SSH

• Syntaxe de SCP (Comme Ssh CoPy)


 du client vers serveur
scp [-r] P/fich login@NomServer:P/fich

 du serveur vers client


scp [-r] login@NomServer:P/fich P/fich

-r : pour transférer des répertoires


complets .

129
Transfert de fichiers par SSH

• Exemple1
 Pour transférer le fichier test1.txt situé
dans le répertoire courant vers le home du
compte toto de la machine pc1
sur laquelle tourne un serveur SSH :
scp test1.txt toto@pc1

130
Transfert de fichiers par SSH

• Exemple2
 Pour pour récupérer le fichier test2.txt situé
le home de l'utilisateur toto de la machine
pc2 et l'écrire dans le répertoire
courant :

scp toto@pc2:test2.txt

131
Transfert de fichiers par SSH

• SFTP (Comme Ssh FTP).


 Pour se connecter par SFTP
sftp login@NomServeur

 exp : sftp toto@pc1

 Une fois connecté, un nouveau prompt


apparaît : sftp>

133
Transfert de fichiers par SSH

• Les commandes de base de SFTP

 ls pour lister le contenu du répertoire


distant
 lls pour lister le contenu du répertoire local
 cd répertoire pour changer de répertoire
distant

134
Transfert de fichiers par SSH

• Les commandes de base de SFTP

 lcd répertoire pour changer de répertoire


local
get fichier pour télécharger un fichier,
 put fichier pour déposer un fichier
 exit pour mettre fin à la connexion. Une fois
connecté, un nouveau prompt apparaît :
sftp>
135
Sécurité d'affichage

137
Secure Socket Layer : SSL

138
SSL et HTTPS

139
Sécurité basée sur les services
réseau et les firewalls

140
Pratiques de la sécurité à base des services
et des firewalls

141
Types de firewalls

142
Le démon xinetd

143
Les tcp_wrappers

144
Syntaxe de tcp_wrappers

145
Linux en tant que routeur et maquilleur

146
Routes statiques et routes dynamiques

147
Chapitre 6
Les pare-feu

148
Qu'est-ce qu'un pare-feu (Firewall) ?

149
Tâches basiques d'un firewall

150
Vérification système avant le firewall

151
Compilation du noyau pour le filtrage de
paquets

152
Construction de firewalls

153
Exemples de commandes ipchains

154
Construire un firewall avec ipchains

155
Activation du maquillage

156
Architectures

157
DMZ (DeMilitarized Zone)

158
Routeur filtrant

159
Proxy

160
NAT : Network Address Translation

161
Les produits

162
Les firewalls matériels

163
Firewalls logiciels libres : netfilter

164
Firewall logiciel commercial : check Point

165
Firewalls personnels sous Linux et Windows

167
Limites des firewalls personnels

168
Firewall logiciels, ce qu'ils laissent passer !

169
Chapitre 7
L'audit de sécurité

170
Outils d'audit

171
Saint

172
Snort

173
Autres outils d'audit

174
Outils d'audit

175

Vous aimerez peut-être aussi