[OpenBSD]

[FAQ Index] [Naar Sectie 7 - Toetsenbord en Scherm Bediening] [Naar Sectie 9 - Migreren naar OpenBSD]

8 - Algemene Vragen


Inhoudsopgave


8.1 - Ik ben mijn root wachtwoord vergeten, wat moet ik nu doen?

Het proces om root terug te krijgen is: in single user modus starten, de relevante partities (/ en /usr) mounten, passwd(1) gebruiken om het root wachtwoord te veranderen. Daarna kan u weer normaal starten en inloggen.

Het proces in detail:

Als dit een niet-persoonlijke machine is, gebruikt u waarschijnlijk beter sudo(8) om meerdere (betrouwbare) mensen de mogelijkheid te geven om root commando's uit te voeren.

"Wacht. Dat zag er te gemakkelijk uit! Dat is niet erg veilig!" Als een aanvaller fysische toegang heeft tot uw systeem, dan wint hij, ongeacht het besturingssysteem op de computer. Er zijn manieren om het gebruik van een wachtwoord af te dwingen in single user modus (zie ttys(5)), of de pause op i386/amd64 te elimineren (zie boot.conf), maar praktisch gesproken is het ook vrij gemakkelijk om rond die trucjes heen te werken (Eén manier: bootdiskette of CDROM, wijzig of vervang het wachtwoordenbestand). U kan dat proberen te voorkomen, maar dan zal iemand de harde schijf uit uw computer halen. Het moeilijk maken om uw computer te beheren is geen echte veiligheid, en als u de machine niet fysisch beveiligd hebt, dan hebt u geen echte veiligheid.

Opmerking: vele "remote management" systemen geven het meeste van de functionaliteit van fysische toegang tot de computer, en dat moet in overweging genomen worden. Zeg uzelf niet dat het systeem veilig is als er voor een aanvaller een manier bestaat om de console te nemen, een virtuele diskette in te steken, en de machine dwingen te herstarten. Ze kunnen even goed fysische toegang tot de machine hebben. Het console beheersysteem is waarschijnlijk niet zo veilig als OpenBSD...

8.2 - X wil niet starten, ik krijg allerlei foutboodschappen

Een veel voorkomende oorzaak van X problemen is de machdep.allowaperture sysctl(8) instelling. Aangezien dit standaard uitgeschakeld is in OpenBSD, is dit een heel waarschijnlijke oorzaak van het probleem.

U moet /etc/sysctl.conf bewerken en machdep.allowaperture=2 (of 1, afhankelijk van uw platform) instellen. Dit zal X toegang verlenen tot het aperture stuurprogramma, xf86(4), bij de volgende reboot. Deze toegang kan niet meer beschikbaar gesteld worden na het booten. Dit kan ook tijdens de installatie ingesteld worden als u "Y" antwoordt op de vraag of u van plan bent X te draaien.

OpenBSD vereist dat de aperture driver geactiveerd wordt op alpha, amd64, i386, macppc en sparc64 platformen om toegang tot de videokaarten te regelen. Andere platformen gebruiken een veiligere manier om het videosysteem te behandelen, en hebben dit niet nodig (en hebben het niet in hun kernel). Als u niet verwacht X te draaien op uw systeem, wordt het aangeraden dat u het aperture stuurprogramma niet inschakelt.

Voor meer informatie over het instellen en gebruiken van X op uw platform, zie het /usr/X11R6/README bestand op uw geïnstalleerd systeem.

8.3 - Kan ik programmeertaal "L" gebruiken op OpenBSD?

U zal ondersteuning vinden voor vele gangbare programmeertalen ofwel in het basissysteem (meer bepaald in de baseXX.tgz en compXX.tgz bestandensets), of in het packages en ports systeem. Het wordt aangeraden dat u de vereiste bestandenset of package installeert die de specifieke compiler bevat die u wil gebruiken, in plaats van deze vanaf broncode te bouwen. Voor sommige compilers vereist het bouwen vanaf broncode veel systeemmiddelen en het is vaak onnodig tenzij u specifieke behoeften hebt of er geen package beschikbaar is.

De volgende tabel probeert een overzicht te bieden van compilers voor verschillende talen, waar u ze kan vinden, en of er problemen of beperkingen aan verbonden zijn. Sommige hiervan zijn beperkt tot bepaalde platformen. Dit kan gezien worden ofwel door een zoekresultaat doorheen de ports tree te onderzoeken, en te noteren wat er vermeld staat bij "Archs", of door rechtstreeks de Makefile van de port te inspecteren. Zoek in het laatste geval naar lijnen die ONLY_FOR_ARCHS, NOT_FOR_ARCHS, BROKEN, enz. bevatten.

