1999-11-10 22:29:15 +01:00
|
|
|
<!--
|
|
|
|
The FreeBSD Documentation Project
|
|
|
|
The FreeBSD French Documentation Project
|
|
|
|
|
|
|
|
$FreeBSD$
|
2003-08-19 15:16:07 +02:00
|
|
|
Original revision: 1.151
|
1999-11-10 22:29:15 +01:00
|
|
|
-->
|
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<chapter id="security">
|
2003-08-19 15:16:07 +02:00
|
|
|
<chapterinfo>
|
|
|
|
<authorgroup>
|
|
|
|
<author>
|
|
|
|
<firstname>Matthew</firstname>
|
|
|
|
<surname>Dillon</surname>
|
|
|
|
<contrib>Une grande partie de ce chapitre provient de la page
|
|
|
|
de manuel security(7) écrite par </contrib>
|
|
|
|
</author>
|
|
|
|
</authorgroup>
|
|
|
|
</chapterinfo>
|
2002-07-29 19:53:40 +02:00
|
|
|
|
2003-08-19 15:16:07 +02:00
|
|
|
<title>Sécurité ** Traduction en Cours **</title>
|
|
|
|
<indexterm><primary>sécurité</primary></indexterm>
|
|
|
|
&trans.a.fonvieille;
|
|
|
|
|
|
|
|
<sect1 id="security-synopsis">
|
2002-07-29 19:53:40 +02:00
|
|
|
<title>Synopsis</title>
|
2003-08-19 15:16:07 +02:00
|
|
|
|
|
|
|
<para>Ce chapitre sera une introduction aux concepts de base de la
|
|
|
|
sécurité système, à certaines
|
|
|
|
règles empiriques, et à
|
|
|
|
des sujets avancés sous &os;. De nombreux sujets
|
|
|
|
abordés ici peuvent être appliqués à
|
|
|
|
la sécurité système et Internet en
|
|
|
|
général.
|
|
|
|
L'Internet n'est plus un endroit “amical”
|
|
|
|
dans lequel chacun désire être votre gentil voisin.
|
|
|
|
Sécuriser votre système est impératif pour
|
|
|
|
protéger vos données, la propriété
|
|
|
|
intellectuelle,
|
|
|
|
votre temps, et bien plus des mains des “hackers” et
|
|
|
|
équivalents.</para>
|
|
|
|
|
|
|
|
<para>&os; fournit un ensemble d'utilitaires et de mécanismes
|
|
|
|
pour assurer l'intégrité et la sécurité
|
|
|
|
de votre système et votre réseau.</para>
|
|
|
|
|
|
|
|
<para>Après la lecture de ce chapitre, vous
|
|
|
|
connaîtrez:</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>Les concepts de base de la sécurité
|
|
|
|
système en ce qui concerne &os;.</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Les différents mé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éutilisable.</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Comment configurer Kerberos, un autre système
|
|
|
|
d'authentification.</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Comment cré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émentée sous &os;.</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Comment configurer et charger les modules d'extension
|
|
|
|
de contrôle d'accè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">
|
2003-08-19 15:16:07 +02:00
|
|
|
<title>Introduction ** Traduction en Cours **</title>
|
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<para></para>
|
|
|
|
</sect1>
|
|
|
|
|
2003-08-19 15:16:07 +02:00
|
|
|
<sect1 id="securing-freebsd">
|
|
|
|
<title>Securing FreeBSD ** Traduction en Cours **</title>
|
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<para></para>
|
|
|
|
</sect1>
|
|
|
|
|
2003-08-19 15:16:07 +02:00
|
|
|
<sect1 id="crypt">
|
|
|
|
<sect1info>
|
|
|
|
<authorgroup>
|
|
|
|
<author>
|
|
|
|
<firstname>Bill</firstname>
|
|
|
|
<surname>Swingle</surname>
|
|
|
|
<contrib>En partie réécrit et mis à jour
|
|
|
|
par </contrib>
|
|
|
|
</author>
|
|
|
|
</authorgroup>
|
|
|
|
<!-- 21 Mar 2000 -->
|
|
|
|
</sect1info>
|
|
|
|
|
|
|
|
<title>DES, MD5, et chiffrement</title>
|
|
|
|
<indexterm>
|
|
|
|
<primary>sécurité</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ème &unix; possède un
|
|
|
|
mot de passe associé à son compte.
|
|
|
|
Il semble évident
|
|
|
|
que ces mots de passe ne doivent être connus que de
|
|
|
|
l'utilisateur et du système d'exploitation. Afin de
|
|
|
|
conserver ces mots de passe secrets, ils sont chiffrés
|
|
|
|
avec ce que l'on appelle un “hachage
|
|
|
|
irréversible”, ce qui signifie que le mot de passe
|
|
|
|
peut être aisément chiffré mais pas
|
|
|
|
déchiffré.
|
|
|
|
En d'autres mots, ce que nous vous disions précédemment
|
|
|
|
n'est même pas vrai: le système d'exploitation
|
|
|
|
lui-même ne connaît pas <emphasis>vraiment</emphasis>
|
|
|
|
le mot de passe. Il ne connaît que la forme
|
|
|
|
<emphasis>chiffrée</emphasis> du mot de passe. La
|
|
|
|
seule maniè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éthode sécurisée
|
|
|
|
pour chiffrer les mots de passe quand &unix; a vu le jour
|
|
|
|
était basée sur DES, le “Data Encryption
|
|
|
|
Standard” (standard de chiffrement des données).
|
|
|
|
C'était un problème mineur pour les utilisateurs
|
|
|
|
résidants aux Etats-Unis, mais puisque le code source
|
|
|
|
de DES ne pouvait être exporté en dehors des Etats-Unis,
|
|
|
|
&os; dû trouver un moyen de respecter la législation
|
|
|
|
américaine et de rester compatible avec les autres
|
|
|
|
systèmes &unix; qui utilisaient encore DES.</para>
|
|
|
|
|
|
|
|
<para>La solution fut de séparer les bibliothèques
|
|
|
|
de chiffrement de façon à ce que les utilisateurs
|
|
|
|
américains puissent installer les bibliothèques DES
|
|
|
|
et utiliser DES, mais que les utilisateurs internationaux
|
|
|
|
disposent d'une méthode de chiffrement non restreinte
|
|
|
|
à l'exportation. C'est comment &os; est venu à
|
|
|
|
utiliser MD5 comme méthode de chiffrement par défaut.
|
|
|
|
MD5 est reconnu comme étant plus sure que DES,
|
|
|
|
l'installation de DES est proposée principalement
|
|
|
|
pour des raisons de compatibilité.</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Identifier votre mécanisme de chiffrement</title>
|
|
|
|
|
|
|
|
<para>Avant FreeBSD 4.4 <filename>libcrypt.a</filename>
|
|
|
|
était un lien symbolique pointant sur la bibliothèque
|
|
|
|
utilisée pour le chiffrement. FreeBSD 4.4 modifia
|
|
|
|
<filename>libcrypt.a</filename> pour fournir une bibliothèque
|
|
|
|
de hachage pour l'authentification des mots de passe
|
|
|
|
configurable. Actuellement la bibliothèque supporte les
|
|
|
|
fonctions de hachage DES, MD5 et Blowfish. Par défaut
|
|
|
|
&os; utilise MD5 pour chiffrer les mots de passe.</para>
|
|
|
|
|
|
|
|
<para>Il est relativement facile d'identifier quelle
|
|
|
|
méthode de chiffrement &os; utilise. Examiner les
|
|
|
|
mots de passe chiffrés dans le fichier
|
|
|
|
<filename>/etc/master.passwd</filename> est une méthode.
|
|
|
|
Les mots de passe MD5 sont plus longs que les mots de passe
|
|
|
|
DES, et commencent par les caractères
|
|
|
|
<literal>$1$</literal>. Les mots de passe
|
|
|
|
débutant par <literal>$2$</literal> sont
|
|
|
|
chiffrés suivant la méthode Blowfish. Les mots de
|
|
|
|
passe DES n'ont pas de caractéristique particulière,
|
|
|
|
mais sont plus courts que les mots de passe MD5 et utilisent
|
|
|
|
un alphabet de 64 caractères qui ne contient pas le
|
|
|
|
caractère <literal>$</literal>, aussi une
|
|
|
|
chaîne relativement courte qui ne commence pas par un dollar
|
|
|
|
a donc de très fortes chances d'être un mot de passe
|
|
|
|
DES.</para>
|
|
|
|
|
|
|
|
<para>Le format utilisé par les nouveaux mots de passe est
|
|
|
|
contrôlé par la capacité 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és de classe de session.</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
|
|
|
<sect1 id="one-time-passwords">
|
|
|
|
<title>Mots de passe non réutilisables</title>
|
|
|
|
<indexterm><primary>mots de passe non réutilisables</primary></indexterm>
|
|
|
|
<indexterm>
|
|
|
|
<primary>sécurité</primary>
|
|
|
|
<secondary>mots de passe non réutilisables</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>S/Key est un système de mots de passe non
|
|
|
|
réutilisables basé sur une fonction de hachage
|
|
|
|
irréversible. &os; utilise le hachage MD4 pour des
|
|
|
|
raisons de compatibilité mais d'autres système
|
|
|
|
utilisent MD5 et DES-MAC. S/Key fait partie du système
|
|
|
|
de base de &os; depuis la version 1.1.5 et est aussi
|
|
|
|
utilisé sur un nombre toujours plus important d'autres
|
|
|
|
systèmes d'exploitation. S/Key est une marque
|
|
|
|
déposée de Bell
|
|
|
|
Communications Research, Inc.</para>
|
|
|
|
|
|
|
|
<para>Depuis la version 5.0 de &os;, S/Key a été
|
|
|
|
remplacé par la fonction équivalente OPIE
|
|
|
|
(“One-time Passwords In Everything” — Mots de
|
|
|
|
passe non réutilisables dans toutes les applications).
|
|
|
|
OPIE utilise le hachage MD5 par dé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 “mot
|
|
|
|
de passe &unix;“. Le deuxième type est le mot de passe
|
|
|
|
généré 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 “mot de passe non
|
|
|
|
réutilisable”. 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énérer des mots de passe non
|
|
|
|
réutilisable; nous l'appellerons “mot de passe
|
|
|
|
secret” ou tout simplement “mot de
|
|
|
|
passe”.</para>
|
|
|
|
|
|
|
|
<para>Le mot de passe secret n'a rien à voir avec
|
|
|
|
votre mot de passe &unix;; ils peuvent être identique,
|
|
|
|
mais c'est déconseillé. Les mots de passe secret
|
|
|
|
S/Key et OPIE ne sont pas limités à 8
|
|
|
|
caractères comme les
|
|
|
|
anciens mots de passe &unix;<footnote><para>Sous &os; le mot de
|
|
|
|
passe standard peut avoir une longueur de 128 caractères
|
|
|
|
maximum.</para></footnote>, ils peuvent avoir la longueur que
|
|
|
|
vous désirez. Des mots de passe de six ou sept mots de long
|
|
|
|
sont relativement communs. La plupart du temps, le système
|
|
|
|
S/Key ou OPIE fonctionne de façon complètement
|
|
|
|
indépendante du système de mot de passe &unix;.</para>
|
|
|
|
|
|
|
|
<para>En plus du mot de passe, deux autres types de données
|
|
|
|
sont importantes pour S/Key et OPIE. L'une d'elles est
|
|
|
|
connue sous le nom de “germe” (“seed”)
|
|
|
|
ou “clé”, formé de deux lettres et
|
|
|
|
cinq chiffres. L'autre est ce que l'on appelle le
|
|
|
|
“compteur d'itérations”, un nombre compris
|
|
|
|
entre 1 et 100. S/Key génère un mot de passe non
|
|
|
|
réutilisable en concaténant le germe et le mot de
|
|
|
|
passe secret, puis en appliquant la fonction de hachage MD4/MD5
|
|
|
|
autant de fois qu'indiqué par le compteur
|
|
|
|
d'itérations, et en convertissant le résultat en
|
|
|
|
six courts mots anglais.
|
|
|
|
Ces six mots anglais constituent votre mot de
|
|
|
|
passe non réutilisable. Le système d'authentification
|
|
|
|
(principalement PAM) conserve une trace du dernier mot de passe
|
|
|
|
non réutilisable utilisé, et l'utilisateur est
|
|
|
|
authentifié si la valeur de hachage du mot de passe fourni par
|
|
|
|
l'utilisateur est la même que celle du mot de passe
|
|
|
|
précédent. Comme le hachage utilisé est
|
|
|
|
irréversible, il est impossible de générer
|
|
|
|
de mot de passe non réutilisable si on a surpris un de
|
|
|
|
ceux qui a été utilisé avec succès; le
|
|
|
|
compteur d'itérations est décrémenté
|
|
|
|
après chaque ouverture de session réussie, de sorte que
|
|
|
|
l'utilisateur et le programme d'ouverture de session restent en
|
|
|
|
phase. Quand le compteur d'itération passe à 1,
|
|
|
|
S/Key et OPIE doivent être
|
|
|
|
réinitialisés.</para>
|
|
|
|
|
|
|
|
<para>Il y a trois programmes impliqués dans chacun des
|
|
|
|
systèmes que nous aborderons plus bas. Les programmes
|
|
|
|
<command>key</command> et <command>opiekey</command> ont pour
|
|
|
|
paramètres un compteur d'itérations, un germe, et un
|
|
|
|
mot de passe secret, et génère un mot
|
|
|
|
de passe non réutilisable ou une liste de mots
|
|
|
|
de passe non réutilisable. Les programmes
|
|
|
|
<command>keyinit</command> et <command>opiepasswd</command>
|
|
|
|
sont utilisés pour initialiser respectivement
|
|
|
|
S/Key et OPIE, et pour modifier les mots de passe, les compteurs
|
|
|
|
d'itérations, ou les germes; ils prennent pour
|
|
|
|
paramètres soit un mot de passe secret, soit un compteur
|
|
|
|
d'itérations, soit un germe, et un mot de passe non
|
|
|
|
ré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érations et le germe de l'utilisateur qui l'a
|
|
|
|
invoqué.</para>
|
|
|
|
|
|
|
|
<para>Nous décrirons quatre sortes d'opérations. La
|
|
|
|
première est l'utilisation du programme
|
|
|
|
<command>keyinit</command> ou <command>opiepasswd</command> sur
|
|
|
|
une connexion sécurisée pour initialiser les mots
|
|
|
|
de passe non réutilisables pour la première
|
|
|
|
fois, ou pour modifier votre mot de passe ou votre germe.
|
|
|
|
La seconde opération est l'emploi des programmes
|
|
|
|
<command>keyinit</command> ou <command>opiepasswd</command>
|
|
|
|
sur une connexion non sécurisée, en conjonction
|
|
|
|
avec <command>key</command> ou <command>opiekey</command> sur
|
|
|
|
une connexion sécurisée, pour faire la même
|
|
|
|
chose. La troisième est l'utilisation de
|
|
|
|
<command>key</command>/<command>opiekey</command> pour ouvrir
|
|
|
|
une session sur une connexion non sécurisée.
|
|
|
|
La quatrième est l'emploi de <command>key</command>
|
|
|
|
ou <command>opiekey</command> pour générer
|
|
|
|
un certain nombre de clés qui peuvent être
|
|
|
|
notées ou imprimées et emportées avec vous
|
|
|
|
quand vous allez quelque part ou il n'y a aucune connexion
|
|
|
|
sécurisée.</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Initialisation depuis une connexion
|
|
|
|
sécurisée</title>
|
|
|
|
|
|
|
|
<para>Pour initialiser S/Key pour la première fois,
|
|
|
|
changer votre mot de passe, ou changer votre germe quand
|
|
|
|
vous êtes attaché sous votre compte par
|
|
|
|
l'intermédiaire d'une connexion sécurisée
|
|
|
|
(e.g., sur la console d'une machine ou via
|
|
|
|
<application>ssh</application>), utilisez la commande
|
|
|
|
<command>keyinit</command> sans paramè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é à 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é pour générer vos clés
|
|
|
|
non réutilisables. La ligne commençant par
|
|
|
|
“ID” liste les paramètres de votre instance:
|
|
|
|
votre nom d'utilisateur, la valeur de votre compteur
|
|
|
|
d'itérations et votre germe. Quand vous ouvrirez une
|
|
|
|
session, le système aura mémorisé ces
|
|
|
|
paramètres et vous les redonnera, vous n'avez donc
|
|
|
|
pas besoin de les retenir. La dernière ligne
|
|
|
|
donne le mot de passe non réutilisable correspondant
|
|
|
|
à ces paramètres et à votre mot de passe secret;
|
|
|
|
si vous devez vous reconnectez immédiatement, c'est ce
|
|
|
|
mot de passe que vous utiliseriez.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Initialisation depuis une connexion non
|
|
|
|
sécurisée</title>
|
|
|
|
|
|
|
|
<para>Pour initialiser ou changer votre mot de passe secret
|
|
|
|
par l'intermédiaire d'une connexion non
|
|
|
|
sécurisée, il faudra avoir déjà
|
|
|
|
une connexion sécurisée sur une machine
|
|
|
|
où vous pouvez exécuter <command>key</command> ou
|
|
|
|
<command>opiekey</command>; ce peut être
|
|
|
|
depuis une icone sur le bureau d'un Macintosh
|
|
|
|
ou depuis la ligne de commande d'une machine sûre.
|
|
|
|
Il vous faudra également donner une valeur au compteur
|
|
|
|
d'itération (100 est probablement une bonne valeur),
|
|
|
|
et indiquer un germe ou utiliser la valeur aléatoire
|
|
|
|
générée par le programme. Sur la connexion non
|
|
|
|
sécurisé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éfaut (que le programme
|
|
|
|
<command>keyinit</command> appelle <literal>key</literal>,
|
|
|
|
ce qui prête à confusion), appuyez sur
|
|
|
|
<keycap>Entrée</keycap>. Ensuite avant d'entrer un mot de
|
|
|
|
passe d'accès, passez sur votre connexion
|
|
|
|
sécurisée et donnez lui les mêmes
|
|
|
|
paramè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><secret password></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écurisée, et copiez le mot de passe
|
|
|
|
non réutilisable généré par le programme
|
|
|
|
adapté.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Générer un unique mot de passe non
|
|
|
|
réutilisable</title>
|
|
|
|
|
|
|
|
<para>Une fois que vous avez initialisé S/Key ou OPIE,
|
|
|
|
lorsque que vous ouvrez une session, une invite de ce type
|
|
|
|
apparaî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><username></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><username></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ée ici): si vous appuyez sur la touche
|
|
|
|
<keycap>Entrée</keycap> lorsque l'on vous demande votre
|
|
|
|
mot de passe, le programme active l'écho au terminal, de
|
|
|
|
sorte que vous voyez ce que vous êtes en train de taper.
|
|
|
|
Ceci est très utile si vous essayez de taper un mot de
|
|
|
|
passe à la main, à partir d'un résultat
|
|
|
|
imprimé 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énérer votre
|
|
|
|
mot de passe non réutilisable pour répondre à
|
|
|
|
cette invite de session. Cela doit être effectué
|
|
|
|
sur une machine de confiance sur laquelle vous pouvez
|
|
|
|
exé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érations et du germe comme
|
|
|
|
paramè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ème sû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éutilisable vous pouvez continuer et vous
|
|
|
|
connecter:</para>
|
|
|
|
|
|
|
|
<screen>login: <userinput><username></userinput>
|
|
|
|
s/key 97 fw13894
|
|
|
|
Password: <userinput><return to enable echo></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énérer de multiples mots de passe
|
|
|
|
non réutilisables</title>
|
|
|
|
|
|
|
|
<para>Il faut parfois se rendre en des endroits où
|
|
|
|
vous n'avez pas accès à une machine de confiance
|
|
|
|
ou à une connexion sécurisée. Dans ce cas, vous
|
|
|
|
pouvez utiliser la commande <command>key</command> ou
|
|
|
|
<command>opiekey</command> pour générer plusieurs
|
|
|
|
mots de passe non ré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><secret password></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><secret password></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és en
|
|
|
|
séquence, l'option <option>30</option> indique quel doit
|
|
|
|
être le rang de la dernière itération. Notez que
|
|
|
|
les clés sont imprimées dans l'ordre
|
|
|
|
<emphasis>inverse</emphasis> de celui où elles seront
|
|
|
|
éventuellement utilisées. Si vous êtes
|
|
|
|
vraiment paranoïaque, vous pouvez les recopier à la main,
|
|
|
|
sinon vous pouvez les copier-coller vers la commande
|
|
|
|
<command>lpr</command>. Remarquez que chaque ligne liste le
|
|
|
|
compteur d'itération et le mot de passe non
|
|
|
|
réutilisable; vous trouverez peut-être utile de rayer les
|
|
|
|
mots de passe au fur et à 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ée par le terminal ou de
|
|
|
|
l'adresse IP de la machine connectée à distance.
|
|
|
|
Ces restrictions peuvent être trouvé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étaille également
|
|
|
|
certains avertissements relatifs à la sécurité
|
|
|
|
qu'il faut lire avant de se fier à ce fichier pour sa
|
|
|
|
sécurité.</para>
|
|
|
|
|
|
|
|
<para>S'il n'y a pas de fichier
|
|
|
|
<filename>/etc/skey.access</filename> (ce qui est le cas par
|
|
|
|
défaut sur les systèmes &os; 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, à moins qu'ils ne soient explicitement
|
|
|
|
autorisés à 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é 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ère ligne (<literal>permit internet</literal>)
|
|
|
|
autorise les utilisateurs dont l'adresse IP (ce qui rend
|
|
|
|
vulnérable en cas d'usurpation) appartient au
|
|
|
|
sous-réseau spécifié à employer les mots
|
|
|
|
de passe &unix;. Cela ne doit pas être
|
|
|
|
considéré comme une mesure de sécurité,
|
|
|
|
mais plutôt comme un moyen de rappeler aux utilisateurs
|
|
|
|
autorisés qu'ils sont sur un réseau non
|
|
|
|
sécurisé et doivent utiliser S/Key pour
|
|
|
|
s'authentifier.</para>
|
|
|
|
|
|
|
|
<para>La seconde ligne (<literal>permit user</literal>)
|
|
|
|
autorise l'utilisateur désigné, dans notre cas
|
|
|
|
<username>fnord</username>, à employer n'importe quand
|
|
|
|
les mots de passe &unix;. En général,
|
|
|
|
il faut se servir de cette possibilité 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éfinitivement réfractaires au
|
|
|
|
système.</para>
|
|
|
|
|
|
|
|
<para>La troisième ligne (<literal>permit port</literal>)
|
|
|
|
autorise tous les utilisateurs d'un terminal sur une liaison
|
|
|
|
particulière à utiliser les mots de passe &unix;;
|
|
|
|
cela devrait être employé pour les connexions
|
|
|
|
télé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é est
|
|
|
|
<filename>/etc/opieaccess</filename>, qui est présent par
|
|
|
|
défaut sous &os; 5.0 et versions suivantes.
|
|
|
|
Veuillez consulter la page de manuel &man.opieaccess.5; pour
|
|
|
|
plus d'information sur ce fichier et certaines
|
|
|
|
considérations sur la sécurité dont vous
|
|
|
|
devez ê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érable en cas d'usurpation) appartient au
|
|
|
|
sous-réseau spécifié à employer les mots
|
|
|
|
de passe &unix; à tout moment.</para>
|
|
|
|
|
|
|
|
<para>Si aucune règle du fichier <filename>opieaccess</filename>
|
|
|
|
ne correspond, le comportement par défaut est de
|
|
|
|
refuser toute ouverture de session non-OPIE.</para>
|
|
|
|
|
|
|
|
</sect2>
|
2002-07-29 19:53:40 +02:00
|
|
|
</sect1>
|
|
|
|
|
|
|
|
<sect1 id="kerberos">
|
2003-08-19 15:16:07 +02:00
|
|
|
<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ée sur une contribution de </contrib>
|
|
|
|
</author>
|
|
|
|
</authorgroup>
|
|
|
|
</sect1info>
|
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<title>Kerberos</title>
|
2003-08-19 15:16:07 +02:00
|
|
|
<indexterm><primary>Kerberos</primary></indexterm>
|
|
|
|
|
|
|
|
<para>Kerberos est un protocole réseau supplémentaire
|
|
|
|
qui permet aux utilisateurs de s'authentifier par
|
|
|
|
l'intermédiaire d'un serveur sécurisé.
|
|
|
|
Des services comme l'ouverture de session et la copie à
|
|
|
|
distance, la copie sécurisée de fichiers entre
|
|
|
|
systèmes et autres fonctionnalités à haut
|
|
|
|
risque deviennent ainsi considérablement plus
|
|
|
|
sûrs et contrôlables.</para>
|
|
|
|
|
|
|
|
<para>Les instructions qui suivent peuvent être
|
|
|
|
utilisées comme guide d'installation de Kerberos dans
|
|
|
|
la version distribuée pour &os;. Vous devriez
|
|
|
|
cependant vous référer aux pages de manuel
|
|
|
|
correspondantes pour avoir une description
|
|
|
|
complè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ère la plus simple d'installer ce logiciel est de
|
|
|
|
sélectionner la distribution <literal>krb4</literal>
|
|
|
|
ou <literal>krb5</literal> dans
|
|
|
|
<application>sysinstall</application> lors de l'installation
|
|
|
|
de &os;. Cela installera les implémentations
|
|
|
|
“eBones” (KerberosIV) ou “Heimdal”
|
|
|
|
(Kerberos5) de Kerberos. Ces implémentations sont
|
|
|
|
distribuées car elles sont développées en dehors
|
|
|
|
des USA ou du Canada et étaient par conséquent
|
|
|
|
disponibles aux utilisateurs hors de ces pays durant
|
|
|
|
l'ère restrictive du contrôle des exportations de
|
|
|
|
code de chiffrement à partir des USA.</para>
|
|
|
|
|
|
|
|
<para>Alternativement, l'implémentation du MIT de
|
|
|
|
Kerberos est disponible dans le catalogue des logiciels
|
|
|
|
portés sous
|
|
|
|
<filename role="package">security/krb5</filename>.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Créer la base de données initiale</title>
|
|
|
|
|
|
|
|
<para>Cela se fait uniquement sur le serveur Kerberos.
|
|
|
|
Vérifiez tout d'abord qu'il ne traîne pas d'anciennes
|
|
|
|
bases Kerberos. Allez dans le ré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ées Kerberos, ou si Kerberos ne tourne pas, effacez
|
|
|
|
simplement les fichiers supplémentaires.</para>
|
|
|
|
|
|
|
|
<para>Vous devez maintenant éditer les fichiers
|
|
|
|
<filename>krb.conf</filename> et <filename>krb.realms</filename>
|
|
|
|
pour dé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
|
|
|
|
éditons ou cré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'être mentionnés. Ils ne sont là que pour
|
|
|
|
montrer comment une machine peut avoir connaissance de
|
|
|
|
plusieurs domaines. Pour plus de simplicité, vous
|
|
|
|
pouvez ne pas les inclure.</para>
|
|
|
|
|
|
|
|
<para>La première ligne indique pour quel domaine cette
|
|
|
|
machine agit. Les autre lignes définissent les autres
|
|
|
|
domaines/machines. Le premier élément sur une ligne
|
|
|
|
est le domaine, le second le nom de la machine qui est le
|
|
|
|
“centre de distribution de clés” 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é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é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'être mentionnés. Ils ne sont là que pour
|
|
|
|
montrer comment une machine peut avoir connaissance de
|
|
|
|
plusieurs domaines. Pour plus de simplicité, vous pouvez
|
|
|
|
ne pas les inclure.</para>
|
|
|
|
|
|
|
|
<para>La première ligne assigne un système
|
|
|
|
<emphasis>particulier</emphasis> au domaine désigné.
|
|
|
|
Les lignes restantes montrent comment affecter par défaut
|
|
|
|
les systèmes d'un sous-domaine DNS particulier à un
|
|
|
|
domaine Kerberos donné.</para>
|
|
|
|
|
|
|
|
<para>Nous sommes maintenant prêt pour la création
|
|
|
|
de la base de données. Il n'y a à le faire que
|
|
|
|
sur le serveur Kerberos (ou Centre de Distribution de
|
|
|
|
Clé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é 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ître chiffré est
|
|
|
|
sauvegardé dans
|
|
|
|
<filename>/etc/kerberosIV/master_key</filename>.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Installer les services</title>
|
|
|
|
|
|
|
|
<para>Il faut ajouter deux entrées (“principals”)
|
|
|
|
à la base de données pour <emphasis>chaque</emphasis>
|
|
|
|
système qui sera sécurisé par Kerberos. Ce
|
|
|
|
sont <literal>kpasswd</literal> et <literal>rcmd</literal>.
|
|
|
|
Ces deux entrées sont définies pour chaque
|
|
|
|
système, chacune de leurs instances se voyant
|
|
|
|
attribuer le nom du système.</para>
|
|
|
|
|
|
|
|
<para>Ces “daemons”,
|
|
|
|
<application>kpasswd</application> et
|
|
|
|
<application>rcmd</application> permettent aux autres
|
|
|
|
systèmes de changer les mots de passe Kerberos et
|
|
|
|
d'exécuter des commandes comme &man.rcp.1;,
|
|
|
|
&man.rlogin.1;, et &man.rsh.1;.</para>
|
|
|
|
|
|
|
|
<para>Ajoutons donc maintenant ces entré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>
|
|
|
|
|
|
|
|
<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
|
|
|
|
|
|
|
|
Principal: passwd, Instance: grunt, kdc_key_ver: 1
|
|
|
|
<prompt>New Password:</prompt> <---- entrez RANDOM ici
|
|
|
|
Verifying password
|
|
|
|
|
|
|
|
<prompt>New Password:</prompt> <---- 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>
|
|
|
|
|
|
|
|
<Not found>, <prompt>Create [y] ?</prompt>
|
|
|
|
|
|
|
|
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
|
|
|
|
<prompt>New Password:</prompt> <---- entrez RANDOM ici
|
|
|
|
Verifying password
|
|
|
|
|
|
|
|
<prompt>New Password:</prompt> <---- 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> <---- ne rien entrer ici permet de quitter le programme</screen>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Créer le fichier des services</title>
|
|
|
|
|
|
|
|
<para>Il faut maintenant extraire les instances qui
|
|
|
|
définissent les services sur chaque machine. Pour cela
|
|
|
|
on utilise la commande <command>ext_srvtab</command>.
|
|
|
|
Cela créera un fichier qui doit être copié
|
|
|
|
ou déplacé <emphasis>par un moyen
|
|
|
|
sûr</emphasis> dans le répertoire
|
|
|
|
<filename>/etc/kerberosIV</filename> de chaque client
|
|
|
|
Kerberos. Ce fichier doit être pré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énère qu'un fichier temporaire
|
|
|
|
qui doit être renommé en <filename>srvtab</filename>
|
|
|
|
pour que tous les serveurs puissent y accéder.
|
|
|
|
Utilisez la commande &man.mv.1; pour l'installer sur le
|
|
|
|
système d'origine:</para>
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
|
|
|
|
|
|
|
|
<para>Si le fichier est destiné à un client, et que
|
|
|
|
le réseau n'est pas considéré comme sûr,
|
|
|
|
alors copiez le fichier
|
|
|
|
<filename><replaceable>client</replaceable>-new-srvtab</filename>
|
|
|
|
sur un support amovible et transportez-le par un moyen
|
|
|
|
physiquement sûr. Assurez-vous de le renommer en
|
|
|
|
<filename>srvtab</filename> dans le ré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ées</title>
|
|
|
|
|
|
|
|
<para>Nous devons maintenant créer des entrées
|
|
|
|
utilisateurs dans la base de données. Tout d'abord
|
|
|
|
créons une entré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>
|
|
|
|
|
|
|
|
<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
|
|
|
|
|
|
|
|
Principal: jane, Instance: , kdc_key_ver: 1
|
|
|
|
<prompt>New Password:</prompt> <---- entrez un mot de passe sûr ici
|
|
|
|
Verifying password
|
|
|
|
|
|
|
|
<prompt>New Password:</prompt> <---- réentrez le mot de passe sûr là
|
|
|
|
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> <---- ne rien entrer ici permet de quitter le programme</screen>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Tester l'ensemble</title>
|
|
|
|
|
|
|
|
<para>Il faut tout d'abord démarrer les “daemons”
|
|
|
|
Kerberos. Notez que si vous avez correctement modifié
|
|
|
|
votre fichier <filename>/etc/rc.conf</filename>, cela se fera
|
|
|
|
automatiquement au redémarrage du système. Ceci
|
|
|
|
n'est nécessaire que sur le serveur Kerberos. Les
|
|
|
|
clients Kerberos récupéreront automatiquement les
|
|
|
|
informations dont ils ont besoin via leur répertoire
|
|
|
|
<filename>/etc/kerberosIV</filename>.</para>
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>kerberos &</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 &</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 “ticket
|
|
|
|
d'entrée” pour l'utilisateur
|
|
|
|
<username>jane</username> que nous avons créé
|
|
|
|
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é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érifier
|
|
|
|
si le “daemon” <application>kpasswd</application>
|
|
|
|
est autorisé à accéder à la base
|
|
|
|
de donné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 à
|
|
|
|
<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éer un identifiant
|
|
|
|
qui est autorisé à utiliser &man.su.1;
|
|
|
|
pour devenir <username>root</username>. Cela se fait en
|
|
|
|
associant une instance <username>root</username> un
|
|
|
|
identificateur (“principal”) de base. En
|
|
|
|
utilisant la commande <command>kdb_edit</command> nous pouvons
|
|
|
|
créer l'entrée <literal>jane.root</literal>
|
|
|
|
dans la base de donné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>
|
|
|
|
|
|
|
|
<Not found>, Create [y] ? y
|
|
|
|
|
|
|
|
Principal: jane, Instance: root, kdc_key_ver: 1
|
|
|
|
<prompt>New Password:</prompt> <---- entrez un mot de passe SUR ici
|
|
|
|
Verifying password
|
|
|
|
|
|
|
|
<prompt>New Password:</prompt> <---- ré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> <--- Laissez une valeur faible!
|
|
|
|
<prompt>Attributes [ 0 ] ?</prompt>
|
|
|
|
Edit O.K.
|
|
|
|
<prompt>Principal name:</prompt> <---- ne rien entrer ici permet de quitter le programme</screen>
|
|
|
|
|
|
|
|
<para>Vérifions maintenant les caractéristiques
|
|
|
|
associé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é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écédent, nous avons
|
|
|
|
créé une entrée principale nommée
|
|
|
|
<literal>jane</literal> avec une instance <literal>root</literal>.
|
|
|
|
Cette entrée reposait sur un utilisateur ayant le même
|
|
|
|
nom que l'entrée principale, c'est ce que fait par
|
|
|
|
défaut Kerberos; une
|
|
|
|
<literal><entrée_principale>.<instance></literal>
|
|
|
|
de la forme
|
|
|
|
<literal><nom_d_utilisateur>.</literal><username>root</username>
|
|
|
|
autorisera <literal><nom_d_utilisateur>.</literal> à
|
|
|
|
utiliser &man.su.1; pour devenir <username>root</username> si
|
|
|
|
le fichier <filename>.klogin</filename> du répertoire
|
|
|
|
personnel de l'utilisateur <username>root</username> est
|
|
|
|
correctement renseigné:</para>
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
|
|
|
|
jane.root@EXAMPLE.COM</screen>
|
|
|
|
|
|
|
|
<para>De même, si un utilisateur a dans son répertoire des
|
|
|
|
lignes de la forme:</para>
|
|
|
|
|
|
|
|
<screen>&prompt.user; <userinput>cat ~/.klogin</userinput>
|
|
|
|
jane@EXAMPLE.COM
|
|
|
|
jack@EXAMPLE.COM</screen>
|
|
|
|
|
|
|
|
<para>Cela permet à quiconque dans le domaine
|
|
|
|
<literal>EXAMPLE.COM</literal> s'étant authentifié
|
|
|
|
en tant que <username>jane</username> ou
|
|
|
|
<username>jack</username> (via <command>kinit</command>, voir
|
|
|
|
plus haut) d'accéder avec &man.rlogin.1; au compte de
|
|
|
|
<username>jane</username> ou à ses fichiers sur le
|
|
|
|
systè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è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ême machine
|
|
|
|
(<username>jane</username> ayant modifié son fichier
|
|
|
|
<filename>.klogin</filename> comme décrit plus haut, et la
|
|
|
|
personne an charge de Kerberos ayant défini une entré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>
|
2003-08-19 15:16:07 +02:00
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<sect1 id="firewalls">
|
2003-08-19 15:16:07 +02:00
|
|
|
<title>Firewalls ** Traduction en Cours **</title>
|
|
|
|
|
2002-07-29 19:53:40 +02:00
|
|
|
<para></para>
|
|
|
|
</sect1>
|
|
|
|
|
|
|
|
<sect1 id="openssl">
|
|
|
|
<title>OpenSSL</title>
|
2003-08-19 15:16:07 +02:00
|
|
|
<indexterm>
|
|
|
|
<primary>sécurité</primary>
|
|
|
|
<secondary>OpenSSL</secondary>
|
|
|
|
</indexterm>
|
|
|
|
<indexterm><primary>OpenSSL</primary></indexterm>
|
|
|
|
|
|
|
|
<para>Depuis FreeBSD 4.0, la bibliothèque OpenSSL fait
|
|
|
|
partie du système de base. <ulink
|
|
|
|
url="http://www.openssl.org/">OpenSSL</ulink> fournit une
|
|
|
|
bibliothèque de chiffrement d'usage général,
|
|
|
|
ainsi que les protocoles de sécurité ré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écisément
|
|
|
|
IDEA) inclus dans OpenSSL est protégé 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é par défaut. Si vous dé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égé par un brevet
|
|
|
|
dans le passé.</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 à la
|
|
|
|
section <link linkend="mirrors">Se procurer FreeBSD</link> pour
|
|
|
|
savoir comment se procurer et mettre à jour le code
|
|
|
|
source de &os;.<para>
|
|
|
|
</sect2>
|
2002-07-29 19:53:40 +02:00
|
|
|
</sect1>
|
|
|
|
|
|
|
|
<sect1 id="ipsec">
|
2003-08-19 15:16:07 +02:00
|
|
|
<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>
|
2003-08-19 15:16:07 +02:00
|
|
|
<indexterm><primary>IPsec</primary></indexterm>
|
|
|
|
<indexterm>
|
|
|
|
<primary>sécurité</primary>
|
|
|
|
<secondary>IPsec</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<note>
|
|
|
|
<title>Caractères de terminaison</title>
|
|
|
|
<para>Dans tous les exemples de cette section, et d'autres
|
|
|
|
sections, vous remarquerez qu'il y aura un “^D”
|
|
|
|
à la fin de certains exemples. Cela signifie qu'il faut
|
|
|
|
maintenir la touche <keycap>Ctrl</keycap> enfoncée
|
|
|
|
et appuyer sur la touche <keycap>D</keycap>. Un autre
|
|
|
|
caractère couramment utilisé est “^C”,
|
|
|
|
qui signifie de maintenir enfoncé la touche
|
|
|
|
<keycap>Ctrl</keycap> et d'appuyer sur
|
|
|
|
<keycap>C</keycap>.</para>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<tip>
|
|
|
|
<para>Pour d'autres documents détaillant
|
|
|
|
l'implémentation d'IPsec, jetez un oeil à
|
|
|
|
<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écanisme IPsec fournit des communications
|
|
|
|
sécurisées sur couche IP ou à travers les
|
|
|
|
<emphasis>sockets</emphasis>. Cette section explique comment
|
|
|
|
l'utiliser. Pour des détails concernant
|
|
|
|
l'implémentation d'IPsec, reportez-vous au
|
|
|
|
<ulink url="../developers-handbook/ipv6.html">Manuel du
|
|
|
|
développeur</ulink>.</para>
|
|
|
|
|
|
|
|
<para>L'implé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é que pour utiliser cette fonctionnalité,
|
|
|
|
vous devez avoir les options suivantes pré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écurité
|
|
|
|
pour déployer un canal sécurisé 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é. De A vers B, nous n'utilisons que
|
|
|
|
l'ancien AH. De B vers A, le nouvel AH et le nouvel ESP sont
|
|
|
|
combinés.</para>
|
|
|
|
|
|
|
|
<para>Nous devons maintenant choisir les algorithmes
|
|
|
|
correspondant à
|
|
|
|
“AH”/“nouvel AH”/“ESP”/
|
|
|
|
“nouvel ESP”. Reportez-vous à la page de manuel
|
|
|
|
&man.setkey.8; pour connaî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é dépend de chaque algorithme.
|
|
|
|
Par exemple, elle doit être égale à 16 octets
|
|
|
|
pour MD5, 20 pour new-HMAC-SHA1, et 8 pour new-DES-expIV.
|
|
|
|
Nous choisissons maintenant “MYSECRETMYSECRET”,
|
|
|
|
“KAMEKAMEKAMEKAMEKAME”, “PASSWORD”,
|
|
|
|
respectivement.</para>
|
|
|
|
|
|
|
|
<para>Définissons maintenant le SPI (<emphasis>Security Parameter
|
|
|
|
Index</emphasis>) pour chaque protocole. Remarquez qu'il nous
|
|
|
|
faut 3 SPIs pour ce canal sécurisé puisqu'il y aura
|
|
|
|
trois entêtes de sécurité (une de la Machine A vers la
|
|
|
|
Machine B et deux de la Machine B vers la Machine A). Notez
|
|
|
|
également que les SPIs doivent être supérieurs
|
|
|
|
à 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éfinissons l'association de
|
|
|
|
sécurité. Exé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ées de politique de sécurité
|
|
|
|
ne soient définies. Dans notre cas, il faut le faire sur les
|
|
|
|
deux machines.</para>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
Côté 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ôté 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é pour le
|
|
|
|
port TCP numé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é “kamekame”, et l'algorithme
|
|
|
|
d'authentification est hmac-sha1 avec la clé
|
|
|
|
“this is the test key”. Configuration de la
|
|
|
|
Machine-A:</para>
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>setkey -c <<<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 <<<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écurité</para>
|
|
|
|
|
|
|
|
<para>Le protocole de sécurité est l'ancien mode
|
|
|
|
tunnel AH, i.e. spécifié par la RFC1826,
|
|
|
|
avec keyed-md5 comme algorithme d'authentification
|
|
|
|
et “this is the test” comme clé.</para>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
======= AH =======
|
|
|
|
| |
|
|
|
|
Réseau-A Passerelle-A Passerelle-B Ré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 <<<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éro de port n'est pas précisé
|
|
|
|
comme ci-dessus, alors <literal>[any]</literal> est
|
|
|
|
utilisé. <literal>-m</literal> définit le mode
|
|
|
|
de SA à utiliser. <literal>-m any</literal> signifie
|
|
|
|
tout mode de protocole de sécurité. Vous
|
|
|
|
pouvez utiliser cette SA à la fois en mode transport
|
|
|
|
et en mode tunnel.</para>
|
|
|
|
|
|
|
|
<para>et de la Passerelle-B:</para>
|
|
|
|
|
|
|
|
<screen>&prompt.root; <userinput>setkey -c <<<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ée entre deux passerelles
|
|
|
|
de sécurité</para>
|
|
|
|
|
|
|
|
<para>On dé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éseau-A Passerelle-A Passerelle-B Ré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 <<<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érentes
|
|
|
|
extrémités</para>
|
|
|
|
|
|
|
|
<para>On dé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é 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 <<<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">
|
2003-08-19 15:16:07 +02:00
|
|
|
<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>
|
2003-08-19 15:16:07 +02:00
|
|
|
<indexterm><primary>OpenSSH</primary></indexterm>
|
|
|
|
<indexterm>
|
|
|
|
<primary>sécurité</primary>
|
|
|
|
<secondary>OpenSSH</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para><application>OpenSSH</application> est un ensemble d'outils
|
|
|
|
de connexion réseau utilisés pour
|
|
|
|
accéder à des machines
|
|
|
|
distantes de façon sécurisé. Ils peuvent
|
|
|
|
être utilisé comme remplaçants directs de
|
|
|
|
<command>rlogin</command>, <command>rsh</command>,
|
|
|
|
<command>rcp</command>, et <command>telnet</command>.
|
|
|
|
De plus, <application>OpenSSH</application> peut
|
|
|
|
sécuriser n'importe quelle connexion
|
|
|
|
TCP/IP via un tunnel. <application>OpenSSH</application>
|
|
|
|
chiffre tout le trafic de façon
|
|
|
|
à déjouer les écoutes réseau, les
|
|
|
|
prises de contrôle de connexion, et aux attaques au niveau
|
|
|
|
du réseau.</para>
|
|
|
|
|
|
|
|
<para><application>OpenSSH</application> est maintenu par le
|
|
|
|
projet OpenBSD, et est basé sur SSH v1.2.12 avec tous les
|
|
|
|
récentes corrections et mises à jour. Il est
|
|
|
|
compatible avec les protocoles SSH 1 et 2.
|
|
|
|
<application>OpenSSH</application> est présent dans le
|
|
|
|
système de base depuis &os; 4.0.</para>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Les avantages à utiliser OpenSSH</title>
|
|
|
|
|
|
|
|
<para>Normalement, quand on utilise &man.telnet.1; ou
|
|
|
|
&man.rlogin.1;, les données sont envoyées sur le
|
|
|
|
réseau en clair, sous forme non chiffrée.
|
|
|
|
Des “renifleurs de paquets” placés
|
|
|
|
n'importe où entre le client et le serveur peuvent
|
|
|
|
prendre connaissance de votre nom d'utilisateur, de votre mot
|
|
|
|
de passe et des données transmises lors de votre session.
|
|
|
|
<application>OpenSSH</application> offre une
|
|
|
|
variété de méthodes d'authentification et
|
|
|
|
de chiffrage pour éviter ce genre de
|
|
|
|
problème.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Activer sshd</title>
|
|
|
|
<indexterm>
|
|
|
|
<primary>OpenSSH</primary>
|
|
|
|
<secondary>activation</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>Assurez-vous d'ajouter la ligne suivante à
|
|
|
|
votre fichier <filename>rc.conf</filename>:</para>
|
|
|
|
|
|
|
|
<screen>sshd_enable="YES"</screen>
|
|
|
|
|
|
|
|
<para>Cela chargera le “daemon”
|
|
|
|
<application>ssh</application> à l'initialisation suivante
|
|
|
|
du système. Alternativement, vous pouvez tout simplement
|
|
|
|
exécuter le “daemon”
|
|
|
|
<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ême
|
|
|
|
maniè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ée par &man.rlogin.1; ou &man.telnet.1;.
|
|
|
|
Le système SSH utilise un système d'empreinte
|
|
|
|
de clé pour vérifier l'authenticité du
|
|
|
|
serveur quand le client se connecte. L'utilisateur est
|
|
|
|
invité à entrer <literal>yes</literal> uniquement
|
|
|
|
à la première connexion. Lors des futures
|
|
|
|
connexions, l'empreinte de la clé sauvegardé est
|
|
|
|
vérifiée. Le client SSH vous avertira si
|
|
|
|
l'empreinte sauvée diffère de l'empreinte
|
|
|
|
reçue lors de futures tentatives
|
|
|
|
de connexion. Les empreintes sont sauvé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éfaut, les serveurs
|
|
|
|
<application>OpenSSH</application> sont
|
|
|
|
configuré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 être plus
|
|
|
|
robuste et plus sécurisé que son
|
|
|
|
prédécesseur.</para>
|
|
|
|
|
|
|
|
<para><command>ssh</command> peut être forcé à
|
|
|
|
utilisé 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écurisée</title>
|
|
|
|
<indexterm>
|
|
|
|
<primary>OpenSSH</primary>
|
|
|
|
<secondary>copie sécurisée</secondary>
|
|
|
|
</indexterm>
|
|
|
|
<indexterm><primary><command>scp</command></primary></indexterm>
|
|
|
|
|
|
|
|
<para>La commande &man.scp.1; fonctionne de la même
|
|
|
|
manière que &man.rcp.1;; elle copie un fichier vers ou
|
|
|
|
à partir d'une machine distante à la
|
|
|
|
différence qu'elle le fait
|
|
|
|
d'une façon sécurisé.</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éjà été
|
|
|
|
sauvée pour cette machine dans l'exemple
|
|
|
|
précédent, cela se vérifie ici quand on utilise
|
|
|
|
&man.scp.1;.</para>
|
|
|
|
|
|
|
|
<para>Les arguments passés à &man.scp.1; sont
|
|
|
|
similaires à ceux de &man.cp.1;, avec le ou les fichiers
|
|
|
|
en premier argument, et la destination en second.
|
|
|
|
Puisque que le fichier est copié via le réseau, par
|
|
|
|
l'intermédiaire de SSH, un ou plusieurs des arguments
|
|
|
|
prennent la forme
|
|
|
|
<option>utilisateur@machine_distante:<chemin_du_fichier></option>.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Configuration</title>
|
|
|
|
<indexterm>
|
|
|
|
<primary>OpenSSH</primary>
|
|
|
|
<secondary>configuration</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>Les fichiers de configuration général au
|
|
|
|
système pour le “daemon” et le client
|
|
|
|
<application>OpenSSH</application> résident dans le
|
|
|
|
répertoire <filename>/etc/ssh</filename>.</para>
|
|
|
|
|
|
|
|
<para><filename>ssh_config</filename> permet de paramétrer
|
|
|
|
le client, tandis que <filename>sshd_config</filename>
|
|
|
|
s'occupe de la configuration du “daemon”.</para>
|
|
|
|
|
|
|
|
<para>De plus, les options <option>sshd_program</option>
|
|
|
|
(<filename>/usr/sbin/sshd</filename> par défaut),
|
|
|
|
et <option>sshd_flags</option> du fichier
|
|
|
|
<filename>rc.conf</filename> peut fournir un niveau
|
|
|
|
supplémentaire de configuration.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>ssh-keygen</title>
|
|
|
|
|
|
|
|
<para>Au lieu d'utiliser des mots de passe, &man.ssh-keygen.1;
|
|
|
|
peut être employé pour générer des
|
|
|
|
clé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éera une paire de clés
|
|
|
|
publique et privée à utiliser pour l'authentification.
|
|
|
|
La clé privée est stockée dans le fichier
|
|
|
|
<filename>~/.ssh/identity</filename>, alors que la clé
|
|
|
|
publique l'est dans le fichier
|
|
|
|
<filename>~/.ssh/identity.pub</filename>. La clé
|
|
|
|
publique doit être placé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 à la place des
|
|
|
|
mots de passe.</para>
|
|
|
|
|
|
|
|
<note><para>L'option <option>-t rsa1</option> créera des
|
|
|
|
clés RSA pour le protocole SSH 1. Si vous désirez
|
|
|
|
utiliser des clé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ée
|
|
|
|
avec &man.ssh-keygen.1;, l'utilisateur se verra demandé
|
|
|
|
d'entrer un mot de passe à chaque utilisation de la clé
|
|
|
|
privé.</para>
|
|
|
|
|
|
|
|
<para>Une clé DSA SSH protocole 2 peut être
|
|
|
|
créée pour le même objectif en utilisant
|
|
|
|
la commande <command>ssh-keygen -t dsa</command>.
|
|
|
|
Cela créera une paire de clés DSA pour les sessions
|
|
|
|
SSH utilisant le protocole 2. La clé publique est
|
|
|
|
conservée dans <filename>~/.ssh/id_dsa.pub</filename>,
|
|
|
|
tandis que la clé publique se trouve dans
|
|
|
|
<filename>~/.ssh/id_dsa</filename>.</para>
|
|
|
|
|
|
|
|
<para>Les clés publiques DSA sont placé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és pour la gestion de multiples clés
|
|
|
|
privées protégées par mots de passe.</para>
|
|
|
|
|
|
|
|
<warning><para>Les divers fichiers et options peuvent être
|
|
|
|
différents selon la version
|
|
|
|
d'<application>OpenSSH</application> dont vous disposez,
|
|
|
|
pour éviter les problè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é de créer un tunnel
|
|
|
|
pour encapsuler un autre protocole dans une session
|
|
|
|
chiffrée.</para>
|
|
|
|
|
|
|
|
<para>La commande suivante demande à &man.ssh.1; de
|
|
|
|
cré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ée avec
|
|
|
|
les options suivantes:</para>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>-2</option></term>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Force <command>ssh</command> à utiliser la
|
|
|
|
version du protocole (à ne pas utiliser si vous
|
|
|
|
travaillez avec de vieux serveurs SSH).</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>-N</option></term>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>N'exécute aucune commande à 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> à s'exécuter
|
|
|
|
en arrière-plan.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>-L</option></term>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Spécifie un tunnel local de la maniè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âce à
|
|
|
|
l'allocation d'une “socket” qui écoute
|
|
|
|
sur le port spécifié de la machine
|
|
|
|
<hostid>localhost</hostid>.
|
|
|
|
Il transfère ensuite toute connexion reçue sur la/le
|
|
|
|
machine/port local(e) via la connexion SSH vers la machine et
|
|
|
|
le port distants spécifiés.</para>
|
|
|
|
|
|
|
|
<para>Dans l'exemple, le port <replaceable>5023</replaceable>
|
|
|
|
sur la machine locale transfè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éerai
|
|
|
|
une session <application>telnet</application>
|
|
|
|
sécurisée par l'intermédiaire
|
|
|
|
d'un tunnel SSH.</para>
|
|
|
|
|
|
|
|
<para>Cela peut être utilisé pour
|
|
|
|
encapsuler n'importe quel nombre de protocoles TCP non
|
|
|
|
sécurisé comme SMTP, POP3, FTP, etc.</para>
|
|
|
|
|
|
|
|
<example>
|
|
|
|
<title>Utiliser SSH pour créer un tunnel
|
|
|
|
sécurisé 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 être utilisé en conjonction
|
|
|
|
avec &man.ssh-keygen.1; et des comptes utilisateurs
|
|
|
|
supplémentaires pour la création et l'accès au
|
|
|
|
tunnel SSH sans trop de problème.
|
|
|
|
Des clés peuvent être utilisées à
|
|
|
|
la place de la saisie d'un mot de passe, et les tunnels
|
|
|
|
peuvent être exécutés sous un
|
|
|
|
utilisateur séparé.</para>
|
|
|
|
</example>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Exemples pratiques de tunnels SSH</title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Accès sécurisé à un serveur POP3</title>
|
|
|
|
|
|
|
|
<para>Au travail, il y a un serveur SSH qui accepte les
|
|
|
|
connexions de l'extérieur. Sur le même réseau
|
|
|
|
d'entreprise réside un serveur de courrier
|
|
|
|
électronique faisant fonctionner un serveur POP3.
|
|
|
|
Le réseau ou le chemin entre chez vous et le bureau
|
|
|
|
peut ou peut ne pas être complètement sûr.
|
|
|
|
Pour cette raison, vous devez récupérer votre
|
|
|
|
courrier électronique d'une façon
|
|
|
|
sécurisée.
|
|
|
|
La solution est de cré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é et fonctionne,
|
|
|
|
vous pouvez demander à votre client de courrier
|
|
|
|
électronique d'envoyer ses requêtes POP3 sur le
|
|
|
|
port 2110 de la machine locale: <hostid>localhost</hostid>.
|
|
|
|
Les connexions seront tranférées de façon
|
|
|
|
sécurisé à travers le tunnel jusqu'à
|
|
|
|
<hostid>mail.example.com</hostid>.</para>
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Passer à travers un coupe-feu restrictif</title>
|
|
|
|
|
|
|
|
<para>Certains administrateurs réseau imposent
|
|
|
|
des règles draconiènes au niveau du coupe-feu,
|
|
|
|
filtrant non seulement les connexions entrantes,
|
|
|
|
mais également les connexions sortantes. Il se
|
|
|
|
peut que vous n'ayez accès qu'aux ports 22 et 80
|
|
|
|
de machines distantes pour SSH ou la navigation
|
|
|
|
Internet.</para>
|
|
|
|
|
|
|
|
<para>Vous pouvez vouloir accéder à un autre
|
|
|
|
(n'ayant peut-être aucun rapport avec votre travail)
|
|
|
|
service, comme un serveur Ogg Vorbis pour écouter
|
|
|
|
de la musique. Si le serveur Ogg Vorbis diffuse
|
|
|
|
(“streaming”) ses données
|
|
|
|
à partir d'un port différent
|
|
|
|
des ports 22 ou 80, vous ne serez alors pas en mesure d'y
|
|
|
|
accéder.</para>
|
|
|
|
|
|
|
|
<para>La solution est de créer une connexion SSH
|
|
|
|
vers une machine à l'extérieur du
|
|
|
|
réseau protégé
|
|
|
|
par le coupe-feu, et l'utiliser pour cré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écupération du flux de
|
|
|
|
données sur le port 8888
|
|
|
|
de la machine locale, qui sera transféré
|
|
|
|
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é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">
|
2003-08-19 15:16:07 +02:00
|
|
|
<title>Mandatory Access Control (MAC) ** Traduction en Cours **</title>
|
|
|
|
|
2003-06-09 15:41:32 +02:00
|
|
|
<para></para>
|
|
|
|
</sect1>
|
|
|
|
|
2003-08-19 15:16:07 +02:00
|
|
|
<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ôle d'accès au système de
|
|
|
|
fichiers</title>
|
|
|
|
|
|
|
|
<para>Avec les améliorations des systèmes de fichiers
|
|
|
|
comme les “snapshots”, FreeBSD 5.0 et versions
|
|
|
|
suivantes offrent une nouveauté en matière de
|
|
|
|
sécurité: les listes de contrôle d'accès
|
|
|
|
au système de fichiers (<acronym>ACL</acronym>s -
|
|
|
|
“Access Control Lists”).</para>
|
|
|
|
|
|
|
|
<para>Les listes de contrôle d'accès étendent
|
|
|
|
le système de permission standard d'UNIX d'une manière
|
|
|
|
hautement compatible (POSIX.1e). Cette caractéristique
|
|
|
|
permet à un administrateur d'utiliser avantageusement
|
|
|
|
un modèle de sécurité plus
|
|
|
|
sophistiqué.</para>
|
|
|
|
|
|
|
|
<para>Pour activer le support <acronym>ACL</acronym> pour les
|
|
|
|
systèmes de fichiers <acronym>UFS</acronym>, ce qui
|
|
|
|
suit:</para>
|
|
|
|
|
|
|
|
<programlisting>options UFS_ACL</programlisting>
|
|
|
|
|
|
|
|
<para>doit être compilé dans le noyau. Si cette option
|
|
|
|
n'a pas été ajoutée, un avertissement sera
|
|
|
|
affiché lors d'une tentative de montage d'un système
|
|
|
|
de fichiers supportant les <acronym>ACL</acronym>s.
|
|
|
|
Cette option est présente dans le noyau
|
|
|
|
<filename>GENERIC</filename>. Les <acronym>ACL</acronym>s
|
|
|
|
reposent sur des attributs étendus rajoutés
|
|
|
|
au système de fichiers. Les attributs étendus sont
|
|
|
|
nativement supportés par la prochaine
|
|
|
|
génération du système de fichiers UNIX,
|
|
|
|
<acronym>UFS2</acronym>.</para>
|
|
|
|
|
|
|
|
<note>
|
|
|
|
<para>Un supplément de travail d'administration est requis
|
|
|
|
pour configurer les attributs étendus sous
|
|
|
|
<acronym>UFS1</acronym> par rapport à
|
|
|
|
<acronym>UFS2</acronym>. Les performances des attributs
|
|
|
|
étendus sous <acronym>UFS2</acronym> sont sensiblement
|
|
|
|
meilleures également. Il en résulte donc, que
|
|
|
|
l'<acronym>UFS2</acronym> est généralement
|
|
|
|
récommandé par rapport à
|
|
|
|
l'<acronym>UFS1</acronym> pour une utilisation des listes
|
|
|
|
de contôle d'accès.</para>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<para>Les <acronym>ACL</acronym>s sont activés grâce
|
|
|
|
l'option utilisée lors du montage, <option>acls</option>,
|
|
|
|
qui peut être ajouté dans le fichier
|
|
|
|
<filename>/etc/fstab</filename>. Cette option de montage peut
|
|
|
|
être également automatiquement fixée
|
|
|
|
d'une manière définitive en utilisant &man.tunefs.8;
|
|
|
|
pour modifier l'indicateur <acronym>ACL</acronym> du
|
|
|
|
“superblock” dans l'entête du système de
|
|
|
|
fichiers. Il est en général préférable
|
|
|
|
d'utiliser cet indicateur pour plusieurs raisons:</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>L'option de montage pour les <acronym>ACL</acronym>s ne
|
|
|
|
peut être modifié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
|
|
|
|
être activées sur le système de fichiers
|
|
|
|
racine après le démarrage. Cela signifie
|
|
|
|
également que vous ne pouvez pas modifier la
|
|
|
|
disposition d'un système de fichier une fois que
|
|
|
|
c'est activé.</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>Positionner l'indicateur du “superblock”
|
|
|
|
fera que le système de fichiers sera toujours monté
|
|
|
|
avec les <acronym>ACL</acronym>s activées même
|
|
|
|
s'il n'y a pas d'entrée dans le fichier
|
|
|
|
<filename>fstab</filename>, ou s'il y a une réorganisation
|
|
|
|
des périphériques. Cela prévient
|
|
|
|
le montage accidentel du système de fichiers sans les
|
|
|
|
<acronym>ACL</acronym>s activées, ce qui peut provoquer
|
|
|
|
une activation impropre des <acronym>ACL</acronym>s et
|
|
|
|
par conséquent des problèmes de
|
|
|
|
sécurité.</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éférable
|
|
|
|
d'éviter un montage accidentel sans les
|
|
|
|
<acronym>ACL</acronym>s activées, parce que vous pouvez
|
|
|
|
vous “tirer facilement dans les pieds”
|
|
|
|
si vous activez les <acronym>ACL</acronym>s, puis
|
|
|
|
les désactivez, et ensuite les réactivez à
|
|
|
|
nouveau sans réinitialiser les attributs étendus.
|
|
|
|
En général, une fois que vous avez activé
|
|
|
|
les <acronym>ACL</acronym>s sur un système de fichiers,
|
|
|
|
elles ne devraient pas être désactivées
|
|
|
|
étant donné que les protections de fichiers
|
|
|
|
résultantes peuvent ne pas être compatible avec
|
|
|
|
celles prévues par les utilisateurs du système,
|
|
|
|
et réactiver les <acronym>ACL</acronym>s peut
|
|
|
|
réaffecter les précédentes
|
|
|
|
<acronym>ACL</acronym>s aux fichiers qui ont depuis eût
|
|
|
|
leur permissions modifiées, avec pour résultat
|
|
|
|
un comportement imprévisible.</para>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<para>Les systèmes de fichiers avec les
|
|
|
|
<acronym>ACL</acronym>s activées présenteront un signe
|
|
|
|
<literal>+</literal> au niveau de leurs permissions
|
|
|
|
quand elles seront affiché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é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épertoire <filename>public_html</filename>.</para>
|
|
|
|
</sect1>
|
2002-07-29 19:53:40 +02:00
|
|
|
</chapter>
|
|
|
|
|
2003-08-19 15:16:07 +02:00
|
|
|
<!--
|
1999-11-10 22:29:15 +01:00
|
|
|
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:
|
|
|
|
-->
|
2003-08-19 15:16:07 +02:00
|
|
|
|