diff options
Diffstat (limited to 'fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml')
-rwxr-xr-x | fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml | 1894 |
1 files changed, 0 insertions, 1894 deletions
diff --git a/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml deleted file mode 100755 index 3198d08340..0000000000 --- a/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml +++ /dev/null @@ -1,1894 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - - <chapter> - <title>Sécurité</title> - &trans.a.haby; - - <sect1 id="crypt"> - <title>DES, MD5, et Crypt</title> - - <para><emphasis>Contribution de &a.wollman;<!-- <br> -->24 Septembre - 1995.</emphasis></para> - - <para>Pour éviter que les mots de passe ne soient facilement accessibles - sur les systèmes UN*X, ils ont traditionnellement été brouillés - d'une façon ou d'une autre. Depuis la Septième Edition d'Unix de - Bell Labs', les mots de passe ont été codés avec ce que les - spécialistes de la sécurité appellent - “un hachage irréversible”. Ce qui signifie que le mot de - passe est transformé de telle sorte qu'une fois encodé, il ne puisse - être décodé, sinon par la force, en parcourant l'éventail de toutes - les possibilités. Malheureusement, la seule méthode accessible aux - chercheurs d'AT&T était basée sur DES, le “Data Encryption - Standard” (standard de cryptage des données). C'est un problème - mineur pour les distributeurs de logiciels commerciaux, mais un - obstacle sérieux pour un système d'exploitation comme FreeBSD, dont - tout le code source est accessible librement, parce que, dans de - nombreux pays, l'exportation de DES et d'autres logiciels de - cryptage est restreinte.</para> - - <para>L'équipe de développement de FreeBSD s'est donc retrouvée face - au dilemme suivant: comment rester compatible avec les autres - systèmes Unix sans enfreindre la législation. Nous avons donc - décidé d'une double approche: avoir une distribution qui ne - comporte que du logiciel de hachage des mots de passe non restreint - à l'exportation, et fournir une bibliothèque séparée pour le DES. - L'algorithme de codage a été extrait de la bibliothèque C et - déplacé dans une bibliothèque séparée appelée - <filename>libcrypt</filename>, du nom de la fonction C - <function>crypt</function> qui l'implémente. Dans FreeBSD 1.x - et quelques instantanés de pré-versions 2.0, l'algorithme librement - exportable utilise une fonction non sécurisée due à Nate Williams; - dans les versions ultérieures, il a été remplacé par la fonction - de hachage irréversible MD5 de RSA Data Security, Inc. Comme aucune - de ces fonctions n'utilise de technique de cryptage, elles sont - supposées librement exportables des Etats-Unis et importables dans - de nombreux autres pays.</para> - - <para>Dans le même temps, nous avons aussi travaillé sur une fonction - basée sur le cryptage DES. Tout d'abord, une version de la fonction - <function>crypt</function> écrite en dehors des Etats-Unis a été - importée, pour synchroniser le code américain et celui du reste du - monde. Puis la bibliothèque a été modifiée et coupée en deux; la - bibliothèque <filename>libcrypt</filename> DES ne contient que le - code de hachage irréversible des mots de passe, et une deuxième - bibliothèque <filename>libcipher</filename> contient les points - d'entrée vers le code effectuant le cryptage. Le code a - été découpé de cette façon pour obtenir plus facilement la licence - d'exportation pour la bibliothèque compilée.</para> - - <sect2> - <title>Identifier votre mécanisme <command>crypt</command></title> - - <para>Il est assez facile de savoir si un mot de passe a été codé - avec un algorithme basé sur DES ou sur MD5. Les mots de passe MD5 - commencent toujours par les caractères - <literal>$1$</literal>. - 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>, une chaîne relativement courte qui ne - commence pas par un “<literal>$</literal>” a donc - de très fortes chances d'être un mot de passe DES.</para> - - <para>Savoir quelle bibliothèque est utilisée sur votre système est - aussi facile pour la plupart des programmes, sauf pour ceux qui, - comme <command>init</command> sont liés statiquement. (Pour ces - programmes, il n'y a qu'un moyen: les utiliser avec un mot de passe - connu et voir si cela marche.) Les programmes qui utilisent la - fonction <function>crypt</function> sont liés avec la bibliothèque - <filename>libcrypt</filename>, qui pour chaque type de codage, - est un lien symbolique vers l'implémentation adéquate. Par exemple, - sur un système utilisant la version DES:</para> - - - <informalexample> - <screen>&prompt.user;<userinput> cd /usr/lib</userinput> -&prompt.user; <userinput>ls -l /usr/lib/libcrypt*</userinput> -lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a -lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0 -lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a</screen> - </informalexample> - - - <para>Sur un système utilisant les biblothèques basées sur le MD5, - on trouvera les mêmes liens, mais ils pointeront sur - <filename>libscrypt</filename> au lieu de - <filename>libdescrypt</filename>.</para> - - </sect2> - </sect1> - - <sect1 id="skey"> - <title>S/Key</title> - - <para><emphasis>Contribution de &a.wollman;<!-- <br> -->25 Septembre - 1995.</emphasis></para> - - <para>S/Key est un système de mots de passe non réutilisables basé sur - une fonction de hachage irréversible (notre version est basée sur - MD4 pour des raisons de compatibilité; d'autres versions utilisent - MD5 et DES-MAC). S/Key est inclus en standard dans toutes les - distributions de FreeBSD depuis la version 1.1.5, et est aussi - implémenté sur un nombre toujours plus important d'autres systèmes. - S/Key est une marque déposée de Bell Communications Research, - Inc.</para> - - <para>Il y a trois types de mots de passe différents dont nous - parlerons dans ce qui suit. Le premier est votre mot de passe - Unix habituel ou un mot de passe Kerberos; nous l'appelerons - “mot de passe Unix”. Le second est le mot de passe - non réutilisable généré par le programme S/Key - <command>key</command> et reconnu par le programme - <command>keyinit</command> et l'invite de session; nous - l'appelerons “mot de passe non réutilisable”. Le dernier - type de mot de passe est le mot de passe secret que vous donnez au - programme <command>key</command> (et parfois au programme - <command>keyinit</command>) qui l'utilise pour générer des mots de - passe non-réutilisables; nous l'appelerons - “mot de passe secret” ou simplement - “mot de passe”.</para> - - <para>Le mot de passe secret n'a rien à voir avec votre mot de passe - Unix (ils peuvent être identiques, mais c'est déconseillé). Les - mots de passe Unix sont limités à huit caractères, alors que les - mots de passe secrets S/Key ont la longueur que vous voulez; j'utilise - des phrases de sept mots. En général, le système S/Key fonctionne - sans liaison avec le système de mots de passe Unix.</para> - -<para>Il y a en outre deux autres types de données utilisés par le - système S/Key; l'un s'appelle “grain de sel” - <footnote><para>N.d.T.: “seed” dans l'original en - langue anglaise. “salt” est aussi parfois utilisé - pour désigner le préfixe utilisé pour perturber un - algorithme de hachage. - Voir <citerefentry><refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></footnote> - ou (cela prête à - confusion) “clé” et est un mot de deux lettres et cinq - chiffres, et l'autre est le “compteur d'itérations” - compris entre 100 et 1. S/Key génère un mot de passe non réutilisable - en concaténant le “grain de sel” et le mot de passe - secret, en lui appliquant - la fonction de hachage irréversible (la fonction sécurisée MD4 de - RSA Data Security, Inc.) autant de fois qu'indiqué par le compteur - d'itérations, et en convertissant le résultat en six courts mots - anglais. Les programmes <command>login</command> et - <command>su</command> enregistrent le dernier mot de passe non - réutilisable employé, et l'utilisateur est authentifié si la valeur - de hachage de son mot de passe est la même que celle de celui - qu'il a utilisé auparavant. Comme le hachage utilisé est irréversible, - il n'est pas possible de générer de mot de passe non réutilisable - si l'on a surpris un de ceux qui a été utilisé avec - succès; le compteur - est décrémenté après chaque ouverture de session réussie, de sorte que - l'utilisateur et le programme d'initialisation de session restent en phase. - (Quand ce compteur passe à 1, il est temps de réinitialiser - S/Key.)</para> - -<para>Il y a quatre programmes du système S/Key dont nous traiterons plus bas. - Le programme <command>key</command> a comme paramètres un compteur - d'itérations, un “grain de sel” et un mot de passe - secret et génère un mot - de passe non réutilisable. Le programme <command>keyinit</command> - initialise S/Key et sert à modifier les mots de passe, les compteurs - d'itérations et les “grains de sel”; Ses paramètres sont - soit un mot de passe - secret, soit un compteur d'itérations, soit un - “grain de sel”, et un mot de - passe non réutilisable. Le programme <command>keyinfo</command> - consulte le fichier <filename>/etc/skeykeys</filename> et imprime - la valeur du compteur d'itérations et le “grain de sel” - de l'utilisateur qui - l'a invoqué. Enfin, les programmes <command>login</command> et - <command>su</command> incorporent la logique nécessaire pour - reconnaître les mots de passe non réutilisables S/Key pour - authentifier les utilisateurs. Le programme <command>login</command> - est aussi capable d'interdire l'utilisation de mots de passe Unix - en fonction de l'adresse d'origine de la connexion.</para> - -<para>Nous décrirons quatre sortes d'opérations. La première est - l'utilisation du programme <command>keyinit</command> sur une - connexion sécurisée pour initialiser S/Key, ou pour modifier votre - mot de passe ou votre “grain de sel”. La seconde est - l'emploi du programme - <command>keyinit</command> sur une connexion non sécurisée, en même - temps que du programme <command>key</command> sur une connexion - sécurisée, pour faire la même chose. La troisième est l'utilisation - du programme <command>key</command> pour ouvrir une session sur une - connexion non sécurisée. La quatrième est l'usage du programme - <command>key</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 (comme dans - une conférence).</para> - - -<sect2> - <title>Initialisation depuis une connexion sécurisée</title> - - <para>Pour initialiser S/Key, changer votre mot de passe ou changer - votre “grain de sel” quand vous êtes en session, sous - votre compte, sur une - connexion sécurisée (e.g., sur la console d'une machine), utilisez - la commande <command>keyinit</command> sans paramètres:</para> - - - <informalexample> - <screen>&prompt.user; keyinit -Updating wollman: ) ceci n'apparaît pas si vous -Old key: ha73895 ) n'avez pas déjà utilisé S/Key -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. -(Rappel - N'employez cette méthode que si vous êtes directement connecté. -Si vous utilisez telnet ou rlogin, quittez sans donner de mot de passe -et utilisez keyinit -s) -<prompt>Enter secret password:</prompt> ) j'ai tapé ma phrase clé ici -<prompt>Again secret password:</prompt> ) je l'ai retapée - -ID wollman s/key is 99 ha73896 ) voir ci-dessous -SAG HAS FONT GOUT FATE BOOM )</screen> - </informalexample> - - - <para>Il y a beaucoup de choses là-dedans. A l'invite - <prompt>Enter secret password:</prompt>, vous devez entrer un - mot de passe ou une phrase (j'utilise des phrases d'au moins - sept mots) qui servira à générer les mots de passe pour vos - sessions. La ligne qui commence par “ID” vous - liste vos paramètres S/Key: votre nom d'utilisateur, la valeur - de votre compteur d'itérations et votre - “grain de sel”. Quand vous ouvrirez - une session avec S/Key, le système aura mémorisé ces valeurs et - vous les redonnera, vous n'avez donc pas besoin de les retenir. - La dernière ligne vous donne le mot de passe non réutilisable - correspondant à ces paramètres et à votre mot de passe secret; - si vous deviez 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 S/Key, changer votre mot de passe ou changer - votre “grain de sel” quand vous êtes en session - sur une connexion non - sécurisée, il vous faudra déjà avoir une connexion sécurisée - sur une machine où vous pouvez utiliser le programme - <command>key</command>; ce peut être depuis un accessoire de - bureau sur un Macintosh ou depuis la ligne de commande d'une - machine sûre (notre exemple illustre ce dernier - cas). Il vous - faudra donner une valeur au compteur d'itérations et indiquer - un “grain de sel” ou utiliser la valeur aléatoire - générée par le programme. - Sur la connexion non sécurisée (à la machine que vous initialisez), - employez la commande <command>keyinit -s</command>:</para> - - - <informalexample> - <screen>&prompt.user; <userinput>keyinit -s</userinput> -Updating wollman: Old key: kh94741 -Reminder you need the 6 English words from the skey command. -(Rappel - Il vous faut les 6 mots Anglais fournis par la commande skey.) -<prompt>Enter sequence count from 1 to 9999:</prompt> <userinput>100</userinput> ) j'ai tapé cela -<prompt>Enter new key [default kh94742]:</prompt> -s/key 100 kh94742</screen> - </informalexample> - - - <para>Pour utiliser le “grain de sel” par défaut, - (que le programme <command>keyinit</command> appelle une - “clé” - <literal>key</literal>, ce qui prête - à confusion), appuyez sur Entrée. Passez ensuite sur votre connexion - sécurisée ou sur l'accessoire de bureau S/Key et donnez lui les - mêmes paramètres:</para> - - <informalexample> - <screen>&prompt.user; <userinput>key 100 kh94742</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) -<prompt>Enter secret password:</prompt> ) j'ai tapé mon mot de passe -secret -HULL NAY YANG TREE TOUT VETO</screen> - </informalexample> - - - <para>Retournez alors sur votre connexion non sécurisée, et donnez le - mot de passe non réutilisable généré par la programme - <command>key</command> au programme - <command>keyinit</command>:</para> - - - <informalexample> - <screen><prompt>s/key access password:</prompt> <userinput>HULL NAY YANG TREE TOUT VETO</userinput> -ID wollman s/key is 100 kh94742 -HULL NAY YANG TREE TOUT VETO</screen> - </informalexample> - - - <para>Le reste de la description du paragraphe précédent s'applique - aussi ici.</para> - -</sect2> - -<sect2> - <title>Diversion: une invite de session</title> - - <para>Avant d'expliquer comment générer les mots de passe non - réutilisables, nous allons examiner une invite de session - S/Key:</para> - - <informalexample> - <screen>&prompt.user; <userinput>telnet himalia</userinput> -Trying 18.26.0.186... -Connected to himalia.lcs.mit.edu. -Escape character is '^]'. -s/key 92 hi52030 -<prompt>Password:</prompt></screen> - </informalexample> - - - <para>Remarquez qu'avant de nous demander un mot de passe, le - programme d'initialisation de la session nous affiche le nombre - d'itérations et le grain de sel dont nous aurons besoin pour - générer la clé appropriée. Vous découvrirez aussi une possibilité - intéressante (qui n'est pas illustrée ici); si vous tapez Entrée - quand on vous demande votre mot de passe, le programme active - l'écho au terminal, de sorte que vous voyez ce que vous tapez. - C'est très utile si vous essayez de taper une S/Key à la main, - à partir d'un résultat imprimé, par exemple.</para> - - <para>Si cette machine avait été configurée pour interdire l'emploi - de mots de passe Unix depuis ma machine, l'annotation - <literal>(s/key required)</literal> - “(s/key obligatoire)” - aurait aussi figuré, précisant que seul un mot de passe S/Key non - réutilisable serait accepté.</para> - -</sect2> - -<sect2> - <title>Générer un unique mot de passe non réutilisable</title> - - <para>Pour générer le mot de passe non réutilisable dont nous - avons besoin pour ouvrir la session, nous utilisons une - machine sûre et le programme <command>key</command>. - (Il y a des versions du programme <command>key</command> pour DOS - et Windows, et il y a aussi un accessoire de bureau pour - Macintosh.) La version en ligne de commande du programme - <command>key</command> a pour paramètres le compteur d'itérations - et le “grain de sel”; vous pouvez les couper-coller - de l'invite de session, en commençant à - <literal>key</literal> jusqu'à la fin de la ligne. Donc:</para> - - - <informalexample> - <screen>&prompt.user; <userinput>key 92 hi52030</userinput> ) collé du programme précédent -Reminder - Do not use this program while logged in via telnet or rlogin. -(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) -<prompt>Enter secret password:</prompt> ) j'ai tapé mon mot de passe secret -ADEN BED WOLF HAW HOT STUN</screen> - </informalexample> - - - <para>et dans l'autre fenêtre:</para> - - - <informalexample> - <screen>s/key 92 hi52030 ) de la section précédente -<prompt>Password:</prompt> -(turning echo on) -<prompt>Password:</prompt>ADEN BED WOLF HAW HOT STUN -Last login: Wed Jun 28 15:31:00 from halloran-eldar.l -[etc.]</screen> - </informalexample> - - - <para>C'est la méthode la plus simple <emphasis>si</emphasis> vous - avez une machine sûre . Il y a une appliquette Java - <ulink url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP - Calculator</ulink>, que vous pouvez télécharger et exécuter sous - n'importe quel navigateur supportant Java.</para> - -</sect2> - -<sect2> - <title>Générer de multiples mots de passe non réutilisables</title> - - <para>Il vous faut parfois aller en des endroits où vous n'avez pas - de connexion sécurisée disponible. Dans ce cas, vous pouvez - utiliser la commande <command>key</command> pour générer en une - seule fois plusieurs mots de passe non réutilisables; vous pouvez - imprimer ces derniers. Par exemple:</para> - - <informalexample> - <screen>&prompt.user; <userinput>key -n 25 57 zz99999</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) -<prompt>Enter secret password:</prompt> -33: WALT THY MALI DARN NIT HEAD -34: ASK RICE BEAU GINA DOUR STAG -... -56: AMOS BOWL LUG FAT CAIN INCH -57: GROW HAYS TUN DISH CAR BALM</screen> - </informalexample> - - - <para>L'option <option>-n 25</option> demande vingt-cinq clés en - séquence; l'option <option>57</option> indique le rang de la - <emphasis>dernière</emphasis> itération; le reste a été décrit - plus haut. Notez que les clés sont imprimées dans l'ordre inverse - de celui où elles seront éventuellement utilisées. Si vous êtes - vraiment paranoïde, vous pouvez les recopier à la main, sinon - vous pouvez les couper-coller vers la commande - <command>lpr</command>. Remarquez que chaque ligne liste et le - nombre d'itérations et le mot de passe non réutilisable; vous - trouverez cependant probablement pratique 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>Le fichier de configuration - <filename>/etc/skey.access</filename> peut servir à définir des - restrictions d'utilisation des mots de passe Unix en fonction des - noms de machine et d'utilisateur, de la ligne utilisée par le - terminal ou de l'adresse IP de la machine connectée à distance. Le - format détaillé de ce fichier est décrit dans la page de manuel de - <citerefentry><refentrytitle>skey.access</refentrytitle><manvolnum>5</manvolnum></citerefentry>; - elle inclut aussi des 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 avec la distribution de FreeBSD), - 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>skey.access</filename>. Dans tous les cas, l'usage - de mots de passe Unix est autorisé sur la console système.</para> - - <para>Voici un exemple de fichier de configuration qui illustre - les trois types d'instructions les plus courants:</para> - - <programlisting> -permit internet 18.26.0.0 255.255.0.0 -permit user jrl -permit port ttyd0 - </programlisting> - - <para>La première ligne (<literal>permit - internet</literal>) autorise les utilisateurs dont les adresses - IP (ce qui rend vulnérable en cas d'usurpation) appartiennent - au sous-réseau spécifié à employer des mots de passe Unix. Il ne - faut pas considérer cela comme une mesure de sécurité, mais plutôt - comme un moyen de rappeler aux utilisateurs qu'ils sont sur un - réseau non sécurisé et qu'ils doivent utiliser S/Key pour - s'authentifier.</para> - - <para>La seconde ligne (<literal>permit user</literal>) - autorise l'utilisateur désigné à employer n'importe quand des - mots de passe Unix. En général, il faut se servir de cette - possibilité si les gens 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.</para> - - <para>La troisième ligne (<literal>permit port</literal>) - autorise tous les utilisateurs d'un terminal sur une liaison particulière - à utiliser des mots de passe Unix. On emploie cela pour les connexions - téléphoniques.</para> - - </sect2> - </sect1> - - <sect1 id="kerberos"> - <title>Kerberos</title> - - <para><emphasis>Contribution de &a.markm; (sur la base d'une - contribution de &a.md;).</emphasis></para> - - <para>Kerberos est un protocole réseau supplémentaire qui permet - aux utilisateurs de s'authentifier en passant 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 FreeBSD. Vous devriez cependant vous référer aux pages - de manuel correspondantes pour avoir une description complète.</para> - - <para>La distribution Kerberos de FreeBSD n'est pas la distribution - originale de 4.4BSD-Lite, mais eBones, qui avait été - auparavant portée sous FreeBSD 1.1.5.1, et dont les sources ne - proviennent pas des Etats-Unis/Canada, ce qui la rend disponible aux - utilisateurs d'autres pays.</para> - - <para>Pour ces derniers, qui ont besoin d'une distribution légale - de ce logiciel, s'il vous plait, <emphasis>ne vous la procurez - pas</emphasis> depuis un site aux Etats-Unis ou au Canada. Vous - lui causeriez de <emphasis>graves</emphasis> problèmes. Il y a - une copie légale sur - <hostid role="fqdn">skeleton.mikom.csir.co.za</hostid>, qui se - situe en Afrique du Sud.</para> - - - <sect2> - <title>Créer la base de données initiale</title> - - <para>Il faut faire cela uniquement sur le serveur Kerberos. Vérifiez - 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> - - - <informalexample> - <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput> -&prompt.root; <userinput>ls</userinput> -README krb.conf krb.realms</screen> - </informalexample> - - - <para>S'il y a d'autres fichiers (comme - <filename>principal.*</filename> ou <symbol>master_key</symbol>), - utilisez la commande <symbol>kdb_destroy</symbol> pour supprimer - l'ancienne base de données Kerberos, ou si Kerberos ne tourne pas, - effacez simplement les fichiers excédentaires avec - <command>rm</command>.</para> - - <para>Vous devez maintenant éditer les fichiers - <filename>krb.conf</filename> et - <filename>krb.realms</filename> pour définir votre domaine - (“realm”) - Kerberos. Pour notre exemple, le domaine sera - <filename>GRONDAR.ZA</filename> et le serveur - <filename>grunt.grondar.za</filename>. Nous éditons ou créons alors - le fichier <filename>krb.conf</filename>:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cat krb.conf</userinput> -GRONDAR.ZA -GRONDAR.ZA grunt.grondar.za 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> - </informalexample> - - <para>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 autres lignes définissent les autres - domaines/machines. Chaque ligne comporte d'abord le nom du - domaine, puis le nom de la machine qui est le “centre - de distribution” de ce domaine. Les mots - <literal>admin server</literal> qui suivent signifient que - cette 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>Il faut maintenant ajouter - <hostid role="fqdn">grunt.grondar.za</hostid> - au domaine <filename>GRONDAR.ZA</filename> et ajouter une entrée - pour mettre toutes les machines du domaine DNS - <hostid role="domainname">.grondar.za</hostid> dans - le domaine Kerberos <filename>GRONDAR.ZA</filename>. Le fichier - <filename>krb.realms</filename> aura alors l'allure - suivante:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cat krb.realms</userinput> -grunt.grondar.za GRONDAR.ZA -.grondar.za GRONDAR.ZA -.berkeley.edu CS.BERKELEY.EDU -.MIT.EDU ATHENA.MIT.EDU -.mit.edu ATHENA.MIT.EDU</screen> - </informalexample> - - <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 autres lignes montrent comment affecter par défaut - les systèmes d'un sous-domaine DNS à un domaine Kerberos - donné.</para> - - <para>Nous pouvons maintenant créer le 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 command - <command>kdb_init</command>:</para> - - <informalexample> - <screen>&prompt.root; <userinput>kdb_init</userinput> -<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>GRONDAR.ZA</userinput> -You will be prompted for the database Master Password. -It is important that you NOT FORGET this password. -(On vous demandera le Mot de Passe Maître de la base de données.) -(Il est important de NE PAS PERDRE ce mot de passe.) - -<prompt>Enter Kerberos master key:</prompt> </screen> - </informalexample> - - <para>Nous devons maintenant sauvegarder la clé pour que les serveurs - sur la machine locale puisse la lire, avec la commande - <command>kstash</command>:</para> - - <informalexample> - <screen>&prompt.root; <userinput>kstash</userinput> - -<prompt>Enter Kerberos master key:</prompt> - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -(Clé maître saisie. ATTENTION!)</screen> - </informalexample> - - <para>Le mot de passe maître encrypté est enregistré dans - le fichier <filename>/etc/kerberosIV/master_key</filename>.</para> - - </sect2> - - <sect2> - <title>Installer les services</title> - - <para>Il faut ajouter deux entrées (“principals” - <footnote><para>N.d.T.: L'“Introduction à Kerberos 5” - du NCSA - <ulink url="http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html">http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html</ulink> - explicite cette notion: “Toute entité à laquelle il faut - s'authentifier ou qui doit s'authentifier est un - <foreignphrase>principal</foreignphrase> Kerberos ... - chaque principal a un mot de passe secret qui n'est connu - que de lui-même et du Centre de Distribution de Clés. Chaque - <foreignphrase>principal</foreignphrase> a un nom ... de la - forme - <emphasis>primaire/instance@domaine</emphasis>.”</para></footnote>) - - à 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. A chacune de leurs instances est attribuée le nom - du système.</para> - - <para>Ces “démons”, <command>kpasswd</command> et - <command>rcmd</command> permettent aux systèmes de changer - les mots de passe Kerberos et d'exécuter des commandes comme - <command>rcp</command>, <command>rlogin</command> - et <command>rsh</command>.</para> - - <para>Ajoutons donc maintenant ces entrées:</para> - - - <informalexample> - <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> <---- entrez RANDOM ici - -<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 entrez ici - permet de quitter le programme</screen> - </informalexample> - - - </sect2> - - <sect2> - <title>Créer le fichier des services</title> - - <para>Il faut maintenant extraire toutes les instances qui définissent - les services sur chaque machine. Cela se fait avec la commande - <command>ext_srvtab</command>. Elle crée un fichier qui doit être - copié ou reporté <emphasis>par un moyen sûr</emphasis> dans le - répertoire <filename>/etc/kerberosIV</filename> de chaque client - Kerberos. Ce fichier doit exister sur tous les serveurs et tous - les clients et est crucial au bon fonctionnement de - Kerberos.</para> - - <informalexample> - <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> - </informalexample> - - <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 <command>mv</command> - pour l'installer sur le système d'origine:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen> - </informalexample> - - <para>Si le fichier est destiné à un client, et que le réseau n'est - pas considéré comme sûr, copiez le fichier - <filename><client>-new-srvtab</filename> sur un support - amovible et transportez-le par un moyen physiquement sûr. N'oubliez - pas de le renommer <filename>srvtab</filename> dans le répertoire - <filename>/etc/kerberosIV</filename> du client, et mettez-le bien - en mode 600:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput> -&prompt.root; <userinput>chmod 600 srvtab</userinput></screen> - </informalexample> - </sect2> - - <sect2> - <title>Renseigner la base de données</title> - - <para>Il faut maintenant créer des entrées utilisateurs dans la base - de données. Ajoutons une entrée pour l'utilisateur - <username>jeanne</username>. Utilisez la commande - <command>kdb_edit</command> pour cela:</para> - - <informalexample> - <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>jeanne</userinput> -<prompt>Instance:</prompt> - -<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput> - -Principal: jeanne, 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> - </informalexample> - </sect2> - - <sect2> - <title>Tester l'ensemble</title> - - <para>Il faut d'abord démarrer les “démons” 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. Ce n'est nécessaire que sur le serveur - Kerberos. Les clients Kerberos récupéreront automagiquement les - informations dont ils ont besoin via leur répertoire - <filename>/etc/kerberosIV</filename>.</para> - - <informalexample> - <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: GRONDAR.ZA -&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 -(S'il vous plait, n'utilisez pas kill -9 pour arrêter - le programme, utilisez kill à la place) - -Current Kerberos master key version is 1. - -Master key entered. BEWARE!</screen> - </informalexample> - - <para>Vous pouvez maintenant utiliser la commande - <command>kinit</command> pour obtenir un - “ticket d'entrée” - pour l'utilisateur <username>jeanne</username> que nous avons créé - plus haut :</para> - - <informalexample> - <screen>&prompt.user; <userinput>kinit jeanne</userinput> -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jeanne" -<prompt>Password:</prompt> </screen> - </informalexample> - - <para>Essayons de lister les informations associées avec la commande - <command>klist</command> pour voir si nous avons vraiment tout - ce qu'il nous faut:</para> - - <informalexample> - <screen>&prompt.user; <userinput>klist</userinput> -Ticket file: /tmp/tkt245 -Principal: jeanne@GRONDAR.ZA - - Issued Expires Principal -Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> - </informalexample> - - <para>Essayons maintenant de changer de mot de passe avec la commande - <command>passwd</command> pour voir si le “démon” - <command>kpasswd</command> est autorisé à accéder à la base de - données Kerberos:</para> - - <informalexample> - <screen>&prompt.user; <userinput>passwd</userinput> -realm GRONDAR.ZA -<prompt>Old password for jeanne:</prompt> -<prompt>New Password for jeanne:</prompt> -Verifying password -<prompt>New Password for jeanne:</prompt> -Password changed.</screen> - </informalexample> - </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 <command>su</command>. Nous - pouvons créer un identifiant qui soit autorisé à utiliser - <command>su</command> pour devenir <username>root</username>. Cela - se fait en associant une instance <username>root</username> à - l'identificateur de base. Avec la commande - <command>kdb_edit</command> nous créons l'entrée - <literal>jeanne.root</literal> dans la base de données - Kerberos:</para> - - <informalexample> - <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>jeanne</userinput> -<prompt>Instance:</prompt> <userinput>root</userinput> - -<Not found>, Create [y] ? y - -Principal: jeanne, 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 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> <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> - </informalexample> - - <para>Vérifions maintenant les caractéristiques associées pour voir si cela marche:</para> - - <informalexample> - <screen>&prompt.root; <userinput>kinit jeanne.root</userinput> -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jeanne.root" -<prompt>Password:</prompt></screen> - </informalexample> - - <para>Il faut maintenant ajouter l'utilisateur au fichier - <filename>.klogin</filename> de root:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> -jeanne.root@GRONDAR.ZA</screen> - </informalexample> - - <para>Essayons maintenant la commande <command>su</command>:</para> - - <informalexample> - <screen>&prompt.user; <prompt>su</prompt> -<prompt>Password:</prompt></screen> - </informalexample> - - <para>et voyons quelles sont nos caractéristiques:</para> - - <informalexample> - <screen>&prompt.root; klist -Ticket file: /tmp/tkt_root_245 -Principal: jeanne.root@GRONDAR.ZA - - Issued Expires Principal -May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> - </informalexample> - </sect2> - - <sect2> - <title>Utiliser d'autres commandes</title> - - <para>Dans l'exemple précédent, nous avons créé une entrée principale - <literal>jeanne</literal> avec une instance <literal>root</literal>. - Elle reposait sur un utilisateur ayant le même nom que l'entrée - principale. C'est ce que fait Kerberos par défaut; - une <literal><entrée_principale>.<instance></literal> - de la forme - <literal><nom_d_utilisateur>.</literal><literal>root</literal> - autorisera - <literal><nom_d_utilisateur></literal> à utiliser - <command>su</command> pour devenir root si le fichier - <filename>.klogin</filename> du répertoire utilisateur de - <username>root</username> est correctement renseigné:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> -jeanne.root@GRONDAR.ZA</screen> - </informalexample> - - <para>De même, s'il y a dans un répertoire utilisateur - des lignes de la forme:</para> - - <informalexample> - <screen>&prompt.user; <userinput>cat ~/.klogin</userinput> -jeanne@GRONDAR.ZA -jacques@GRONDAR.ZA</screen> - </informalexample> - - <para>Cela permet à quiconque dans le domaine - <filename>GRONDAR.ZA</filename> - s'est authentifié en tant que - <username>jeanne</username> ou <username>jacques</username> (avec - <command>kinit</command>, voir plus haut) d'accéder avec - <command>rlogin</command> au compte de - <username>jeanne</username> ou à ses fichiers sur ce système - (<hostid>grunt</hostid>) avec <command>rlogin</command>, <command>rsh</command> ou - <command>rcp</command>.</para> - - <para>Par exemple, jeanne ouvre maintenant une session sur un autre - système, avec Kerberos:</para> - - <informalexample> - <screen>&prompt.user; <userinput>kinit</userinput> -MIT Project Athena (grunt.grondar.za) -<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> - </informalexample> - - <para>ou bien jacques ouvre une session sur le compte de jeanne - sur la même machine (jeanne ayant modifié son fichier - <filename>.klogin</filename> comme décrit plus haut, et - l'administrateur de Kerberos ayant défini une entrée principale - <emphasis>jacques</emphasis>, sans instance:</para> - - <informalexample> - <screen>&prompt.user; <userinput>kinit</userinput> -&prompt.user; <userinput>rlogin grunt -l jeanne</userinput> -MIT Project Athena (grunt.grondar.za) -<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> - </informalexample> - </sect2> - </sect1> - - <sect1 id="firewalls"> - <title>Coupe-Feux</title> - - <para><emphasis>Contribution de &a.gpalmer; et - &a.alex;.</emphasis></para> - - <para>Les coupe-feux suscitent un intérêt croissant de la part de gens - qui se connectent à l'Internet, et sont même installés sur des - réseaux privés pour accroître leur sécurité. Cette section vise à - vous expliquer ce que sont les coupe-feux, comment les utiliser - et comment mettre en oeuvre les possibilités offertes par le noyau - de FreeBSD pour les implémenter.</para> - - <note> - <para>Les gens pensent souvent qu'avoir un coupe-feu entre le - réseau interne de leur entreprise et le - “Grand Méchant Internet” - résoud tous leurs problèmes de sécurité.</para> - - <para>Cela peut y concourir, mais une système de coupe-feu mal - configuré présente pour la sécurité un risque plus grand que - de ne pas en avoir du tout. Un coupe-feu ajoute une couche - protectrice - supplémentaire à votre système, mais ne sera pas capable - d'empêcher un pirate réellement déterminé de pénétrer votre - réseau interne. Si vous êtes laxiste quant à votre - sécurité interne parce que vous croyez votre coupe-feu - impénétrable, vous avez tout bonnement simplifié la tâche - des pirates.</para> - </note> - - - <sect2> - <title>Qu'est-ce qu'un coupe-feu?</title> - - <para>Il y a aujourd'hui deux types de coupe-feux différents - d'utilisation courante sur l'Internet. Le premier est appelé - plus justement <emphasis>routeur filtrant</emphasis>, quand - le noyau d'une machine interconnectée à plusieurs réseaux - sélectionne, en appliquant un ensemble de règles, les paquets - qu'il transmet ou rejette. Le second, désigné par le terme - de <emphasis>serveurs mandataires</emphasis>, s'appuie sur - des “démons” pour assurer l'authentification - et transmettre les paquets, éventuellement sur une machine - interconnectée dont la transmission de paquets au niveau - du noyau est désactivée.</para> - - <para>Les sites combinent parfois ces deux approches, de telle - sorte qu'une machine seulement (appelée - <emphasis>bastion</emphasis>) soit autorisée à envoyer des - paquets, via un routeur filtrant, sur le réseau interne. Les - services mandatés, qui sont généralement plus sûrs que les - mécanismes habituels d'authentification, - sont fournis par le bastion.</para> - - <para>Le noyau de FreeBSD inclut une fonctionnalité de filtrage - de paquets (appelée <application>IPFW</application>), dont traite - essentiellement la suite de cette section. Des serveurs mandataires - sous FreeBSD peuvent être mis en oeuvre avec des logiciels - extérieurs, mais il y a une telle variété de serveurs mandataires - qu'il est impossible de les décrire dans ce document.</para> - - <sect3 - id="firewalls-packet-filters"> - <title>Routeurs filtrants</title> - - <para>Un routeur est une machine qui transmet des paquets entre - plusieurs réseaux. Le noyau d'un routeur filtrant comporte - en plus du code qui applique à chaque paquet un jeu de - règles pour décider de le transmettre ou non. La plupart - des logiciels récents de routage IP comportent du code de - filtrage de paquets. Pour l'utiliser, vous devez fournir - au filtre un ensemble de règles sur la base desquelles il - peut décider d'autoriser ou non la transmission des - paquets.</para> - - <para>Pour décider si le paquet peut passer ou non, le code - parcourt les règles jusqu'à ce qu'il en trouve une qui - corresponde aux en-têtes du paquet. Il effectue alors - l'opération associée à la règle. Ce peut être rejeter - le paquet, le transmettre, ou même répondre par un - message ICMP à l'émetteur. La première règle trouvée, en - séquence, est seule prise en considération. On peut donc - parler d'une “chaîne de règles”.</para> - - <para>Les critères de sélection des paquets varient selon - les logiciels, mais vous pouvez typiquement définir des - règles basées sur les adresses IP de l'émetteur et du - destinataire, les ports source et destination (pour les - protocoles qui supportent les ports), voir le type de paquet - (UDP, TCP, ICMP, etc...).</para> - - </sect3> - - <sect3 - id="firewalls-proxy-servers"> - <title>Serveurs mandataires</title> - - <Para>Les serveurs mandataires sont des machines sur lesquelles - les “démons” du système standard - (telnetd, ftpd, etc) sont remplacés par des serveurs spéciaux. - Ce sont ces serveurs que l'on appelle <emphasis>serveurs - mandataires</emphasis>, car ils n'autorisent normalement que - les connexions entrantes. Cela permet (par exemple), - avec un serveur mandataire telnet sur votre bastion, aux gens - de se connecter de l'extérieur et d'accéder à votre réseau - interne, après avoir satisfait à un mécanisme d'authentification - (inversement, des serveurs mandataires peuvent être utilisés - pour les connexions du réseau interne vers l'extérieur).</para> - - <para>Les serveurs mandataires sont généralement plus sûrs que les - serveurs ordinaires et disposent d'une plus grande variété de - mécanismes d'authentification, dont les mots de passe “à - usage unique”, de façon à ce que, - même si quelqu'un arrive à - surprendre votre mot de passe, il ne puisse l'utiliser pour - accéder à vos systèmes, puisqu'il expire aussitôt. Comme ils - ne donnent pas aux utilisateurs l'accès à la machine qui les - héberge, il en est d'autant plus difficile d'installer une - entrée dérobée dans votre système de sécurité.</para> - - <para>Les serveurs mandataires ont aussi souvent la possibilité - de restreindre encore l'accès, de telle façon que seules - certaines machines y soient autorisées, et peuvent aussi - la plupart du temps être configurés - pour définir quels utilisateurs - peuvent accéder aux machines cibles. Là encore, les - fonctionnalités disponibles dépendent des logiciels que - vous choisissez.</para> - - </sect3> - </sect2> - - <sect2> - <title>Que me permet de faire IPFW?</title> - - <para><application>IPFW</application>, le logiciel fourni avec - FreeBSD, est un système de filtrage de paquets et de comptabilité - qui est intégré au noyau, et comporte un outil de configuration - accessible à l'utilisateur, - <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Ensemble, ils vous permettent de définir et de consulter - les règles appliquées par le noyau pour prendre ses décisions de - routage.</para> - - <para><application>IPFW</application> comporte deux parties. Le - coupe-feu s'occupe du filtrage de paquets. Il y a aussi une - partie comptabilité IP, qui vous permet de tracer l'utilisation - de votre routeur, sur la base de règles similaires à celle - utilisée par le coupe-feu. Vous pouvez (par exemple) savoir - quel trafic votre routeur reçoit d'une machine donnée, ou quel - volume de requêtes WWW (“World Wide Web”) il - transmet.</para> - - <para>De par la conception d'<application>IPFW</application>, - vous pouvez l'utiliser sur une machine qui ne fait pas de - routage, pour filtrer les connexions entrantes et sortantes. - C'est un cas plus particulier d'application - d'<application>IPFW</application> que l'usage général, qui - se gère avec les mêmes commandes et les mêmes techniques.</para> - - </sect2> - - <sect2> - <title>Activer IPFW sur FreeBSD</title> - - <para>Comme la majeure partie du système - <application>IPFW</application> est intégrée au noyau, - vous devrez ajouter une ou plusieurs options à votre - fichier de configuration du noyau, selon les possibilités - que vous voulez utiliser, et recompiler votre noyau. - Reportez-vous au chapitre - <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> - pour plus de détails sur la recompilation - du noyau.</para> - - <para>Il y a trois options de configuration du noyau qui concernent - <application>IPFW</application>:</para> - - - <variablelist> - <varlistentry><term>options IPFIREWALL</term> - <listitem> - <para>Intègre au noyau le code de filtrage de - paquets.</para> - </listitem> - </varlistentry> - - <varlistentry><term>options IPFIREWALL_VERBOSE</term> - - <listitem> - <para>Donne au code la possibilité de tracer les paquets via - <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry>. - Sans cette option et même si vous précisez dans vos règles - que les paquets doivent être tracés, rien ne se - passera.</para> - </listitem> - </varlistentry> - - <varlistentry><term>options IPFIREWALL_VERBOSE_LIMIT=10</term> - - <listitem> - <para>Limite le nombre de paquets similaires tracés. Cette - option peut être utile dans un environnement hostile, si - vous voulez surveiller l'activité de votre coupe-feu, tout - en évitant les attaques par refus de service qui - submergeraient <command>syslog</command>.</para> - - <para>Quand une règle atteint le nombre limite de paquets - identiques, la trace est désactivée pour cette règle. - Pour la remettre en service, vous devrez réinitialiser - le compteur associé avec l'utilitaire - <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>:</para> - - <informalexample> - <screen>&prompt.root; <userinput>ipfw zero 4500</userinput></screen> - </informalexample> - - <para>où 4500 est le numéro de la règle que vous voulez de - nouveau tracer.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para>Il y avait, dans les versions antérieures de FreeBSD, une - option <literal>IPFIREWALL_ACCT</literal>. Elle est maintenant - obsolète. Le code du coupe-feu intègre désormais automatiquement - les fonctions comptables.</para> - - </sect2> - - <sect2> - <title>Configurer IPFW</title> - - <para>La configuration du logiciel <application>IPFW</application> - se fait avec l'utilitaire <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. La syntaxe de cette commande - paraît assez compliquée, mais elle est relativement simple, une - fois que vous en avez compris la structure.</para> - - <para>L'utilitaire comporte quatre catégories de commandes: - ajout/suppression, liste, vidage, réinitialisation. On ajoute - et l'on supprime des règles de filtrage. On liste les règles. - On vide la séquence de règles, pour supprimer toutes les règles. - On réinitialise les informations comptables.</para> - - - <sect3> - <title>Modifier les règles IPFW</title> - - <para>La syntaxe pour ce type de commande est: - <cmdsynopsis> - <command>ipfw</command> - <arg>-N</arg> - <arg choice="plain">commande</arg> - <arg>index</arg> - <arg choice="plain">action</arg> - <arg>log</arg> - <arg choice="plain">protocole</arg> - <arg choice="plain">adresses</arg> - <arg>options</arg> - </cmdsynopsis></para> - - <para>Il n'y a qu'un seul indicateur avec ce type de - commande:</para> - - - <variablelist> - <varlistentry><term>-N</term> - <listitem> - <para>Résoudre les adresses et les noms de services - dans les sorties.</para> - - </listitem> - </varlistentry> - </variablelist> - - - <para>La <emphasis>commande</emphasis> peut être raccourcie - à son abbréviation univoque la plus courte. Les - <emphasis>commandes</emphasis> valides sont:</para> - - - <variablelist> - <varlistentry><term>add</term> - <listitem> - <para>Ajoute une entrée à la liste des règles de - filtrage/comptabilité.</para> - </listitem> - </varlistentry> - - <varlistentry><term>delete</term> - - <listitem> - <para>Supprime une entrée de la liste des règles de - filtrage/comptabilité.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para>Des versions antérieures d'<application>IPFW</application> - séparaient les règles de filtrage et celles de comptabilité. - La version actuelle autorise la comptabilisation de chaque - règle de filtrage.</para> - - <para>L'<emphasis>index</emphasis>, s'il est renseigné, permet - d'insérer la règle à un point précis de la séquence. Sinon, - la règle est ajoutée en fin de séquence avec un index de 100 - supérieur à la dernière règle existante (à - l'exception de la règle par défaut, 65535, - “deny”).</para> - - <para>L'option <literal>log</literal> active la trace de la - règle à la console système, si le noyau a été compilé avec - l'option <literal>IPFIREWALL_VERBOSE</literal>.</para> - - <para>Les <emphasis>actions</emphasis> valides sont:</para> - - - <variablelist> - <varlistentry><term>reject</term> - <listitem> - <para>Refuse le paquet, et envoie un message ICMP - hôte ou port non joignable (selon le cas) à - l'émetteur.</para> - </listitem> - </varlistentry> - - <varlistentry><term>allow</term> - - <listitem> - <para>Transmet normalement le paquet (alias: - <literal>pass</literal> et - <literal>accept</literal>). </para> - </listitem> - </varlistentry> - - <varlistentry><term>deny</term> - - <listitem> - <para>Rejette le paquet. N'envoie pas de message - ICMP à l'émetteur (tout ce passe comme si le paquet - n'était jamais arrivé à destination).</para> - </listitem> - </varlistentry> - - <varlistentry><term>count</term> - - <listitem> - <para>Met à jour les informations comptables, mais le paquet - n'est pas accepté/rejeté sur la base de cette règle. Le - filtrage se poursuit avec la règle suivante de la - séquence.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para>Chaque <emphasis>action</emphasis> est identifiable - par son abbréviation univoque la plus courte.</para> - - <para>Les <emphasis>protocoles</emphasis> qui peuvent être - précisés sont:</para> - - - <variablelist> - <varlistentry><term>all</term> - <listitem> - <para>N'importe quel paquet IP.</para> - </listitem> - </varlistentry> - - <varlistentry><term>icmp</term> - - <listitem> - <para>Les paquets ICMP.</para> - </listitem> - </varlistentry> - - <varlistentry><term>tcp</term> - - <listitem> - <para>Les paquets TCP.</para> - </listitem> - </varlistentry> - - <varlistentry><term>udp</term> - - <listitem> - <para>Les paquets UDP.</para> - </listitem> - </varlistentry> - </variablelist> - - - <para>Les <emphasis>adresses</emphasis> sont représentées comme - suit:</para> - - <cmdsynopsis> - <arg choice="plain">from</arg> - <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg> - <arg choice="plain">to</arg> - <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg> - <arg>via <replaceable>interface</replaceable></arg> - </cmdsynopsis> - - <para>Vous ne pouvez spécifier le <replaceable>port</replaceable> - qu'avec les <emphasis>protocoles</emphasis> qui les supportent - (UDP et TCP).</para> - - <para>Le paramètre <option>via</option> est optionnel et définit - soit l'adresse IP, soit le nom de domaine d'une interface IP - locale, soit le nom d'une interface - (e.g. <devicename>ed0</devicename>) pour que la règle ne - s'applique qu'aux paquets passant par cette interface. Le - numéro d'unité de l'interface peut être remplacé par un - caractère de substitution. Par exemple, <literal>ppp*</literal> - désigne toutes les interfaces associées au module PPP intégré au - noyau.</para> - - <para>La syntaxe utilisée pour - <replaceable>adresse/masque</replaceable> est:</para> - - <informalexample> - <screen><replaceable>adresse</replaceable></screen> - </informalexample> - - <para>ou:</para> - - <informalexample> - <screen><replaceable>adresse</replaceable>/<replaceable>longueur_du_masque</replaceable></screen> - </informalexample> - - <para>ou:</para> - - <informalexample> - <screen><replaceable>adresse</replaceable>:<replaceable>masque_logique</replaceable></screen> - </informalexample> - - <para>Un nom de machine valide peut remplacer l'adresse IP. - <option><replaceable>longueur_du_masque</replaceable></option> est - une valeur décimale indiquant combien de digits de l'adresse - doivent correspondre. e.g. <literal>192.216.222.1/24</literal> - génère un masque tel que toutes les adresses d'un sous-réseau de - classe C (dans ce cas, 192.216.222) soient sélectionnées. - <option><replaceable>masque_logique</replaceable></option> est - une adresse IP telle que le masque soit obtenu par intersection - logique (“ET”) avec l'adresse associée. Le mot-clé - <literal>any</literal> peut être utilisé pour indiquer - “n'importe quelle adresse IP”.</para> - - <para>Les numéros des ports à bloquer sont indiqués par: - - <cmdsynopsis> - <arg choice="plain"><replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>...</arg></arg></arg></arg> - </cmdsynopsis>pour donner un seul port ou une liste de ports, ou: - - <cmdsynopsis> - <arg choice="plain"><replaceable>port</replaceable>-<replaceable>port</replaceable></arg> - </cmdsynopsis>pour donner une plage de valeurs. On peut aussi - combiner une seule plage et une liste, mais la plage doit toujours - être indiquée en premier.</para> - - <para>Les <emphasis>options</emphasis> disponibles sont:</para> - - - <variablelist> - <varlistentry><term>frag</term> - <listitem> - <para>Le paquet correspond si ce n'est pas le premier - fragment d'un datagramme.</para> - </listitem> - </varlistentry> - - <varlistentry><term>in</term> - - <listitem> - <para>Le paquet correspond si c'est un paquet - entrant.</para> - </listitem> - </varlistentry> - - <varlistentry><term>out</term> - - <listitem> - <para>Le paquet correspond si c'est un paquet - sortant.</para> - </listitem> - </varlistentry> - - <varlistentry><term>ipoptions <replaceable>options</replaceable></term> - - <listitem> - <para>Le paquet correspond si son en-tête IP contient les - options - séparées par des virgules - de la liste - d'<replaceable>options</replaceable>. Les options IP - reconnues sont: <literal>ssrr</literal> - (“strict source route” - routage strict - par la source) - <literal>lsrr</literal> - (“loose source route” - routage souple - par la source), - <literal>rr</literal> (“record packet - route” - enregistrer la route du paquet), - et <literal>ts</literal> - (“timestamp” - date). L'absence d'une - option est indiquée en la faisant précéder d'un - <literal>!</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry><term>established</term> - - <listitem> - <para>Le paquet correspond s'il fait partie - d'une connexion TCP déjà établie, - (i.e. si le bit RST ou ACK - est positionné). Vous pouver optimiser les performances - du coupe-feu en introduisant une règle - <emphasis>established</emphasis> - assez tôt dans la séquence.</para> - </listitem> - </varlistentry> - - <varlistentry><term>setup</term> - - <listitem> - <para>Le paquet correspond si c'est un paquet qui initialise - une connexion TCP (Le bit SYN est positionné mais pas le - bit ACK).</para> - </listitem> - </varlistentry> - - <varlistentry><term>tcpflags <replaceable>indicateurs</replaceable></term> - - <listitem> - <para>Le paquet correspond si son en-tête contient les - indicateurs - séparés par des virgules - de la - liste d'<replaceable>indicateurs</replaceable>. Les - indicateurs reconnus sont <literal>fin</literal>, - <literal>syn</literal>, <literal>rst</literal>, - <literal>psh</literal>, <literal>ack</literal>, et - <literal>urg</literal>. L'absence d'un indicateur donné - est indiquée en le faisant précéder d'un - <literal>!</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry><term>icmptypes <replaceable>types</replaceable></term> - - <listitem> - <para>Le paquet correspond si son type ICMP appartient à la - liste <replaceable>types</replaceable>. La liste est - donnée sous forme d'une combinaison de plages et/ou de - types séparés par des virgules. Les types ICMP - habituellement utilisés sont: - <literal>0</literal> “echo reply” (réponse à - un <command>ping</command>), - <literal>5</literal> “redirect” - (modification de la route), <literal>8</literal> - “echo request” (émis par - <command>ping</command>), et - <literal>11</literal> “time exceeded” - (utilisé pour indiquer que le TTL - “Time To - Live” - durée de vie - ,a été atteint, avec - <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>, par exemple).</para> - </listitem> - </varlistentry> - </variablelist> - - - </sect3> - - <sect3> - <title>Lister les règles IPFW</title> - - <para>La syntaxe de cette forme de la commande est: - <cmdsynopsis> - <command>ipfw</command> - <arg>-a</arg> - <arg>-t</arg> - <arg>-N</arg> - <arg choice="plain">l</arg> - </cmdsynopsis></para> - - <para>Il y a trois indicateurs valides avec ce type de - commande:</para> - - - <variablelist> - <varlistentry><term>-a</term> - <listitem> - <para>Affiche avec la liste, les valeurs des compteurs. - Cette option est le seul moyen de consulter les - informations comptables.</para> - </listitem> - </varlistentry> - - <varlistentry><term>-t</term> - - <listitem> - <para>Affiche la date de dernière concordance pour chaque - règle de la séquence. Le format d'affichage n'est - pas compatible avec la syntaxe d'entrée de l'utilitaire - <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para> - </listitem> - </varlistentry> - - <varlistentry><term>-N</term> - - <listitem> - <para>Essaye de résoudre les adresses et le noms des - services.</para> - </listitem> - </varlistentry> - </variablelist> - - - </sect3> - - <sect3> - <title>Vider les règles IPFW</title> - - <para>La commande pour vider les règles est: - <cmdsynopsis> - <command>ipfw</command> - <arg choice="plain">flush</arg> - </cmdsynopsis></para> - - <para>Toutes les règles de la séquence sont supprimées, sauf - la règle par défaut définie par le noyau (index 65535). Faites - attention quand vous utilisez cette commande, la règle par - défaut “deny” isolera votre coupe-feu du réseau - jusqu'à ce qu'une nouvelle règle “allow” soit - ajoutée à la séquence.</para> - - </sect3> - - <sect3> - <title>Réinitialiser les compteurs IPFW</title> - - <para>La syntaxe pour réinitialiser un ou plusieurs compteurs de - paquets est: - <cmdsynopsis> - <command>ipfw</command> - <arg choice="plain">zero</arg> - <arg choice="opt"><replaceable>index</replaceable></arg> - </cmdsynopsis></para> - - <para>Employée sans l'argument - <replaceable>index</replaceable>, tous les compteurs sont - réinitialisés. Si un <replaceable>index</replaceable> est - précisé, l'opération ne s'applique qu'à la règle - correspondante.</para> - - </sect3> - </sect2> - - <sect2> - <title>Exemples de commandes IPFW</title> - - <para>Cette commande empêchera le routeur de transmettre tous les - paquets venant de la machine - <hostid role="fqdn">sales.pirates.org</hostid> vers le port - “telnet” de la machine - <hostid role="fqdn">chics.types.org</hostid>:</para> - - <informalexample> - <screen>&prompt.root <userinput>ipfw add deny tcp from sales.pirates.org to chics.types.org 23</userinput></screen> - </informalexample> - - <para>L'exemple suivant rejette tout trafic TCP venant du réseau - <hostid role="domainname">pirates.org</hostid> (un réseau de classe - C) vers la machine - <hostid role="fqdn">chics.types.org</hostid> machine (quel que - soit le port).</para> - - <informalexample> - <screen>&prompt.root; <userinput>ipfw add deny log tcp from sales.pirates.org/24 to chics.types.org</userinput></screen> - </informalexample> - - <para>Si vous ne voulez pas que l'on puisse ouvrir de sessions X - sur votre réseau interne (un sous-réseau d'un réseau de classe C), - la commande suivante applique le filtrage adéquat:</para> - - <informalexample> - <screen>&prompt.root; <userinput>ipfw add deny tcp from any to mon.reseau.org/28 6000 setup</userinput></screen> - </informalexample> - - <para>Pour lister les informations comptables: - - <informalexample> - <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen> - </informalexample> ou en abrégé: - - <informalexample> - <screen>&prompt.root; <userinput>ipfw -a l</userinput></screen> - </informalexample> Vous pouvez aussi voir la dernière date - d'application d'une règle avec: - - <informalexample> - <screen>&prompt.root; <userinput>ipfw -at l</userinput></screen> - </informalexample></para> - - </sect2> - - <sect2> - <title>Mettre en oeuvre un coupe-feu filtrant</title> - - <note> - <para>Les suggestions ci-dessous ne sont rien que des suggestions. - Les contraintes varient d'un coupe-feu à l'autre et je ne peux - pas vous dire comment mettre en place le coupe-feu qui réponde - à votre besoin particulier.</para> - </note> - - <para>Lorsque vous commencez à configurer votre coupe-feu, à moins - que vous n'ayez un banc d'essai pour faire vos tests dans un - environnement que vous contrôlez, je vous conseille - vivement d'utiliser les options de trace des commandes après avoir - compilé un noyau supportant les traces du coupe-feu. Vous pourrez - ainsi identifier rapidement les problèmes et y remédier sans - provoquer trop de gêne. Même par la suite, je vous conseille de - conserver l'option pour les commandes <command>deny</command>, - ce qui vous permettra de tracer les attaques éventuelles et aussi de - modifier vos règles si vos besoins évoluent.</para> - - <note> - <para>Tracer les commandes <command>accept</command> aboutit - à de gros volumes de fichiers de trace, puisqu'il y a une - ligne pour chaque paquet qui transite par le coupe-feu. Les - transferts ftp/http importants ralentissent alors sérieusement - le système. Cela augmente aussi le temps de latence pour ces - paquets, parce que cela demande au noyau plus de traitement - avant de les passer. <command>syslogd</command> utilisera aussi - plus de temps CPU pour écrire toutes ces informations sur disque - et peut même assez rapidement saturer la partition sur laquelle - réside le répertoire <filename>/var/log</filename>.</para> - </note> - - <para>Tel qu'il est livré, FreeBSD ne sait pas charger les règles - du coupe-feu au démarrage du système. Je vous suggère d'appeler - une procédure ad-hoc depuis la procédure - <filename>/etc/netstart</filename>. Mettez cette procédure assez tôt - dans le fichier <filename>netstart</filename>, de sorte que le - coupe-feu soit configuré avant les interfaces IP. Il n'y a ainsi - pas de possibilité d'accès tant que votre réseau est encore - ouvert.</para> - - <para>Employez la méthode que vous voulez pour charger les règles. - La commande <command>ipfw</command> ne peut pas charger toutes - les règles en une seule fois. Je procède de la façon - suivante:</para> - - <informalexample> - <screen>&prompt.root; <userinput>ipfw list</userinput></screen> - </informalexample> - - <para>pour écrire dans un fichier les règles que j'ai définies. Puis - j'édite ce fichier pour ajouter <literal>ipfw</literal> au début - de chaque ligne. La procédure peut alors être exécutée pour - recharger les règles. C'est n'est peut-être pas la façon la - plus efficace de procéder, mais cela marche.</para> - - <para>La question suivante est de savoir ce que votre coupe-feu - doit réellement <emphasis>faire</emphasis>! Cela dépend dans une - large mesure des accès que vous voulez autoriser de l'extérieur - à votre réseau et vice-versa. Voici quelques règles - générales:</para> - - <itemizedlist> - - <listitem> - <para>Bloquez tous les accès entrants sur des ports TCP - en dessous de 1024. C'est là que les services les plus - problématiques pour la sécurité se trouvent, comme - finger, SMTP (courrier électronique) et telnet.</para> - </listitem> - - <listitem> - <para>Bloquez <emphasis>tout</emphasis> traffic UDP entrant. - Il y a très peu de services utiles qui fonctionnent sur UDP, - et les services qui sont utiles menacent généralement la - sécurité (e.g. Les protocoles RPC et NFS de Sun). Cela - présente l'inconvénient que, comme le protocole UDP est - sans état, les réponses aux requêtes UDP sortantes sont - aussi bloquées. Cela peut poser problème à des utilisateurs - internes qui veulent interroger des serveurs archie (prospero) - externes. Si vous voulez autoriser l'accès à archie, vous - devez accepter les paquets UDP venant des ports 191 et 1525 - sur n'importe quel port UDP interne. ntp est un autre service - que vous pouver envisager d'autoriser; il utilise le port - 123.</para> - </listitem> - - <listitem> - <para>Bloquez le trafic entrant vers le port 6000. Le port - 6000 est utilisé pour accèder aux serveurs X11, et peut - présenter des risques pour la sécurité (en particulier - si les gens ont l'habitude d'utiliser - <command>xhost +</command> sur leur station de travail). - X11 peut en fait utiliser une plage de ports commençant - au port 6000, la limite supérieure dépendant du nombre - de sessions d'affichage qu'accepte la machine. La limite - définie par la RFC 1700 est 6063.</para> - </listitem> - - <listitem> - <para>Répertoriez les ports utilisés par les serveurs - internes (e.g. serveurs SQL, ...). C'est probablement - une bonne idée de les bloquer aussi, car ils sont - normalement hors de la plage 1-1024 décrite plus haut.</para> - </listitem> - - </itemizedlist> - - - <para>Le CERT propose d'autres recommendations pour la configuration - d'un coupe-feu à l'adresse - <ulink url="ftp://ftp.cert.org/pub/tech_tips/packet_filtering">ftp://ftp.cert.org/pub/tech_tips/packet_filtering</ulink>.</para> - - <para>Comme je l'ai dit plus haut, ce ne sont que des - <emphasis>propositions</emphasis>. Vous devrez définir vous-même - les règles à appliquer à votre coupe-feu. Je ne peux endosser - AUCUNE responsabilité si quelqu'un s'infiltre sur votre réseau, - même si vous suivez les conseils donnés ci-dessus.</para> - - </sect2> - </sect1> - </chapter> -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-shorttag: nil - sgml-always-quote-attributes: t - sgml-minimize-attributes: max - sgml-parent-document: ("../handbook.sgml" "part" "chapter") - End: ---> |