Opmerking: Voor het gebruiksgemak biedt dit artikel een alfabetische lijst, zonder onderscheid te maken tussen verschillende categorieën van programmeertalen. Dit is geen allesomvattende lijst van al wat beschikbaar is of gebruikt kan worden op OpenBSD. Als u vindt dat er onnauwkeurigheden of problemen zijn die hier niet vermeld worden, dan staat het u vrij om dat te melden.

TaalWaar?Opmerkingen
Awk base53.tgz, awk(1)
lang/gawk GNU awk
C, C++ comp53.tgz, gcc(1) De C/C++ compilers in het basissysteem werden nagekeken en ze hebben verscheidene beveiligingsverbeteringen (bv. ProPolice) standaard ingeschakeld. Raadpleeg alstublieft gcc-local(1) voor details. Ze zullen ook waarschuwingen geven wanneer onveilige functies zoals sprintf(), strcpy(), strcat(), tmpnam(), enz. gebruikt worden. De meeste platformen gebruiken gcc 4.2.1.
lang/gcc lang/llvm Deze compilers zijn niet door een beveiligingscontrole gegaan en bevatten geen beveiligingsverbeteringen zoals die in het basissysteem. De gcc binaries zijn hernoemd naar egcc, eg++, enz. om verwarring met hun tegenhangers in het basissysteem te vermijden.
Caml lang/ocaml Objective Caml
COBOL lang/open-cobol
Erlang lang/erlang
Fortran lang/g77 Alleen Fortran 77 ondersteuning.
lang/gcc Fortran 95 wordt ook ondersteund door egfortran in gcc 4.0 en hoger. Deze nieuwe compiler is beschikbaar als subpackage (f95) van gcc.
Haskell lang/ghc
lang/nhc98
Java devel/jdk Sun JDK - alleen 1.7 als een package; 1.6 wordt niet aanbevolen vanwege een gebrek aan updates en een beperkende licentie.
www/icedtea-web Browser-plugin en web start alleen voor jdk/1.7.
devel/eclipse Grote IDE; werkt met Sun JDK.
devel/netbeans Nog een IDE; werkt met SUN JDK.
Lisp lang/clisp
Lua lang/lua Bijkomende Lua libraries en hulp-utilities zijn beschikbaar in de ports tree.
Perl base53.tgz, perl(1) Er zijn veel Perl modules beschikbaar in de ports tree, dus zoek daar eerst alvorens modules te installeren vanaf CPAN.
Perl 6 lang/rakudo
PHP lang/php Talrijke subpackages zijn beschikbaar voor verschillende PHP modules.
Prolog lang/gprolog GNU Prolog compiler.
lang/swi-prolog SWI-Prolog omgeving.
Python lang/python Andere ports gebruiken standaard Python 2.7.
Ruby lang/ruby
Scheme lang/chicken
lang/scheme48
lang/scm
shells/scsh
Smalltalk lang/squeak
Tcl lang/tcl

Andere ontwikkelingshulpmiddelen

Bijkomend zijn er vele andere ontwikkelingshulpmiddelen beschikbaar in het basissysteem of als packages of ports. Enkele voorbeelden:

8.4 - Wat is de ports tree?

Raadpleeg alstublieft FAQ 15, Werken met ports.

8.5 - Wat zijn packages?

Raadpleeg alstublieft FAQ 15, Package beheer.

8.6 - Moet ik nu Ports of Packages gebruiken?

Raadpleeg alstublieft FAQ 15.

8.8 - Is er een manier om mijn diskettestation te gebruiken als het niet aangesloten is tijdens het opstarten?

U moet de kernel instellen om altijd aan te nemen dat het diskettestation is aangesloten, zelfs als het tijdens de hardware probe niet gedetecteerd wordt, door de 0x20 flag bit in te stellen op fdc(4). Dit kan gedaan worden met User Kernel Config of config(8) om uw kernel aan te passen,

# config -e -f /bsd
OpenBSD 5.3 (GENERIC) #50: Tue Mar 12 18:35:23 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 - OpenBSD Bootloader (i386, amd64 specifiek)

