doc/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml

2278 lines
90 KiB
Text
Raw Normal View History

<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
Original revision: 1.151
-->
2002-07-29 19:53:40 +02:00
<chapter id="security">
<chapterinfo>
<authorgroup>
<author>
<firstname>Matthew</firstname>
<surname>Dillon</surname>
<contrib>Une grande partie de ce chapitre provient de la page
de manuel security(7) &eacute;crite par </contrib>
</author>
</authorgroup>
</chapterinfo>
2002-07-29 19:53:40 +02:00
<title>S&eacute;curit&eacute; ** Traduction en Cours **</title>
<indexterm><primary>s&eacute;curit&eacute;</primary></indexterm>
&trans.a.fonvieille;
<sect1 id="security-synopsis">
2002-07-29 19:53:40 +02:00
<title>Synopsis</title>
<para>Ce chapitre sera une introduction aux concepts de base de la
s&eacute;curit&eacute; syst&egrave;me, &agrave; certaines
r&egrave;gles empiriques, et &agrave;
des sujets avanc&eacute;s sous &os;. De nombreux sujets
abord&eacute;s ici peuvent &ecirc;tre appliqu&eacute;s &agrave;
la s&eacute;curit&eacute; syst&egrave;me et Internet en
g&eacute;n&eacute;ral.
L'Internet n'est plus un endroit &ldquo;amical&rdquo;
dans lequel chacun d&eacute;sire &ecirc;tre votre gentil voisin.
S&eacute;curiser votre syst&egrave;me est imp&eacute;ratif pour
prot&eacute;ger vos donn&eacute;es, la propri&eacute;t&eacute;
intellectuelle,
votre temps, et bien plus des mains des &ldquo;hackers&rdquo; et
&eacute;quivalents.</para>
<para>&os; fournit un ensemble d'utilitaires et de m&eacute;canismes
pour assurer l'int&eacute;grit&eacute; et la s&eacute;curit&eacute;
de votre syst&egrave;me et votre r&eacute;seau.</para>
<para>Apr&egrave;s la lecture de ce chapitre, vous
conna&icirc;trez:</para>
<itemizedlist>
<listitem>
<para>Les concepts de base de la s&eacute;curit&eacute;
syst&egrave;me en ce qui concerne &os;.</para>
</listitem>
<listitem>
<para>Les diff&eacute;rents m&eacute;canismes de chiffrement
disponibles sous &os;, comme DES et MD5.</para>
</listitem>
<listitem>
<para>Comment mettre en place une authentification
par mot de passe non r&eacute;utilisable.</para>
</listitem>
<listitem>
<para>Comment configurer Kerberos, un autre syst&egrave;me
d'authentification.</para>
</listitem>
<listitem>
<para>Comment cr&eacute;er des coupe-feux en utilisant IPFW.</para>
</listitem>
<listitem>
<para>Comment configurer IPsec.</para>
</listitem>
<listitem>
<para>Comment configurer et utiliser
<application>OpenSSH</application>, la version
de SSH impl&eacute;ment&eacute;e sous &os;.</para>
</listitem>
<listitem>
<para>Comment configurer et charger les modules d'extension
de contr&ocirc;le d'acc&egrave;s en utilisant l'ensemble
TrustedBSD MAC.</para>
</listitem>
<listitem>
<para>Ce que sont les <acronym>ACL</acronym>s et comment les
utiliser.</para>
</listitem>
</itemizedlist>
<para>Avant de lire ce chapitre, vous devrez:</para>
<itemizedlist>
<listitem>
<para>Comprendre les concepts de base de &os; et
d'Internet.</para>
</listitem>
</itemizedlist>
2002-07-29 19:53:40 +02:00
</sect1>
<sect1 id="security-intro">
<title>Introduction ** Traduction en Cours **</title>
2002-07-29 19:53:40 +02:00
<para></para>
</sect1>
<sect1 id="securing-freebsd">
<title>Securing FreeBSD ** Traduction en Cours **</title>
2002-07-29 19:53:40 +02:00
<para></para>
</sect1>
<sect1 id="crypt">
<sect1info>
<authorgroup>
<author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>En partie r&eacute;&eacute;crit et mis &agrave; jour
par </contrib>
</author>
</authorgroup>
<!-- 21 Mar 2000 -->
</sect1info>
<title>DES, MD5, et chiffrement</title>
<indexterm>
<primary>s&eacute;curit&eacute;</primary>
<secondary>chiffrement</secondary>
</indexterm>
<indexterm><primary>chiffrement</primary></indexterm>
<indexterm><primary>DES</primary></indexterm>
<indexterm><primary>MD5</primary></indexterm>
<para>Chaque utilisateur d'un syst&egrave;me &unix; poss&egrave;de un
mot de passe associ&eacute; &agrave; son compte.
Il semble &eacute;vident
que ces mots de passe ne doivent &ecirc;tre connus que de
l'utilisateur et du syst&egrave;me d'exploitation. Afin de
conserver ces mots de passe secrets, ils sont chiffr&eacute;s
avec ce que l'on appelle un &ldquo;hachage
irr&eacute;versible&rdquo;, ce qui signifie que le mot de passe
peut &ecirc;tre ais&eacute;ment chiffr&eacute; mais pas
d&eacute;chiffr&eacute;.
En d'autres mots, ce que nous vous disions pr&eacute;c&eacute;demment
n'est m&ecirc;me pas vrai: le syst&egrave;me d'exploitation
lui-m&ecirc;me ne conna&icirc;t pas <emphasis>vraiment</emphasis>
le mot de passe. Il ne conna&icirc;t que la forme
<emphasis>chiffr&eacute;e</emphasis> du mot de passe. La
seule mani&egrave;re d'obtenir le mot de passe en
<emphasis>clair</emphasis> est d'effectuer une recherche par
force brute de tous les mots de passe possibles.</para>
<para>Malheureusement, la seule m&eacute;thode s&eacute;curis&eacute;e
pour chiffrer les mots de passe quand &unix; a vu le jour
&eacute;tait bas&eacute;e sur DES, le &ldquo;Data Encryption
Standard&rdquo; (standard de chiffrement des donn&eacute;es).
C'&eacute;tait un probl&egrave;me mineur pour les utilisateurs
r&eacute;sidants aux Etats-Unis, mais puisque le code source
de DES ne pouvait &ecirc;tre export&eacute; en dehors des Etats-Unis,
&os; d&ucirc; trouver un moyen de respecter la l&eacute;gislation
am&eacute;ricaine et de rester compatible avec les autres
syst&egrave;mes &unix; qui utilisaient encore DES.</para>
<para>La solution fut de s&eacute;parer les biblioth&egrave;ques
de chiffrement de fa&ccedil;on &agrave; ce que les utilisateurs
am&eacute;ricains puissent installer les biblioth&egrave;ques DES
et utiliser DES, mais que les utilisateurs internationaux
disposent d'une m&eacute;thode de chiffrement non restreinte
&agrave; l'exportation. C'est comment &os; est venu &agrave;
utiliser MD5 comme m&eacute;thode de chiffrement par d&eacute;faut.
MD5 est reconnu comme &eacute;tant plus sure que DES,
l'installation de DES est propos&eacute;e principalement
pour des raisons de compatibilit&eacute;.</para>
<sect2>
<title>Identifier votre m&eacute;canisme de chiffrement</title>
<para>Avant FreeBSD&nbsp;4.4 <filename>libcrypt.a</filename>
&eacute;tait un lien symbolique pointant sur la biblioth&egrave;que
utilis&eacute;e pour le chiffrement. FreeBSD&nbsp;4.4 modifia
<filename>libcrypt.a</filename> pour fournir une biblioth&egrave;que
de hachage pour l'authentification des mots de passe
configurable. Actuellement la biblioth&egrave;que supporte les
fonctions de hachage DES, MD5 et Blowfish. Par d&eacute;faut
&os; utilise MD5 pour chiffrer les mots de passe.</para>
<para>Il est relativement facile d'identifier quelle
m&eacute;thode de chiffrement &os; utilise. Examiner les
mots de passe chiffr&eacute;s dans le fichier
<filename>/etc/master.passwd</filename> est une m&eacute;thode.
Les mots de passe MD5 sont plus longs que les mots de passe
DES, et commencent par les caract&egrave;res
<literal>&dollar;1&dollar;</literal>. Les mots de passe
d&eacute;butant par <literal>&dollar;2&dollar;</literal> sont
chiffr&eacute;s suivant la m&eacute;thode Blowfish. Les mots de
passe DES n'ont pas de caract&eacute;ristique particuli&egrave;re,
mais sont plus courts que les mots de passe MD5 et utilisent
un alphabet de 64 caract&egrave;res qui ne contient pas le
caract&egrave;re <literal>&dollar;</literal>, aussi une
cha&icirc;ne relativement courte qui ne commence pas par un dollar
a donc de tr&egrave;s fortes chances d'&ecirc;tre un mot de passe
DES.</para>
<para>Le format utilis&eacute; par les nouveaux mots de passe est
contr&ocirc;l&eacute; par la capacit&eacute; de classe de session
<literal>passwd_format</literal> dans
<filename>/etc/login.conf</filename>, qui prend comme
valeur <literal>des</literal>, <literal>md5</literal> ou
<literal>blf</literal>. Voir la page de manuel
&man.login.conf.5; pour plus d'information sur les
capacit&eacute;s de classe de session.</para>
</sect2>
</sect1>
<sect1 id="one-time-passwords">
<title>Mots de passe non r&eacute;utilisables</title>
<indexterm><primary>mots de passe non r&eacute;utilisables</primary></indexterm>
<indexterm>
<primary>s&eacute;curit&eacute;</primary>
<secondary>mots de passe non r&eacute;utilisables</secondary>
</indexterm>
<para>S/Key est un syst&egrave;me de mots de passe non
r&eacute;utilisables bas&eacute; sur une fonction de hachage
irr&eacute;versible. &os; utilise le hachage MD4 pour des
raisons de compatibilit&eacute; mais d'autres syst&egrave;me
utilisent MD5 et DES-MAC. S/Key fait partie du syst&egrave;me
de base de &os; depuis la version 1.1.5 et est aussi
utilis&eacute; sur un nombre toujours plus important d'autres
syst&egrave;mes d'exploitation. S/Key est une marque
d&eacute;pos&eacute;e de Bell
Communications Research, Inc.</para>
<para>Depuis la version 5.0 de &os;, S/Key a &eacute;t&eacute;
remplac&eacute; par la fonction &eacute;quivalente OPIE
(&ldquo;One-time Passwords In Everything&rdquo; &mdash; Mots de
passe non r&eacute;utilisables dans toutes les applications).
OPIE utilise le hachage MD5 par d&eacute;faut.</para>
<para>Il existe trois types de mots de passe dont nous parlerons
dans ce qui suit. Le premier est votre mot de passe &unix;
habituel ou mot de passe Kerberos; nous appellerons &ldquo;mot
de passe &unix;&ldquo;. Le deuxi&egrave;me type est le mot de passe
g&eacute;n&eacute;r&eacute; par les programmes
S/Key <command>key</command> ou
OPIE &man.opiekey.1; et reconnu par les programmes
<command>keyinit</command> ou &man.opiepasswd.1; et l'invite
de session; nous appellerons ceci un &ldquo;mot de passe non
r&eacute;utilisable&rdquo;. Le dernier type de mot de passe
est le mot de passe secret que vous donnez aux programmes
<command>key</command>/<command>opiekey</command> (et parfois
aux programmes
<command>keyinit</command>/<command>opiepasswd</command>) qui
l'utilisent pour g&eacute;n&eacute;rer des mots de passe non
r&eacute;utilisable; nous l'appellerons &ldquo;mot de passe
secret&rdquo; ou tout simplement &ldquo;mot de
passe&rdquo;.</para>
<para>Le mot de passe secret n'a rien &agrave; voir avec
votre mot de passe &unix;; ils peuvent &ecirc;tre identique,
mais c'est d&eacute;conseill&eacute;. Les mots de passe secret
S/Key et OPIE ne sont pas limit&eacute;s &agrave; 8
caract&egrave;res comme les
anciens mots de passe &unix;<footnote><para>Sous &os; le mot de
passe standard peut avoir une longueur de 128 caract&egrave;res
maximum.</para></footnote>, ils peuvent avoir la longueur que
vous d&eacute;sirez. Des mots de passe de six ou sept mots de long
sont relativement communs. La plupart du temps, le syst&egrave;me
S/Key ou OPIE fonctionne de fa&ccedil;on compl&egrave;tement
ind&eacute;pendante du syst&egrave;me de mot de passe &unix;.</para>
<para>En plus du mot de passe, deux autres types de donn&eacute;es
sont importantes pour S/Key et OPIE. L'une d'elles est
connue sous le nom de &ldquo;germe&rdquo; (&ldquo;seed&rdquo;)
ou &ldquo;cl&eacute;&rdquo;, form&eacute; de deux lettres et
cinq chiffres. L'autre est ce que l'on appelle le
&ldquo;compteur d'it&eacute;rations&rdquo;, un nombre compris
entre 1 et 100. S/Key g&eacute;n&egrave;re un mot de passe non
r&eacute;utilisable en concat&eacute;nant le germe et le mot de
passe secret, puis en appliquant la fonction de hachage MD4/MD5
autant de fois qu'indiqu&eacute; par le compteur
d'it&eacute;rations, et en convertissant le r&eacute;sultat en
six courts mots anglais.
Ces six mots anglais constituent votre mot de
passe non r&eacute;utilisable. Le syst&egrave;me d'authentification
(principalement PAM) conserve une trace du dernier mot de passe
non r&eacute;utilisable utilis&eacute;, et l'utilisateur est
authentifi&eacute; si la valeur de hachage du mot de passe fourni par
l'utilisateur est la m&ecirc;me que celle du mot de passe
pr&eacute;c&eacute;dent. Comme le hachage utilis&eacute; est
irr&eacute;versible, il est impossible de g&eacute;n&eacute;rer
de mot de passe non r&eacute;utilisable si on a surpris un de
ceux qui a &eacute;t&eacute; utilis&eacute; avec succ&egrave;s; le
compteur d'it&eacute;rations est d&eacute;cr&eacute;ment&eacute;
apr&egrave;s chaque ouverture de session r&eacute;ussie, de sorte que
l'utilisateur et le programme d'ouverture de session restent en
phase. Quand le compteur d'it&eacute;ration passe &agrave; 1,
S/Key et OPIE doivent &ecirc;tre
r&eacute;initialis&eacute;s.</para>
<para>Il y a trois programmes impliqu&eacute;s dans chacun des
syst&egrave;mes que nous aborderons plus bas. Les programmes
<command>key</command> et <command>opiekey</command> ont pour
param&egrave;tres un compteur d'it&eacute;rations, un germe, et un
mot de passe secret, et g&eacute;n&egrave;re un mot
de passe non r&eacute;utilisable ou une liste de mots
de passe non r&eacute;utilisable. Les programmes
<command>keyinit</command> et <command>opiepasswd</command>
sont utilis&eacute;s pour initialiser respectivement
S/Key et OPIE, et pour modifier les mots de passe, les compteurs
d'it&eacute;rations, ou les germes; ils prennent pour
param&egrave;tres soit un mot de passe secret, soit un compteur
d'it&eacute;rations, soit un germe, et un mot de passe non
r&eacute;utilisable. Le programme <command>keyinfo</command> ou
<command>opieinfo</command> consulte le fichier d'identification
correspondant (<filename>/etc/skeykeys</filename> ou
<filename>/etc/opiekeys</filename>) et imprime la valeur du
compteur d'it&eacute;rations et le germe de l'utilisateur qui l'a
invoqu&eacute;.</para>
<para>Nous d&eacute;crirons quatre sortes d'op&eacute;rations. La
premi&egrave;re est l'utilisation du programme
<command>keyinit</command> ou <command>opiepasswd</command> sur
une connexion s&eacute;curis&eacute;e pour initialiser les mots
de passe non r&eacute;utilisables pour la premi&egrave;re
fois, ou pour modifier votre mot de passe ou votre germe.
La seconde op&eacute;ration est l'emploi des programmes
<command>keyinit</command> ou <command>opiepasswd</command>
sur une connexion non s&eacute;curis&eacute;e, en conjonction
avec <command>key</command> ou <command>opiekey</command> sur
une connexion s&eacute;curis&eacute;e, pour faire la m&ecirc;me
chose. La troisi&egrave;me est l'utilisation de
<command>key</command>/<command>opiekey</command> pour ouvrir
une session sur une connexion non s&eacute;curis&eacute;e.
La quatri&egrave;me est l'emploi de <command>key</command>
ou <command>opiekey</command> pour g&eacute;n&eacute;rer
un certain nombre de cl&eacute;s qui peuvent &ecirc;tre
not&eacute;es ou imprim&eacute;es et emport&eacute;es avec vous
quand vous allez quelque part ou il n'y a aucune connexion
s&eacute;curis&eacute;e.</para>
<sect2>
<title>Initialisation depuis une connexion
s&eacute;curis&eacute;e</title>
<para>Pour initialiser S/Key pour la premi&egrave;re fois,
changer votre mot de passe, ou changer votre germe quand
vous &ecirc;tes attach&eacute; sous votre compte par
l'interm&eacute;diaire d'une connexion s&eacute;curis&eacute;e
(e.g., sur la console d'une machine ou via
<application>ssh</application>), utilisez la commande
<command>keyinit</command> sans param&egrave;tres:</para>
<screen>&prompt.user; <userinput>keyinit</userinput>
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFT</screen>
<para>Pour OPIE, <command>opiepasswd</command> est
utilis&eacute; &agrave; la place:</para>
<screen>&prompt.user; <userinput>opiepasswd -c</userinput>
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
</screen>
<para>A l'invite <prompt>Enter new secret pass phrase:</prompt>
ou <prompt>Enter secret password:</prompt>, vous devez entrer
un mot de passe ou une phrase. Rappelez-vous que ce n'est pas
le mot de passe que vous utiliserez pour ouvrir une session,
mais celui utilis&eacute; pour g&eacute;n&eacute;rer vos cl&eacute;s
non r&eacute;utilisables. La ligne commen&ccedil;ant par
&ldquo;ID&rdquo; liste les param&egrave;tres de votre instance:
votre nom d'utilisateur, la valeur de votre compteur
d'it&eacute;rations et votre germe. Quand vous ouvrirez une
session, le syst&egrave;me aura m&eacute;moris&eacute; ces
param&egrave;tres et vous les redonnera, vous n'avez donc
pas besoin de les retenir. La derni&egrave;re ligne
donne le mot de passe non r&eacute;utilisable correspondant
&agrave; ces param&egrave;tres et &agrave; votre mot de passe secret;
si vous devez vous reconnectez imm&eacute;diatement, c'est ce
mot de passe que vous utiliseriez.</para>
</sect2>
<sect2>
<title>Initialisation depuis une connexion non
s&eacute;curis&eacute;e</title>
<para>Pour initialiser ou changer votre mot de passe secret
par l'interm&eacute;diaire d'une connexion non
s&eacute;curis&eacute;e, il faudra avoir d&eacute;j&agrave;
une connexion s&eacute;curis&eacute;e sur une machine
o&ugrave; vous pouvez ex&eacute;cuter <command>key</command> ou
<command>opiekey</command>; ce peut &ecirc;tre
depuis une icone sur le bureau d'un Macintosh
ou depuis la ligne de commande d'une machine s&ucirc;re.
Il vous faudra &eacute;galement donner une valeur au compteur
d'it&eacute;ration (100 est probablement une bonne valeur),
et indiquer un germe ou utiliser la valeur al&eacute;atoire
g&eacute;n&eacute;r&eacute;e par le programme. Sur la connexion non
s&eacute;curis&eacute;e (vers la machine que vous initialisez),
employez la commande <command>keyinit -s</command>:</para>
<screen>&prompt.user; <userinput>keyinit -s</userinput>
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: <userinput>100</userinput>
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput>
</screen>
<para>Pour OPIE, vous devez utiliser <command>opiepasswd</command>:</para>
<screen>&prompt.user; <userinput>opiepasswd</userinput>
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
</screen>
<para>Pour accepter le germe par d&eacute;faut (que le programme
<command>keyinit</command> appelle <literal>key</literal>,
ce qui pr&ecirc;te &agrave; confusion), appuyez sur
<keycap>Entr&eacute;e</keycap>. Ensuite avant d'entrer un mot de
passe d'acc&egrave;s, passez sur votre connexion
s&eacute;curis&eacute;e et donnez lui les m&ecirc;mes
param&egrave;tres:</para>
<screen>&prompt.user; <userinput>key 100 to17759</userinput>
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <userinput>&lt;secret password&gt;</userinput>
CURE MIKE BANE HIM RACY GORE</screen>
<para>Ou pour OPIE:</para>
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
</screen>
<para>Retournez maintenant sur votre connexion non
s&eacute;curis&eacute;e, et copiez le mot de passe
non r&eacute;utilisable g&eacute;n&eacute;r&eacute; par le programme
adapt&eacute;.</para>
</sect2>
<sect2>
<title>G&eacute;n&eacute;rer un unique mot de passe non
r&eacute;utilisable</title>
<para>Une fois que vous avez initialis&eacute; S/Key ou OPIE,
lorsque que vous ouvrez une session, une invite de ce type
appara&icirc;tra:</para>
<screen>&prompt.user; <userinput>telnet example.com</userinput>
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <userinput>&lt;username&gt;</userinput>
s/key 97 fw13894
Password: </screen>
<para>Ou pour OPIE:</para>
<screen>&prompt.user; <userinput>telnet example.com</userinput>
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <userinput>&lt;username&gt;</userinput>
otp-md5 498 gr4269 ext
Password: </screen>
<para>Les invites S/Key et OPIE disposent d'une fonction utile
(qui n'est pas illustr&eacute;e ici): si vous appuyez sur la touche
<keycap>Entr&eacute;e</keycap> lorsque l'on vous demande votre
mot de passe, le programme active l'&eacute;cho au terminal, de
sorte que vous voyez ce que vous &ecirc;tes en train de taper.
Ceci est tr&egrave;s utile si vous essayez de taper un mot de
passe &agrave; la main, &agrave; partir d'un r&eacute;sultat
imprim&eacute; par exemple.</para>
<indexterm><primary>MS-DOS</primary></indexterm>
<indexterm><primary>Windows</primary></indexterm>
<indexterm><primary>MacOS</primary></indexterm>
<para>A ce moment vous devez g&eacute;n&eacute;rer votre
mot de passe non r&eacute;utilisable pour r&eacute;pondre &agrave;
cette invite de session. Cela doit &ecirc;tre effectu&eacute;
sur une machine de confiance sur laquelle vous pouvez
ex&eacute;cuter <command>key</command> ou
<command>opiekey</command> (il y a des versions de ces
programmes pour DOS, Windows et MacOS). Ces programmes
ont besoin du compteur d'it&eacute;rations et du germe comme
param&egrave;tres. Vous pouvez les copier-coller de l'invite de
session de la machine sur laquelle vous voulez ouvrir une
session.</para>
<para>Sur le syst&egrave;me s&ucirc;r:</para>
<screen>&prompt.user; <userinput>key 97 fw13894</userinput>
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAG</screen>
<para>Pour OPIE:</para>
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT</screen>
<para>Maintenant que vous disposez de votre mot de passe non
r&eacute;utilisable vous pouvez continuer et vous
connecter:</para>
<screen>login: <userinput>&lt;username&gt;</userinput>
s/key 97 fw13894
Password: <userinput>&lt;return to enable echo&gt;</userinput>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... </screen>
</sect2>
<sect2>
<title>G&eacute;n&eacute;rer de multiples mots de passe
non r&eacute;utilisables</title>
<para>Il faut parfois se rendre en des endroits o&ugrave;
vous n'avez pas acc&egrave;s &agrave; une machine de confiance
ou &agrave; une connexion s&eacute;curis&eacute;e. Dans ce cas, vous
pouvez utiliser la commande <command>key</command> ou
<command>opiekey</command> pour g&eacute;n&eacute;rer plusieurs
mots de passe non r&eacute;utilisables que vous pouvez imprimer
et transporter avec vous. Par exemple:</para>
<screen>&prompt.user; <userinput>key -n 5 30 zz99999</userinput>
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <userinput>&lt;secret password&gt;</userinput>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILK</screen>
<para>Ou pour OPIE:</para>
<screen>&prompt.user; <userinput>opiekey -n 5 30 zz99999</userinput>
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHI</screen>
<para>L'option <option>-n 5</option> demande cinq cl&eacute;s en
s&eacute;quence, l'option <option>30</option> indique quel doit
&ecirc;tre le rang de la derni&egrave;re it&eacute;ration. Notez que
les cl&eacute;s sont imprim&eacute;es dans l'ordre
<emphasis>inverse</emphasis> de celui o&ugrave; elles seront
&eacute;ventuellement utilis&eacute;es. Si vous &ecirc;tes
vraiment parano&iuml;aque, vous pouvez les recopier &agrave; la main,
sinon vous pouvez les copier-coller vers la commande
<command>lpr</command>. Remarquez que chaque ligne liste le
compteur d'it&eacute;ration et le mot de passe non
r&eacute;utilisable; vous trouverez peut-&ecirc;tre utile de rayer les
mots de passe au fur et &agrave; mesure de leur utilisation.</para>
</sect2>
<sect2>
<title>Restreindre l'utilisation des mots de passe &unix;</title>
<para>S/Key peut placer des restrictions sur l'utilisation des
mots de passe &unix; en fonction des noms de machine,
d'utilisateur, de la ligne utilis&eacute;e par le terminal ou de
l'adresse IP de la machine connect&eacute;e &agrave; distance.
Ces restrictions peuvent &ecirc;tre trouv&eacute;es dans le
fichier de configuration
<filename>/etc/skey.access</filename>. La page de manuel
&man.skey.access.5; donne de plus amples informations sur le
format de ce fichier et elle d&eacute;taille &eacute;galement
certains avertissements relatifs &agrave; la s&eacute;curit&eacute;
qu'il faut lire avant de se fier &agrave; ce fichier pour sa
s&eacute;curit&eacute;.</para>
<para>S'il n'y a pas de fichier
<filename>/etc/skey.access</filename> (ce qui est le cas par
d&eacute;faut sur les syst&egrave;mes &os;&nbsp;4.X), tous les
utilisateurs pourront se servir de mots de passe &unix;. Si le
fichier existe, alors tous les utilisateurs devront passer par
S/Key, &agrave; moins qu'ils ne soient explicitement
autoris&eacute;s &agrave; ne pas le faire par des instructions du
fichier <filename>/etc/skey.access</filename>. Dans tous les
cas l'usage des mots de passe &unix; est autoris&eacute; sur
la console.</para>
<para>Voici un exemple de configuration du fichier
<filename>skey.access</filename> qui illustre les trois types
d'instructions les plus courantes:</para>
<programlisting>permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0</programlisting>
<para>La premi&egrave;re ligne (<literal>permit internet</literal>)
autorise les utilisateurs dont l'adresse IP (ce qui rend
vuln&eacute;rable en cas d'usurpation) appartient au
sous-r&eacute;seau sp&eacute;cifi&eacute; &agrave; employer les mots
de passe &unix;. Cela ne doit pas &ecirc;tre
consid&eacute;r&eacute; comme une mesure de s&eacute;curit&eacute;,
mais plut&ocirc;t comme un moyen de rappeler aux utilisateurs
autoris&eacute;s qu'ils sont sur un r&eacute;seau non
s&eacute;curis&eacute; et doivent utiliser S/Key pour
s'authentifier.</para>
<para>La seconde ligne (<literal>permit user</literal>)
autorise l'utilisateur d&eacute;sign&eacute;, dans notre cas
<username>fnord</username>, &agrave; employer n'importe quand
les mots de passe &unix;. En g&eacute;n&eacute;ral,
il faut se servir de cette possibilit&eacute; si les personnes
soit n'ont pas moyen d'utiliser le programme
<command>key</command>, s'ils ont par exemple des terminaux
passifs, soit s'ils sont d&eacute;finitivement r&eacute;fractaires au
syst&egrave;me.</para>
<para>La troisi&egrave;me ligne (<literal>permit port</literal>)
autorise tous les utilisateurs d'un terminal sur une liaison
particuli&egrave;re &agrave; utiliser les mots de passe &unix;;
cela devrait &ecirc;tre employ&eacute; pour les connexions
t&eacute;l&eacute;phoniques.</para>
<para>OPIE peut restreindre l'usage des mots de passe &unix;
sur la base de l'adresse IP lors de l'ouverture d'une session
comme peut le faire S/Key. Le fichier impliqu&eacute; est
<filename>/etc/opieaccess</filename>, qui est pr&eacute;sent par
d&eacute;faut sous &os;&nbsp;5.0 et versions suivantes.
Veuillez consulter la page de manuel &man.opieaccess.5; pour
plus d'information sur ce fichier et certaines
consid&eacute;rations sur la s&eacute;curit&eacute; dont vous
devez &ecirc;tre au courant en l'utilisant.</para>
<para>Voici un exemple de fichier
<filename>opieaccess</filename>:</para>
<programlisting>permit 192.168.0.0 255.255.0.0</programlisting>
<para>Cette ligne autorise les utilisateurs dont l'adresse IP (ce
qui rend vuln&eacute;rable en cas d'usurpation) appartient au
sous-r&eacute;seau sp&eacute;cifi&eacute; &agrave; employer les mots
de passe &unix; &agrave; tout moment.</para>
<para>Si aucune r&egrave;gle du fichier <filename>opieaccess</filename>
ne correspond, le comportement par d&eacute;faut est de
refuser toute ouverture de session non-OPIE.</para>
</sect2>
2002-07-29 19:53:40 +02:00
</sect1>
<sect1 id="kerberos">
<sect1info>
<authorgroup>
<author>
<firstname>Mark</firstname>
<surname>Murray</surname>
<contrib>Contribution de </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Mark</firstname>
<surname>Dapoz</surname>
<contrib>Bas&eacute;e sur une contribution de </contrib>
</author>
</authorgroup>
</sect1info>
2002-07-29 19:53:40 +02:00
<title>Kerberos</title>
<indexterm><primary>Kerberos</primary></indexterm>
<para>Kerberos est un protocole r&eacute;seau suppl&eacute;mentaire
qui permet aux utilisateurs de s'authentifier par
l'interm&eacute;diaire d'un serveur s&eacute;curis&eacute;.
Des services comme l'ouverture de session et la copie &agrave;
distance, la copie s&eacute;curis&eacute;e de fichiers entre
syst&egrave;mes et autres fonctionnalit&eacute;s &agrave; haut
risque deviennent ainsi consid&eacute;rablement plus
s&ucirc;rs et contr&ocirc;lables.</para>
<para>Les instructions qui suivent peuvent &ecirc;tre
utilis&eacute;es comme guide d'installation de Kerberos dans
la version distribu&eacute;e pour &os;. Vous devriez
cependant vous r&eacute;f&eacute;rer aux pages de manuel
correspondantes pour avoir une description
compl&egrave;te.</para>
<sect2>
<title>Installation de Kerberos</title>
<indexterm><primary>MIT</primary></indexterm>
<indexterm>
<primary>Kerberos</primary>
<secondary>installation</secondary>
</indexterm>
<para>Kerberos est un composant optionnel de &os;. La
mani&egrave;re la plus simple d'installer ce logiciel est de
s&eacute;lectionner la distribution <literal>krb4</literal>
ou <literal>krb5</literal> dans
<application>sysinstall</application> lors de l'installation
de &os;. Cela installera les impl&eacute;mentations
&ldquo;eBones&rdquo; (KerberosIV) ou &ldquo;Heimdal&rdquo;
(Kerberos5) de Kerberos. Ces impl&eacute;mentations sont
distribu&eacute;es car elles sont d&eacute;velopp&eacute;es en dehors
des USA ou du Canada et &eacute;taient par cons&eacute;quent
disponibles aux utilisateurs hors de ces pays durant
l'&egrave;re restrictive du contr&ocirc;le des exportations de
code de chiffrement &agrave; partir des USA.</para>
<para>Alternativement, l'impl&eacute;mentation du MIT de
Kerberos est disponible dans le catalogue des logiciels
port&eacute;s sous
<filename role="package">security/krb5</filename>.</para>
</sect2>
<sect2>
<title>Cr&eacute;er la base de donn&eacute;es initiale</title>
<para>Cela se fait uniquement sur le serveur Kerberos.
V&eacute;rifiez tout d'abord qu'il ne tra&icirc;ne pas d'anciennes
bases Kerberos. Allez dans le r&eacute;pertoire
<filename>/etc/kerberosIV</filename> et assurez-vous qu'il ne
contient que les fichiers suivants:</para>
<screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
&prompt.root; <userinput>ls</userinput>
README krb.conf krb.realms</screen>
<para>S'il y a d'autres fichiers (comme
<filename>principal.*</filename> ou
<filename>master_key</filename>), utilisez alors la commande
<command>kdb_destroy</command> pour supprimer l'ancienne base de
donn&eacute;es Kerberos, ou si Kerberos ne tourne pas, effacez
simplement les fichiers suppl&eacute;mentaires.</para>
<para>Vous devez maintenant &eacute;diter les fichiers
<filename>krb.conf</filename> et <filename>krb.realms</filename>
pour d&eacute;finir votre domaine Kerberos. Dans notre cas,
le domaine sera <literal>EXAMPLE.COM</literal> et le
serveur <hostid role="fqdn">grunt.example.com</hostid>. Nous
&eacute;ditons ou cr&eacute;ons le fichier
<filename>krb.conf</filename>:</para>
<screen>&prompt.root; <userinput>cat krb.conf</userinput>
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.gov</screen>
<para>Dans notre cas les autres domaines n'ont pas besoin
d'&ecirc;tre mentionn&eacute;s. Ils ne sont l&agrave; que pour
montrer comment une machine peut avoir connaissance de
plusieurs domaines. Pour plus de simplicit&eacute;, vous
pouvez ne pas les inclure.</para>
<para>La premi&egrave;re ligne indique pour quel domaine cette
machine agit. Les autre lignes d&eacute;finissent les autres
domaines/machines. Le premier &eacute;l&eacute;ment sur une ligne
est le domaine, le second le nom de la machine qui est le
&ldquo;centre de distribution de cl&eacute;s&rdquo; de ce
domaine. Les mots <literal>admin server</literal> qui suivent
un nom de machine signifient que la machine est aussi serveur
d'administration de la base de donn&eacute;es. Pour plus
d'explication sur cette terminologie, consultez les pages de
manuel de Kerberos.</para>
<para>Nous devons maintenant ajouter <hostid
role="fqdn">grunt.example.com</hostid> au domaine
<literal>EXAMPLE.COM</literal> et ajouter une entr&eacute;e pour
mettre toutes les machines du domaine DNS <hostid
role="domainname">.example.com</hostid> dans le domaine
Kerberos <literal>EXAMPLE.COM</literal>. Le fichier
<filename>krb.realms</filename> aura alors l'allure
suivante:</para>
<screen>&prompt.root; <userinput>cat krb.realms</userinput>
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDU</screen>
<para>Encore une fois, les autres domaines n'ont pas besoin
d'&ecirc;tre mentionn&eacute;s. Ils ne sont l&agrave; que pour
montrer comment une machine peut avoir connaissance de
plusieurs domaines. Pour plus de simplicit&eacute;, vous pouvez
ne pas les inclure.</para>
<para>La premi&egrave;re ligne assigne un syst&egrave;me
<emphasis>particulier</emphasis> au domaine d&eacute;sign&eacute;.
Les lignes restantes montrent comment affecter par d&eacute;faut
les syst&egrave;mes d'un sous-domaine DNS particulier &agrave; un
domaine Kerberos donn&eacute;.</para>
<para>Nous sommes maintenant pr&ecirc;t pour la cr&eacute;ation
de la base de donn&eacute;es. Il n'y a &agrave; le faire que
sur le serveur Kerberos (ou Centre de Distribution de
Cl&eacute;s). Cela se fait avec la commande
<command>kdb_init</command>:</para>
<screen>&prompt.root; <userinput>kdb_init</userinput>
<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>EXAMPLE.COM</userinput>
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
<prompt>Enter Kerberos master key:</prompt> </screen>
<para>Nous devons maintenant sauvegarder la cl&eacute; pour que
les serveurs sur la machine locale puissent la lire.
Utilisons la commande <command>kstash</command> pour faire
cela:</para>
<screen>&prompt.root; <userinput>kstash</userinput>
<prompt>Enter Kerberos master key:</prompt>
Current Kerberos master key version is 1.
Master key entered. BEWARE!</screen>
<para>Le mot de passe ma&icirc;tre chiffr&eacute; est
sauvegard&eacute; dans
<filename>/etc/kerberosIV/master_key</filename>.</para>
</sect2>
<sect2>
<title>Installer les services</title>
<para>Il faut ajouter deux entr&eacute;es (&ldquo;principals&rdquo;)
&agrave; la base de donn&eacute;es pour <emphasis>chaque</emphasis>
syst&egrave;me qui sera s&eacute;curis&eacute; par Kerberos. Ce
sont <literal>kpasswd</literal> et <literal>rcmd</literal>.
Ces deux entr&eacute;es sont d&eacute;finies pour chaque
syst&egrave;me, chacune de leurs instances se voyant
attribuer le nom du syst&egrave;me.</para>
<para>Ces &ldquo;daemons&rdquo;,
<application>kpasswd</application> et
<application>rcmd</application> permettent aux autres
syst&egrave;mes de changer les mots de passe Kerberos et
d'ex&eacute;cuter des commandes comme &man.rcp.1;,
&man.rlogin.1;, et &man.rsh.1;.</para>
<para>Ajoutons donc maintenant ces entr&eacute;es:</para>
<screen>&prompt.root; <userinput>kdb_edit</userinput>
Opening database...
<prompt>Enter Kerberos master key:</prompt>
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
<prompt>Principal name:</prompt> <userinput>passwd</userinput>
<prompt>Instance:</prompt> <userinput>grunt</userinput>
&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
Principal: passwd, Instance: grunt, kdc_key_ver: 1
<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
Verifying password
<prompt>New Password:</prompt> &lt;---- enter RANDOM here
<prompt>Random password [y] ?</prompt> <userinput>y</userinput>
Principal's new key version = 1
<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
<prompt>Attributes [ 0 ] ?</prompt>
Edit O.K.
<prompt>Principal name:</prompt> <userinput>rcmd</userinput>
<prompt>Instance:</prompt> <userinput>grunt</userinput>
&lt;Not found&gt;, <prompt>Create [y] ?</prompt>
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
Verifying password
<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
<prompt>Random password [y] ?</prompt>
Principal's new key version = 1
<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
<prompt>Attributes [ 0 ] ?</prompt>
Edit O.K.
<prompt>Principal name:</prompt> &lt;---- ne rien entrer ici permet de quitter le programme</screen>
</sect2>
<sect2>
<title>Cr&eacute;er le fichier des services</title>
<para>Il faut maintenant extraire les instances qui
d&eacute;finissent les services sur chaque machine. Pour cela
on utilise la commande <command>ext_srvtab</command>.
Cela cr&eacute;era un fichier qui doit &ecirc;tre copi&eacute;
ou d&eacute;plac&eacute; <emphasis>par un moyen
s&ucirc;r</emphasis> dans le r&eacute;pertoire
<filename>/etc/kerberosIV</filename> de chaque client
Kerberos. Ce fichier doit &ecirc;tre pr&eacute;sent sur
chaque serveur et client, et est crucial au bon fonctionnement
de Kerberos.</para>
<screen>&prompt.root; <userinput>ext_srvtab grunt</userinput>
<prompt>Enter Kerberos master key:</prompt>
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....</screen>
<para>Cette commande ne g&eacute;n&egrave;re qu'un fichier temporaire
qui doit &ecirc;tre renomm&eacute; en <filename>srvtab</filename>
pour que tous les serveurs puissent y acc&eacute;der.
Utilisez la commande &man.mv.1; pour l'installer sur le
syst&egrave;me d'origine:</para>
<screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
<para>Si le fichier est destin&eacute; &agrave; un client, et que
le r&eacute;seau n'est pas consid&eacute;r&eacute; comme s&ucirc;r,
alors copiez le fichier
<filename><replaceable>client</replaceable>-new-srvtab</filename>
sur un support amovible et transportez-le par un moyen
physiquement s&ucirc;r. Assurez-vous de le renommer en
<filename>srvtab</filename> dans le r&eacute;pertoire
<filename>/etc/kerberosIV</filename> du client, et mettez-le
bien en mode 600:</para>
<screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput>
&prompt.root; <userinput>chmod 600 srvtab</userinput></screen>
</sect2>
<sect2>
<title>Renseigner la base de donn&eacute;es</title>
<para>Nous devons maintenant cr&eacute;er des entr&eacute;es
utilisateurs dans la base de donn&eacute;es. Tout d'abord
cr&eacute;ons une entr&eacute;e pour l'utilisateur
<username>jane</username>. Utilisez la commande
<command>kdb_edit</command> pour cela:</para>
<screen>&prompt.root; <userinput>kdb_edit</userinput>
Opening database...
<prompt>Enter Kerberos master key:</prompt>
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
<prompt>Principal name:</prompt> <userinput>jane</userinput>
<prompt>Instance:</prompt>
&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
Principal: jane, Instance: , kdc_key_ver: 1
<prompt>New Password:</prompt> &lt;---- entrez un mot de passe s&ucirc;r ici
Verifying password
<prompt>New Password:</prompt> &lt;---- r&eacute;entrez le mot de passe s&ucirc;r l&agrave;
Principal's new key version = 1
<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
<prompt>Attributes [ 0 ] ?</prompt>
Edit O.K.
<prompt>Principal name:</prompt> &lt;---- ne rien entrer ici permet de quitter le programme</screen>
</sect2>
<sect2>
<title>Tester l'ensemble</title>
<para>Il faut tout d'abord d&eacute;marrer les &ldquo;daemons&rdquo;
Kerberos. Notez que si vous avez correctement modifi&eacute;
votre fichier <filename>/etc/rc.conf</filename>, cela se fera
automatiquement au red&eacute;marrage du syst&egrave;me. Ceci
n'est n&eacute;cessaire que sur le serveur Kerberos. Les
clients Kerberos r&eacute;cup&eacute;reront automatiquement les
informations dont ils ont besoin via leur r&eacute;pertoire
<filename>/etc/kerberosIV</filename>.</para>
<screen>&prompt.root; <userinput>kerberos &amp;</userinput>
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; <userinput>kadmind -n &amp;</userinput>
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!</screen>
<para>Nous pouvons maintenant utiliser la commande
<command>kinit</command> pour obtenir un &ldquo;ticket
d'entr&eacute;e&rdquo; pour l'utilisateur
<username>jane</username> que nous avons cr&eacute;&eacute;
plus haut:</para>
<screen>&prompt.user; <userinput>kinit jane</userinput>
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
<prompt>Password:</prompt> </screen>
<para>Essayons de lister les informations associ&eacute;es
avec la commande <command>klist</command> pour voir si nous
avons vraiment tout ce qu'il faut:</para>
<screen>&prompt.user; <userinput>klist</userinput>
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM</screen>
<para>Essayons maintenant de modifier le mot de passe en
utilisant la commande &man.passwd.1; pour v&eacute;rifier
si le &ldquo;daemon&rdquo; <application>kpasswd</application>
est autoris&eacute; &agrave; acc&eacute;der &agrave; la base
de donn&eacute;es Kerberos:</para>
<screen>&prompt.user; <userinput>passwd</userinput>
realm EXAMPLE.COM
<prompt>Old password for jane:</prompt>
<prompt>New Password for jane:</prompt>
Verifying password
<prompt>New Password for jane:</prompt>
Password changed.</screen>
</sect2>
<sect2>
<title>Autoriser l'utilisation de la commande
<command>su</command></title>
<para>Kerberos permet d'attribuer &agrave;
<emphasis>chaque</emphasis> utilisateur qui a besoin des droits
du super-utilisateur son <emphasis>propre</emphasis> mot de
passe &man.su.1;. Nous pouvons cr&eacute;er un identifiant
qui est autoris&eacute; &agrave; utiliser &man.su.1;
pour devenir <username>root</username>. Cela se fait en
associant une instance <username>root</username> un
identificateur (&ldquo;principal&rdquo;) de base. En
utilisant la commande <command>kdb_edit</command> nous pouvons
cr&eacute;er l'entr&eacute;e <literal>jane.root</literal>
dans la base de donn&eacute;es Kerberos:</para>
<screen>&prompt.root; <userinput>kdb_edit</userinput>
Opening database...
<prompt>Enter Kerberos master key:</prompt>
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
<prompt>Principal name:</prompt> <userinput>jane</userinput>
<prompt>Instance:</prompt> <userinput>root</userinput>
&lt;Not found&gt;, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
<prompt>New Password:</prompt> &lt;---- entrez un mot de passe SUR ici
Verifying password
<prompt>New Password:</prompt> &lt;---- r&eacute;entrez le mot de passe ici
Principal's new key version = 1
<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> <userinput>12</userinput> &lt;--- Laissez une valeur faible!
<prompt>Attributes [ 0 ] ?</prompt>
Edit O.K.
<prompt>Principal name:</prompt> &lt;---- ne rien entrer ici permet de quitter le programme</screen>
<para>V&eacute;rifions maintenant les caract&eacute;ristiques
associ&eacute;es pour voir si cela fonctionne:</para>
<screen>&prompt.root; <userinput>kinit jane.root</userinput>
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
<prompt>Password:</prompt></screen>
<para>Nous devons maintenant ajouter l'utilisateur au fichier
<filename>.klogin</filename> de
<username>root</username>:</para>
<screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
jane.root@EXAMPLE.COM</screen>
<para>Essayons maintenant la commande &man.su.1;:</para>
<screen>&prompt.user; <userinput>su</userinput>
<prompt>Password:</prompt></screen>
<para>et voyons quelles sont nos caract&eacute;ristiques:</para>
<screen>&prompt.root; <userinput>klist</userinput>
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM</screen>
</sect2>
<sect2>
<title>Utiliser d'autres commandes</title>
<para>Dans l'exemple pr&eacute;c&eacute;dent, nous avons
cr&eacute;&eacute; une entr&eacute;e principale nomm&eacute;e
<literal>jane</literal> avec une instance <literal>root</literal>.
Cette entr&eacute;e reposait sur un utilisateur ayant le m&ecirc;me
nom que l'entr&eacute;e principale, c'est ce que fait par
d&eacute;faut Kerberos; une
<literal>&lt;entr&eacute;e_principale&gt;.&lt;instance&gt;</literal>
de la forme
<literal>&lt;nom_d_utilisateur&gt;.</literal><username>root</username>
autorisera <literal>&lt;nom_d_utilisateur&gt;.</literal> &agrave;
utiliser &man.su.1; pour devenir <username>root</username> si
le fichier <filename>.klogin</filename> du r&eacute;pertoire
personnel de l'utilisateur <username>root</username> est
correctement renseign&eacute;:</para>
<screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
jane.root@EXAMPLE.COM</screen>
<para>De m&ecirc;me, si un utilisateur a dans son r&eacute;pertoire des
lignes de la forme:</para>
<screen>&prompt.user; <userinput>cat ~/.klogin</userinput>
jane@EXAMPLE.COM
jack@EXAMPLE.COM</screen>
<para>Cela permet &agrave; quiconque dans le domaine
<literal>EXAMPLE.COM</literal> s'&eacute;tant authentifi&eacute;
en tant que <username>jane</username> ou
<username>jack</username> (via <command>kinit</command>, voir
plus haut) d'acc&eacute;der avec &man.rlogin.1; au compte de
<username>jane</username> ou &agrave; ses fichiers sur le
syst&egrave;me (<hostid>grunt</hostid>) via &man.rlogin.1;,
&man.rsh.1; ou &man.rcp.1;.</para>
<para>Par exemple, <username>jane</username> ouvre maintenant
une session sur un autre syst&egrave;me en utilisant
Kerberos:</para>
<screen>&prompt.user; <userinput>kinit</userinput>
MIT Project Athena (grunt.example.com)
<prompt>Password:</prompt>
&prompt.user; <userinput>rlogin grunt</userinput>
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
<para>Ou bien <username>jack</username> ouvre une session sur le
compte de <username>jane</username> sur la m&ecirc;me machine
(<username>jane</username> ayant modifi&eacute; son fichier
<filename>.klogin</filename> comme d&eacute;crit plus haut, et la
personne an charge de Kerberos ayant d&eacute;fini une entr&eacute;e
principale <emphasis>jack</emphasis> sans instance):</para>
<screen>&prompt.user; <userinput>kinit</userinput>
&prompt.user; <userinput>rlogin grunt -l jane</userinput>
MIT Project Athena (grunt.example.com)
<prompt>Password:</prompt>
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
</sect2>
2002-07-29 19:53:40 +02:00
</sect1>
2002-07-29 19:53:40 +02:00
<sect1 id="firewalls">
<title>Firewalls ** Traduction en Cours **</title>
2002-07-29 19:53:40 +02:00
<para></para>
</sect1>
<sect1 id="openssl">
<title>OpenSSL</title>
<indexterm>
<primary>s&eacute;curit&eacute;</primary>
<secondary>OpenSSL</secondary>
</indexterm>
<indexterm><primary>OpenSSL</primary></indexterm>
<para>Depuis FreeBSD&nbsp;4.0, la biblioth&egrave;que OpenSSL fait
partie du syst&egrave;me de base. <ulink
url="http://www.openssl.org/">OpenSSL</ulink> fournit une
biblioth&egrave;que de chiffrement d'usage g&eacute;n&eacute;ral,
ainsi que les protocoles de s&eacute;curit&eacute; r&eacute;seau
<emphasis>Secure Sockets Layer v2/v3</emphasis> (SSLv2/SSLv3)
et <emphasis>Transport Layer Security v1</emphasis>
(TLSv1).</para>
<para>Cependant, un des algorithmes (pr&eacute;cis&eacute;ment
IDEA) inclus dans OpenSSL est prot&eacute;g&eacute; par des
brevets aux USA et ailleurs, et n'est pas utilisable sans
restriction. IDEA est inclu dans la version &os; d'OpenSSL,
mais n'est pas compil&eacute; par d&eacute;faut. Si vous d&eacute;sirez
l'utiliser, et que vous acceptez les termes de la licence,
activez l'option <makevar>MAKE_IDEA</makevar> dans le fichier
<filename>/etc/make.conf</filename> et recompilez vos sources
en utilisant la commande <command>make world</command>.</para>
<para>Aujourd'hui, l'algorithme RSA est libre d'utilisation
aux USA et ailleurs. Il fut prot&eacute;g&eacute; par un brevet
dans le pass&eacute;.</para>
<indexterm>
<primary>OpenSSL</primary>
<secondary>installation</secondary>
</indexterm>
<sect2>
<title>Installation du code source</title>
<para>OpenSSL fait partie des catalogues
<application>CVSup</application> <literal>src-crypto</literal>
et <literal>src-secure</literal>. Reportez-vous &agrave; la
section <link linkend="mirrors">Se procurer FreeBSD</link> pour
savoir comment se procurer et mettre &agrave; jour le code
source de &os;.<para>
</sect2>
2002-07-29 19:53:40 +02:00
</sect1>
<sect1 id="ipsec">
<sect1info>
<authorgroup>
<author>
<firstname>Yoshinobu</firstname>
<surname>Inoue</surname>
<contrib>Contribution de </contrib>
</author>
<!-- 5 Mar 2000 -->
</authorgroup>
</sect1info>
2002-07-29 19:53:40 +02:00
<title>IPsec</title>
<indexterm><primary>IPsec</primary></indexterm>
<indexterm>
<primary>s&eacute;curit&eacute;</primary>
<secondary>IPsec</secondary>
</indexterm>
<note>
<title>Caract&egrave;res de terminaison</title>
<para>Dans tous les exemples de cette section, et d'autres
sections, vous remarquerez qu'il y aura un &ldquo;^D&rdquo;
&agrave; la fin de certains exemples. Cela signifie qu'il faut
maintenir la touche <keycap>Ctrl</keycap> enfonc&eacute;e
et appuyer sur la touche <keycap>D</keycap>. Un autre
caract&egrave;re couramment utilis&eacute; est &ldquo;^C&rdquo;,
qui signifie de maintenir enfonc&eacute; la touche
<keycap>Ctrl</keycap> et d'appuyer sur
<keycap>C</keycap>.</para>
</note>
<tip>
<para>Pour d'autres documents d&eacute;taillant
l'impl&eacute;mentation d'IPsec, jetez un oeil &agrave;
<ulink
url="http://www.daemonnews.org/200101/ipsec-howto.html"></ulink>
et <ulink
url="http://www.freebsddiary.org/ipsec.php"></ulink>.</para>
</tip>
<para>Le m&eacute;canisme IPsec fournit des communications
s&eacute;curis&eacute;es sur couche IP ou &agrave; travers les
<emphasis>sockets</emphasis>. Cette section explique comment
l'utiliser. Pour des d&eacute;tails concernant
l'impl&eacute;mentation d'IPsec, reportez-vous au
<ulink url="../developers-handbook/ipv6.html">Manuel du
d&eacute;veloppeur</ulink>.</para>
<para>L'impl&eacute;mentation actuelle d'IPsec supporte le mode
transport et le mode tunnel. Cependant, il y a des restrictions
au mode tunnel. <ulink
url="http://www.kame.net/newsletter/"></ulink> fournit des
exemples plus exhaustifs.</para>
<para>Soyez inform&eacute; que pour utiliser cette fonctionnalit&eacute;,
vous devez avoir les options suivantes pr&eacute;sentes dans
votre fichier de configuration du noyau:</para>
<programlisting>options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/IPSEC)</programlisting>
<sect2>
<title>Exemple en mode transport avec IPv4</title>
<para>Configurons une association de s&eacute;curit&eacute;
pour d&eacute;ployer un canal s&eacute;curis&eacute; entre la Machine A
(<hostid role="ipaddr">10.2.3.4</hostid>) et la Machine B
(<hostid role="ipaddr">10.6.7.8</hostid>). Notre exemple est
un peu compliqu&eacute;. De A vers B, nous n'utilisons que
l'ancien AH. De B vers A, le nouvel AH et le nouvel ESP sont
combin&eacute;s.</para>
<para>Nous devons maintenant choisir les algorithmes
correspondant &agrave;
&ldquo;AH&rdquo;/&ldquo;nouvel AH&rdquo;/&ldquo;ESP&rdquo;/
&ldquo;nouvel ESP&rdquo;. Reportez-vous &agrave; la page de manuel
&man.setkey.8; pour conna&icirc;tre les noms des algorithmes.
Nous utiliserons MD5 pour AH, new-HMAC-SHA1 pour le nouvel AH,
et new-DES-expIV avec 8 octets IV pour le nouvel ESP.</para>
<para>La longueur de la cl&eacute; d&eacute;pend de chaque algorithme.
Par exemple, elle doit &ecirc;tre &eacute;gale &agrave; 16 octets
pour MD5, 20 pour new-HMAC-SHA1, et 8 pour new-DES-expIV.
Nous choisissons maintenant &ldquo;MYSECRETMYSECRET&rdquo;,
&ldquo;KAMEKAMEKAMEKAMEKAME&rdquo;, &ldquo;PASSWORD&rdquo;,
respectivement.</para>
<para>D&eacute;finissons maintenant le SPI (<emphasis>Security Parameter
Index</emphasis>) pour chaque protocole. Remarquez qu'il nous
faut 3 SPIs pour ce canal s&eacute;curis&eacute; puisqu'il y aura
trois ent&ecirc;tes de s&eacute;curit&eacute; (une de la Machine A vers la
Machine B et deux de la Machine B vers la Machine A). Notez
&eacute;galement que les SPIs doivent &ecirc;tre sup&eacute;rieurs
&agrave; 256. Nous choisirions 1000, 2000 et 3000
respectivement.</para>
<screen>
(1)
Machine A ------> Machine B
(1)PROTO=AH
ALG=MD5(RFC1826)
KEY=MYSECRETMYSECRET
SPI=1000
(2.1)
Machine A <------ Machine B
<------
(2.2)
(2.1)
PROTO=AH
ALG=new-HMAC-SHA1(new AH)
KEY=KAMEKAMEKAMEKAMEKAME
SPI=2000
(2.2)
PROTO=ESP
ALG=new-DES-expIV(new ESP)
IV length = 8
KEY=PASSWORD
SPI=3000
</screen>
<para>Maintenant, d&eacute;finissons l'association de
s&eacute;curit&eacute;. Ex&eacute;cutons &man.setkey.8; sur
la Machine A et la Machine B:</para>
<screen>&prompt.root; <userinput>setkey -c
add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ;
add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ;
add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ;
^D</userinput></screen>
<para>En fait, la communication IPsec n'aura pas lieu avant que
les entr&eacute;es de politique de s&eacute;curit&eacute;
ne soient d&eacute;finies. Dans notre cas, il faut le faire sur les
deux machines.</para>
<screen>
C&ocirc;t&eacute; A:
&prompt.root; <userinput>setkey -c
spdadd 10.2.3.4 10.6.7.8 any -P out ipsec
ah/transport/10.2.3.4-10.6.7.8/require ;
^D</userinput>
C&ocirc;t&eacute; B:
&prompt.root; <userinput>setkey -c
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
esp/transport/10.6.7.8-10.2.3.4/require ;
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
ah/transport/10.6.7.8-10.2.3.4/require ;
^D</userinput>
Machine A --------------------------> Machine E
10.2.3.4 10.6.7.8
| |
========= ancien AH keyed-md5 ========>
<======== nouveau AH hmac-sha1 ========
<======== nouveau ESP des-cbc =========
</screen>
</sect2>
<sect2>
<title>Exemple en mode transport avec IPv6</title>
<para>Un autre exemple utilisant IPv6.</para>
<para>Le mode de transport ESP est recommand&eacute; pour le
port TCP num&eacute;ro 110 entre la Machine-A et la
Machine-B.</para>
<screen>
============ ESP ============
| |
Machine-A Machine-B
fec0::10 -------------------- fec0::11
</screen>
<para>L'algorithme de chiffrement est blowfish-cbc avec la
cl&eacute; &ldquo;kamekame&rdquo;, et l'algorithme
d'authentification est hmac-sha1 avec la cl&eacute;
&ldquo;this is the test key&rdquo;. Configuration de la
Machine-A:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec
esp/transport/fec0::10-fec0::11/use ;
spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec
esp/transport/fec0::11-fec0::10/use ;
add fec0::10 fec0::11 esp 0x10001
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOF</userinput></screen>
<para>et de la Machine-B:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec
esp/transport/fec0::11-fec0::10/use ;
spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec
esp/transport/fec0::10-fec0::11/use ;
add fec0::10 fec0::11 esp 0x10001 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOF</userinput></screen>
<para>Remarquez la direction de SP.</para>
</sect2>
<sect2>
<title>Exemple en mode tunnel avec IPv4</title>
<para>Mode tunnel entre deux passerelles de
s&eacute;curit&eacute;</para>
<para>Le protocole de s&eacute;curit&eacute; est l'ancien mode
tunnel AH, i.e. sp&eacute;cifi&eacute; par la RFC1826,
avec keyed-md5 comme algorithme d'authentification
et &ldquo;this is the test&rdquo; comme cl&eacute;.</para>
<screen>
======= AH =======
| |
R&eacute;seau-A Passerelle-A Passerelle-B R&eacute;seau-B
10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24
</screen>
<para>Configuration de la Passerelle-A:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOF</userinput></screen>
<para>Si le num&eacute;ro de port n'est pas pr&eacute;cis&eacute;
comme ci-dessus, alors <literal>[any]</literal> est
utilis&eacute;. <literal>-m</literal> d&eacute;finit le mode
de SA &agrave; utiliser. <literal>-m any</literal> signifie
tout mode de protocole de s&eacute;curit&eacute;. Vous
pouvez utiliser cette SA &agrave; la fois en mode transport
et en mode tunnel.</para>
<para>et de la Passerelle-B:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOF</userinput></screen>
<para>Etablir une SA regroup&eacute;e entre deux passerelles
de s&eacute;curit&eacute;</para>
<para>On d&eacute;sire le mode de transport AH et le mode
tunnel ESP entre Passerelle-A et Passerelle-B. Dans ce
cas, on applique d'abord le mode tunnel ESP puis le mode
de transport AH.</para>
<screen>
========== AH =========
| ======= ESP ===== |
| | | |
R&eacute;seau-A Passerelle-A Passerelle-B R&eacute;seau-B
fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64
</screen>
</sect2>
<sect2>
<title>Exemple en mode tunnel avec IPv6</title>
<para>L'algorithme de chiffrement est 3des-cbc, et l'algorithme
d'authentification est hmac-sha1. L'algorithme
d'authentification pour AH est hmac-md5. Configuration de la
Passerelle-A:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require
ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require
ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
EOF</userinput></screen>
<para>Etablir des SAs avec les diff&eacute;rentes
extr&eacute;mit&eacute;s</para>
<para>On d&eacute;sire un mode tunnel ESP entre Machine-A et
Passerelle-A. L'algorithme de chiffrement est cast128-cbc,
et l'algorithme d'authentification pour ESP est hmac-sha1.
Le mode de transport ESP est recommand&eacute; entre Machine-A
et Machine-B. L'algorithme de chiffrement est rc5-cbc, et
l'algorithme d'authentification pour ESP est hmac-md5.</para>
<screen>
================== ESP =================
| ======= ESP ======= |
| | | |
Machine-A Passerelle-A Machine-B
fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2
</screen>
<para>Configuration de la Machine-A:</para>
<screen>&prompt.root; <userinput>setkey -c &lt;&lt;<filename>EOF</filename>
spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec
esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec
esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
EOF</userinput></screen>
</sect2>
2002-07-29 19:53:40 +02:00
</sect1>
<sect1 id="openssh">
<sect1info>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Contribution de </contrib>
</author>
<!-- 21 April 2001 -->
</authorgroup>
</sect1info>
2002-07-29 19:53:40 +02:00
<title>OpenSSH</title>
<indexterm><primary>OpenSSH</primary></indexterm>
<indexterm>
<primary>s&eacute;curit&eacute;</primary>
<secondary>OpenSSH</secondary>
</indexterm>
<para><application>OpenSSH</application> est un ensemble d'outils
de connexion r&eacute;seau utilis&eacute;s pour
acc&eacute;der &agrave; des machines
distantes de fa&ccedil;on s&eacute;curis&eacute;. Ils peuvent
&ecirc;tre utilis&eacute; comme rempla&ccedil;ants directs de
<command>rlogin</command>, <command>rsh</command>,
<command>rcp</command>, et <command>telnet</command>.
De plus, <application>OpenSSH</application> peut
s&eacute;curiser n'importe quelle connexion
TCP/IP via un tunnel. <application>OpenSSH</application>
chiffre tout le trafic de fa&ccedil;on
&agrave; d&eacute;jouer les &eacute;coutes r&eacute;seau, les
prises de contr&ocirc;le de connexion, et aux attaques au niveau
du r&eacute;seau.</para>
<para><application>OpenSSH</application> est maintenu par le
projet OpenBSD, et est bas&eacute; sur SSH v1.2.12 avec tous les
r&eacute;centes corrections et mises &agrave; jour. Il est
compatible avec les protocoles SSH 1 et 2.
<application>OpenSSH</application> est pr&eacute;sent dans le
syst&egrave;me de base depuis &os;&nbsp;4.0.</para>
<sect2>
<title>Les avantages &agrave; utiliser OpenSSH</title>
<para>Normalement, quand on utilise &man.telnet.1; ou
&man.rlogin.1;, les donn&eacute;es sont envoy&eacute;es sur le
r&eacute;seau en clair, sous forme non chiffr&eacute;e.
Des &ldquo;renifleurs de paquets&rdquo; plac&eacute;s
n'importe o&ugrave; entre le client et le serveur peuvent
prendre connaissance de votre nom d'utilisateur, de votre mot
de passe et des donn&eacute;es transmises lors de votre session.
<application>OpenSSH</application> offre une
vari&eacute;t&eacute; de m&eacute;thodes d'authentification et
de chiffrage pour &eacute;viter ce genre de
probl&egrave;me.</para>
</sect2>
<sect2>
<title>Activer sshd</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>activation</secondary>
</indexterm>
<para>Assurez-vous d'ajouter la ligne suivante &agrave;
votre fichier <filename>rc.conf</filename>:</para>
<screen>sshd_enable="YES"</screen>
<para>Cela chargera le &ldquo;daemon&rdquo;
<application>ssh</application> &agrave; l'initialisation suivante
du syst&egrave;me. Alternativement, vous pouvez tout simplement
ex&eacute;cuter le &ldquo;daemon&rdquo;
<application>sshd</application> directement en tapant
<command>sshd</command> sur la ligne de commande.</para>
</sect2>
<sect2>
<title>Client SSH</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>client</secondary>
</indexterm>
<para>L'utilitaire &man.ssh.1; fonctionne de la m&ecirc;me
mani&egrave;re que &man.rlogin.1;:</para>
<screen>&prompt.root; <userinput>ssh <replaceable>user@example.com</replaceable></userinput>
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
Host 'example.com' added to the list of known hosts.
user@example.com's password: <userinput>*******</userinput></screen>
<para>L'ouverture de session se poursuit comme si elle
avait lanc&eacute;e par &man.rlogin.1; ou &man.telnet.1;.
Le syst&egrave;me SSH utilise un syst&egrave;me d'empreinte
de cl&eacute; pour v&eacute;rifier l'authenticit&eacute; du
serveur quand le client se connecte. L'utilisateur est
invit&eacute; &agrave; entrer <literal>yes</literal> uniquement
&agrave; la premi&egrave;re connexion. Lors des futures
connexions, l'empreinte de la cl&eacute; sauvegard&eacute; est
v&eacute;rifi&eacute;e. Le client SSH vous avertira si
l'empreinte sauv&eacute;e diff&egrave;re de l'empreinte
re&ccedil;ue lors de futures tentatives
de connexion. Les empreintes sont sauv&eacute;es dans le
fichier <filename>~/.ssh/known_hosts</filename>, ou
<filename>~/.ssh/known_hosts2</filename> pour les empreintes
du protocole SSH 2.</para>
<para>Par d&eacute;faut, les serveurs
<application>OpenSSH</application> sont
configur&eacute;s pour accepter les connexions dans les deux
protocoles SSH 1 et 2. Le client peut, cependant, choisir
entre les deux. Le protocole 2 est connu pour &ecirc;tre plus
robuste et plus s&eacute;curis&eacute; que son
pr&eacute;d&eacute;cesseur.</para>
<para><command>ssh</command> peut &ecirc;tre forc&eacute; &agrave;
utilis&eacute; l'un des protocole en passant l'argument
<option>-1</option> ou <option>-2</option> pour le protocole 1
ou 2 respectivement.</para>
</sect2>
<sect2>
<title>Copie s&eacute;curis&eacute;e</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>copie s&eacute;curis&eacute;e</secondary>
</indexterm>
<indexterm><primary><command>scp</command></primary></indexterm>
<para>La commande &man.scp.1; fonctionne de la m&ecirc;me
mani&egrave;re que &man.rcp.1;; elle copie un fichier vers ou
&agrave; partir d'une machine distante &agrave; la
diff&eacute;rence qu'elle le fait
d'une fa&ccedil;on s&eacute;curis&eacute;.</para>
<screen>&prompt.root; <userinput> scp <replaceable>user@example.com:/COPYRIGHT COPYRIGHT</replaceable></userinput>
user@example.com's password: <userinput>*******</userinput>
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;</screen>
<para>Puisque l'empreinte a d&eacute;j&agrave; &eacute;t&eacute;
sauv&eacute;e pour cette machine dans l'exemple
pr&eacute;c&eacute;dent, cela se v&eacute;rifie ici quand on utilise
&man.scp.1;.</para>
<para>Les arguments pass&eacute;s &agrave; &man.scp.1; sont
similaires &agrave; ceux de &man.cp.1;, avec le ou les fichiers
en premier argument, et la destination en second.
Puisque que le fichier est copi&eacute; via le r&eacute;seau, par
l'interm&eacute;diaire de SSH, un ou plusieurs des arguments
prennent la forme
<option>utilisateur@machine_distante:&lt;chemin_du_fichier&gt;</option>.</para>
</sect2>
<sect2>
<title>Configuration</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>configuration</secondary>
</indexterm>
<para>Les fichiers de configuration g&eacute;n&eacute;ral au
syst&egrave;me pour le &ldquo;daemon&rdquo; et le client
<application>OpenSSH</application> r&eacute;sident dans le
r&eacute;pertoire <filename>/etc/ssh</filename>.</para>
<para><filename>ssh_config</filename> permet de param&eacute;trer
le client, tandis que <filename>sshd_config</filename>
s'occupe de la configuration du &ldquo;daemon&rdquo;.</para>
<para>De plus, les options <option>sshd_program</option>
(<filename>/usr/sbin/sshd</filename> par d&eacute;faut),
et <option>sshd_flags</option> du fichier
<filename>rc.conf</filename> peut fournir un niveau
suppl&eacute;mentaire de configuration.</para>
</sect2>
<sect2>
<title>ssh-keygen</title>
<para>Au lieu d'utiliser des mots de passe, &man.ssh-keygen.1;
peut &ecirc;tre employ&eacute; pour g&eacute;n&eacute;rer des
cl&eacute;s RSA pour authentifier un utilisateur:</para>
<screen>&prompt.user; <userinput>ssh-keygen -t <replaceable>rsa1</replaceable></userinput>
Initializing random number generator...
Generating p: .++ (distance 66)
Generating q: ..............................++ (distance 498)
Computing the keys...
Key generation complete.
Enter file in which to save the key (/home/user/.ssh/identity):
Enter passphrase:
Enter the same passphrase again:
Your identification has been saved in /home/user/.ssh/identity.
...</screen>
<para>&man.ssh-keygen.1; cr&eacute;era une paire de cl&eacute;s
publique et priv&eacute;e &agrave; utiliser pour l'authentification.
La cl&eacute; priv&eacute;e est stock&eacute;e dans le fichier
<filename>~/.ssh/identity</filename>, alors que la cl&eacute;
publique l'est dans le fichier
<filename>~/.ssh/identity.pub</filename>. La cl&eacute;
publique doit &ecirc;tre plac&eacute;e dans le fichier
<filename>~/.ssh/authorized_keys</filename> sur la machine
distante pour que cela fonctionne.</para>
<para>Ceci autorisera les connexions sur la machine distante
en utilisant l'authentification RSA &agrave; la place des
mots de passe.</para>
<note><para>L'option <option>-t rsa1</option> cr&eacute;era des
cl&eacute;s RSA pour le protocole SSH 1. Si vous d&eacute;sirez
utiliser des cl&eacute;s RSA avec le protocole SSH 2, vous devez
employer la commande <command>ssh-keygen -t
rsa</command>.</para></note>
<para>Si une phrase d'authentification est utilis&eacute;e
avec &man.ssh-keygen.1;, l'utilisateur se verra demand&eacute;
d'entrer un mot de passe &agrave; chaque utilisation de la cl&eacute;
priv&eacute;.</para>
<para>Une cl&eacute; DSA SSH protocole 2 peut &ecirc;tre
cr&eacute;&eacute;e pour le m&ecirc;me objectif en utilisant
la commande <command>ssh-keygen -t dsa</command>.
Cela cr&eacute;era une paire de cl&eacute;s DSA pour les sessions
SSH utilisant le protocole 2. La cl&eacute; publique est
conserv&eacute;e dans <filename>~/.ssh/id_dsa.pub</filename>,
tandis que la cl&eacute; publique se trouve dans
<filename>~/.ssh/id_dsa</filename>.</para>
<para>Les cl&eacute;s publiques DSA sont plac&eacute;es dans le
fichier <filename>~/.ssh/authorized_keys</filename> sur la
machine distante.</para>
<para>&man.ssh-agent.1; et &man.ssh-add.1; sont des utilitaires
employ&eacute;s pour la gestion de multiples cl&eacute;s
priv&eacute;es prot&eacute;g&eacute;es par mots de passe.</para>
<warning><para>Les divers fichiers et options peuvent &ecirc;tre
diff&eacute;rents selon la version
d'<application>OpenSSH</application> dont vous disposez,
pour &eacute;viter les probl&egrave;mes vous devez consultez la page de
manuel &man.ssh-keygen.1;.</para></warning>
</sect2>
<sect2>
<title>Tunnels SSH</title>
<indexterm>
<primary>OpenSSH</primary>
<secondary>tunnel</secondary>
</indexterm>
<para><application>OpenSSH</application> a la
capacit&eacute; de cr&eacute;er un tunnel
pour encapsuler un autre protocole dans une session
chiffr&eacute;e.</para>
<para>La commande suivante demande &agrave; &man.ssh.1; de
cr&eacute;er un tunnel pour <application>telnet</application>:</para>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5023:localhost:23 user@foo.example.com</replaceable></userinput>
&prompt.user;</screen>
<para>La commande <command>ssh</command> est utilis&eacute;e avec
les options suivantes:</para>
<variablelist>
<varlistentry>
<term><option>-2</option></term>
<listitem>
<para>Force <command>ssh</command> &agrave; utiliser la
version du protocole (&agrave; ne pas utiliser si vous
travaillez avec de vieux serveurs SSH).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-N</option></term>
<listitem>
<para>N'ex&eacute;cute aucune commande &agrave; distance, ou
mode se place en mode tunnel. Si cette option est omise
<command>ssh</command> initiera une session
normale.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-f</option></term>
<listitem>
<para>Force <command>ssh</command> &agrave; s'ex&eacute;cuter
en arri&egrave;re-plan.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-L</option></term>
<listitem>
<para>Sp&eacute;cifie un tunnel local de la mani&egrave;re
<replaceable>port_local:machine_distante:port_distant</replaceable>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>user@foo.example.com</option></term>
<listitem>
<para>Le serveur SSH distant.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Un tunnel SSH fonctionne gr&acirc;ce &agrave;
l'allocation d'une &ldquo;socket&rdquo; qui &eacute;coute
sur le port sp&eacute;cifi&eacute; de la machine
<hostid>localhost</hostid>.
Il transf&egrave;re ensuite toute connexion re&ccedil;ue sur la/le
machine/port local(e) via la connexion SSH vers la machine et
le port distants sp&eacute;cifi&eacute;s.</para>
<para>Dans l'exemple, le port <replaceable>5023</replaceable>
sur la machine locale transf&egrave;re toute connexion
sur ce port vers le port <replaceable>23</replaceable> de la
machine distante (le <hostid>localhost</hostid> de la
commande). Puisque le port <replaceable>23</replaceable> est
celui de <application>telnet</application>, cela cr&eacute;erai
une session <application>telnet</application>
s&eacute;curis&eacute;e par l'interm&eacute;diaire
d'un tunnel SSH.</para>
<para>Cela peut &ecirc;tre utilis&eacute; pour
encapsuler n'importe quel nombre de protocoles TCP non
s&eacute;curis&eacute; comme SMTP, POP3, FTP, etc.</para>
<example>
<title>Utiliser SSH pour cr&eacute;er un tunnel
s&eacute;curis&eacute; pour SMTP</title>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5025:localhost:25 user@mailserver.example.com</replaceable></userinput>
user@mailserver.example.com's password: <userinput>*****</userinput>
&prompt.user; <userinput>telnet localhost 5025</userinput>
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP</screen>
<para>Ceci peut &ecirc;tre utilis&eacute; en conjonction
avec &man.ssh-keygen.1; et des comptes utilisateurs
suppl&eacute;mentaires pour la cr&eacute;ation et l'acc&egrave;s au
tunnel SSH sans trop de probl&egrave;me.
Des cl&eacute;s peuvent &ecirc;tre utilis&eacute;es &agrave;
la place de la saisie d'un mot de passe, et les tunnels
peuvent &ecirc;tre ex&eacute;cut&eacute;s sous un
utilisateur s&eacute;par&eacute;.</para>
</example>
<sect3>
<title>Exemples pratiques de tunnels SSH</title>
<sect4>
<title>Acc&egrave;s s&eacute;curis&eacute; &agrave; un serveur POP3</title>
<para>Au travail, il y a un serveur SSH qui accepte les
connexions de l'ext&eacute;rieur. Sur le m&ecirc;me r&eacute;seau
d'entreprise r&eacute;side un serveur de courrier
&eacute;lectronique faisant fonctionner un serveur POP3.
Le r&eacute;seau ou le chemin entre chez vous et le bureau
peut ou peut ne pas &ecirc;tre compl&egrave;tement s&ucirc;r.
Pour cette raison, vous devez r&eacute;cup&eacute;rer votre
courrier &eacute;lectronique d'une fa&ccedil;on
s&eacute;curis&eacute;e.
La solution est de cr&eacute;er une connexion SSH vers
le serveur SSH de votre entreprise, et d'utiliser ce
tunnel vers le serveur de courrier.</para>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>2110:mail.example.com:110 user@ssh-server.example.com</replaceable></userinput>
user@ssh-server.example.com's password: <userinput>******</userinput></screen>
<para>Quand le tunnel est configur&eacute; et fonctionne,
vous pouvez demander &agrave; votre client de courrier
&eacute;lectronique d'envoyer ses requ&ecirc;tes POP3 sur le
port 2110 de la machine locale: <hostid>localhost</hostid>.
Les connexions seront tranf&eacute;r&eacute;es de fa&ccedil;on
s&eacute;curis&eacute; &agrave; travers le tunnel jusqu'&agrave;
<hostid>mail.example.com</hostid>.</para>
</sect4>
<sect4>
<title>Passer &agrave; travers un coupe-feu restrictif</title>
<para>Certains administrateurs r&eacute;seau imposent
des r&egrave;gles draconi&egrave;nes au niveau du coupe-feu,
filtrant non seulement les connexions entrantes,
mais &eacute;galement les connexions sortantes. Il se
peut que vous n'ayez acc&egrave;s qu'aux ports 22 et 80
de machines distantes pour SSH ou la navigation
Internet.</para>
<para>Vous pouvez vouloir acc&eacute;der &agrave; un autre
(n'ayant peut-&ecirc;tre aucun rapport avec votre travail)
service, comme un serveur Ogg Vorbis pour &eacute;couter
de la musique. Si le serveur Ogg Vorbis diffuse
(&ldquo;streaming&rdquo;) ses donn&eacute;es
&agrave; partir d'un port diff&eacute;rent
des ports 22 ou 80, vous ne serez alors pas en mesure d'y
acc&eacute;der.</para>
<para>La solution est de cr&eacute;er une connexion SSH
vers une machine &agrave; l'ext&eacute;rieur du
r&eacute;seau prot&eacute;g&eacute;
par le coupe-feu, et l'utiliser pour cr&eacute;er un
tunnel vers le serveur Ogg Vorbis.</para>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>8888:music.example.com:8000 user@unfirewalled-system.example.org</replaceable></userinput>
user@unfirewalled-system.example.org's password: <userinput>*******</userinput></screen>
<para>Vous pouvez maintenant faire pointer votre client
pour la r&eacute;cup&eacute;ration du flux de
donn&eacute;es sur le port 8888
de la machine locale, qui sera transf&eacute;r&eacute;
jusqu'au port 8000 de la machine
<hostid>music.example.com</hostid>, passant ainsi outre
les restrictions du coupe-feu.</para>
</sect4>
</sect3>
</sect2>
<sect2>
<title>Lectures suppl&eacute;mentaires</title>
<para><ulink url="http://www.openssh.com/">OpenSSH</ulink></para>
<para>&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1;</para>
<para>&man.sshd.8; &man.sftp-server.8;</para>
</sect2>
2002-07-29 19:53:40 +02:00
</sect1>
2003-06-09 15:41:32 +02:00
<sect1 id="mac">
<title>Mandatory Access Control (MAC) ** Traduction en Cours **</title>
2003-06-09 15:41:32 +02:00
<para></para>
</sect1>
<sect1 id="fs-acl">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Contribution de </contrib>
</author>
</authorgroup>
</sect1info>
<indexterm>
<primary>ACL</primary>
</indexterm>
<title>Listes de contr&ocirc;le d'acc&egrave;s au syst&egrave;me de
fichiers</title>
<para>Avec les am&eacute;liorations des syst&egrave;mes de fichiers
comme les &ldquo;snapshots&rdquo;, FreeBSD&nbsp;5.0 et versions
suivantes offrent une nouveaut&eacute; en mati&egrave;re de
s&eacute;curit&eacute;: les listes de contr&ocirc;le d'acc&egrave;s
au syst&egrave;me de fichiers (<acronym>ACL</acronym>s -
&ldquo;Access Control Lists&rdquo;).</para>
<para>Les listes de contr&ocirc;le d'acc&egrave;s &eacute;tendent
le syst&egrave;me de permission standard d'UNIX d'une mani&egrave;re
hautement compatible (POSIX.1e). Cette caract&eacute;ristique
permet &agrave; un administrateur d'utiliser avantageusement
un mod&egrave;le de s&eacute;curit&eacute; plus
sophistiqu&eacute;.</para>
<para>Pour activer le support <acronym>ACL</acronym> pour les
syst&egrave;mes de fichiers <acronym>UFS</acronym>, ce qui
suit:</para>
<programlisting>options UFS_ACL</programlisting>
<para>doit &ecirc;tre compil&eacute; dans le noyau. Si cette option
n'a pas &eacute;t&eacute; ajout&eacute;e, un avertissement sera
affich&eacute; lors d'une tentative de montage d'un syst&egrave;me
de fichiers supportant les <acronym>ACL</acronym>s.
Cette option est pr&eacute;sente dans le noyau
<filename>GENERIC</filename>. Les <acronym>ACL</acronym>s
reposent sur des attributs &eacute;tendus rajout&eacute;s
au syst&egrave;me de fichiers. Les attributs &eacute;tendus sont
nativement support&eacute;s par la prochaine
g&eacute;n&eacute;ration du syst&egrave;me de fichiers UNIX,
<acronym>UFS2</acronym>.</para>
<note>
<para>Un suppl&eacute;ment de travail d'administration est requis
pour configurer les attributs &eacute;tendus sous
<acronym>UFS1</acronym> par rapport &agrave;
<acronym>UFS2</acronym>. Les performances des attributs
&eacute;tendus sous <acronym>UFS2</acronym> sont sensiblement
meilleures &eacute;galement. Il en r&eacute;sulte donc, que
l'<acronym>UFS2</acronym> est g&eacute;n&eacute;ralement
r&eacute;command&eacute; par rapport &agrave;
l'<acronym>UFS1</acronym> pour une utilisation des listes
de cont&ocirc;le d'acc&egrave;s.</para>
</note>
<para>Les <acronym>ACL</acronym>s sont activ&eacute;s gr&acirc;ce
l'option utilis&eacute;e lors du montage, <option>acls</option>,
qui peut &ecirc;tre ajout&eacute; dans le fichier
<filename>/etc/fstab</filename>. Cette option de montage peut
&ecirc;tre &eacute;galement automatiquement fix&eacute;e
d'une mani&egrave;re d&eacute;finitive en utilisant &man.tunefs.8;
pour modifier l'indicateur <acronym>ACL</acronym> du
&ldquo;superblock&rdquo; dans l'ent&ecirc;te du syst&egrave;me de
fichiers. Il est en g&eacute;n&eacute;ral pr&eacute;f&eacute;rable
d'utiliser cet indicateur pour plusieurs raisons:</para>
<itemizedlist>
<listitem>
<para>L'option de montage pour les <acronym>ACL</acronym>s ne
peut &ecirc;tre modifi&eacute;e par un simple remontage
(&man.mount.8; <option>-u</option>), mais uniquement par un
&man.umount.8; complet et suivi d'un &man.mount.8;. Cela
signifie que les <acronym>ACL</acronym>s ne peuvent
&ecirc;tre activ&eacute;es sur le syst&egrave;me de fichiers
racine apr&egrave;s le d&eacute;marrage. Cela signifie
&eacute;galement que vous ne pouvez pas modifier la
disposition d'un syst&egrave;me de fichier une fois que
c'est activ&eacute;.</para>
</listitem>
<listitem>
<para>Positionner l'indicateur du &ldquo;superblock&rdquo;
fera que le syst&egrave;me de fichiers sera toujours mont&eacute;
avec les <acronym>ACL</acronym>s activ&eacute;es m&ecirc;me
s'il n'y a pas d'entr&eacute;e dans le fichier
<filename>fstab</filename>, ou s'il y a une r&eacute;organisation
des p&eacute;riph&eacute;riques. Cela pr&eacute;vient
le montage accidentel du syst&egrave;me de fichiers sans les
<acronym>ACL</acronym>s activ&eacute;es, ce qui peut provoquer
une activation impropre des <acronym>ACL</acronym>s et
par cons&eacute;quent des probl&egrave;mes de
s&eacute;curit&eacute;.</para>
</listitem>
</itemizedlist>
<note>
<para>Nous pourrions modifier le comportement des
<acronym>ACL</acronym>s pour permettre l'activation de
l'indicateur sans le besoin d'un nouveau &man.mount.8;
complet, mais nous considerons qu'il est pr&eacute;f&eacute;rable
d'&eacute;viter un montage accidentel sans les
<acronym>ACL</acronym>s activ&eacute;es, parce que vous pouvez
vous &ldquo;tirer facilement dans les pieds&rdquo;
si vous activez les <acronym>ACL</acronym>s, puis
les d&eacute;sactivez, et ensuite les r&eacute;activez &agrave;
nouveau sans r&eacute;initialiser les attributs &eacute;tendus.
En g&eacute;n&eacute;ral, une fois que vous avez activ&eacute;
les <acronym>ACL</acronym>s sur un syst&egrave;me de fichiers,
elles ne devraient pas &ecirc;tre d&eacute;sactiv&eacute;es
&eacute;tant donn&eacute; que les protections de fichiers
r&eacute;sultantes peuvent ne pas &ecirc;tre compatible avec
celles pr&eacute;vues par les utilisateurs du syst&egrave;me,
et r&eacute;activer les <acronym>ACL</acronym>s peut
r&eacute;affecter les pr&eacute;c&eacute;dentes
<acronym>ACL</acronym>s aux fichiers qui ont depuis e&ucirc;t
leur permissions modifi&eacute;es, avec pour r&eacute;sultat
un comportement impr&eacute;visible.</para>
</note>
<para>Les syst&egrave;mes de fichiers avec les
<acronym>ACL</acronym>s activ&eacute;es pr&eacute;senteront un signe
<literal>+</literal> au niveau de leurs permissions
quand elles seront affich&eacute;es. Par exemple:</para>
<programlisting>drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
<para>Ici nous voyons que les r&eacute;pertoires
<filename>directory1</filename>,
<filename>directory2</filename>, et
<filename>directory3</filename> utilisent les
<acronym>ACL</acronym>s. Ce n'est pas le cas du
r&eacute;pertoire <filename>public_html</filename>.</para>
</sect1>
2002-07-29 19:53:40 +02:00
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
2002-07-29 19:53:40 +02:00
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->