harden-doc 3.19 - en to fr translation catalogue (445 entries)

en: After installation
fr: Après l'installation

en: Once the system is installed you can still do more to secure the system; some of the steps described in this chapter can be taken. Of course this really depends on your setup but for physical access prevention you should read <xref linkend="bios-boot" />,<xref linkend="lilo-passwd" />, <xref linkend="kernel-root-prompt" />, <xref linkend="restrict-console-login" />, and <xref linkend="restrict-reboots" />.
fr: Une fois que le système est installé, vous pouvez encore en faire plus pour sécuriser le système; certaines des étapes décrites ci-dessous peuvent être effectuées. Bien sûr, cela dépend vraiment de la configuration, mais pour prévenir un accès physique, vous devriez consulter <xref linkend="bios-boot"/>, <xref linkend="lilo-passwd"/>, <xref linkend="kernel-root-prompt"/>, <xref linkend="restrict-console-login"/> et <xref linkend="restrict-reboots"/>.

en: Before connecting to any network, especially if it's a public one you should, at the very least, execute a security update (see <xref linkend="security-update" />). Optionally, you could take a snapshot of your system (see <xref linkend="snapshot" />).
fr: Avant de vous connecter à tout réseau, particulièrement s'il s'agit d'un réseau public, vous devriez, au minimum, faire une mise à jour de sécurité (consultez <xref linkend="security-update" />). Vous pourriez facultativement faire un instantané du système (consultez <xref linkend="snapshot" />).

en: Subscribe to the Debian Security Announce mailing list
fr: S'abonner à la liste de diffusion Debian Security Announce

en: In order to receive information on available security updates you should subscribe yourself to the debian-security-announce mailing list in order to receive the Debian Security Advisories (DSAs). See <xref linkend="debian-sec-team" /> for more information on how the Debian security team works. For information on how to subscribe to the Debian mailing lists read <ulink url="http://lists.debian.org" />.
fr: Pour recevoir des informations sur les mises à jour de sécurité disponibles, vous devriez vous abonner à la liste de diffusion debian-security-announce pour recevoir les bulletins de sécurité de Debian<footnote><para>Debian Security Advisories (DSA).</para></footnote>. Consultez <xref linkend="debian-sec-team" /> pour plus d'informations sur le fonctionnement de l'équipe en charge de la sécurité Debian. Pour des informations sur l'inscription aux listes de diffusion Debian, consultez <ulink url="http://lists.debian.org" />.

en: DSAs are signed with the Debian Security Team's signature which can be retrieved from <ulink url="http://security.debian.org" />.
fr: Les DSA sont signées avec la clef de l'équipe de sécurité Debian qui peut être récupérée sur <ulink url="http://security.debian.org" />.

en: You should consider, also, subscribing to the <ulink url="http://lists.debian.org/debian-security" /> for general discussion on security issues in the Debian operating system. You will be able to contact other fellow system administrators in the list as well as Debian developers and upstream developers of security tools who can answer your questions and offer advice.
fr: Vous devriez également envisager de vous abonner à la <ulink url="http://lists.debian.org/debian-security" name="liste de diffusion debian-security" /> pour des discussions générales sur les problèmes de sécurité dans le système d'exploitation Debian. Vous pourrez entrer en contact avec d'autres administrateurs système ainsi qu'avec des développeurs Debian et des développeurs amont d'outils de sécurité qui pourront répondre à vos questions et proposer leurs conseils.

en: FIXME: Add the key here too?
fr: FIXME : Ajouter la clef ici également?

en: Execute a security update
fr: Faire une mise à jour de sécurité

en: As soon as new security bugs are detected in packages, Debian maintainers and upstream authors generally patch them within days or even hours. After the bug is fixed, a new package is provided on <ulink url="http://security.debian.org" />.
fr: Dès que de nouveaux bogues de sécurité sont décelés dans les paquets, les responsables Debian et les auteurs amont les corrigent généralement dans les journées ou les heures suivantes. Une fois le bogue résolu, un nouveau paquet est fourni sur <ulink url="http://security.debian.org" name="http://security.debian.org" />.

en: If you are installing a Debian release you must take into account that since the release was made there might have been security updates after it has been determined that a given package is vulnerable. Also, there might have been minor releases (there have been four for the Debian 3.0 <emphasis>sarge</emphasis> release) which include these package updates.
fr: Si vous installez une version de Debian, vous devez prendre en compte le fait qu'il a pu y avoir des mises à jour de sécurité depuis la parution, à chaque fois qu'une vulnérabilité a été découverte dans un paquet. Ainsi, des révisions mineures (il y en a eu quatre dans la version Debian 3.0 <emphasis>Sarge</emphasis>) incluent ces mises à jour de paquets.

en: During installation security updates are configured for your system and pending updates downloaded and applied, unless you specifically opt out of this or the system was not connected to the Internet. The updates are applied even before the first boot, so the new system starts its life as up to date as possible.
fr: Pendant l'installation, les mises à jour de sécurité sont configurées sur le système, et les mises à jour en attente sont téléchargées et appliquées, sauf indication contraire ou si le système n'est pas connecté à Internet. Les mises à jour sont appliquées avant même le premier démarrage, de telle sorte que le nouveau système commence sa vie aussi à jour que possible.

en: To manually update the system, put the following line in your <filename>sources.list</filename> and you will get security updates automatically, whenever you update your system. Replace <replaceable>[CODENAME]</replaceable> with the release codename, e.g. <emphasis>squeeze</emphasis>.
fr: Pour mettre à jour vous-même le système, ajoutez la ligne suivante dans le <filename>sources.list</filename> et vous recevrez les mises à jour de sécurité automatiquement quand vous mettrez à jour le système. Remplacez <emphasis>[NOM]</emphasis> par le nom de la version, par exemple <emphasis>squeeze</emphasis>.

en: 
      deb http://security.debian.org/ [CODENAME]/updates main contrib non-free
fr: 
    deb http://security.debian.org/ [NOM]/updates main contrib non-free

en: <emphasis>Note</emphasis>: If you are using the <emphasis>testing</emphasis> branch use the security testing mirror sources as described in <xref linkend="security-support-testing" />.
fr: <emphasis>Remarque</emphasis> : si vous utilisez la distribution <emphasis>testing</emphasis>, utilisez les source du miroir de sécurité de testing conformément à <xref linkend="security-support-testing" />.

en: Once you've done this you can use multiple tools to upgrade your system. If you are running a desktop system you will have<footnote><para>In <emphasis>Etch</emphasis> and later releases</para></footnote> an application called <command>update-notifier</command> that will make it easy to check if new updates are available, by selecting it you can make a system upgrade from the desktop (using <command>update-manager</command>). For more information see <xref linkend="update-desktop" />. In desktop environments you can also use <application>synaptic</application> (GNOME), <application>kpackage</application> or <application>adept</application> (KDE) for more advanced interfaces. If you are running a text-only terminal you can use <application>aptitude</application>, <application>apt</application> or <application>dselect</application> (deprecated) to upgrade:
fr: Après avoir fait cela, plusieurs outils vous permettent de mettre à niveau le système. S'il s'agit d'un ordinateur de bureau, une application appelée <command>update-notifier</command><footnote><para>Depuis <emphasis>Etch</emphasis>.</para></footnote> permet de vérifier facilement si de nouvelles mises à niveau sont disponibles. En choisissant cela, vous pouvez faire les mises à niveau depuis le bureau (en utilisant <command>update-manager</command>). Pour obtenir plus de renseignements, veuillez consulter <xref linkend="update-desktop" />. Dans les environnements de bureau, vous pouvez aussi utiliser <application>synaptic</application> (GNOME), <application>kpackage</application> ou <application>adept</application> (KDE) pour des interfaces plus avancées. Si le système ne possède qu'un terminal texte, vous pouvez utiliser <application>aptitude</application>, <application>apt</application> ou <application>dselect</application> (obsolète) pour mettre à niveau.

en: If you want to use <application>aptitude</application>'s text interface you just have to press <emphasis>u</emphasis> (update) followed by <emphasis>g</emphasis> (to upgrade). Or just do the following from the command line (as root):
fr: Si vous voulez utiliser l'interface texte d'<application>aptitude</application>, il suffit d'appuyer sur <emphasis>u</emphasis> (mise à jour) suivi de <emphasis>g</emphasis> (pour mettre à niveau). Vous pouvez aussi utiliser simplement la ligne de commande (en tant que superutilisateur) :

en: If you want to use <application>apt</application> do just like with aptitude but substitute the <command>aptitude</command> lines above with <command>apt-get</command>.
fr: Si vous voulez utiliser <application>apt</application>, il suffit de faire comme pour <command>aptitude</command>, mais en remplaçant <command>aptitude</command> des lignes précédentes par <command>apt-get</command>.

en: If you want to use <application>dselect</application> then first [U]pdate, then [I]nstall and finally, [C]onfigure the installed/upgraded packages.
fr: Si vous voulez utiliser <application>dselect</application>, choisissez tout d'abord mise à jo[U]r, puis [I]nstaller et enfin [C]onfigurer pour mettre à jour et installer les paquets.

en: If you like, you can add the deb-src lines to <filename>/etc/apt/sources.list</filename> as well. See <citerefentry><refentrytitle>apt</refentrytitle><manvolnum>8</manvolnum></citerefentry> for further details.
fr: Si vous le voulez, vous pouvez ajouter également les lignes deb-src à <filename>/etc/apt/sources.list</filename>. Consultez  <citerefentry><refentrytitle>apt</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour plus de détails.

en: Security update of libraries
fr: Mise à jour de sécurité des bibliothèques

en: Once you have executed a security update you might need to restart some of the system services. If you do not do this, some services might still be vulnerable after a security upgrade. The reason for this is that daemons that are running before an upgrade might still be using the old libraries before the upgrade <footnote><para>Even though the libraries have been removed from the filesystem the inodes will not be cleared up until no program has an open file descriptor pointing to them.</para></footnote>.
fr: Une fois que vous avez exécuté une mise à jour de sécurité, il se peut que vous deviez redémarrer certains des services système. Si vous ne faites pas cela, certains services pourraient encore être vulnérables après une mise à jour de sécurité. La raison pour cela est que les démons qui fonctionnent avec une mise à jour peuvent encore utiliser les anciennes bibliothèques après la mise à jour<footnote><para>Bien que les bibliothèques aient été supprimées du système de fichiers, aucun inœud ne sera nettoyé tant qu'un programme a encore un descripteur de fichier pointant dessus.</para></footnote>. Pour détecter quels démons peuvent devoir être redémarrés, vous pouvez utiliser le programme <command>checkrestart</command> (disponible dans le paquet <application>debian-goodies</application>) ou utiliser cette ligne de commande<footnote><para>En fonction de la version de lsof, vous pourriez avoir besoin de remplacer &#36;9 par &#36;8.</para></footnote> (en tant que superutilisateur):

en: From Debian <emphasis>Jessie</emphasis> and up, you can install the <application>needrestart</application> package, which will run automatically after each APT upgrade and prompt you to restart services that are affected by the just-installed updates. In earlier releases, you can run the <command>checkrestart</command> program (available in the <application>debian-goodies</application> package) manually after your APT upgrade.
fr: À partir de Debian <emphasis>Jessie</emphasis>, il est possible d'installer le paquet <application>needrestart</application> qui s'exécutera après chacune mise à niveau par APT et vous demandera de redémarrer les services qui ont été affectés par les mises à jour qui viennent d'être installées. Dans les versions antérieures, vous pouvez exécuter vous-même le programme <command>checkrestart</command> (disponible dans le paquet <application>debian-goodies</application>) après la mise à niveau par APT.