Bij het booten van uw OpenBSD systeem hebt u waarschijnlijk de boot prompt opgemerkt.

boot>

De meeste mensen zullen hier niets hoeven te doen. Het zal automatisch booten als er geen commando's gegeven worden. Maar soms duiken er problemen op, of zijn er speciale functies nodig. Dat is waarvoor deze opties handig kunnen zijn. Om te beginnen leest u best de boot(8) man pagina door. Hier zullen we overgaan tot de meest voorkomende en gebruikte commando's voor de bootloader.

Om te beginnen, als er geen commando's ingegeven worden, zal de bootloader automatisch /bsd proberen te booten. Als dat mislukt, zal hij /obsd proberen, en als dat mislukt, zal hij /bsd.old proberen. U kan met de hand een kernel specificeren door te typen:

boot> boot hd0a:/bsd
of
boot> b /bsd

Dit zal de kernel met de naam bsd booten vanaf de 'a' partitie van de als eerste door het BIOS herkende harde schijf.

Hier is een korte lijst van opties die u kan gebruiken met de OpenBSD kernel.

Deze worden ingevoerd in dit formaat: boot [ image [-acds]]

Voor verdere literatuur kan u de boot(8) man pagina lezen.

8.10 - S/Key

S/Key is een ``eenmalig wachtwoord'' authenticatiesysteem. Het kan nuttig zijn voor mensen die niet de mogelijkheid hebben om een vercijferd kanaal te gebruiken dat hun authenticatiegegevens beveiligt, zoals kan worden gerealiseerd met ssh(1).

WAARSCHUWING: Eenmalige wachtwoordsystemen beschermen alleen authenticatie-informatie. Ze voorkomen niet dat afluisteraars van het netwerk toegang krijgen tot privé informatie. Bovendien, als u verbinding maakt met een beveiligd systeem A, is het aan te raden dat u dit doet vanaf een ander vertrouwd systeem B, om te verzekeren dat niemand toegang krijgt tot systeem A door uw toetsaanrakingen te loggen of door invoer en uitvoer op uw terminal devices op te vangen en/of te vervalsen.

Het S/Key systeem genereert een sequentie van eenmalige (eenmalig gebruik) wachtwoorden vanuit de geheime "passphrase" van een gebruiker, samen met een uitdaging ("challenge") ontvangen van de server, door middel van een veilige hash-functie. Het systeem is slechts veilig als de geheime passphrase nooit over het netwerk gestuurd wordt. Daarom MOET het initaliseren of wijzigen van uw geheime passphrase gebeuren over een beveiligd kanaal zoals ssh(1) of de console.

OpenBSD's S/Key implementatie kan een waaier aan algoritmen gebruiken als de één-wegs hash functie. De volgende algoritmen zijn beschikbaar:

S/Key instellen - De eerste stappen

Om te beginnen moet de directory /etc/skey bestaan. Als deze directory niet bestaat, laat deze dan maken door de super-user. Dit kan gebeuren door gewoon het volgende te doen:

# skeyinit -E

Zodra deze directory bestaat, kan u uw S/Key initialiseren. Om dit te doen, moet u skeyinit(1) gebruiken. Aangezien skeyinit(1) u om uw S/Key geheime passhprase zal vragen, moet u dit doen over een beveiligd kanaal, zoals hierboven uitgelegd! Het programma zal u hier zelfs aan herinneren. Met skeyinit(1) zal u eerst om uw wachtwoord tot het systeem gevraagd worden. Dit is hetzelfde wachtwoord dat u gebruikte om op het systeem in te loggen. Zodra u uzelf geauthoriseerd hebt met uw systeemwachtwoord, zal u om uw S/Key geheime passphrase gevraagd worden. Dit is NIET uw systeemwachtwoord. Uw geheime passphrase moet ten minste 10 tekens lang zijn. We raden aan om een gemakkelijk te onthouden zin die meerdere woorden bevat, als geheime passphrase te gebruiken. Hier is een voorbeeld van het toevoegen van een gebruiker.

$ 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

Een bepaald belangrijke lijn hier is ID ericj skey is otp-md5 100 oshi45820. Deze geeft veel informatie aan de gebruiker. Hier is een onderverdeling van de secties en hun belang.

