diff --git a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml index 2e8eabb285..d3d049b2ae 100644 --- a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1686 +1,1686 @@ Installer des applications: les logiciels pré-compilés et les logiciels portés &trans.a.fonvieille; Synopsis logiciels portés logiciels pré-compilés FreeBSD est livré avec une riche collection d'outils en tant que partie du système de base. Cependant, beaucoup de choses peuvent être faites avant d'avoir besoin de recourir à l'installation d'une application tiers pour effectuer un travail précis. FreeBSD fournit deux technologies complémentaires pour installer des logiciels tiers sur votre système: le Catalogue des logiciels portés de FreeBSD (pour une installation à partir des sources), et les logiciels pré-compilés ou paquetages (pour installer des binaires pré-compilés). N'importe laquelle de ces deux méthodes peut être utilisée pour installer les nouvelles versions de vos applications favorites à partir d'un support local ou directement depuis le réseau. Après la lecture de ce chapitre, vous saurez: Comment installer des logiciels tiers pré-compilés. Comment compiler des logiciels tiers à partir des sources en utilisant le catalogue de logiciels portés. Comment effacer les logiciels pré-compilés ou portés précédemment installés. Comment modifier les paramètres par défaut utilisés par le catalogue des logiciels portés. Comment trouver l'application recherchée. Comment mettre à jour vos applications. Généralités sur l'installation de logiciels Si vous avez utilisé auparavant un système &unix; vous saurez que la procédure typique pour installer les logiciels tiers ressemble à ceci: Télécharger le logiciel, qui peut être distribué sous forme de code source, ou sous forme d'un binaire. Extraire le logiciel de son format de distribution (généralement une archive tar compressée soit avec &man.compress.1;, soit avec &man.gzip.1;, ou encore &man.bzip2.1;). Recherchez la documentation (peut être un fichier INSTALL ou README, ou des fichiers dans un sous répertoire doc/) et lisez les informations sur comment installer le logiciel. Si le logiciel était distribué sous forme de sources, compilez-le. Cela peut impliquer l'édition d'un Makefile, ou l'exécution d'une procédure configure, et d'autres activités. Tester et installer le logiciel. Et cela si seulement tout se passe bien. Si vous installez un logiciel qui n'a pas été spécialement porté pour FreeBSD, il se peut que vous deviez éditer le code source pour le faire fonctionner correctement. Si vous le voulez, vous pouvez continuer d'installer des logiciels suivant la méthode “traditionnelle” sous FreeBSD. Cependant, FreeBSD fournit deux technologies avec lesquelles vous pouvez vous économiser beaucoup d'efforts: les logiciels pré-compilés et le catalogue des logiciels portés. A l'heure de l'écriture de ces lignes, plus de &os.numports; applications tierces sont ainsi mises à disposition. Pour n'importe quelle application donnée, le logiciel pré-compilé FreeBSD pour cette application est un unique fichier à télécharger. Il contient les copies pré-compilées de toutes les commandes de l'application, ainsi que tous fichiers de configuration et documentation. Un logiciel pré-compilé téléchargé peut être manipulé avec les commandes FreeBSD de gestion des logiciels pré-compilés, comme &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, et ainsi de suite. L'installation d'une nouvelle application peut être effectuée grâce à une unique commande. Un logiciel porté pour FreeBSD est un ensemble de fichiers conçus pour automatiser le processus de compilation d'une application à partir du code source. Rappelez-vous qu'il y a un certain nombre d'étapes que vous effectueriez si vous compiliez un programme vous-même (téléchargement, extraction, application de correctifs, compilation, installation). Les fichiers qui composent un logiciel porté contiennent toute l'information nécessaire pour permettre au système de faire cela pour vous. Vous lancez une poignée de commandes simples et le code source de l'application est automatiquement téléchargé, extrait, corrigé, compilé, et installé pour vous. En fait, le catalogue des logiciels portés peut être utilisé pour générer ce qui pourra plus tard être manipulé avec pkg_add et d'autres commandes de gestion des logiciels pré-compilés qui seront présentés sous peu. Les logiciels pré-compilés et le catalogue des logiciels portés comprennent la notion de dépendances. Supposez que vous voulez installer une application qui dépend de l'installation d'une bibliothèque particulière. L'application et la bibliothèque ont été toutes deux rendues disponibles sous forme de logiciel porté pour FreeBSD ou de logiciel pré-compilé. Si vous utilisez la commande pkg_add ou le catalogue des logiciels portés pour ajouter l'application, tous les deux remarqueront que la bibliothèque n'a pas été installée, et installeront automatiquement en premier la bibliothèque. Etant donné que les deux technologies sont presque semblables, vous pourriez vous demander pourquoi FreeBSD s'ennuie avec les deux. Les logiciels pré-compilés et le catalogue de logiciels portés ont chacun leurs propres forces, et celle que vous emploierez dépendra de votre préférence. Avantages des logiciels pré-compilés L'archive compressée d'un logiciel pré-compilé est généralement plus petite que l'archive compressée contenant le code source de l'application. Les logiciels pré-compilés ne nécessitent pas de compilation supplémentaire. Pour les grosses applications, comme Mozilla, KDE, ou GNOME cela peut s'avérer important, particulièrement si vous êtes sur un système lent. Les logiciels pré-compilés ne demandent pas une compréhension du processus impliqué dans la compilation de logiciels sous FreeBSD. Avantages du catalogue des logiciels portés Les logiciels pré-compilés sont normalement compilés avec des options conservatrices, parce qu'ils doivent pouvoir tourner sur le plus grand nombre de systèmes. En installant à partir du catalogue des logiciels portés, vous pouvez ajuster les options de compilation pour (par exemple) générer du code spécifique au Pentium IV ou à l'Athlon. Certaines applications ont des options de compilation concernant ce qu'elles peuvent faire et ne pas faire. Par exemple, Apache peut être configuré avec une très large variété d'options intégrées différentes. En compilant à partir du catalogue des logiciels portés vous n'avez pas à accepter les options par défaut, et vous pouvez les configurez vous-même. Dans certains cas, de multiples logiciels pré-compilés existeront pour la même application pour spécifier certaines configurations. Par exemple, Ghostscript est disponible comme logiciel pré-compilé ghostscript et ghostscript-nox11 , en fonction de si vous avez installé ou non un serveur X11. Ce type d'arrangement est possible avec les logiciels pré-compilés, mais devient rapidement impossible si une application a plus d'une ou deux options de compilation. Les licences de certains logiciels interdisent les distributions binaires. Ils doivent être distribués sous forme de code source. Certaines personnes ne font pas confiance aux distributions binaires. Au moins avec le code source, vous pouvez (en théorie) le parcourir et chercher les problèmes potentiels par vous-même. Si vous avez des correctifs locaux, vous aurez besoin du code source afin de les appliquer. Certaines personnes aiment avoir le code source à portée de main, ainsi elles peuvent le lire si elles s'ennuient, le modifier, y faire des emprunts (si la licence le permet bien sûr), etc... Pour suivre les mises à jour du catalogue des logiciels portés, inscrivez-vous à la &a.ports; et la &a.ports-bugs;. Avant d'installer une application, vous devriez consulter à la recherche de problème de sécurité concernant votre application. Vous pouvez également installer security/portaudit qui contrôlera automatiquement toutes les applications installées à la recherche de vulnérabilités connues, un contrôle sera également effectué avant toute compilation de logiciel porté. De même, vous pouvez utiliser la commande portaudit -F -a après avoir installé des logiciels pré-compilés. Le reste de ce chapitre expliquera comment utiliser les logiciels pré-compilés et le catalogue des logiciels portés et la gestion des logiciels tiers sous FreeBSD. Trouver votre application Avant que vous puissiez installer des applications vous devez savoir ce que vous voulez, et comment se nomment les applications. La liste des applications disponibles pour FreeBSD augmente de jours en jours. Heureusement, il y a plusieurs façons de trouver ce que vous désirez: Le site web de FreeBSD maintient à jour une liste, dans laquelle on peut effectuer des recherches, de toutes les applications disponibles à l'adresse http://www.FreeBSD.org/ports/. Le catalogue des logiciels portés est divisé en catégories, et vous pouvez soit chercher une application par son nom (si vous le connaissez), soit lister toutes les applications disponibles dans une catégorie. FreshPorts Dan Langille maintient FreshPorts, à l'adresse . FreshPorts suit les modifications des applications dans le catalogue des logiciels portés, vous permet de “surveiller” un ou plusieurs logiciels portés, et peut vous envoyer un courrier électronique quand ils sont mis à jour. FreshMeat Si vous ne connaissez pas le nom de l'application que vous voulez, essayez d'utiliser un site comme FreshMeat () pour trouver une application, ensuite vérifiez sur le site de FreeBSD si l'application a déjà été portée. Si vous connaissez le nom exact du logiciel, vous devez juste déterminer dans quelle catégorie il se trouve, vous pouvez utiliser la commande &man.whereis.1; pour cela. Tapez simplement whereis filefile est le programme que vous voulez installer. S'il est trouvé sur le système, on vous indiquera où il se trouve, de la manière suivante: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Cela nous indique que lsof (un utilitaire système) peut être trouvé dans le répertoire /usr/ports/sysutils/lsof. Encore une autre façon de trouver un logiciel porté particulier est d'utiliser le mécanisme de recherche interne du catalogue des logiciels portés. Pour utiliser la fonction de recherche, vous devrez vous trouver dans le répertoire /usr/ports. Une fois dans ce répertoire, lancez make search name=program-nameprogram-name représente le nom du programme que vous voulez localiser. Par exemple, si vous recherchiez lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: La partie du message de sortie à laquelle vous devez prêter attention est la ligne “Path:”, car cela vous indique où trouver le logiciel porté. Les autres informations ne sont pas nécessaires afin d'installer le logiciel porté, aussi on en parlera pas ici. Pour une recherche plus en profondeur vous pouvez également utiliser make search key=stringstring est le texte à rechercher. Cela recherche les noms de logiciels portés, les commentaires, les descriptions et les dépendances et peut être utilisé pour trouver des logiciels portés se rapportant à un sujet particulier si vous ne connaissez pas le nom du programme que vous cherchez. Dans les deux cas, la chaîne de caractère de recherche n'est pas sensible à la casse des caractères. Rechercher “LSOF” mènera aux même résultats que la recherche de “lsof”. Chern Lee Contribution de Utiliser le système des logiciels pré-compilés Installation d'un logiciel pré-compilé logiciels pré-compilés installation pkg_add Vous pouvez utiliser l'utilitaire &man.pkg.add.1; pour installer un logiciel pré-compilé FreeBSD à partir d'un fichier local ou d'un serveur sur le réseau. Télécharger un logiciel pré-compilé à la main puis l'installer localement &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Si vous ne disposez pas d'une source locale de logiciels pré-compilés (comme l'ensemble de CDROM de FreeBSD) alors il sera probablement plus facile d'utiliser l'option de &man.pkg.add.1;. Cela fera déterminer automatiquement à l'utilitaire le format objet et la version corrects et ensuite récupérer et installer le logiciel pré-compilé à partir d'un site FTP. pkg_add &prompt.root; pkg_add -r lsof L'exemple ci-dessus téléchargera le logiciel pré-compilé correct sans plus d'intervention de l'utilisateur. Si vous désirez indiquer un autre miroir &os; pour les logiciels pré-compilés à la place du site de distribution principal, vous devez positionner en conséquence la variable d'environnement PACKAGESITE, pour remplacer les paramètres par défaut. &man.pkg.add.1; utilise &man.fetch.3; pour télécharger les fichiers, qui respecte diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou plusieurs de ces dernières si vous êtes derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la page de manuel &man.fetch.3; pour la liste complète des variables. Vous pouvez également remarquer que dans l'exemple ci-dessus lsof est utilisé au lieu de lsof-4.56.4. Quand la fonction de récupération à distance est utilisée, le numéro de version doit être retiré. &man.pkg.add.1; téléchargera automatiquement la toute dernière version de l'application. &man.pkg.add.1; téléchargera la dernière version de votre application si vous êtes sous &os.current; ou &os.stable;. Si vous utilisez une version -RELEASE, il récupérera la version compilée avec votre version lors de sa publication. Il est possible de modifier ce comportement en surchargeant la variable d'environnement PACKAGESITE. Par exemple, si vous utilisez un système &os; 5.4-RELEASE, par défaut &man.pkg.add.1; tentera de récupérer les applications pré-compilées à partir de ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Si vous désirez forcer &man.pkg.add.1; à télécharger les versions des logiciels pré-compilés pour &os; 5-STABLE, positionnez la variable PACKAGESITE à ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Les logiciels pré-compilés sont distribués dans les formats .tgz et .tbz. Vous pouvez les trouver sur , ou sur le CDROM de distribution de FreeBSD. Chaque CD de l'ensemble de 4-CD de FreeBSD (et le PowerPak, etc...) contient des logiciels pré-compilés dans le répertoire /packages. L'organisation des logiciels pré-compilés est semblable à celle de l'arborescence /usr/ports. Chaque catégorie possède son propre répertoire, et chaque logiciel pré-compilé peut être trouvé dans le répertoire All. La structure de répertoires du système de logiciels pré-compilés correspond à celle du catalogue des logiciels portés; ils travaillent ensemble pour former l'intégralité du système de logiciels pré-compilés/portés. Gestion des logiciels pré-compilés logiciels pré-compilés gestion &man.pkg.info.1; est un utilitaire qui liste et décrit les divers logiciels pré-compilés installés. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; est un utilitaire qui récapitule les versions de tous les logiciels pré-compilés installés. Il compare la version du logiciel pré-compilé avec la version actuelle trouvée dans le catalogue des logiciels portés. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Les symboles dans la seconde colonne indiquent l'âge relatif de la version installée et de la version disponible dans le catalogue des logiciels portés local. Symbole Signification = La version du logiciel pré-compilé installée est équivalente à celle de celui trouvé dans le catalogue des logiciels portés local. < La version installée est plus ancienne que celle disponible dans le catalogue des logiciels portés. >La version installée est plus récente que celle trouvée dans le catalogue local des logiciels portés. (le catalogue local des logiciels portés est probablement ancien) ?Le logiciel pré-compilé ne peut être trouvé dans l'index du catalogue des logiciels portés. (Cela peut se produire quand, par exemple, un logiciel installé est supprimé du catalogue des logiciels portés ou renommé.) *Il y a de multiples versions de ce logiciel pré-compilé. Effacer un logiciel pré-compilé pkg_delete logiciels pré-compilés effacer Pour désinstaller un logiciel pré-compilé précédemment installé, utilisez l'utilitaire &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Divers Toute l'information sur les logiciels pré-compilés est stockée dans le répertoire /var/db/pkg. La liste des fichiers installés pour chaque logiciel pré-compilé peut être trouvée dans des fichiers de ce répertoire. Utiliser le catalogue des logiciels portés Les sections suivantes fournissent des instructions de base sur l'utilisation du catalogue des logiciels portés pour installer et désinstaller des programmes sur votre système. Une description détaillée des cibles make et de variables d'environnement est disponible dans la page de manuel &man.ports.7;. Obtenir le catalogue des logiciels portés Avant que vous puissiez installer des logiciels portés, vous devez d'abord récupérer le catalogue des logiciels portés— qui est essentiellement un ensemble de Makefiles, de correctifs, et de fichiers de description habituellement placés dans /usr/ports. Quand vous avez installé votre système FreeBSD, sysinstall vous a demandé si vous aimeriez installer le catalogue des logiciels portés. Si vous avez choisi non, vous pouvez suivre ces instructions pour obtenir le catalogue des logiciels portés: La méthode CVSup C'est une méthode rapide pour récupérer le catalogue des logiciels portés en utilisant CVSup. Si vous voulez garder à jour votre catalogue, ou apprendre plus au sujet de CVSup, lisez les sections mentionnées précédemment. Installer le logiciel porté net/cvsup-without-gui: &prompt.root; pkg_add -r cvsup-without-gui Voir Installation de CVSup () pour plus de details. Lancez cvsup: &prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Remplacez cvsup.FreeBSD.org avec un serveur CVSup proche de vous. Voir Sites CVSup () pour une liste complète des sites miroirs. Certains peuvent vouloir utiliser leur propre ports-supfile, par exemple pour éviter d'avoir à passer le serveur CVSup sur la ligne de commande. Dans ce cas, en tant que root, copier /usr/share/examples/cvsup/ports-supfile à un nouvel emplacement, comme /root ou votre répertoire d'utilisateur. Editez ports-supfile. Remplacez CHANGE_THIS.FreeBSD.org avec un serveur CVSup proche de vous. Voir Sites CVSup () pour une liste complète des sites miroirs. Maintenant pour lancer cvsup, utilisez ce qui suit: &prompt.root; cvsup -L 2 /root/ports-supfile L'exécution ultérieure de &man.cvsup.1; téléchargera et appliquera tous les changements récents à votre catalogue des logiciels portés sans pour autant recompiler vos logiciels. La méthode Portsnap Portsnap est un système alternatif de distribution du catalogue des logiciels portés. Il a été fourni pour la première fois avec &os; 6.0. Sur les systèmes plus anciens vous pouvez l'installer à partir du logiciel pré-compilé sysutils/portsnap: &prompt.root; pkg_add -r portsnap Veuillez vous reporter à la section Utiliser Portsnap pour une description détaillée de toutes les caractéristiques de Portsnap. Depuis &os; 6.1-RELEASE et avec les versions récentes pré-compilées ou portées de Portsnap, vous pouvez sans risque passer cette étape. Le répertoire /usr/ports sera créé automatiquement à la première utilisation de la commande &man.portsnap.8;. Avec les versions précédentes de Portsnap, vous devrez créé un répertoire /usr/ports s'il n'existe pas: &prompt.root; mkdir /usr/ports Téléchargez un instantané compressé du catalogue des logiciels portés dans le répertoire /var/db/portsnap. Vous pouvez vous déconnecter de l'Internet, si vous le désirez, après cette opération: &prompt.root; portsnap fetch Si vous exécutez Portsnap pour la première fois, il faut extraire l'instantané dans le répertoire /usr/ports: &prompt.root; portsnap extract Si votre répertoire /usr/ports contient déjà une version du catalogue des logiciels portés et que vous désirez juste mettre à jour, utilisez plutôt la commande: &prompt.root; portsnap update La méthode Sysinstall Cette méthode implique l'utilisation de sysinstall pour installer le catalogue des logiciels portés à partir du disque d'installation. Il faut noter que la version du catalogue qui sera installée est la version datant de la publication de votre disque d'installation. Si vous disposez d'un accès à l'Internet, vous devriez toujours utiliser une des méthodes précédemment exposées. En tant que root, lancez sysinstall (/stand/sysinstall dans les versions de &os; antérieure à 5.2) comme montré ci-dessous: &prompt.root; /stand/sysinstall Faites défiler l'écran vers le bas et sélectionnez Configure, appuyez sur Entrée. Faites défiler l'écran vers le bas et sélectionnez Distributions, appuyez sur Entrée. Faites défiler l'écran vers le bas jusqu'à ports, appuyez sur Espace. Remontez jusqu'à Exit, appuyez sur Entrée. Choisissez le support d'installation désiré, comme un CDROM, par FTP, etc. Remontez jusqu'à Exit et appuyez sur Enter. Appuyez sur la touche X pour quitter sysinstall. Une autre alternative pour obtenir et garder à jour votre catalogue des logiciels portés est d'utiliser CVSup. Jetez un coup d'oeil au fichier CVSup du catalogue des logiciels portés, /usr/share/examples/cvsup/ports-supfile. Consultez Utiliser CVSup () pour plus d'information sur l'utilisation de CVSup et ce fichier. Installation de logiciels portés logiciels portés installation La première chose qui devrait être expliquée quand on aborde le catalogue des logiciels portés est ce que l'on entend par “squelette”. En bref, un squelette est un ensemble minimal de fichiers qui indique à votre système FreeBSD comment compiler et installer proprement un programme. Chaque squelette contient: Un fichier Makefile. Le fichier Makefile contient les diverses déclarations qui indiquent comment l'application devrait être compilée et où elle devrait être installée sur votre système. Un fichier distinfo. Ce fichier contient l'information à propos des fichiers qui doivent être téléchargés pour compiler le logiciel, et leurs sommes de contrôle, pour s'assurer que ces fichiers n'ont pas été corrompus durant le téléchargement en utilisant &man.md5.1;. Un répertoire files. Ce répertoire contient les correctifs pour permettre la compilation et l'installation du programme sur votre système FreeBSD. Les correctifs sont à la base de petits fichiers qui indiquent des modifications sur des fichiers particuliers. Ils sont sous forme de fichiers texte, qui disent “Effacer la ligne 10” ou “Modifier la ligne 26 par...”. Les correctifs sont également connus sous le nom de “diffs” car ils sont générés par le programme &man.diff.1;. Ce répertoire peut également contenir d'autres fichiers utilisés pour la compilation du logiciel porté. Un fichier pkg-descr. C'est une description plus détaillée du programme, souvent en plusieurs lignes. Un fichier pkg-plist. C'est une liste de tous les fichiers qui seront installés par le logiciel porté. Il indique également au système des logiciels portés quels fichiers sont à effacer lors d'une désinstallation. Certains logiciels portés utilisent d'autres fichiers, comme pkg-message. Le catalogue des logiciels portés utilise ces fichiers pour faire face à certaines situations spéciales. Si vous désirez plus de détails au sujet de ces fichiers, et sur les logiciels portés en général, consultez le Manuel du développeur de logiciels portés. Le logiciel porté contient les instructions pour compiler le code source, mais ne contient pas le code source. Vous pouvez obtenir le code source à partie d'un CDROM ou de l'Internet. Le code source est distribué de la façon dont l'auteur le désire. Fréquemment c'est une archive tar compressée avec gzip, mais elle pourra être compressée avec un autre outil ou même non compressée. Le code source d'un programme, peu importe la forme sous laquelle il est distribué, est appelé un fichier “distfile”. Les deux méthodes pour l'installation d'un logiciel porté pour &os; sont décrites ci-dessous. Vous devez avoir ouvert une session sous l'utilisateur root pour installer des logiciels portés. Avant d'installer un logiciel porté, vous devez vous assurer d'avoir un catalogue des logiciels portés à jour et vous devez consulter pour les problèmes de sécurité relatifs à votre logiciel. Un contrôle des problèmes de sécurité peut être effectué automatiquement par portaudit avant toute nouvelle installation d'application. Cet outil peut être trouvé dans le catalogue des logiciels porté (security/portaudit). Vous pouvez lancer portaudit -F avant l'installation d'un nouveau logiciel porté, pour télécharger la base de données actualisée des vulnérabilités. Un audit de sécurité et une mise à jour de la base de données sera effectuée lors du contrôle quotidien de sécurité de la machine. Pour plus d'informations, lisez les pages de manuel &man.portaudit.1; et &man.periodic.8;. Le catalogue des logiciels portés suppose que vous disposez d'une connection active à l'Internet. Si ce n'est pas le cas, vous devez placer manuellement une copie du distfile dans le répertoire /usr/ports/distfiles. Pour commencer, rendez-vous dans le répertoire du logiciel porté que vous voulez installer: &prompt.root; cd /usr/ports/sysutils/lsof Une fois à l'intérieur du répertoire lsof vous verrez le squelette du logiciel porté. L'étape suivante est de compiler (également appelé la “construction”) le logiciel porté. Cela est fait en tapant simplement make à l'invite. Une fois que c'est fait, vous devriez voir quelque chose comme ceci: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Notez qu'une fois la compilation terminée, vous vous retrouvez face à l'invite. L'étape suivante est d'installer le logiciel porté. Afin de l'installer, vous devez juste ajouter un mot à la commande make, et ce mot est install: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Une fois de retour à l'invite, vous devriez être en mesure d'exécuter l'application que vous venez juste d'installer. Comme lsof est un programme qui tourne avec des privilèges accrus, un avertissement sur la sécurité est affiché. Durant la compilation et l'installation de logiciels portés, vous devriez faire attention à tout avertissement qui pourrait apparaître. Il est conseillé de supprimer le sous-répertoire de travail, qui contient tous les fichiers temporaires utilisés lors de la compilation. Non seulement cela consomme de l'espace disque, mais cela posera problème plus tard lors de la mise à jour vers une nouvelle version du logiciel porté. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Vous pouvez vous économiser deux étapes supplémentaires en lançant juste make install clean à la place de make, make install et make clean sous la forme de trois étapes séparées. Certains interpréteurs de commandes maintiennent un cache des commandes qui sont disponibles dans les répertoires listés dans la variable d'environnement PATH, pour accélérer les opérations de recherche des fichiers exécutables de ces commandes. Si vous utilisez un de ces interpréteurs de commandes, vous pourrez avoir à utiliser la commande rehash après l'installation d'un logiciel porté, avant que la commande fraîchement installée ne puisse être utilisée. Cette commande fonctionnera pour les interpréteurs de commandes comme tcsh. Utilisez la commande hash -r pour les interpréteurs tels que sh. Consultez la documentation de votre interpréteur de commandes pour plus d'information. Certains DVD-ROMs comme le &os; Toolkit de FreeBSD Mall contiennent des distfiles. Ils peuvent être utilisés avec le catalogue des logiciels portés. Montez le DVD-ROM sous /cdrom. Si vous utilisez un point de montage différent, positionnez la variable &man.make.1; CD_MOUNTPTS. Les distfiles nécessaires seront automatiquement utilisés s'ils sont présent sur le disque. Soyez conscient que les licences de quelques logiciels portés n'autorisent pas leur présence sur le CD-ROM. Cela peut être dû à la nécessité de remplir un formulaire d'enregistrement avant le téléchargement, ou que la redistribution n'est pas permise, ou toute autre raison. Si vous désirez installer un logiciel porté qui n'est pas disponible sur le CD-ROM, vous devrez vous connecter afin de récupérer les fichiers nécessaires. Le catalogue des logiciels portés utilise &man.fetch.1; pour télécharger les fichiers, qui respecte diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou plusieurs de ces dernières si vous êtes derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la page de manuel &man.fetch.3; pour la liste complète des variables. Pour les utilisateurs qui ne peuvent rester connectés à l'Internet indéfiniment, il existe la commande make fetch. Exécutez cette commande à la base du catalogue des logiciels portés (/usr/ports) et les fichiers nécessaires seront téléchargés. Cette commande fonctionnera également dans les sous-répertoires du catalogue, par exemple: /usr/ports/net. Notez que si un logiciel porté dépend de bibliothèques particulières ou d'autres logiciels portés, cette commande de récupérera pas les sources de ces logiciels. Remplacez fetch par fetch-recursive si vous voulez récupérer également les sources des logiciels dont dépend un logiciel porté. Vous pouvez compiler tous les logiciels d'une catégorie ou de l'ensemble du catalogue en exécutant la commande make dans un répertoire de base, juste comme la commande make fetch précédente. C'est, cependant, une idée dangereuse étant donné que certains logiciels portés ne peuvent coexister. Dans d'autres cas, certains logiciels portés peuvent installer des fichiers différents ayant le même nom. Dans de rares cas les utilisateurs peuvent vouloir récupérer les archives à partir d'un site différent du MASTER_SITES par défaut (l'emplacement par défaut à partir duquel les fichiers sont téléchargés). Vous pouvez surcharger l'option MASTER_SITES avec la commande suivante: &prompt.root; cd /usr/ports/répertoire &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Dans cet exemple nous modifions la valeur par défaut de l'option MASTER_SITES pour ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Certains logiciels portés autorisent (ou même nécessitent) des options de compilation qui permettent l'activation/désactivation de parties de l'application qui ne sont pas nécessaires, de certaines options de sécurité, et autres personnalisations. Quelques noms de logiciels viennent immédiatement à l'esprit: www/mozilla, security/gpgme, et mail/sylpheed-claws. Un message sera affiché quand de telles options sont disponibles. Modifier les répertoires par défaut des logiciels portés Il est parfois utile (ou obligatoire) d'utiliser des répertoires de travail ou cible différents. Les variables WRKDIRPREFIX et PREFIX permettent de modifier les répertoires par défaut. Par exemple: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install compilera le logiciel dans le répertoire /usr/home/example/ports et installera tout dans /usr/local. &prompt.root; make PREFIX=/usr/home/example/local install le compilera dans /usr/ports et l'installera dans /usr/home/example/local. Et bien sûr &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install combinera les deux (c'est trop long pour tenir sur cette page, mais cela devrait vous donner une idée générale). Alternativement, ces variables peuvent également être configurées dans votre environnement. Consultez la page de manuel de votre interpréteur de commandes pour des instructions sur la procédure à suivre. Travailler avec <command>imake</command> Certains logiciels portés qui utilisent imake (une partie du système X Window) ne fonctionnent pas correctement avec la variable PREFIX, et insisteront pour s'installer sous /usr/X11R6. De façon similaire, certains logiciels Perl ignorent PREFIX et s'installent dans l'arborescence Perl. Faire en sorte que ces logiciels portés respectent PREFIX est une tâche difficile voire impossible. Supprimer des logiciels portés installés logiciels portés désinstallation Maintenant que vous savez comment installer des logiciels portés, vous vous demandez probablement comment les effacer, juste au cas où vous en installez un et plus tard vous vous apercevez que vous n'avez pas installé le bon logiciel porté. Nous désinstallerons notre exemple précédent (qui était lsof pour ceux d'entre vous qui n'ont pas suivi). Les logiciels portés sont supprimés de la même manière que pour les logiciels pré-compilés (comme décrit dans la section Utiliser le système des logiciels pré-compilés) en utilisant la commande &man.pkg.delete.1;: &prompt.root; pkg_delete lsof-4.57 Mise à jour des logiciels portés logiciels portés mise à jour Tout d'abord, listez les logiciels portés périmés dont une nouvelle version est disponible dans le catalogue des logiciels portés à l'aide de la commande &man.pkg.version.1;: &prompt.root; pkg_version -v Une fois que vous avez mis à jour le catalogue des logiciels portés, avant de tenter la mise à jour d'un logiciel porté, vous devrez consulter le fichier /usr/ports/UPDATING. Ce fichier décrit les problèmes divers et les étapes supplémentaires que les utilisateurs pourront rencontrer ou devront exécuter lors de la mise à jour un logiciel porté. Mise à jour des logiciels portés à l'aide de portupgrade portupgrade Le logiciel portupgrade a été conçu pour une mise à jour aisée des logiciels portés installés. Il est disponible via le logiciel porté sysutils/portupgrade. Installez-le de la même manière que pour n'importe quel autre logiciel en employant la commande make install clean: &prompt.root; cd /usr/ports/sysutils/portupgrade &prompt.root; make install clean Ensuite, parcourez la liste des logiciels installés avec la commande pkgdb -F et corrigez - toutes les inconsistences qu'il signale. C'est une bonne + toutes les inconsistances qu'il signale. C'est une bonne idée d'effectuer ce contrôle régulièrement avant chaque mise à jour. En lançant portupgrade -a, portupgrade mettra à jour tous les logiciels portés périmés installés sur votre système. Ajoutez l'indicateur si vous voulez être consulté pour confirmer chaque mise à jour individuelle. &prompt.root; portupgrade -ai Si vous désirez mettre à jour qu'une seule application bien particulière et non pas l'intégralité des applications, utilisez la commande: portupgrade nom_du_logiciel_porté. Ajoutez l'option si portupgrade doit mettre à jour en premier lieu tous les logiciels portés nécessaires à l'application. &prompt.root; portupgrade -R firefox Pour utiliser les versions pré-compilées plutôt que les logiciels portés pour l'installation, utilisez l'option . Avec cette option portupgrade cherche les répertoires locaux listé dans la variable PKG_PATH, ou récupère les paquetages à partir d'un site distant s'ils ne sont pas trouvés localement. Si les paquetages ne peuvent pas être trouvés localement ou récupérés à distance, portupgrade utilisera les logiciels portés. Pour éviter l'usage des logiciels portés, spécifiez l'option . &prompt.root; portupgrade -PR gnome2 Pour juste récupérer les sources (ou les paquetages, si l'option est utilisée) sans compiler ni installer quelque chose, utilisez . Pour plus d'informations consultez la page de manuel &man.portupgrade.1;. Mise à jour des logiciels portés à l'aide de Portmanager portmanager Portmanager est un autre utilitaire de mise à jour aisée des logiciels portés installés. Il est disponible via le logiciel portés sysutils/portmanager: &prompt.root; cd /usr/ports/sysutils/portmanager &prompt.root; make install clean Tous les logiciels portés installés peuvent être mis à jour en utilisant cette simple commande: &prompt.root; portmanager -u Vous pouvez ajouter l'option pour - être solicité pour une confirmation à + être sollicité pour une confirmation à chaque opération qu'effectuera Portmanager. Portmanager peut également être employé pour installer de nouveaux logiciels portés sur le système. Contrairement à la commande make install clean habituelle, il mettra à jour toutes les dépendances avant de compiler et d'installer le logiciel sélectionné. &prompt.root; portmanager x11/gnome2 Si des problèmes concernant les dépendances du logiciel porté sélectionné apparaissent, vous pouvez utiliser Portmanager pour toutes les recompiler dans le bon ordre. Cette recompilation achevée, le logiciel porté en question peut alors être à son tour recompilé. &prompt.root; portmanager graphics/gimp -f Pour plus d'information, consultez la page de manuel de Portmanager. Logiciels portés et espace disque logiciels portés espace disque A la longue, l'utilisation du catalogue des logiciels portés consommera rapidement votre espace disque. Après la compilation et l'installation de logiciels à partir du catalogue des logiciels portés, vous devriez toujours penser à supprimer les répertoires de travail temporaires, work, en utilisant la commande make clean. Vous pouvez balayer l'intégralité du catalogue des logiciels portés pour supprimer tous les répertoires temporaires oubliés précédement, employez alors la commande suivante: &prompt.root; portsclean -C Avec le temps, vous accumulerez beaucoup de fichiers sources obsolètes dans le répertoire distfiles. Vous pouvez les supprimer manuellement, ou vous pouvez utiliser la commande suivante pour effacer toutes les sources qui ne correspondent plus à des logiciels portés d'actualité: &prompt.root; portsclean -D L'utilitaire portsclean fait partie de la suite portupgrade. Pensez à supprimer les logiciels portés installés que vous n'utilisez plus. Un outil qui permet d'automatiser cette tâche est disponible via le logiciel porté sysutils/pkg_cutleaves. Activités de post-installation Après l'installation d'une nouvelle application vous voudrez normalement lire la documentation qui a pu être également installée, éditer les fichiers de configuration nécessaires, vérifier que l'application est lancée au démarrage (si c'est un daemon), et ainsi de suite. Les étapes que vous devez suivre pour configurer chaque application seront bien évidemment différentes. Cependant, si vous venez juste d'installer une nouvelle application et que vous vous demandez “Et maintenant?” les astuces suivantes pourront vous aider: Utilisez &man.pkg.info.1; pour déterminer quels fichiers ont été installés et à quel endroit. Par exemple, si vous venez juste d'installer FooPackage version 1.0.0, alors la commande &prompt.root; pkg_info -L foopackage-1.0.0 | less affichera tous les fichiers installés par le logiciel pré-compilé. Portez une attention toute particulière aux fichiers dans les répertoires man/, qui seront des pages de manuel, dans les répertoires etc/ , qui seront des fichiers de configuration, et dans doc/ qui seront de la documentation plus complète. Si vous n'êtes pas sûr de la version de l'application qui vient juste d'être installée, une commande comme &prompt.root; pkg_info | grep -i foopackage déterminera tous les logiciels pré-compilés installés qui ont foopackage dans leur nom. Remplacez foopackage dans votre ligne de commande par ce qui convient. Une fois que vous avez identifié où les pages de manuel de l'application ont été installées, consultez-les en utilisant la commande &man.man.1;. De même, jetez un coup d'oeil aux exemples de fichiers de configuration, et toute autre documentation additionnelle qui peut avoir été fournie. Si l'application a un site web, consultez-le pour de la documentation supplémentaire, des listes de questions fréquemment posées, etc. Si vous n'êtes pas sûr de l'adresse du site web, elle peut être affichée dans le résultat de la commande: &prompt.root; pkg_info foopackage-1.0.0 La ligne WWW:, si elle est présente, devrait donner l'URL du site web de l'application. Les logiciels qui doivent être lancés au démarrage (comme les serveurs Internet) installent généralement un exemple de procédure de lancement dans le répertoire /usr/local/etc/rc.d. Vous devriez contrôler si ce fichier est correct et l'éditer ou le renommer si nécessaire. Consultez la section Démarrer des services pour plus d'informations. Que faire avec les logiciels portés ne fonctionnant pas? Si vous rencontrez un portage qui ne fonctionne pas, il y a certaines choses que vous pouvez faire: Vérifiez s'il n'y a pas de correctif en attente pour le logiciel porté dans la base des rapports de bogue. Si c'est le cas, il se peut que vous puissiez utiliser le correctif proposé. Demandez l'aide du responsable du logiciel porté. Tapez la commande make maintainer ou lisez le fichier Makefile pour trouver l'adresse électronique du responsable. Pensez à préciser le nom et la version du logiciel porté (envoyer la ligne $FreeBSD: du fichier Makefile) et les messages d'erreurs quand vous écrivez au responsable. Certains logiciels portés ne sont pas maintenus par une personne mais par une liste de diffusion. Plusieurs, si ce n'est toutes, les adresses de ces listes ressemblent à freebsd-listname@FreeBSD.org. Veuillez prendre cela en compte en rédigeant vos questions. En particulier, les logiciels portés apparaissant comme maintenus par freebsd-ports@FreeBSD.org ne sont en fait maintenus par personne. Correctifs et aide, s'ils y en a, provient de la communauté qui est abonnée à cette liste de diffusion. Des volontaires supplémentaires sont toujours les bienvenus! Si vous n'obtenez pas de réponse, vous pouvez utiliser &man.send-pr.1; pour soumettre un rapport de bogue (consultez Ecrire des rapports de bogue pour &os;). Corrigez le problème! Le Manuel du développeur de logiciels portés inclut des informations détaillées sur l'infrastructure des logiciels portés vous permettant de corriger le portage éventuellement défectueux ou même soumettre le votre! Récupérez la version pré-compilée sur un serveur FTP proche de vous. Le catalogue de “référence” des logiciels pré-compilés se trouve sur ftp.FreeBSD.org dans le répertoire packages, mais vérifiez d'abord votre miroir local! Il y a globalement plus de chances que cela marche, que d'essayez de compiler à partir des sources, et cela va également beaucoup plus vite. Utilisez le programme &man.pkg.add.1; pour installer le logiciel pré-compilé sur votre système. diff --git a/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml index 7048dca12b..0aa64b3db2 100644 --- a/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml @@ -1,2055 +1,2055 @@ Jim Mock Restructuré, réorganisé, et mis à jour par PPP et SLIP &trans.a.fonvieille; Synopsis PPP SLIP &os; dispose de nombreuses façons pour relier un ordinateur à un autre. Pour mettre en place un réseau ou établir une connexion Internet par l'intermédiaire d'un modem, ou pour autoriser d'autres à le faire par votre intermédiaire, il est nécessaire d'utiliser PPP ou SLIP. Ce chapitre décrit la configuration en détail de ces services de communication par modem. Après la lecture de ce chapitre, vous saurez: Comment configurer PPP en mode utilisateur. Comment configurer PPP intégré au noyau. Comment configurer PPPoE (PPP sur Ethernet). Comment configurer PPPoA (PPP sur ATM). Comment configurer et utiliser un client et un serveur SLIP. PPP PPP en mode utilisateur PPP PPP intégré au noyau PPP sur Ethernet Avant de lire ce chapitre, vous devrez: Etre familier avec la terminologie réseau de base. Comprendre les bases, le but d'une connexion entrante par modem, et PPP et/ou SLIP. Vous pouvez vous demander quelle est la principale différence entre PPP en mode utilisateur et PPP intégré au noyau. La réponse est simple: PPP en mode utilisateur traite les données entrantes et sortantes en dehors du noyau. C'est coûteux en terme de copie de donnée entre le noyau et l'espace utilisateur mais permet l'implémentation de plus de fonctionnalités PPP. PPP en mode utilisateur utilise le périphérique tun pour communiquer avec le monde extérieur alors que PPP intégré au noyau utilise le périphérique ppp. Dans ce chapitre, le programme utilisateur PPP sera simplement appelé ppp, à moins qu'il faille explicitement faire la distinction entre lui et d'autres logiciels PPP comme pppd. Sauf indications contraires, toutes les commandes mentionnées dans ce chapitre doivent être exécutées par le super-utilisateur root. Using User PPP ** Traduction en Cours ** Gennady B. Sorokopud Contribution originale de Robert Huff Utiliser PPP intégré au noyau Configurer PPP intégré au noyau PPPPPP intégré au noyau Avant de configurer PPP sur votre machine, vérifiez que pppd est bien dans le répertoire /usr/sbin et que le répertoire /etc/ppp existe. La commande pppd peut fonctionner selon deux modes: Comme “client” — si vous désirez connecter votre machine au monde extérieur via une liaison PPP série ou un modem. PPPserveur Comme “serveur” — si votre machine est sur le réseau, et sert à y connecter d'autres ordinateurs avec PPP. Dans les deux cas, vous devrez renseigner un fichier d'options (/etc/ppp/options ou ~/.ppprc si vous avez plus d'un utilisateur sur votre machine utilisant PPP). Vous aurez également besoin d'un logiciel “modem/série” (de préférence comms/kermit), pour appeler et établir la connexion avec la machine distante. Trev Roydhouse Basé sur des informations fournies par Utiliser <command>pppd</command> comme client PPPclient Cisco Le fichier /etc/ppp/options suivant pourrait être utilisé pour se connecter à la liaison PPP d'un concentrateur Cisco: crtscts # contrôle de flux matériel modem # liaison par modem noipdefault # adresse IP affectée par le serveur PPP distant # si la machine distante ne vous donne pas d'adresse # IP lors de la négociation IPCP, retirez cette option passive # attendre les paquets LCP domain ppp.foo.com # mettre ici votre nom de domaine :<remote_ip> # mettre ici l'adresse IP de la machine PPP distante # elle servira à router des paquets via la liaison PPP # si vous n'avez pas précisé l'option noipdefault # changez cette ligne en <ip_locale>:<ip_distante> defaultroute # mettre cette ligne si vous voulez que le serveur PPP soit # votre routeur par défaut Pour se connecter: kermit modem Appelez la machine distante en utilisant kermit (ou un autre programme pour modem), puis entrez votre nom d'utilisateur et mot de passe (ou ce qu'il faut pour activer PPP sur la machine distante). Quittez kermit (sans raccrocher la ligne). Entrez la commande suivante: &prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200 Assurez-vous d'utiliser la vitesse et le nom de périphérique adéquats. Votre ordinateur est maintenant connecté via PPP. Si la connexion échoue, vous pouvez ajouter l'option au fichier /etc/ppp/options, et consulter les messages sur la console pour tracer le problème. La procédure /etc/ppp/pppup ci-dessous effectuera automatiquement ces trois étapes: #!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.dial pppd /dev/tty01 19200 kermit /etc/ppp/kermit.dial est une procédure kermit qui appelle et fournit toutes les informations d'authentification nécessaires à la machine distante (un exemple d'une telle procédure est donné à la fin de ce document). Utilisez la procédure /etc/ppp/pppdown suivante pour terminer la session PPP et vous déconnecter: #!/bin/sh pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ X${pid} != "X" ] ; then echo 'arrêt de pppd, PID=' ${pid} kill -TERM ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de kermit, PID=' ${pid} kill -9 ${pid} fi /sbin/ifconfig ppp0 down /sbin/ifconfig ppp0 delete kermit -y /etc/ppp/kermit.hup /etc/ppp/ppptest Vérifiez si pppd tourne toujours en lançant la procédure /usr/etc/ppp/ppptest, qui devrait ressembler à ceci: #!/bin/sh pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` if [ X${pid} != "X" ] ; then echo 'pppd actif: PID=' ${pid-NONE} else echo 'Pas de pppd en cours d'exécution.' fi set -x netstat -n -I ppp0 ifconfig ppp0 Pour raccrocher la ligne, exécutez /etc/ppp/kermit.hup, qui devrait contenir: set line /dev/tty01 ; mettre ici le périphérique pour votre modem set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 echo \13 exit Voici une autre méthode qui utilise chat au lieu de kermit. Les deux fichiers suivants suffisent à établir une connexion avec pppd. /etc/ppp/options: /dev/cuaa1 115200 crtscts # contrôle de flux matériel modem # liaison par modem connect "/usr/bin/chat -f /etc/ppp/login.chat.script" noipdefault # adresse IP affectée par le serveur PPP distant # si la machine distante ne vous donne pas d'adresse # IP lors de la négociation IPCP, retirer cette option passive # attendre les paquets LCP domain <your.domain> # mettre ici votre nom de domaine : # mettre ici l'adresse IP de la machine PPP distante # elle servira à router des paquets via la liaison PPP # si vous n'avez pas précisé l'option noipdefault # modifier cette ligne en <ip_locale>:<ip_distante> defaultroute # mettre cette ligne si vous voulez que le serveur PPP soit # votre routeur par défaut /etc/ppp/login.chat.script: Ce qui suit doit être tapé sur une seule ligne. ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<numéro_de_téléphone> CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <nom_d_utilisateur> TIMEOUT 5 sword: <mot_de_passe> Une fois que ces fichiers sont installés et correctement modifiés, tout ce dont vous avez besoin de faire est de lancer pppd, comme suit: &prompt.root; pppd Utiliser <command>pppd</command> comme serveur Le contenu du fichier /etc/ppp/options devrait être semblable à ce qui suit: crtscts # contrôle de flux matériel netmask 255.255.255.0 # masque de sous-réseau (facultatif) 192.114.208.20:192.114.208.165 # adresses IP des machines locales et distantes # l'adresse locale ne doit pas être la même que # celle que vous avez assignée à l'interface # Ethernet (ou autre) de la machine. # l'adresse IP de la machine distante est # l'adresse IP qui lui sera affectée domain ppp.foo.com # votre nom de domaine passive # attendre LCP modem # liaison modem La procédure /etc/ppp/pppserv ci-dessous demandera à pppd de se comporter comme un serveur: #!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de kermit, PID=' ${pid} kill -9 ${pid} fi # réinitialiser l'interface ppp ifconfig ppp0 down ifconfig ppp0 delete # activer le mode réponse automatique kermit -y /etc/ppp/kermit.ans # lancer ppp pppd /dev/tty01 19200 Utilisez cette procédure /etc/ppp/pppservdown pour arrêter le serveur: #!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'arrêt de kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.noans La procédure kermit ci-dessous (/etc/ppp/kermit.ans) activera ou désactivera le mode réponse automatique de votre modem: set line /dev/tty01 set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 inp 5 OK echo \13 out ATS0=1\13 ; remplacer cela par ATS0=0\13 si vous voulez désactiver ; le mode réponse automatique inp 5 OK echo \13 exit Une procédure nommée /etc/ppp/kermit.dial est utilisée pour appeler et s'authentifier sur la machine distante. Vous devrez l'adapter à vos besoins. Mettez-y votre nom d'utilisateur et votre mot de passe; vous devrez également modifier les entrées en fonctions des réponses que vous envoient votre modem et la machine distante. ; ; mettre ici la liaison série à laquelle est raccordé le modem: ; set line /dev/tty01 ; ; mettre ici la vitesse du modem: ; set speed 19200 set file type binary ; transfert 8 bits set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; puis SET CARRIER si nécessaire, set dial display on ; puis SET DIAL si nécessaire, set input echo on set input timeout proceed set input case ignore def \%x 0 ; compteur d'ouverture de session goto slhup :slcmd ; mettre le modem en mode commande echo Put the modem in command mode. clear ; vider le tampon d'entrée pause 1 output +++ ; séquence d'échappement Hayes input 1 OK\13\10 ; attendre OK if success goto slhup output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd ; si le modem ne répond pas OK, réessayer :slhup ; raccrocher la ligne clear ; vider le tampon d'entrée pause 1 echo Hanging up the phone. output ath0\13 ; commande Hayes pour raccrocher input 2 OK\13\10 if fail goto slcmd ; si pas de réponse OK, passer le modem en mode commande :sldial ; composer le numéro pause 1 echo Dialing. output atdt9,550311\13\10 ; mettre ici le numéro de téléphone assign \%x 0 ; mettre le compteur à zéro :look clear ; vider le tampon d'entrée increment \%x ; compter les secondes input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin ; ouverture de session assign \%x 0 ; mettre le compteur à zéro pause 1 echo Looking for login prompt. :slloop increment \%x ; compter les secondes clear ; vider le tampon d'entrée output \13 ; ; put your expected login prompt here: ; input 1 {Username: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 10 goto slloop ; essayer 10 fois d'obtenir une invite de session else goto slhup ; raccrocher et recommencer après 10 échecs :sluid ; ; mettre ici votre nom d'utilisateur: ; output nom-d-utilisateur-ppp\13 input 1 {Password: } ; ; mettre ici votre mot de passe: ; output mot-de-passe-ppp\13 input 1 {Entering SLIP mode.} echo quit :slnodial echo \7Pas de tonalité. Vérifiez votre ligne téléphonique!\7 exit 1 ; local variables: ; mode: csh ; comment-start: "; " ; comment-start-skip: "; " ; end: Jim Mock Contribution de (d'après http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) Utiliser PPP sur Ethernet (PPPoE) PPPsur Ethernet PPPoE PPP, sur Ethernet Cette section décrit comment configurer PPP sur Ethernet (PPPoE). Configuration du noyau Il n'est plus du tout nécessaire de configurer le noyau pour utiliser PPPoE. Si le support netgraph nécessaire n'est pas compilé dans le noyau, il sera chargé dynamiquement par ppp. Renseigner <filename>ppp.conf</filename> Voici un exemple de fichier ppp.conf opérationnel: default: set log Phase tun command # vous pouvez détailler plus les traces si vous le désirez set ifaddr 10.0.0.1/0 10.0.0.2/0 nom_du_fournisseur_d'accès: set device PPPoE:xl1 # remplacez xl1 par votre périphérique Ethernet set authname VOTRENOMDUTILISATEUR set authkey VOTREMOTDEPASSE set dial set login add default HISADDR Exécuter <application>ppp</application> En tant que root, vous pouvez lancer: &prompt.root; ppp -ddial nom_du_fournisseur_d'accès Lancer <application>ppp</application> au démarrage Ajoutez ce qui suit à votre fichier /etc/rc.conf: ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" # si vous voulez activer NAT pour votre réseau local, sinon NO ppp_profile="nom_du_fournisseur_d'accès" Utilisation d'une étiquette de service PPPoE Parfois il sera nécessaire d'utiliser une étiquette de service pour établir votre connexion. Les étiquettes de service sont employées pour faire la distinction entre différents serveurs PPPoE attachés à un réseau donné. Vous devez avoir l'information concernant l'étiquette de service dans la documentation fournie par votre fournisseur d'accès. Si vous ne pouvez la trouver, contactez le support technique de votre fournisseur d'accès Internet. En dernier ressort, vous pourrez essayer la méthode suggérée par le programme Roaring Penguin PPPoE qui peut-être trouvé dans le catalogue des logiciels portés. Gardez cependant à l'esprit, que cela peut déprogrammer votre modem et le rendre inutilisable, aussi réfléchissez à deux fois avant de le faire. Installez simplement le logiciel fourni avec le modem par votre fournisseur d'accès. Ensuite accédez au menu Système du programme. Le nom de votre profil devrait y figurer. C'est habituellement le nom du FAI. Le nom du profil (étiquette de service) sera utilisé dans l'entrée de configuration PPPoE dans le fichier ppp.conf dans la partie fournisseur d'accès de la commande set device (voir la page de manuel &man.ppp.8; pour plus de détails). Cela devrait ressembler à ceci: set device PPPoE:xl1:FAI N'oubliez pas de changer xl1 pour le périphérique correct correspondant à votre carte Ethernet. N'oubliez pas de changer FAI par le profil que vous avez déterminé ci-dessus. Pour une information supplémentaire, consultez: Cheaper Broadband with FreeBSD on DSL par Renaud Waldura. Nutzung von T-DSL und T-Online mit FreeBSD par Udo Erdelhoff (en allemand). PPPoE avec un modem ADSL &tm.3com; <trademark class="registered">HomeConnect</trademark> Dual Link Ce modem ne respecte pas la RFC 2516 (A Method for transmitting PPP over Ethernet (PPPoE), rédigée par L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, et R. Wheeler). Au lieu de cela des codes différents pour les types de paquets sont utilisés pour les frames Ethernet. Veuillez vous plaindre auprès de 3Com si vous pensez que le modem devrait respecter la spécification PPPoE. Afin de permettre à &os; de communiquer avec ce périphérique, un paramètre sysctl doit être configuré. Cela peut être effectué de manière automatique au démarrage en renseignant le fichier /etc/sysctl.conf: net.graph.nonstandard_pppoe=1 ou peut être paramétré pour prendre immédiatement effet avec la commande: &prompt.root; sysctl net.graph.nonstandard_pppoe=1 Malheureusement, parce que c'est un paramétrage concernant l'intégralité du système, il n'est pas possible de communiquer en même temps avec un client ou un serveur PPPoE normal et un modem ADSL &tm.3com; HomeConnect. Utiliser <application>PPP</application> sur ATM (PPPoA) PPPsur ATM PPPoA PPP, sur ATM Ce qui suit décrit comment configurer PPP sur ATM (PPPoA). PPPoA est très populaire parmi les fournisseurs d'accès DSL européens. Utiliser PPPoA avec le modem Alcatel &speedtouch; USB Le support PPPoA pour ce périphérique est fourni sous la forme d'un logiciel porté sous &os; car le “firmware” est distribué sous l'accord de licence d'Alcatel et ne peut être redistribué librement avec le système de base de &os;. Pour installer le logiciel, utilisez simplement le catalogue des logiciels portés. Installez le logiciel porté net/pppoa et suivez les instructions fournies avec. Comme de nombreux périphériques, le modem USB Alcatel &speedtouch; a besoin de charger un “firmware” à partir de l'ordinateur hôte pour opérer correctement. Il est possible d'automatiser ce processus sous &os; de manière à ce que ce transfert ait lieu dès que le périphérique est branché dans un port USB. L'information suivante peut être ajoutée au fichier /etc/usbd.conf pour autoriser ce transfert automatique de “firmware”. Ce fichier doit être édité en tant que super-utilisateur. device "Alcatel SpeedTouch USB" devname "ugen[0-9]+" vendor 0x06b9 product 0x4061 attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o" Pour activer le “daemon” USB, usbd, ajoutez la ligne suivante dans le fichier /etc/rc.conf: usbd_enable="YES" Il est également possible de paramétrer ppp pour se connecter au démarrage. Pour cela ajoutez les lignes suivantes au fichier /etc/rc.conf. Encore une fois, vous devrez être attaché sous l'utilisateur root pour effectuer ces ajouts. ppp_enable="YES" ppp_mode="ddial" ppp_profile="adsl" Pour que cela fonctionne correctement, vous devrez utiliser le fichier d'exemple ppp.conf qui est fourni avec le logiciel porté net/pppoa. Utiliser mpd Vous pouvez utiliser mpd pour vous connecter à différents services, en particulier aux services PPTP. Vous trouverez mpd dans le catalogue des logiciels portés, net/mpd. De nombreux modems ADSL demandent à ce qu'un tunnel PPTP soit créé entre le modem et l'ordinateur, le &speedtouch; Home d'Alcatel en fait partie. Vous devez tout d'abord installer le logiciel porté, ensuite vous pouvez configurer mpd selon vos besoins et les paramètres propres au fournisseur d'accès. Le logiciel porté place un ensemble de fichiers de configuration très bien commentés dans le répertoire PREFIX/etc/mpd/. Notez qu'ici PREFIX représente le répertoire dans lequel les logiciels portés sont installés, par défaut le répertoire /usr/local/. Un guide complet pour la configuration de mpd est disponible dans le format HTML, une fois que le logiciel a été installé. Il se trouve dans le répertoire PREFIX/share/doc/mpd/. Voici un exemple de configuration pour se connecter à un service ADSL à l'aide de mpd. La configuration est séparée en deux fichiers, le premier est mpd.conf: default: load adsl adsl: new -i ng0 adsl adsl set bundle authname username set bundle password password set bundle disable multilink set link no pap acfcomp protocomp set link disable chap set link accept chap set link keep-alive 30 10 set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set iface route default set iface disable on-demand set iface enable proxy-arp set iface idle 0 open Le nom d'utilisateur utilisé pour vous identifier auprès de votre FAI. Le mot de passe utilisé pour vous identifier auprès de votre FAI. Le fichier mpd.links contient les informations concernant la liaison, ou les liaisons, que vous souhaitez établir. En exemple de fichier mpd.links accompagnant l'exemple précédent est donné ci-dessous: adsl: set link type pptp set pptp mode active set pptp enable originate outcall set pptp self 10.0.0.1 set pptp peer 10.0.0.138 L'adresse IP de la machine &os; à partir de laquelle vous utiliserez mpd. L'adresse IP de votre modem ADSL. Pour le &speedtouch; Home d'Alcatel cette adresse est par défaut 10.0.0.138. Il est possible d'initialiser aisément une connexion en tapant la commande suivante en tant que root: &prompt.root; mpd -b adsl Vous pouvez voir quel est l'état de votre connexion à l'aide de la commande suivante: &prompt.user; ifconfig ng0 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff L'utilisation de mpd est la méthode recommandée de connexion à un service ADSL sous &os;. Utiliser pptpclient Il est également possible d'utiliser &os; pour se connecter à d'autres service PPPoA en utilisant net/pptpclient. Pour utiliser net/pptpclient pour vous connecter à un service DSL, installez le logiciel porté ou le paquetage correspondant et éditez votre fichier /etc/ppp/ppp.conf. Vous aurez besoin des droits de super-utilisateur pour effectuer ces deux opérations. Un exemple de fichier ppp.conf est donné plus bas. Pour plus d'information sur les options du fichier ppp.conf, consultez la page de manuel de ppp, &man.ppp.8;. adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname username set authkey password set ifaddr 0 0 add default HISADDR Le nom d'utilisateur de votre compte chez le fournisseur d'accès DSL. Le mot de passe de votre compte. Etant donné que vous devez mettre le mot de passe de votre compte en clair dans le fichier ppp.conf, vous devez vous assurer que personne d'autre ne puisse lire le contenu de ce fichier. La série de commandes suivante s'assurera que ce fichier n'est lisible que par root. Référez-vous aux pages de manuel de &man.chmod.1; et &man.chown.8; pour plus d'informations. &prompt.root; chown root:wheel /etc/ppp/ppp.conf &prompt.root; chmod 600 /etc/ppp/ppp.conf Cela créera un tunnel pour une session PPP vers votre routeur DSL. Les modems DSL Ethernet ont une adresse IP pour le réseau local pré-configurée à laquelle vous vous connectez. Dans le cas du modem &speedtouch; Home d'Alcatel cette adresse est 10.0.0.138. La documentation de votre routeur devrait mentionner quelle adresse utilise votre périphérique. Pour créer le tunnel et démarrer une session PPP exécutez la commande suivante: &prompt.root; pptp address adsl Vous pourrez ajouter un “et commercial” (“&”) à la fin de la commande précédente car sinon pptp ne vous rendra pas la main. Un périphérique virtuel de tunnel (tun) sera créé pour la communication entre les processus pptp et ppp. Une fois retourné à l'invite, ou que le processus pptp a confirmé la connexion, vous pouvez examiner le tunnel de cette manière: &prompt.user; ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918 Si vous n'êtes pas en mesure de vous connecter, vérifiez la configuration de votre routeur qui est généralement accessible par telnet ou avec un navigateur web. Si le problème persiste, vous devrez examiner la sortie de la commande pptp et le contenu du fichier de trace de ppp, /var/log/ppp.log à la recherche d'indices. Satoshi Asami Contribution originale de Guy Helmer Avec la participation de Piero Serini Utiliser SLIP SLIP Configurer un client SLIP SLIPclient Ce qui suit décrit une manière de configurer une machine &os; pour utiliser SLIP sur un réseau où les noms de machine sont statiques. Si le nom de machine est affecté dynamiquement (votre adresse change à chaque connexion), vous devrez probablement utiliser une méthode plus sophistiquée. Tout d'abord, déterminez sur quel port série votre modem est connecté. De nombreuses personnes utilisent un lien symbolique, comme /dev/modem, pour pointer vers le nom réel du périphérique, /dev/cuaaN (ou /dev/cuadN sous &os; 6.X). Ceci vous permet de faire abstraction du véritable nom du périphérique même si vous déplacez le modem vers un autre port. Cela évite le côté pénible de devoir modifier un certain nombre de fichiers dans le répertoire /etc et les fichiers .kermrc pour l'ensemble du système! /dev/cuaa0 (ou /dev/cuad0 sous &os; 6.X) représente COM1, cuaa1 (ou /dev/cuad1) COM2, etc. Assurez-vous d'avoir dans votre fichier de configuration du noyau ce qui suit: device sl Sous &os; 4.X, utilisez à la place la ligne suivante: pseudo-device sl 1 Cette configuration fait partie du noyau GENERIC, aussi cela ne devrait pas être un problème à moins que vous ne l'ayez effacée. Ce que vous n'aurez à faire qu'une seule fois Ajoutez votre machine, la passerelle et les serveurs de noms de domaines à votre fichier /etc/hosts. Le notre ressemble à ceci: 127.0.0.1 localhost loghost 136.152.64.181 water.CS.Example.EDU water.CS water 136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway 128.32.136.9 ns1.Example.EDU ns1 128.32.136.12 ns2.Example.EDU ns2 Assurez-vous que hosts apparaît avant bind dans votre fichier /etc/host.conf sous les versions de &os; antérieures à 5.0. Depuis &os; 5.0, le système utilise à la place le fichier /etc/nsswitch.conf, vérifiez que files est avant dns dans la ligne hosts de ce fichier. Sans ces paramètres, il peut se passer des choses bizarres. Editez le fichier /etc/rc.conf. Définissez votre nom de machine en éditant la ligne: hostname="myname.my.domain" Le nom Internet complet de la machine doit être utilisé ici. Ajoutez sl0 à la liste des interfaces réseau en modifiant la ligne: network_interfaces="lo0" en: network_interfaces="lo0 sl0" Définissez les paramètres de configuration de sl0 en ajoutant une ligne: ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up" route par défaut Indiquez la passerelle par défaut en modifiant la ligne: defaultrouter="NO" en: defaultrouter="slip-gateway" Créez un fichier /etc/resolv.conf qui contient: domain CS.Example.EDU nameserver 128.32.136.9 nameserver 128.32.136.12 serveurs de noms de domaines nom de domaine Comme vous pouvez le voir, ceci définit les serveurs de noms de domaines. Bien entendu, les noms de domaines et les adresses dépendront de votre environnement. Donnez des mots de passe pour les utilisateurs root et toor (et à tous les autres comptes qui n'auraient pas de mot de passe). Redémarrez votre machine et vérifiez qu'elle a bien le nom voulu. Etablir une connexion SLIP SLIP se connecter avec Téléphonez, tapez slip à l'invite, puis entrez votre nom de machine et votre mot de passe. Ce que vous devez entrer dépend de votre environnement. Si vous utilisez Kermit, vous pouvez essayer une procédure comme celle-ci: # configuration kermit set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # The next macro will dial up and login define slip dial 643-9600, input 10 =>, if failure stop, - output slip\x0d, input 10 Username:, if failure stop, - output silvia\x0d, input 10 Password:, if failure stop, - output ***\x0d, echo \x0aCONNECTED\x0a Vous devez, bien évidemment, remplacer le nom - d'utilisateur et le mot de passe par les votres. + d'utilisateur et le mot de passe par les votre. Après cela vous pouvez alors entrer simplement slip à l'invite de Kermit pour vous connecter. Conserver votre mot de passe en clair dans un fichier quelconque est en général une mauvaise idée. Faites-le à vos risques et périls. Laissez ensuite Kermit tel quel (vous pouvez le mettre en arrière-plan avec Ctrl z ) et en tant que root, tapez: &prompt.root; slattach -h -c -s 115200 /dev/modem Si vous êtes en mesure d'envoyer un ping vers des machines situées de l'autre côté du routeur, c'est que vous êtes connecté! Si cela ne fonctionne pas, vous pouvez essayer l'option au lieu de en argument de slattach. Comment couper la connexion Effectuez ceci: &prompt.root; kill -INT `cat /var/run/slattach.modem.pid` pour tuer slattach. Gardez à l'esprit que vous devez avoir les droits du super-utilisateur pour faire cela. Revenez ensuite sous kermit (en tapant fg si l'avez mis en tâche de fond) et quittez-le (q). La page de manuel de &man.slattach.8; dit que vous devez employer la commande ifconfig sl0 down pour indiquer que l'interface n'est plus active, mais cela ne change apparemment rien (les diagnostics donnés par la commande ifconfig sl0 restent identiques). Il arrive que parfois que votre modem refuse de raccrocher. Dans ce cas, relancez kermit et quittez-le de nouveau. Cela fonctionne en général à la seconde tentative. Dépannage Si cela ne fonctionne pas, n'hésitez pas à contacter la liste de diffusion &a.net.name;. Voici les problèmes que certains ont rencontré jusqu'ici: Ne pas utiliser l'option ou avec slattach (Cela ne devrait pas poser de problème, mais des utilisateurs ont signalé que l'utilisation de cet indicateur a résolu leur problème). Utiliser au lieu de (avec certaines polices de caractères, il est parfois difficile de faire la différence). Essayez ifconfig sl0 pour connaître la configuration de votre interface. Vous obtiendrez, par exemple: &prompt.root; ifconfig sl0 sl0: flags=10<POINTOPOINT> inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 Si vous obtenez le message d'erreur no route to host lors de l'utilisation de &man.ping.8;, il se peut qu'il y ait un problème avec votre table de routage. Vous pouvez utiliser la commande netstat -r pour afficher les routes actives: &prompt.root; netstat -r Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: (root node) (root node) Route Tree for Protocol Family inet: (root node) => default inr-3.Example.EDU UG 8 224515 sl0 - - localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438 inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 (root node) Les exemples précédents proviennent d'un système relativement chargé. La valeurs sur votre système varieront en fonction de l'activité réseau. Configurer un serveur SLIP SLIP serveur Ce document donne des indications pour la mise en oeuvre d'un serveur SLIP sur un système &os;, ce qui signifie généralement configurer votre système pour ouvrir automatiquement une connexion à l'ouverture d'une session depuis un client SLIP distant. Prérequis réseau TCP/IP Cette section est très technique, il vous faut donc quelques connaissances de base. On supposera que vous connaissez le protocole réseau TCP/IP et, en particulier, l'adressage des réseaux et des noeuds, les masques de sous-réseau, les sous-réseaux, le routage et les protocoles de routage tels que RIP. Ce sont les concepts que vous devez maîtriser pour configurer les services SLIP sur un serveur de connexions, et si ce n'est pas le cas, veuillez lire TCP/IP Network Administration de Craig Hunt chez O'Reilly & Associates, Inc. (ISBN 0-937175-82-X), ou les ouvrages de Douglas Comer sur le protocole TCP/IP. modem On suppose également que vous avez déjà installé vos modems et configuré les fichiers systèmes appropriés pour permettre l'ouverture de session via vos modems. Si vous ne l'avez pas encore fait reportez-vous à la pour des informations sur la configuration des connexions entrantes. Vous pouvez aussi consulter les pages de manuel de &man.sio.4; pour plus d'information sur le pilote du port série et &man.ttys.5;, &man.gettytab.5;, &man.getty.8;, & et &man.init.8; en ce qui concerne la configuration du système pour qu'il autorise les connexions en provenance de modems, et peut-être la page de manuel &man.stty.1; pour des informations sur le paramétrage des ports série (comme clocal pour les interfaces série directement connectées). Rapide vue d'ensemble Une configuration typique d'utilisation de &os; comme serveur SLIP fonctionne de la manière suivante: un utilisateur SLIP appelle votre serveur SLIP &os; et ouvre une session sous un identifiant utilisateur SLIP particulier qui lance /usr/sbin/sliplogin comme interpréteur de commandes. Le programme sliplogin consulte le fichier /etc/sliphome/slip.hosts à la recherche d'une ligne correspondant à cet utilisateur particulier, et s'il la trouve, connecte la ligne série à une interface SLIP disponible et lance ensuite la procédure /etc/sliphome/slip.login pour configurer cette interface SLIP. Un exemple d'ouverture de session sur un serveur SLIP Par exemple, si Shelmerg était un identifiant utilisateur SLIP, l'entrée pour Shelmerg ressemblerait à ceci: Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin Quand Shelmerg ouvre une session, sliplogin consulte /etc/sliphome/slip.hosts à la recherche d'une ligne correspondant à l'identifiant de l'utilisateur correspondant; par exemple, il peut y avoir dans le fichier /etc/sliphome/slip.hosts la ligne: Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp sliplogin trouvera alors cette ligne, affectera la ligne série à l'interface SLIP suivante,et ensuite exécutera /etc/sliphome/slip.login avec les arguments suivants: /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp Si tous se passe bien, /etc/sliphome/slip.login exécutera un ifconfig sur l'interface SLIP que s'est attribué sliplogin (l'interface SLIP 0, dans l'exemple ci-dessus, qui est le premier paramètre passé à slip.login) pour définir l'adresse IP locale (dc-slip), l'adresse IP de la machine distante (sl-helmer), le masque de sous-réseau de l'interface SLIP (0xfffffc00), et tout autre indicateur supplémentaire (autocomp). Si quelque chose se passe mal, sliplogin fournit en général des messages d'information via la fonctionnalité de trace du démon syslogd, qui les enregistre habituellement dans le fichier /var/log/messages (reportez-vous au pages de manuel de &man.syslogd.8; et &man.syslog.conf.5; et consultez peut-être aussi le fichier /etc/syslog.conf pour voir ce que trace syslogd et où il enregistre ces messages.). Configuration du noyau noyau configuration SLIP Le noyau par défaut de &os; (GENERIC) fourni le support SLIP (&man.sl.4;); dans le cas d'un noyau personnalisé, vous devez ajouter la ligne suivante à votre fichier de configuration du noyau: device sl Sous &os; 4.X, utilisez la ligne suivante: pseudo-device sl 2 Le chiffre en fin de ligne représente le nombre maximum de connexions SLIP qui peuvent cohexister. Depuis &os; 5.0, le pilote &man.sl.4; est capable d'auto-clonage. Par défaut, votre machine &os; ne transmettra pas les paquets. Si vous désirez que votre serveur SLIP &os; agisse en routeur, vous devez éditer le fichier /etc/rc.conf et positionner la variable gateway_enable à . Vous devrez ensuite redémarrer pour que les nouveaux paramètres prennent effet. Veuillez vous référer à la sur la configuration du noyau pour de l'aide sur ce sujet. Configuration de sliplogin Comme indiqué plus haut, il y a trois fichiers dans le répertoire /etc/sliphome qui servent à la configuration de /usr/sbin/sliplogin (voyez &man.sliplogin.8; pour avoir la page de manuel de sliplogin): slip.hosts, définit les utilisateurs SLIP et les adresses IP qui leur sont associées, slip.login, qui ne fait en général que configurer l'interface SLIP, et (facultatif) slip.logout, qui effectue le travail inverse de slip.login quand la connexion série est terminée. Configuration de <filename>slip.hosts</filename> /etc/sliphome/slip.hosts contient des lignes avec au moins quatre champs séparés par des espaces: L'identifiant (ID) d'utilisateur SLIP; L'adresse locale (locale au serveur SLIP) de la liaison SLIP; L'adresse de l'autre extrémité de la liaison SLIP; Le masque de sous-réseau. Les adresses locales et distantes peuvent être des noms de machines (qui seront convertis en adresses IP via /etc/hosts ou par le service de noms de domaines, en fonction de ce que contient le fichier /etc/nsswitch.conf, ou /etc/host.conf si vous utilisez &os; 4.X), et le masque de sous-réseau peut être un nom qui sera converti en consultant le fichier /etc/networks. Par exemple, /etc/sliphome/slip.hosts contiendra: # # login local-addr remote-addr mask opt1 opt2 # (normal,compress,noicmp) # Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp La ligne se termine par une ou plusieurs options: — pas de compression des en-têtes; — compression des en-têtes; — compression des en-têtes si la machine distante l'autorise; — interdit les paquets ICMP (de sorte que les paquets ping seront ignorés au lieu de consommer votre bande passante). SLIP réseau TCP/IP Le choix des adresses pour les deux extrémités des liaisons SLIP dépend du fait que vous leur dédiez un sous-réseau TCP/IP ou que vous comptiez utiliser un proxy ARP sur votre serveur SLIP (ce n'est pas un vrai proxy ARP, mais c'est la terminologie que nous utiliserons dans ce document pour le désigner). Si vous n'êtes pas sûr de la méthode à choisir ou de la façon d'assigner les adresses IP, référez-vous aux ouvrages sur le TCP/IP mentionnés à section sur les prérequis () et/ou consultez l'administrateur de votre réseau IP. Si vous comptez utiliser un sous-réseau IP séparé pour vos clients SLIP, vous devrez définir l'adresse de sous-réseau à partir de votre réseau IP et attribuer à chacun de vos clients SLIP une adresse IP sur ce sous-réseau. Ensuite, vous devrez probablement configurer sur votre routeur IP le plus proche une route statique vers votre sous-réseau SLIP via votre serveur SLIP. Ethernet Sinon, si vous avez l'intention d'utiliser la méthode du proxy ARP, vous devrez assigner à vos clients SLIP des adresses IP en provenance du sous-réseau Ethernet de votre serveur SLIP, et vous devrez également adapter vos procédures /etc/sliphome/slip.login et /etc/sliphome/slip.logout pour qu'elles utilisent &man.arp.8; pour gérer les entrées proxy ARP dans la table ARP de votre serveur SLIP. Configuration de <filename>slip.login</filename> Le fichier /etc/sliphome/slip.login ressemble généralement à ceci: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # procédure générique d'ouverture de session pour # une liaison SLIP. sliplogin l'appelle avec les paramètres: # 1 2 3 4 5 6 7-n # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 Ce fichier slip.login ne fait qu'exécuter ifconfig sur l'interface SLIP appropriée avec comme paramètres les adresses locales et distantes et le masque de sous-réseau de l'interface SLIP. Si vous avez choisi d'utiliser la méthode du proxy ARP (au lieu d'affecter un sous-réseau distinct à vos clients SLIP), votre fichier /etc/sliphome/slip.login devra ressembler à ceci: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # procédure générique d'ouverture de session pour # une liaison SLIP. sliplogin l'appelle avec les paramètres: # 1 2 3 4 5 6 7-n # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # répondre aux requêtes ARP concernant le client SLIP avec notre # adresse Ethernet /usr/sbin/arp -s $5 00:11:22:33:44:55 pub La ligne supplémentaire dans ce fichier slip.login, arp -s $5 00:11:22:33:44:55 pub, crée une entrée ARP dans la table ARP du serveur SLIP. Cette entrée ARP fait que le serveur SLIP répond avec sa propre adresse MAC lorsqu'un autre noeud IP du réseau Ethernet demande à dialoguer avec le client SLIP qui possède cette adresse IP. Ethernet adresse MAC Dans l'exemple donné ci-dessus, remplacez l'adresse MAC Ethernet (00:11:22:33:44:55) avec l'adresse MAC de la carte Ethernet de votre système, ou sinon votre proxy ARP ne fonctionnera jamais! Vous pouvez déterminer l'adresse MAC de votre serveur SLIP en examinant le résultat de la commande netstat -i; la seconde ligne doit ressembler à ce qui suit: ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 Cela indique que l'adresse MAC Ethernet de ce système est 00:02:c1:28:5f:4a — les points dans les adresses MAC que donne netstat -i doivent être remplacés par des : et il faut ajouter un zéro devant chaque valeur hexadécimale donnée sur un seul digit pour obtenir des adresses dans le format requis par &man.arp.8;; consultez la page de manuel d'&man.arp.8; pour avoir des informations complètes sur ces conventions. Quand vous créez les fichiers /etc/sliphome/slip.login et /etc/sliphome/slip.logout, le bit exécutable (i.e., chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout) doit être positionné, ou sinon sliplogin sera incapable d'exécuter la procédure. Configuration de <filename>slip.logout</filename> /etc/sliphome/slip.logout n'est pas strictement indispensable (à moins que vous n'implémentiez un proxy ARP), mais si vous décidez de la créer, voici un exemple de procédure slip.logout élémentaire: #!/bin/sh - # # slip.logout # # procédure générique de fermeture de session pour # une liaison SLIP. sliplogin l'appelle avec les paramètres: # 1 2 3 4 5 6 7-n # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels # /sbin/ifconfig sl$1 down Si vous utilisez la méthode proxy ARP, vous voudrez que /etc/sliphome/slip.logout supprime l'entrée ARP pour le client SLIP: #!/bin/sh - # # @(#)slip.logout # # procédure générique de fermeture de session pour # une liaison SLIP. sliplogin l'appelle avec les paramètres: # 1 2 3 4 5 6 7-n # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels # /sbin/ifconfig sl$1 down # Cesser de répondre aux requêtes ARP concernant le client SLIP /usr/sbin/arp -d $5 La commande arp -d $5 supprime l'entrée ARP que la procédure slip.login pour le proxy ARP a ajouté quand le client SLIP a ouvert la session. Il n'est pas inutile de répéter: assurez-vous que le bit exécutable de la procédure /etc/sliphome/slip.logout a été positionné après que vous l'ayez créée (i.e., chmod 755 /etc/sliphome/slip.logout). A propos du routage SLIP routage Si vous n'utilisez pas proxy ARP pour router les paquets entre vos clients SLIP et le reste de votre réseau (et peut-être l'Internet), vous devrez probablement ajouter des routes statiques vers le(s) routeur(s) par défaut le(s) plus proche(s) pour router le sous-réseau de vos clients SLIP via votre serveur SLIP. Routes statiques routes statiques Ajouter des routes statiques vers vos routeurs les plus proches peut être problématique (voire impossible si vous n'avez pas les autorisations pour...). Si vous avez un réseau avec plusieurs routeurs, certains d'entre eux, tels que les Cisco et les Proteon, devront non seulement être configurés pour la route statique vers le sous-réseau SLIP, mais devront aussi savoir quelles routes statiques ils doivent annoncer aux autres routeurs, donc quelques compétences, un peu de dépannage ou de bidouille pourront être nécessaire pour que vos routes statiques fonctionnent. Utiliser <application>&gated;</application> &gated; &gated; est désormais un logiciel propriétaire et les sources ne seront donc plus disponibles (plus d'information sur le site Web de &gated;). Cette section existe uniquement pour des raisons de compatibilité pour ceux qui utilisent encore une ancienne version. Une alternative aux maux de tête que provoquent les routes statiques est d'installer &gated; sur votre serveur SLIP &os; et de le configurer pour qu'il utilise les protocoles de routage appropriés (RIP/OSPF/BGP/EGP) pour annoncer aux autres routeurs votre sous-réseau SLIP. Vous aurez besoin de créer un fichier /etc/gated.conf pour configurer &gated;; voici un exemple, semblable à celui que l'auteur a utilisé sur un serveur SLIP &os;: # # fichier de configuration de gated dc.dsu.edu; pour la version # 3.5alpha5 # diffusion des informations RIP pour xxx.xxx.yy via l'interface # Ethernet "ed" # # # options de trace # traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; rip yes { interface sl noripout noripin ; interface ed ripin ripout version 1 ; traceoptions route ; } ; # # Activer un certain nombre d'informations de trace sur l'interface # au noyau: kernel { traceoptions remnants request routes info interface ; } ; # # Propager la route vers xxx.xxx.yy via l'Ethernet interface et RIP # export proto rip interface ed { proto direct { xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections } ; } ; # # Accepter les routes de RIP via les interfaces Ethernet "ed" import proto rip interface ed { all ; } ; RIP L'exemple de fichier gated.conf ci-dessus diffuse l'information de routage concernant le sous-réseau SLIP xxx.xxx.yy via RIP sur l'interface Ethernet; si vous utilisez un pilote de périphérique Ethernet différent du pilote ed, vous devrez modifier en conséquence les références à l'interface ed. Ce fichier d'exemple active également les journaux sur /var/tmp/gated.output pour pouvoir déboguer le fonctionnement de &gated;; vous pouvez désactiver ces options de trace si &gated; fonctionne correctement pour vous. Vous devrez remplacer xxx.xxx.yy par l'adresse réseau de votre propre sous-réseau SLIP (assurez-vous de remplacer également le masque de sous-réseau dans la clause proto direct). Une fois que vous avez installé et configuré &gated; sur votre système, vous devrez indiquer aux procédures de démarrage de &os; de lancer &gated; à la place de routed. La manière la plus simple de faire cela est de positionner les variables router et router_flags dans le fichier /etc/rc.conf. Veuillez consulter la page de manuel de &gated; pour des informations sur les paramètres en ligne de commande. diff --git a/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml index abbe073fc2..d2e77d2785 100755 --- a/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml @@ -1,2557 +1,2557 @@ Matthew Dillon Une grande partie de ce chapitre provient de la page de manuel security(7) écrite par Sécurité sécurité &trans.a.fonvieille; Synopsis Ce chapitre sera une introduction aux concepts de base de la sécurité système, à certaines règles empiriques, et à des sujets avancés sous &os;. De nombreux sujets abordés ici peuvent être appliqués à la sécurité système et Internet en général. L'Internet n'est plus un endroit “amical” dans lequel chacun désire être votre gentil voisin. Sécuriser votre système est impératif pour protéger vos données, la propriété intellectuelle, votre temps, et bien plus des mains des “hackers” et équivalents. &os; fournit un ensemble d'utilitaires et de mécanismes pour assurer l'intégrité et la sécurité de votre système et votre réseau. Après la lecture de ce chapitre, vous connaîtrez: Les concepts de base de la sécurité système en ce qui concerne &os;. Les différents mécanismes de chiffrement disponibles sous &os;, comme DES et MD5. Comment mettre en place une authentification par mot de passe non réutilisable. Comment configurer Kerberos, un autre système d'authentification. Comment créer des coupe-feux en utilisant IPFW. Comment configurer IPsec. Comment configurer et utiliser OpenSSH, la version de SSH implémentée sous &os;. Comment configurer et charger les modules d'extension de contrôle d'accès en utilisant l'ensemble TrustedBSD MAC. Ce que sont les ACLs et comment les utiliser. Avant de lire ce chapitre, vous devrez: Comprendre les concepts de base de &os; et d'Internet. Introduction ** Traduction en Cours ** Securing FreeBSD ** Traduction en Cours ** Bill Swingle En partie réécrit et mis à jour par DES, MD5, et chiffrement sécurité chiffrement chiffrement DES MD5 Chaque utilisateur d'un système &unix; possède un mot de passe associé à son compte. Il semble évident que ces mots de passe ne doivent être connus que de l'utilisateur et du système d'exploitation. Afin de conserver ces mots de passe secrets, ils sont chiffrés avec ce que l'on appelle un “hachage irréversible”, ce qui signifie que le mot de passe peut être aisément chiffré mais pas déchiffré. En d'autres mots, ce que nous vous disions précédemment n'est même pas vrai: le système d'exploitation lui-même ne connaît pas vraiment le mot de passe. Il ne connaît que la forme chiffrée du mot de passe. La seule manière d'obtenir le mot de passe en clair est d'effectuer une recherche par force brute de tous les mots de passe possibles. Malheureusement, la seule méthode sécurisée pour chiffrer les mots de passe quand &unix; a vu le jour était basée sur DES, le “Data Encryption Standard” (standard de chiffrement des données). C'était un problème mineur pour les utilisateurs résidants aux Etats-Unis, mais puisque le code source de DES ne pouvait être exporté en dehors des Etats-Unis, &os; dû trouver un moyen de respecter la législation américaine et de rester compatible avec les autres systèmes &unix; qui utilisaient encore DES. La solution fut de séparer les bibliothèques de chiffrement de façon à ce que les utilisateurs américains puissent installer les bibliothèques DES et utiliser DES, mais que les utilisateurs internationaux disposent d'une méthode de chiffrement non restreinte à l'exportation. C'est comment &os; est venu à utiliser MD5 comme méthode de chiffrement par défaut. MD5 est reconnu comme étant plus sure que DES, l'installation de DES est proposée principalement pour des raisons de compatibilité. Identifier votre mécanisme de chiffrement Avant FreeBSD 4.4 libcrypt.a était un lien symbolique pointant sur la bibliothèque utilisée pour le chiffrement. FreeBSD 4.4 modifia libcrypt.a pour fournir une bibliothèque de hachage pour l'authentification des mots de passe configurable. Actuellement la bibliothèque supporte les fonctions de hachage DES, MD5 et Blowfish. Par défaut &os; utilise MD5 pour chiffrer les mots de passe. Il est relativement facile d'identifier quelle méthode de chiffrement &os; utilise. Examiner les mots de passe chiffrés dans le fichier /etc/master.passwd est une méthode. Les mots de passe MD5 sont plus longs que les mots de passe DES, et commencent par les caractères $1$. Les mots de passe débutant par $2$ sont chiffrés suivant la méthode Blowfish. Les mots de passe DES n'ont pas de caractéristique particulière, mais sont plus courts que les mots de passe MD5 et utilisent un alphabet de 64 caractères qui ne contient pas le caractère $, aussi une chaîne relativement courte qui ne commence pas par un dollar a donc de très fortes chances d'être un mot de passe DES. Le format utilisé par les nouveaux mots de passe est contrôlé par la capacité de classe de session passwd_format dans /etc/login.conf, qui prend comme valeur des, md5 ou blf. Voir la page de manuel &man.login.conf.5; pour plus d'information sur les capacités de classe de session. Mots de passe non réutilisables mots de passe non réutilisables sécurité mots de passe non réutilisables S/Key est un système de mots de passe non réutilisables basé sur une fonction de hachage irréversible. &os; utilise le hachage MD4 pour des raisons de compatibilité mais d'autres système utilisent MD5 et DES-MAC. S/Key fait partie du système de base de &os; depuis la version 1.1.5 et est aussi utilisé sur un nombre toujours plus important d'autres systèmes d'exploitation. S/Key est une marque déposée de Bell Communications Research, Inc. Depuis la version 5.0 de &os;, S/Key a été remplacé par la fonction équivalente OPIE (“One-time Passwords In Everything” — Mots de passe non réutilisables dans toutes les applications). OPIE utilise le hachage MD5 par défaut. Il existe trois types de mots de passe dont nous parlerons dans ce qui suit. Le premier est votre mot de passe &unix; habituel ou mot de passe Kerberos; nous appellerons “mot de passe &unix;“. Le deuxième type est le mot de passe généré par les programmes S/Key key ou OPIE &man.opiekey.1; et reconnu par les programmes keyinit ou &man.opiepasswd.1; et l'invite de session; nous appellerons ceci un “mot de passe non réutilisable”. Le dernier type de mot de passe est le mot de passe secret que vous donnez aux programmes key/opiekey (et parfois aux programmes keyinit/opiepasswd) qui l'utilisent pour générer des mots de passe non réutilisable; nous l'appellerons “mot de passe secret” ou tout simplement “mot de passe”. Le mot de passe secret n'a rien à voir avec votre mot de passe &unix;; ils peuvent être identique, mais c'est déconseillé. Les mots de passe secret S/Key et OPIE ne sont pas limités à 8 caractères comme les anciens mots de passe &unix;Sous &os; le mot de passe standard peut avoir une longueur de 128 caractères maximum., ils peuvent avoir la longueur que vous désirez. Des mots de passe de six ou sept mots de long sont relativement communs. La plupart du temps, le système S/Key ou OPIE fonctionne de façon complètement indépendante du système de mot de passe &unix;. En plus du mot de passe, deux autres types de données sont importantes pour S/Key et OPIE. L'une d'elles est connue sous le nom de “germe” (“seed”) ou “clé”, formé de deux lettres et cinq chiffres. L'autre est ce que l'on appelle le “compteur d'itérations”, un nombre compris entre 1 et 100. S/Key génère un mot de passe non réutilisable en concaténant le germe et le mot de passe secret, puis en appliquant la fonction de hachage MD4/MD5 autant de fois qu'indiqué par le compteur d'itérations, et en convertissant le résultat en six courts mots anglais. Ces six mots anglais constituent votre mot de passe non réutilisable. Le système d'authentification (principalement PAM) conserve une trace du dernier mot de passe non réutilisable utilisé, et l'utilisateur est authentifié si la valeur de hachage du mot de passe fourni par l'utilisateur est la même que celle du mot de passe précédent. Comme le hachage utilisé est irréversible, il est impossible de générer de mot de passe non réutilisable si on a surpris un de ceux qui a été utilisé avec succès; le compteur d'itérations est décrémenté après chaque ouverture de session réussie, de sorte que l'utilisateur et le programme d'ouverture de session restent en phase. Quand le compteur d'itération passe à 1, S/Key et OPIE doivent être réinitialisés. Il y a trois programmes impliqués dans chacun des systèmes que nous aborderons plus bas. Les programmes key et opiekey ont pour paramètres un compteur d'itérations, un germe, et un mot de passe secret, et génère un mot de passe non réutilisable ou une liste de mots de passe non réutilisable. Les programmes keyinit et opiepasswd sont utilisés pour initialiser respectivement S/Key et OPIE, et pour modifier les mots de passe, les compteurs d'itérations, ou les germes; ils prennent pour paramètres soit un mot de passe secret, soit un compteur d'itérations, soit un germe, et un mot de passe non réutilisable. Le programme keyinfo ou opieinfo consulte le fichier d'identification correspondant (/etc/skeykeys ou /etc/opiekeys) et imprime la valeur du compteur d'itérations et le germe de l'utilisateur qui l'a invoqué. Nous décrirons quatre sortes d'opérations. La première est l'utilisation du programme keyinit ou opiepasswd sur une connexion sécurisée pour initialiser les mots de passe non réutilisables pour la première fois, ou pour modifier votre mot de passe ou votre germe. La seconde opération est l'emploi des programmes keyinit ou opiepasswd sur une connexion non sécurisée, en conjonction avec key ou opiekey sur une connexion sécurisée, pour faire la même chose. La troisième est l'utilisation de key/opiekey pour ouvrir une session sur une connexion non sécurisée. La quatrième est l'emploi de key ou opiekey pour générer un certain nombre de clés qui peuvent être notées ou imprimées et emportées avec vous quand vous allez quelque part ou il n'y a aucune connexion sécurisée. Initialisation depuis une connexion sécurisée Pour initialiser S/Key pour la première fois, changer votre mot de passe, ou changer votre germe quand vous êtes attaché sous votre compte par l'intermédiaire d'une connexion sécurisée (e.g., sur la console d'une machine ou via ssh), utilisez la commande keyinit sans paramètres: &prompt.user; keyinit Adding unfurl: Reminder - Only use this method if you are directly connected. If you are using telnet or rlogin exit with no password and use keyinit -s. Enter secret password: Again secret password: ID unfurl s/key is 99 to17757 DEFY CLUB PRO NASH LACE SOFT Pour OPIE, opiepasswd est utilisé à la place: &prompt.user; opiepasswd -c [grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED A l'invite Enter new secret pass phrase: ou Enter secret password:, vous devez entrer un mot de passe ou une phrase. Rappelez-vous que ce n'est pas le mot de passe que vous utiliserez pour ouvrir une session, mais celui utilisé pour générer vos clés non réutilisables. La ligne commençant par “ID” liste les paramètres de votre instance: votre nom d'utilisateur, la valeur de votre compteur d'itérations et votre germe. Quand vous ouvrirez une session, le système aura mémorisé ces paramètres et vous les redonnera, vous n'avez donc pas besoin de les retenir. La dernière ligne donne le mot de passe non réutilisable correspondant à ces paramètres et à votre mot de passe secret; si vous devez vous reconnectez immédiatement, c'est ce mot de passe que vous utiliseriez. Initialisation depuis une connexion non sécurisée Pour initialiser ou changer votre mot de passe secret par l'intermédiaire d'une connexion non sécurisée, il faudra avoir déjà une connexion sécurisée sur une machine où vous pouvez exécuter key ou opiekey; ce peut être depuis une icone sur le bureau d'un Macintosh ou depuis la ligne de commande d'une machine sûre. Il vous faudra également donner une valeur au compteur d'itération (100 est probablement une bonne valeur), et indiquer un germe ou utiliser la valeur aléatoire générée par le programme. Sur la connexion non sécurisée (vers la machine que vous initialisez), employez la commande keyinit -s: &prompt.user; keyinit -s Updating unfurl: Old key: to17758 Reminder you need the 6 English words from the key command. Enter sequence count from 1 to 9999: 100 Enter new key [default to17759]: s/key 100 to 17759 s/key access password: s/key access password:CURE MIKE BANE HIM RACY GORE Pour OPIE, vous devez utiliser opiepasswd: &prompt.user; opiepasswd Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY Pour accepter le germe par défaut (que le programme keyinit appelle key, ce qui prête à confusion), appuyez sur Entrée. Ensuite avant d'entrer un mot de passe d'accès, passez sur votre connexion sécurisée et donnez lui les mêmes paramètres: &prompt.user; key 100 to17759 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: <secret password> CURE MIKE BANE HIM RACY GORE Ou pour OPIE: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Retournez maintenant sur votre connexion non sécurisée, et copiez le mot de passe non réutilisable généré par le programme adapté. Générer un unique mot de passe non réutilisable Une fois que vous avez initialisé S/Key ou OPIE, lorsque que vous ouvrez une session, une invite de ce type apparaîtra: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> s/key 97 fw13894 Password: Ou pour OPIE: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> otp-md5 498 gr4269 ext Password: Les invites S/Key et OPIE disposent d'une fonction utile (qui n'est pas illustrée ici): si vous appuyez sur la touche Entrée lorsque l'on vous demande votre mot de passe, le programme active l'écho au terminal, de sorte que vous voyez ce que vous êtes en train de taper. Ceci est très utile si vous essayez de taper un mot de passe à la main, à partir d'un résultat imprimé par exemple. MS-DOS Windows MacOS A ce moment vous devez générer votre mot de passe non réutilisable pour répondre à cette invite de session. Cela doit être effectué sur une machine de confiance sur laquelle vous pouvez exécuter key ou opiekey (il y a des versions de ces programmes pour DOS, Windows et MacOS). Ces programmes ont besoin du compteur d'itérations et du germe comme paramètres. Vous pouvez les copier-coller de l'invite de session de la machine sur laquelle vous voulez ouvrir une session. Sur le système sûr: &prompt.user; key 97 fw13894 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: WELD LIP ACTS ENDS ME HAAG Pour OPIE: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Maintenant que vous disposez de votre mot de passe non réutilisable vous pouvez continuer et vous connecter: login: <username> s/key 97 fw13894 Password: <return to enable echo> s/key 97 fw13894 Password [echo on]: WELD LIP ACTS ENDS ME HAAG Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... Générer de multiples mots de passe non réutilisables Il faut parfois se rendre en des endroits où vous n'avez pas accès à une machine de confiance ou à une connexion sécurisée. Dans ce cas, vous pouvez utiliser la commande key ou opiekey pour générer plusieurs mots de passe non réutilisables que vous pouvez imprimer et transporter avec vous. Par exemple: &prompt.user; key -n 5 30 zz99999 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: <secret password> 26: SODA RUDE LEA LIND BUDD SILT 27: JILT SPY DUTY GLOW COWL ROT 28: THEM OW COLA RUNT BONG SCOT 29: COT MASH BARR BRIM NAN FLAG 30: CAN KNEE CAST NAME FOLK BILK Ou pour OPIE: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI L'option demande cinq clés en séquence, l'option indique quel doit être le rang de la dernière itération. Notez que les clés sont imprimées dans l'ordre inverse de celui où elles seront éventuellement utilisées. Si vous êtes vraiment paranoïaque, vous pouvez les recopier à la main, sinon vous pouvez les copier-coller vers la commande lpr. Remarquez que chaque ligne liste le compteur d'itération et le mot de passe non réutilisable; vous trouverez peut-être utile de rayer les mots de passe au fur et à mesure de leur utilisation. Restreindre l'utilisation des mots de passe &unix; S/Key peut placer des restrictions sur l'utilisation des mots de passe &unix; en fonction des noms de machine, d'utilisateur, de la ligne utilisée par le terminal ou de l'adresse IP de la machine connectée à distance. Ces restrictions peuvent être trouvées dans le fichier de configuration /etc/skey.access. La page de manuel &man.skey.access.5; donne de plus amples informations sur le format de ce fichier et elle détaille également certains avertissements relatifs à la sécurité qu'il faut lire avant de se fier à ce fichier pour sa sécurité. S'il n'y a pas de fichier /etc/skey.access (ce qui est le cas par défaut sur les systèmes &os; 4.X), tous les utilisateurs pourront se servir de mots de passe &unix;. Si le fichier existe, alors tous les utilisateurs devront passer par S/Key, à moins qu'ils ne soient explicitement autorisés à ne pas le faire par des instructions du fichier /etc/skey.access. Dans tous les cas l'usage des mots de passe &unix; est autorisé sur la console. Voici un exemple de configuration du fichier skey.access qui illustre les trois types d'instructions les plus courantes: permit internet 192.168.0.0 255.255.0.0 permit user fnord permit port ttyd0 La première ligne (permit internet) autorise les utilisateurs dont l'adresse IP (ce qui rend vulnérable en cas d'usurpation) appartient au sous-réseau spécifié à employer les mots de passe &unix;. Cela ne doit pas être considéré comme une mesure de sécurité, mais plutôt comme un moyen de rappeler aux utilisateurs autorisés qu'ils sont sur un réseau non sécurisé et doivent utiliser S/Key pour s'authentifier. La seconde ligne (permit user) autorise l'utilisateur désigné, dans notre cas fnord, à employer n'importe quand les mots de passe &unix;. En général, il faut se servir de cette possibilité si les personnes soit n'ont pas moyen d'utiliser le programme key, s'ils ont par exemple des terminaux passifs, soit s'ils sont définitivement réfractaires au système. La troisième ligne (permit port) autorise tous les utilisateurs d'un terminal sur une liaison particulière à utiliser les mots de passe &unix;; cela devrait être employé pour les connexions téléphoniques. OPIE peut restreindre l'usage des mots de passe &unix; sur la base de l'adresse IP lors de l'ouverture d'une session comme peut le faire S/Key. Le fichier impliqué est /etc/opieaccess, qui est présent par défaut sous &os; 5.0 et versions suivantes. Veuillez consulter la page de manuel &man.opieaccess.5; pour plus d'information sur ce fichier et certaines considérations sur la sécurité dont vous devez être au courant en l'utilisant. Voici un exemple de fichier opieaccess: permit 192.168.0.0 255.255.0.0 Cette ligne autorise les utilisateurs dont l'adresse IP (ce qui rend vulnérable en cas d'usurpation) appartient au sous-réseau spécifié à employer les mots de passe &unix; à tout moment. Si aucune règle du fichier opieaccess ne correspond, le comportement par défaut est de refuser toute ouverture de session non-OPIE. Mark Murray Contribution de Mark Dapoz Basée sur une contribution de Kerberos Kerberos Kerberos est un protocole réseau supplémentaire qui permet aux utilisateurs de s'authentifier par l'intermédiaire d'un serveur sécurisé. Des services comme l'ouverture de session et la copie à distance, la copie sécurisée de fichiers entre systèmes et autres fonctionnalités à haut risque deviennent ainsi considérablement plus sûrs et contrôlables. Les instructions qui suivent peuvent être utilisées comme guide d'installation de Kerberos dans la version distribuée pour &os;. Vous devriez cependant vous référer aux pages de manuel correspondantes pour avoir une description complète. Installation de Kerberos MIT Kerberos installation Kerberos est un composant optionnel de &os;. La manière la plus simple d'installer ce logiciel est de sélectionner la distribution krb4 ou krb5 dans sysinstall lors de l'installation de &os;. Cela installera les implémentations “eBones” (KerberosIV) ou “Heimdal” (Kerberos5) de Kerberos. Ces implémentations sont distribuées car elles sont développées en dehors des USA ou du Canada et étaient par conséquent disponibles aux utilisateurs hors de ces pays durant l'ère restrictive du contrôle des exportations de code de chiffrement à partir des USA. Alternativement, l'implémentation du MIT de Kerberos est disponible dans le catalogue des logiciels portés sous security/krb5. Créer la base de données initiale Cela se fait uniquement sur le serveur Kerberos. Vérifiez tout d'abord qu'il ne traîne pas d'anciennes bases Kerberos. Allez dans le répertoire /etc/kerberosIV et assurez-vous qu'il ne contient que les fichiers suivants: &prompt.root; cd /etc/kerberosIV &prompt.root; ls README krb.conf krb.realms S'il y a d'autres fichiers (comme principal.* ou master_key), utilisez alors la commande kdb_destroy pour supprimer l'ancienne base de données Kerberos, ou si Kerberos ne tourne pas, effacez simplement les fichiers supplémentaires. Vous devez maintenant éditer les fichiers krb.conf et krb.realms pour définir votre domaine Kerberos. Dans notre cas, le domaine sera EXAMPLE.COM et le serveur grunt.example.com. Nous éditons ou créons le fichier krb.conf: &prompt.root; cat krb.conf EXAMPLE.COM EXAMPLE.COM grunt.example.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov Dans notre cas les autres domaines n'ont pas besoin d'être mentionnés. Ils ne sont là que pour montrer comment une machine peut avoir connaissance de plusieurs domaines. Pour plus de simplicité, vous pouvez ne pas les inclure. La première ligne indique pour quel domaine cette machine agit. Les autre lignes définissent les autres domaines/machines. Le premier élément sur une ligne est le domaine, le second le nom de la machine qui est le “centre de distribution de clés” de ce domaine. Les mots admin server qui suivent un nom de machine signifient que la machine est aussi serveur d'administration de la base de données. Pour plus d'explication sur cette terminologie, consultez les pages de manuel de Kerberos. Nous devons maintenant ajouter grunt.example.com au domaine EXAMPLE.COM et ajouter une entrée pour mettre toutes les machines du domaine DNS .example.com dans le domaine Kerberos EXAMPLE.COM. Le fichier krb.realms aura alors l'allure suivante: &prompt.root; cat krb.realms grunt.example.com EXAMPLE.COM .example.com EXAMPLE.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU Encore une fois, les autres domaines n'ont pas besoin d'être mentionnés. Ils ne sont là que pour montrer comment une machine peut avoir connaissance de plusieurs domaines. Pour plus de simplicité, vous pouvez ne pas les inclure. La première ligne assigne un système particulier au domaine désigné. Les lignes restantes montrent comment affecter par défaut les systèmes d'un sous-domaine DNS particulier à un domaine Kerberos donné. Nous sommes maintenant prêt pour la création de la base de données. Il n'y a à le faire que sur le serveur Kerberos (ou Centre de Distribution de Clés). Cela se fait avec la commande kdb_init: &prompt.root; kdb_init Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter Kerberos master key: Nous devons maintenant sauvegarder la clé pour que les serveurs sur la machine locale puissent la lire. Utilisons la commande kstash pour faire cela: &prompt.root; kstash Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Le mot de passe maître chiffré est sauvegardé dans /etc/kerberosIV/master_key. Installer les services Il faut ajouter deux entrées (“principals”) à la base de données pour chaque système qui sera sécurisé par Kerberos. Ce sont kpasswd et rcmd. Ces deux entrées sont définies pour chaque système, chacune de leurs instances se voyant attribuer le nom du système. Ces “daemons”, kpasswd et rcmd permettent aux autres systèmes de changer les mots de passe Kerberos et d'exécuter des commandes comme &man.rcp.1;, &man.rlogin.1;, et &man.rsh.1;. Ajoutons donc maintenant ces entrées: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: passwd Instance: grunt <Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- entrez RANDOM ici Verifying password New Password: <---- enter RANDOM here Random password [y] ? y Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: rcmd Instance: grunt <Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- entrez RANDOM ici Verifying password New Password: <---- entrez RANDOM ici Random password [y] ? Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- ne rien entrer ici permet de quitter le programme Créer le fichier des services Il faut maintenant extraire les instances qui définissent les services sur chaque machine. Pour cela on utilise la commande ext_srvtab. Cela créera un fichier qui doit être copié ou déplacé par un moyen sûr dans le répertoire /etc/kerberosIV de chaque client Kerberos. Ce fichier doit être présent sur chaque serveur et client, et est crucial au bon fonctionnement de Kerberos. &prompt.root; ext_srvtab grunt Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Generating 'grunt-new-srvtab'.... Cette commande ne génère qu'un fichier temporaire qui doit être renommé en srvtab pour que tous les serveurs puissent y accéder. Utilisez la commande &man.mv.1; pour l'installer sur le système d'origine: &prompt.root; mv grunt-new-srvtab srvtab Si le fichier est destiné à un client, et que le réseau n'est pas considéré comme sûr, alors copiez le fichier client-new-srvtab sur un support amovible et transportez-le par un moyen physiquement sûr. Assurez-vous de le renommer en srvtab dans le répertoire /etc/kerberosIV du client, et mettez-le bien en mode 600: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab Renseigner la base de données Nous devons maintenant créer des entrées utilisateurs dans la base de données. Tout d'abord créons une entrée pour l'utilisateur jane. Utilisez la commande kdb_edit pour cela: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: <Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 New Password: <---- entrez un mot de passe sûr ici Verifying password New Password: <---- réentrez le mot de passe sûr là Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- ne rien entrer ici permet de quitter le programme Tester l'ensemble Il faut tout d'abord démarrer les “daemons” Kerberos. Notez que si vous avez correctement modifié votre fichier /etc/rc.conf, cela se fera automatiquement au redémarrage du système. Ceci n'est nécessaire que sur le serveur Kerberos. Les clients Kerberos récupéreront automatiquement les informations dont ils ont besoin via leur répertoire /etc/kerberosIV. &prompt.root; kerberos & Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EXAMPLE.COM &prompt.root; kadmind -n & KADM Server KADM0.0A initializing Please do not use 'kill -9' to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE! Nous pouvons maintenant utiliser la commande kinit pour obtenir un “ticket d'entrée” pour l'utilisateur jane que nous avons créé plus haut: &prompt.user; kinit jane MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane" Password: Essayons de lister les informations associées avec la commande klist pour voir si nous avons vraiment tout ce qu'il faut: &prompt.user; klist Ticket file: /tmp/tkt245 Principal: jane@EXAMPLE.COM Issued Expires Principal Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM Essayons maintenant de modifier le mot de passe en utilisant la commande &man.passwd.1; pour vérifier si le “daemon” kpasswd est autorisé à accéder à la base de données Kerberos: &prompt.user; passwd realm EXAMPLE.COM Old password for jane: New Password for jane: Verifying password New Password for jane: Password changed. Autoriser l'utilisation de la commande <command>su</command> Kerberos permet d'attribuer à chaque utilisateur qui a besoin des droits du super-utilisateur son propre mot de passe &man.su.1;. Nous pouvons créer un identifiant qui est autorisé à utiliser &man.su.1; pour devenir root. Cela se fait en associant une instance root un identificateur (“principal”) de base. En utilisant la commande kdb_edit nous pouvons créer l'entrée jane.root dans la base de données Kerberos: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: root <Not found>, Create [y] ? y Principal: jane, Instance: root, kdc_key_ver: 1 New Password: <---- entrez un mot de passe SUR ici Verifying password New Password: <---- réentrez le mot de passe ici Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Laissez une valeur faible! Attributes [ 0 ] ? Edit O.K. Principal name: <---- ne rien entrer ici permet de quitter le programme Vérifions maintenant les caractéristiques associées pour voir si cela fonctionne: &prompt.root; kinit jane.root MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane.root" Password: Nous devons maintenant ajouter l'utilisateur au fichier .klogin de root: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Essayons maintenant la commande &man.su.1;: &prompt.user; su Password: et voyons quelles sont nos caractéristiques: &prompt.root; klist Ticket file: /tmp/tkt_root_245 Principal: jane.root@EXAMPLE.COM Issued Expires Principal May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM Utiliser d'autres commandes Dans l'exemple précédent, nous avons créé une entrée principale nommée jane avec une instance root. Cette entrée reposait sur un utilisateur ayant le même nom que l'entrée principale, c'est ce que fait par défaut Kerberos; une <entrée_principale>.<instance> de la forme <nom_d_utilisateur>.root autorisera <nom_d_utilisateur>. à utiliser &man.su.1; pour devenir root si le fichier .klogin du répertoire personnel de l'utilisateur root est correctement renseigné: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM De même, si un utilisateur a dans son répertoire des lignes de la forme: &prompt.user; cat ~/.klogin jane@EXAMPLE.COM jack@EXAMPLE.COM Cela permet à quiconque dans le domaine EXAMPLE.COM s'étant authentifié en tant que jane ou jack (via kinit, voir plus haut) d'accéder avec &man.rlogin.1; au compte de jane ou à ses fichiers sur le système (grunt) via &man.rlogin.1;, &man.rsh.1; ou &man.rcp.1;. Par exemple, jane ouvre maintenant une session sur un autre système en utilisant Kerberos: &prompt.user; kinit MIT Project Athena (grunt.example.com) Password: &prompt.user; rlogin grunt Last login: Mon May 1 21:14:47 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Ou bien jack ouvre une session sur le compte de jane sur la même machine (jane ayant modifié son fichier .klogin comme décrit plus haut, et la personne an charge de Kerberos ayant défini une entrée principale jack sans instance): &prompt.user; kinit &prompt.user; rlogin grunt -l jane MIT Project Athena (grunt.example.com) Password: Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Firewalls ** Traduction en Cours ** OpenSSL sécurité OpenSSL OpenSSL Depuis FreeBSD 4.0, la bibliothèque OpenSSL fait partie du système de base. OpenSSL fournit une bibliothèque de chiffrement d'usage général, ainsi que les protocoles de sécurité réseau Secure Sockets Layer v2/v3 (SSLv2/SSLv3) et Transport Layer Security v1 (TLSv1). Cependant, un des algorithmes (précisément IDEA) inclus dans OpenSSL est protégé par des brevets aux USA et ailleurs, et n'est pas utilisable sans - restriction. IDEA est inclu dans la version &os; d'OpenSSL, + restriction. IDEA est inclus dans la version &os; d'OpenSSL, mais n'est pas compilé par défaut. Si vous désirez l'utiliser, et que vous acceptez les termes de la licence, activez l'option MAKE_IDEA dans le fichier /etc/make.conf et recompilez vos sources en utilisant la commande make world. Aujourd'hui, l'algorithme RSA est libre d'utilisation aux USA et ailleurs. Il fut protégé par un brevet dans le passé. OpenSSL installation Installation du code source OpenSSL fait partie des catalogues CVSup src-crypto et src-secure. Reportez-vous à la section Se procurer FreeBSD pour savoir comment se procurer et mettre à jour le code source de &os;. Yoshinobu Inoue Contribution de IPsec IPsec sécurité IPsec Caractères de terminaison Dans tous les exemples de cette section, et d'autres sections, vous remarquerez qu'il y aura un “^D” à la fin de certains exemples. Cela signifie qu'il faut maintenir la touche Ctrl enfoncée et appuyer sur la touche D. Un autre caractère couramment utilisé est “^C”, qui signifie de maintenir enfoncé la touche Ctrl et d'appuyer sur C. Pour d'autres documents détaillant l'implémentation d'IPsec, jetez un oeil à et . Le mécanisme IPsec fournit des communications sécurisées sur couche IP ou à travers les sockets. Cette section explique comment l'utiliser. Pour des détails concernant l'implémentation d'IPsec, reportez-vous au Manuel du développeur. L'implémentation actuelle d'IPsec supporte le mode transport et le mode tunnel. Cependant, il y a des restrictions au mode tunnel. fournit des exemples plus exhaustifs. Soyez informé que pour utiliser cette fonctionnalité, vous devez avoir les options suivantes présentes dans votre fichier de configuration du noyau: options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/IPSEC) Exemple en mode transport avec IPv4 Configurons une association de sécurité pour déployer un canal sécurisé entre la Machine A (10.2.3.4) et la Machine B (10.6.7.8). Notre exemple est un peu compliqué. De A vers B, nous n'utilisons que l'ancien AH. De B vers A, le nouvel AH et le nouvel ESP sont combinés. Nous devons maintenant choisir les algorithmes correspondant à “AH”/“nouvel AH”/“ESP”/ “nouvel ESP”. Reportez-vous à la page de manuel &man.setkey.8; pour connaître les noms des algorithmes. Nous utiliserons MD5 pour AH, new-HMAC-SHA1 pour le nouvel AH, et new-DES-expIV avec 8 octets IV pour le nouvel ESP. La longueur de la clé dépend de chaque algorithme. Par exemple, elle doit être égale à 16 octets pour MD5, 20 pour new-HMAC-SHA1, et 8 pour new-DES-expIV. Nous choisissons maintenant “MYSECRETMYSECRET”, “KAMEKAMEKAMEKAMEKAME”, “PASSWORD”, respectivement. Définissons maintenant le SPI (Security Parameter Index) pour chaque protocole. Remarquez qu'il nous faut 3 SPIs pour ce canal sécurisé puisqu'il y aura trois entêtes de sécurité (une de la Machine A vers la Machine B et deux de la Machine B vers la Machine A). Notez également que les SPIs doivent être supérieurs à 256. Nous choisirions 1000, 2000 et 3000 respectivement. (1) Machine A ------> Machine B (1)PROTO=AH ALG=MD5(RFC1826) KEY=MYSECRETMYSECRET SPI=1000 (2.1) Machine A <------ Machine B <------ (2.2) (2.1) PROTO=AH ALG=new-HMAC-SHA1(new AH) KEY=KAMEKAMEKAMEKAMEKAME SPI=2000 (2.2) PROTO=ESP ALG=new-DES-expIV(new ESP) IV length = 8 KEY=PASSWORD SPI=3000 Maintenant, définissons l'association de sécurité. Exécutons &man.setkey.8; sur la Machine A et la Machine B: &prompt.root; setkey -c add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ; add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ; add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ; ^D En fait, la communication IPsec n'aura pas lieu avant que les entrées de politique de sécurité ne soient définies. Dans notre cas, il faut le faire sur les deux machines. Côté A: &prompt.root; setkey -c spdadd 10.2.3.4 10.6.7.8 any -P out ipsec ah/transport/10.2.3.4-10.6.7.8/require ; ^D Côté B: &prompt.root; setkey -c spdadd 10.6.7.8 10.2.3.4 any -P out ipsec esp/transport/10.6.7.8-10.2.3.4/require ; spdadd 10.6.7.8 10.2.3.4 any -P out ipsec ah/transport/10.6.7.8-10.2.3.4/require ; ^D Machine A --------------------------> Machine E 10.2.3.4 10.6.7.8 | | ========= ancien AH keyed-md5 ========> <======== nouveau AH hmac-sha1 ======== <======== nouveau ESP des-cbc ========= Exemple en mode transport avec IPv6 Un autre exemple utilisant IPv6. Le mode de transport ESP est recommandé pour le port TCP numéro 110 entre la Machine-A et la Machine-B. ============ ESP ============ | | Machine-A Machine-B fec0::10 -------------------- fec0::11 L'algorithme de chiffrement est blowfish-cbc avec la clé “kamekame”, et l'algorithme d'authentification est hmac-sha1 avec la clé “this is the test key”. Configuration de la Machine-A: &prompt.root; setkey -c <<EOF spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec esp/transport/fec0::10-fec0::11/use ; spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec esp/transport/fec0::11-fec0::10/use ; add fec0::10 fec0::11 esp 0x10001 -m transport -E blowfish-cbc "kamekame" -A hmac-sha1 "this is the test key" ; add fec0::11 fec0::10 esp 0x10002 -m transport -E blowfish-cbc "kamekame" -A hmac-sha1 "this is the test key" ; EOF et de la Machine-B: &prompt.root; setkey -c <<EOF spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec esp/transport/fec0::11-fec0::10/use ; spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec esp/transport/fec0::10-fec0::11/use ; add fec0::10 fec0::11 esp 0x10001 -m transport -E blowfish-cbc "kamekame" -A hmac-sha1 "this is the test key" ; add fec0::11 fec0::10 esp 0x10002 -m transport -E blowfish-cbc "kamekame" -A hmac-sha1 "this is the test key" ; EOF Remarquez la direction de SP. Exemple en mode tunnel avec IPv4 Mode tunnel entre deux passerelles de sécurité Le protocole de sécurité est l'ancien mode tunnel AH, i.e. spécifié par la RFC1826, avec keyed-md5 comme algorithme d'authentification et “this is the test” comme clé. ======= AH ======= | | Réseau-A Passerelle-A Passerelle-B Réseau-B 10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24 Configuration de la Passerelle-A: &prompt.root; setkey -c <<EOF spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec ah/tunnel/172.16.0.1-172.16.0.2/require ; spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec ah/tunnel/172.16.0.2-172.16.0.1/require ; add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any -A keyed-md5 "this is the test" ; add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any -A keyed-md5 "this is the test" ; EOF Si le numéro de port n'est pas précisé comme ci-dessus, alors [any] est utilisé. -m définit le mode de SA à utiliser. -m any signifie tout mode de protocole de sécurité. Vous pouvez utiliser cette SA à la fois en mode transport et en mode tunnel. et de la Passerelle-B: &prompt.root; setkey -c <<EOF spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec ah/tunnel/172.16.0.2-172.16.0.1/require ; spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec ah/tunnel/172.16.0.1-172.16.0.2/require ; add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any -A keyed-md5 "this is the test" ; add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any -A keyed-md5 "this is the test" ; EOF Etablir une SA regroupée entre deux passerelles de sécurité On désire le mode de transport AH et le mode tunnel ESP entre Passerelle-A et Passerelle-B. Dans ce cas, on applique d'abord le mode tunnel ESP puis le mode de transport AH. ========== AH ========= | ======= ESP ===== | | | | | Réseau-A Passerelle-A Passerelle-B Réseau-B fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64 Exemple en mode tunnel avec IPv6 L'algorithme de chiffrement est 3des-cbc, et l'algorithme d'authentification est hmac-sha1. L'algorithme d'authentification pour AH est hmac-md5. Configuration de la Passerelle-A: &prompt.root; setkey -c <<EOF spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ; spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ; add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel -E 3des-cbc "kamekame12341234kame1234" -A hmac-sha1 "this is the test key" ; add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport -A hmac-md5 "this is the test" ; add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel -E 3des-cbc "kamekame12341234kame1234" -A hmac-sha1 "this is the test key" ; add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport -A hmac-md5 "this is the test" ; EOF Etablir des SAs avec les différentes extrémités On désire un mode tunnel ESP entre Machine-A et Passerelle-A. L'algorithme de chiffrement est cast128-cbc, et l'algorithme d'authentification pour ESP est hmac-sha1. Le mode de transport ESP est recommandé entre Machine-A et Machine-B. L'algorithme de chiffrement est rc5-cbc, et l'algorithme d'authentification pour ESP est hmac-md5. ================== ESP ================= | ======= ESP ======= | | | | | Machine-A Passerelle-A Machine-B fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2 Configuration de la Machine-A: &prompt.root; setkey -c <<EOF spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ; spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ; add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001 -m transport -E cast128-cbc "12341234" -A hmac-sha1 "this is the test key" ; add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002 -E rc5-cbc "kamekame" -A hmac-md5 "this is the test" ; add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003 -m transport -E cast128-cbc "12341234" -A hmac-sha1 "this is the test key" ; add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004 -E rc5-cbc "kamekame" -A hmac-md5 "this is the test" ; EOF Chern Lee Contribution de OpenSSH OpenSSH sécurité OpenSSH OpenSSH est un ensemble d'outils de connexion réseau utilisés pour accéder à des machines distantes de façon sécurisé. Ils peuvent être utilisé comme remplaçants directs de rlogin, rsh, rcp, et telnet. De plus, OpenSSH peut sécuriser n'importe quelle connexion TCP/IP via un tunnel. OpenSSH chiffre tout le trafic de façon à déjouer les écoutes réseau, les prises de contrôle de connexion, et aux attaques au niveau du réseau. OpenSSH est maintenu par le projet OpenBSD, et est basé sur SSH v1.2.12 avec tous les récentes corrections et mises à jour. Il est compatible avec les protocoles SSH 1 et 2. OpenSSH est présent dans le système de base depuis &os; 4.0. Les avantages à utiliser OpenSSH Normalement, quand on utilise &man.telnet.1; ou &man.rlogin.1;, les données sont envoyées sur le réseau en clair, sous forme non chiffrée. Des “renifleurs de paquets” placés n'importe où entre le client et le serveur peuvent prendre connaissance de votre nom d'utilisateur, de votre mot de passe et des données transmises lors de votre session. OpenSSH offre une variété de méthodes d'authentification et de chiffrage pour éviter ce genre de problème. Activer sshd OpenSSH activation Assurez-vous d'ajouter la ligne suivante à votre fichier rc.conf: sshd_enable="YES" Cela chargera le “daemon” ssh à l'initialisation suivante du système. Alternativement, vous pouvez tout simplement exécuter le “daemon” sshd directement en tapant sshd sur la ligne de commande. Client SSH OpenSSH client L'utilitaire &man.ssh.1; fonctionne de la même manière que &man.rlogin.1;: &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes Host 'example.com' added to the list of known hosts. user@example.com's password: ******* L'ouverture de session se poursuit comme si elle avait lancée par &man.rlogin.1; ou &man.telnet.1;. Le système SSH utilise un système d'empreinte de clé pour vérifier l'authenticité du serveur quand le client se connecte. L'utilisateur est invité à entrer yes uniquement à la première connexion. Lors des futures connexions, l'empreinte de la clé sauvegardé est vérifiée. Le client SSH vous avertira si l'empreinte sauvée diffère de l'empreinte reçue lors de futures tentatives de connexion. Les empreintes sont sauvées dans le fichier ~/.ssh/known_hosts, ou ~/.ssh/known_hosts2 pour les empreintes du protocole SSH 2. Par défaut, les serveurs OpenSSH sont configurés pour accepter les connexions dans les deux protocoles SSH 1 et 2. Le client peut, cependant, choisir entre les deux. Le protocole 2 est connu pour être plus robuste et plus sécurisé que son prédécesseur. ssh peut être forcé à utilisé l'un des protocole en passant l'argument ou pour le protocole 1 ou 2 respectivement. Copie sécurisée OpenSSH copie sécurisée scp La commande &man.scp.1; fonctionne de la même manière que &man.rcp.1;; elle copie un fichier vers ou à partir d'une machine distante à la différence qu'elle le fait d'une façon sécurisé. &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: ******* COPYRIGHT 100% |*****************************| 4735 00:00 &prompt.root; Puisque l'empreinte a déjà été sauvée pour cette machine dans l'exemple précédent, cela se vérifie ici quand on utilise &man.scp.1;. Les arguments passés à &man.scp.1; sont similaires à ceux de &man.cp.1;, avec le ou les fichiers en premier argument, et la destination en second. Puisque que le fichier est copié via le réseau, par l'intermédiaire de SSH, un ou plusieurs des arguments prennent la forme . Configuration OpenSSH configuration Les fichiers de configuration général au système pour le “daemon” et le client OpenSSH résident dans le répertoire /etc/ssh. ssh_config permet de paramétrer le client, tandis que sshd_config s'occupe de la configuration du “daemon”. De plus, les options (/usr/sbin/sshd par défaut), et du fichier rc.conf peut fournir un niveau supplémentaire de configuration. ssh-keygen Au lieu d'utiliser des mots de passe, &man.ssh-keygen.1; peut être employé pour générer des clés RSA pour authentifier un utilisateur: &prompt.user; ssh-keygen -t rsa1 Initializing random number generator... Generating p: .++ (distance 66) Generating q: ..............................++ (distance 498) Computing the keys... Key generation complete. Enter file in which to save the key (/home/user/.ssh/identity): Enter passphrase: Enter the same passphrase again: Your identification has been saved in /home/user/.ssh/identity. ... &man.ssh-keygen.1; créera une paire de clés publique et privée à utiliser pour l'authentification. La clé privée est stockée dans le fichier ~/.ssh/identity, alors que la clé publique l'est dans le fichier ~/.ssh/identity.pub. La clé publique doit être placée dans le fichier ~/.ssh/authorized_keys sur la machine distante pour que cela fonctionne. Ceci autorisera les connexions sur la machine distante en utilisant l'authentification RSA à la place des mots de passe. L'option créera des clés RSA pour le protocole SSH 1. Si vous désirez utiliser des clés RSA avec le protocole SSH 2, vous devez employer la commande ssh-keygen -t rsa. Si une phrase d'authentification est utilisée avec &man.ssh-keygen.1;, l'utilisateur se verra demandé d'entrer un mot de passe à chaque utilisation de la clé privé. Une clé DSA SSH protocole 2 peut être créée pour le même objectif en utilisant la commande ssh-keygen -t dsa. Cela créera une paire de clés DSA pour les sessions SSH utilisant le protocole 2. La clé publique est conservée dans ~/.ssh/id_dsa.pub, tandis que la clé publique se trouve dans ~/.ssh/id_dsa. Les clés publiques DSA sont placées dans le fichier ~/.ssh/authorized_keys sur la machine distante. &man.ssh-agent.1; et &man.ssh-add.1; sont des utilitaires employés pour la gestion de multiples clés privées protégées par mots de passe. Les divers fichiers et options peuvent être différents selon la version d'OpenSSH dont vous disposez, pour éviter les problèmes vous devez consultez la page de manuel &man.ssh-keygen.1;. Tunnels SSH OpenSSH tunnel OpenSSH a la capacité de créer un tunnel pour encapsuler un autre protocole dans une session chiffrée. La commande suivante demande à &man.ssh.1; de créer un tunnel pour telnet: &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com &prompt.user; La commande ssh est utilisée avec les options suivantes: Force ssh à utiliser la version du protocole (à ne pas utiliser si vous travaillez avec de vieux serveurs SSH). N'exécute aucune commande à distance, ou mode se place en mode tunnel. Si cette option est omise ssh initiera une session normale. Force ssh à s'exécuter en arrière-plan. Spécifie un tunnel local de la manière port_local:machine_distante:port_distant. Le serveur SSH distant. Un tunnel SSH fonctionne grâce à l'allocation d'une “socket” qui écoute sur le port spécifié de la machine localhost. Il transfère ensuite toute connexion reçue sur la/le machine/port local(e) via la connexion SSH vers la machine et le port distants spécifiés. Dans l'exemple, le port 5023 sur la machine locale transfère toute connexion sur ce port vers le port 23 de la machine distante (le localhost de la commande). Puisque le port 23 est celui de telnet, cela créerai une session telnet sécurisée par l'intermédiaire d'un tunnel SSH. Cela peut être utilisé pour encapsuler n'importe quel nombre de protocoles TCP non sécurisé comme SMTP, POP3, FTP, etc. Utiliser SSH pour créer un tunnel sécurisé pour SMTP &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP Ceci peut être utilisé en conjonction avec &man.ssh-keygen.1; et des comptes utilisateurs supplémentaires pour la création et l'accès au tunnel SSH sans trop de problème. Des clés peuvent être utilisées à la place de la saisie d'un mot de passe, et les tunnels peuvent être exécutés sous un utilisateur séparé. Exemples pratiques de tunnels SSH Accès sécurisé à un serveur POP3 Au travail, il y a un serveur SSH qui accepte les connexions de l'extérieur. Sur le même réseau d'entreprise réside un serveur de courrier électronique faisant fonctionner un serveur POP3. Le réseau ou le chemin entre chez vous et le bureau peut ou peut ne pas être complètement sûr. Pour cette raison, vous devez récupérer votre courrier électronique d'une façon sécurisée. La solution est de créer une connexion SSH vers le serveur SSH de votre entreprise, et d'utiliser ce tunnel vers le serveur de courrier. &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** Quand le tunnel est configuré et fonctionne, vous pouvez demander à votre client de courrier électronique d'envoyer ses requêtes POP3 sur le port 2110 de la machine locale: localhost. - Les connexions seront tranférées de façon + Les connexions seront transférées de façon sécurisé à travers le tunnel jusqu'à mail.example.com. Passer à travers un coupe-feu restrictif Certains administrateurs réseau imposent - des règles draconiènes au niveau du coupe-feu, + des règles draconiennes au niveau du coupe-feu, filtrant non seulement les connexions entrantes, mais également les connexions sortantes. Il se peut que vous n'ayez accès qu'aux ports 22 et 80 de machines distantes pour SSH ou la navigation Internet. Vous pouvez vouloir accéder à un autre (n'ayant peut-être aucun rapport avec votre travail) service, comme un serveur Ogg Vorbis pour écouter de la musique. Si le serveur Ogg Vorbis diffuse (“streaming”) ses données à partir d'un port différent des ports 22 ou 80, vous ne serez alors pas en mesure d'y accéder. La solution est de créer une connexion SSH vers une machine à l'extérieur du réseau protégé par le coupe-feu, et l'utiliser pour créer un tunnel vers le serveur Ogg Vorbis. &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* Vous pouvez maintenant faire pointer votre client pour la récupération du flux de données sur le port 8888 de la machine locale, qui sera transféré jusqu'au port 8000 de la machine music.example.com, passant ainsi outre les restrictions du coupe-feu. Lectures supplémentaires OpenSSH &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; &man.ssh-add.1; &man.sshd.8; &man.sftp-server.8; Tom Rhodes Contribution de ACL Listes de contrôle d'accès au système de fichiers Avec les améliorations des systèmes de fichiers comme les “snapshots”, FreeBSD 5.0 et versions suivantes offrent une nouveauté en matière de sécurité: les listes de contrôle d'accès au système de fichiers (ACLs - “Access Control Lists”). Les listes de contrôle d'accès étendent le système de permission standard d'UNIX d'une manière hautement compatible (POSIX.1e). Cette caractéristique permet à un administrateur d'utiliser avantageusement un modèle de sécurité plus sophistiqué. Pour activer le support ACL pour les systèmes de fichiers UFS, ce qui suit: options UFS_ACL doit être compilé dans le noyau. Si cette option n'a pas été ajoutée, un avertissement sera affiché lors d'une tentative de montage d'un système de fichiers supportant les ACLs. Cette option est présente dans le noyau GENERIC. Les ACLs reposent sur des attributs étendus rajoutés au système de fichiers. Les attributs étendus sont nativement supportés par la prochaine génération du système de fichiers UNIX, UFS2. Un supplément de travail d'administration est requis pour configurer les attributs étendus sous UFS1 par rapport à UFS2. Les performances des attributs étendus sous UFS2 sont sensiblement meilleures également. Il en résulte donc, que l'UFS2 est généralement - récommandé par rapport à + recommandé par rapport à l'UFS1 pour une utilisation des listes - de contôle d'accès. + de contrôle d'accès. Les ACLs sont activés grâce l'option utilisée lors du montage, , qui peut être ajouté dans le fichier /etc/fstab. Cette option de montage peut être également automatiquement fixée d'une manière définitive en utilisant &man.tunefs.8; pour modifier l'indicateur ACL du “superblock” dans l'entête du système de fichiers. Il est en général préférable d'utiliser cet indicateur pour plusieurs raisons: L'option de montage pour les ACLs ne peut être modifiée par un simple remontage (&man.mount.8; ), mais uniquement par un &man.umount.8; complet et suivi d'un &man.mount.8;. Cela signifie que les ACLs ne peuvent être activées sur le système de fichiers racine après le démarrage. Cela signifie également que vous ne pouvez pas modifier la disposition d'un système de fichier une fois que c'est activé. Positionner l'indicateur du “superblock” fera que le système de fichiers sera toujours monté avec les ACLs activées même s'il n'y a pas d'entrée dans le fichier fstab, ou s'il y a une réorganisation des périphériques. Cela prévient le montage accidentel du système de fichiers sans les ACLs activées, ce qui peut provoquer une activation impropre des ACLs et par conséquent des problèmes de sécurité. Nous pourrions modifier le comportement des ACLs pour permettre l'activation de l'indicateur sans le besoin d'un nouveau &man.mount.8; - complet, mais nous considerons qu'il est préférable + complet, mais nous considérons qu'il est préférable d'éviter un montage accidentel sans les ACLs activées, parce que vous pouvez vous “tirer facilement dans les pieds” si vous activez les ACLs, puis les désactivez, et ensuite les réactivez à nouveau sans réinitialiser les attributs étendus. En général, une fois que vous avez activé les ACLs sur un système de fichiers, elles ne devraient pas être désactivées étant donné que les protections de fichiers résultantes peuvent ne pas être compatible avec celles prévues par les utilisateurs du système, et réactiver les ACLs peut réaffecter les précédentes ACLs aux fichiers qui ont depuis eût leur permissions modifiées, avec pour résultat un comportement imprévisible. Les systèmes de fichiers avec les ACLs activées présenteront un signe + au niveau de leurs permissions quand elles seront affichées. Par exemple: drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html Ici nous voyons que les répertoires directory1, directory2, et directory3 utilisent les ACLs. Ce n'est pas le cas du répertoire public_html. Utilisation des <acronym>ACL</acronym>s Les ACLs peuvent être affichées par l'utilitaire &man.getfacl.1;. Par exemple pour voir les ACLs sur le fichier test, on utilisera la commande: &prompt.user; getfacl test #file:test #owner:1001 #group:1001 user::rw- group::r-- other::r-- Pour modifier le paramétrage des ACLs sur ce fichier, invoquez la commande &man.setfacl.1;. Intéressons-nous à la ligne: &prompt.user; setfacl -k test L'indicateur supprimera toutes les ACLs actuellement définies pour un fichier ou un système de fichiers. Une méthode plus adaptée est d'utiliser l'option étant donné qu'elle conserve - les champs de base nécéssaires au bon + les champs de base nécessaires au bon fonctionnement des ACLs. &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test Dans la commande ci-dessus, l'option a été utilisée pour modifier les entrées ACL par défaut. Comme il n'y avait pas d'entrées pré-définies, puisqu'elles ont été supprimées par la commande précédente, cela restaurera les options par défaut et prendra en - compte les options précisées. Prennez soin de + compte les options précisées. Prenez soin de noter que si vous ajoutez un utilisateur ou un groupe qui n'existe pas sur le système, une erreur Invalid argument sera affichée sur la sortie standard. Tom Rhodes Contribution de Avis de sécurité de FreeBSD Avis de sécurité de &os; Comme plusieurs systèmes d'exploitation destinés à la production, &os; publie des “Avis de sécurité”. Ces avis sont généralement envoyés aux listes de diffusion traitant de la sécurité et ajoutés dans l'errata une fois seulement que les versions correspondantes ont été corrigées. Cette section aura pour objectif d'expliquer ce qu'est un avis, comment le comprendre, et quelles mesures sont à prendre pour appliquer des correctifs à un système. A quoi ressemble un avis de sécurité? Les avis de sécurité de &os; ressemblent à celui présenté ci-dessous qui provient de la liste de diffusion &a.security-notifications.name;. ============================================================================= &os;-SA-XX:XX.UTIL Security Advisory The &os; Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: Person@EMAIL-ADDRESS Affects: All releases of &os; &os; 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) &os; only: NO For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.freebsd.org/security/. I. Background II. Problem Description III. Impact IV. Workaround V. Solution VI. Correction details VII. References Le champ Topic indique exactement quel est le problème. C'est basiquement une introduction à l'avis de sécurité en tant que tel et mentionne l'utilitaire contenant la vulnérabilité. Le champ Category fait référence à la partie du système affectée qui peut être une parmi core, contrib, ou ports. La catégorie core signifie que la vulnérabilité affecte un composant système du système d'exploitation &os;. La catégorie contrib précise que la vulnérabilité affecte du logiciel contribué au projet &os;, comme sendmail. Et enfin la catégorie ports indique que la vulnérabilité affecte un logiciel du catalogue des logiciels portés. Le champ Module fait référence à l'emplacement du composant, par exemple sys. Dans notre exemple, nous voyons que le module sys est affecté, par conséquent, cette vulnérabilité concerne un composant utilisé dans le noyau. Le champ Announced reflète la date à laquelle l'avis de sécurité a été publié, ou annoncé au monde entier. Cela signifie que l'équipe de sécurité a vérifié que le problème existait vraiment et qu'un correctif a été ajouté au référentiel des sources de &os;. Le champ Credits donne le crédit de la découverte du problème à la personne ou l'organisation qui a constaté et rapporté le problème. Le champ Affects explique quelles versions de &os; sont affectées par cette vulnérabilité. Pour le noyau, un coup d'oeil rapide à la sortie de la commande ident sur les fichiers affectés aidera à déterminer la révision. Pour les logiciels portés, le numéro de version est listé après le nom du logiciel dans /var/db/pkg. Si le système ne se synchronise pas avec le référentiel CVS &os; et ne recompile pas les sources quotidiennement, il y a des chances qu'il soit affecté par le problème. Le champ Corrected indique la date, l'heure, le fuseau horaire, et la version de publication qui a été corrigée. Le champ &os; only précise si cette vulnérabilité affecte juste &os;, ou si elle concerne d'autres systèmes d'exploitation également. Le champ Background donne une information précise sur ce qu'est l'utilitaire affecté. La plupart du temps, ce champ indique pourquoi l'utilitaire existe sous &os;, son rôle, et quelques informations sur la naissance de l'utilitaire. Le champ Problem Description explique en profondeur le problème de sécurité. Cela peut comprendre des informations sur le code défectueux, ou même comment l'utilitaire pourrait être utilisé pour ouvrir un faille de sécurité. Le champ Impact décrit l'impact sur le système du problème de sécurité. Par exemple, cela peut aller de l'attaque par refus de service, au gain de droits supplémentaires par les utilisateurs, en passant par l'obtention des droits de super-utilisateur par l'attaquant. Le champ Workaround offre une solution de contournement possible pour les administrateurs qui ne sont pas en mesure de mettre à jour le système. Cela pouvant être due à des contraintes de temps, à une disponibilité réseau, ou une tout autre raison. Cependant, la sécurité ne devrait pas être prise à la légère, et un système affecté devrait soit être corrigé soit implémenter une solution de contournement du problème de sécurité. Le champ Solution donne les instructions sur l'application de correctifs sur le système affecté. C'est une méthode pas à pas vérifiée et testée pour obtenir un système corrigé et fonctionnant de manière sécurisée. Le champ Correction Details liste la branche CVS ou la version de publication avec les points remplacés par des caractères souligné. Il donne également le numéro de révision des fichiers affectés sur chaque branche. Le champ References donne en général d'autres sources d'informations. Cela peut être des URLs web, des ouvrages, des listes de diffusions, et des forums de discussion.