en: Bringing the system to run level 1 (single user) and then back to run level 3 (multi user) should take care of the restart of most (if not all) system services. But this is not an option if you are executing the security upgrade from a remote connection (like ssh) since it will be severed.
fr: Faire passer le système en niveau d'exécution1 (utilisateur seul), puis ensuite au niveau d'exécution3 (multiutilisateur) devrait entraîner le redémarrage de la plupart (si ce n'est tous) des services système. Mais cela n'est pas envisageable si vous exécutez la mise à jour de sécurité depuis une connexion distante (comme SSH) car celle-ci serait alors interrompue.

en: Excercise caution when dealing with security upgrades if you are doing them over a remote connection like ssh. A suggested procedure for a security upgrade that involves a service restart is to restart the SSH daemon and then, immediately, attempt a new ssh connection without breaking the previous one. If the connection fails, revert the upgrade and investigate the issue.
fr: Apportez le plus grand soin lors des mises à jour de sécurité si vous les réalisez depuis une connexion à distance comme SSH. Une procédure suggérée pour une mise à jour de sécurité qui implique un redémarrage de services est de redémarrer le démon SSH, puis immédiatement de tenter une nouvelle connexion SSH sans interrompre la précédente. Si la connexion échoue, annulez la mise à jour et analysez le problème.

en: Security update of the kernel
fr: Mise à jour de sécurité du noyau

en: First, make sure your kernel is being managed through the packaging system. If you have installed using the installation system from Debian 3.0 or previous releases, your kernel is <emphasis>not</emphasis> integrated into the packaging system and might be out of date. You can easily confirm this by running:
fr: Assurez-vous tout d'abord que le noyau est géré par le système de gestion des paquets. Si vous l'avez installé en utilisant le système d'installation de Debian3.0 ou de versions précédentes, le noyau <emphasis>n'est pas</emphasis> intégré dans le système de gestion des paquets et pourrait être obsolète. Vous pouvez facilement confirmer cela en exécutant:

en: 
    $ dpkg -S `readlink -f /vmlinuz`
    linux-image-2.6.18-4-686: /boot/vmlinuz-2.6.18-4-686
fr: 
    &#36; dpkg -S `readlink -f /vmlinuz`
    linux-image-2.6.18-4-686: /boot/vmlinuz-2.6.18-4-686

en: If your kernel is not being managed you will see a message saying that the package manager did not find the file associated to any package instead of the message above, which says that the file associated to the current running kernel is being provided by the <application>linux-image-2.6.18-4-686</application>. So first, you will need to manually install a kernel image package. The exact kernel image you need to install depends on your architecture and your prefered kernel version. Once this is done, you will be able to manage the security updates of the kernel just like those of any other package. In any case, notice that the kernel updates will <emphasis>only</emphasis> be done for kernel updates of the same kernel version you are using, that is, <command>apt</command> will not automatically upgrade your kernel from the 2.4 release to the 2.6 release (or from the 2.4.26 release to the 2.4.27 release<footnote><para>Unless you have installed a kernel metapackage like <application>linux-image-2.6-686</application> which will always pull in the latest kernel minor revision for a kernel release and a given architecture.</para></footnote>).
fr: Si le noyau n'est pas géré, vous verrez un message indiquant que le gestionnaire de paquets n'a pas trouvé le fichier associé à un paquet au lieu du message ci-dessus, qui dit que le fichier associé au noyau actuellement en fonctionnement est fourni par le paquet <application>linux-image-2.6.18-4-686</application>. Dans le premier cas, vous devrez installer manuellement un paquet d'image de noyau. L'image exacte du noyau que vous devez installer dépend de l'architecture et de la version de noyau préférée. Une fois fait, vous pourrez gérer les mises à jour de sécurité du noyau comme pour tout autre paquet. Dans tous les cas, notez que les mises à jour du noyau ne seront faites <emphasis>que</emphasis> pour la même version du noyau que celui que vous utilisez, c'est-à-dire que <command>apt</command> ne va pas mettre à jour automatiquement le noyau de la version2.4 à la version2.6 (ou de la version2.4.26 à la version2.4.27<footnote><para>Sauf si vous avez installé un métapaquet de noyau comme <application>linux-image-2.6-686</application> qui va toujours tirer la dernière révision mineure de noyau pour une version de noyau et une architecture donnée.</para></footnote>).

en: The installation system of recent Debian releases will handle the selected kernel as part of the package system. You can review which kernels you have installed by running:
fr: Le système d'installation des dernières versions de Debian gérera le noyau sélectionné comme partie du système de gestion des paquets. Vous pouvez vérifier quels noyaux sont installés en exécutant:

en: 
    $ COLUMNS=150 dpkg -l 'linux-image*' | awk '$1 ~ /ii/ { print $0 }'
fr: 
    &#36; COLUMNS=150 dpkg -l 'linux-image*' | awk '&#36;1 ~ /ii/ { print &#36;0 }'

en: To see if your kernel needs to be updated run:
fr: Pour voir si le noyau doit être mis à jour, exécutez:

en: 
    $ kernfile=`readlink -f /vmlinuz`
    $ kernel=`dpkg -S $kernfile | awk -F : '{print $1}'`
    $ apt-cache policy $kernel
    linux-image-2.6.18-4-686:
      Installed: 2.6.18.dfsg.1-12
      Candidate: 2.6.18.dfsg.1-12
      Version table:
     *** 2.6.18.dfsg.1-12 0
            100 /var/lib/dpkg/status
fr: 
    &#36; kernfile=`readlink -f /vmlinuz`
    &#36; kernel=`dpkg -S &#36;kernfile | awk -F : '{print &#36;1}'`
    &#36; apt-cache policy &#36;kernel
    linux-image-2.6.32-5-686:
      Installé : 2.6.32-35
      Candidat : 2.6.32-35
      Table de version :
     *** 2.6.32-35
            100 /var/lib/dpkg/status

en: If you are doing a security update which includes the kernel image you <emphasis>need</emphasis> to reboot the system in order for the security update to be useful. Otherwise, you will still be running the old (and vulnerable) kernel image.
fr: Si vous effectuez une mise à jour de sécurité incluant l'image du noyau, vous <emphasis>devez</emphasis> redémarrer le système pour que la mise à jour de sécurité soit utile. Sinon, vous utiliserez encore l'ancienne image de noyau (vulnérable).

en: If you need to do a system reboot (because of a kernel upgrade) you should make sure that the kernel will boot up correctly and network connectivity will be restored, specially if the security upgrade is done over a remote connection like ssh. For the former you can configure your boot loader to reboot to the original kernel in the event of a failure (for more detailed information read <ulink url="http://www.debian-administration.org/?article=70">Remotely rebooting Debian GNU/Linux machines</ulink>). For the latter you have to introduce a network connectivity test script that will check if the kernel has started up the network subsystem properly and reboot the system if it did not<footnote><para>A sample script called <ulink url="http://www.debian-administration.org/articles/70/testnet">testnet</ulink> is available in the <ulink url="http://www.debian-administration.org/?article=70"> Remotely rebooting Debian GNU/Linux machines</ulink> article. A more elaborate network connectivity testing script is available in this <ulink url="http://www.debian-administration.org/?article=128"> Testing network connectivity article.</ulink></para></footnote>. This should prevent nasty surprises like updating the kernel and then realizing, after a reboot, that it did not detect or configure the network hardware properly and you need to travel a long distance to bring the system up again. Of course, having the system serial console <footnote><para>Setting up a serial console is beyond the scope of this document, for more information read the <ulink url="http://www.tldp.org/HOWTO/Serial-HOWTO.html">Serial HOWTO</ulink> and the <ulink url="http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html"> Remote Serial Console HOWTO</ulink>.</para></footnote> in the system connected to a console or terminal server should also help debug reboot issues remotely.
fr: Si vous devez effectuer un redémarrage du système (à cause d'une mise à jour du noyau), vous devriez vous assurer que le noyau démarrera correctement et que la connectivité réseau sera restaurée, particulièrement si la mise à jour de sécurité est réalisée depuis une connexion à distance comme SSH. Pour le premier point, vous pouvez configurer le chargeur d'amorçage pour redémarrer l'ancien noyau en cas d'échec (pour des informations plus détaillées, veuillez consulter (en anglais) <ulink url="http://www.debian-administration.org/?article=70" name="Remotely rebooting Debian GNU/Linux machines" />). Pour le second point, vous devez introduire un script de test de connectivité réseau qui vérifiera si le noyau a lancé le sous-système réseau correctement et qui redémarrera le système si ce n'est pas le cas<footnote><para>Un exemple d'un tel script appelé <ulink url="http://www.debian-administration.org/articles/70/testnet" name="testnet" /> est disponible dans l'article <ulink url="http://www.debian-administration.org/?article=70" name="Remotely rebooting Debian GNU/Linux machines" />. Un script de test de connectivité réseau plus élaboré est disponible dans l'article <ulink url="http://www.debian-administration.org/?article=128" name="Testing network connectivity" />.</para></footnote>. Cela devrait éviter des surprises désagréables comme une mise à jour du noyau en réalisant après un redémarrage qu'il n'a pas détecté ou configuré le matériel réseau correctement et que vous devez parcourir une longue distance pour relancer à nouveau le système. Bien sûr, avoir la console série<footnote><para>Configurer une console série est en dehors du cadre de ce document, pour plus d'informations, veuillez consulter le <ulink url="http://www.tldp.org/HOWTO/Serial-HOWTO.html" name="Serial HOWTO" /> et le <ulink url="http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html" name="Remote Serial Console HOWTO" />.</para></footnote> du système connectée à une console ou un serveur de terminal devrait également aider à déboguer à distance les problèmes de redémarrage.

en: Change the BIOS (again)
fr: Changer le BIOS (à nouveau)

en: Remember <xref linkend="bios-passwd" />? Well, then you should now, once you do not need to boot from removable media, to change the default BIOS setup so that it <emphasis>only</emphasis> boots from the hard drive. Make sure you will not lose the BIOS password, otherwise, in the event of a hard disk failure you will not be able to return to the BIOS and change the setup so you can recover it using, for example, a CD-ROM.
fr: Vous vous souvenez de <xref linkend="bios-passwd" />? Et bien, vous devriez maintenant, une fois que vous n'avez plus besoin de démarrer à partir d'un support amovible, changer la configuration par défaut du BIOS pour qu'il ne puisse démarrer <emphasis>que</emphasis> depuis le disque dur. Assurez-vous de ne pas perdre le mot de passe BIOS, sinon, en cas de défaillance du disque dur, vous ne pourrez pas retourner dans le BIOS et modifier la configuration pour le récupérer en utilisant, par exemple, un CD.

en: Another less secure but more convenient way is to change the setup to have the system boot up from the hard disk and, if it fails, try removable media. By the way, this is often done because most people don't use the BIOS password that often; it's easily forgotten.
fr: Un autre moyen moins sécurisé, mais plus pratique est de changer la configuration pour que le système s'amorce depuis le disque dur et, si cela échoue, d'essayer un support amovible. À propos, c'est ainsi fait parce que la plupart des personnes n'utilisent pas le mot de passe BIOS très souvent; il est facilement oublié.

en: Set a LILO or GRUB password
fr: Attribuer un mot de passe à LILO ou GRUB

en: Anybody can easily get a root-shell and change your passwords by entering
fr: N'importe qui peut obtenir facilement une invite de commandes superutilisateur et changer les mots de passe en entrant à l'invite d'amorçage

en: at the boot prompt. After changing the passwords and rebooting the system, the person has unlimited root-access and can do anything he/she wants to the system. After this procedure you will not have root access to your system, as you do not know the root password.
fr: Après le changement du mot de passe et le redémarrage du système, la personne a un accès superutilisateur illimité et peut faire tout ce qu'elle veut sur le système. Après cela, vous n'aurez plus d'accès supertilisateur sur la machine, étant donné que vous ne connaîtrez pas le mot de passe.

en: To make sure that this cannot happen, you should set a password for the boot loader. You can choose between a global password or a password for a certain image.
fr: Pour être sûr que cela ne puisse pas se produire, vous devriez attribuer un mot de passe au démarrage. Vous avez le choix entre un mot de passe global et un mot de passe par image.

en: For LILO you need to edit the config file <filename>/etc/lilo.conf</filename> and add a <userinput>password</userinput> and <userinput>restricted</userinput> line as in the example below.
fr: Pour LILO, vous avez besoin d'éditer le fichier <filename>/etc/lilo.conf</filename> et ajouter les lignes <userinput>password</userinput> ainsi que <userinput>restricted</userinput> comme dans l'exemple suivant.

en: 
      image=/boot/2.2.14-vmlinuz
         label=Linux
         read-only
         password=hackme
         restricted
fr: 
    image=/boot/2.2.14-vmlinuz
         label=Linux
         read-only
         password=piratemoi
         restricted

en: Then, make sure that the configuration file is not world readable to prevent local users from reading the password. When done, rerun lilo. Omitting the <literal>restricted</literal> line causes lilo to always prompt for a password, regardless of whether LILO was passed parameters. The default permissions for <filename>/etc/lilo.conf</filename> grant read and write permissions to root, and enable read-only access for <filename>lilo.conf</filename>'s group, root.
fr: Puis, assurez-vous que le fichier de configuration n'est pas lisible par tout le monde pour empêcher des utilisateurs locaux de lire le mot de passe. Une fois terminé, relancez lilo. Omettre la ligne <literal>restricted</literal> entraîne une attente de mot de passe, en dépit des paramètres passés à LILO. Les permissions par défaut pour le fichier <filename>/etc/lilo.conf</filename> accordent au superutilisateur les droits de lecture et d'écriture et permettent un accès en lecture seule pour le groupe de configuration de <filename>lilo.conf</filename>, à savoir root.

en: If you use GRUB instead of LILO, edit <filename>/boot/grub/menu.lst</filename> and add the following two lines at the top (substituting, of course <userinput>hackme</userinput> with the desired password). This prevents users from editing the boot items. <userinput>timeout 3</userinput> specifies a 3 second delay before <command>grub</command> boots the default item.
fr: Si vous utilisez GRUB plutôt que LILO, éditez <filename>/boot/grub/menu.lst</filename> et ajoutez les deux lignes suivantes en début (en remplaçant, bien sûr, <userinput>hackme</userinput> par le mot de passe désiré). Cela empêche les utilisateurs d'éditer les options de démarrage. <userinput>timeout 3</userinput> indique un délai de 3 secondes avant que <command>grub</command> démarre l'option par défaut.

en: 
      timeout 3
      password hackme
fr: 
    timeout 3
      password piratemoi

en: To further harden the integrity of the password, you may store the password in an encrypted form. The utility <command>grub-md5-crypt</command> generates a hashed password which is compatible with GRUB's encrypted password algorithm (MD5). To specify in <command>grub</command> that an MD5 format password will be used, use the following directive:
fr: Pour aller plus loin dans le durcissement de l'intégrité du mot de passe, vous pourriez entreposer le mot de passe sous une forme chiffrée. L'utilitaire <command>grub-md5-crypt</command> génère un hachage de mot de passe qui est compatible avec l'algorithme du mot de passe GRUB (MD5). Pour indiquer à <command>grub</command> qu'un mot de passe au format MD5 va être utilisé, utilisez la directive suivante:

en: 
      timeout 3
      password --md5 $1$bw0ez$tljnxxKLfMzmnDVaQWgjP0
fr: 
    timeout 3
      password --md5 &#36;1&#36;T/vfEWUQ&#36;t8xoW.5kp3nbqc1zOwa3W1

en: The --md5 parameter was added to instruct <command>grub</command> to perform the MD5 authentication process. The provided password is the MD5 encrypted version of hackme. Using the MD5 password method is preferable to choosing its clear-text counterpart. More information about <command>grub</command> passwords may be found in the <application>grub-doc</application> package.
fr: Le paramètre --md5 a été ajouté pour informer <command>grub</command> d'effectuer la procédure d'authentification md5. Le mot de passe fourni est la version MD5 chiffrée de piratemoi. L'utilisation de la méthode MD5 pour le mot de passe est préférable à la méthode précédente dont le mot de passe est en clair. Plus d'informations concernant les mots de passe <command>grub</command> sont disponibles dans le paquet <application>grub-doc</application>.

en: Disable root prompt on the initramfs
fr: Désactivation de l'invite superutilisateur de l'initramfs

en: Note: This applies to the default kernels provided for releases after Debian 3.1
fr: Note: cela s'applique aux noyaux fournis par défaut après Debian 3.1.

en: Linux 2.6 kernels provide a way to access a root shell while booting which will be presented during loading the initramfs on error. This is helpful to permit the administrator to enter a rescue shell with root permissions. This shell can be used to manually load modules when autodetection fails. This behavior is the default for <command>initramfs-tools</command> generated initramfs. The following message will appear:
fr: Les noyaux Linux 2.6 fournissent un moyen d'accéder à une invite de commande de superutilisateur lors de l'amorçage et qui sera présentée pendant le chargement de l'initramfs en cas d'erreur. C'est pratique pour permettre à l'administrateur d'entrer une invite de commande de secours avec des droits du superutilisateur. Cette invite de commande peut être utilisée pour charger vous-même des modules quand la détection automatique échoue. Ce comportement est celui par défaut pour les initramfs créés par <command>initramfs-tools</command>. Le message suivant apparaîtra:

en: In order to remove this behavior you need to set the following boot argument:<emphasis>panic=0</emphasis>. Add this to the variable <varname>GRUB_CMDLINE_LINUX</varname> in <filename>/etc/default/grub</filename> and issue <command>update-grub</command> or to the append section of <filename>/etc/lilo.conf</filename>.
fr: Afin de supprimer ce comportement, vous devez configurer l'argument d'amorçage suivant : <emphasis>panic=0</emphasis>. Ajoutez-le soit a la variable <varname>GRUB_CMDLINE_LINUX</varname> a <filename>/etc/default/grub</filename> et exécutez<command>update-grub</command>, soit à la section append de <filename>/etc/lilo.conf</filename>.

en: Remove root prompt on the kernel
fr: Enlever l'invite superutilisateur du noyau

en: Note: This does not apply to the kernels provided for Debian 3.1 as the timeout for the kernel delay has been changed to 0.
fr: Note: cela ne s'applique pas aux noyaux fournis par Debian3.1, car le temps d'attente du noyau a été modifié à 0.

en: Linux 2.4 kernels provide a way to access a root shell while booting which will be presented just after loading the cramfs file system. A message will appear to permit the administrator to enter an executable shell with root permissions, this shell can be used to manually load modules when autodetection fails. This behavior is the default for <command>initrd</command>'s <filename>linuxrc</filename>. The following message will appear:
fr: Les noyaux Linux 2.4 fournissent un moyen d'accéder à une invite de commandes superutilisateur lors de l'amorçage et qui sera présenté juste après le chargement du système de fichiers cramfs. Un message apparaîtra pour permettre à l'administrateur d'obtenir une invite de commandes interactive avec des droits du superutilisateur, cette invite de commandes peut être utilisée pour charger manuellement des modules quand la détection automatique échoue. Ce comportement est celui par défaut pour <filename>linuxrc</filename> de l'<command>initrd</command>. Le message suivant apparaîtra:

en: In order to remove this behavior you need to change <filename>/etc/mkinitrd/mkinitrd.conf</filename> and set:
fr: Pour supprimer ce comportement, vous devez changer <filename>/etc/mkinitrd/mkinitrd.conf</filename> et positionner:

en: 
      # DELAY  The  number  of seconds the linuxrc script should wait to
      # allow the user to interrupt it before the system is brought up
      DELAY=0
fr: 
    # DELAY  Le temps, en seconde que le script linuxrc doit
      # attendre pour permettre à l'utilisateur de l'interrompre
      # avant que le système ne soit lancé
      DELAY=0

en: Then regenerate your ramdisk image. You can do this for example with:
fr: Puis, régénérez l'image de ramdisk. Vous pouvez faire cela ainsi, par exemple:

en: or (preferred):
fr: ou (de préférence):

en: Restricting console login access
fr: Restreindre les accès aux consoles

en: Some security policies might force administrators to log in to the system through the console with their user/password and then become superuser (with <command>su</command> or <command>sudo</command>). This policy is implemented in Debian by editing the <filename>/etc/pam.d/login</filename> and the <filename>/etc/securetty</filename> when using PAM:
fr: Certaines règles de sécurité peuvent forcer les administrateurs à se connecter au système sur une console avec leur identifiant et mot de passe puis devenir superutilisateur (avec <command>su</command> ou <command>sudo</command>). Cette règle est appliquée sous Debian en éditant les fichiers <filename>/etc/pam.d/login</filename> et <filename>/etc/securetty</filename> lors de l'utilisation de PAM :

en: <filename>/etc/pam.d/login</filename> In older Debian releases you would need to edit <filename>login.defs</filename>, and use the CONSOLE variable which defines a file or list of terminals on which root logins are allowed. enables the pam_securetty.so module. This module, when properly configured will not ask for a password when the root user tries to login on an insecure console, rejecting access as this user.
fr: <filename>/etc/pam.d/login</filename> <footnote><para>Dans les versions précédentes de Debian, il fallait modifier <filename>login.defs</filename>, et utiliser la variable CONSOLE qui définit un fichier ou une liste de terminaux sur lesquels la connexion du superutilisateur est autorisée.</para></footnote> active le module pam_securetty.so. Ce module, une fois correctement configuré, interdira la demande de mot de passe quand le superutilisateur essaye de se connecter sur une console non sécurisée, rejetant l'accès à cet utilisateur ;

en: <filename>securetty</filename> The <filename>/etc/securetty</filename> is a configuration file that belongs to the <application>login</application> package. by adding/removing the terminals to which root access will be allowed. If you wish to allow only local console access then you need <emphasis>console</emphasis>, <emphasis>ttyX</emphasis> Or <emphasis>ttyvX</emphasis> in GNU/FreeBSD, and <emphasis>ttyE0</emphasis> in GNU/KNetBSD. and <emphasis>vc/X</emphasis> (if using <emphasis>devfs</emphasis> devices), you might want to add also <emphasis>ttySX</emphasis> Or <emphasis>comX</emphasis> in GNU/Hurd, <emphasis>cuaaX</emphasis> in GNU/FreeBSD, and <emphasis>ttyXX</emphasis> in GNU/KNetBSD. if you are using a serial console for local access (where X is an integer, you might want to have multiple instances. The default configuration for <emphasis>Wheezy</emphasis> The default configuration in <emphasis>woody</emphasis> includes 12 local tty and vc consoles, as well as the <emphasis>console</emphasis> device but does not allow remote logins. In <emphasis>sarge</emphasis> the default configuration provides 64 consoles for tty and vc consoles. includes many tty devices, serial ports, vc consoles as well as the X server and the <emphasis>console</emphasis> device. You can safely adjust this if you are not using that many consoles. You can confirm the virtual consoles and the tty devices you have by reviewing <filename>/etc/inittab</filename> Look for the <emphasis>getty</emphasis> calls. . For more information on terminal devices read the <ulink url="http://tldp.org/HOWTO/Text-Terminal-HOWTO-6.html">Text-Terminal-HOWTO </ulink>
fr: <filename>securetty</filename><footnote><para>Le fichier <filename>/etc/securetty</filename> est un fichier de configuration qui appartient au paquet <application>login</application>.</para></footnote> en ajoutant ou supprimant les terminaux depuis lesquels les accès du superutilisateur seront autorisés. Si vous voulez n'autoriser que les accès locaux en console, vous avez alors besoin de <emphasis>console</emphasis>, <emphasis>ttyX</emphasis><footnote><para>Ou <emphasis>ttyvX</emphasis> pour GNU/FreeBSD et <emphasis>ttyE0</emphasis> pour GNU/KNetBSD.</para></footnote> et <emphasis>vc/X</emphasis> (si vous utilisez des périphériques <emphasis>devfs</emphasis>), vous pouvez vouloir ajouter également <emphasis>ttySX</emphasis><footnote><para>Ou <emphasis>comX</emphasis> pour GNU/Hurd, <emphasis>cuaaX</emphasis> pour GNU/FreeBSD et <emphasis>ttyXX</emphasis> pour GNU/KNetBSD.</para></footnote> si vous utilisez une console série pour l'accès local (où X est un nombre entier, vous pouvez vouloir avoir plusieurs instances). La configuration par défaut pour <emphasis>Wheezy</emphasis> <footnote><para>La configuration par défaut dans <emphasis>Woody</emphasis> inclut 12consoles locales tty et vc, ainsi que le périphérique <emphasis>console</emphasis>, mais ne permet pas les connexions distantes. Dans <emphasis>Sarge</emphasis>, la configuration par défaut fournit 64consoles pour les consoles tty et vc.</para></footnote> inclut de nombreux périphériques tty, ports séries, consoles vc ainsi que le serveur X et le périphérique <emphasis>console</emphasis>. Vous pouvez ajuster cela en toute sécurité si vous n'utilisez pas tant de consoles. Vous pouvez confirmer les consoles virtuelles et périphériques tty disponibles en vérifiant <filename>/etc/inittab</filename> <footnote><para>Recherchez les appels <emphasis>getty</emphasis>.</para></footnote>. Pour plus d'informations sur les périphériques de terminal, veuillez consulter le <ulink url="http://tldp.org/HOWTO/Text-Terminal-HOWTO-6.html" name="HOWTO Terminal Texte pour Linux" /> (ou la <ulink url="http://www.traduc.org/docs/HOWTO/vf/Text-Terminal-HOWTO.html" name="version française" />).

en: When using PAM, other changes to the login process, which might include restrictions to users and groups at given times, can be configured in <filename>/etc/pam.d/login</filename>. An interesting feature that can be disabled is the possibility to login with null (blank) passwords. This feature can be limited by removing <emphasis>nullok</emphasis> from the line:
fr: En cas d'utilisation de PAM d'autres changements au processus de login, qui peuvent inclure des restrictions aux utilisateurs et groupes à certains moments, peuvent être configurés dans <filename>/etc/pam.d/login</filename>. Une fonctionnalité intéressante qui peut être désactivée est la possibilité de se connecter avec des mots de passe nuls (vides). Cette fonctionnalité peut être limitée en enlevant <emphasis>nullok</emphasis> de la ligne:

en: Restricting system reboots through the console
fr: Restreindre les redémarrages système depuis la console

en: If your system has a keyboard attached to it anyone (yes <emphasis>anyone</emphasis>) with physical access to the system can reboot the system through it without login in just pressing the <emphasis>Ctrl+Alt+Delete</emphasis> keyboard combination, also known as the <emphasis>three finger salute</emphasis>. This might, or might not, adhere to your security policy.
fr: Si un clavier est attaché au système, tout le monde (oui, <emphasis>tout le monde</emphasis>) avec un accès physique au système peut le redémarrer sans se connecter en appuyant simplement sur la combinaison <emphasis>Ctrl+Alt+Delete</emphasis> du clavier (le <emphasis>salut à trois doigts</emphasis>). Cela peut être en conformité ou non avec vos règles de sécurité.

en: This is aggravated in environments in which the operating system is running virtualised. In these environments, the possibility extends to users that have access to the virtual console (which might be accessed over the network). Also note that, in these environments, this keyboard combination is used constantly (to open a login shell in some GUI operating systems) and an administrator might <emphasis>virtually</emphasis> send it and force a system reboot.
fr: C'est aggravé dans les environnements où le système d'exploitation est virtualisé. Dans ces environnements, la possibilité s'étend aux utilisateurs ayant accès à la console virtuelle (qui pourrait être accessible par le réseau). Remarquez aussi que, dans ces environnements, cette combinaison est utilisée constamment (pour ouvrir une invite de connexion dans certaines interfaces graphiques de systèmes d'exploitations) et qu'un administrateur pourrait l'envoyer <emphasis>virtuellement</emphasis> et forcer un système à redémarrer.

en: There are two ways to restrict this:
fr: Deux manières permettent de restreindre cela :

en: configure it so that only <emphasis>allowed</emphasis> users can reboot the system,
fr: le configurer pour que seuls les utilisateurs <emphasis>autorisés</emphasis> puissent redémarrer le système ;

en: disable this feature completely.
fr: désactiver complètement cette fonctionnalité.

en: If you want to restrict this, you must check the <filename>/etc/inittab</filename> so that the line that includes <userinput>ctrlaltdel</userinput> calls <command>shutdown</command> with the <userinput>-a</userinput> switch.
fr: Si vous désirez restreindre cela, vous devez vérifier le fichier <filename>/etc/inittab</filename> pour que la ligne incluant <userinput>ctrlaltdel</userinput> appelle <command>shutdown</command> avec le paramètre <userinput>-a</userinput>.

en: The default in Debian includes this switch:
fr: La valeur par défaut dans Debian inclut ce paramètre :

en: The <userinput>-a</userinput> switch, as the <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage describes,makes it possible to allow <emphasis>some</emphasis> users to shutdown the system. For this the file <filename>/etc/shutdown.allow</filename> must be created and the administrator has to include there the name of users which can boot the system. When the <emphasis>three finger salute</emphasis> combination is pressed in a console the program will check if any of the users listed in the file are logged in. If none of them is, <command>shutdown</command> will <emphasis>not</emphasis> reboot the system.
fr: Le paramètre <userinput>-a</userinput>, conformément à la description de la page de manuel <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, donne la possibilité de permettre à <emphasis>certains</emphasis> utilisateurs d'arrêter le système. Pour cela, le fichier <filename>/etc/shutdown.allow</filename> doit être créé et inclure le nom des utilisateurs qui peuvent redémarrer le système. Quand la combinaison du <emphasis>salut à trois doigts</emphasis> est exécutée en console, le programme va vérifier si l'un des utilisateurs définis dans ce fichier est connecté. Si aucun d'entre eux ne l'est, <command>shutdown</command> ne va <emphasis>pas</emphasis> redémarrer le système.

en: If you want to disable the Ctrl+Alt+Del combination you just need to comment the line with the <emphasis>ctrlaltdel</emphasis> definition in the <filename>/etc/inittab</filename>.
fr: Pour désactiver la combinaison Ctrl+Alt+Del, il suffit de commenter la ligne contenant la définition de <emphasis>ctrlaltdel</emphasis> dans <filename>/etc/inittab</filename>.

en: Remember to run <userinput>init q</userinput> after making any changes to the <filename>/etc/inittab</filename> file for the changes to take effect.
fr: N'oubliez pas d'exécuter <userinput>init q</userinput> après toute modification du fichier <filename>/etc/inittab</filename> pour qu'elle prenne effet.

en: Restricting the use of the Magic SysRq key
fr: Restriction d'utilisation des touches SysRq magiques

en: The <emphasis>Magic SysRq key</emphasis> is a key combination that allows users connected to the system console of a Linux kernel to perform some low-level commands. These low-level commands are sent by pressing simultaneously <emphasis>Alt+SysRq</emphasis> and a command key. The SysRq key in many keyboards is labeled as the <emphasis>Print Screen</emphasis> key.
fr: Les <emphasis>touches SysRq magiques</emphasis> sont des combinaisons de touches qui permettent aux utilisateurs connectés à une console système du noyau Linux de réaliser des commandes de bas niveau. Ces commandes de bas niveau sont envoyées en appuyant simultanément sur <emphasis>Alt+SysRq</emphasis> et une touche de commande. La touche SysRq est la même que « Impr écran » sur la plupart des claviers.

en: Since the Etch release, the Magic SysRq key feature is enabled in the Linux kernel to allow console users certain privileges. You can confirm this by checking if the <filename>/proc/sys/kernel/sysrq</filename> exists and reviewing its value:
fr: Depuis la publication de Etch, les touches SysRq magiques sont activées dans le noyau Linux pour donner certains droits aux utilisateurs en console. Vous pouvez confirmer cela en vérifiant si <filename>/proc/sys/kernel/sysrq</filename> existe et vérifier ses valeurs :

en: 
    $ cat /proc/sys/kernel/sysrq 
    438
fr: 
    &#36; cat /proc/sys/kernel/sysrq 
    438

en: The default value shown above allows all of the SysRq functions except for the possibility of sending signals to processes. For example, it allow users connected to the console to remount all systems read-only, reboot the system or cause a kernel panic. In all the features are enabled, or in older kernels (earlier than 2.6.12) the value will be just 1.
fr: La valeur par défaut ci-dessus permet toutes les fonctions SysRq sauf la possibilité d'envoyer des signaux aux processus. Par exemple, elle permet aux utilisateurs connectés en console de remonter tous les systèmes de fichiers en lecture seule, redémarrer le système ou provoquer une panique du noyau. Si toutes les fonctionnalités sont activées, ou sur les anciens noyaux (avant le 2.6.12), la valeur sera simplement 1.

en: You should disable this functionality ifaccess to the console is not restricted to authorised users: the console is connected to a modem line, there is easy physical access to the system or it is running in a virtualised environment and other users access the console. To do this edit the <filename>/etc/sysctl.conf</filename> and add the following lines:
fr: Vous devriez désactiver cette fonctionnalité si l'accès à la console n'est pas restreint aux utilisateurs autorisés : par exemple si la console est connectée à une ligne modem, s'il y a un accès physique facile au système ou s'il est exécuté dans un environnement virtualisé et d'autres utilisateurs ont accès à la console. Pour cela, modifiez <filename>/etc/sysctl.conf</filename> pour ajouter les lignes suivantes :

en: 
    # Disables the magic SysRq key
    kernel.sysrq = 0
fr: 
    # Désactiver les touches SysRq magiques
    kernel.sysrq = 0

en: Mounting partitions the right way
fr: Monter correctement les partitions

en: When mounting an <literal>Ext</literal> file system (<literal>ext2</literal>, <literal>ext3</literal> or <literal>ext4</literal>), there are several additional options you can apply to the mount call or to <filename>/etc/fstab</filename>. For instance, this is my fstab entry for the <filename>/tmp</filename> partition:
fr: En montant un système de fichiers <literal>ext</literal> (<literal>ext2</literal>, <literal>ext3</literal> ou <literal>ext4</literal>), différentes options additionnelles sont permises pour l'appel mount ou pour le fichier <filename>/etc/fstab</filename>. Par exemple, ceci est une entrée pour la partition <filename>/tmp</filename>:

en: 
      /dev/hda7    /tmp    ext2    defaults,nosuid,noexec,nodev    0    2
fr: 
      /dev/hda7   /tmp   ext2   defaults,nosuid,noexec,nodev   0   2

en: You see the difference in the options sections. The option <literal>nosuid</literal> ignores the setuid and setgid bits completely, while <literal>noexec</literal> forbids execution of any program on that mount point, and <literal>nodev</literal> ignores device files. This sounds great, but it:
fr: Vous voyez la différence dans la section des options. L'option <literal>nosuid</literal> ignore complètement les bits setuid et setgid, tandis que <literal>noexec</literal> interdit l'exécution de tout programme sur ce point de montage et <literal>nodev</literal> ignore les fichiers de périphériques. Cela semble bon mais :

en: only applies to <literal>ext2</literal> or <literal>ext3</literal> file systems
fr: ne s'applique qu'aux systèmes de fichiers <literal>ext2</literal> ou <literal>ext3</literal> ;

en: can be circumvented easily
fr: peut être contourné facilement.

en: The <literal>noexec</literal> option prevents binaries from being executed directly, but was easily circumvented in earlier versions of the kernel:
fr: L'option <literal>noexec</literal> évite aux binaires d'être exécutés directement mais c'était facilement contournable dans les premières versions du noyau:

en: 
      alex@joker:/tmp# mount | grep tmp
      /dev/hda7 on /tmp type ext2 (rw,noexec,nosuid,nodev)
      alex@joker:/tmp# ./date
      bash: ./date: Permission denied
      alex@joker:/tmp# /lib/ld-linux.so.2 ./date
      Sun Dec  3 17:49:23 CET 2000
fr: 
      alex@joker:/tmp# mount | grep tmp
      /dev/hda7 on /tmp type ext2 (rw,noexec,nosuid,nodev)
      alex@joker:/tmp# ./date
      bash: ./date: Permission non accordée
      alex@joker:/tmp# /lib/ld-linux.so.2 ./date
      dimanche 3 décembre 2000, 17:49:23 (UTC+0100)

en: Newer versions of the kernel do however handle the <literal>noexec</literal> flag properly:
fr: Les versions plus récentes du noyau gèrent cependant l'option <literal>noexec</literal> correctement:

en: 
      angrist:/tmp# mount | grep /tmp
      /dev/hda3 on /tmp type ext3 (rw,noexec,nosuid,nodev)
      angrist:/tmp# ./date
      bash: ./tmp: Permission denied 
      angrist:/tmp# /lib/ld-linux.so.2 ./date 
      ./date: error while loading shared libraries: ./date: failed to map segment 
      from shared object: Operation not permitted
fr: 
    angrist:/tmp# mount | grep /tmp
      /dev/hda3 on /tmp type ext3 (rw,noexec,nosuid,nodev)
      angrist:/tmp# ./date
      bash: ./tmp: Permission non accordée
      angrist:/tmp# /lib/ld-linux.so.2 ./date 
      ./date: error while loading shared libraries: ./date: failed to map segment 
      from shared object: Operation not permitted

en: However, many script kiddies have exploits which try to create and execute files in <filename>/tmp</filename>. If they do not have a clue, they will fall into this pit. In other words, a user cannot be tricked into executing a trojanized binary in <filename>/tmp</filename> e.g. when <filename>/tmp</filename> is accidentally added into the local PATH.
fr: Toutefois, de nombreux pirates en herbe utilisent des failles qui essayent de créer et d'exécuter des fichiers dans <filename>/tmp</filename>. S'ils ne sont pas futés, ils tomberont sur un pépin. En d'autres termes, un utilisateur ne peut être abusé en exécutant un binaire compromis (genre cheval de Troie) dans <filename>/tmp</filename> lorsqu'il a accidentellement ajouté <filename>/tmp</filename> dans son PATH.

en: Also be forewarned, some script might depend on <filename>/tmp</filename> being executable. Most notably, Debconf has (had?) some issues regarding this, for more information see <ulink name="Debian Bug nº116448" url="http://bugs.debian.org/116448" />.
fr: Soyez aussi vigilant, certains scripts peuvent dépendre du fait que <filename>/tmp</filename> devienne exécutable. Notamment Debconf qui a (avait?) quelques problèmes concernant cela, pour plus d'informations consultez le <ulink url="http://bugs.debian.org/116448" name="bogue nº 116448" />.

en: The following is a more thorough example. A note, though: <filename>/var</filename> could be set noexec, but some software <footnote><para>Some of this includes the package manager <application>dpkg</application> since the installation (post,pre) and removal (post,pre) scripts are at <filename>/var/lib/dpkg/</filename> and Smartlist</para></footnote> keeps its programs under in <filename>/var</filename>. The same applies to the nosuid option.
fr: Ce qui suit est un exemple un plus peu poussé. Prenez note que, bien que <filename>/var</filename> peut être mis à noexec, certains logiciels<footnote><para>Cela inclut le gestionnaire de paquet <application>dpkg</application> car les scripts d'installation (pre et post) et de suppression (pre et post) sont en <filename>/var/lib/dpkg/</filename> et aussi Smartlist.</para></footnote> conservent leurs programmes dans /var. Les mêmes conditions peuvent être appliquées à l'option nosuid.

en: Setting <filename>/tmp</filename> noexec
fr: Paramétrer /tmp en noexec

en: Be careful if setting <filename>/tmp</filename> noexec when you want to install new software, since some programs might use it for installation. <application>apt</application> is one such program (see <ulink name="Debian Bug nº116448" url="http://bugs.debian.org/116448" />) if not configured properly <varname>APT::ExtractTemplates::TempDir</varname> (see <citerefentry><refentrytitle>apt-extracttemplates</refentrytitle><manvolnum>1</manvolnum></citerefentry>). You can set this variable in <filename>/etc/apt/apt.conf</filename> to another directory with exec privileges other than <filename>/tmp</filename>.
fr: Soyez vigilant si vous mettez <filename>/tmp</filename> en noexec et que vous voulez installer de nouveaux logiciels étant donné que certains peuvent l'utiliser pendant l'installation. <application>apt</application> est un programme de ce genre (consultez <ulink url="http://bugs.debian.org/116448" />) si <varname>APT::ExtractTemplates::TempDir</varname> n'est pas configuré correctement (consultez <citerefentry><refentrytitle>apt-extracttemplates</refentrytitle><manvolnum>1</manvolnum></citerefentry>). Vous pouvez paramétrer cette variable dans le fichier <filename>/etc/apt/apt.conf</filename> vers un autre répertoire que <filename>/tmp</filename> et qui aura les droits d'exécution.

en: Setting /usr read-only
fr: Paramétrer /usr en lecture seule

en: If you set <filename>/usr</filename> read-only you will not be able to install new packages on your Debian GNU/Linux system. You will have to first remount it read-write, install the packages and then remount it read-only. <application>apt</application> can be configured to run commands before and after installing packages, so you might want to configure it properly.
fr: Si vous mettez <filename>/usr</filename> en lecture seule, vous serez dans l'incapacité d'installer de nouveaux paquets sur le système Debian GNU/Linux. Vous devrez, avant tout, la remonter en lecture/écriture, puis installer les nouveaux paquets et enfin la remonter en lecture seule. <application>apt</application> peut être configuré pour lancer des commandes avant et après l'installation de paquets, ainsi vous pouvez avoir envie de le configurer correctement.

en: To do this modify <filename>/etc/apt/apt.conf</filename> and add:
fr: Pour réaliser cela, modifiez le fichier <filename>/etc/apt/apt.conf</filename> et ajoutez:

en: Note that the Post-Invoke may fail with a "/usr busy" error message. This happens mainly when you are using files during the update that got updated. You can find these programs by running
fr: Notez que le Post-Invoke peut échouer avec un message d'erreur « /usr busy ». Cela survient principalement lorsque vous utilisez des fichiers lors de la mise à jour et que ces fichiers sont justement mis à jour. Vous pouvez trouver ces programmes en exécutant

en: Stop or restart these programs and run the Post-Invoke manually. <emphasis>Beware!</emphasis> This means you'll likely need to restart your X session (if you're running one) every time you do a major upgrade of your system. You might want to reconsider whether a read-only <filename>/usr</filename> is suitable for your system. See also this <ulink url="http://lists.debian.org/debian-devel/2001/11/threads.html#00212"> discussion on debian-devel about read-only</ulink>.
fr: Arrêtez ou relancez ces programmes et exécutez la commande de Post-Invoke vous-même. <emphasis>Attention!</emphasis> Cela veut dire que vous devrez probablement redémarrer la session X (si vous en faites fonctionner une) à chaque fois que vous faites une mise à jour majeure du système. Vous pourriez aussi vous redemander si paramétrer <filename>/usr</filename> en lecture seule est adapté au système. Consultez également cette <ulink url="http://lists.debian.org/debian-devel/2001/11/threads.html#00212" name="discussion sur debian-devel à propos de /usr en lecture seule" />.

en: Providing secure user access
fr: Fournir des accès sécurisés aux utilisateurs

en: User authentication: PAM
fr: Authentification utilisateur: PAM

en: PAM (Pluggable Authentication Modules) allows system administrators to choose how applications authenticate users. Note that PAM can do nothing unless an application is compiled with support for PAM. Most of the applications that are shipped with Debian have this support built in (Debian did not have PAM support before 2.2). The current default configuration for any PAM-enabled service is to emulate UNIX authentication (read <filename>/usr/share/doc/libpam0g/Debian-PAM-MiniPolicy.gz</filename> for more information on how PAM services <emphasis>should</emphasis> work in Debian).
fr: PAM (Pluggable Authentication Modules) permet aux administrateurs système de choisir comment les applications authentifient les utilisateurs. Remarquez que PAM ne peut rien faire tant qu'une application n'a pas été compilée avec la prise en charge pour PAM. La plupart des applications livrées dans Debian ont cette prise en charge intégrée (Debian n'avait pas de prise en charge pour PAM avant la version 2.2). La configuration actuelle par défaut pour tout service activé avec PAM est d'émuler l'authentification UNIX (consultez <filename>/usr/share/doc/libpam0g/Debian-PAM-MiniPolicy.gz</filename> pour plus d'informations sur la façon dont les services <emphasis>devraient</emphasis> fonctionner dans Debian).

en: Each application with PAM support provides a configuration file in <filename>/etc/pam.d/</filename> which can be used to modify its behavior:
fr: Chaque application avec la prise en charge de PAM fournit un fichier de configuration dans <filename>/etc/pam.d</filename> qui peut être utilisé pour modifier son comportement

en: what backend is used for authentication.
fr: quelle fonction de base est utilisée pour l'authentification;

en: what backend is used for sessions.
fr: quelle fonction de base est utilisée pour les sessions;

en: how do password checks behave.
fr: comment les vérifications de mots de passe se comportent.

en: PAM offers you the possibility to go through several authentication steps at once, without the user's knowledge. You could authenticate against a Berkeley database and against the normal <filename>passwd</filename> file, and the user only logs in if the authentication succeeds in both. You can restrict a lot with PAM, just as you can open your system doors very wide. So be careful. A typical configuration line has a control field as its second element. Generally it should be set to <literal>requisite</literal>, which returns a login failure if one module fails.
fr: PAM vous offre la possibilité de passer en revue plusieurs étapes d'authentification en une seule fois, à l'insu de l'utilisateur. Vous pouvez vous authentifier à une base de données Berkeley et à un fichier <filename>passwd</filename> normal, ainsi l'utilisateur pourra se connecter seulement si l'authentification est correcte des deux côtés. Vous pouvez restreindre beaucoup de choses avec PAM comme vous pouvez laisser libre accès au système. Donc soyez prudent. Une ligne de configuration typique a un champ de contrôle comme deuxième élément. Généralement, il devrait être paramétré sur <literal>requisite</literal> qui retourne un échec de connexion si un module échoue.

en: Password security in PAM
fr: Sécurité de mot de passe dans PAM

en: Review the <filename>/etc/pam.d/common-password</filename>, included by <filename>/etc/pam.d/passwd</filename> <footnote><para>In old Debian releases the configuration of the modules was defined directly in <filename>/etc/pam.d/passwd</filename>.</para></footnote> This file is included by other files in <filename>/etc/pam.d/</filename> to define the behaviour of password use in subsystems that grant access to services in the machine, like the console login (<application>login</application>), graphical login managers (such as <application>gdm</application> or <application>lightdm</application>), and remote login (such as <application>sshd</application>). This definition is
fr: Vérifiez <filename>/etc/pam.d/common-password</filename>, englobé dans <filename>/etc/pam.d/passwd</filename> <footnote><para>Dans les anciennes versions de Debian, la configuration des modules était définie directement dans <filename>/etc/pam.d/passwd</filename>.</para></footnote>. Ce fichier est aussi englobé dans d'autres fichiers de <filename>/etc/pam.d/</filename> pour définir le comportement des mots de passe utilisés dans les sous-systèmes qui donnent accès aux services sur la machine, comme la connexion en console (<application>login</application>), les gestionnaires de connexion graphiques (comme <application>gdm</application> ou <application>lightdm</application>) et la connexion à distance (comme <application>sshd</application>).

en: You have to make sure that the pam_unix.so module uses the "sha512" option to use encrypted passwords. This is the default in Debian Squeeze.
fr: Assurez-vous que le module pam_unix.so utilise l'option « sha512 » pour les mots de passe chiffrés. C'est le cas par défaut dans Debian Squeeze.

en: The line with the definition of the pam_unix module will look something like:
fr: La ligne avec la définition du module pam_unix devrait ressembler à :

en: This definition:
fr: Cette définition :

en: Enforces password encryption when storing passwords, using the SHA-512 hash function (option <emphasis>sha512</emphasis>),
fr: renforce le chiffrement des mots de passe conservés, en utilisant la fonction de hachage SHA-512 (option <emphasis>sha512</emphasis>) ;

en: Enables password complexity checks (option <emphasis>obscure</emphasis>) as defined in the <citerefentry><refentrytitle>pam_unix</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage,
fr: active les vérifications de complexité des mots de passe (option <emphasis>obscure</emphasis>) conformément à la définition de la page de manuel <citerefentry><refentrytitle>pam_unix</refentrytitle><manvolnum>8</manvolnum></citerefentry>,

en: Imposes a minimum password length (option <emphasis>min</emphasis>) of 8.
fr: impose une taille minimale de mot de passe (option <emphasis>min</emphasis>) à 8 caractères.

en: You have to ensure that encrypted passwords are used in PAM applications, since this helps protect against dictionary cracks. Using encryption also makes it possible to use passwords longer than 8 characters.
fr: Assurez-vous que les mots de passe chiffrés sont utilisés dans les applications PAM, car cela aide à protéger contre les attaques par dictionnaire. L'utilisation du chiffrement permet aussi d'utiliser des mots de passe plus longs que 8 caractères.

en: Since this module is also used to define how passwords are changed (it is included by <command>chpasswd</command>) you can strengthen the password security in the system by installing <application>libpam-cracklib</application> and introducing this definition in the <filename>/etc/pam.d/common-password</filename> configuration file:
fr: Puisque ce module est aussi utilisé pour définir la façon dont les mots de passe sont changés (il est inclus par <command>chpasswd</command>), vous pouvez renforcer la sécurité des mots de passe dans le système en installant <application>libpam-cracklib</application> et en introduisant cette définition dans le fichier de configuration <filename>/etc/pam.d/common-password</filename> :

en: 
      # Be sure to install libpam-cracklib first or you will not be able to log in
      password   required     pam_cracklib.so retry=3 minlen=12 difok=3
      password   [success=1 default=ignore]      pam_unix.so obscure minlen=8 sha512 use_authok
fr: 
      # Vérifier que libpam-cracklib soit installé avant sinon vous ne
      # pourrez pas vous connecter.
      password   required     pam_cracklib.so retry=3 minlen=12 difok=3
      password   [success=1 default=ignore]      pam_unix.so obscure minlen=8 sha512 use_authok

en: So, what does this incantation do? The first line loads the cracklib PAM module, which provides password strength-checking, prompts for a new password with a minimum size <footnote><para>The minlen option is not entirely straightforward and is not exactly the number of characters in the password. A tradeoff can be defined between complexity and length by adjusting the "credit" parameters of different character classes. For more information read the <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage.</para></footnote> of 12 characters, and difference of at least 3 characters from the old password, and allows 3 retries. Cracklib depends on a wordlist package (such as <application>wenglish</application>, <application>wspanish</application>, <application>wbritish</application>, ...), so make sure you install one that is appropriate for your language or cracklib might not be useful to you at all.
fr: La première ligne charge le module PAM cracklib, qui fournit la vérification de la sûreté des mots de passe, attend un nouveau mot de passe avec une taille minimale <footnote><para>L'option <emphasis>minlen</emphasis> n'est pas tout à fait claire, et n'indique pas exactement le nombre de caractères du mot de passe. Un compromis peut être défini entre la complexité et la taille en ajustant les paramètres « credit » de différentes classes de caractères. Pour plus de renseignements, consultez la page de manuel <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></footnote> de 12 caractères, une différence d'au moins 3 caractères par rapport à l'ancien et autorise 3 essais. cracklib dépend d'une liste de mots (comme <application>wenglish</application>, <application>wfrench</application>, <application>wbritish</application>, etc.), assurez-vous donc d'en avoir installé une adaptée à votre langue, sinon, cela peut être totalement inutile.

en: The second line (using the pam_unix.so module) is the default configuration in Debian, as described above, save for the <emphasis>use_authok</emphasis> option. The <emphasis>use_authok</emphasis> option is required if pam_unix.so is stacked after pam_cracklib.so, and is used to hand over the password from the previous module. Otherwise, the user would be prompted for the password twice.
fr: La seconde ligne (utilisant le module pam_unix.so) est la configuration par défaut dans Debian, conformément à la description précédente, hormis pour l'option <emphasis>use_authok</emphasis>. L'option <literal>use_authok</literal> est nécessaire si pam_unix.so est empilé après pam_cracklib.so, et est utilisé pour passer le mot de passe du module précédent. Sinon le mot de passe serait demandé deux fois à l'utilisateur.

en: For more information about setting up Cracklib, read the <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage and the article <ulink url="http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html">Linux Password Security with pam_cracklib</ulink> by Hal Pomeranz.
fr: Pour plus de renseignements sur le réglage de cracklib, consultez la page de manuel <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> et l'article <ulink url="http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html" name="Sécurité des mots de passe sous Linux avec pam_cracklib" /> de Hal Pomeranz.

en: By enabling the cracklib PAM module you setup a policy that forces uses to use strong passwords.
fr: En activant le module PAM cracklib, vous définissez une règle qui oblige les utilisateurs à utiliser des mots de passe sûrs.

en: Alternatively, you can setup and configure PAM modules to use double factor authentication such as: <application>libpam-barada</application>, <application>libpam-google-authenticator</application>, <application>libpam-oath</application>, <application>libpam-otpw</application>, <application>libpam-poldi</application>, <application>libpam-usb</application> or <application>libpam-yubico</application>. The configuration of these modules would make it possible to access the system using external authentication mechanisms such as smartcards, external USB keys, or One-Time-Passwords generated by external applications running, for example, in the user's mobile phone.
fr: Autrement, les modules PAM peuvent être configurés pour utiliser une authentification à deux facteurs, comme : <application>libpam-barada</application>, <application>libpam-google-authenticator</application>, <application>libpam-oath</application>, <application>libpam-otpw</application>, <application>libpam-poldi</application>, <application>libpam-usb</application> ou <application>libpam-yubico</application>. La configuration de ces modules permettrait d'accéder au système en utilisant des mécanismes d'authentification externes comme des cartes à puce, clefs USB externes ou mots de passe uniques générés par des applications externes exécutées, par exemple, sur le téléphone portable de l'utilisateur.

en: Please note that these restrictions apply to all users but <emphasis>not</emphasis> to the password changes done by the root user. The root user will be able to set up any password (any length or complexity) for personal use or others regardless of the restrictions defined here.
fr: Veuillez remarquer que ces restrictions s'appliquent à tous les utilisateurs mais <emphasis>pas</emphasis> aux changements de mot de passe du superutilisateur. Le superutilisateur pourra définir n'importe quel mot de passe (n'importe quelle taille ou complexité) pour lui-même et les autres, quelque soient les restrictions définies ici.

en: User access control in PAM
fr: Contrôle de l'accès utilisateur dans PAM

en: To make sure that the user root can only log into the system from local terminals, the following line should be enabled in <filename>/etc/pam.d/login</filename>:
fr: Afin d'être sûr que le superutilisateur peut se connecter uniquement à partir des terminaux locaux, la ligne suivante doit être activée dans <filename>/etc/pam.d/login</filename>:

en: Then you should modify the list of terminals on which direct root login is allowed in <filename>/etc/securetty</filename> (as described in <xref linkend="restrict-console-login" />). Alternatively, you could enable the <application>pam_access</application> module and modify <filename>/etc/security/access.conf</filename> which allows for a more general and fine-tuned access control, but (unfortunately) lacks decent log messages (logging within PAM is not standardized and is particularly unrewarding problem to deal with). We'll return to <filename>access.conf</filename> a little later.
fr: Puis, vous devez modifier la liste des terminaux sur lesquels la connexion du superutilisateur est autorisée dans le fichier <filename>/etc/securetty</filename> (comme c'est décrit en <xref linkend="restrict-console-login" />). Vous pouvez sinon activer le module <application>pam_access</application> et modifier <filename>/etc/security/access.conf</filename> qui permet un contrôle plus général et affiné, mais à qui il manque (malheureusement) des messages de journalisation décents (la journalisation dans PAM n'est pas standard et est un problème particulièrement peu gratifiant à traiter). Nous reviendrons au fichier <filename>access.conf</filename> un peu plus tard.

en: User limits in PAM
fr: Limites des utilisateurs dans PAM

en: The following line should be enabled in <filename>/etc/pam.d/login</filename> to set up user resource limits.
fr: La ligne suivante devrait être activée dans <filename>/etc/pam.d/login</filename> pour mettre en place des limites de ressource utilisateur.

en: This restricts the system resources that users are allowed (see below in <xref linkend="user-limits" />). For example, you could restrict the number of concurrent logins (of a given group of users, or system-wide), number of processes, memory size etc.
fr: Cela restreint les ressources du système auxquelles les utilisateurs sont autorisées (consultez ci-après <xref linkend="user-limits" />). Par exemple, vous pouvez restreindre le nombre de connexions (d'un groupe d'utilisateurs donné ou tout le système), le nombre de processus, la taille de la mémoire, etc.

en: Control of su in PAM
fr: Contrôle de su dans PAM

en: If you want to protect <command>su</command>, so that only some people can use it to become root on your system, you need to add a new group "wheel" to your system (that is the cleanest way, since no file has such a group permission yet). Add root and the other users that should be able to <command>su</command> to the root user to this group. Then add the following line to <filename>/etc/pam.d/su</filename>:
fr: Si vous voulez protéger <command>su</command>, pour que seules quelques personnes puissent l'utiliser pour devenir superutilisateur sur le système, vous avez besoin de créer un nouveau groupe «wheel» (c'est la meilleure façon, étant donné qu'aucun fichier n'a ces permissions d'attribuées). Ajoutez root et les autres utilisateurs, qui auront la possibilité d'utiliser <command>su</command> pour devenir superutilisateur, à ce groupe. Ensuite, ajoutez la ligne suivante dans <filename>/etc/pam.d/su</filename>:

en: This makes sure that only people from the group "wheel" can use <command>su</command> to become root. Other users will not be able to become root. In fact they will get a denied message if they try to become root.
fr: Cela permet d'être sûr que seules les personnes du groupe «wheel» pourront utiliser <command>su</command> pour devenir superutilisateur. Les autres utilisateurs ne seront pas capables de le devenir. En fait, ils recevront un message de refus s'ils essayent de devenir superutilisateur.

en: If you want only certain users to authenticate at a PAM service, this is quite easy to achieve by using files where the users who are allowed to login (or not) are stored. Imagine you only want to allow users 'ref' to log in via <command>ssh</command>. So you put them into <filename>/etc/sshusers-allowed</filename> and write the following into <filename>/etc/pam.d/ssh</filename>:
fr: Si vous désirez que seulement certains utilisateurs s'authentifient à un service PAM, il suffit d'utiliser les fichiers où sont stockés les utilisateurs autorisés (ou pas) à se connecter. Imaginons que vous ne vouliez autoriser que l'utilisateur «ref» à se connecter avec <command>ssh</command>. Vous le mettez dans <filename>/etc/sshusers-allowed</filename> et écrivez ce qui suit dans <filename>/etc/pam.d/ssh</filename>:

en: Temporary directories in PAM
fr: Répertoires temporaires dans PAM

en: Since there have been a number of so called insecure tempfile vulnerabilities, thttpd is one example (see <ulink url="http://www.debian.org/security/2005/dsa-883">DSA-883-1</ulink>), the <application>libpam-tmpdir</application> is a good package to install. All you have to do is add the following to <filename>/etc/pam.d/common-session</filename>:
fr: Puisqu'il y eu de nombreuses vulnérabilités dites de fichier temporaire non sécurisé, dont thttpd est un exemple (consultez <ulink url="http://www.debian.org/security/2005/dsa-883" name="DSA-883-1" />), <application>libpam-tmpdir</application> est un bon paquet à installer. Tout ce que vous avez à faire est d'ajouter ceci à <filename>/etc/pam.d/common-session</filename> :

en: There has also been a discussion about adding this by default in Debian configuration, but it s. See <ulink url="http://lists.debian.org/debian-devel/2005/11/msg00297.html" /> for more information.
fr: Une discussion a eu lieu à propos de l'ajout par défaut dans Debian. Consultez <ulink url="http://lists.debian.org/debian-devel/2005/11/msg00297.html" /> pour obtenir plus de renseignements.

en: Configuration for undefined PAM applications
fr: Configuration pour les applications PAM non définies

en: Finally, but not least, create <filename>/etc/pam.d/other</filename> and enter the following lines:
fr: La dernière étape, mais pas la moindre, est de créer le fichier <filename>/etc/pam.d/other</filename> et d'ajouter les lignes suivantes:

en: These lines will provide a good default configuration for all applications that support PAM (access is denied by default).
fr: Ces lignes vont fournir une bonne configuration par défaut pour toutes les applications qui gèrent PAM (accès refusé par défaut).

en: Limiting resource usage: the <filename>limits.conf</filename> file
fr: Restreindre l'utilisation des ressources: le fichier limits.conf

en: You should really take a serious look into this file. Here you can define user resource limits. In old releases this configuration file was <filename>/etc/limits.conf</filename>, but in newer releases (with PAM) the <filename>/etc/security/limits.conf</filename> configuration file should be used instead.
fr: Vous devriez vraiment jeter un sérieux coup d'&oelig;il à ce fichier. Vous pouvez y définir les limites des ressources par utilisateur. Dans d'anciennes versions, ce fichier de configuration était <filename>/etc/limits.conf</filename>, mais dans les nouvelles versions (avec PAM), le fichier de configuration à utiliser devrait être <filename>/etc/security/limits.conf</filename>.

en: If you do not restrict resource usage, <emphasis>any</emphasis> user with a valid shell in your system (or even an intruder who compromised the system through a service or a daemon going awry) can use up as much CPU, memory, stack, etc. as the system can provide. This <emphasis>resource exhaustion</emphasis> problem can be fixed by the use of PAM.
fr: Si vous ne désirez pas restreindre l'utilisation des ressources, <emphasis>n'importe quel</emphasis> utilisateur ayant une invite de commandes valable sur le système (ou même un intrus qui aurait compromis le système par un service ou un démon devenu fou) pourra utiliser autant de CPU, de mémoire, de pile, etc. que le système pourra fournir. Ce problème d'<emphasis>épuisement de ressources</emphasis> peut être réglé par l'utilisation de PAM.

en: There is a way to add resource limits to some shells (for example, <command>bash</command> has <command>ulimit</command>, see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>), but since not all of them provide the same limits and since the user can change shells (see <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry>) it is better to place the limits on the PAM modules as they will apply regardless of the shell used and will also apply to PAM modules that are not shell-oriented.
fr: Il existe un moyen d'ajouter des limites de ressources pour certains interpréteurs de commandes (par exemple, <command>bash</command> a <command>ulimit</command>, consultez <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>), mais comme ils ne fournissent pas tous les mêmes limites et qu'un utilisateur peut changer d'interpréteur (consultez <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry>), il est préférable de placer ces limites dans les modules PAM ainsi elles s'appliqueront quel que soit l'interpréteur de commandes utilisé et également aux modules PAM qui ne sont pas orientés interpréteur.

en: Resource limits are imposed by the kernel, but they need to be configured through the <filename>limits.conf</filename> and the PAM configuration of the different services need to load the appropriate PAM. You can check which services are enforcing limits by running:
fr: Les limites de ressources sont imposées par le noyau, mais elles doivent être configurées par le fichier <filename>limits.conf</filename> et la configuration PAM des différents services doit charger le module PAM approprié. Vous pouvez vérifier quels services imposent des limites en exécutant:

en: 
    $ find /etc/pam.d/ \! -name "*.dpkg*" | xargs -- grep limits |grep -v ":#"
fr: 
    &#36; find /etc/pam.d/ \! -name "*.dpkg*" | xargs -- grep limits |grep -v ":#"

en: Commonly, <filename>login</filename>, <filename>ssh</filename> and the graphic session managers (<filename>gdm</filename>, <filename>kdm</filename> or <filename>xdm</filename>) should enforce user limits but you might want to do this in other PAM configuration files, such as <filename>cron</filename>, to prevent system daemons from taking over all system resources.
fr: Habituellement, <filename>login</filename>, <filename>ssh</filename> et les gestionnaires de session graphique (<filename>gdm</filename>, <filename>kdm</filename> ou <filename>xdm</filename>) devraient imposer des limites aux utilisateurs, mais vous pouvez vouloir faire cela dans d'autres fichiers de configuration de PAM, comme <filename>cron</filename>, pour empêcher les démons système d'accaparer toutes les ressources système..

en: The specific limits settings you might want to enforce depend on your system's resources, that's one of the main reasons why no limits are enforced in the default installation.
fr: Les paramètres de limites spécifiques que vous pouvez vouloir imposer dépendent des ressources du système, c'est l'une des principales raisons pour lesquelles aucune limite n'est imposée dans l'installation par défaut.

en: For example, the configuration example below enforces a 100 process limit for all users (to prevent <emphasis>fork bombs</emphasis>) as well as a limit of 10MB of memory per process and a limit of 10 simultaneous logins. Users in the <literal>adm</literal> group have higher limits and can produce core files if they want to (there is only a <emphasis>soft</emphasis> limit).
fr: Par exemple, l'exemple de configuration ci-dessous impose une limite de 100 processus par utilisateur (pour empêcher les <emphasis>bombes de fork</emphasis>) ainsi qu'une limite de 10&nbsp;Mo de mémoire par processus et une limite de 10 connexions simultanées. Les utilisateurs du groupe <literal>adm</literal> ont des limites supérieures et peuvent créer des fichiers core s'ils le désirent (c'est simplement une limite <emphasis>soft</emphasis> (soft)).

en: These would be the limits a default user (including system daemons) would have:
fr: Voici les limites qu'un utilisateur standard (y compris les démons système) aurait:

en: 
    $ ulimit -a
    core file size        (blocks, -c) 0
    data seg size         (kbytes, -d) 102400
    file size             (blocks, -f) 2048
    max locked memory     (kbytes, -l) 10000
    max memory size       (kbytes, -m) 10000
    open files                    (-n) 1024
    pipe size          (512 bytes, -p) 8
    stack size            (kbytes, -s) 8192
    cpu time             (seconds, -t) unlimited
    max user processes            (-u) 100
    virtual memory        (kbytes, -v) unlimited
fr: 
    &#36; ulimit -a
    core file size        (blocks, -c) 0
    data seg size         (kbytes, -d) 102400
    file size             (blocks, -f) 2048
    max locked memory     (kbytes, -l) 10000
    max memory size       (kbytes, -m) 10000
    open files                    (-n) 1024
    pipe size          (512 bytes, -p) 8
    stack size            (kbytes, -s) 8192
    cpu time             (seconds, -t) unlimited
    max user processes            (-u) 100
    virtual memory        (kbytes, -v) unlimited

en: And these are the limits for an administrative user:
fr: Et voici les limites d'un utilisateur administratif:

en: 
    $ ulimit -a
    core file size        (blocks, -c) 0
    data seg size         (kbytes, -d) 102400
    file size             (blocks, -f) 100000
    max locked memory     (kbytes, -l) 100000
    max memory size       (kbytes, -m) 100000
    open files                    (-n) 1024
    pipe size          (512 bytes, -p) 8
    stack size            (kbytes, -s) 8192
    cpu time             (seconds, -t) unlimited
    max user processes            (-u) 2000
    virtual memory        (kbytes, -v) unlimited
fr: 
    &#36; ulimit -a
    core file size        (blocks, -c) 0
    data seg size         (kbytes, -d) 102400
    file size             (blocks, -f) 100000
    max locked memory     (kbytes, -l) 100000
    max memory size       (kbytes, -m) 100000
    open files                    (-n) 1024
    pipe size          (512 bytes, -p) 8
    stack size            (kbytes, -s) 8192
    cpu time             (seconds, -t) unlimited
    max user processes            (-u) 2000
    virtual memory        (kbytes, -v) unlimited

en: For more information read:
fr: Pour plus d'informations, consultez:

en: <ulink url="http://seifried.org/security/os/linux/20020324-securing-linux-step-by-step.html"> Seifried's Securing Linux Step by Step</ulink> on the <emphasis>Limiting users overview</emphasis> section.
fr: l'article <ulink url="http://seifried.org/security/os/linux/20020324-securing-linux-step-by-step.html" name="Seifried's Securing Linux Step by Step" /> pour la section <emphasis>Limiting users overview</emphasis> ;

en: <ulink url="http://seifried.org/lasg/users/">LASG</ulink> in the <emphasis>Limiting and monitoring users</emphasis> section.
fr: le <ulink url="http://seifried.org/lasg/users/" name="LASG" /> pour la section <emphasis>Limiting and monitoring users</emphasis>.

en: User login actions: edit <filename>/etc/login.defs</filename>
fr: Actions de connexion de l'utilisateur: modification de /etc/login.defs

en: The next step is to edit the basic configuration and action upon user login. Note that this file is not part of the PAM configuration, it's a configuration file honored by <application>login</application> and <command>su</command> programs, so it doesn't make sense tuning it for cases where neither of the two programs are at least indirectly called (the <command>getty</command> program which sits on the consoles and offers the initial login prompt <emphasis>does</emphasis> invoke <command>login</command>).
fr: La prochaine étape est d'éditer les configuration et action de base lors de la connexion de l'utilisateur. Notez que ce fichier ne fait pas partie de la configuration PAM, c'est un fichier de configuration qui est pris en compte par les programmes <application>login</application> et <command>su</command>, il n'est pas logique de l'adapter aux cas pour lesquels ni l'un ni l'autre des programmes n'est appelé au moins indirectement (le programme <command>getty</command>  qui gère les consoles et offre l'invite de connexion initiale appelle <emphasis>bien</emphasis> <command>login</command>).

en: If you enable this variable, failed logins will be logged. It is important to keep track of them to catch someone who tries a brute force attack.
fr: Si vous activez cette variable, les connexions échouées seront enregistrées dans un journal. Il est important d'en garder une trace pour repérer si quelqu'un tente une attaque par force brute.

en: If you set this variable to 'yes' it will record unknown usernames if the login failed. It is best if you use 'no' (the default) since, otherwise, user passwords might be inadvertenly logged here (if a user mistypes and they enter their password as the username). If you set it to 'yes', make sure the logs have the proper permissions (640 for example, with an appropriate group setting such as adm).
fr: En configurant cette variable à « yes », les noms d'utilisateur seront enregistrés en cas d'échec de connexion. Laisser la configuration à « no » (par défaut) est plus prudent, puisque sinon, les mots de passe d'utilisateurs pourraient être enregistrés par erreur (si un utilisateur fait une faute de frappe et entre le mot de passe à la place de l'identifiant). Si vous configurez à « yes », assurez-vous que les journaux ont les droits adéquats (640 par exemple, avec une configuration de groupe adéquate comme adm).

en: This one enables logging of <command>su</command> attempts to <filename>syslog</filename>. Quite important on serious machines but note that this can create privacy issues as well.
fr: Cela va activer l'écriture dans les journaux de <filename>syslog</filename> des tentatives de <command>su</command>. Plutôt important sur des machines sérieuses, mais notez que cela peut aussi bien être à la base de problèmes de respect de la vie privée.

en: The same as <varname>SYSLOG_SU_ENAB</varname> but applies to the <command>sg</command> program.
fr: La même chose que SYSLOG_SU_ENAB, mais s'applique au programme <command>sg</command>.

en: As stated above, encrypted passwords greatly reduce the problem of dictionary attacks, since you can use longer passwords. This definition has to be consistent with the value defined in <filename>/etc/pam.d/common-password</filename>.
fr: Comme mentionné ci-dessus, les mots de passe chiffrés réduisent considérablement le problème des attaques par dictionnaire étant donné que vous pouvez utiliser des mots de passe plus longs. Cette définition doit être cohérente avec la valeur définie dans <filename>/etc/pam.d/common-password</filename>.

en: User login actions: edit <filename>/etc/pam.d/login</filename>
fr: Actions de connexion de l'utilisateur: modification de <filename>/etc/pam.d/login</filename>

en: You can adjust the login configuration file to implement an stricter policy. For example, you can change the default configuration and increase the delay time between login prompts. The default configuration sets a 3 seconds delay:
fr: Le fichier de configuration de connexion peut être ajusté pour implémenter une politique plus stricte. Par exemple, la configuration par défaut peut être modifiée pour augmenter le délai entre les invites de connexion. La configuration par défaut définit à 3 secondes le délai :

en: Increasing the <emphasis>delay</emphasis> value to a higher value to make it harder to use the terminal to log in using brute force. If a wrong password is typed in, the possible attacker (or normal user!) has to wait longer seconds to get a new login prompt, which is quite time consuming when you test passwords. For example, if you set <emphasis>delay=10000000</emphasis>, users will have to wait 10 seconds if they type a wrong password.
fr: Augmenter la valeur de <emphasis>delay</emphasis> à une valeur suffisamment grande permet de rendre plus difficiles les tentatives de connexion en utilisant la force brute. Si un mauvais mot de passe est fourni, le pirate potentiel (ou le simple utilisateur!) doit attendre plus longtemps avant d'obtenir une nouvelle invite de connexion, ce qui prend pas mal de temps quand vous testez des mots de passe. Par exemple, avec <emphasis>delay=10000000</emphasis>, les utilisateurs devront attendre 10 secondes s'ils ont tapé un mauvais mot de passe.

en: In this file you can also set the system to present a message to users before a user logs in. The default is disabled, as shown below:
fr: Ce fichier permet aussi de définir le message présenté aux utilisateurs avant de se connecter. C'est désactivé par défaut, comme ci-dessous :

en: If required by your security policy, this file can be used to show a standard message indicating that access to the system is restricted and user acess is logged. This kind of disclaimer might be required in some environments and jurisdictions. To enable it, just include the relevant information in the <filename>/etc/issue</filename> <footnote><para>The default content of this file provides information about the operating system and version run by the system, which you might not want to provide to anonymous users.</para></footnote> file and uncomment the line enabling the pam_issue.so module in <filename>/etc/pam.d/login</filename>. In this file you can also enable additional features which might be relevant to apply local security policies such as:
fr: Si la politique de sécurité l'exige, ce fichier peut être utilisé pour montrer un message standard indiquant que l'accès au système est restreint et que l'accès des utilisateurs est journalisé. Ce type de déclaration peut être nécessaire dans certains environnements et juridictions. Pour l'activer, ajoutez simplement les renseignements nécessaires dans le fichier <filename>/etc/issue</filename> <footnote><para>Le contenu par défaut de ce fichier fournit des renseignements sur le système d'exploitation et la version utilisée par le système, que vous pourriez ne pas vouloir dévoiler aux utilisateurs anonymes.</para></footnote> et décommentez la ligne activant le module pam_issue.so dans <filename>/etc/pam.d/login</filename>. Dans ce fichier, vous pouvez aussi activer des fonctionnalités supplémentaires qui pourraient être pertinentes à appliquer aux politiques de sécurité locales comme :

en: setting rules for which users can access at which times, by enabling the <emphasis>pam_time.so</emphasis> module and configuring <filename>/etc/security/time.conf</filename> accordingly (disabled by default),
fr: la définition de règles accordant l'accès à certains utilisateurs suivant l'heure, en activant le module <emphasis>pam_time.so</emphasis> et en configurant <filename>/etc/security/time.conf</filename> en conséquence (désactivée par défaut) ;

en: setup login sessions to use user limits as defined in <filename>/etc/security/limits.conf</filename> (enabled by default),
fr: la définition de sessions de connexion pour utiliser les limitations aux utilisateurs conformément à la définition de <filename>/etc/security/limits.conf</filename> (activée par défaut) ;

en: present the user with the information of previous login information (enabled by default),
fr: la présentation à l'utilisateur des renseignements sur la précédente connexion (activée par défaut) ;

en: print a message (<filename>/etc/motd</filename> and <filename>/run/motd.dynamic</filename>) to users after login in (enabled by default),
fr: l'affichage d'un message (<filename>/etc/motd</filename> et <filename>/run/motd.dynamic</filename>) aux utilisateurs après la connexion (activée par défaut) ;

en: Restricting ftp: editing <filename>/etc/ftpusers</filename>
fr: Restreindre le FTP: éditer <filename>/etc/ftpusers</filename>

en: The <filename>/etc/ftpusers</filename> file contains a list of users who are not allowed to log into the host using ftp. Only use this file if you really want to allow ftp (which is not recommended in general, because it uses clear-text passwords). If your daemon supports PAM, you can also use that to allow and deny users for certain services.
fr: Ce fichier contient une liste d'utilisateurs qui ne sont pas autorisés à se connecter à l'hôte en utilisant FTP. Utilisez uniquement ce fichier si vous voulez réellement autoriser le FTP (qui n'est, en général, pas recommandé car il utilise des mots de passe en clair). Si le démon gère PAM, cela peut être utilisé pour permettre ou refuser certains services aux utilisateurs.

en: FIXME (BUG): Is it a bug that the default <filename>ftpusers</filename> in Debian does <emphasis>not</emphasis> include all the administrative users (in <application>base-passwd</application>).
fr: FIXME (bogue) : Est-ce un bogue que le fichier par défaut <filename>ftpusers</filename> dans Debian ne contienne <emphasis>pas</emphasis> tous les utilisateurs d'administration (dans <application>base-passwd</application>) ?

en: A convenient way to add all system accounts to the <filename>/etc/ftpusers</filename> is to run
fr: Un moyen pratique d'ajouter tous les comptes système à <filename>/etc/ftpusers</filename> est d'exécuter

en: 
    $ awk -F : '{if ($3&lt;1000) print $1}' /etc/passwd &gt; /etc/ftpusers
fr: 
    &#36; awk -F : '{if (&#36;3&lt;1000) print &#36;1}' /etc/passwd > /etc/ftpusers

en: Using su
fr: Utilisation de su

en: If you really need users to become the super user on your system, e.g. for installing packages or adding users, you can use the command <command>su</command> to change your identity. You should try to avoid any login as user root and instead use <command>su</command>. Actually, the best solution is to remove <command>su</command> and switch to the <command>sudo</command> mechanism which has a broader logic and more features than <command>su</command>. However, <command>su</command> is more common as it is used on many other Unices.
fr: Si vous avez réellement besoin que des utilisateurs deviennent superutilisateur sur le système, par exemple pour installer des paquets ou ajouter des utilisateurs, vous pouvez utiliser la commande <command>su</command> pour changer d'identité. Vous devriez essayer d'éviter toute connexion en tant que superutilisateur et d'utiliser à la place <command>su</command>. En réalité, la meilleure solution est de supprimer <command>su</command> et de changer pour le mécanisme <command>sudo</command> qui a une logique plus large et plus de fonctionnalités que <command>su</command>. Cependant, <command>su</command> est plus commun étant donné qu'il est utilisé sur beaucoup d'autres UNIX.

en: Using sudo
fr: Utilisation de sudo

en: <command>sudo</command> allows the user to execute defined commands under another user's identity, even as root. If the user is added to <filename>/etc/sudoers</filename> and authenticates correctly, the commands defined in <filename>/etc/sudoers</filename> get enabled. Violations, such as incorrect passwords or trying to run a program you don't have permission for, are logged and mailed to root.
fr: <command>sudo</command> autorise l'utilisateur à exécuter des commandes définies sous l'identité d'un autre utilisateur, même en tant que superutilisateur. Si l'utilisateur est ajouté à <filename>/etc/sudoers</filename> et est authentifié correctement, il est capable de lancer des commandes qui ont été définies dans <filename>/etc/sudoers</filename>. Les infractions, telles que les mots de passe incorrects ou les tentatives de lancement d'un programme pour lequel vous n'avez pas les permissions, sont logguées et envoyées au superutilisateur.

en: Disallow remote administrative access
fr: Désactiver des accès d'administration à distance

en: You should also modify <filename>/etc/security/access.conf</filename> to disallow remote logins to administrative accounts. This way users need to invoke <command>su</command> (or <command>sudo</command>) to use any administrative powers and the appropriate audit trace will always be generated.
fr: Vous devriez également modifier <filename>/etc/security/access.conf</filename> pour désactiver la connexion d'administration à distance. Ainsi, les utilisateurs doivent exécuter <command>su</command> (ou <command>sudo</command>) pour utiliser des pouvoirs administratifs et ainsi la trace d'audit appropriée sera toujours générée.

en: You need to add the following line to <filename>/etc/security/access.conf</filename>, the default Debian configuration file has a sample line commented out:
fr: Vous devez ajouter la ligne suivante à <filename>/etc/security/access.conf</filename>, le fichier de configuration par défaut Debian contient une ligne d'exemple commentée:

en: Remember to enable the <application>pam_access</application> module for every service (or default configuration) in <filename>/etc/pam.d/</filename> if you want your changes to <filename>/etc/security/access.conf</filename> honored.
fr: Rappelez-vous d'activer le module <application>pam_access</application> pour chaque service (ou configuration par défaut) dans <filename>/etc/pam.d/</filename> si vous voulez que vos modifications dans <filename>/etc/security/access.conf</filename> soient prises en compte.

en: Restricting users's access
fr: Restriction des utilisateurs

en: Sometimes you might think you need to have users created in your local system in order to provide a given service (pop3 mail service or ftp). Before doing so, first remember that the PAM implementation in Debian GNU/Linux allows you to validate users with a wide variety of external directory services (radius, ldap, etc.) provided by the libpam packages.
fr: Parfois, vous pensez avoir besoin d'utilisateurs créés dans le système local de façon à fournir un service donné (service courrier POP3 ou FTP). Avant tout, rappelez-vous que l'implémentation PAM dans Debian GNU/Linux vous autorise à valider les utilisateurs avec une grande variété de répertoires de services externes (radius, LDAP, etc.) fournis par les paquets libpam.

en: If users need to be created and the system can be accessed remotely take into account that users will be able to log in to the system. You can fix this by giving users a null (<filename>/dev/null</filename>) shell (it would need to be listed in <filename>/etc/shells</filename>). If you want to allow users to access the system but limit their movements, you can use the <filename>/bin/rbash</filename>, equivalent to adding the <literal>-r</literal> option in <command>bash</command> (<emphasis>RESTRICTED SHELL</emphasis> see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry> ). Please note that even with restricted shell, a user that access an interactive program (that might allow execution of a subshell) could be able to bypass the limits of the shell.
fr: Si des utilisateurs doivent être créés et que le système est accessible à distance, prenez en compte que des utilisateurs pourront se connecter au système. Cela peut être corrigé en donnant aux utilisateurs un interpréteur de commandes vide (<filename>/dev/null</filename>) (qui doit être dans <filename>/etc/shells</filename>). Si vous voulez autoriser les utilisateurs à accéder au système mais limiter leurs mouvements, vous pouvez utiliser le fichier <filename>/bin/rbash</filename>, ce qui est équivalent à l'ajout de l'option <literal>-r</literal> dans bash (consultez <emphasis>INTERPRÉTEUR RESTREINT</emphasis> dans <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>). Veuillez noter que même avec un interpréteur de commandes restreint, un utilisateur ayant accès à un programme interactif (qui peut permettre l'exécution d'un sous-interpréteur) peut être capable de passer outre les limites de l'interpréteur de commandes.

en: Debian currently provides in the unstable release (and might be included in the next stable releases) the <filename>pam_chroot</filename> module (in the <application> libpam-chroot</application>). An alternative to it is to <command>chroot</command> the service that provides remote logging (<command>ssh</command>, <command>telnet</command>). <footnote><para><application>libpam-chroot</application> has not been yet thoroughly tested, it does work for <command>login</command> but it might not be easy to set up the environment for other programs</para></footnote>
fr: Debian fournit actuellement dans la version unstable le module <filename>pam_chroot</filename> (dans le paquet <application> libpam-chroot</application>) (et il pourrait être inclus dans les prochaines versions stables). Une alternative à celui-ci est de <command>chroot</command>er le service qui fournit la connexion à distance (<command>ssh</command>, <command>telnet</command>). <footnote><para><application>libpam-chroot</application> n'a pas encore été testé en profondeur, il fonctionne pour <command>login</command>, mais il est possible qu'il ne soit pas facile de mettre en place l'environnement pour d'autres programmes.</para></footnote>

en: If you wish to restrict <emphasis>when</emphasis> users can access the system you will have to customize <filename>/etc/security/access.conf</filename> for your needs.
fr: Si vous voulez restreindre <emphasis>quand</emphasis> les utilisateurs peuvent accéder au système, vous devrez personnaliser <filename>/etc/security/access.conf</filename> en fonction de vos besoins.

en: Information on how to <command>chroot</command> users accessing the system through the <command>ssh</command> service is described in <xref linkend="chroot-ssh-env" />.
fr: Des informations sur la façon de <command>chroot</command>er des utilisateurs accédant au système par le service <command>ssh</command> sont décrites dans <xref linkend="chroot-ssh-env" />

en: User auditing
fr: Audit d'utilisateur

en: If you are really paranoid you might want to add a system-wide configuration to audit what the users are doing in your system. This sections presents some tips using diverse utilities you can use.
fr: Si vous êtes vraiment paranoïaque, vous pourriez configurer l'environnement pour superviser ce que les utilisateurs font sur le système. Cette section présente quelques conseils avec différents utilitaires que vous pouvez utiliser.

en: Input and output audit with script
fr: Audit d'entrée et sortie avec script

en: You can use the <command>script</command> command to audit both what the users run and what are the results of those commands. You cannot setup <command>script</command> as a shell (even if you add it to <filename>/etc/shells</filename>). But you can have the shell initialization file run the following:
fr: Vous pouvez utiliser la commande <command>script</command> pour surveiller à la fois ce que les utilisateurs exécutent et les résultats de leurs commandes. Vous ne pouvez pas configurer <command>script</command> comme un interpréteur de commandes (même si vous l'ajoutez à <filename>/etc/shells</filename>). Mais vous pouvez faire en sorte que le fichier d'initialisation de l'interpréteur de commandes exécute les commandes suivantes:

en: 
    umask 077
    exec script -q -a "/var/log/sessions/$USER"
fr: 
    umask 077
    exec script -q -a "/var/log/sessions/&#36;USER"

en: Of course, if you do this system wide it means that the shell would not continue reading personal initialization files (since the shell gets overwritten by <command>script</command>). An alternative is to do this in the user's initialization files (but then the user could remove this, see the comments about this below)
fr: Bien sûr, si vous faites cela pour tout le système, cela veut dire que l'interpréteur ne continuerait pas à lire les fichiers d'initialisation personnels (car l'interpréteur sera écrasé par <command>script</command>). Une solution est de le faire dans les fichiers d'initialisation de l'utilisateur (mais l'utilisateur pourrait alors l'enlever, consultez les commentaires sur cela ci-dessous).

en: You also need to setup the files in the audit directory (in the example <filename>/var/log/sessions/</filename>) so that users can write to it but cannot remove the file. This could be done, for example, by creating the user session files in advance and setting them with the <emphasis>append-only</emphasis> flag using <command>chattr</command>.
fr: Vous devez également configurer les fichiers dans le répertoire d'audit (dans l'exemple <filename>/var/log/sessions/</filename>) pour que les utilisateurs puissent y écrire, mais pas supprimer le fichier. Cela pourrait être fait, par exemple, en créant les fichiers de session d'utilisateur en avance et en positionnant l'option <emphasis>append-only</emphasis> («append-only») en utilisant <command>chattr</command>.

en: A useful alternative for sysadmins, which includes date information would be:
fr: Une alternative utile pour les administrateurs système, qui inclut des informations de date, serait:

en: 
    umask 077
    exec script -q -a "/var/log/sessions/$USER-`date +%Y%m%d`"
fr: 
    umask 077
    exec script -q -a "/var/log/sessions/&#36;USER-`date +%Y%m%d`"

en: Using the shell history file
fr: Utiliser le fichier d'historique de l'interpréteur de commandes

en: If you want to review what does the user type in the shell (but not what the result of that is) you can setup a system-wide <filename>/etc/profile</filename> that configures the environment so that all commands are saved into a history file. The system-wide configuration needs to be setup in such a way that users cannot remove audit capabilities from their shell. This is somewhat shell specific so make sure that all users are using a shell that supports this.
fr: Si vous voulez passer en revue ce que les utilisateurs entrent dans l'interpréteur de commandes (mais sans voir le résultat), vous pouvez configurer un <filename>/etc/profile</filename> pour tout le système qui configure l'environnement pour que toutes les commandes soient enregistrées dans le fichier d'historique. La configuration pour tout le système doit être réalisée de telle façon que les utilisateurs ne puissent pas enlever les capacités d'audit de leur interpréteur de commandes. C'est plutôt spécifique à l'interpréteur de commandes, donc assurez-vous que tous les utilisateurs utilisent un interpréteur de commandes qui le permet.

en: For example, for bash, the <filename>/etc/profile</filename> could be set as follows <footnote><para> Setting HISTSIZE to a very large number can cause issues under some shells since the history is kept in memory for every user session. You might be safer if you set this to a high-enough value and backup user's history files (if you need all of the user's history for some reason)</para></footnote> :
fr: Par exemple, pour bash, le fichier <filename>/etc/profile</filename> pourrait être paramétré ainsi <footnote><para>Configurer HISTSIZE à une très grande valeur peut poser des problèmes avec certains interpréteur de commandes car l'historique est gardé en mémoire pour la session de chaque utilisateur. Il peut être plus prudent de positionner cela à une valeur assez élevée et de sauvegarder les fichiers d'historique des utilisateurs (si vous avez besoin de tout l'historique de l'utilisateur pour une raison ou une autre).</para></footnote>:

en: 
      HISTFILE=~/.bash_history
      HISTSIZE=10000
      HISTFILESIZE=999999
      # Don't let the users enter commands that are ignored
      # in the history file
      HISTIGNORE=""
      HISTCONTROL=""
      readonly HISTFILE
      readonly HISTSIZE
      readonly HISTFILESIZE
      readonly HISTIGNORE
      readonly HISTCONTROL
      export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL
fr: 
      HISTFILE=~/.bash_history
      HISTSIZE=10000
      HISTFILESIZE=999999
      # Empêcher les utilisateurs d'entrer des commandes qui seraient
      # ignorées dans le fichier d'historique
      HISTIGNORE=""
      HISTCONTROL=""
      readonly HISTFILE
      readonly HISTSIZE
      readonly HISTFILESIZE
      readonly HISTIGNORE
      readonly HISTCONTROL
      export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL

en: For this to work, the user can only append information to <filename>.bash_history</filename> file. You need <emphasis>also</emphasis> to set the <emphasis>append-only</emphasis> option using <command>chattr</command> program for <filename>.bash_history</filename> for all users. <footnote><para> Without the append-only flag users would be able to empty the contents of the history file running <filename> &gt; .bash_history</filename></para></footnote>.
fr: Afin que cela fonctionne, l'utilisateur doit être seulement capable d'ajouter des informations au fichier <filename>.bash_history</filename>. Vous devez <emphasis>aussi</emphasis> positionner l'attribut <emphasis>append-only</emphasis> en utilisant le programme <command>chattr</command> sur <filename>.bash_history</filename> pour tous les utilisateurs. <footnote><para>Sans l'attribut append-only les utilisateurs seraient capables de vider le contenu du fichier des historiques avec <filename> .bash_history</filename>.</para></footnote>

en: Note that you could introduce the configuration above in the user's <filename>.profile</filename>. But then you would need to setup permissions properly in such a way that prevents the user from modifying this file. This includes: having the user's home directories <emphasis>not</emphasis> belong to the user (since the user would be able to remove the file otherwise) but at the same time allow the user to read the <filename>.profile</filename> configuration file and write on the <filename>.bash_history</filename>. It would be good to set the <emphasis>immutable</emphasis> flag (also using <command>chattr</command>) for <filename>.profile</filename> too if you do it this way.
fr: Notez que vous pouvez introduire la configuration ci-dessus dans le fichier utilisateur <filename>.profile</filename>. Mais alors vous devriez configurer les permissions correctement de façon à empêcher à l'utilisateur de modifier ce fichier. Cela inclut: les répertoires personnels de l'utilisateur ne doivent <emphasis>pas</emphasis> appartenir à l'utilisateur (sinon, il pourrait supprimer le fichier), mais en même temps lui permettre de lire le fichier de configuration <filename>.profile</filename> et d'écrire dans <filename>.bash_history</filename>. Il serait bien de configurer l'attribut <emphasis>immuable</emphasis> (également en utilisant <command>chattr</command>) pour le <filename>.profile</filename> aussi si vous procédez ainsi.

en: Complete user audit with accounting utilities
fr: Audit utilisateur complet avec utilitaires de comptabilité

en: The previous example is a simple way to configure user auditing but might be not useful for complex systems or for those in which users do not run shells at all (or exclusively). If this is your case, you need to look at <application>acct</application>, the accounting utilities. These utilities will log all the commands run by users or processes in the system, at the expense of disk space.
fr: L'exemple précédent est une manière simple de configurer l'audit utilisateur, mais qui peut ne pas être utile pour des systèmes complexes ou pour ceux dans lesquels les utilisateurs ne peuvent pas exécuter d'interpréteur de commande du tout (ou exclusivement). Si c'est le cas, vous devrez examiner <application>acct</application>, les utilitaires de comptabilité. Ces utilitaires archiveront toutes les commandes exécutées par les utilisateurs ou processus du système au détriment de l'espace disque.

en: When activating accounting, all the information on processes and users is kept under <filename>/var/account/</filename>, more specifically in the <filename>pacct</filename>. The accounting package includes some tools (<command>sa</command>, <command>ac</command> and <command>lastcomm</command>) to analyse this data.
fr: Lors de l'activation de la comptabilité, toutes les informations sur les processus et utilisateurs sont conservées dans <filename>/var/account/</filename>, plus spécifiquement dans le fichier <filename>pacct</filename>. Le paquet de comptabilité inclut certains outils (<command>sa</command> et <command>ac</command>) afin d'analyser ces données.

en: Other user auditing methods
fr: Autres méthodes d'audit utilisateur

en: Reviewing user profiles
fr: Inspection des profils utilisateurs

en: If you want to <emphasis>see</emphasis> what users are actually doing when they logon to the system you can use the <filename>wtmp</filename> database that includes all login information. This file can be processed with several utilities, amongst them <command>sac</command> which can output a profile on each user showing in which timeframe they usually log on to the system.
fr: Si vous désirez <emphasis>voir</emphasis> ce que font vraiment les utilisateurs, comme l'heure à laquelle ils se connectent, vous pouvez utiliser la base de données <filename>wtmp</filename> qui contient toutes les informations concernant les connexions. Ce fichier peut être employé avec plusieurs utilitaires, parmi eux <command>sac</command> peut sortir un profil de chaque utilisateur montrant dans quel créneau horaire il se connecte habituellement au système.

en: In case you have accounting activated, you can also use the tools provided by it in order to determine when the users access the system and what do they execute.
fr: Dans le cas où vous avez la comptabilité activée, vous pouvez également utiliser les outils qu'elle fournit pour déterminer quand les utilisateurs accèdent au système et ce qu'ils exécutent.

en: Setting users umasks
fr: Positionner des umasks aux utilisateurs

en: Depending on your user policy you might want to change how information is shared between users, that is, what the default permissions of new files created by users are.
fr: En fonction de la politique d'utilisateur, vous pourriez modifier la façon dont les renseignements sont partagés entre utilisateurs, c'est-à-dire quels sont les droits de nouveaux fichiers par défaut créés par les utilisateurs.

en: Debian's default <literal>umask</literal> setting is <emphasis>022</emphasis> this means that files (and directories) can be read and accessed by the user's group and by any other users in the system. This definition is set in the standard configuration file <filename>/etc/profile</filename> which is used by all shells.
fr: Le paramètre <literal>umask</literal> par défaut de Debian est <emphasis>022</emphasis>, cela signifie que les fichiers (et les répertoires) peuvent être lus et accédés par le groupe de l'utilisateur et par tout autre utilisateur du système. Cette définition est configurée dans le fichier de configuration normalisé <filename>/etc/profile</filename> utilisé par tous les interpréteurs de commandes.

en: If Debian's default value is too permissive for your system you will have to change the umask setting for all the shells. More restrictive umask settings include 027 (no access is allowed to new files for the <emphasis>other</emphasis> group, i.e. to other users in the system) or 077 (no access is allowed to new files to the members the user's group). Debian (by default<footnote><para>As defined in <filename>/etc/adduser.conf</filename> (USERGROUPS=yes). You can change this behaviour if you set this value to no, although it is not recommended</para></footnote>) creates one group per user so that only the user is included in its group. Consequently 027 and 077 are equivalent as the user's group contains only the user.
fr: Si la valeur par défaut de Debian est trop permissive pour le système, vous devrez changer ce paramètre umask pour tous les interpréteurs de commandes. Parmi les configurations plus restrictives d'umask, 027 (pas d'accès permis aux nouveaux fichiers pour le groupe <emphasis>other</emphasis>, c'est-à-dire aux autres utilisateur du système) ou 077 (pas d'accès permis aux nouveaux fichiers pour les membres du groupe de l'utilisateur) peuvent être utilisés. Debian (par défaut<footnote><para>Tel que défini dans <filename>/etc/adduser.conf</filename> (USERGROUPS=yes). Vous pouvez modifier ce comportement en configurant cette valeur à « no », bien que ce ne soit pas recommandé.</para></footnote>) crée un groupe par utilisateur de telle sorte que seul l'utilisateur soit inclus dans son groupe. Par conséquent, 027 et 077 sont équivalents car le groupe de l'utilisateur ne contient que l'utilisateur lui-même.

en: This change is set by defining a proper <literal>umask</literal> setting for all users. You can change this by introducing an <command>umask</command> call in the shell configuration files: <filename>/etc/profile</filename> (source by all Bourne-compatible shells), <filename>/etc/csh.cshrc</filename>, <filename>/etc/csh.login</filename>, <filename>/etc/zshrc</filename> and probably some others (depending on the shells you have installed on your system). You can also change the <varname>UMASK</varname> setting in <filename>/etc/login.defs</filename>, Of all of these the last one that gets loaded by the shell takes precedence. The order is: the default system configuration for the user's shell (i.e. <filename>/etc/profile</filename> and other system-wide configuration files) and then the user's shell (his <filename>~/.profile</filename>, <filename>~/.bash_profile</filename>, etc...). Some shells, however, can be executed with a <emphasis>nologin</emphasis> value which might skip sourcing some of those files. See your shell's manpage for additional information.
fr: Cette modification est configurée en définissant un réglage correct de <literal>umask</literal> pour tous les utilisateurs. Vous pouvez modifier cela en introduisant un appel <command>umask</command> dans les fichiers de configuration de l'interpréteur de commandes : <filename>/etc/profile</filename> (source par tous les interpréteurs de commandes compatibles Bourne), <filename>/etc/csh.cshrc</filename>, <filename>/etc/csh.login</filename>, <filename>/etc/zshrc</filename> et probablement d'autres (en fonction des interpréteurs de commandes installés sur le système). Vous pouvez aussi modifier le réglage de <varname>UMASK</varname> dans <filename>/etc/login.defs</filename>. De toutes celles-là, la dernière chargée par l'interpréteur de commandes est prioritaire. L'ordre est : la configuration système par défaut pour l'interpréteur de l'utilisateur (c'est-à-dire <filename>/etc/profile</filename> et les autres fichiers de configuration globaux du système) et ensuite ceux de l'utilisateur (ses <filename>~/.profile</filename>, <filename>~/.bash_profile</filename>, etc.). Certains interpréteurs, cependant, peuvent être exécutés avec une valeur <emphasis>nologin</emphasis> avec laquelle certains de ces fichiers pourraient être sautés. Consultez la page de manuel de l'interpréteur pour obtenir de plus amples renseignements.

en: For connections that make use of <command>login</command> the UMASK definition in <filename>/etc/login.defs</filename> is used before any of the others. However, that value does not apply to user executed programs that do not use <command>login</command> such as those run through <command>su</command>, <command>cron</command> or <command>ssh</command>.
fr: Pour les connexions qui utilisent <command>login</command>, la définition de <varname>UMASK</varname> de <filename>/etc/login.defs</filename> est utilisée avant toutes les autres. Cependant, cette valeur ne s'applique pas aux programmes exécutés par l'utilisateur qui n'utilisent pas <command>login</command> comme ceux exécutés à travers <command>su</command>, <command>cron</command> ou <command>ssh</command>.

en: Don't forget to review and maybe modify the dotfiles under <filename>/etc/skel/</filename> since these will be new user's defaults when created with the <command>adduser</command> command. Debian default dotfiles do not include any <command>umask</command> call but if there is any in the dotfiles newly created users might a different value.
fr: N'oubliez pas de vérifier et éventuellement modifier les fichiers de configuration utilisateur sous <filename>/etc/skel/</filename> car ce sont ceux qui seront utilisés par défaut quand ils sont créés avec la commande <command>adduser</command>. Les fichiers de configuration utilisateur Debian par défaut ne contiennent pas d'appel <command>umask</command> mais s'il y en a dans n'importe quel fichier de configuration utilisateur, les utilisateurs nouvellement créés pourraient avoir une valeur différente.

en: Note, however that users can modify their own <literal>umask</literal> setting if they want to, making it more permissive or more restricted, by changing their own dotfiles.
fr: Notez, cependant, que les utilisateurs peuvent modifier leur propre paramètre <literal>umask</literal> s'ils le désirent, le rendant plus permissif ou plus restrictif, en modifiant leurs propres fichiers de configuration utilisateur.

en: The <application>libpam-umask</application> package adjusts the users' default <literal>umask</literal> using PAM. Add the following, after installing the package, to <filename>/etc/pam.d/common-session</filename>:
fr: Le paquet <application>libpam-umask</application> règle l'<literal>umask</literal> par défaut utilisant PAM. Après l'installation du paquet, ajoutez ceci à <filename>/etc/pam.d/common-session</filename>:

en: Finally, you should consider changing root's default 022 umask (as defined in <filename>/root/.bashrc</filename>) to a more strict umask. That will prevent the system administrator from inadvertenly dropping sensitive files when working as root to world-readable directories (such as <filename>/tmp</filename>) and having them available for your average user.
fr: Enfin, vous pourriez envisager de modifier l'umask par défaut du superutilisateur à 022 (tel que défini dans <filename>/root/.bashrc</filename>) à une valeur plus restrictive. Cela évitera à l'administrateur système de laisser fuir par inadvertance des fichiers sensibles lorsqu'il travaille en tant que superutilisateur dans des répertoires lisibles par tous (comme <filename>/tmp</filename>) et en les rendant lisibles aux autres utilisateurs.

en: Limiting what users can see/access
fr: Limiter ce que les utilisateurs peuvent voir et accéder

en: FIXME: Content needed. Describe the consequences of changing packages permissions when upgrading (an admin this paranoid should <command>chroot</command> his users BTW) if not using <command>dpkg-statoverride</command>.
fr: FIXME: Besoin de contenu. Indiquer les conséquences de changement des permissions des paquets lors d'une mise à jour (un administrateur aussi paranoïaque que cela devrait <command>chroot</command>er ses utilisateurs au passage) s'il n'utilise pas <command>dpkg-statoverride</command>.

en: If you need to grant users access to the system with a shell think about it very carefully. A user can, by default unless in a severely restricted environment (like a <literal>chroot</literal> jail), retrieve quite a lot of information from your system including:
fr: Si vous avez besoin d'accorder aux utilisateurs un accès au système avec un interpréteur de commandes, réfléchissez-y très soigneusement. Un utilisateur peut, par défaut à moins d'être dans un environnement extrêmement restreint (comme une prison <literal>chroot</literal>), récupérer un assez grand nombre d'informations concernant le système, y compris&nbsp;:

en: some configuration files in <filename>/etc</filename>. However, Debian's default permissions for some sensitive files (which might, for example, contain passwords), will prevent access to critical information. To see which files are only accessible by the root user for example
fr: certains fichiers de configuration dans <filename>/etc</filename>. Cependant, les permissions par défaut de Debian pour certains fichiers sensibles (qui peuvent, par exemple, contenir des mots de passe) empêcheront l'accès à des informations critiques. Pour voir quels fichiers ne sont accessibles que par le superutilisateur, exécutez par exemple <literal>find /etc -type f -a -perm 600 -a -uid 0</literal> en tant que superutilisateur ;

en: as superuser.
fr: en tant que superutilisateur

en: your installed packages, either by looking at the package database, at the <filename>/usr/share/doc</filename> directory or by guessing by looking at the binaries and libraries installed in your system.
fr: vos paquets installés, soit en consultant la base de données des paquets, soit dans le répertoire <filename>/usr/share/doc</filename>, soit en devinant en regardant les binaires et bibliothèques installés sur le système ;

en: some log files at <filename>/var/log</filename>. Note also that some log files are only accessible to root and the <literal>adm</literal> group (try
fr: certains fichiers journaux dans <filename>/var/log</filename>. Notez également que quelques fichiers journaux ne sont accessibles qu'au superutilisateur et au groupe <literal>adm</literal> (essayez

en: ) and some are even only available to the root user (try
fr: ) et certains ne sont même disponibles que pour le superutilisateur (essayez

en: What can a user see in your system? Probably quite a lot of things, try this (take a deep breath):
fr: Que peut voir un utilisateur dans le système? Probablement un assez grand nombre de choses, essayez ceci (prenez une profonde respiration):

en: 
      find / -type f -a -perm +006 2&gt;/dev/null  
      find / -type d -a -perm +007 2&gt;/dev/null
fr: 
      find / -type f -a -perm +006 2>/dev/null  
      find / -type d -a -perm +007 2>/dev/null

en: The output is the list of files that a user can <emphasis>see</emphasis> and the accessable directories.
fr: La liste des fichiers qu'un utilisateur peut <emphasis>voir</emphasis> et des répertoires auxquels il a accès est affichée.

en: Limiting access to other user's information
fr: Limiter l'accès aux informations d'autres utilisateurs

en: If you still grant shell access to users you might want to limit what information they can view from other users. Users with shell access have a tendency to create quite a number of files under their $HOMEs: mailboxes, personal documents, configuration of X/GNOME/KDE applications...
fr: Si vous accordez toujours un accès d'interpréteur de commandes aux utilisateurs, vous pouvez vouloir limiter les informations qu'ils peuvent voir des autres utilisateurs. Les utilisateurs ayant un accès d'interpréteur de commandes ont tendance à créer un grand nombre de fichiers dans leur répertoire &#36;HOME: boîtes aux lettres, documents personnels, configuration des applications X/GNOME/KDE, etc.

en: In Debian each user is created with one associated group, and no two users belong to the same group. This is the default behavior: when an user account is created, a group of the same name is created too, and the user is assigned to it. This avoids the concept of a common <emphasis>users</emphasis> group which might make it more difficult for users to hide information from other users.
fr: Sous Debian, chaque utilisateur est créé avec un groupe associé et aucun utilisateur n'appartient au groupe d'un autre utilisateur. Il s'agit du comportement par défaut: quand un compte d'utilisateur est créé, un groupe du même nom est créé et l'utilisateur lui est attribué. Cela évite le concept d'un groupe <emphasis>users</emphasis> qui peut rendre plus difficile pour les utilisateurs de cacher des informations aux autres utilisateurs.

en: However, users' <varname>$HOME</varname> directories are created with 0755 permissions (group-readable and world-readable). The group permissions is not an issue since only the user belongs to the group, however the world permissions might (or might not) be an issue depending on your local policy.
fr: Cependant, les répertoires <varname>&#36;HOME</varname> des utilisateurs sont créés avec les permissions 0755 (lisible par le groupe et par tout le monde). Les permissions de groupe ne sont pas un problème car seul l'utilisateur appartient au groupe, cependant les permissions pour les autres peuvent être (ou non) un problème selon vos règles locales.

en: You can change this behavior so that user creation provides different <varname>$HOME</varname> permissions. To change the behavior for <emphasis>new</emphasis> users when they get created, change <emphasis>DIR_MODE</emphasis> in the configuration file <filename>/etc/adduser.conf</filename> to 0750 (no world-readable access).
fr: Vous pouvez changer ce comportement pour que la création d'utilisateur fournisse des permissions sur <varname>&#36;HOME</varname> différentes. Pour changer ce comportement pour les <emphasis>nouveaux</emphasis> utilisateurs quand ils seront créés, changez <emphasis>DIR_MODE</emphasis> dans le fichier de configuration <filename>/etc/adduser.conf</filename> à 0750 (pas d'accès en lecture pour tout le monde).

en: Users can still share information, but not directly in their <varname>$HOME</varname> directories unless they change its permissions.
fr: Les utilisateurs peuvent toujours partager des informations, mais pas directement dans leur répertoire <varname>&#36;HOME</varname> à moins qu'ils ne changent les permissions de celui-ci.

en: Note that disabling world-readable home directories will prevent users from creating their personal web pages in the <filename>~/public_html</filename> directory, since the web server will not be able to read one component in the path - namely their <varname>$HOME</varname> directory. If you want to permit users to publish HTML pages in their <filename>~/public_html</filename>, then change <emphasis>DIR_MODE</emphasis> to 0751. This will allow the web server to access the final <filename>public_html</filename> directory (which itself should have a mode of 0755) and provide the content published by users. Of course, we are only talking about a default configuration here; users can generally tune modes of their own files completely to their liking, or you could keep content intended for the web in a separate location which is not a subdirectory of user's <varname>$HOME</varname> directory.
fr: Notez que désactiver les répertoires utilisateur lisibles par tout le monde empêchera les utilisateurs de créer leurs pages personnelles dans le répertoire <filename>~/public_html</filename> car le serveur web ne pourra pas lire un composant du chemin &mdash; leur répertoire <varname>&#36;HOME</varname>. Si vous voulez permettre aux utilisateurs de publier des pages HTML dans leur <filename>~/public_html</filename>, changez <emphasis>DIR_MODE</emphasis> en 0751. Cela permettra au serveur web d'accéder à ce répertoire (qui devrait lui-même avoir le mode 0755) et de fournir le contenu publié par les utilisateurs. Bien sûr, nous ne parlons ici que d'une configuration par défaut; les utilisateurs peuvent généralement ajuster les permissions de leurs fichiers comme ils le désirent, ou vous pouvez conserver le contenu destiné au web dans un emplacement séparé qui n'est pas un sous-répertoire du répertoire <varname>&#36;HOME</varname> de chaque utilisateur.

en: Generating user passwords
fr: Générer des mots de passe utilisateur

en: There are many cases when an administrator needs to create many user accounts and provide passwords for all of them. Of course, the administrator could easily just set the password to be the same as the user's account name, but that would not be very sensitive security-wise. A better approach is to use a password generating program. Debian provides <application>makepasswd</application>, <application>apg</application> and <application>pwgen</application> packages which provide programs (the name is the same as the package) that can be used for this purpose. <command>Makepasswd</command> will generate true random passwords with an emphasis on security over pronounceability while <command>pwgen</command> will try to make meaningless but pronounceable passwords (of course this might depend on your mother language). <command>Apg</command> has algorithms to provide for both (there is a client/server version for this program but it is not included in the Debian package).
fr: Il y a plusieurs cas dans lesquels un utilisateur a besoin de créer un grand nombre de comptes utilisateur et de fournir des mots de passe pour tous ceux-ci. Bien sûr, l'administrateur peut facilement positionner le mot de passe pour être le même que le nom du compte utilisateur, mais cela n'est pas très conseillé sur le plan de la sécurité. Une meilleure approche est d'utiliser un programme de génération de mots de passe. Debian fournit les paquets <application>makepasswd</application>, <application>apg</application> et <application>pwgen</application> qui contiennent des programmes (dont le nom est le même que celui du paquet) qui peuvent être utilisés dans ce but. <command>makepasswd</command> génère des mots de passe vraiment aléatoires avec un accent sur la sécurité plus que la prononçabilité tandis que <command>pwgen</command> essaie de créer des mots de passe sans signification, mais prononçables (bien sûr, cela dépend de votre langue maternelle). <command>apg</command> dispose d'algorithmes pour les deux (il y a une version client/serveur pour ce programme, mais elle n'est pas incluse dans le paquet Debian).

en: <command>Passwd</command> does not allow non-interactive assignation of passwords (since it uses direct tty access). If you want to change passwords when creating a large number of users you can create them using <command>adduser</command> with the <literal>--disabled-login</literal> option and then use <command>usermod</command> or <command>chpasswd</command> <footnote><para> <command>Chpasswd</command> cannot handle MD5 password generation so it needs to be given the password in encrypted form before using it, with the <screen><userinput>-e</userinput></screen> option. </para></footnote> (both from the <application>passwd</application> package so you already have them installed). If you want to use a file with all the information to make users as a batch process you might be better off using <command>newusers</command>.
fr: <command>Passwd</command> ne permet pas une attribution non interactive des mots de passe (car il utilise un accès direct au terminal tty). Si vous désirez changer des mots de passe lors de la création d'un grand nombre d'utilisateurs, vous pouvez les créer en utilisant <command>adduser</command> avec l'option <literal>--disabled-login</literal>, puis utiliser <command>usermod</command> ou <command>chpasswd</command> <footnote><para><command>chpasswd</command> ne sait pas gérer la génération de mots de passe MD5, il faut donc lui donner le mot de passe sous sa forme chiffrée avant de l'utiliser avec l'option  <screen><userinput>-e</userinput></screen>.</para></footnote> (tous les deux dans le paquet <command>passwd</command>, ils sont donc déjà installés). Si vous voulez utiliser un fichier avec toutes les informations pour créer les utilisateurs comme un processus batch, il sera probablement préférable d'utiliser <command>newusers</command>.

en: Checking user passwords
fr: Vérifier les mots de passe utilisateur

en: User passwords can sometimes become the <emphasis>weakest link</emphasis> in the security of a given system. This is due to some users choosing weak passwords for their accounts (and the more of them that have access to it the greater the chances of this happening). Even if you established checks with the cracklib PAM module and password limits as described in <xref linkend="auth-pam" /> users will still be able to use weak passwords. Since user access might include remote shell access (over <command>ssh</command>, hopefully) it's important to make password guessing as hard as possible for the remote attackers, especially if they were somehow able to collect important information such as usernames or even the <filename>passwd</filename> and <filename>shadow</filename> files themselves.
fr: Les mots de passe des utilisateurs peuvent parfois devenir le <emphasis>maillon faible</emphasis> de la sécurité d'un système donné. Cela provient du fait que quelques utilisateurs choisissent des mots de passe faibles pour leur compte (et plus il y a d'utilisateurs, plus grandes sont les chances que cela se produise). Même si vous mettez en place des vérifications avec le module PAM cracklib et les limitations sur les mots de passe comme décrites dans <xref linkend="auth-pam" />, les utilisateurs pourront toujours utiliser des mots de passe faibles. Comme l'accès utilisateur peut inclure un accès à une invite de commandes à distance (en espérant que ce soit avec <command>ssh</command>), il est important de rendre les mots de passe aussi difficile à deviner que possible pour les attaquants à distance, particulièrement s'ils ont pu récupérer des informations importantes comme les noms d'utilisateur ou même les fichiers <filename>passwd</filename> et <filename>shadow</filename> eux-mêmes.

en: A system administrator must, given a big number of users, check if the passwords they have are consistent with the local security policy. How to check? Try to crack them as an attacker would if having access to the hashed passwords (the <filename>/etc/shadow</filename> file).
fr: Un administrateur système doit, suivant le nombre d'utilisateurs, vérifier si les mots de passe sont cohérents avec la règle locale de sécurité. Comment vérifier? Essayez de les casser comme le ferait un attaquant s'il avait accès aux mots de passe hachés (le fichier <filename>/etc/shadow</filename>).

en: Logging off idle users
fr: Déconnecter les utilisateurs inactifs (idle)

en: Idle users are usually a security problem, a user might be idle maybe because he's out to lunch or because a remote connection hung and was not re-established. For whatever the reason, idle users might lead to a compromise:
fr: L'inactivité des utilisateurs pose habituellement un problème de sécurité, un utilisateur peut être inactif parce qu'il est parti déjeuner ou parce qu'une connexion à distance s'est bloquée et n'a pas été rétablie. Quelqu'en soit la raison, les utilisateurs inactifs peuvent amener à une compromission:

en: because the user's console might be unlocked and can be accessed by an intruder.
fr: car la console de l'utilisateur peut être débloquée et peut être accédée par un intrus ;

en: because an attacker might be able to re-attach to a closed network connection and send commands to the remote shell (this is fairly easy if the remote shell is not encrypted as in the case of <command>telnet</command>).
fr: car un attaquant peut être capable de se rattacher lui-même à une connexion réseau fermée et envoyer des commandes à l'invite de commandes distante (c'est assez facile si l'invite de commandes distante n'est pas chiffrée comme avec <command>telnet</command>).

en: Some remote systems have even been compromised through an idle (and detached) <command>screen</command>.
fr: Certains systèmes à distance ont même été compromis à travers un <command>screen</command> inactif (et détaché).

en: Automatic disconnection of idle users is usually a part of the local security policy that must be enforced. There are several ways to do this:
fr: La déconnexion automatique des utilisateurs inactifs est habituellement une partie qui doit être imposée par les règles de sécurité locales. Plusieurs moyens existent pour cela:

en: If <application>bash</application> is the user shell, a system administrator can set a default <varname>TMOUT</varname> value (see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>) which will make the shell automatically log off remote idle users. Note that it must be set with the <literal>-o</literal> option or users will be able to change (or unset) it.
fr: si <application>bash</application> est l'interpréteur de commandes de l'utilisateur, un administrateur système peut positionner une valeur <varname>TMOUT</varname> par défaut (consultez <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>) qui entraînera la déconnexion automatique des utilisateurs distants inactifs. Notez que cela doit être configuré avec l'option <literal>-o</literal> ou les utilisateurs pourront la changer (ou la désactiver) ;

en: Install <application>timeoutd</application> and configure <filename>/etc/timeouts</filename> according to your local security policy. The daemon will watch for idle users and time out their shells accordingly.
fr: installez <application>timeoutd</application> et configurez <filename>/etc/timeouts</filename> selon vos règles de sécurité locales. Le démon regardera les utilisateurs inactifs et mettra un terme à leur invite de commandes en fonction ;

en: Install <application>autolog</application> and configure it to remove idle users.
fr: installez <application>autolog</application> et configurez-le pour enlever les utilisateurs inactifs.

en: The <command>timeoutd</command> or <command>autolog</command> daemons are the preferred method since, after all, users can change their default shell or can, after running their default shell, switch to another (uncontrolled) shell.
fr: Les démons <command>timeoutd</command> et <command>autolog</command> sont les méthodes préférées car, après tout, les utilisateurs peuvent changer d'interpréteur de commandes par défaut ou peuvent, après avoir exécuté leur interpréteur de commandes par défaut, basculer sur un autre interpréteur de commandes (non contrôlé).

en: Using tcpwrappers
fr: Utilisation de tcpwrappers

en: TCP wrappers were developed when there were no real packet filters available and access control was needed. Nevertheless, they're still very interesting and useful. The TCP wrappers allow you to allow or deny a service for a host or a domain and define a default allow or deny rule (all performed on the application level). If you want more information take a look at <citerefentry><refentrytitle>hosts_access</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page.
fr: L'encapsulation TCP a été développée quand il n'y avait pas de réels filtres de paquets disponibles et que les contrôles d'accès étaient nécessaires. Toutefois, ils sont toujours très intéressants et utiles. L'encapsulation TCP vous permet d'autoriser ou de refuser un service à un hôte ou à un domaine et de définir une règle par défaut pour les autorisations et les refus (toutes réalisées au niveau applicatif). Pour plus de détails, jetez un &oelig;il à <citerefentry><refentrytitle>hosts_access</refentrytitle> <manvolnum>5</manvolnum></citerefentry>.

en: Many services installed in Debian are either:
fr: De nombreux services installés dans Debian sont soit:

en: launched through the tcpwrapper service (<filename>tcpd</filename>)
fr: lancés par le service tcpwrapper (<filename>tcpd</filename>) ;

en: compiled with libwrapper support built-in.
fr: compilés avec la prise en charge de libwrapper.

en: On the one hand, for services configured in <filename>/etc/inetd.conf</filename> (this includes <command>telnet</command>, <command>ftp</command>, <command>netbios</command>, <command>swat</command> and <command>finger</command>) you will see that the configuration file executes <command>/usr/sbin/tcpd</command> first. On the other hand, even if a service is not launched by the <command>inetd</command> superdaemon, support for the tcp wrappers rules can be compiled into it. Services compiled with tcp wrappers in Debian include <command>ssh</command>, <command>portmap</command>, <command>in.talk</command>, <command>rpc.statd</command>, <command>rpc.mountd</command>, <command>gdm</command>, <command>oaf</command> (the GNOME activator daemon), <command>nessus</command> and many others.
fr: D'un côté, pour des services configurés dans <filename>/etc/inetd.conf</filename>, cela comprend <command>telnet</command>, <command>ftp</command>, <command>netbios</command>, <command>swat</command> et <command>finger</command>), vous observerez que le fichier de configuration exécute avant tout <command>/usr/sbin/tcpd</command>. D'un autre côté, même si un service n'est pas lancé par le super démon <command>inetd</command>, il peut être compilé avec la prise en charge pour les règles d'encapsulation TCP. Les services suivant sont compilés avec prise en charge d'encapsulation TCP dans Debian : <command>ssh</command>, <command>portmap</command>, <command>in.talk</command>, <command>rpc.statd</command>, <command>rpc.mountd</command>, <command>gdm</command>, <command>oaf</command> (le démon d'activation GNOME), <command>nessus</command> et beaucoup d'autres.