Maar van meer onmiddellijk belang is uw eenmalig wachtwoord. Uw eenmalig wachtwoord bestaat uit 6 kleine woorden, samen gecombineerd is dit uw eenmalig wachtwoord, spaties en al. Het eenmalig wachtwoord dat door skeyinit weergegeven wordt, kan niet gebruikt worden om in te loggen (er is een gebruik voor dit eerste eenmalig wachtwoord, zie skeyinit(1)). Om te kunnen inloggen, moet een eenmalig wachtwoord overeenkomstig de uitdaging gegeven door het loginproces berekend worden met skey(1). De volgende sectie zal u tonen hoe u dat moet doen.

Effectief S/Key gebruiken om in te loggen.

Ondertussen is uw skey geïnitialiseerd. U bent klaar om in te loggen. Hier is een voorbeeldsessie die S/Key gebruikt om in te loggen. Om een S/Key login uit te voeren, voegt u :skey toe aan uw loginnaam.

$ 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.3 (GENERIC) #50: Tue Mar 12 18:35:23 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.

Merk op dat ik ":skey" toevoegde aan mijn gebruikersnaam. Dit zegt ftpd dat ik wil authenticeren met S/Key. Sommigen onder u hebben misschien opgemerkt dat mijn sequentienummer veranderd is in otp-md5 96 oshi45820. Dit is zo omdat ik intussen verscheidene keren S/Key gebruikt heb om in te loggen. Maar hoe verkrijgt u uw eenmalig wachtwoord? Wel, om het eenmalig wachtwoord te berekenen, zal u het sequentienummer dat u gebruikt en uw sleutel moeten kennen. Zoals u waarschijnlijk al denkt, hoe kan u nu onthouden op welk sequentienummer u zit?

Wanneer u inlogt, geeft het loginproces een lijn met de benodigde informatie, die u kan gebruiken om uw eenmalig wachtwoord ter plaatse te genereren met een andere vertrouwde computer die u benadert door een beveiligd kanaal, door de lijn naar een commandoshell te kopiëren en te plakken:

otp-md5 96 oshi45820

Na het typen van uw passphrase, wordt uw eenmalig wachtwoord gegeven, dat u dan kan kopiëren en plakken op de S/Key Password prompt om in te loggen. Niet alleen is otp-md5 een beschrijving van de gebruikte hash, het is ook een alternatieve naam voor het skey(1) commando.

Indien u al ingelogd bent en u een eenmalig wachtwoord wil genereren voor de volgende login, gebruikt u skeyinfo(1), het zal u zeggen wat u voor de volgende login moet gebruiken. Hier moet ik bijvoorbeeld nog een ander eenmalig wachtwoord genereren voor een login die ik misschien in de toekomst zal moeten maken. (Onthou dat ik dit vanop een beveiligd kanaal doe).

$ skeyinfo
95 oshi45820

Nog een betere manier is om skeyinfo -v, te gebruiken, dat een commando geeft geschikt om in de shell te draaien. Bijvoorbeeld:

$ skeyinfo -v
otp-md5 95 oshi45820

Dus, de eenvoudigste manier om het volgende S/Key wachtwoord te genereren is gewoon:

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

Bemerk de backticks in het bovenstaande voorbeeld.

Ik weet zeker dat velen onder u niet altijd een beveiligde verbinding hebben of een vertrouwde lokale computer om deze wachtwoorden aan te maken, en ze over een onbeveiligde verbinding aanmaken is niet mogelijk, dus hoe kan u op een ogenblik meerdere wachtwoorden aanmaken? U kan skey(1) een getal meegeven dat aangeeft hoeveel wachtwoorden u wil dat er aangemaakt worden. Dit kan dan afgedrukt worden en u kan dit met zich meenemen waar u ook gaat.

$ 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

Bemerk hier echter, dat het onderste wachtwoord het eerste is dat gebruikt moet worden, omdat we neerwaarts tellen vanaf 100.

S/Key gebruiken met ssh(1) en telnet(1)

S/Key gebruiken met telnet(1) of ssh(1) gebeurt op vrijwel dezelfde manier als met ftp--u voegt gewoon ":skey" toe aan het uiteinde van uw gebruikersnaam. Voorbeeld:

$ 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.3 (GENERIC) #50: Tue Mar 12 18:35:23 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 - Welke OpenBSD platformen ondersteunen SMP?
(Symmetric Multi-Processor)

SMP wordt ondersteund op de OpenBSD/i386, OpenBSD/amd64, OpenBSD/mvme88k, OpenBSD/sparc64 (inclusief de UltraSPARC T1/T2/T2+ processoren), OpenBSD/macppc, OpenBSD/sgi (alleen Octane) en OpenBSD/hppa platformen.

