[OpenBSD]

[Index de la FAQ] [Section 7 - Contrôle du clavier et de l'affichage] [Section 9 - Migrer vers OpenBSD]

8 - Questions Générales


Table des matières


8.1 - J'ai oublié mon mot de passe root, que faire maintenant ?

La procédure de base pour reprendre le contrôle de root consiste à démarrer en mode utilisateur unique, monter les partitions adéquates (/ et /usr), exécuter passwd(1) pour changer le mot de passe du super-utilisateur. Vous pouvez ensuite redémarrer et vous connecter normalement.

Voici la procédure détaillée :

Si c'est une machine utilisée par plusieurs personnes, vous devriez probablement utiliser sudo(8) pour fournir à plusieurs personnes (de confiance) la possibilité d'exécuter des commandes en tant que super-utilisateur.

"Attendez. Ceci semble très facile ! Ce n'est pas très sécurisé !" Si un attaquant a un accès physique à votre système, il a gagné et ce quelque soit le système d'exploitation sur la machine. Il existe des méthodes pour obliger un utilisateur à saisir un mot de passe en mode utilisateur unique (voir ttys(5)), ou éliminer le temps d'attente sous i386/md64 (voir boot.conf), mais pour être franc, le contournement de ces astuces est aussi assez facile (Une méthode : démarrez à partir d'une disquette ou d'un CDROM, éditez ou remplacez le fichier contenant les mots de passe). Vous pouvez essayer d'éviter cela, mais quelqu'un pourrait potentiellement retirer le disque dur de votre système. Rendre l'exploitation de votre machine difficile n'est pas vraiment de la sécurité, et si vous n'avez pas sécurisé l'accès physique à la machine, vous n'avez pas de sécurité réelle.

Remarque : plusieurs systèmes de "gestion à distance" fournissent pratiquement toutes les fonctionnalités d'un accès physique à la machine, et ceci doit être pris en compte. Ne pensez pas que le système est sécurisé s'il y a un moyen pour l'attaquant de prendre le contrôle d'une console, insérer une disque virtuelle et forcer un redémarrage de la machine. Ceci équivaut à un accès physique. Le système de gestion de console n'est probablement pas aussi sécurisé qu'OpenBSD...

8.2 - X ne veut pas démarrer, et j'ai de nombreux messages d'erreur

La cause habituelle des problèmes avec X vient souvent de la configuration de machdep.allowaperture avec sysctl(8). Puisque cette fonctionnalité est désactivée par défaut sous OpenBSD, il s'agit certainement de la cause du problème.

Vous devez éditer /etc/sysctl.conf et positionner la valeur machdep.allowaperture=2 (ou 1, selon votre plate-forme). Cela permettra à X d'accéder au pilote d'ouverture (aperture) xf86(4), au prochain redémarrage. Cette valeur ne peut pas être changée après le démarrage. En revanche, elle peut être définie dès l'installation si vous répondez "Y" lorsque l'on vous demande si vous comptez utiliser X Window ("Do you expect to run the X Window System?").

Sous OpenBSD, le pilote d'ouverture (aperture) doit être activé sur les plates-formes alpha, amd64, i386, macppc et sparc64 afin de permettre l'accès à la carte vidéo. D'autres plates-formes utilisent un moyen plus sûr pour gérer le système vidéo et n'ont pas besoin de ceci (qui n'est pas inclus dans leur noyau). Si vous ne prévoyez pas d'utiliser X sur votre système, il est recommandé de ne pas activer le pilote d'ouverture (aperture).

Pour plus d'informations sur la configuration et l'utilisation de X sur votre plate-forme, consultez le fichier/usr/X11R6/README de votre installation.

8.3 - Puis-je utiliser le langage de programmation "L" sous OpenBSD ?

Plusieurs langages de programmation communs sont supportés soit au niveau du système de base (et plus spécifiquement dans les jeux de fichiers baseXX.tgz et compXX.tgz), soit au niveau du système de paquetages et de ports. Il est recommandé d'installer le jeu de fichiers nécessaire ou le paquetage contenant le compilateur spécifique que vous souhaitez employer au lieu de l'installation à partir des sources. Pour certains compilateurs, l'installation à partir des sources requiert d'importantes ressources système. Cette opération est souvent inutile sauf si vous avez des besoins spécifiques ou aucun paquetage n'est disponible.

Le tableau suivant cherche à fournir une vue d'ensemble des compilateurs pour différents langages, où vous pouvez les trouver et si des problèmes ou des limitations relatifs à leur utilisation existent. Certains de ces compilateurs ne sont disponibles que pour certaines plates-formes. Pour voir les plates-formes sur lesquelles fonctionne tel ou tel compilateur, il suffit d'examiner un résultat de recherche dans l'arborescence des ports et de noter ce qui est mentionné au niveau de "Archs". Une autre méthode consiste à inspecter directement le contenu du Makefile du port et d'y chercher ONLY_FOR_ARCHS, NOT_FOR_ARCHS, BROKEN, etc.

Remarque : Pour améliorer l'utilisation, cet article fournit une liste alphabétique sans distinguer entre différentes catégories de langages de programmation. Ceci n'est en aucun cas une liste exhaustive de tout ce qui est disponible ou peut fonctionner sous OpenBSD. Si vous relevez des inexactitudes ou des problèmes autres que ceux listés ci-dessous, prière de nous en faire part.

LangageOù ?Remarques
Awk base54.tgz, awk(1)
lang/gawk GNU awk
C, C++ comp54.tgz, gcc(1) Les compilateurs C/C++ dans le système de base ont été audités et contiennent plusieurs améliorations sécurité (telles que ProPolice) activées par défaut. Merci de bien vouloir consulter gcc-local(1) pour de plus amples détails. Ces compilateurs émettrons des alertes lors de l'utilisation de fonctions non sûres telles que sprintf(), strcpy(), strcat(), tmpnam(), etc. La plupart des plates-formes utilisent gcc 4.2.1.
lang/gcc lang/llvm Ces compilateurs n'ont pas bénéficié d'un audit sécurité et ne contiennent pas les améliorations sécurité que possèdent les compilateurs du système de base. Les compilateurs gcc sont renommés egcc, eg++, etc. pour éviter la confusion avec ceux du système de base.
Caml lang/ocaml Objective Caml
COBOL lang/open-cobol
Erlang lang/erlang
Fortran lang/g77 Support du Fortran 77 uniquement.
lang/gcc Fortran 95 est aussi supporté par egfortran dans gcc 4.0 et supérieur. Ce nouveau compilateur est disponible en tant que sous-paquetage (f95) de gcc.
Haskell lang/ghc
lang/nhc98
Java devel/jdk Sun JDK - seulement la 1.7 comme paquetage; la version 1.6 n'est pas recommandée à cause du manque de mises à jour et d'une licence restrictive.
www/icedtea-web Plugin pour jdk/1.7 uniquement.
devel/eclipse Bon IDE; fonctionne avec Sun JDK.
devel/netbeans Un autre IDE; fonctionne avec Sun JDK.
Lisp lang/clisp
Lua lang/lua Bibliothèques Lua additionnelles et outils auxiliaires sont disponibles dans l'arbre des ports.
Perl base54.tgz, perl(1) De nombreux modules Perl sont disponibles dans l'arbre des ports, regardez donc ceux-là avant d'installer des modules depuis CPAN.
Perl 6 lang/rakudo
PHP lang/php De nombreux sous-paquetages sont disponibles pour des modules PHP différents.
Prolog lang/gprolog Compilateur GNU Prolog.
lang/swi-prolog Environnement SWI-Prolog.
Python lang/python D'autres ports utilisent Python 2.7 par défaut.
Ruby lang/ruby
Scheme lang/chicken
lang/scheme48
lang/scm
shells/scsh
Smalltalk lang/squeak
Tcl lang/tcl

Autres outils de développement

Il existe plusieurs autres outils de développement dans le système de base ou en paquetages ou ports. Quelques exemples :

8.4 - Qu'est-ce que l'arborescence des ports ?

Veuillez consulter FAQ 15, Utilisation des ports.

8.5 - Qu'est ce que les paquetages?

Veuillez consulter FAQ 15, Gestion des paquetages.

8.6 - Dois-je utiliser les Ports ou les Paquetages ?

Veuillez consulter FAQ 15.

8.8 - Y a-t-il un moyen d'utiliser mon lecteur de disquette alors qu'il n'était pas connecté durant la phase de démarrage ?

Vous devez indiquer au noyau de toujours supposer que le lecteur de disquette est installé, même s'il n'est pas détecté pendant la phase de démarrage. Pour ce faire, l'option 0x20 doit être positionnée dans fdc(4). Ceci peut être fait en utilisant User Kernel Config ou config(8) pour modifier votre noyau,

# config -e -f /bsd
OpenBSD 5.4 (GENERIC) #37: Tue Jul 30 12:05:01 MDT 2013
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> change fd*
254 fd* at fdc0 drive -1 flags 0x0
change [n] y
drive [-1] ? ENTER
flags [0] ? 0x20
254 fd* changed
254 fd* at fdc0 drive -1 flags 0x20
ukc> q
Saving modified kernel.
#

8.9 - Chargeur de démarrage OpenBSD (spécifique à i386 et amd64)

Lorsque vous démarrez votre système OpenBSD, vous avez probablement remarqué l'invite de commande.

boot>

La plupart des utilisateurs n'auront pas à intervenir ici. Le système démarre même si aucune commande n'est entrée. Mais parfois surviennent des problèmes, ou certaines fonctions spéciales sont requises. C'est à cet endroit que ces options doivent être entrées. Avant de vous lancer, vous devriez lire la page de manuel boot(8). Ici, nous allons au-delà de la plupart des commandes utilisées pour le chargeur de démarrage.

Avant de débuter, si aucune commande n'est utilisée, le chargeur de démarrage essaiera automatiquement de démarrer /bsd. Si cela échoue, il essaiera /obsd, puis en cas de nouvelle échec /bsd.old. Vous pouvez spécifier un noyau en tapant :

boot> boot hd0a:/bsd
ou
boot> b /bsd

Ceci démarrera le noyau nommé bsd depuis la partition 'a' du premier disque reconnu par le BIOS.

Voici une brève liste d'options que vous pouvez utiliser avec le noyau OpenBSD.

Ces options sont saisies dans le format : boot [ image [-acds]]

Pour plus d'informations, lisez la page de manuel boot(8).

8.10 - Utilisation de S/Key sur votre système OpenBSD

S/Key est un système d'authentification basé sur des mots de passe à usage unique. Il peut être utile pour les personnes n'ayant pas la possibilité d'utiliser un canal chiffré protégeant leurs identifiants en transit, tel qu'un canal établi par ssh(1).

ATTENTION : Les systèmes d'authentification basés sur des mots de passe à usage unique protègent uniquement l'information relative à l'authentification. Ils ne permettent pas de se prémunir contre l'usage des écoutes clandestines du réseau pour accéder à des informations confidentielles. De plus, si vous vous connectez à un système sûr A, il est recommandé de le faire depuis un autre système sûr B afin de s'assurer que personne n'accède au système A en enregistrant toutes vos saisies clavier ou en capturant et/ou en forgeant les entrées/sorties de vos terminaux.

Le système S/Key génère une séquence de mots passe à usage unique à partir de la phrase secrète d'un utilisateur ainsi qu'un défi transmis par le serveur à l'aide d'une fonction de hachage sûre. Le système est sûr uniquement si la phrase secrète n'est jamais transmise sur le réseau. L'initialisation ou la modification de la phrase secrète DOIT donc se faire à travers un canal sûr, tel que ssh(1) ou la console.

L'implémentation de S/Key sur OpenBSD peut utiliser plusieurs algorithmes de hachage à sens unique. Les algorithmes suivants sont disponibles :

Mise en place de S/Key - Les premières étapes

Pour commencer, le répertoire /etc/skey doit exister. Si ce répertoire n'existe pas, le super utilisateur doit le créer. Cela peut simplement se faire en tapant :

# skeyinit -E

Une fois ce répertoire créé, vous pouvez initialiser votre S/Key. Pour cela vous devez utiliser skeyinit(1). Étant donné que skeyinit(1) vous demandera de saisir votre phrase secrète S/Key, vous devez l'exécuter à travers un canal sûr, tel que nous l'avons précédemment expliqué. Le programme vous rappellera même de le faire. Avec skeyinit(1), votre mot de passe vous sera d'abord demandé. C'est le même mot de passe que vous utilisez pour vous connecter au système. Une fois authentifié avec votre mot de passe système, vous devrez saisir votre phrase secrète S/Key. Ce n'est PAS votre mot de passe système. Votre phrase secrète devra comporter au moins 10 caractères. Nous vous suggérons d'utiliser des phrases de plusieurs mots comme mot de passe. Voici un exemple d'ajout d'utilisateur :

$ skeyinit
Reminder - Only use this method if you are directly connected
      or have an encrypted channel. If you are using telnet,
      exit with no password and use skeyinit -s.
Password:
[Adding ericj with md5]
Enter new secret passphrase:
Again secret passphrase:

ID ericj skey is otp-md5 100 oshi45820
Next login password: HAUL BUS JAKE DING HOT HOG

La ligne ID ericj skey is otp-md5 100 oshi45820 est particulièrement intéressante. Elle fournit beaucoup d'informations à l'utilisateur comme indiqué ci-après.

Mais le plus important c'est votre prochain mot de passe. Il consiste en 6 petits mots, qui combinés, constituent votre prochain mot de passe à usage unique, espaces compris. Ce mot de passe affiché par skeyinit ne peut être utilisé pour vous connecter (il existe une procédure pour l'utilisation du premier mot de passe à usage unique, lisez skeyinit(1)). Pour être capable de vous connecter, un mot de passe à usage unique correspondant à celui affiché par le processus d'identification doit être calculé en utilisant skey(1). La section suivante montre comment s'y prendre.

Utilisation de S/Key pour se connecter.

Maintenant votre skey est initialisé. Vous êtes prêt à vous connecter. Voici l'exemple d'une session utilisant S/Key pour se connecter : Pour exécuter une connexion avec S/Key, vous devez spécifier :skey comme votre identifiant.

$ ftp localhost
Connected to localhost.
220 oshibana.shin.ms FTP server (Version 6.5/OpenBSD) ready.
Name (localhost:ericj): ericj:skey
331- otp-md5 96 oshi45820
331 S/Key Password:
230- OpenBSD 5.4 (GENERIC) #37: Tue Jul 30 12:05:01 MDT 2013
230-
230- Welcome to OpenBSD: The proactively secure Unix-like operating system.
230-
230- Please use the sendbug(1) utility to report bugs in the system.
230- Before reporting a bug, please try to reproduce it with the latest
230- version of the code. With bug reports, please try to ensure that
230- enough information to reproduce the problem is enclosed, and if a
230- known fix for it exists, include that as well.
230-
230 User ericj logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

Notez que j'ai mis ":skey" pour mon nom d'utilisateur. Ceci indique à ftpd que je veux être identifié en utilisant S/Key. Certains d'entre vous ont dû remarquer que le numéro de séquence a été changé en otp-md5 96 oshi45820. C'est parce que j'ai utilisé S/Key plusieurs fois pour m'identifier. Mais comment avoir votre mot de passe à usage unique ? Alors, pour calculer le mot de passe à usage unique, vous aurez besoin du numéro de séquence que vous utilisez et de votre clé. Vous êtes probablement en train de chercher comment vous rappeler le numéro de séquence.

Lorsque vous vous connectez, le processus d'identification affiche une ligne contenant les informations dont vous avez besoin, ce dont vous utilisez pour générer un mot de passe à usage unique à travers un autre canal sécurisé, en copiant la ligne dans une console :

otp-md5 96 oshi45820

Après avoir entré votre mot de passe, votre mot de passe à usage unique sera affiché. Vous pouvez le copier dans l'invite de S/Key lorsqu'il vous demande un mot de passe. Non seulement c'est otp-md5 la description du hachage utilisé, mais c'est aussi un autre nom d'utilisateur pour la commande skey(1) .

Si vous êtes connecté et souhaitez générer un autre mot de passe à usage unique pour la session suivante, utilisez skeyinfo(1), il vous indiquera ce qu'il faudra utiliser pour la session suivante. Par exemple, je génère d'autres mots de passe à usage unique pour des utilisations ultérieurs (souvenez-vous que je le fais depuis un canal sécurisé).

$ skeyinfo
95 oshi45820

La meilleure façon de le faire est d'utiliser skeyinfo -v, ce qui fournira une commande appropriée à exécuter dans une console. Par exemple :

$ skeyinfo -v
otp-md5 95 oshi45820

De même, la façon la plus simple de générer le mot de passe S/Key suivant est juste :

$ `skeyinfo -v`
Reminder - Do not use this program while logged in via telnet.
Enter secret passphrase:
NOOK CHUB HOYT SAC DOLE FUME

Remarquez les caractères (`) dans l'exemple précédent.

Il est probable que beaucoup d'entre vous n'aient pas de connexion sécurisée ou une machine locale sécurisée pour créer les mots de passe, et leurs création à travers un canal non sécurisé n'est pas admissible. Donc comment créer plusieurs mots de passe en une seule fois ? Vous pouvez indiquer à skey(1) le nombre de mot de passe que vous voulez créer. Vous pourrez alors les imprimer et les emporter avec vous.

$ otp-md5 -n 5 95 oshi45820
Reminder - Do not use this program while logged in via telnet.
Enter secret passphrase:
91: SHIM SET LEST HANS SMUG BOOT
92: SUE ARTY YAW SEED KURD BAND
93: JOEY SOOT PHI KYLE CURT REEK
94: WIRE BOGY MESS JUDE RUNT ADD
95: NOOK CHUB HOYT SAC DOLE FUME

Il est à noter que le dernier mot de passe doit être le premier utilisé, car nous comptons de manière décroissante à partir de 100.

Utilisation de S/Key avec ssh(1) et telnet(1)

L'utilisation de S/Key avec ssh(1) ou telnet(1) est à peu près identique qu'avec ftp -- vous devez simplement rajouter ":skey" à la fin de votre nom d'utilisateur. Exemple:

ssh -l ericj:skey localhost
otp-md5 98 oshi45821
S/Key Password: SCAN OLGA BING PUB REEL COCA
Last login: Thu Apr  7 12:21:48 on ttyp1 from 156.63.248.77
OpenBSD 5.4 (GENERIC) #37: Tue Jul 30 12:05:01 MDT 2013

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

You have mail.
$

8.12 - Quelle plate-forme SMP (Système Multiprocesseurs) supporte OpenBSD ?

SMP est supporté sur les plates-formes OpenBSD/i386, OpenBSD/amd64 OpenBSD/mvme88k et OpenBSD/sparc64 (incluant les processeurs UltraSPARC T1/T2/T2+), OpenBSD/macppc, OpenBSD/sgi (Octane seulement), et OpenBSD/hppa,

Un noyau SMP séparé, "bsd.mp", est fourni avec les paquetages d'installation. Si plusieurs processeurs sont détectés au moment de l'installation, il est installé automatiquement comme noyau par défaut, bsd, et le noyau mono-processeur est renommé /bsd.sp.

Si vous ajoutez des processeurs en plus sur un système installé initialement avec un seul processeur, vous voudrez installer le noyau approprié bsd.mp, renommer votre noyau existant /bsd en /bsd.sp, et renommer le /bsd.mp en /bsd.

Nous espérons que les autres plates-formes compatibles SMP seront supportées dans le futur. Sur la plupart des autres plates-formes, OpenBSD démarrera correctement sur un système SMP, mais n'utilisera qu'un seul processeur. L'exception est la plate-forme SPARC -- OpenBSD/sparc qui nécessitera parfois le retrait des modules MBus additionnels pour que le système démarre.

8.13 - Parfois, j'ai des erreurs d'entrées/sorties lorsque j'essaie d'utiliser mes périphériques tty

Vous devez utiliser /dev/cuaXX pour les connexions initialisées depuis le système OpenBSD, les périphériques /dev/ttyXX sont utilisables seulement pour les terminaux ou les connexions en dial. Alors qu'il était possible d'utiliser ces périphériques autrefois, le noyau OpenBSD n'est plus compatible avec ce type d'utilisation.

Extrait de cua(4):

For hardware terminal ports, dial-out is supported through matching device nodes called calling units. For instance, the terminal called /dev/tty03 would have a matching calling unit called /dev/cua03. These two devices are normally differentiated by creating the calling unit device node with a minor number 128 greater than the dial-in device node. Whereas the dial-in device (the tty) normally requires a hardware signal to indicate to the system that it is active, the dial-out device (the cua) does not, and hence can communicate unimpeded with a device such as a modem. This means that a process like getty(8) will wait on a dial-in device until a connection is established. Meanwhile, a dial-out connection can be established on the dial-out device (for the very same hardware terminal port) without disturbing anything else on the system. The getty(8) process does not even notice that anything is happening on the terminal port. If a connecting call comes in after the dial-out connection has finished, the getty(8) process will deal with it properly, without having noticed the intervening dial-out action.

8.14 - Quels sont les navigateurs Web disponibles pour OpenBSD ?

Lynx, un navigateur en mode texte supportant le SSL est disponible dans le système de base. D'autres navigateurs sont disponibles (sans ordre particulier):

Navigateurs Graphique (X)

Navigateurs en mode console

La plupart des navigateurs précédemment mentionnés sont disponibles en paquetages précompilés, présents sur les serveurs FTP et quelques-uns sur le CD-ROM. Après l'installation de l'arbre des ports, tous peuvent être trouvés dans le répertoire /usr/ports/www/.

Étant donné que la plupart des navigateurs graphiques pèsent lourd et prennent beaucoup de temps à télécharger et à compiler, vous devriez sérieusement prendre en compte l'utilisation des paquetages précompilés quand ils sont disponibles.

8.15 - Comment utiliser l'éditeur mg ?

mg(1) est un éditeur de texte minimal dans le style d'Emacs, inclus dans OpenBSD. Minimal signifie que c'est une petite implémentation qui est très similaire aux fonctionnalités de l'éditeur de texte de GNU Emacs. Il n'implémente pas beaucoup d'autres fonctionnalités de Emacs (incluant la fonctionnalité messagerie et news, comme les modes pour Lisp, C++, Lex, Awk, Java, etc...).

Un tutoriel concis est inclus dans OpenBSD (disponible dans /usr/share/doc/mg/tutorial).

8.16 - ksh(1) ne semble pas lire mon fichier .profile!

Il y a deux raisons possibles pour que ksh(1) semble ignorer le fichier .profile d'un utilisateur.

8.17 - Pourquoi le fichier /etc/motd est-il écrasé alors que je l'ai modifié ?

Le fichier /etc/motd est édité à chaque démarrage du système, remplaçant tout jusqu'à la première ligne vide du fichier, exclue, par les informations de version du noyau. Lorsque vous éditez ce fichier, soyez sûr que vous commencez après cette ligne vide, pour empêcher /etc/rc de supprimer ces lignes de /etc/motd au démarrage.

8.20 - Les polices anti-aliasées et "TrueType" avec X

Voyez ce document.

8.21 - Est-ce que OpenBSD supporte des systèmes de fichiers journalisés ?

Non il n'en supporte aucun. Nous utilisons un mécanisme différent pour obtenir des résultats similaires, celui-ci est appelé Soft Updates. Veuillez lire la FAQ 14 - Soft Updates pour obtenir plus de détails.

8.22 - Reverse DNS
- ou -
pourquoi cela prend autant de temps lorsque je me connecte ?

Beaucoup de nouveaux utilisateurs sur OpenBSD rencontrent un délai de connexion de deux minutes lorsqu'ils utilisent des services tels que ssh ou ftp. Cela peut aussi être rencontré lorsque l'on utilise un proxy comme ftp-proxy, ou encore pendant l'envoi d'un email depuis une station de travail avec sendmail.

Ceci est le plus souvent dû à un problème de reverse-DNS. DNS est le Serveur de Nom de Domaine (Domaine Name Serveur), le système qu'Internet utilise pour convertir un nom, comme "www.openbsd.org" en une adresse numérique. Une autre possibilité de DNS est de pouvoir prendre une adresse numérique et la reconvertir en "nom", c'est ce qu'on appelle le "Reverse-DNS".

Pour fournir un meilleur système de connexion, OpenBSD réalise un reverse-DNS sur chaque machine qui lui est attachée de différentes façons, incluant ssh, ftp, sendmail ou ftp-proxy. Malheureusement dans certains cas, la machine créant la connexion ne possède pas une entrée reverse DNS correcte.

Un exemple de cette situation :

Un utilisateur met en place une machine OpenBSD comme pare-feu et passerelle pour son réseau local, connectant tous ses ordinateurs interne au travers d'une unique adresse en utilisant NAT. Celui-ci peut aussi l'utiliser comme un relais de messagerie sortant. Il suit les notes d'installation, et est satisfait du résultat, à l'exception d'une petite chose -- chaque fois qu'il tente une requête sur la machine de quelque manière que ce soit, il doit attendre deux minutes avant qu'il ne se passe quoi ce soit.

Ce qu'il se passe :

Pour une station de travail derrière le NAT de la passerelle avec une adresse IP non enregistrée étant 192.168.1.35, l'utilisateur utilise ssh pour accéder au système de la passerelle. Le client ssh demande le nom d'utilisateur et le mot de passe, et les envoie à la machine passerelle. La passerelle tente ensuite de savoir qui a essayé de se connecter et réalise une requête reverse DNS de 192.168.1.35. Le problème est que les adresses 192.168.0.0 sont des adresses réservées à un usage privé, et un serveur DNS hors de votre réseau sait qu'il ne doit pas avoir d'information sur ces adresses. Certains vont rapidement retourner un message d'erreur, dans ce cas, OpenBSD comprendra qu'il n'y a pas plus d'informations à obtenir, et continuera rapidement en acceptant l'utilisateur. D'autres serveurs DNS ne retournerons AUCUNE réponse. Dans ce cas, vous vous retrouverez à attendre que le résolveur d'adresses OpenBSD dépasse son délai d'attente, ce qui prendra deux minutes avant que la connexion soit autorisée. Dans le cas de ftp-proxy, certains clients vont dépasser le délai imparti avant que la requête DNS ne dépasse le sien, donnant l'impression que ftp-proxy ne fonctionne pas.

Cela peut être relativement ennuyant. Heureusement, il existe une solution simple pour corriger cela.

Correction, en utilisant /etc/hosts :

La solution la plus simple est de partager votre fichier /etc/hosts entre toutes les stations de travail de votre réseau et vous assurer que le fichier /etc/resolv.conf contient bien la ligne lookup file bind qui confirme que le résolveur va bien considérer en premier lieu le fichier /etc/hosts, avant d'interroger les serveurs DNS spécifiques indiqués par les lignes "nameserver" dans votre fichier /etc/resolv.conf.

Votre fichier /etc/hosts ressemblera à quelque chose comme ceci :
::1 localhost.in.example.org localhost
127.0.0.1 localhost.in.example.org localhost
192.168.1.1 gw.in.example.org gw
192.168.1.20 scrappy.in.example.org scrappy
192.168.1.35 shadow.in.example.org shadow

Votre fichier resolv.conf ressemblera à quelque chose comme ceci :
search in.example.org 
nameserver 24.2.68.33
nameserver 24.2.68.34
lookup file bind

Une objection courante est de dire "Mais, j'utilise DHCP pour mon réseau local ! Comment puis-je configurer mon /etc/hosts ?" Très simple, en réalité. Entrez juste les lignes pour toutes les adresses que votre serveur DHCP va délivrer, ainsi que tous les périphériques statiques :
::1 localhost.in.example.org localhost
127.0.0.1 localhost.in.example.org localhost
192.168.1.1 gw.in.example.org gw
192.168.1.20 scrappy.in.example.org scrappy
192.168.1.35 shadow.in.example.org shadow
192.168.1.100 d100.in.example.org d100
192.168.1.101 d101.in.example.org d101
192.168.1.102 d102.in.example.org d102
         [... snip ...] 
192.168.1.198 d198.in.example.org d198
192.168.1.199 d199.in.example.org d199

Dans ce cas, je présume que votre plage DHCP est définie entre 192.168.1.100 et 192.168.1.199, ainsi que trois définitions statiques au début du fichier.

Si votre passerelle doit utiliser DHCP pour sa configuration, vous devriez rencontrer un problème -- dhclient va écraser votre fichier /etc/resolv.conf à chaque renouvellement de paramètres, cela supprimera la ligne "lookup file bind". Cela peut être résolu en ajoutant la ligne "lookup file bind" au fichier /etc/resolv.conf.tail.

Correction, en utilisant un serveur DNS local

Les détails sur cette mise en place, sortent du cadre de ce document, mais la procédure basique est de configurer votre serveur DNS favori, et de vous assurer qu'il a autorité pour les résolutions "forward" et "reverse" pour tous les points du réseau, et que vos ordinateurs (ainsi que votre passerelle) utilisent ce serveur DNS.

8.23 - Pourquoi les pages web d'OpenBSD ne sont-elles pas conformes au HTML4/XHTML ?

Les présentes pages Web ont été écrites avec précaution pour fonctionner sur une large variété de navigateurs actuels, pour les versions 4.0 et suivantes. Nous ne souhaitons pas rendre ces anciennes pages conformes aux normes HTML4 ou XHTML tant que nous ne serons pas sûrs qu'elles fonctionneront aussi avec les anciens navigateurs; ce n'est tout simplement pas une priorité. Nous accueillons les nouveaux contributeurs, mais nous vous suggérons de travailler à écrire du code, ou documenter de nouveaux aspects du système, et non de vous concentrer sur la conformité aux nouveaux standards des pages existantes.

8.24 - Mon horloge est décalée de plusieurs heures. Pourquoi ?

Lorsque vous utilisez rdate(8) pour synchroniser votre horloge à un serveur NTP, vous pourrez observer que votre horloge avance/retarde d'une vingtaine de secondes par rapport à votre définition locale de temps.

Ceci est causé par une différence entre le temps UTC (Coordinated Universal Time, basé sur des observations astronomiques) et le temps TAI (International Atomic Time, basé sur des horloges atomiques). Pour compenser les variations dans la rotation de la Terre, des secondes sont insérées dans UTC, mais TAI n'est pas ajusté. Pour une description plus détaillée, cherchez "leap seconds UTC TAI" sur le Web.

Corriger le problème est simple. Dans beaucoup de pays, vous obtiendrez la bonne heure si vous utilisez le paramètre "-c" à rdate(8) et utilisez une zone dans le dossier /usr/share/zoneinfo/right/. Par exemple, si vous habitez en Allemagne, vous pouvez utiliser ces commandes :

        # cd /etc && ln -sf /usr/share/zoneinfo/right/CET localtime
        # rdate -ncv ptbtime1.ptb.de
Dans d'autres pays, les règles peuvent différer.

8.25 - Pourquoi mon horloge avance/retarde-t-elle de plusieurs heures ?

Par défaut, OpenBSD suppose que l'horloge matérielle de votre équipement est paramétrée de telle façon à indiquer l'heure UTC ("Universal Coordinated Time" - Temps universel coordonné) au lieu de l'heure locale comme l'assument certains systèmes d'exploitation ; cela peut causer certains problèmes en cas de Multiboot.

La plupart des autres systèmes d'exploitation peuvent être configurés de la même façon ce qui permet d'éviter tout problème.

Si avoir l'horloge paramétrée sur UTC représente un problème, vous pouvez changer le comportement par défaut à l'aide de config(8). Par exemple, pour configurer OpenBSD de telle façon à utiliser une horloge matérielle paramétrée en US/Eastern (5 heures de moins que UTC, c'est-à-dire 300 minutes) :

# config -ef /bsd
OpenBSD 5.4 (GENERIC) #37: Tue Jul 30 12:05:01 MDT 2013
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> timezone 300
timezone = 300, dst = 0
ukc> quit
Saving modified kernel.
Veuillez consulter options(4) et cherchez l'option "TIMEZONE=value" pour plus d'informations.

Normalement, le fuseau horaire est paramétré à l'installation. Si vous avez besoin de modifier le fuseau horaire, vous pouvez créer un nouveau lien symbolique vers le fichier de fuseau horaire adéquat dans /usr/share/zoneinfo. Par exemple, pour paramétrer la machine de telle façon à utiliser EST5EDT comme le nouveau fuseau horaire local :

# ln -fs /usr/share/zoneinfo/EST5EDT /etc/localtime

Veuillez consulter également :

[Index de la FAQ] [Section 7 - Contrôle du clavier et de l'affichage] [Section 9 - Migrer vers OpenBSD]


[back] www@openbsd.org
$OpenBSD: faq8.html,v 1.100 2013/11/01 18:04:04 ajacoutot Exp $