en: To see which packages use tcpwrappers <footnote><para> On older Debian releases you might need to do this: <screen> $ apt-cache showpkg libwrap0 | egrep '^[[:space:]]' | sort -u | \ sed 's/,libwrap0$//;s/^[[:space:]]\+//' </screen> </para></footnote> try:
fr: Pour voir quels paquets utilisent tcpwrappers <footnote><para>Pour les anciennes versions de Debian, vous pourriez devoir utiliser : <screen> &#36; apt-cache showpkg libwrap0 | egrep '^[[:space:]]' | sort -u | \ sed 's/,libwrap0&#36;//;s/^[[:space:]]\+//'</screen></para></footnote>, essayez :

en: 
      $ apt-cache rdepends libwrap0
fr: 
      &#36; apt-cache rdepends libwrap0

en: Take this into account when running <command>tcpdchk</command> (a very useful TCP wrappers config file rule and syntax checker). When you add stand-alone services (that are directly linked with the wrapper library) into the <filename>hosts.deny</filename> and <filename>hosts.allow</filename> files, <command>tcpdchk</command> will warn you that it is not able to find the mentioned services since it only looks for them in <filename>/etc/inetd.conf</filename> (the manpage is not totally accurate here).
fr: Tenez compte de cela quand vous utilisez <command>tcpdchk</command> (un vérificateur très utile de règles et syntaxe de fichier de configuration d'encapsulation TCP). Quand vous pouvez ajouter des services indépendants (qui sont liés à la bibliothèque d'encapsulation) dans les fichiers <filename>host.deny</filename> et <filename>hosts.allow</filename>, <command>tcpdchk</command> vous informera qu'il ne peut pas trouver les services mentionnés étant donné qu'il les cherche dans <filename>/etc/inetd.conf</filename> (la page de manuel n'est pas totalement précise ici).

en: Now, here comes a small trick, and probably the smallest intrusion detection system available. In general, you should have a decent firewall policy as a first line, and tcp wrappers as the second line of defense. One little trick is to set up a <varname>SPAWN</varname> <footnote><para>be sure to use uppercase here since <emphasis>spawn</emphasis> will not work</para></footnote> command in <filename>/etc/hosts.deny</filename> that sends mail to root whenever a denied service triggers wrappers:
fr: À présent, voici une petite astuce et probablement le plus petit système de détection d'intrusions disponible. Généralement, vous devriez disposer d'une politique correcte concernant le pare-feu en première ligne, puis disposer de l'encapsulation TCP en seconde ligne de défense. Un petit truc est de mettre en place une commande SPAWN <footnote><para>Assurez-vous d'utiliser des majuscules sinon <emphasis>spawn</emphasis> ne fonctionnera pas.</para></footnote> dans /etc/hosts.deny qui enverra un courrier au superutilisateur quand un service refusé déclenche l'encapsulation :

en: 
      ALL: ALL: SPAWN ( \
        echo -e "\n\
        TCP Wrappers\: Connection refused\n\
        By\: $(uname -n)\n\
        Process\: %d (pid %p)\n\
        User\: %u\n\
        Host\: %c\n\
        Date\: $(date)\n\
      " | /usr/bin/mail -s "Connection to %d blocked" root) &amp;
fr: 
      ALL: ALL: SPAWN ( \
        echo -e "\n\
        Encapsulation TCP \: Connexion refusée\n\
        Par \: &#36;(uname -n)\n\
        Processus \: %d (pid %p)\n\
        Utilisateur \: %u\n\
        Hôte \: %c\n\
        Date \: &#36;(date)\n\
      " | /usr/bin/mail -s "Connexion à %d bloquée" root) &#38;

en: <emphasis>Beware</emphasis>: The above printed example is open to a DoS attack by making many connections in a short period of time. Many emails mean a lot of file I/O by sending only a few packets.
fr: <emphasis>Attention</emphasis>: L'exemple ci-dessus peut-être facilement sujet à une attaque par déni de service en soumettant énormément de connexions dans une période très courte. De nombreux courriers signifient de nombreuses E/S en envoyant uniquement quelques paquets.

en: The importance of logs and alerts
fr: L'importance des journaux et des alertes

en: It is easy to see that the treatment of logs and alerts is an important issue in a secure system. Suppose a system is perfectly configured and 99% secure. If the 1% attack occurs, and there are no security measures in place to, first, detect this and, second, raise alarms, the system is not secure at all.
fr: Il est facile de voir que le traitement de journaux et alertes est un problème sérieux sur un système sécurisé. Supposons qu'un système est parfaitement configuré et sécurisé à 99 %. Si l'attaque représentant le 1 % vient à arriver et qu'il n'y a pas de mesures de sécurité mises en place pour, dans un premier temps, détecter cela et, dans un deuxième temps, lancer l'alerte, le système n'est pas sécurisé du tout.

en: Debian GNU/Linux provides some tools to perform log analysis, most notably <application>swatch</application>, <footnote><para>there's a very good article on it written by <ulink name="Lance Spitzner" url="http://www.spitzner.net/swatch.html" /> </para></footnote> <application>logcheck</application> or <application>log-analysis</application> (all will need some customisation to remove unnecessary things from the report). It might also be useful, if the system is nearby, to have the system logs printed on a virtual console. This is useful since you can (from a distance) see if the system is behaving properly. Debian's <filename>/etc/syslog.conf</filename> comes with a commented default configuration; to enable it uncomment the lines and restart <command>syslogd</command> (<userinput>/etc/init.d/syslogd restart</userinput>):
fr: Debian GNU/Linux fournit quelques outils pour effectuer des analyses de journaux, notamment <application>swatch</application><footnote><para>Il y a un très bon article sur celui-ci écrit par <ulink name="Lance Spitzner" url="http://www.spitzner.net/swatch.html" />.</para></footnote>, <application>logcheck</application> ou <application>log-analysis</application> (tous ont besoin d'être personnalisés pour enlever les choses non nécessaires des comptes-rendus). Il peut être également utile, si le système est proche, d'avoir les journaux du système affichés sur une console virtuelle. C'est utile car vous pouvez (de loin) voir si le système se comporte correctement. Le fichier <filename>/etc/syslog.conf</filename> de Debian est fourni avec une configuration commentée par défaut; pour l'activer, décommenter les lignes et redémarrez <command>syslogd</command> (<userinput>/etc/init.d/syslogd restart</userinput>:

en: To colorize the logs, you could take a look at <application>colorize</application>, <application>ccze</application> or <application>glark</application>. There is a lot to log analysis that cannot be fully covered here, so a good information resource would be books should as <ulink name="Security log management: identifying patterns in the chaos" url="http://books.google.com/books?id=UyktqN6GnWEC" />. In any case, even automated tools are no match for the best analysis tool: your brain.
fr: Pour colorer les journaux, vous pouvez jeter un &oelig;il à <application>colorize</application>, <application>ccze</application> ou <application>glark</application>. Une grande partie de l'analyse des journaux ne peut pas être couverte ici, une bonne ressource d'informations est disponible dans les livres comme <ulink url="http://books.google.com/books?id=UyktqN6GnWEC" name="Gestion des journaux de sécurité : identification de motifs au milieu du chaos" />. Dans tous les cas, même des outils automatiques ne peuvent rivaliser avec le meilleur outil d'analyse: votre cerveau.

en: Using and customizing <command>logcheck</command>
fr: Utiliser et personnaliser <command>logcheck</command>

en: The <command>logcheck</command> package in Debian is divided into the three packages <application>logcheck</application> (the main program), <application>logcheck-database</application> (a database of regular expressions for the program) and <application>logtail</application> (prints loglines that have not yet been read). The Debian default (in <filename>/etc/cron.d/logcheck</filename>) is that <command>logcheck</command> is run every hour and after reboots.
fr: Le paquet <command>logcheck</command> dans Debian est divisé en trois paquets <application>logcheck</application> (le programme principal), <application>logcheck-database</application> (une base de données d'expressions rationnelles pour le programme) et <application>logtail</application> (affiche les lignes du journal qui n'ont pas encore été lues). Le comportement par défaut sous Debian (dans <filename>/etc/cron.d/logcheck</filename>) est que <command>logcheck</command> est exécuté toutes les heures et une fois après le démarrage.

en: This tool can be quite useful if properly customized to alert the administrator of unusual system events. <command>Logcheck</command> can be fully customized so that it sends mails based on events found in the logs and worthy of attention. The default installation includes profiles for ignored events and policy violations for three different setups (workstation, server and paranoid). The Debian package includes a configuration file <filename>/etc/logcheck/logcheck.conf</filename>, sourced by the program, that defines which user the checks are sent to. It also provides a way for packages that provide services to implement new policies in the directories: <filename>/etc/logcheck/cracking.d/_packagename_</filename>, <filename>/etc/logcheck/violations.d/_packagename_</filename>, <filename>/etc/logcheck/violations.ignore.d/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.paranoid/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.server/_packagename_</filename>, and <filename>/etc/logcheck/ignore.d.workstation/_packagename_</filename>. However, not many packages currently do so. If you have a policy that can be useful for other users, please send it as a bug report for the appropriate package (as a <emphasis>wishlist</emphasis> bug). For more information read <filename>/usr/share/doc/logcheck/README.Debian</filename>.
fr: Cet outil peut être assez utile s'il est personnalisé correctement pour alerter l'administrateur d'événements système inhabituels. <command>logcheck</command> peut être complètement personnalisé pour envoyer des courriers selon les événements récupérés des journaux et qui sont dignes d'attention. L'installation par défaut inclut des profils pour des événements ignorés et des violations de règles pour trois configurations différentes (station de travail, serveur et paranoïaque). Le paquet Debian contient un fichier de configuration <filename>/etc/logcheck/logcheck.conf</filename>, qui définit à quel utilisateur sont envoyés les vérifications. Il permet également aux paquets qui fournissent des services d'implémenter de nouvelles règles dans les répertoires: <filename>/etc/logcheck/cracking.d/_paquet_</filename>, <filename>/etc/logcheck/violations.d/_paquet_</filename>, <filename>/etc/logcheck/violations.ignore.d/_paquet_</filename>, <filename>/etc/logcheck/ignore.d.paranoid/_paquet_</filename>, <filename>/etc/logcheck/ignore.d.server/_paquet_</filename> et <filename>/etc/logcheck/ignore.d.workstation/_paquet_</filename>. Cependant, peu de paquets le font actuellement. Si vous avez une règle qui peut être utile à d'autres utilisateurs, veuillez l'envoyer comme un rapport de bogue sur le paquet approprié (comme un bogue de gravité <emphasis>wishlist</emphasis>). Pour obtenir plus de renseignements, veuillez consulter <filename>/usr/share/doc/logcheck/README.Debian</filename>.

en: The best way to configure <command>logcheck</command> is to edit its main configuration file <filename>/etc/logcheck/logcheck.conf</filename> after installation. Change the default user (root) to whom reports should be mailed. You should set the reportlevel in there, too. <application>logcheck-database</application> has three report levels of increasing verbosity: workstation, server, paranoid. "server" being the default level, paranoid is only recommended for high-security machines running as few services as possible and workstation for relatively sheltered, non-critical machines. If you wish to add new log files just add them to <filename>/etc/logcheck/logcheck.logfiles</filename>. It is tuned for default syslog install.
fr: Le meilleur moyen de configurer <command>logcheck</command> est d'éditer son fichier de configuration principal <filename>/etc/logcheck/logcheck.conf</filename> après l'avoir installé. Modifiez l'utilisateur par défaut (root) à qui seront envoyés par courrier les comptes-rendus. Vous devriez également y positionner le niveau de compte-rendu. <application>logcheck-database</application> a trois niveaux de compte-rendu de verbosité croissante: station de travail, serveur, paranoïaque. «serveur» étant le niveau par défaut, «paranoïaque» n'est recommandé que pour les machines de haute sécurité ne faisant fonctionner qu'aussi peu de services que possible et «station de travail» est pour les machines relativement protégés et non critiques. Si vous désirez ajouter de nouveaux fichiers journaux, ajoutez-les simplement à <filename>/etc/logcheck/logcheck.logfiles</filename>. Celui-ci est configuré pour une installation de syslog par défaut.

en: Once this is done you might want to check the mails that are sent, for the first few days/weeks/months. If you find you are sent messages you do not wish to receive, just add the regular expressions (see <citerefentry><refentrytitle>regex</refentrytitle><manvolnum>7</manvolnum></citerefentry> and <citerefentry><refentrytitle>egrep</refentrytitle><manvolnum>1</manvolnum></citerefentry>) that correspond to these messages to the <filename>/etc/logcheck/ignore.d.<varname>reportlevel</varname>/local</filename>. Try to match the whole logline. Details on howto write rules are explained in <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename>. It's an ongoing tuning process; once the messages that are sent are always relevant you can consider the tuning finished. Note that if <command>logcheck</command> does not find anything relevant in your system it will not mail you even if it does run (so you might get a mail only once a week, if you are lucky).
fr: Une fois fait, vous pouvez vouloir vérifier les courriers envoyés, pour les quelques premiers jours, semaines ou mois. Si estimez recevoir des messages indésirables, ajoutez simplement l'expression rationnelle (consultez <citerefentry><refentrytitle>regex</refentrytitle><manvolnum>7</manvolnum></citerefentry> et <citerefentry><refentrytitle>egrep</refentrytitle><manvolnum>1</manvolnum></citerefentry>) qui correspond à ces messages au fichier <filename>/etc/logcheck/ignore.d.<varname>niveau_de_compte-rendu </varname>/local</filename>. Essayez de faire correspondre à la ligne entière du journal. Des détails sur l'écriture des règles sont expliqués dans <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename>. C'est un processus d'affinement perpétuel; une fois que les messages envoyés sont toujours pertinents, vous pouvez considérer que l'affinement est terminé. Notez que si <command>logcheck</command> ne trouve rien de pertinent dans le système, il ne vous enverra pas de courrier même s'il fonctionne (donc, vous pouvez ne recevoir de courrier qu'une fois par semaine si vous êtes chanceux).

en: Configuring where alerts are sent
fr: Configurer l'endroit où les alertes sont envoyées

en: Debian comes with a standard <application>syslog</application> configuration (in <filename>/etc/syslog.conf</filename>) that logs messages to the appropriate files depending on the system facility. You should be familiar with this; have a look at the <filename>syslog.conf</filename> file and the documentation if not. If you intend to maintain a secure system you should be aware of where log messages are sent so they do not go unnoticed.
fr: Debian livre une configuration standard de <application>syslog</application> (dans <filename>/etc/syslog.conf</filename>) qui archive les messages dans les fichiers appropriés en fonction de la facilité du système. Vous devriez être familier avec cela; jetez un &oelig;il au fichier <filename>syslog.conf</filename> et à la documentation si vous ne l'êtes pas. Si vous avez l'intention de maintenir un système sécurisé, vous devriez être conscient de l'endroit où les journaux sont envoyées ainsi ils ne sont pas perdus dans la nature.

en: For example, sending messages to the console also is an interesting setup useful for many production-level systems. But for many such systems it is also important to add a new machine that will serve as loghost (i.e. it receives logs from all other systems).
fr: Par exemple, envoyer des messages à la console est également utile pour de nombreux systèmes de production. Mais pour de nombreux systèmes semblables il est également important d'ajouter une nouvelle machine qui servira de serveur de journalisation (il reçoit les journaux de tous les autres systèmes).

en: Root's mail should be considered also, many security controls (like <application>snort</application>) send alerts to root's mailbox. This mailbox usually points to the first user created in the system (check <filename>/etc/aliases</filename>). Take care to send root's mail to some place where it will be read (either locally or remotely).
fr: Le courrier du superutilisateur devrait être pris en considération également, de nombreux contrôles de sécurité (comme <application>snort</application>) envoient des alertes dans la boîte aux lettres du superutilisateur. Celle-ci pointe généralement sur le premier utilisateur créé sur le système (vérifiez <filename>/etc/aliases</filename>). Veillez à envoyer le courrier du superutilisateur à un endroit où il sera lu (soit localement soit à distance).

en: There are other role accounts and aliases on your system. On a small system, it's probably simplest to make sure that all such aliases point to the root account, and that mail to root is forwarded to the system administrator's personal mailbox.
fr: Il y a d'autres comptes et alias «rôles» sur le système. Sur un petit système, le plus simple est probablement de s'assurer que tous ces alias pointent vers le compte du superutilisateur, et que les messages à destination du superutilisateur sont retransmis vers la boîte aux lettres personnelle de l'administrateur système.

en: FIXME: It would be interesting to tell how a Debian system can send/receive SNMP traps related to security problems (jfs). Check: <application>snmptrapfmt</application>, <application>snmp</application> and <application>snmpd</application>.
fr: FIXME : Il serait intéressant de dire comment un système Debian peut envoyer/recevoir des messages SNMP relatifs à des problèmes de sécurité (jfs). Voir: <application>snmptragfmt</application>, <application>snmp</application> et <application>snmpd</application>.

en: Using a loghost
fr: Utilisation d'un hôte d'archivage (loghost)

en: A loghost is a host which collects syslog data remotely over the network. If one of your machines is cracked, the intruder is not able to cover the tracks, unless hacking the loghost as well. So, the loghost should be especially secure. Making a machine a loghost is simple. Just start the <command>syslogd</command> with
fr: Un loghost est un hôte qui recueille les données des syslog à travers le réseau. Si l'une de vos machines est piratée, l'intrus n'est pas capable de dissimuler ses traces, à moins qu'il ne pirate également le loghost. Par conséquent, le loghost devrait être particulièrement sécurisé. Faire d'une machine un loghost est simple. Il suffit juste de démarrer le <command>syslogd</command> avec:

en: and a new loghost is born. In order to do this permanently in Debian, edit <filename>/etc/default/syslogd</filename> and change the line
fr: et un nouveau loghost est né. De façon à rendre cela permanent dans Debian, éditez <filename>/etc/default/syslogd</filename> et changez la ligne

en: to
fr: par

en: Next, configure the other machines to send data to the loghost. Add an entry like the following to <filename>/etc/syslog.conf</filename>:
fr: Ensuite, configurez les autres machines afin qu'elles envoient les données au loghost. Ajoutez une entrée comme celle qui suit dans <filename>/etc/syslog.conf</filename>:

en: 
      facility.level            @your_loghost
fr: 
      facilité.niveau           @votre_loghost

en: See the documentation for what to use in place of <emphasis>facility</emphasis> and <emphasis>level</emphasis> (they should not be entered verbatim like this). If you want to log everything remotely, just write:
fr: Consultez la documentation pour savoir ce qu'on peut utiliser à la place de <emphasis>facilité</emphasis> et <emphasis>niveau</emphasis> (ils ne devraient pas être mot pour mot comme cela). Si vous voulez tout archiver à distance, il suffit d'écrire:

en: 
      *.*                       @your_loghost
fr: 
      *.*                       @votre_loghost

en: into your <filename>syslog.conf</filename>. Logging remotely as well as locally is the best solution (the attacker might presume to have covered his tracks after deleting the local log files). See the <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> manpages for additional information.
fr: dans <filename>syslog.conf</filename>. Archiver à distance ainsi que localement est la meilleure solution (le pirate peut estimer avoir couvert ses traces après la suppression des fichiers de journalisation locaux). Consultez les pages de manuel <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> pour toutes informations complémentaires.

en: Log file permissions
fr: Permissions du fichier de journalisation

en: It is not only important to decide how alerts are used, but also who has read/modify access to the log files (if not using a remote loghost). Security alerts which the attacker can change or disable are not worth much in the event of an intrusion. Also, you have to take into account that log files might reveal quite a lot of information about your system to an intruder who has access to them.
fr: Il est important de décider non seulement comment les alertes sont utilisées, mais aussi qui y accède, c'est-à-dire qui peut lire ou modifier les fichiers de journalisation (en absence d'hôte d'archivage). Les alertes de sécurité que l'attaquant peut modifier ou désactiver sont de peu de valeur en cas d'intrusion. Vous devez également prendre en compte que les fichiers de journalisation peuvent révéler un grand nombre d'informations à propos du système à un intrus s'il y a accès.

en: Some log file permissions are not perfect after the installation (but of course this really depends on your local security policy). First <filename>/var/log/lastlog</filename> and <filename>/var/log/faillog</filename> do not need to be readable by normal users. In the <filename>lastlog</filename> file you can see who logged in recently, and in the <filename>faillog</filename> you see a summary of failed logins. The author recommends <command>chmod 660</command> for both. Take a brief look at your log files and decide very carefully which log files to make readable/writable for a user with a UID other than 0 and a group other than 'adm' or 'root'. You can easily check this in your system with:
fr: Certaines permissions de fichiers de journalisation ne sont pas parfaites après l'installation (mais, bien sûr, cela dépend vraiment de vos règles de sécurité locales). Premièrement <filename>/var/log/lastlog</filename> et <filename>/var/log/faillog</filename> n'ont pas besoin d'être lisibles par les utilisateurs normaux. Dans <filename>lastlog</filename>, vous pouvez voir qui s'est connecté récemment, et dans <filename>faillog</filename>, vous voyez un résumé des connexions qui ont échouées. L'auteur recommande de faire un <command>chmod 660</command> sur les deux fichiers. Faites un tour rapide des fichiers de journalisation et décidez avec beaucoup d'attention quels fichiers de journalisation vous rendez lisible ou modifiable par un utilisateur avec un UID différent de 0 et un autre groupe que «adm» ou «root». Vous pouvez facilement vérifier cela sur le système avec:

en: 
      #  find /var/log -type f -exec ls -l {} \; | cut -c 17-35 |sort -u
      (see to what users do files in /var/log belong)
      #  find /var/log -type f -exec ls -l {} \; | cut -c 26-34 |sort -u
      (see to what groups do files in /var/log belong)
      # find /var/log -perm +004
      (files which are readable by any user)
      #  find /var/log \! -group root \! -group adm -exec ls -ld {} \;
      (files which belong to groups not root or adm)
fr: 
      #  find /var/log -type f -exec ls -l {} \; | cut -c 17-35 |sort -u
      (voir à quels utilisateurs appartiennent les fichiers de /var/log)
      #  find /var/log -type f -exec ls -l {} \; | cut -c 26-34 |sort -u
      (voir à quels groups appartiennent les fichiers de /var/log)
      # find /var/log -perm +004
      (fichiers lisibles par tout utilisateur)
      #  find /var/log \! -group root \! -group adm -exec ls -ld {} \;
      (fichiers appartenant à des groupes autres que root ou adm)

en: To customize how log files are created you will probably have to customize the program that generates them. If the log file gets rotated, however, you can customize the behavior of creation and rotation.
fr: Pour personnaliser la façon dont les fichiers de journalisation sont créés, vous devez probablement personnaliser le programme qui les génère. Cependant, si le fichier de journalisation est archivé, vous pouvez personnaliser le comportement de la création et de l'archivage.

en: Adding kernel patches
fr: Les utilitaires pour ajouter des correctifs au noyau

en: Debian GNU/Linux provides some of the patches for the Linux kernel that enhance its security. These include:
fr: Debian GNU/Linux fournit quelques correctifs pour le noyau Linux qui améliorent sa sécurité du système. En voici quelques-uns.

en: <ulink url="http://www.lids.org">Linux Intrusion Detection</ulink> provided in the <application>kernel-patch-2.4-lids</application> package. This kernel patch makes the process of hardening your Linux system easier by allowing you to restrict, hide and protect processes, even from root. It implements mandatory access control capabilities.
fr: LIDS &mdash; <ulink url="http://www.lids.org" name="Linux Intrusion Detection" /> fourni dans le paquet <application>kernel-patch-2.4-lids</application>. Ce correctif du noyau rend le processus de renforcement d'un système Linux plus facile en vous permettant de restreindre, cacher et protéger des processus, même par rapport au superutilisateur. Elle implémente des fonctionnalités de contrôle d'accès obligatoire («Mandatory Access Control»).

en: <ulink url="http://trustees.sourceforge.net/">Linux Trustees</ulink>, provided in package <application>trustees</application>. This patch adds a decent advanced permissions management system to your Linux kernel. Special objects (called trustees) are bound to every file or directory, and are stored in kernel memory, which allows fast lookup of all permissions.
fr: <ulink url="http://trustees.sourceforge.net/" name="Linux Trustees" /> fourni dans le paquet <application>trustees</application>. Ce correctif ajoute un système avancé décent de gestion des permissions au noyau Linux. Des objets spéciaux (les « trustees ») sont associés à chaque fichier ou répertoire et ils sont stockés dans la mémoire noyau, ce qui permet un accès rapide pour toutes les permissions.

en: The kernel patch <ulink url="http://people.redhat.com/mingo/exec-shield" /> provided in the <application>kernel-patch-exec-shield</application> package. This patch provides protection against some buffer overflows (stack smashing attacks).
fr: Le <ulink url="http://people.redhat.com/mingo/exec-shield/" name="correctif exec-shield" /> fourni dans le paquet <application>kernel-patch-exec-shield</application>. Ce correctif fournit une protection contre plusieurs dépassements de tampon (attaques par écrasement de pile).

en: The <application>kernel-patch-adamantix</application> provides the patches developed for <ulink url="http://www.adamantix.org/">Adamantix</ulink>, a Debian-based distribution. This kernel patch for the 2.4.x kernel releases introduces some security features such as a non-executable stack through the use of <ulink name="PaX" url="http://pageexec.virtualave.net/" /> and mandatory access control based on <ulink name="RSBAC" url="http://www.rsbac.org/" />. Other features include: <ulink name="the Random PID patch" url="http://www.vanheusden.com/Linux/sp/" />, AES encrypted loop device, MPPE support and an IPSEC v2.6 backport.
fr: Le <application>kernel-patch-adamantix</application> fournit les correctifs développés pour <ulink url="http://www.adamantix.org/" name="Adamantix" />, une distribution basée sur Debian. Le correctif noyau pour les versions 2.4.x du noyau introduit des fonctionnalités de sécurité comme une pile non exécutable grâce à l'utilisation de <ulink url="http://pageexec.virtualave.net/" name="PaX" /> et du contrôle d'accès obligatoire basé sur <ulink url="http://www.rsbac.org/" name="RSBAC" />. Parmi les autres fonctionnalités, on trouve: <ulink url="http://www.vanheusden.com/Linux/sp/" name="le correctif PID aléatoire" />, le périphérique boucle chiffré AES, la gestion MPPE et un rétroportage de la version 2.6 d'IPsec.

en: <application>cryptoloop-source</application>. This patches allows you to use the functions of the kernel crypto API to create encrypted filesystems using the loopback device.
fr: <application>cryptoloop-source</application>. Ce correctif vous permet d'utiliser les fonctions de l'API de chiffrement du noyau pour créer des systèmes de fichiers chiffrés en utilisant le périphérique «loopback».

en: IPSEC kernel support (in package <application>linux-patch-openswan</application>). If you want to use the IPsec protocol with Linux, you need this patch. You can create VPNs with this quite easily, even to Windows machines, as IPsec is a common standard. IPsec capabilities have been added to the 2.5 development kernel, so this feature will be present by default in the future Linux Kernel 2.6. Homepage: <ulink url="http://www.openswan.org" />. <emphasis>FIXME</emphasis>: The latest 2.4 kernels provided in Debian include a backport of the IPSEC code from 2.5. Comment on this.
fr: Prise en charge d'IPsec par le noyau (du paquet <application>linux-patch-openswan</application>). Si vous voulez utiliser le protocole IPsec avec Linux, vous avez besoin de ce correctif. Vous pouvez ainsi créer des VPN très facilement, même vers les machines Windows, puisque IPsec est une norme courante. Des fonctionnalités IPsec ont été ajoutées au noyau de développement 2.5, cette fonctionnalité sera donc présente par défaut dans le futur noyau Linux 2.6. Site Internet: <ulink url="http://www.openswan.org" />. <emphasis>FIXME</emphasis>: les derniers noyaux2.4 fournis dans Debian incluent un rétroportage du code IPsec du noyau2.5. Commentaire sur cela.

en: The following security kernel patches are only available for old kernel versions in woody and are deprecated:
fr: Les correctifs de sécurité du noyau suivants ne sont disponibles que pour d'anciennes versions du noyau dans <emphasis>Woody</emphasis> et ils sont obsolètes:

en: <ulink name="POSIX Access Control Lists" url="http://acl.bestbits.at/" /> (ACLs) for Linux provided in the package <application>kernel-patch-acl</application>. This kernel patch adds access control lists, an advanced method for restricting access to files. It allows you to control fine-grain access to files and directory.
fr: <ulink url="http://acl.bestbits.at/" name="POSIX Access Control Lists" /> (ACL) pour Linux fourni dans le paquet <application>kernel-patch-acl</application>. Ce correctif du noyau ajoute les listes de contrôle d'accès, une méthode avancée pour restreindre l'accès aux fichiers, par le noyau Linux. Cela vous permet de contrôler finement l'accès aux fichiers et répertoires.

en: The <ulink name="Openwall" url="http://www.openwall.com/linux/" /> linux kernel patch by Solar Designer, provided in the <application>kernel-patch-2.2.18-openwall</application> package. This is a useful set of kernel restrictions, like restricted links, FIFOs in <filename>/tmp</filename>, a restricted <filename>/proc</filename> file system, special file descriptor handling, non-executable user stack area and other features. Note: This package applies to the 2.2 release, no packages are available for the 2.4 release patches provided by Solar.
fr: <ulink url="http://www.openwall.com/linux/" name="Openwall" /> par Solar Designer, fourni dans le paquet <application>kernel-patch-2.2.18-openwall</application>. C'est un ensemble utile de restrictions pour le noyau, comme la restriction de liens, FIFO dans <filename>/tmp</filename>, une restriction de <filename>/proc</filename>, une gestion de descripteur de fichiers spéciaux, une pile de l'utilisateur non exécutable et bien plus. Note: ce paquet s'applique à la version2.2, aucun paquet n'est disponible pour les correctifs de la version2.4 fournie par Solar.

en: <application>kernel-patch-int</application>. This patch also adds cryptographic capabilities to the Linux kernel, and was useful with Debian releases up to Potato. It doesn't work with Woody, and if you are using Sarge or a newer version, you should use a more recent kernel which includes these features already.
fr: <application>kernel-patch-int</application>. Ce correctif vous permet également d'ajouter des fonctionnalités de cryptographie au noyau Linux et était utile pour les versions de Debian jusqu'à Potato. Il ne fonctionne pas avec Woody et si vous utilisez Sarge ou une version plus récente, vous devriez utiliser un noyau plus récent qui inclut déjà ces fonctionnalités.

en: However, some patches have not been provided in Debian yet. If you feel that some of these should be included please ask for it at the <ulink name="Work Needing and Prospective Packages" url="http://www.debian.org/devel/wnpp/" />.
fr: Cependant, certains correctifs ne sont pas encore fournis dans Debian. Si vous croyez que certains devraient être inclus, veuillez le demander sur la page des <ulink url="http://www.debian.org/devel/wnpp" name="paquets en souffrance et paquets souhaités" />.

en: Protecting against buffer overflows
fr: Se protéger contre les dépassements de tampon

en: <emphasis>Buffer overflow</emphasis> is the name of a common attack to software <footnote><para>So common, in fact, that they have been the basis of 20% of the reported security vulnerabilities every year, as determined by <ulink name="statistics from ICAT's vulnerability database" url="http://icat.nist.gov/icat.cfm?function=statistics" /></para></footnote> which makes use of insufficient boundary checking (a programming error, most commonly in the C language) in order to execute machine code through program inputs. These attacks, against server software which listen to connections remotely and against local software which grant higher privileges to users (<literal>setuid</literal> or <literal>setgid</literal>) can result in the compromise of any given system.
fr: <emphasis>Dépassement de tampon</emphasis> est le nom d'une attaque courante sur un logiciel<footnote><para>Si commune, en fait, qu'elles ont été la base de 20% des failles de sécurité signalés cette année, d'après les <ulink url="http://icat.nist.gov/icat.cfm?function=statistics" name="statistiques de la base de données des failles de l'ICAT" />.</para></footnote> qui utilise insuffisamment des vérifications de limites (une erreur de programmation courante, plus particulièrement en langage C) pour exécuter du code machine par des entrées de programme. Ces attaques, contre des logiciels serveur qui attendent des connexions distantes et contre des logiciels locaux qui autorisent des droits élevés aux utilisateurs (<literal>setuid</literal> ou <literal>setgid</literal>) peuvent avoir pour conséquence la compromission de tout un système.

en: There are mainly four methods to protect against buffer overflows:
fr: Quatre méthodes en particulier permettent de se protéger contre les dépassement de tampon:

en: patch the kernel to prevent stack execution. You can use either: Exec-shield, OpenWall or PaX (included in the Grsecurity and Adamantix patches).
fr: appliquer un correctif au noyau pour empêcher l'exécution de la pile. Vous pouvez utiliser Exec-shield, OpenWall ou PaX (incluant les correctifs Grsecurity et Adamantix);

en: fix the source code by using tools to find fragments of it that might introduce this vulnerability.
fr: corriger le code source en utilisant des outils pour trouver des fragments qui pourraient introduire cette faille;

en: recompile the source code to introduce proper checks that prevent overflows, using the <ulink name="Stack Smashing Protector (SSP)" url="http://www.research.ibm.com/trl/projects/security/ssp/" /> patch for GCC (which is used by <ulink name="Adamantix" url="http://www.adamantix.org" />)
fr: recompiler le code pour introduire des vérifications qui empêchent les dépassements en utilisant le correctif pour GCC <ulink name="Stack Smashing Protector (SSP)" url="http://www.research.ibm.com/trl/projects/security/ssp/" /> (qui est utilisé par <ulink name="Adamantix" url="http://www.adamantix.org" />).

en: Debian GNU/Linux, as of the 3.0 release, provides software to introduce all of these methods except for the protection on source code compilation (but this has been requested in <ulink name="Bug #213994" url="http://bugs.debian.org/213994" />).
fr: Debian GNU/Linux, dans sa version3.0, fournit des logiciels pour implémenter toutes ces méthodes à l'exception de la protection de la compilation du code source (mais cela a été demandé dans le <ulink url="http://bugs.debian.org/213994" name="bogue nº213994" />).

en: Notice that even if Debian provided a compiler which featured stack/buffer overflow protection all packages would need to be recompiled in order to introduce this feature. This is, in fact, what the Adamantix distribution does (among other features). The effect of this new feature on the stability of software is yet to be determined (some programs or some processor architectures might break due to it).
fr: Notez que même si Debian fournissait un compilateur qui fournit cette fonction de protection de dépassement de tampon/pile, tous les paquets auraient besoin d'être recompilés pour introduire cette fonctionnalité. C'est, en fait, ce que fait Adamantix (entre autres fonctionnalités). L'effet de cette nouvelle fonctionnalité sur la stabilité des logiciels doit encore être déterminée (certains programmes ou architectures de processeur pourraient être cassés à cause d'elle).

en: In any case, be aware that even these workarounds might not prevent buffer overflows since there are ways to circumvent these, as described in phrack's magazine <ulink name="issue 58" url="http://packetstorm.linuxsecurity.com/mag/phrack/phrack58.tar.gz" /> or in CORE's Advisory <ulink name="Multiple vulnerabilities in stack smashing protection technologies" url="http://online.securityfocus.com/archive/1/269246" />.
fr: Dans tous les cas, soyez conscient que même ces contournement peuvent ne pas prévenir les dépassements de tampon car il existe des moyens de circonvenir ceux-ci, comme décrit dans l'<ulink name="issue 58" url="http://packetstorm.linuxsecurity.com/mag/phrack/phrack58.tar.gz" /> du magazine phrack ou dans l'alerte du CORE <ulink name="Multiple vulnerabilities in stack smashing protection technologies" url="http://online.securityfocus.com/archive/1/269246" />.

en: If you want to test out your buffer overflow protection once you have implemented it (regardless of the method) you might want to install the <application>paxtest</application> and run the tests it provides.
fr: Si vous voulez tester la protection contre les dépassements de tampon une fois que vous l'avez mise en place (quelque que soit la méthode), vous pouvez vouloir installer le <application>paxtest</application> et exécuter les tests qu'il fournit.

en: Kernel patch protection for buffer overflows
fr: Correctif du noyau de protection pour les dépassements de tampon

en: Kernel patches related to buffer overflows include the Openwall patch provides protection against buffer overflows in 2.2 linux kernels. For 2.4 or newer kernels, you need to use the Exec-shield implementation, or the PaX implementation (provided in the grsecurity patch, <application>kernel-patch-2.4-grsecurity</application>, and in the Adamantix patch, <application>kernel-patch-adamantix</application>). For more information on using these patches read the the section <xref linkend="kernel-patches" />.
fr: Des correctifs du noyau liés aux dépassements de tampon incluant le correctif Openwall fournissent une protection contre les dépassements de tampon dans les noyaux Linux2.2. Pour les noyaux2.4 et plus récents, vous devrez utiliser l'implémentation Exec-shield ou l'implémentation PaX (fournies dans le correctif grsecurity, <application>kernel-patch-2.4-grsecurity</application> et dans le correctif Adamantix, <application>kernel-patch-adamantix</application>). Pour plus d'informations sur l'utilisation de ces correctifs, veuillez consulter la section <xref linkend="kernel-patches" />.

en: Testing programs for overflows
fr: Tester des programmes pour les dépassements

en: The use of tools to detect buffer overflows requires, in any case, of programming experience in order to fix (and recompile) the code. Debian provides, for example: <application>bfbtester</application> (a buffer overflow tester that brute-forces binaries through command line and environment overflows). Other packages of interest would also be <application>rats</application>, <application>pscan</application>, <application>flawfinder</application> and <application>splint</application>.
fr: L'utilisation d'outils pour détecter des dépassements de tampon nécessitent dans tous les cas une expérience de programmation pour corriger (et recompiler) le code. Debian fournit par exemple: <application>bfbtester</application> (un testeur de dépassement de tampon qui brutalise des binaires par la force par des dépassements de ligne de commande et d'environnement). D'autres paquets intéressants pourraient aussi être <application>rats</application>, <application>pscan</application>, <application>flawfinder</application> et <application>splint</application>.

en: Secure file transfers
fr: Sécurisation des transferts de fichiers

en: During normal system administration one usually needs to transfer files in and out from the installed system. Copying files in a secure manner from a host to another can be achieved by using the <application>ssh</application> server package. Another possibility is the use of <application>ftpd-ssl</application>, a ftp server which uses the <emphasis>Secure Socket Layer</emphasis> to encrypt the transmissions.
fr: Pendant l'administration normale du système, il est habituellement nécessaire de transférer des fichiers à partir et vers le système installé. La copie des fichiers de façon sécurisée d'un hôte vers un autre peut être effectuée en utilisant le paquet serveur <application>ssh</application>. Une autre possibilité est d'utiliser <application>ftpd-ssl</application>, un serveur FTP qui utilise <emphasis>Secure Socket Layer</emphasis> pour chiffrer les transmissions.

en: Any of these methods need special clients. Debian does provide client software, such as <command>scp</command> from the <application>ssh</application> package, which works like <command>rcp</command> but is encrypted completely, so the <emphasis>bad guys</emphasis> cannot even find out WHAT you copy. There is also a <application>ftp-ssl</application> package for the equivalent server. You can find clients for these software even for other operating systems (non-UNIX), <command>putty</command> and <command>winscp</command> provide secure copy implementations for any version of Microsoft's operating system.
fr: Toutes ces méthodes nécessitent des clients spécifiques. Debian fournit des clients logiciels, comme <command>scp</command> du paquet <application>ssh</application>, qui fonctionne comme <command>rcp</command>, mais est complètement chiffré, donc les <emphasis>méchants</emphasis> ne peuvent même pas savoir CE QUE vous copiez. Il existe également un paquet client <application>ftp-ssl</application> pour le serveur équivalent. Vous pouvez trouver des clients pour ces logiciels, même pour d'autres systèmes d'exploitation (non UNIX), <command>putty</command> et <command>winscp</command> fournissent des implémentations de copie sécurisée pour toutes les versions des systèmes d'exploitation de Microsoft.

en: Note that using <command>scp</command> provides access to the users to all the file system unless <command>chroot</command>'ed as described in <xref linkend="ssh-chroot" />. FTP access can be <command>chroot</command>'ed, probably easier depending on you chosen daemon, as described in <xref linkend="ftp-secure" />. If you are worried about users browsing your local files and want to have encrypted communication you can either use an ftp daemon with SSL support or combine clear-text ftp and a VPN setup (see <xref linkend="vpn" />).
fr: Notez qu'utiliser <command>scp</command> fournit un accès pour tous les utilisateurs à tout le système de fichiers à moins de faire un <command>chroot</command> comme décrit dans <xref linkend="ssh-chroot" />. L'accès FTP peut être <command>chroot</command>é, c'est probablement plus facile selon le démon que vous choisissez, comme décrit dans <xref linkend="ftp-secure" />. Si vous vous inquiétez d'utilisateurs locaux pouvant parcourir les fichiers locaux et que vous voulez avoir une communication chiffrée, vous pouvez soit utiliser un démon FTP avec la prise en charge SSL, soit combiner un FTP sans chiffrement avec une configuration VPN (consultez <xref linkend="vpn" />).

en: File system limits and control
fr: Limites et contrôle des systèmes de fichiers

en: Using quotas
fr: Utilisation de quotas

en: Having a good quota policy is important, as it keeps users from filling up the hard disk(s).
fr: Avoir une bonne politique relative aux quotas est important, vu qu'elle empêche les utilisateurs de remplir les disques durs.

en: You can use two different quota systems: user quota and group quota. As you probably figured out, user quota limits the amount of space a user can take up, group quota does the equivalent for groups. Keep this in mind when you're working out quota sizes.
fr: Vous pouvez utiliser deux systèmes de quotas différents: les quotas utilisateur et les quotas groupe. Comme vous l'avez probablement deviné, les quotas utilisateur limitent la quantité d'espace qu'un utilisateur peut avoir, les quotas groupe quant à eux font la même chose pour les groupes. Retenez cela quand vous calculerez les tailles des quotas.

en: There are a few important points to think about in setting up a quota system:
fr: Il y a quelques points importants auxquels il faut penser dans la mise en place d'un système de quotas:

en: Keep the quotas small enough, so users do not eat up your disk space.
fr: garder les quotas suffisamment petits, ainsi les utilisateurs ne dévoreront pas l'espace disque ;

en: Keep the quotas big enough, so users do not complain or their mail quota keeps them from accepting mail over a longer period.
fr: garder les quotas suffisamment grands, ainsi les utilisateurs ne se plaindront pas et leur quota de courrier leur permettra d'accepter des courriers pendant une longue période ;

en: Use quotas on all user-writable areas, on <filename>/home</filename> as well as on <filename>/tmp</filename>.
fr: utiliser des quotas sur tous les espaces accessibles en écriture par les utilisateurs, aussi bien sur <filename>/home</filename> que <filename>/tmp</filename>.

en: Every partition or directory to which users have full write access should be quota enabled. Calculate and assign a workable quota size for those partitions and directories which combines usability and security.
fr: Tous les répertoires et partitions auxquels les utilisateurs ont accès en écriture complet devraient avoir les quotas activés. Recherchez ces partitions et répertoires et calculez une taille adaptée qui combine disponibilité et sécurité.

en: So, now you want to use quotas. First of all you need to check whether you enabled quota support in your kernel. If not, you will need to recompile it. After this, control whether the package <application>quota</application> is installed. If not you will need this one as well.
fr: Bon, maintenant vous désirez utiliser les quotas. Avant tout, vous avez besoin de vérifier si vous avez activé la prise en charge des quotas dans le noyau. Si non, vous devrez le recompiler. Après cela, contrôlez si le paquet <command>quota</command> est installé. Si non, vous en aurez également besoin.

en: Enabling quota for the respective file systems is as easy as modifying the <literal>defaults</literal> setting to <literal>defaults,usrquota</literal> in your <filename>/etc/fstab</filename> file. If you need group quota, substitute <literal>usrquota</literal> to <literal>grpquota</literal>. You can also use them both. Then create empty quota.user and quota.group files in the roots of the file systems you want to use quotas on (e.g.
fr: L'activation des quotas pour des systèmes de fichiers différents est aussi facile que la modification du paramètre <literal>defaults</literal> en <literal>defaults,usrquota</literal> dans le fichier <filename>/etc/fstab</filename>. Si vous avez besoin des quotas par groupe, remplacez <literal>usrquota</literal> par <literal>grpquota</literal>. Vous pouvez également utiliser les deux. Ensuite, créez des fichiers vides quota.user et quota.group à la racine du système de fichiers sur lequel vous voulez utiliser les quotas:

en: for a <filename>/home</filename> file system).
fr: pour un système de fichiers <filename>/home</filename>)

en: Restart <command>quota</command> by doing
fr: Redémarrez <command>quota</command> en faisant:

en: . Now quota should be running, and quota sizes can be set.
fr: Maintenant les quotas devraient être en fonction et leurs tailles peuvent être configurées.

en: Editing quotas for a specific user can be done by
fr: L'édition de quotas pour un utilisateur spécifique peut être réalisée en faisant

en: . Group quotas can be modified with
fr: . Les quotas par groupes peuvent être modifiés avec

en: . Then set the soft and hard quota and/or inode quotas as needed.
fr: . Ensuite, paramétrez les quotas soft et hard ou les quotas pour inœuds selon vos besoins.

en: For more information about quotas, read the quota man page, and the quota mini-howto (<filename>/usr/share/doc/HOWTO/en-html/mini/Quota.html</filename>). You may also want to look at <filename>pam_limits.so</filename>.
fr: Pour plus d'informations concernant les quotas, consultez la page de manuel de la commande quota et le quota mini-howto (<filename>/usr/share/doc/HOWTO/fr-html/Quota.html</filename>). Vous pouvez également vouloir étudier <filename>pam_limits.so</filename>.

en: The ext2 filesystem specific attributes (<command>chattr</command>/<command>lsattr</command>)
fr: Les attributs spécifiques du système de fichiers ext2 (<command>chattr</command>/<command>lsattr</command>)

en: In addition to the usual Unix permissions, the ext2 and ext3 filesystems offer a set of specific attributes that give you more control over the files on your system. Unlike the basic permissions, these attributes are not displayed by the usual <command>ls -l</command> command or changed using <command>chmod</command>, and you need two other utilities, <command>lsattr</command> and <command>chattr</command> (in package <application>e2fsprogs</application>) to manage them. Note that this means that these attributes will usually not be saved when you backup your system, so if you change any of them, it may be worth saving the successive <command>chattr</command> commands in a script so that you can set them again later if you have to restore a backup.
fr: En plus des permissions standards UNIX, les systèmes de fichiers ext2 et ext3 offrent un ensemble d'attributs spécifiques qui donnent plus de contrôle sur les fichiers du système. À la différence des permissions de base, ces attributs ne sont pas affichés par la commande standard <command>ls -l</command>, ni changés par la commande <command>chmod</command> et vous avez besoin de deux autres utilitaires, <command>lsattr</command> et <command>chattr</command> (du paquet <application>e2fsprogs</application>) pour les gérer. Notez que cela veut dire que ces attributs ne sont habituellement pas enregistrés quand vous sauvegardez le système, donc si vous modifiez l'un d'entre eux, il peut être utile d'enregistrer les commandes <command>chattr</command> successives dans un script pour pouvoir les repositionner plus tard si vous avez à récupérer une sauvegarde.

en: Among all available attributes, the two that are most important for increasing security are referenced by the letters 'i' and 'a', and they can only be set (or removed) by the superuser:
fr: Parmi tous les attributs disponibles, les deux plus importants pour améliorer la sécurité sont référencés par les lettres «i» et «a» et ils ne peuvent être positionnés (ou enlevés) que par le superutilisateur:

en: The 'i' attribute ('immutable'): a file with this attribute can neither be modified nor deleted or renamed and no link can be created to it, even by the superuser.
fr: l'attribut «i» (inchangeable, «immutable»): un fichier ayant cet attribut ne peut-être ni modifié ni effacé ou encore renommé et aucun lien ne peut le référencer, même par le superutilisateur ;

en: The 'a' attribute ('append'): this attribute has the same effect that the immutable attribute, except that you can still open the file in append mode. This means that you can still add more content to it but it is impossible to modify previous content. This attribute is especially useful for the log files stored in <filename>/var/log/</filename>, though you should consider that they get moved sometimes due to the log rotation scripts.
fr: l'attribut «a» (ajout, «append»): cet attribut a le même effet que l'attribut «immutable», excepté que vous pouvez encore ouvrir le fichier en mode ajout. Cela veut dire que vous pouvez encore ajouter plus de contenu au fichier, mais qu'il est impossible de modifier un contenu précédent. Cet attribut est particulièrement utile pour les fichiers de journalisation stockés dans <filename>/var/log/</filename>, bien que vous devez considérer qu'ils sont parfois déplacés à cause des scripts d'archivage.

en: These attributes can also be set for directories, in which case everyone is denied the right to modify the contents of a directory list (e.g. rename or remove a file, ...). When applied to a directory, the append attribute only allows file creation.
fr: Ces attributs peuvent également être positionnés pour les répertoires, dans ce cas, le droit de modifier le contenu de la liste d'un répertoire est refusé (par exemple, renommer ou supprimer un fichier, etc.) Quand il est appliqué à un répertoire, l'attribut d'ajout ne permet que la création de fichiers.

en: It is easy to see how the 'a' attribute improves security, by giving to programs that are not running as the superuser the ability to add data to a file without modifying its previous content. On the other hand, the 'i' attribute seems less interesting: after all, the superuser can already use the basic Unix permissions to restrict access to a file, and an intruder that would get access to the superuser account could always use the <command>chattr</command> program to remove the attribute. Such an intruder may first be confused when noticing not being able to remove a file, but you should not assume blindness - after all, the intruder got into your system! Some manuals (including a previous version of this document) suggest to simply remove the <command>chattr</command> and <command>lsattr</command> programs from the system to increase security, but this kind of strategy, also known as "security by obscurity", is to be absolutely avoided, since it provides a false sense of security.
fr: Il est aisé de voir que l'attribut «a» améliore la sécurité, en donnant aux programmes qui ne sont pas exécutés par le superutilisateur, la possibilité d'ajouter des données à un fichier sans pouvoir modifier son précédent contenu. D'un autre côté, l'attribut «i» semble moins intéressant: après tout, le superutilisateur peut déjà utiliser les permissions standards UNIX pour restreindre l'accès à un fichier et un intrus qui aurait accès au compte superutilisateur peut toujours utiliser le programme <command>chattr</command> pour supprimer l'attribut. Un tel intrus peut tout d'abord être perplexe quand il se rendra compte qu'il ne peut pas supprimer un fichier, mais vous ne devriez pas supposer qu'il est aveugle &mdash; après tout, il est entré dans le système! Certains manuels (y compris une précédente version de ce document) suggèrent de supprimer simplement les programmes <command>chattr</command> et <command>lsattr</command> du système pour améliorer la sécurité, mais ce genre de stratégie, aussi connu comme «sécurité par l'obscurité», doit être absolument évitée, car elle donne un sentiment trompeur de sécurité.

en: A secure way to solve this problem is to use the capabilities of the Linux kernel, as described in <xref linkend="proactive" />. The capability of interest here is called <literal>CAP_LINUX_IMMUTABLE</literal>: if you remove it from the capabilities bounding set (using for example the command <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command>) it won't be possible to change any 'a' or 'i' attribute on your system anymore, even by the superuser ! A complete strategy could be as follows:
fr: Une façon sûre de résoudre ce problème est d'utiliser les fonctionnalités du noyau Linux, comme décrit dans <xref linkend="proactive" />. La fonctionnalité intéressante est appelée ici <literal>CAP_LINUX_IMMUTABLE</literal>: si vous la supprimez de l'ensemble des fonctionnalités (en utilisant par exemple la commande <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command>), il ne sera plus possible de modifier les attributs «&nbsp;a&nbsp;» ou «&nbsp;i&nbsp;» sur le système, même pour le superutilisateur&nbsp;! Une stratégie complète serait alors la suivante&nbsp;:

en: Set the attributes 'a' and 'i' on any file you want;
fr: positionner les attributs «a» et «i» sur tous les fichiers voulus;

en: Add the command <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command> (as well as <command>lcap <varname>CAP_SYS_MODULE</varname></command>, as suggested in <xref linkend="proactive" />) to one of the startup scripts;
fr: ajouter la commande <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command> (ainsi que <command>lcap <varname>CAP_SYS_MODULE</varname></command>, comme suggéré dans <xref linkend="proactive" />) à l'un des scripts de démarrage&nbsp;;

en: Set the 'i' attribute on this script and other startup files, as well as on the <command>lcap</command> binary itself;
fr: positionner l'attribut «i» sur ce script et les autres fichiers de démarrage, ainsi que sur le binaire <command>lcap</command> lui-même;

en: Execute the above command manually (or reboot your system to make sure everything works as planned).
fr: exécuter la commande ci-dessus vous-même (ou réamorcer le système pour vous assurer que tout fonctionne comme prévu).

en: Now that the capability has been removed from the system, an intruder cannot change any attribute on the protected files, and thus cannot change or remove the files. If the machine is forced to reboot (which is the only way to restore the capabilities bounding set), it will easily be detected, and the capability will be removed again as soon as the system restarts anyway. The only way to change a protected file would be to boot the system in single-user mode or using another bootdisk, two operations that require physical access to the machine !
fr: Maintenant que la fonctionnalité a été enlevée du système, un intrus ne peut plus changer aucun attribut des fichiers protégés et donc, il ne peut pas changer ou supprimer les fichiers. S'il force la machine à redémarrer (ce qui est la seule façon de récupérer le jeu de fonctionnalités), cela sera facile à détecter et la fonctionnalité sera de toute façon enlevée à nouveau dès que le redémarrage du système. La seule façon de changer un fichier protégé serait de réamorcer le système en mode utilisateur seul (single-user mode) ou d'utiliser une autre image d'amorçage, deux opérations qui nécessitent un accès physique à la machine!

en: Checking file system integrity
fr: Vérifier l'intégrité des systèmes de fichiers

en: Are you sure <filename>/bin/login</filename> on your hard drive is still the binary you installed there some months ago? What if it is a hacked version, which stores the entered password in a hidden file or mails it in clear-text version all over the Internet?
fr: Êtes-vous sûr que le /bin/login présent sur le disque dur est le même que celui que vous aviez installé il y a de cela quelques mois? Que faire si c'est une version piratée, qui enregistre les mots de passe entrés dans un fichier caché ou les envoie en clair sur Internet?

en: The only method to have some kind of protection is to check your files every hour/day/month (I prefer daily) by comparing the actual and the old md5sum of this file. Two files cannot have the same md5sum (the MD5 digest is 128 bits, so the chance that two different files will have the same md5sum is roughly one in 3.4e3803), so you're on the safe site here, unless someone has also hacked the algorithm that creates md5sums on that machine. This is, well, extremely difficult and very unlikely. You really should consider this auditing of your binaries as very important, since it is an easy way to recognize changes at your binaries.
fr: La seule méthode pour avoir un semblant de protection est de vérifier vos fichiers tous les heures/jours/mois (je préfère quotidiennement) en comparant l'actuel et l'ancien md5sum de ce fichier. Deux fichiers ne peuvent avoir le même md5sum (le MD5 est basé sur 128 bits, ainsi la chance que deux fichiers différents aient le même md5sum est approximativement de un sur 3.4e3803), donc de ce côté tout est bon, à moins que quelqu'un ait piraté également l'algorithme qui crée les md5sums sur cette machine. C'est extrêmement difficile et très improbable. Vous devriez vraiment prendre en compte que la vérification de vos binaires est très importante étant donné que c'est un moyen facile de reconnaître des changements sur vos binaires.

en: Common tools used for this are <application>sxid</application>, <application>aide</application> (Advanced Intrusion Detection Environment), <application>tripwire</application>, <application>integrit</application> and <application>samhain</application>. Installing <command>debsums</command> will also help you to check the file system integrity, by comparing the md5sums of every file against the md5sums used in the Debian package archive. But beware: those files can easily be changed by an attacker and not all packages provide md5sums listings for the binaries they provided. For more information please read <xref linkend="periodic-integrity" /> and <xref linkend="snapshot" />.
fr: Les outils couramment utilisés pour cela sont <application>sxid</application>, <application>aide</application> (Advanced Intrusion Detection Environment), <application>tripwire</application>, <application>integrit</application> et <application>samhain</application>. Installer <literal>debsums</literal> vous aidera également à vérifier l'intégrité du système de fichiers en comparant le md5sum de chaque fichier avec celui utilisé dans l'archive des paquets Debian. Mais faites attention: ces fichiers peuvent facilement être modifiés par un attaquant et tous les paquets ne fournissent pas de listes de md5sum pour les binaires qu'ils fournissent. Pour plus d'informations, veuillez consulter <xref linkend="periodic-integrity" /> et <xref linkend="snapshot" />.

en: You might want to use <command>locate</command> to index the whole filesystem, if so, consider the implications of that. The Debian <application>findutils</application> package contains <command>locate</command> which runs as user nobody, and so it only indexes files which are visible to everybody. However, if you change it's behaviour you will make all file locations visible to all users. If you want to index all the filesystem (not the bits that the user nobody can see) you can replace <command>locate</command> with the package <application>slocate</application>. slocate is labeled as a security enhanced version of GNU locate, but it actually provides additional file-locating functionality. When using <command>slocate</command>, the user only sees the actually accessible files and you can exclude any files or directories on the system. The <application>slocate</application> package runs its update process with higher privledges than locate, and indexes every file. Users are then able to quickly search for every file which they are able to see. <command>slocate</command> doesn't let them see new files; it filters the output based on your UID.
fr: Vous pouvez vouloir utiliser <command>locate</command> pour indexer le système de fichiers en entier; si vous faites cela, envisagez les implications de cette action. Le paquet <application>findutils</application> de Debian contient <command>locate</command> qui s'exécute en tant qu'utilisateur nobody, ainsi, il indexe les fichiers qui sont visibles à tous les utilisateurs. Cependant, si vous changez son comportement, vous rendrez les emplacements de tous les fichiers visibles à tous les utilisateurs. Si vous voulez indexer tout le système de fichiers (pas les parties que l'utilisateur nobody peut voir), vous pouvez remplacer <command>locate</command> par <application>slocate</application>. slocate est étiqueté comme une version améliorée au niveau sécurité de GNU locate, mais il fournit en fait une fonctionnalité de localisation de fichier supplémentaire. Quand il utilise <command>slocate</command>, l'utilisateur ne peut voir que les fichiers auxquels il a vraiment accès et vous pouvez exclure tout fichier ou répertoire du système. Le paquet <application>slocate</application> exécute le processus de mise à jour avec des privilèges augmentés par rapport à locate et il indexe tous les fichiers. Les utilisateurs peuvent alors rechercher rapidement tout fichier qu'ils peuvent voir. <command>slocate</command> ne leur laisse pas voir les nouveaux fichiers; il filtre la sortie selon l'UID.

en: You might want to use <application>bsign</application> or <application>elfsign</application>. <application>elfsign</application> provides an utility to add a digital signature to an ELF binary and a second utility to verify that signature. The current implementation uses PKI to sign the checksum of the binary. The benefits of doing this are that it enables one to determine if a binary has been modified and who created it. <application>bsign</application> uses GPG, <application>elfsign</application> uses PKI (X.509) certificates (OpenSSL).
fr: Vous pourriez utiliser <application>bsign</application> ou <application>elfsign</application>. <application>elfsign</application> fournit un utilitaire pour ajouter une signature numérique à un binaire ELF et un autre pour vérifier cette signature. L'actuelle implémentation utilise PKI pour signer la somme de contrôle du binaire. L'avantage de faire cela est que ceux qui le veulent peuvent déterminer si un binaire a été modifié et qui l'a créé. <application>bsign</application> utilise GPG, <application>elfsign</application> utilise les certificats PKI (X.509, OpenSSL).

en: Setting up setuid check
fr: Mise en place de la vérification setuid

en: The Debian <application>checksecurity</application> package provides a <command>cron</command> job that runs daily in <filename>/etc/cron.daily/checksecurity</filename> <footnote><para>In previous releases, checksecurity was integrated into cron and the file was <filename>/etc/cron.daily/standard</filename></para></footnote>. This <command>cron</command> job will run the <command>/usr/sbin/checksecurity</command> script that will store information of this changes.
fr: Le paquet Debian <application>checksecurity</application> fournit une tâche <command>cron</command> qui s'exécute tous les jours dans <filename>/etc/cron.daily/checksecurity</filename> <footnote><para>Dans les versions précédentes, checksecurity était intégré dans cron et le fichier était <filename>/etc/cron.daily/standard</filename>.</para></footnote>. Cette tâche <command>cron</command> exécutera le script <command>/usr/sbin/checksecurity</command> qui sauvegardera les renseignements sur les modifications.

en: The default behavior does not send this information to the superuser but, instead keeps daily copies of the changes in <filename>/var/log/setuid.changes</filename>. You should set the MAILTO variable (in <filename>/etc/checksecurity.conf</filename>) to 'root' to have this information mailed to the superuser. See <citerefentry><refentrytitle>checksecurity</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page for more configuration info.
fr: Le comportement par défaut est de ne pas envoyer cette information au superutilisateur mais à la place de garder une copie quotidienne des modifications dans <filename>/var/log/setuid.changes</filename>. Vous devrez positionner la variable MAILTO (dans <filename>/etc/checksecurity.conf</filename>) à «root» pour que ces renseignements lui soient envoyés. Consultez <citerefentry><refentrytitle>checksecurity</refentrytitle> <manvolnum>8</manvolnum></citerefentry> pour plus d'informations sur la configuration.

en: Securing network access
fr: Sécurisation des accès réseau

en: FIXME: More (Debian-specific) content needed.
fr: FIXME : Besoin de plus de contenu (spécifique à Debian).

en: Configuring kernel network features
fr: Configuration des options réseau du noyau

en: Many features of the kernel can be modified while running by echoing something into the <filename>/proc</filename> file system or by using <command>sysctl</command>. By entering <command>/sbin/sysctl</command> <literal>-A</literal> you can see what you can configure and what the options are, and it can be modified running
fr: Beaucoup de fonctionnalités du noyau peuvent être modifiées en cours de fonctionnement en envoyant quelque chose (par la commande <command>echo</command>) dans le système de fichiers <filename>/proc</filename> ou en utilisant <command>/sbin/sysctl</command>. En entrant <command>/sbin/sysctl</command> <literal>-A</literal>, vous pouvez voir ce que vous pouvez configurer et quelles sont les options, elles peuvent être modifiées en exécutant:

en: <userinput>/sbin/sysctl -w variable=value</userinput>
fr: <userinput>/sbin/sysctl -w variable=valeur</userinput>

en: (see <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>). Only in rare cases do you need to edit something here, but you can increase security that way as well. For example:
fr: (consultez <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>). Vous aurez seulement en de rares occasions à éditer quelque chose ici, mais vous pouvez augmenter la sécurité de cette manière aussi. Par exemple&nbsp;:

en: This is a <emphasis>Windows emulator</emphasis> because it acts like Windows on broadcast ping if this option is set to 1. That is, ICMP echo requests sent to the broadcast address will be ignored. Otherwise, it does nothing.
fr: C'est un «émulateur Windows» parce que ça agit comme Windows sur les ping de broadcast si celui-ci est positionné à 1. C'est-à-dire que les requêtes d'echo ICMP envoyées à l'adresse broadcast seront ignorées. Sinon, cela ne fait rien.

en: If you want to prevent you system from answering ICMP echo requests, just enable this configuration option:
fr: Si vous voulez empêcher le système de répondre aux requêtes d'echo ICMP, activez cette option de configuration:

en: To log packets with impossible addresses (due to wrong routes) on your network use:
fr: Pour enregistrer les paquets avec des adresses impossibles (à cause de routes erronées) sur le réseau, utilisez:

en: For more information on what things can be done with <filename>/proc/sys/net/ipv4/*</filename> read <filename>/usr/src/linux/Documentation/filesystems/proc.txt</filename>. All the options are described thoroughly under <filename>/usr/src/linux/Documentation/networking/ip-sysctl.txt</filename> <footnote><para>In Debian the <application>kernel-source-<varname>version</varname></application> packages copy the sources to <filename>/usr/src/kernel-source-<varname>version</varname>.tar.bz2</filename>, just substitute <varname>version</varname> to whatever kernel version sources you have installed</para></footnote>.
fr: Pour plus d'informations sur ce qui peut être fait avec <filename>/proc/sys/net/ipv4/*</filename>, consultez <filename>/usr/src/linux/Documentation/filesystems/proc.txt</filename>. Toutes les options sont décrites de façon complète sous <filename>/usr/src/linux/Documentation/networking/ip-sysctl.txt</filename> <footnote><para>Dans Debian, les paquets <application>kernel-source-<varname>version</varname></application> copient les sources sous <filename>/usr/src/kernel-source-<varname>version</varname>.tar.bz2</filename>, remplacez simplement <varname>version</varname> par la version des sources du noyau installé.</para></footnote>.

en: Configuring syncookies
fr: Configurer syncookies

en: This option is a double-edged sword. On the one hand it protects your system against syn packet flooding; on the other hand it violates defined standards (RFCs).
fr: Cette option est à double tranchant. D'un côté, elle protège le système contre le syn packet flooding; d'un autre côté, elle viole les standards définis (RFCs).

en: If you want to change this option each time the kernel is working you need to change it in <filename>/etc/network/options</filename> by setting <literal>syncookies=yes</literal>. This will take effect when ever <filename>/etc/init.d/networking</filename> is run (which is typically done at boot time) while the following will have a one-time effect until the reboot:
fr: Si vous voulez changer cette option à chaque fois que le noyau fonctionne, vous devez le faire dans <literal>/etc/network/options</literal> en positionnant <literal>syncookies=yes</literal>. Cela prendra effet à chaque fois que <literal>/etc/init.d/networking</literal> est exécuté (ce qui est habituellement fait lors du démarrage) tandis que la commande suivante aura un effet unique jusqu'au prochain redémarrage:

en: 
    echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies
fr: 
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies

en: This option will only be available if the kernel is compiled with the <literal>CONFIG_SYNCOOKIES</literal>. All Debian kernels are compiled with this option builtin but you can verify it running:
fr: Cette option n'est dispobile que si vous avez compilé le noyau avec <literal>CONFIG_SYNCOOKIES</literal>. Tous les noyaux Debian sont compilés avec cette option incluse, mais vous pouvez le vérifier en exécutant:

en: 
    $ sysctl -A |grep syncookies
    net/ipv4/tcp_syncookies = 1
fr: 
    &#36; sysctl -A |grep syncookies
    net/ipv4/tcp_syncookies = 1

en: For more information on TCP syncookies read <ulink url="http://cr.yp.to/syncookies.html" />.
fr: Pour plus d'informations sur les syncookies TCP, consultez <ulink url="http://cr.yp.to/syncookies.html" />.

en: Securing the network on boot-time
fr: Sécurisation du réseau pendant l'amorçage

en: When setting configuration options for the kernel networking you need configure it so that it's loaded every time the system is restarted. The following example enables many of the previous options as well as other useful options.
fr: Quand vous positionnez des options de configuration de réseau du noyau, vous devez le configurer pour que ce soit chargé à chaque fois que le système est redémarré. L'exemple suivant active un grand nombre des options précédentes ainsi que d'autres options utiles.

en: There are actually two ways to configure your network at boot time. You can configure <filename>/etc/sysctl.conf</filename> (see: <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) or introduce a script that is called when the interface is enabled. The first option will be applied to all interfaces, whileas the second option allows you to configure this on a per-interface basis.
fr: Il y a en fait deux façons de configurer le réseau au démarrage. Vous pouvez configurer <filename>/etc/sysctl.conf</filename> (consultez <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) ou introduire un script qui est appelé quand l'interface est activée. La première option sera appliquée à toutes les interfaces alors que la seconde option vous permettra de configurer cela interface par interface.

en: An example of a <filename>/etc/sysctl.conf</filename> configuration that will secure some network options at the kernel level is shown below. Notice the comment in it, <filename>/etc/network/options</filename> might override some values if they contradict those in this file when the <filename>/etc/init.d/networking</filename> is run (which is later than <filename>procps</filename> on the startup sequence).
fr: Un exemple de fichier de configuration <filename>/etc/sysctl.conf</filename> qui sécurisera quelques options de réseau au niveau du noyau est présenté ci-dessous. Notez les commentaires dans ce fichier, <filename>/etc/network/options</filename> peut forcer certaines options si elles sont en contradiction avec celles de ce fichier lors de l'exécution de <filename>/etc/init.d/networking</filename> (ce qui a lieu après <filename>procps</filename> dans la séquence de démarrage).

en: 
    #
    # /etc/sysctl.conf - Configuration file for setting system variables
    # See sysctl.conf (5) for information. Also see the files under
    # Documentation/sysctl/, Documentation/filesystems/proc.txt, and
    # Documentation/networking/ip-sysctl.txt in the kernel sources 
    # (/usr/src/kernel-$version if you have a kernel-package installed)
    # for more information of the values that can be defined here.
    
    #
    # Be warned that /etc/init.d/procps is executed to set the following
    # variables.  However, after that, /etc/init.d/networking sets some
    # network options with builtin values.  These values may be overridden
    # using /etc/network/options.
    #
    #kernel.domainname = example.com
    
    # Additional settings - adapted from the script contributed
    # by Dariusz Puchala (see below)
    # Ignore ICMP broadcasts
    net/ipv4/icmp_echo_ignore_broadcasts = 1
    #
    # Ignore bogus ICMP errors
    net/ipv4/icmp_ignore_bogus_error_responses = 1
    # 
    # Do not accept ICMP redirects (prevent MITM attacks)
    net/ipv4/conf/all/accept_redirects = 0
    # _or_
    # Accept ICMP redirects only for gateways listed in our default
    # gateway list (enabled by default)
    # net/ipv4/conf/all/secure_redirects = 1
    #
    # Do not send ICMP redirects (we are not a router)
    net/ipv4/conf/all/send_redirects = 0
    #
    # Do not forward IP packets (we are not a router)
    # Note: Make sure that /etc/network/options has 'ip_forward=no'
    net/ipv4/conf/all/forwarding = 0
    #
    # Enable TCP Syn Cookies
    # Note: Make sure that /etc/network/options has 'syncookies=yes'
    net/ipv4/tcp_syncookies = 1
    #
    # Log Martian Packets
    net/ipv4/conf/all/log_martians = 1
    #
    # Turn on Source Address Verification in all interfaces to
    # prevent some spoofing attacks
    # Note: Make sure that /etc/network/options has 'spoofprotect=yes'
    net/ipv4/conf/all/rp_filter = 1
    #
    # Do not accept IP source route packets (we are not a router)
    net/ipv4/conf/all/accept_source_route = 0
fr: 
    #
    # /etc/sysctl.conf - Fichier de configuration pour positionner les
    # variables système
    # Consultez sysctl.conf(5) pour plus de renseignements. Consultez
    # également les fichiers sous Documentation/sysctl/,
    # Documentation/filesystems/proc.txt et
    # Documentation/networking/ip-sysctl.txt dans les sources du noyau
    # (/usr/src/kernel-&#36;version si vous avez installé un paquet de noyau) 
    # pour plus d'informations sur les valeurs qui peuvent être définies ici.
    
    #
    # Attention : /etc/init.d/procps est exécuté pour positionner les
    # variables suivantes. Cependant, après cela, /etc/init.d/networking
    # positionne certaines options réseau avec des valeurs intrinsèques. Ces
    # valeurs peuvent être forcées en utilisant /etc/network/options.
    #
    #kernel.domainname = example.com
    
    # Paramètres supplémentaires - adapté du script fourni
    # par Dariusz Puchala (voir ci-dessous)
    # Ignorer les broadcasts ICMP
    net/ipv4/icmp_echo_ignore_broadcasts = 1
    #
    # Ignorer les erreurs ICMP erronées
    net/ipv4/icmp_ignore_bogus_error_responses = 1
    # 
    # Ne pas accepter les redirections ICMP (empêche les attaques en
    # homme au milieu)
    net/ipv4/conf/all/accept_redirects = 0
    # _ou_
    # N'accepter les redirections ICMP que pour les passerelles
    # de notre liste de passerelles par défaut (activé par défaut)
    # net/ipv4/conf/all/secure_redirects = 1
    #
    # Ne pas accepter les redirections ICMP (ce n'est pas un routeur)
    net/ipv4/conf/all/send_redirects = 0
    #
    # Ne pas faire suivre les paquets IP (ce n'est pas un routeur)
    # Remarque : assurez-vous que /etc/network/options contient
    # « ip_forward=no »
    anet/ipv4/conf/all/forwarding = 0
    #
    # Activer les TCP Syn Cookies
    # Remarque : assurez-vous que /etc/network/options contient
    # « syncookies=yes »
    net/ipv4/tcp_syncookies = 1
    #
    # Enregistrer les paquets martiens
    net/ipv4/conf/all/log_martians = 1
    #
    # Activer la vérification d'adresse source pour toutes les
    # interfaces pour empêcher certaines attaques par usurpation
    # Remarque : assurez-vous que /etc/network/options contient
    # « spoofprotect=yes »
    net/ipv4/conf/all/rp_filter = 1
    #
    # Ne pas accepter les paquets de routage source IP
    # (ce n'est pas un routeur)
    net/ipv4/conf/all/accept_source_route = 0

en: To use the script you need to first create the script, for example, in <filename>/etc/network/interface-secure</filename> (the name is given as an example) and call it from <filename>/etc/network/interfaces</filename> like this:
fr: Pour utiliser le script, vous devez tout d'abord le créer, par exemple, dans <filename>/etc/network/interface-secure</filename> (le nom est donné comme exemple) et l'appeler à partir de <filename>/etc/network/interfaces</filename> comme ceci:

en: In this example, before the interface eth0 is enabled the script will be called to secure all network interfaces as shown below.
fr: Dans cet exemple, avant que l'interface eth0 ne soit activée, le script sera appelé pour sécuriser toutes les interfaces réseau comme montré ci-dessous.

en: 
    #!/bin/sh -e
    # Script-name: /etc/network/interface-secure
    #
    # Modifies some default behavior in order to secure against 
    # some TCP/IP spoofing &amp; attacks for all interfaces.
    #
    # Contributed by Dariusz Puchalak.
    #
    echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
                                               # Broadcast echo protection enabled.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/forwarding
                                               # IP forwarding disabled.
    echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies # TCP syn cookies protection enabled.
    echo 1 &gt;/proc/sys/net/ipv4/conf/all/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    echo 1 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 
                                               # Bad error message protection enabled.
    
    # IP spoofing protection.
    echo 1 &gt; /proc/sys/net/ipv4/conf/all/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/send_redirects
    
    # Disable source routed packets.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/accept_source_route
    
    exit 0
fr: 
    #!/bin/sh -e
    # Nom du script : /etc/network/interface-secure
    #
    # Modification de plusieurs comportements par défaut pour sécuriser contre
    # certaines attaques et usurpations IP pour toutes les interfaces.
    #
    # Fourni par Dariusz Puchalak.
    #
    
    # Activation de la protection broadcast echo.
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    
    # Désactivation de l'IP forwarding.
    echo 0 > /proc/sys/net/ipv4/conf/all/forwarding
    
    # Activation de la protection TCP syn cookies.
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    
    
    # Enregistrement des paquets avec des adresses impossibles
    # (cela comprend les paquets usurpés (spoofed), les paquets routés
    # source, les paquets redirigés), mais faites attention à cela
    # sur les serveurs web très chargés.
    echo 1 >/proc/sys/net/ipv4/conf/all/log_martians 
    
    # Activation de la protection sur les mauvais messages d'erreur.
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
    
    # Protection d'usurpation IP.
    echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    
    # Désactivation des redirections ICMP.
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    
    # Désactivation des paquets source routés.
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    
    exit 0

en: Notice that you can actually have per-interface scripts that will enable different network options for different interfaces (if you have more than one), just change the pre-up line to:
fr: Remarquez que vous pouvez en fait avoir des scripts par interface qui activeront différentes options réseau pour différentes interfaces (si vous en avez plus d'une), il vous suffit de changer la ligne pre-up en:

en: 
    pre-up /etc/network/interface-secure $IFACE
fr: 
    pre-up /etc/network/interface-secure &#36;IFACE

en: And use a script which will only apply changes to a specific interface, not to all of the interfaces available. Notice that some networking options can only be enabled globally, however. A sample script is this one:
fr: et utiliser un script qui n'applique les changements qu'à une interface spécifique et non à toutes les interfaces disponibles. Notez cependant que certaines options réseau ne peuvent être appliquées que globalement. Un exemple de script est celui-ci:

en: 
    #!/bin/sh -e
    # Script-name: /etc/network/interface-secure
    #
    # Modifies some default behavior in order to secure against 
    # some TCP/IP spoofing &amp; attacks for a given interface.
    #
    # Contributed by Dariusz Puchalak.
    #
    
    IFACE=$1
    if [ -z "$IFACE" ] ; then
       echo "$0: Must give an interface name as argument!"
       echo "Usage: $0 &lt;interface&gt;"
       exit 1
    fi
    
    if [ ! -e /proc/sys/net/ipv4/conf/$IFACE/ ]; then
       echo "$0: Interface $IFACE does not exit (cannot find /proc/sys/net/ipv4/conf/)"
       exit 1
    fi
    
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/forwarding  # IP forwarding disabled.
    echo 1 &gt;/proc/sys/net/ipv4/conf/$IFACE/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    
    # IP spoofing protection.
    echo 1 &gt; /proc/sys/net/ipv4/conf/$IFACE/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/accept_redirects
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/send_redirects
    
    # Disable source routed packets.
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/accept_source_route
    
    exit 0
fr: 
    #!/bin/sh -e
    # Nom du script : /etc/network/interface-secure
    #
    # Modifie plusieurs comportements par défaut pour sécuriser contre
    # certaines attaques et usurpations TCP/IP pour une interface donnée.
    #
    # Fourni par Dariusz Puchalak.
    #
    
    IFACE=&#36;1
    if [ -z "&#36;IFACE" ] ; then
       echo "&#36;0 : un nom d'interface doit être fourni en argument"
       echo "Utilisation : &#36;0 &lt;interface&gt;"
       exit 1
    fi
    
    if [ ! -e /proc/sys/net/ipv4/conf/&#36;IFACE/ ]; then
       echo "&#36;0 : l'interface &#36;IFACE n'existe pas "
       echo "(impossible de trouver /proc/sys/net/ipv4/conf/)"
       exit 1
    fi
    
    # Désactivation de l'IP forwarding.
    echo 0 > /proc/sys/net/ipv4/conf/&#36;IFACE/forwarding
    
    # Enregistrement des paquets avec des adresses impossibles
    # (cela inclut les paquets usurpés (spoofed), les paquets routés
    # source, les paquets redirigés), mais faites attention à cela
    # sur les serveurs web très chargés.
    echo 1 >/proc/sys/net/ipv4/conf/&#36;IFACE/log_martians
    
    # Protection d'usurpation IP.
    echo 1 > /proc/sys/net/ipv4/conf/&#36;IFACE/rp_filter
    
    # Désactivation des redirections ICMP.
    echo 0 > /proc/sys/net/ipv4/conf/&#36;IFACE/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/&#36;IFACE/send_redirects
    
    # Désactivation des paquets source routés.
    echo 0 > /proc/sys/net/ipv4/conf/&#36;IFACE/accept_source_route
    
    exit 0

en: An alternative solution is to create an <filename>init.d</filename> script and have it run on bootup (using <command>update-rc.d</command> to create the appropriate <filename>rc.d</filename> links).
fr: Vous pouvez également créer un script <filename>init.d</filename> et le faire exécuter au démarrage (en utilisant <command>update-rc.d</command> pour créer les liens <filename>rc.d</filename> appropriés).

en: Configuring firewall features
fr: Configuration des fonctionnalités de pare-feu

en: In order to have firewall capabilities, either to protect the local system or others <emphasis>behind</emphasis> it, the kernel needs to be compiled with firewall capabilities. The standard Debian 2.2 kernel (Linux 2.2) provides the packet filter <command>ipchains</command> firewall, Debian 3.0 standard kernel (Linux 2.4) provides the <emphasis>stateful</emphasis> packet filter <command>iptables</command> (netfilter) firewall.
fr: De façon à avoir des privilèges de pare-feu, soit pour protéger le système local ou d'autres <emphasis>derrière</emphasis> lui, le noyau doit être compilé avec les options correspondant aux pare-feu. Le noyau standard de Debian 2.2 (Linux 2.2) fournit <command>ipchains</command> qui est un pare-feu pour filtrer les paquets, le noyau standard de Debian 3.0 (Linux 2.4) fournit lui le pare-feu <command>iptables</command> (netfilter).

en: In any case, it is pretty easy to use a kernel different from the one provided by Debian. You can find pre-compiled kernels as packages you can easily install in the Debian system. You can also download the kernel sources using the <application>kernel-source-<varname>X</varname></application> and build custom kernel packages using <command>make-kpkg</command> from the <application>kernel-package</application> package.
fr: Dans tous les cas, il est relativement facile d'utiliser un noyau différent de celui fourni par Debian. Vous pouvez trouver des noyaux précompilés sous forme de paquets que vous pouvez facilement installer sur le système Debian. Vous pouvez également télécharger les sources du noyau en utilisant <application>kernel-source-<varname>X</varname></application> et construire des paquets de noyau personnalisé en utilisant <command>make-kpkg</command> du paquet <application>kernel-package</application>.

en: Setting up firewalls in Debian is discussed more thoroughly in <xref linkend="firewall-setup" />.
fr: La mise en place de pare-feu dans Debian est abordée plus en détail dans <xref linkend="firewall-setup" />.

en: Disabling weak-end hosts issues
fr: Désactiver les problèmes d'hôtes weak-end

en: Systems with more than one interface on different networks can have services configured so that they will bind only to a given IP address. This usually prevents access to services when requested through any other address. However, this does not mean (although it is a common misconception) that the service is bound to a given <emphasis>hardware</emphasis> address (interface card). <footnote><para> To reproduce this (example provided by Felix von Leitner on the Bugtraq mailing list): <screen> host a (eth0 connected to eth0 of host b): ifconfig eth0 10.0.0.1 ifconfig eth1 23.0.0.1 tcpserver -RHl localhost 23.0.0.1 8000 echo fnord host b: ifconfig eth0 10.0.0.2 route add 23.0.0.1 gw 10.0.0.1 telnet 23.0.0.1 8000 </screen></para></footnote>
fr: Les systèmes avec plus d'une interface sur différents réseaux peuvent avoir des services configurés pour qu'ils ne puissent s'associer qu'à une adresse IP donnée. Cela prévient habituellement les accès aux services quand ils sont interrogés par une adresse donnée. Cependant, cela ne veut pas dire (bien qu'il s'agisse d'une erreur classique) que le service est lié à une adresse <emphasis>matérielle</emphasis> donnée (carte interface). <footnote><para>Pour reproduire cela (exemple fourni par Felix von Leitner sur la liste de diffusion Bugtraq): <screen> hôte a (eth0 connecté sur l'eth0 de l'hôte b) : ifconfig eth0 10.0.0.1 ifconfig eth1 23.0.0.1 tcpserver -RHl localhost 23.0.0.1 8000 echo fnord hôte b : ifconfig eth0 10.0.0.2 route add 23.0.0.1 gw 10.0.0.1 telnet 23.0.0.1 8000</screen></para></footnote>

en: It seems, however, not to work with services bound to 127.0.0.1, you might need to write the tests using raw sockets.
fr: Cela semble, cependant, ne pas fonctionner avec les services liés à 127.0.0.1, vous pourriez devoir écrire des tests utilisant des sockets bruts.

en: This is not an ARP issue and it's not an RFC violation (it's called <emphasis>weak end host</emphasis> in <ulink url="ftp://ftp.isi.edu/in-notes/rfc1122.txt">RFC1122</ulink>, (in the section 3.3.4.2). Remember, IP addresses have nothing to do with physical interfaces.
fr: Ce n'est pas un problème ARP et ce n'est pas une violation de RFC (c'est ce que l'on appelle le <emphasis>weak end host</emphasis> dans la <ulink url="ftp://ftp.isi.edu/in-notes/rfc1122.txt" name="RFC1122" />, section 3.3.4.2). Rappelez-vous que les adresses IP n'ont rien à voir avec les interfaces physiques.

en: On 2.2 (and previous) kernels this can be fixed with:
fr: Sur les noyaux 2.2 (et antérieurs), cela peut être corrigé avec:

en: 
    # echo 1 &gt; /proc/sys/net/ipv4/conf/all/hidden
    # echo 1 &gt; /proc/sys/net/ipv4/conf/eth0/hidden
    # echo 1 &gt; /proc/sys/net/ipv4/conf/eth1/hidden
    .....
fr: 
    # echo 1 > /proc/sys/net/ipv4/conf/all/hidden
    # echo 1 > /proc/sys/net/ipv4/conf/eth0/hidden
    # echo 1 > /proc/sys/net/ipv4/conf/eth1/hidden
    ...

en: On later kernels this can be fixed either with:
fr: Sur les noyaux suivants, cela peut être corrigé avec:

en: iptables rules.
fr: des règles iptables ;

en: properly configured routing. <footnote><para> The fact that this behavior can be changed through routing was described by Matthew G. Marsh in the Bugtraq thread: <screen> eth0 = 1.1.1.1/24 eth1 = 2.2.2.2/24 ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000 ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000 ip route add default dev eth0 table 1 ip route add default dev eth1 table 2 </screen> </para></footnote>
fr: un routage correctement configuré<footnote><para>Le fait que ce comportement puisse être changé par le routage a été décrit par Matthew G. Marsh dans l'enfilade sur Bugtraq: <screen>eth0 = 1.1.1.1/24 eth1 = 2.2.2.2/24 ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000 ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000 ip route add default dev eth0 table 1 ip route add default dev eth1 table 2</screen></para></footnote> ;

en: kernel patching. <footnote><para> There are some patches available for this behavior as described in Bugtraq's thread at <ulink url="http://www.linuxvirtualserver.org/~julian/#hidden" /> and <ulink url="http://www.fefe.de/linux-eth-forwarding.diff" />. </para></footnote>
fr: des correctifs du noyau<footnote><para>Il existe des correctifs disponibles pour ce comportement comme décrit dans l'enfilade sur Bugtraq à <ulink url="http://www.linuxvirtualserver.org/~julian/#hidden" /> et <ulink url="http://www.fefe.de/linux-eth-forwarding.diff" />.</para></footnote>.

en: Along this text there will be many occasions in which it is shown how to configure some services (sshd server, apache, printer service...) in order to have them listening on any given address, the reader should take into account that, without the fixes given here, the fix would not prevent accesses from within the same (local) network. <footnote><para> An attacker might have many problems pulling the access through after configuring the IP-address binding while not being on the same broadcast domain (same network) as the attacked host. If the attack goes through a router it might be quite difficult for the answers to return somewhere. </para></footnote>
fr: Tout au long de ce texte, il y aura plusieurs occasions pour lesquelles il est affiché comment configurer certains services (serveur SSH, Apache, service d'impression, etc.) pour les avoir en attente sur une adresse donnée, le lecteur devra prendre en compte que, sans les correctifs donnés ici, le correctif n'empêchera pas les accès depuis le même réseau (local). <footnote><para>Un attaquant peut avoir beaucoup de problèmes à transférer un accès après une configuration de l'adresse IP s'il n'est pas le domaine de broadcast (même réseau) que l'hôte attaqué. Si l'attaque passe par un routeur, il peut être assez difficile pour les réponses de retourner quelque part. </para></footnote>

en: FIXME: Comments on Bugtraq indicate there is a Linux specific method to bind to a given interface.
fr: FIXME : Commentaires sur Bugtraq indiquant qu'il existe une méthode spécifique à Linux pour associer à une interface donnée.

en: FIXME: Submit a bug against netbase so that the routing fix is standard behavior in Debian?
fr: FIXME : Créer un bogue sur netbase pour que le correctif de routage soit le comportement standard dans Debian?

en: Protecting against ARP attacks
fr: Protéger contre les attaques ARP

en: When you don't trust the other boxes on your LAN (which should always be the case, because it's the safest attitude) you should protect yourself from the various existing ARP attacks.
fr: Quand vous ne faites pas confiance aux autres machines du réseau (ce qui devrait toujours être le cas parce que c'est l'attitude la plus sûre), vous devriez vous protéger contre les différentes attaques ARP existantes.

en: As you know the ARP protocol is used to link IP addresses to MAC addresses (see <ulink name="RFC826" url="ftp://ftp.isi.edu/in-notes/rfc826.txt" /> for all the details). Every time you send a packet to an IP address an ARP resolution is done (first by looking into the local ARP cache then if the IP isn't present in the cache by broadcasting an ARP query) to find the target's hardware address. All the ARP attacks aim to fool your box into thinking that box B's IP address is associated to the intruder's box's MAC address; Then every packet that you want to send to the IP associated to box B will be send to the intruder's box...
fr: Comme vous le savez, le protocole ARP est utilisé pour lier des adresses IP à des adresses MAC (consultez la <ulink url="ftp://ftp.isi.edu/in-notes/rfc826.txt" name="RFC826" /> pour tous les détails). À chaque fois que vous envoyez un paquet à une adresse IP, une résolution ARP est effectuée (en regardant en premier dans le cache local ARP, puis si l'adresse IP n'est pas présente dans le cache, en diffusant une requête ARP) pour trouver l'adresse matérielle de la cible. Toutes les attaques ARP ont pour but d'amener la machine à croire que l'adresse IP de la machine B est associée à l'adresse MAC de la machine de l'intrus; puis tous les paquets que vous voudrez envoyer à l'adresse IP associée à la machine B seront envoyée à la machine de l'intrus, etc.

en: Those attacks (ARP cache poisoning, ARP spoofing...) allow the attacker to sniff the traffic even on switched networks, to easily hijack connections, to disconnect any host from the network... ARP attacks are powerful and simple to implement, and several tools exists, such as <command>arpspoof</command> from the <application>dsniff</application> package or <ulink name="arpoison" url="http://arpoison.sourceforge.net/" />.
fr: Ces attaques (empoisonnement du cache, falsification ARP, etc.) permettent à l'attaquant de renifler le trafic même sur des réseaux utilisant des switchs, pour pirater facilement des connexions, pour déconnecter tout hôte du réseau, etc. Les attaques ARP sont puissantes et simples à implémenter et plusieurs outils existent comme <command>arpspoof</command> du paquet <application>dsniff</application> ou <ulink url="http://arpoison.sourceforge.net/" name="arpoison" />.

en: However, there is always a solution:
fr: Cependant, il existe toujours une solution:

en: Use a static ARP cache. You can set up "static" entries in your ARP cache with:
fr: utiliser un cache ARP statique. Vous pouvez mettre en place des entrées «statiques» dans le cache ARP avec:

en: 
      arp -s host_name hdwr_addr
fr: 
      arp -s nom_d_hôte adresse_matérielle

en: By setting static entries for each important host in your network you ensure that nobody will create/modify a (fake) entry for these hosts (static entries don't expire and can't be modified) and spoofed ARP replies will be ignored.
fr: En plaçant des entrées statiques pour chaque hôte important du réseau, vous garantissez que personne ne pourra créer ou modifier une entrée (dissimulée) pour ces hôtes (les entrées statiques n'expirent pas et elles ne peuvent pas être modifiées) et les réponses ARP falsifiées seront ignorées ;

en: Detect suspicious ARP traffic. You can use <application>arpwatch</application>, <application>karpski</application> or more general IDS that can also detect suspicious ARP traffic (<application>snort</application>, <ulink name="prelude" url="http://www.prelude-ids.org" />...).
fr: détecter le trafic ARP suspect. Vous pouvez utiliser <application>arpwatch</application>, <application>karpski</application> ou des IDS plus généraux qui peuvent également détecter le trafic ARP suspect (<application>snort</application>, <ulink url="http://www.prelude-ids.org" name="prelude" />, etc.) ;

en: Implement IP traffic filtering validating the MAC address.
fr: implémenter un filtrage de trafic IP validant l'adresse MAC.

en: Taking a snapshot of the system
fr: Prendre un instantané («snapshot») du système

en: Before putting the system into production system you could take a snapshot of the whole system. This snapshot could be used in the event of a compromise (see <xref linkend="after-compromise" />). You should remake this upgrade whenever the system is upgraded, especially if you upgrade to a new Debian release.
fr: Avant de mettre le système en production, vous pouvez prendre un instantané du système entier. Cet instantané pourrait être utilisé en cas de compromission (consultez <xref linkend="after-compromise" />). Vous devriez refaire cette mise à jour à chaque fois que le système est mis à jour, particulièrement si vous mettez à jour vers une nouvelle version de Debian.

en: For this you can use a writable removable-media that can be set up read-only, this could be a floppy disk (read protected after use), a CD on a CD-ROM unit (you could use a rewritable CD-ROM so you could even keep backups of md5sums in different dates), or a USB disk or MMC card (if your system can access those and they can be write protected).
fr: Pour cela, vous pouvez utiliser un support inscriptible et amovible qui peut être positionné en lecture seule, ce peut être une disquette (en lecture seule après utilisation), un CD d'une unité de CD (vous pourriez utiliser un CD réinscriptible, ainsi vous pourriez même garder des sauvegardes des md5sums à différentes dates), ou un disque USB ou une carte MMC (si le système peut accéder à ceux-ci et qu'ils peuvent être protégés en écriture).

en: The following script creates such a snapshot:
fr: Le script suivant crée un tel instantané:

en: 
    #!/bin/bash
    /bin/mount /dev/fd0 /mnt/floppy
    trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
    if [ ! -f /usr/bin/md5sum ] ; then
    	echo "Cannot find md5sum. Aborting."
    	exit 1
    fi
    /bin/cp /usr/bin/md5sum /mnt/floppy
    echo "Calculating md5 database"
    &gt;/mnt/floppy/md5checksums.txt
    for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    do
       find $dir -type f | xargs /usr/bin/md5sum &gt;&gt;/mnt/floppy/md5checksums-lib.txt
    done
    echo "post installation md5 database calculated"
    if [ ! -f /usr/bin/sha1sum ] ; then
    	echo "Cannot find sha1sum"
            echo "WARNING: Only md5 database will be stored"
    else
    	/bin/cp /usr/bin/sha1sum /mnt/floppy
    	echo "Calculating SHA-1 database"
    	&gt;/mnt/floppy/sha1checksums.txt
    	for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    	do
    	   find $dir -type f | xargs /usr/bin/sha1sum &gt;&gt;/mnt/floppy/sha1checksums-lib.txt
    	done
    	echo "post installation sha1 database calculated"
    fi
    exit 0
fr: 
    #!/bin/bash
    /bin/mount /dev/fd0 /mnt/floppy
    trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
    if [ ! -f /usr/bin/md5sum ] ; then
       echo "Impossible de trouver md5sum. Échec."
       exit 1
    fi
    /bin/cp /usr/bin/md5sum /mnt/floppy
    echo "Calcul de la base de données md5"
    >/mnt/floppy/md5checksums.txt
    for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    do
       find &#36;dir -type f | xargs /usr/bin/md5sum\
    	                     >>/mnt/floppy/md5checksums-lib.txt
    done
    echo "Base de données md5 de post-installation calculée"
    if [ ! -f /usr/bin/sha1sum ] ; then
       echo "Impossible de trouver sha1sum"
       echo "Attention : seule la base de données MD5 sera gardée"
    else
       /bin/cp /usr/bin/sha1sum /mnt/floppy
       echo "Calcul de la base de données SHA-1"
       >/mnt/floppy/sha1checksums.txt
       for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
       do
          find &#36;dir -type f | xargs /usr/bin/sha1sum\
                              >>/mnt/floppy/sha1checksums-lib.txt
      done
      echo "Base de données SHA-1 de post-installation calculée"
    fi
    exit 0

en: Note that the md5sum binary (and sha1sum, if available) is placed on the floppy drive so it can be used later on to check the binaries of the system (just in case it gets trojaned). However, if you want to make sure that you are running a legitimate binary, you might want to either compile a static copy of the md5sum binary and use that one (to prevent a trojaned libc library from interfering with the binary) or to use the snapshot of md5sums only from a clean environment such as a rescue CD-ROM or a Live-CD (to prevent a trojaned kernel from interfering). I cannot stress this enough: if you are on a compromised system you cannot trust its output, see <xref linkend="after-compromise" />.
fr: Notez que le binaire md5sum (et le binaire sha1sum, s'il est disponible) est placé sur la disquette pour pouvoir être utilisé plus tard pour vérifier les binaires du système (juste au cas où il serait aussi corrompu). Cependant, si vous voulez vous assurer que vous exécutez bien un binaire légitime, vous pouvez vouloir, soit compiler une copie statique du binaire md5sum et utiliser celui-ci (pour empêcher une bibliothèque libc corrompue d'interférer avec le binaire), soit utiliser des instantanés de md5sums depuis un environnement propre exclusivement comme un CD de récupération ou un CD autonome (pour empêcher un noyau corrompu d'interférer). Je ne peux insister assez sur ce point: si vous êtes sur un système compromis, vous ne pouvez pas faire confiance à ce qui s'affiche, consultez <xref linkend="after-compromise" />.

en: The snapshot does not include the files under <filename>/var/lib/dpkg/info</filename> which includes the MD5 hashes of installed packages (in files ending with <filename>.md5sums</filename>). You could copy this information along too, however you should notice:
fr: L'instantané n'inclut pas les fichiers sous <filename>/var/lib/dpkg/info</filename> qui incluent les sommes de hachage MD5 des paquets installés (dans les fichiers se terminant par <filename>.md5sums</filename>). Vous pourriez également y copier ces renseignements, veuillez cependant noter que:

en: the md5sums files include the md5sum of all files provided by the Debian packages, not just system binaries. As a consequence, that database is bigger (5 Mb versus 600 Kb in a Debian GNU/Linux system with a graphical system and around 2.5 Gb of software installed) and will not fit in small removable media (like a single floppy disk, but would probably fit in a removable USB memory).
fr: les fichiers md5sums incluent les md5sums de tous les fichiers fournis par les paquets Debian, pas seulement les binaires système. Par conséquent, la base de données est plus importante (5Mo contre 600ko dans un système Debian GNU/Linux avec un système graphique et environ 2,5Go de logiciels installés) et elle ne tiendra sur un petit support amovible (comme une simple disquette, mais tiendra sans doute sur une clef USB) ;

en: not all Debian packages provide md5sums for the files installed since it is not (currently) mandated policy. Notice, however, that you can generate the md5sums for all packages using <application>debsums</application> after you've finished the system installation:
fr: tous les paquets Debian ne fournissent pas les md5sums pour les fichiers installé car ce n'est pas (actuellement) imposé par la Charte. Notez, cependant, que vous pouvez générer les md5sums pour tous les paquets en utilisant <application>debsums</application> après avoir fini l'installation du système:

en: Once the snapshot is done you should make sure to set the medium read-only. You can then store it for backup or place it in the drive and use it to drive a <command>cron</command> check nightly comparing the original md5sums against those on the snapshot.
fr: Une fois que l'instantané est fait, vous devriez vous assurer de placer le support en lecture seule. Vous pouvez ensuite le stocker pour archivage ou le placer dans le lecteur et utiliser une vérification <command>cron</command> toutes les nuits en comparant les md5sums d'origine avec ceux de l'instantané.

en: If you do not want to setup a manual check you can always use any of the integrity systems available that will do this and more, for more information please read <xref linkend="periodic-integrity" />.
fr: Si vous ne voulez pas configurer de vérification manuelle, vous pouvez toujours utiliser n'importe quel système d'intégrité disponible qui fera cela et plus, pour de plus amples renseignements, veuillez consulter <xref linkend="periodic-integrity" />.

en: Other recommendations
fr: Autres recommandations

en: Do not use software depending on svgalib
fr: N'utilisez pas de logiciels dépendant de svgalib

en: SVGAlib is very nice for console lovers like me, but in the past it has been proven several times that it is very insecure. Exploits against <command>zgv</command> were released, and it was simple to become root. Try to prevent using SVGAlib programs wherever possible.
fr: SVGAlib est très bien pour les amoureux de la console mais s'est montrée très peu sûre par le passé. Des exploitations de failles de <command>zgv</command> ont été diffusées et il était facile de devenir superutilisateur. Essayez d'éviter l'utilisation de programmes utilisant la SVGAlib chaque fois que c'est possible.