Een afzonderlijke SMP kernel, "bsd.mp", wordt voorzien in de installatiebestandensets. Indien meerdere processoren worden gedetecteerd tijdens de installatie, dan wordt deze automatisch geïnstalleerd als de standaard kernel, /bsd, en de kernel voor een enkele processor wordt hernoemd naar /bsd.sp.

Indien u additionele processoren toevoegt aan een systeem dat werd geïnstalleerd met slechts één processor, dan zult u de geschikte bsd.mp kernel willen installeren. Hernoem dan /bsd naar /bsd.sp en hernoem /bsd.mp naar /bsd.

Er wordt gehoopt dat andere SMP-capabele platformen in de toekomst ondersteund zullen worden. Op de meeste andere platformen zal OpenBSD draaien op een SMP systeem, maar slechts één processor gebruiken. De uitzondering hierop is het SPARC platform -- OpenBSD/sparc zal soms vereisen dat er extra MBus modules verwijderd worden alvorens het systeem kan booten.

8.13 - Ik krijg Input/output error wanneer ik mijn tty devices probeer te gebruiken

U moet /dev/cuaXX gebruiken voor verbindingen gestart vanaf het OpenBSD systeem, de /dev/ttyXX devices zijn enkel bedoeld voor terminal of dial-in gebruik. Hoewel het in het verleden mogelijk was om tty devices te gebruiken, is de OpenBSD kernel niet langer compatibel met dit gebruik.

Uit 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 - Welke web browsers zijn er beschikbaar voor OpenBSD?

Lynx, een tekstgebaseerde browser, zit in het base systeem, en heeft SSL ondersteuning. Andere beschikbare browsers zijn onder meer (in willekeurige volgorde):

Grafische (X) Browsers

Console (Tekstmodus) Browsers

De meeste van de hierboven genoemde browsers zijn beschikbaar als reeds gecompileerde packages, beschikbaar op de FTP servers en sommige ook op de CD-ROM. Na de installatie van de ports tree zijn ze allen ook te vinden in de /usr/ports/www/ directory.

Aangezien de meeste grafische browsers heel groot zijn en heel wat tijd vereisen om te downloaden en te compileren, kan men best ernstig het gebruik van packages overwegen waar het beschikbaar is.

8.15 - Hoe gebruik ik de mg editor?

mg(1) is een micro Emacs-style tekstverwerker die in OpenBSD zit. Micro betekent dat het een kleine Emacs implementatie is, die veelal gelijkaardig is aan de tekstverwerkingsmogelijkheden van Emacs 17. Veel van Emacs' andere functies zijn niet geïmplementeerd (onder meer mail en news functionaliteit, maar ook modes voor Lisp, C++, Lex, Awk, Java, enz...).

Een beknopte tutorial is ook opgenomen in OpenBSD (te vinden in /usr/src/usr.bin/mg/tutorial).

8.16 - ksh(1) lijkt mijn .profile niet te lezen

Er zijn twee waarschijnlijke redenen waarom ksh(1) schijnbaar het .profile bestand van een gebruiker negeert.

8.17 - Waarom wordt mijn /etc/motd bestand overschreven wanneer ik het gewijzigd heb?

Het /etc/motd bestand wordt bij elke start bewerkt, en daarbij wordt alles tot, maar niet tot en met, de eerste blanco lijn vervangen door de kernel versie-informatie van het systeem. Wanneer u dit bestand bewerkt, zorg dan dat u na deze blanco lijn begint, om te beletten dat /etc/rc deze lijnen verwijdert wanneer het /etc/motd bewerkt bij het opstarten.

8.20 - Antialiased en TrueType lettertypes in X

Bekijk dit document.

8.21 - Ondersteunt OpenBSD journaling bestandssystemen?

Neen. We gebruiken een ander mechanisme met de naam Soft Updates om gelijkaardige resultaten te bereiken. Lees alstublieft FAQ 14 - Soft Updates voor meer details.

8.22 - Reverse DNS
     - of -
Waarom duurt het zo lang om in te loggen?

Veel nieuwe gebruikers van OpenBSD ervaren een loginvertraging van twee minuten bij het gebruik van diensten als ssh of ftp. Dit kan ook ervaren worden bij gebruik van een proxy, zoals ftp-proxy, of wanneer men mail verzendt vanaf een werkstation met sendmail.

Dit is bijna altijd te wijten aan een reverse-DNS probleem. DNS is Domain Name Services, het systeem dat het Internet gebruikt om een naam, zoals "www.openbsd.org" om te zetten in een numeriek IP adres. Een andere taak van DNS is de mogelijkheid om een numeriek adres te nemen en het weer om te zetten naar een "naam", dit is "Reverse DNS".

Om betere logging te bieden, doet OpenBSD een reverse-DNS zoekopdracht op gelijk welke machine die er verbinding naar maakt op vele verschillende manieren, waaronder ssh, ftp, sendmail of ftp-proxy. Jammer genoeg heeft de machine die de verbinding maakt, in sommige gevallen geen juiste reverse DNS entry.

Een voorbeeld van deze situatie:

Een gebruiker stelt een OpenBSD machine in als firewall en gateway naar zijn intern thuisnetwerk, daarbij beeldt hij al zijn interne computers af op één extern IP met behulp van NAT. Ze kunnen het ook gebruiken als een buitenwaartse mail relay. Ze volgen de installatierichtlijnen, en zijn heel tevreden met de resultaten, behalve één ding -- telkens als ze op gelijk welke manier naar de machine proberen te verbinden, zitten ze met twee minuten vertraging voor er iets gebeurt.

Wat is er gaande:

Vanaf een werkstation achter de NAT van de gateway met een ongeregistreerd IP adres van 192.168.1.35, gebruikt de gebruiker ssh om het gateway systeem te benaderen. De ssh client vraagt om gebruikersnaam en wachtwoord, en stuurt deze naar de gateway. De gateway probeert vervolgens uit te zoeken wie er probeert in te loggen door een reverse DNS zoekopdracht uit te voeren naar 192.168.1.35. Het probleem is dat 192.168.0.0 adressen dienen voor privé-gebruik, dus een goed geconfigureerde DNS server buiten uw netwerk weet dat hij geen informatie hoort te hebben over die adressen. Sommige zullen snel een foutboodschap teruggeven, in deze gevallen zal OpenBSD aannemen dat er geen verdere informatie meer kan gewonnen worden, en zal het snel opgeven en de gebruiker gewoon toelaten. Andere DNS servers zullen GEEN antwoord geven. In dit geval zal u uzelf zien wachten totdat de OpenBSD name resolver timeout verstrijkt, wat ongeveer twee minuten duurt voordat de login toestemming zal krijgen om verder te gaan. In het geval van ftp-proxy, zullen sommige ftp clients timeout'en voor de reverse DNS query timeout, wat de indruk wekt dat de ftp-proxy niet werkt.

Dit kan erg vervelend zijn. Gelukkig is het iets gemakkelijk om op te lossen.

Oplossing, met /etc/hosts:

De eenvoudigste oplossing is om uw /etc/hosts bestand te vullen met al de werkstations die u in uw intern netwerk hebt, en ervoor zorgen dat uw /etc/resolv.conf bestand de lijn lookup file bind bevat, wat ervoor zorgt dat de resolver weet dat hij moet beginnen met het /etc/hosts bestand, en indien dat mislukt, de DNS servers gebruiken aangegeven door de "nameserver" lijnen in uw /etc/resolv.conf bestand.

Uw /etc/hosts bestand zal er ongeveer zo uitzien:
::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

Uw resolv.conf bestand zal er ongeveer zo uitzien:
search in.example.org 
nameserver 24.2.68.33
nameserver 24.2.68.34
lookup file bind

Een vaak voorkomende bedenking hierbij is "Maar ik gebruik DHCP voor mijn intern netwerk! Hoe kan ik mijn /etc/hosts configureren?" Eigenlijk vrij eenvoudig. Geef gewoon lijnen in voor alle adressen die uw DHCP zal uitgeven, plus de statische devices:
::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

In dit geval ga ik ervan uit dat u het DHCP bereik hebt ingesteld op 192.168.1.100 tot en met 192.168.1.199, plus de drie statische definities zoals weergegeven bovenaan het bestand.

Als uw gateway DHCP moet gebruiken voor configuratie, kan het goed zijn dat u met een probleem komt te zitten -- dhclient zal uw /etc/resolv.conf overschrijven /etc/resolv.conf telkens wanneer de lease hernieuwd wordt, waardoor de "lookup file bind" lijn zal verwijderd worden. Dit kan opgelost worden door de lijn "lookup file bind" in het bestand /etc/resolv.conf.tail te zetten.

Oplossing, met een lokale DNS server

Details hierover vallen ietwat buiten het bestek van dit document, maar de basistruc is om uw favoriete DNS server in te stellen, en ervoor te zorgen dat hij weet dat hij gezaghebbend ("authoritative") is voor zowel forward als reverse DNS omzetting voor alle knooppunten in het netwerk, en ervoor te zorgen dat uw computers (inclusief uw gateway) weten dat ze hem als DNS server moeten gebruiken.

8.23 - Waarom zijn de OpenBSD webpagina's niet conform met HTML4/XHTML?

De huidige webpagina's werden zorgvuldig vervaardigd om te werken op een waaier aan actuele browsers, teruggaand tot browser versies 4.0 en nieuwer. We willen deze oudere pagina's niet conform maken met HTML4 of XHTML totdat we zeker weten dat ze ook zullen werken met oudere browsers; het is gewoon geen prioriteit. We verwelkomen nieuwe medewerkers, maar stellen voor dat u werkt aan het schrijven van code, of aan het documenteren van nieuwe aspecten van het systeem, niet aan het tweaken van bestaande webpagina's om ze conform te maken met nieuwere standaarden.

8.24 - Waarom staat mijn klok zowat twintig seconden verkeerd?

Wanneer u rdate(8) gebruikt om uw klok te synchroniseren met een NTP server, dan kan het dat u merkt dat uw klok ongeveer twintig seconden verkeerd staat in vergelijking met uw lokale tijdsdefinitie.

Dit wordt veroorzaakt door een verschil tussen de UTC (Coordinated Universal Time, gebaseerd op astronomische waarnemingen) tijd en TAI (International Atomic Time, gebaseerd op atomische klokken) tijd. Om variaties in de aardrotatie te compenseren, worden er "leap seconden" ingevoerd in UTC, maar TAI blijft onaangepast. Deze leap seconden vormen de oorzaak van deze discrepantie. Voor een meer gedetailleerde beschrijving zoekt u op het web naar "leap seconds UTC TAI".

Het probleem aanpakken is vrij eenvoudig. In de meeste landen zal u de juiste tijd krijgen als u de "-c" parameter van rdate(8) gebruikt en een tijdszone uit de directory /usr/share/zoneinfo/right/ gebruikt. Als u bijvoorbeeld in Duitsland gelocaliseerd bent, zou u deze commando's kunnen gebruiken:

     # cd /etc && ln -sf /usr/share/zoneinfo/right/CET localtime
     # rdate -ncv ptbtime1.ptb.de
In andere landen kunnen de regels verschillen.

8.25 - Waarom staat mijn klok verschillende uren verkeerd?

Standaard neemt OpenBSD aan dat uw hardwareklok ingesteld is op UTC (Universal Coordinated Time) veeleer dan de lokale tijd, wat door sommige andere besturingssystemen verondersteld wordt en problemen kan veroorzaken bij multi-booting.

Met veel andere besturingssystemen kan hetzelfde gedaan worden, waardoor dit probleem helemaal vermeden wordt.

Als het instellen van de hardware klok op UTC een probleem vormt, kan u het standaardgedrag van OpenBSD veranderen met config(8). Om bijvoorbeeld OpenBSD te configureren om een hardwareklok te gebruiken die ingesteld is op US/Eastern (5 uren, dus 300 minuten achter t.o.v. UTC):

# config -ef /bsd
OpenBSD 5.3 (GENERIC) #50: Tue Mar 12 18:35:23 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.
Bekijk options(4) en zoek naar de optie "TIMEZONE=value" voor meer informatie.

Gewoonlijk wordt de tijdszone ingesteld tijdens de installatie. Als u er nood aan hebt om de tijdszone te veranderen, kan u een nieuwe symbolische link aanleggen naar het gepaste tijdszonebestand in /usr/share/zoneinfo. Om de machine bijvoorbeeld in te stellen om EST5EDT te gebruiken als de nieuwe lokale tijdszone:

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

Zie ook:

[FAQ Index] [Naar Sectie 7 - Toetsenbord en Scherm Bediening] [Naar Sectie 9 - Migreren naar OpenBSD]


[terug] www@openbsd.org
$OpenBSD: faq8.html,v 1.74 2013/05/02 06:05:50 ajacoutot Exp $