diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile
index 028c1b539f..9923853531 100644
--- a/de_DE.ISO8859-1/books/handbook/Makefile
+++ b/de_DE.ISO8859-1/books/handbook/Makefile
@@ -1,148 +1,155 @@
#
# $FreeBSD$
-# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.30 2003/12/30 16:08:25 mheinen Exp $
-# basiert auf: 1.74
+# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.34 2004/05/09 19:49:44 mheinen Exp $
+# basiert auf: 1.79
#
# Build the FreeBSD Handbook in its German translation.
#
MAINTAINER=alex@FreeBSD.org
DOC?= book
FORMATS?= html-split
HAS_INDEX= true
WITH_GLOSSARY?=
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
IMAGES_EN = advanced-networking/isdn-bus.eps
IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps
IMAGES_EN+= advanced-networking/natd.eps
+IMAGES_EN+= advanced-networking/net-routing.pic
IMAGES_EN+= install/disk-layout.eps
IMAGES_EN+= install/example-dir1.eps
IMAGES_EN+= install/example-dir2.eps
IMAGES_EN+= install/example-dir3.eps
IMAGES_EN+= install/example-dir4.eps
IMAGES_EN+= install/example-dir5.eps
+IMAGES_EN+= mail/mutt1.scr
+IMAGES_EN+= mail/mutt2.scr
+IMAGES_EN+= mail/mutt3.scr
+IMAGES_EN+= mail/pine1.scr
+IMAGES_EN+= mail/pine2.scr
+IMAGES_EN+= mail/pine3.scr
+IMAGES_EN+= mail/pine4.scr
+IMAGES_EN+= mail/pine5.scr
IMAGES_EN+= security/ipsec-network.pic
IMAGES_EN+= security/ipsec-crypt-pkt.pic
IMAGES_EN+= security/ipsec-encap-pkt.pic
IMAGES_EN+= security/ipsec-out-pkt.pic
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
IMAGES_LIB+= callouts/2.png
IMAGES_LIB+= callouts/3.png
IMAGES_LIB+= callouts/4.png
IMAGES_LIB+= callouts/5.png
IMAGES_LIB+= callouts/6.png
IMAGES_LIB+= callouts/7.png
IMAGES_LIB+= callouts/8.png
IMAGES_LIB+= callouts/9.png
IMAGES_LIB+= callouts/10.png
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS+= book.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
SRCS+= boot/chapter.sgml
SRCS+= cutting-edge/chapter.sgml
SRCS+= colophon.sgml
SRCS+= config/chapter.sgml
SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= l10n/chapter.sgml
SRCS+= linuxemu/chapter.sgml
SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml
+SRCS+= multimedia/chapter.sgml
SRCS+= pgpkeys/chapter.sgml
SRCS+= ppp-and-slip/chapter.sgml
SRCS+= ports/chapter.sgml
SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
-SRCS+= sound/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= x11/chapter.sgml
# Entities
SRCS+= chapters.ent
SRCS+= newsgroups.ent
# alle Kapitel bauen
CHAPTERS?= ${SRCS:M*chapter.sgml}
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
.if defined(WITH_GLOSSARY) && !empty(WITH_GLOSSARY)
SGMLFLAGS+= -i chap.freebsd-glossary
.endif
# XXX The Handbook build currently overflows some internal, hardcoded
# limits in pdftex. Until we split the Handbook up, build the PDF
# version using ps2pdf instead of pdftex.
PS2PDF?= ${PREFIX}/bin/ps2pdf
book.tex-pdf:
${TOUCH} book.tex-pdf
book.pdf: book.ps
${PS2PDF} book.ps book.pdf
pgpkeyring: pgpkeys/chapter.sgml
@${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
DOC_PREFIX?= ${.CURDIR}/../../..
.for p in ftp cvsup
SRCS+= mirrors.sgml.${p}.inc
CLEANFILES+= mirrors.sgml.${p}.inc
CLEANFILES+= mirrors.sgml.${p}.inc.tmp
.endfor
SRCS+= eresources.sgml.www.inc
CLEANFILES+= eresources.sgml.www.inc
CLEANFILES+= eresources.sgml.www.inc.tmp
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
.for p in ftp cvsup
mirrors.sgml.${p}.inc: ${XML_MIRRORS} ${XSL_MIRRORS}
${XSLTPROC} ${XSLTPROCOPTS} \
-o $@.tmp \
- --param 'transtable.xml' "'${XML_TRANSTABLE}'" \
--param 'type' "'$p'" \
--param 'proto' "'$p'" \
--param 'target' "'handbook/mirrors/chapter.sgml'" \
${XSL_MIRRORS} ${XML_MIRRORS}
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
${RM} -f $@.tmp
.endfor
eresources.sgml.www.inc: ${XML_MIRRORS} ${XSL_MIRRORS}
${XSLTPROC} ${XSLTPROCOPTS} \
-o $@.tmp \
- --param 'transtable.xml' "'${XML_TRANSTABLE}'" \
--param 'type' "'www'" \
--param 'proto' "'http'" \
--param 'target' "'handbook/eresources/chapter.sgml'" \
${XSL_MIRRORS} ${XML_MIRRORS}
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
${RM} -f $@.tmp
diff --git a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
index cf32a2f587..52f835895b 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,5012 +1,7466 @@
JohannKoisÜbersetzt von
-
Weiterführende NetzwerkthemenÜbersichtDieses Kapitel beschreibt einige der häufiger
verwendeten Netzwerkdienste auf UNIX-Systemen. Es wird
beschrieben, wie die von FreeBSD verwendeten Netzwerkdienste
installiert, getestet und gewartet werden. Zusätzlich sind
im ganzen Kapitel Beispielkonfigurationsdateien vorhanden, von
denen Sie sicherlich profitieren werden.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.
+
+ Bluetooth- sowie drahtlose, der Norm IEEE 802.11
+ entsprechende, Geräte mit FreeBSD verwenden
+ können.
+
+
Eine Bridge unter FreeBSD einrichten können.Ein Netzwerkdateisystem (NFS) einrichten können.Einen plattenlosen Rechner über das Netzwerk starten
können.Einen Netzwerkinformationsserver (NIS) für gemeinsame
Benutzerkonten einrichten können.Automatische Netzwerkeinstellungen mittels DHCP vornehmen
können.Einen Domain Name Server (DNS) einrichten können.Unter Verwendung des NTP-Protokolls Uhrzeit und Datum
- synchronisieren, sowie einen Zeitserver einrichten können.
+ synchronisieren, sowie einen Zeitserver einrichten
+ können.
Wissen, wie man NAT (Network Address Translation)
einrichtet.
- In der Lage sein, den inetd-Daemon
- einzurichten.
+ In der Lage sein, den
+ inetd-Daemon einzurichten.Zwei Computer über PLIP verbinden können.
- IPv6 auf einem FreeBSD-Rechner einrichten können.
+ IPv6 auf einem FreeBSD-Rechner einrichten
+ können.
+
+
+
+ ATM unter &os; 5.X einrichten können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.CoranthGryphonBeigetragen von Gateways und RoutenRoutingGatewaySubnetzDamit ein Rechner einen anderen über ein Netzwerk
finden kann, muss ein Mechanismus vorhanden sein, der
beschreibt, wie man von einem Rechner zum anderen gelangt.
Dieser Vorgang wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adressenpaar: Einem Ziel und einem
Gateway. Dieses Paar zeigt an, dass Sie
- über den Gateway zum
+ über das Gateway zum
Ziel gelangen wollen. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
Standardziel. Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Wir werden
- Standardrouten später etwas genauer behandeln. Außerdem
- gibt es drei Arten von Gateways: Einzelne Rechner (Hosts),
- Schnittstellen (Interfaces, auch als Links
- bezeichnet), sowie Ethernet Hardware-Adressen
- (MAC-Adressen).
+ Standardrouten später etwas genauer behandeln.
+ Außerdem gibt es drei Arten von Gateways: Einzelne Rechner
+ (Hosts), Schnittstellen (Interfaces, auch als Links
+ bezeichnet), sowie Ethernet Hardware-Adressen (MAC-Adressen).
+
Ein BeispielUm die verschiedenen Aspekte des Routings zu
veranschaulichen, verwenden wir folgende Ausgaben von
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
Default-RouteStandardrouteDie ersten zwei Zeilen geben die Standardroute (die wir
im nächsten
Abschnitt behandeln), sowie die
localhost Route an.Loopback-GerätDas in der Routingtabelle für
localhost festgelegte Interface
(Netif-Spalte)
lo0, ist auch als loopback-Gerät
(Prüfschleife) bekannt. Das heißt, dass der ganze
Datenverkehr für dieses Ziel intern (innerhalb des
Gerätes) bleibt, anstatt ihn über ein Netzwerk (LAN)
zu versenden, da das Ziel dem Start entspricht.EthernetMAC-AdresseDer nächste auffällige Punkt sind die mit
0:e0: beginnenden Adressen. Es
handelt sich dabei um Ethernet Hardwareadressen, die auch als
MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner im
lokalen Netz automatisch (im Beispiel test0)
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
passiert über die Ethernet-Schnittstelle
ed0. Außerdem existiert ein Timeout
(in der Spalte Expire) für diese Art
von Routen, der verwendet wird, wenn dieser Rechner in einem
definierten Zeitraum nicht reagiert. Wenn dies passiert, wird
die Route zu diesem Rechner automatisch gelöscht.
Rechner im lokalen Netz werden durch einen als RIP (Routing
Information Protocol) bezeichneten Mechanismus identifiziert,
der den kürzesten Weg zu den jeweiligen Rechnern
bestimmt.SubnetzFreeBSD fügt außerdem Subnetzrouten für das
lokale Subnetz hinzu (10.20.30.255 ist die Broadcast-Adresse
für das Subnetz 10.20.30,
example.com ist der zu
diesem Subnetz gehörige Domainname). Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner. Sie können auch feststellen,
dass keine zusätzlichen Schnittstellen angegeben
sind.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
routed Daemon konfiguriert. Ist
dieser nicht gestartet, sind nur statisch definierte
(explizit eingegebene) Routen vorhanden.Die Zeile host1 bezieht sich auf
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
das Loopback-Gerät (lo0),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.Die zwei host2 Zeilen sind ein Beispiel
dafür, was passiert, wenn wir ein &man.ifconfig.8; Alias
verwenden (Lesen Sie dazu den Abschnitt über Ethernet,
wenn Sie wissen wollen, warum wir das tun sollten.). Das
Symbol => (nach der
lo0-Schnittstelle) sagt aus, dass wir
nicht nur das Loopbackgerät verwenden (da sich die
Adresse auf den lokalen Rechner bezieht), sondern dass es sich
zusätzlich auch um ein Alias handelt. Solche Routen sind
nur auf Rechnern vorhanden, die den Alias bereitstellen;
alle anderen Rechner im lokalen Netz haben für solche
Routen nur eine einfache link#1
Zeile.Die letzte Zeile (Zielsubnetz 224)
behandelt das Multicasting, das wir in einem anderen Abschnitt
besprechen werden.Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
Flags finden. Nachfolgend finden Sie eine
kurze Übersicht von einigen dieser Flags und ihrer
Bedeutung:UUp: Die Route ist aktiv.HHost: Das Ziel der Route ist ein einzelner
Rechner (Host).GGateway: Alle Daten, die an dieses Ziel gesendet
werden, werden von diesem System an ihr jeweiliges
Ziel weitergeleitet.SStatic: Diese Route wurde manuell konfiguriert,
das heißt sie wurde nicht
automatisch vom System erzeugt.CClone: Erzeugt eine neue Route, basierend auf der
Route für den Rechner, mit dem wir uns verbinden.
Diese Routenart wird normalerweise für lokale
Netzwerke verwendet.WWasCloned: Eine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LLink: Die Route beinhaltet einen Verweis auf eine
Ethernetkarte (MAC-Adresse).StandardroutenDefault-RouteStandardrouteWenn sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft,
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
- Pfad uns bereits bekannt ist (Cloned route), dann versucht der
+ Pfad uns bereits bekannt ist
+ (Cloned route), dann versucht der
lokale Rechner über diese Schnittstelle eine Verbindung
herzustellen.Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Default-Route). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit C gekennzeichnet ist.
- Für Rechner im lokalen Netzwerk ist dieser Gateway auf
+ Für Rechner im lokalen Netzwerk ist dieses Gateway auf
welcher Rechner auch immer eine Verbindung nach
außen hat gesetzt (entweder über eine
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
andere Netzwerkverbindung).Wenn Sie die Standardroute für einen Rechner
konfigurieren, der selbst als Gateway zur Außenwelt
funktioniert, wird die Standardroute zum Gateway-Rechner Ihres
Internetanbieter (ISP) gesetzt.Sehen wir uns ein Beispiel für Standardrouten an. So
sieht eine übliche Konfiguration aus:
-
+
+
+
+
+
+
+
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
-
+
+
+
Die Rechner Local1 und
Local2 befinden sich auf Ihrer Seite.
Local1 ist mit einem ISP über eine
PPP-Verbindung verbunden. Dieser PPP-Server ist über ein
lokales Netzwerk mit einem anderen Gateway-Rechner verbunden,
der über eine Schnittstelle die Verbindung des ISP zum
Internet herstellt.Die Standardrouten für Ihre Maschinen lauten:HostStandard GatewaySchnittstelleLocal2Local1EthernetLocal1T1-GWPPP
- Eine häufig gestellte Frage lautet: Warum (oder wie)
- sollten wir T1-GW als Standard-Gateway
- für Local1 setzen,
- statt den (direkt verbundenen) ISP-Server zu
- verwenden?.
+ Eine häufig gestellte Frage lautet: Warum (oder
+ wie) sollten wir T1-GW als Standard-Gateway
+ für Local1 setzen, statt den (direkt
+ verbundenen) ISP-Server zu verwenden?.Bedenken Sie, dass die PPP-Schnittstelle für die
Verbindung eine Adresse des lokalen Netzes des ISP verwendet.
Daher werden Routen für alle anderen Rechner im lokalen
Netz des ISP automatisch erzeugt. Daraus folgt, dass Sie
bereits wissen, wie Sie T1-GW erreichen
können! Es ist also unnötig, einen Zwischenschritt
über den ISP-Server zu machen.Es ist üblich, die Adresse X.X.X.1 als Gateway-Adresse für
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
10.20.30 ist und Ihr ISP
10.9.9 verwendet, sehen die
Standardrouten so aus:Rechner (Host)StandardrouteLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)
+
+ Sie können die Standardroute ganz einfach in der Datei
+ /etc/rc.conf festlegen. In unserem
+ Beispiel wurde auf dem Rechner Local2
+ folgende Zeile in /etc/rc.conf
+ eingefügt:
+
+ defaultrouter="10.20.30.1"
+
+ Die Standardroute kann über &man.route.8; auch direkt
+ gesetzt werden:
+
+ &prompt.root; route add default 10.20.30.1
+
+ Weitere Informationen zum Bearbeiten von
+ Netzwerkroutingtabellen finden Sie in &man.route.8;.Rechner mit zwei HeimatnetzenDual-Homed-HostsEs gibt noch eine Konfigurationsmöglichkeit, die wir
besprechen sollten, und zwar Rechner, die sich in zwei
Netzwerken befinden. Technisch gesehen, zählt jeder als
Gateway arbeitende Rechner zu den Rechnern mit zwei
Heimatnetzen (im obigen Beispiel unter Verwendung einer
PPP-Verbindung). In der Praxis meint man damit allerdings nur
Rechner, die sich in zwei lokalen Netzen befinden.Entweder verfügt der Rechner über zwei
Ethernetkarten und jede dieser Karten hat eine Adresse in
einem separaten Subnetz, oder der Rechner hat nur eine
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. Die
erste Möglichkeit wird verwendet, wenn zwei physikalisch
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus
zwei logisch getrennten Subnetzen besteht.In beiden Fällen werden Routingtabellen erstellt,
- damit jedes Subnetz weiß, dass dieser Rechner als Gateway zum
- anderen Subnetz arbeitet (inbound
- route). Diese Konfiguration
- (der Gateway-Rechner arbeitet als Router zwischen den
- Subnetzen) wird häufig verwendet, wenn es darum geht,
- Paketfilterung oder eine Firewall (in eine oder beide
- Richtungen) zu implementieren.
-
- Wenn Sie möchten, dass dieser Rechner Pakete zwischen
- den beiden Schnittstellen weiterleitet, müssen Sie diese
- Funktion manuell konfigurieren und aktivieren.
+ damit jedes Subnetz weiß, dass dieser Rechner als Gateway
+ zum anderen Subnetz arbeitet (inbound
+ route). Diese Konfiguration (der
+ Gateway-Rechner arbeitet als Router zwischen den Subnetzen) wird
+ häufig verwendet, wenn es darum geht, Paketfilterung oder
+ eine Firewall (in eine oder beide Richtungen) zu implementieren.
+
+
+ Soll dieser Rechner Pakete zwischen den beiden
+ Schnittstellen weiterleiten, müssen Sie diese Funktion
+ manuell konfigurieren und aktivieren. Lesen Sie den
+ nächsten Abschnitt, wenn Sie weitere Informationen zu
+ diesem Thema benötigen.Einen Router konfigurierenRouterEin Netzwerkrouter ist einfach ein System, das Pakete von
einer Schnittstelle zur anderen weiterleitet.
Internetstandards und gute Ingenieurspraxis sorgten
- dafür, dass diese Funktion in FreeBSD per Voreinstellung
+ dafür, dass diese Funktion in FreeBSD in der Voreinstellung
deaktiviert ist. Sie können diese Funktion aktivieren,
indem Sie in &man.rc.conf.5; folgende Änderung
durchführen:gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollDiese Option setzt die &man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Wenn Sie das Routing kurzzeitig
unterbrechen wollen, können Sie die Variable auf
0 setzen.BGPRIPOSPFIhr neuer Router benötigt nun noch Routen, um zu
wissen, wohin er den Verkehr senden soll. Haben Sie ein
(sehr) einfaches Netzwerk, können Sie statische Routen
verwenden. FreeBSD verfügt über den Standard
BSD-Routing-Daemon &man.routed.8;, der RIP (sowohl Version 1
als auch Version 2) und IRDP versteht. BGP v4,
OSPF v2 und andere Protokolle werden von
net/zebra
unterstützt. Es stehen auch kommerzielle Produkte
wie gated zur Verfügung.Selbst wenn FreeBSD auf diese Art konfiguriert wurde,
entspricht es den Standardanforderungen an Internet-Router
nicht vollständig. Für den
normalen Gebrauch kommt es den Standards
aber nahe genug.
+
+
+
+
+ Al
+ Hoang
+ Beigetragen von
+
+
+
+
+ Statische Routen einrichten
+
+
+ Manuelle Konfiguration
+
+ Nehmen wir an, dass wir über folgendes Netzwerk
+ verfügen:
+
+
+ INTERNET
+ | (10.0.0.1/24) Default Router to Internet
+ |
+ |Interface xl0
+ |10.0.0.10/24
+ +------+
+ | | RouterA
+ | | (FreeBSD gateway)
+ +------+
+ | Interface xl1
+ | 192.168.1.1/24
+ |
+ +--------------------------------+
+ Internal Net 1 | 192.168.1.2/24
+ |
+ +------+
+ | | RouterB
+ | |
+ +------+
+ | 192.168.2.1/24
+ |
+ Internal Net 2
+
+
+ RouterA, ein &os;-Rechner, dient als
+ Router für den Zugriff auf das Internet. Die
+ Standardroute ist auf 10.0.0.1
+ gesetzt, damit ein Zugriff auf das Internet möglich wird.
+ Wir nehmen nun an, dass RouterB bereits
+ konfiguriert ist und daher weiß, wie er andere Rechner
+ erreichen kann. Dazu wird die Standardroute von
+ RouterB auf
+ 192.168.1.1 gesetzt, da dieser
+ Rechner als Gateway fungiert.
+
+ Sieht man sich die Routingtabelle für
+ RouterA an, erhält man folgende Ausgabe:
+
+
+ &prompt.user; netstat -nr
+Routing tables
+
+Internet:
+Destination Gateway Flags Refs Use Netif Expire
+default 10.0.0.1 UGS 0 49378 xl0
+127.0.0.1 127.0.0.1 UH 0 6 lo0
+10.0.0/24 link#1 UC 0 0 xl0
+192.168.1/24 link#2 UC 0 0 xl1
+
+ Mit dieser Routingtabelle kann RouterA
+ unser internes Netz 2 nicht erreichen, da keine Route zum
+ Rechner 192.168.2.0/24
+ vorhanden ist. Um dies zu korrigieren, kann die Route manuell
+ gesetzt werden. Durch den folgenden Befehl wird das
+ interne Netz 2 in die Routingtabelle des Rechners
+ RouterA aufgenommen, indem
+ 192.168.1.2 als nächster
+ Zwischenschritt verwenden wird:
+
+ &prompt.root; route add -net 192.168.2.0/24 192.168.1.2
+
+ Ab sofort kann RouterA alle Rechner des
+ Netzwerks 192.168.2.0/24
+ erreichen.
+
+
+
+ Routen dauerhaft einrichten
+
+ Das obige Beispiel ist für die Konfiguration einer
+ statischen Route auf einem laufenden System geeignet. Diese
+ Information geht jedoch verloren, wenn der &os;-Rechner neu
+ gestartet werden muss. Um dies zu verhindern, wird diese
+ Route in /etc/rc.conf eingetragen:
+
+ # Add Internal Net 2 as a static route
+static_routes="internalnet2"
+route_internalnet2="-net 192.168.2.0/24 192.168.1.2"
+
+ Die Variable static_routes enthält
+ eine Reihe von Strings, die durch Leerzeichen getrennt sind.
+ Jeder String bezieht sich auf den Namen einer Route. In
+ unserem Beispiel hat static_routes
+ internalnet2 als einzigen String.
+ Zusätzlich verwendet man die Konfigurationsvariable
+ route_internalnet2,
+ in der alle sonstigen an &man.route.8; zu übergebenden
+ Parameter festgelegt werden. In obigen Beispiel hätte
+ man folgenden Befehl verwendet:
+
+ &prompt.root; route add -net 192.168.2.0/24 192.168.1.2
+
+ Daher wird
+ "-net 192.168.2.0/24 192.168.1.2" als
+ Parameter der Variable route_ angegeben.
+
+
+ Wie bereits erwähnt, können bei
+ static_routes auch mehrere Strings
+ angegeben werden. Dadurch lassen sich mehrere statische
+ Routen anlegen. Durch folgende Zeilen werden auf einem
+ imaginären Rechner statische Routen zu den Netzwerken
+ 192.168.0.0/24 sowie 192.168.1.0/24 definiert:
+
+ static_routes="net1 net2"
+route_net1="-net 192.168.0.0/24 192.168.0.1"
+route_net2="-net 192.168.1.0/24 192.168.1.1"
+
+
+
Verteilung von Routing-Informationenrouting propagationWir haben bereits darüber gesprochen, wie wir unsere
- Routen zur Außenwelt definieren, aber nicht darüber, wie
- die Außenwelt uns finden kann.
+ Routen zur Außenwelt definieren, aber nicht darüber,
+ wie die Außenwelt uns finden kann.
Wir wissen bereits, dass Routing-Tabellen so erstellt
werden können, dass sämtlicher Verkehr für
einen bestimmten Adressraum (in unserem Beispiel ein
Klasse-C-Subnetz) zu einem bestimmten Rechner in diesem
Netzwerk gesendet wird, der die eingehenden Pakete im Subnetz
verteilt.Wenn Sie einen Adressraum für Ihre Seite zugewiesen
bekommen, richtet Ihr Diensteanbieter seine Routingtabellen so
ein, dass der ganze Verkehr für Ihr Subnetz entlang Ihrer
PPP-Verbindung zu Ihrer Seite gesendet wird. Aber woher
wissen die Seiten in der Außenwelt, dass sie die Daten an
Ihren ISP senden sollen?Es gibt ein System (ähnlich dem verbreiteten DNS),
das alle zugewiesenen Adressräume verwaltet und ihre
Verbindung zum Internet-Backbone definiert und dokumentiert.
Der Backbone ist das Netz aus
Hauptverbindungen, die den Internetverkehr in der ganzen Welt
transportieren und verteilen. Jeder Backbone-Rechner
verfügt über eine Kopie von Haupttabellen, die den
- Verkehr für ein bestimmtes Netzwerk über
- hierarchisch vom Backbone über eine Kette von
- Diensteanbietern bis hin zu Ihrer Seite leiten.
+ Verkehr für ein bestimmtes Netzwerk hierarchisch vom
+ Backbone über eine Kette von Diensteanbietern bis hin zu
+ Ihrer Seite leiten.
Es ist die Aufgabe Ihres Diensteanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit Ihrer Seite
verbunden wurden. Durch diese Mitteilung der Route ist nun
auch der Weg zu Ihnen bekannt. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.ProblembehebungtracerouteManchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, Sie zu
erreichen. Vielleicht der nützlichste Befehl, um
festzustellen, wo das Routing nicht funktioniert, ist
- &man.traceroute.8;. Er ist außerdem sehr nützlich, wenn
- Sie einen entfernten Rechner nicht erreichen können
- (sehen Sie dazu auch &man.ping.8;).
+ &man.traceroute.8;. Er ist außerdem sehr nützlich,
+ wenn Sie einen entfernten Rechner nicht erreichen können
+ (lesen Sie dazu auch &man.ping.8;).
&man.traceroute.8; wird mit dem zu erreichenden Rechner
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
entlang des Verbindungspfades. Schließlich wird der
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
(beispielsweise durch Nichterreichbarkeit eines
Gateway-Rechners).
- Weitere Informationen erhalten Sie in der
- Hilfeseite &man.traceroute.8;.
+ Weitere Informationen finden Sie in
+ &man.traceroute.8;.Multicast-RoutingMulticast-Routingoptions MROUTING
+
&os; unterstützt sowohl Multicast-Anwendungen als
auch Multicast-Routing. Multicast-Anwendungen müssen
- nicht konfiguriert werden; sie laufen einfach. Multicast-Routing
- muss in der Kernelkonfiguration aktiviert werden:
+ nicht konfiguriert werden, sie laufen einfach.
+ Multicast-Routing muss in der Kernelkonfiguration aktiviert
+ werden:
options MROUTING
- Zusätzlich müssen für den
- Multicast-Routing-Dæmon, &man.mrouted.8;,
- Tunnel und DVMRP in der Datei /etc/mrouted.conf
- eingerichtet werden. Weitere Informationen erhalten
- Sie in der Hilfeseite &man.mrouted.8;.
+ Zusätzlich muss &man.mrouted.8;, der
+ Multicast-Routing-Daemon, über die Datei
+ /etc/mrouted.conf eingerichtet werden,
+ um Tunnel und DVMRP zu aktivieren. Weitere Informationen
+ zu diesem Thema finden Sie in &man.mrouted.8;.EricAndersonGeschrieben von Drahtlose Netzwerkedrahtlose Netzwerke802.11drahtlose NetzwerkeEinführungEs kann sehr nützlich sein, einen Computer zu
verwenden, ohne sich die ganze Zeit mit einem Netzwerkkabel
herumärgern zu müssen. FreeBSD kann auf drahtlose
Netzwerke (wireless LAN)
- zugreifen und sogar als Zugangspunkt
+ zugreifen und sogar als Zugangspunkt
(access point) für
drahtlose Netzwerke verwendet werden.Betriebsmodi drahtloser Geräte
- Drahtlose Geräte können in zwei Modi konfiguriert
- werden: BSS und IBSS.
+ Drahtlose 802.11-Geräte können in zwei Modi
+ konfiguriert werden: BSS und IBSS.BSS-Modus
- Überlicherweise wird der BSS-Modus, der auch
+
+ Üblicherweise wird der BSS-Modus, der auch
Infrastruktur-Modus genannt wird, verwendet. In diesem Modus
sind die Zugangspunkte (access
- points mit einem Kabel-Netzwerk verbunden. Jedes
- drahtlose Netzwerk besitzt einen Namen, der als die SSID des
- Netzwerks bezeichnet wird.
+ points) mit einem Kabel-Netzwerk verbunden.
+ Jedes drahtlose Netzwerk besitzt einen Namen, der als die SSID
+ des Netzwerks bezeichnet wird.Drahtlose Clients benutzen ein im IEEE-802.11-Standard
beschriebenes Protokoll, um sich mit den Zugangspunkten zu
- verbinden. Durch die Angabe einer SSID kann sich der Client das
- Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt der
- Client keine SSID an, so wird er mit irgendeinem Netzwerk
- verbunden.
+ verbinden. Durch die Angabe einer SSID kann sich der Client
+ das Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt
+ der Client keine SSID an, so wird er mit einem beliebigen
+ Netzwerk verbunden.
IBSS-Modus
+
Der IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
- für Punkt-zu-Punkt-Verbindungen entworfen. Tatsächlich
- gibt es zwei Modi: Der IBSS-Modus, auch ad-hoc- oder
- IEEE-ad-hoc-Modus, der im IEEE-802.11-Standard definiert wird
- und der demo-ad-hoc-Modus oder Lucent-adhoc-Modus (der zur
- Verwirrung auch schon mal ad-hoc-Modus genannt wird). Der letzte
- Modus stammt aus der Zeit vor IEEE 802.11 und sollte nur noch
- mit alten Installationen verwendet werden. Im folgenden wird
- keiner der ad-hoc-Modi behandelt.
+ für Punkt-zu-Punkt-Verbindungen entworfen. Es gibt zwei
+ Modi: Den IBSS-Modus, auch ad-hoc- oder IEEE-ad-hoc-Modus
+ (definiert im IEEE-802.11-Standard) sowie den demo-ad-hoc-Modus
+ oder Lucent-adhoc-Modus (der manchmal ebenfalls als
+ ad-hoc-Modus bezeichnet wird). Der zweite Modus stammt aus der
+ Zeit vor IEEE 802.11 und sollte nur noch mit alten
+ Installationen verwendet werden. Im folgenden wird keiner der
+ ad-hoc-Modi behandelt.
Infrastruktur-ModusZugangspunkteZugangspunkte sind drahtlose Netzwerkgeräte, die es
einem oder mehreren Clients ermöglichen, diesen als
einen zentralen Verteiler (Hub) zu benutzen. Wenn ein
Zugangspunkt verwendet wird, kommunizieren alle Clients
über diesen Zugangspunkt. Oft werden mehrere
Zugangspunkte kombiniert, um ein ganzes Gebiet, wie ein
Haus, ein Unternehmen oder einen Park mit einem drahtlosen
Netzwerk zu versorgen.Üblicherweise haben Zugangspunkte mehrere
Netzwerkverbindungen: Die drahtlose Karte, sowie eine oder
mehrere Ethernetkarten, über die die Verbindung mit dem
restlichen Netzwerk hergestellt wird.Sie können einen vorkonfigurierten Zugangspunkt
kaufen, oder Sie können sich unter Verwendung von
FreeBSD und einer unterstützten drahtlosen Karte einen
eigenen bauen. Es gibt verschiedene Hersteller, die sowohl
Zugangspunkte als auch drahtlose Karten mit verschiedensten
Eigenschaften vertreiben.Einen FreeBSD-Zugangspunkt installieren
+
drahtlose NetzwerkeZugangspunkteVoraussetzungenUm einen drahtlosen Zugangspunkt unter FreeBSD
einzurichten, müssen Sie über eine drahtlose
Karte verfügen. Zurzeit werden dafür von
FreeBSD nur Karten mit Prism-Chipsatz unterstützt.
Zusätzlich benötigen Sie eine von FreeBSD
unterstützte Ethernetkarte (diese sollte nicht schwer
zu finden sein, da FreeBSD eine Vielzahl von verschiedenen
Karten unterstützt). Für die weiteren
Erläuterungen nehmen wir an, dass Sie den ganzen
Verkehr zwischen dem drahtlosen Gerät und dem an die
Ethernetkarte angeschlossenen Kabel-Netzwerk über
die &man.bridge.4;-Funktion realisieren wollen.
- Die hostap-Funktion, mit der FreeBSD-Zugangspunkte
+ Die hostap-Funktion, mit der FreeBSD Zugangspunkte
implementiert, läuft am besten mit bestimmten
Firmware-Versionen. Prism 2-Karten sollten die
- Version 1.3.4 oder neuer der Firmware verwenden.
+ Firmwareversion 1.3.4 oder neuer verwenden.
Prism 2.5- und Prism 3-Karten sollten die
- Version 1.4.9 der Firmware verwenden. Es kann sein, dass
- auch ältere Versionen funktionieren. Zurzeit ist es nur
- mit &windows;-Werkzeugen der Hersteller möglich, die Firmware
- zu aktualisieren.
+ Firmwareversion 1.4.9 verwenden. Es kann sein,
+ dass auch ältere Versionen funktionieren. Zurzeit ist
+ es nur mit &windows;-Werkzeugen der Hersteller möglich,
+ die Firmware zu aktualisieren.Einrichtung
- Stellen Sie als erstes sicher, dass Ihr System die
+ Stellen Sie als Erstes sicher, dass Ihr System die
drahtlose Karte erkennt:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Kümmern Sie sich jetzt noch nicht um die Details,
sondern stellen Sie nur sicher, dass ihre drahtlose Karte
- überhaupt erkannt und angezeigt wird. Wenn die
- Karte eine PC Card ist und überhaupt nicht
- erkannt wird, schauen Sie in den Hilfeseiten
- &man.pccardc.8; und &man.pccardd.8; nach weiteren
- Hinweisen.
+ überhaupt erkannt und angezeigt wird. Wenn es sich
+ um eine PC Card handelt, die überhaupt nicht
+ erkannt wird, sollten Sie &man.pccardc.8; sowie
+ &man.pccardd.8; lesen.Danach müssen Sie ein Modul laden, um die
Bridge-Funktion von FreeBSD für den Zugangspunkt
- vorzubereiten. Um das &man.bridge.4;-Modul zu laden,
- machen Sie Folgendes:
+ vorzubereiten. Um das Modul &man.bridge.4; zu laden,
+ geben Sie Folgendes ein:
&prompt.root; kldload bridgeDabei sollten beim Laden des Moduls keine
Fehlermeldungen auftreten. Geschieht dies doch, kann es
sein, dass Sie die Bridge-Funktion (&man.bridge.4;)
in Ihren Kernel kompilieren müssen. Der Abschnitt
LAN-Kopplung mit einer
- Bridge sollte Ihnen bei dieser Aufgabe
+ Bridge dieses Handbuchs sollte Ihnen dabei
behilflich sein.Wenn die Bridge-Funktion aktiviert ist,
müssen wir FreeBSD mitteilen, welche Schnittstellen
über die Bridge verbunden werden sollen. Dazu
verwenden wir &man.sysctl.8;:&prompt.root; sysctl net.link.ether.bridge=1
&prompt.root; sysctl net.link.ether.bridge_cfg="wi0 xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1
- Nun ist es an der Zeit, die drahtlose Karte zu
- installieren.
+ Ab &os; 5.2-RELEASE müssen Sie
+ Folgendes eingeben:
+
+ &prompt.root; sysctl net.link.ether.bridge.enable=1
+&prompt.root; sysctl net.link.ether.bridge.config="wi0,xl0"
+&prompt.root; sysctl net.inet.ip.forwarding=1
- Der folgende Befehl konfiguriert einen Zugangspunkt:
+ Nun ist es an der Zeit, die drahtlose Karte zu
+ installieren. Der folgende Befehl konfiguriert einen
+ Zugangspunkt:
- &prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"
+ &prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"
- Die &man.ifconfig.8; Zeile aktiviert das
- wi0-Gerät, und setzt die
- SSID auf my_net sowie den Namen des
- Zugangspunkts auf FreeBSD AP
+ Durch diese Zeile aktiviert &man.ifconfig.8; das
+ Gerät wi0, setzt die SSID auf
+ my_net sowie den Namen des
+ Zugangspunkts auf FreeBSD AP.
Mit wird die Karte in den
11 Mbps-Modus versetzt. Diese Option ist nötig,
- damit -Optionen wirksam werden. Mit
- wird die Schnittstelle als
- Zugangspunkt konfiguriert. Der zu benutzende 802.11b-Kanal
- wird mit festgelegt. In der
- Hilfeseite &man.wicontrol.8; werden weitere Kanäle
-
- aufgezählt.
+ damit -Optionen wirksam werden.
+ Durch wird die
+ Schnittstelle als Zugangspunkt konfiguriert. Der zu
+ benutzende 802.11b-Kanal wird durch
+ festgelegt. Weitere
+ Informationen zu gültigen Kanaloptionen finden Sie in
+ &man.wicontrol.8;.Nun sollten Sie über einen voll
funktionsfähigen und laufenden Zugangspunkt
- verfügen. Mehr Informationen finden Sie
+ verfügen. Weitere Informationen finden Sie
in den Hilfeseiten &man.wicontrol.8;, &man.ifconfig.8;
und &man.wi.4;.Außerdem ist es empfehlenswert, den folgenden
- Abschnitt zu lesen, um sich über die Sicherung bzw.
+ Abschnitt zu lesen, um sich über die Sicherung und
Verschlüsselung von Zugangspunkten zu
informieren.
- Status Informationen
- Wenn der Zugangspunkt eingerichtet ist und läuft,
- können Sie die verbundenen Clients mit dem nachstehenden
- Kommando abfragen:
+ Statusinformationen
- &prompt.root; wicontrol -l
-1 station:
-00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
-
+ Wenn der Zugangspunkt eingerichtet ist und läuft,
+ können Sie die verbundenen Clients mit dem nachstehenden
+ Kommando abfragen:
- Das Beispiel zeigt eine verbundene Station und die
- dazugehörenden Verbindungsparameter. Die angegebene
- Signalstärke sollte nur relativ interpretiert werden, da
- die Umrechnung in dBm oder andere Einheiten abhängig von
- der Firmware-Version ist.
-
+ &prompt.root; wicontrol -l
+1 station:
+00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
+
+ Das Beispiel zeigt eine verbundene Station und die
+ dazugehörenden Verbindungsparameter. Die angegebene
+ Signalstärke ist allerdings mit Vorsicht zu
+ genießen, da die Umrechnung in dBm oder andere
+ Einheiten von der eingesetzten Firmware-Version
+ abhängig ist.
+
ClientsEin drahtloser Client ist ein System, das direkt auf
einen Zugangspunkt oder einen anderen Client
zugreift.Üblicherweise haben drahtlose Clients nur ein
Netzwerkgerät, die drahtlose Netzkarte.Es gibt verschiedene Möglichkeiten, einen
drahtlosen Client zu konfigurieren. Diese hängen von
den verschiedenen drahtlosen Betriebsmodi ab. Man
unterscheidet vor allem zwischen BSS (Infrastrukturmodus,
erfordert einen Zugangspunkt) und IBSS (ad-hoc,
Peer-to-Peer-Modus, zwischen zwei Clients, ohne
Zugangspunkt). In unserem Beispiel verwenden wir den weiter
verbreiteten BSS-Modus, um einen Zugangspunkt anzusprechen.
-
+
VoraussetzungenEs gibt nur eine Voraussetzung, um FreeBSD als
drahtlosen Client betreiben zu können: Sie brauchen
- eine von FreeBSD unterstützte drahtlose
- Karte.
+ eine von FreeBSD unterstützte drahtlose Karte.
Einen drahtlosen FreeBSD-Client einrichtenSie müssen ein paar Dinge über das drahtlose
Netzwerk wissen, mit dem Sie sich verbinden wollen, bevor
Sie starten können. In unserem Beispiel verbinden
wir uns mit einem Netzwerk, das den Namen
- my_net hat, und bei dem die
+ my_net hat, und bei dem die
Verschlüsselung deaktiviert ist.
- Anmerkung: In unserem Beispiel verwenden wir keine
+ In unserem Beispiel verwenden wir keine
Verschlüsselung. Dies ist eine gefährliche
Situation. Im nächsten Abschnitt werden Sie daher
lernen, wie man die Verschlüsselung aktiviert, warum
es wichtig ist, dies zu tun, und warum einige
- Verschlüsselungstechnologien Sie trotzdem nicht
- völlig schützen.
+ Verschlüsselungstechniken Sie trotzdem nicht
+ vollständig schützen.Stellen Sie sicher, dass Ihre Karte von FreeBSD
erkannt wird:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1
- Nun werden wir die Einstellungen der Karte unserem
+ Nun können wir die Einstellungen der Karte unserem
Netzwerk anpassen:
- &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net
+ &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_netErsetzen Sie 192.168.0.20 und 255.255.255.0 mit einer
- gültigen IP-Adresse und Netzmaske ihres
+ role="ipaddr">192.168.0.20 und 255.255.255.0 durch eine
+ gültige IP-Adresse und Netzmaske ihres
Kabel-Netzwerks. Bedenken Sie außerdem, dass unser
Zugangspunkt als Bridge zwischen dem drahtlosen und
dem Kabel-Netzwerk fungiert. Für die anderen
Rechner Ihres Netzwerks befinden Sie sich, genauso wie
diese, im gleichen Kabel-Netzwerk, obwohl Sie zum
drahtlosen Netzwerk gehören.Nachdem Sie dies erledigt haben, sollten Sie andere
- Rechner (Hosts) im Kabel-Netzwerk anpingen können.
- Dies genauso, wie wenn Sie über eine
+ Rechner (Hosts) im Kabel-Netzwerk an&man.ping.8;en
+ können, genauso, wie wenn Sie über eine
Standardkabelverbindung mit ihnen verbunden
wären.Wenn Probleme mit Ihrer drahtlosen Verbindung
auftreten, stellen Sie sicher, dass Sie mit dem
Zugangspunkt verbunden sind:&prompt.root; ifconfig wi0sollte einige Informationen ausgeben und Sie sollten
Folgendes sehen:status: associated
- Wird dies nicht angezeigt, sind Sie entweder
- außerhalb der Reichweite des Zugangspunktes, haben die
- Verschlüsselung deaktiviert, oder Sie haben ein
- anderes Konfigurationsproblem.
+ Wird associated nicht angezeigt, sind
+ Sie entweder außerhalb der Reichweite des
+ Zugangspunktes, haben die Verschlüsselung deaktiviert,
+ oder Sie haben ein anderes Konfigurationsproblem.Verschlüsselung
+
drahtlose NetzwerkeVerschlüsselungVerschlüsselung ist in einem drahtlosen Netzwerk
wichtig, da Sie das Netzwerk nicht länger in einem
geschützten Bereich betreiben können. Ihre Daten
verbreiten sich in der ganzen Nachbarschaft, das heißt
- jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es die
- Verschlüsselung. Durch die Verschlüsselung der durch
- die Luft versendeten Daten machen Sie es einem Dritten sehr
- viel schwerer, Ihre Daten abzufangen oder auf diese
+ jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es
+ die Verschlüsselung. Durch die Verschlüsselung der
+ durch die Luft versendeten Daten machen Sie es einem Dritten
+ sehr viel schwerer, Ihre Daten abzufangen oder auf diese
zuzugreifen.Die gebräuchlichsten Methoden, um Daten zwischen
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
sind WEP und &man.ipsec.4;.WEP
+
WEP
- WEP ist die Abkürzung für Wired Equivalency
- Protocol ("Verkabelung entsprechendes Protokoll"). WEP
- war ein Versuch, drahtlose Netzwerke genauso sicher und
- geschützt zu machen wie verkabelte Netzwerke.
- Unglücklicherweise wurde es bereits geknackt, und ist
- relativ einfach auszuhebeln. Sie sollten sich also nicht
- darauf verlassen, wenn Sie sensible Daten
+ WEP ist die Abkürzung für
+ Wired Equivalency
+ Protocol ("Verkabelung entsprechendes
+ Protokoll"). WEP war ein Versuch, drahtlose Netzwerke
+ ebenso sicher und geschützt zu machen wie verkabelte
+ Netzwerke. Unglücklicherweise wurde es bereits
+ geknackt, und ist relativ einfach auszuhebeln. Sie sollten
+ sich also nicht darauf verlassen, wenn Sie sensible Daten
verschlüsseln wollen.Allerdings ist eine schlechte Verschlüsselung
noch immer besser als gar keine Verschlüsselung.
- Aktivieren Sie daher WEP für Ihren neuen FreeBSD
- Zugangspunkt:
+ Aktivieren Sie daher WEP für Ihren neuen
+ FreeBSD-Zugangspunkt:
- &prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap
+ &prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostapAuf dem Client können Sie WEP wie folgt
aktivieren:
- &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890
+ &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890Beachten Sie bitte, dass Sie
- 0x1234567890 durch einen besseren
+ 0x1234567890 durch einen besseren
Schlüssel ersetzen sollten.IPsec&man.ipsec.4; ist ein viel besseres und robusteres
Werkzeug, um Daten in einem Netzwerk zu
verschlüsseln und ist auch der bevorzugte Weg,
Daten in einem drahtlosen Netzwerk zu verschlüsseln.
- Weitere Informationen über
- &man.ipsec.4;-Sicherheit, und dessen Implementierung
- enthält der Abschnitt IPsec
- des Handbuches.
+ Weitere Informationen zu &man.ipsec.4; sowie zu dessen
+ Implementierung enthält der Abschnitt
+ IPsec des Handbuches.
WerkzeugeEs gibt einige Werkzeuge, die dazu dienen, Ihr
drahtloses Netzwerk zu installieren, und auftretende
- Probleme zu beheben. Wir werden nun versuchen, einige davon
- zu beschreiben.
+ Probleme zu beheben. Im folgenden Abschnitt werden die
+ wichtigsten von ihnen beschrieben.
bsd-airtoolsDas Paket bsd-airtools
enthält einen kompletten Werkzeugsatz zum
Herausfinden von WEP-Schlüsseln, zum Auffinden von
Zugangspunkten, usw.Die bsd-airtools
- können Sie über den net/bsd-airtools Port
+ können Sie über den Port
+ net/bsd-airtools
installieren. Wie ein Port installiert wird,
beschreibt des Handbuchs.Das Programm dstumbler ist ein
Werkzeug, das Sie beim Auffinden von Zugangspunkten
unterstützt, und das Signal-Rausch-Verhältnis
graphisch darstellen kann. Wenn Sie Probleme beim
Einrichten und Betreiben Ihres Zugangspunktes haben,
könnte dstumbler genau das
Richtige für Sie sein.Um die Sicherheit Ihres drahtlosen Netzwerks zu
überprüfen, könnten Sie das Paket
dweputils (dwepcrack,
dwepdump und
- dwepkeygen) verwenden, um
- festzustellen, ob WEP Ihren Sicherheitsansprüchen
- genügt.
+ dwepkeygen) verwenden. Durch diese Tools
+ können Sie feststellen, ob WEP Ihren
+ Sicherheitsanforderungen genügt.
- wicontrol,
- ancontrol und
- raycontrol
+ wicontrol,
+ ancontrol und
+ raycontrolDies sind Werkzeuge, um das Verhalten Ihrer drahtlosen
Karte im drahtlosen Netzwerk zu kontrollieren. In den
obigen Beispielen haben wir &man.wicontrol.8; verwendet,
da es sich bei unser drahtlosen Karte um ein Gerät
der wi0-Schnittstelle handelt.
Hätten Sie eine drahtlose Karte von Cisco,
würden Sie diese über
an0 ansprechen, und daher
&man.ancontrol.8; verwenden.
- Das Kommando ifconfig
+ Das Kommando ifconfig
+
ifconfig&man.ifconfig.8; kennt zwar viele Optionen von
- &man.wicontrol.8;, einige fehlen jedoch. Die Hilfeseite
- &man.ifconfig.8; zählt weitere Parameter und
- Optionen auf.
+ &man.wicontrol.8;, einige fehlen jedoch. Unter
+ &man.ifconfig.8; finden Sie Informationen zu
+ Parametern und Optionen.
Unterstützte KartenZugangspunkt
- Die einzigen Karten, die im BSS-Modus (das heißt als
- Zugangspunkt) derzeit unterstützt werden, sind solche
- mit Prism 2-, 2.5- oder 3-Chipsatz. Für eine
- komplette Übersicht lesen Sie bitte &man.wi.4;.
+ Die einzigen Karten, die im BSS-Modus (das heißt
+ als Zugangspunkt) derzeit unterstützt werden, sind
+ solche mit Prism 2-, 2.5- oder 3-Chipsatz. Für
+ eine komplette Übersicht lesen Sie bitte &man.wi.4;.
+ ClientsBeinahe alle nach 802.11b arbeitenden drahtlosen
- Karten werden von FreeBSD unterstützt. Die meisten dieser
- Karten von Prism, Spectrum24, Hermes, Aironet und Raylink
- arbeiten als drahtlose Netzkarten im IBSS-Modus (ad-hoc,
- Peer-to-Peer und BSS).
+ Karten werden von FreeBSD unterstützt. Die meisten
+ dieser Karten von Prism, Spectrum24, Hermes, Aironet und
+ Raylink arbeiten als drahtlose Netzkarten im IBSS-Modus
+ (ad-hoc, Peer-to-Peer und BSS).
+
+ Bluetooth
+
+ Bluetooth
+
+ Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
+ bitte
+ das Original in englischer Sprache.
+
+
-
-
-
- Steve
- Peterson
- Geschrieben von
-
-
-
+
+
+
+ Steve
+ Peterson
+ Geschrieben von
+
+
+
+
LAN-Kopplung mit einer BridgeEinführungSubnetzBridgeManchmal ist es nützlich, ein physikalisches Netzwerk
- (wie ein Ethernetsegment) in zwei separate Netzwerke aufzuteilen,
- ohne gleich IP-Subnetze zu erzeugen, die über einen Router
- miteinander verbunden sind. Ein Gerät, das zwei Netze
- auf diese Weise verbindet, wird als Bridge
- bezeichnet. Jedes FreeBSD-System mit zwei Netzkarten kann
- als Bridge fungieren.
-
- Die Bridge arbeitet, indem sie die MAC Layeradressen (Ethernet
- Adressen) der Geräte in ihren Netzsegmenten lernt. Der
- Verkehr wird nur dann zwischen zwei Netzsegmenten weitergeleitet,
- wenn sich Sender und Empfänger in verschiedenen Netzsegmenten
- befinden.
+ (wie ein Ethernetsegment) in zwei separate Netzwerke
+ aufzuteilen, ohne gleich IP-Subnetze zu erzeugen, die über
+ einen Router miteinander verbunden sind. Ein Gerät, das
+ zwei Netze auf diese Weise verbindet, wird als
+ Bridge bezeichnet. Jedes FreeBSD-System
+ mit zwei Netzkarten kann als Bridge fungieren.
+
+ Die Bridge arbeitet, indem sie die MAC Layeradressen
+ (Ethernet Adressen) der Geräte in ihren Netzsegmenten
+ lernt. Der Verkehr wird nur dann zwischen zwei Netzsegmenten
+ weitergeleitet, wenn sich Sender und Empfänger in
+ verschiedenen Netzsegmenten befinden.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.
- Situationen, in denen Bridging angebracht
- ist
+ Situationen, in denen Bridging
+ angebracht istEine Bridge wird vor allem in folgenden zwei Situationen
- verwendet.
+ verwendet:
Hohes Datenaufkommen in einem SegmentIn der ersten Situation wird Ihr physisches Netz
mit Datenverkehr überschwemmt. Aus irgendwelchen
Gründen wollen Sie allerdings keine Subnetze verwenden,
die über einen Router miteinander verbunden sind.Stellen Sie sich einen Zeitungsverlag vor, in dem sich die
- Redaktions- und Produktionsabteilungen in verschiedenen Subnetzen
- befinden. Die Redaktionsrechner verwenden den Server A für
- Dateioperationen, und die Produktionsrechner verwenden den
- Server B. Alle Benutzer sind über ein gemeinsames
- Ethernet-LAN miteinander verbunden. Durch den hohen Datenverkehr
- sinkt die Geschwindigkeit des gesamten Netzwerks.
+ Redaktions- und Produktionsabteilungen in verschiedenen
+ Subnetzen befinden. Die Redaktionsrechner verwenden den
+ Server A für Dateioperationen, und die
+ Produktionsrechner verwenden den Server B.
+ Alle Benutzer sind über ein gemeinsames Ethernet-LAN
+ miteinander verbunden. Durch das hohe Datenaufkommen sinkt
+ die Geschwindigkeit des gesamten Netzwerks.
Würde man die Redaktionsrechner und die
Produktionsrechner in separate Netzsegmente auslagern,
könnte man diese beiden Segmente über eine Bridge
- verbinden. Nur der für Rechner im anderen
- Segment bestimmte Verkehr wird dann über die Brigde in
- das andere Netzsegment geleitet. Dadurch verringert sich das
- Gesamtdatenaufkommen in beiden Segmenten.
+ verbinden. Nur der für Rechner im jeweils
+ anderen Segment bestimmte Verkehr wird
+ dann über die Brigde in das andere Netzsegment geleitet.
+ Dadurch verringert sich das Gesamtdatenaufkommen in beiden
+ Segmenten.
Filtering/Traffic Shaping FirewallFirewall
- IP-Masquerading
+ Network Adress TranslationDie zweite häufig anzutreffende Situation tritt auf,
wenn Firewallfunktionen benötigt werden, ohne dass
- IP-Maskierung (NAT – Network Adress Translation)
- verwendet wird.
+ Network Adress Translation
+ (NAT) verwendet wird.
Ein Beispiel dafür wäre ein kleines Unternehmen,
- das über DSL oder ISDN an ihren ISP angebunden ist. Es
- verfügt über 13 weltweit erreichbare IP-Adressen, und
- sein Netzwerk besteht aus 10 Rechnern. In dieser Situation ist
- die Verwendung von Subnetzen sowie einer routerbasierten Firewall
- schwierig.
+ das über DSL oder ISDN an seinen ISP angebunden ist. Es
+ verfügt über 13 weltweit erreichbare IP-Adressen,
+ sein Netzwerk besteht aus 10 Rechnern. In dieser Situation
+ ist die Verwendung von Subnetzen sowie einer routerbasierten
+ Firewall schwierig.
RouterDSLISDNEine brigdebasierte Firewall kann konfiguriert und in den
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
sich um IP-Adressen kümmern zu müssen.Die LAN-Kopplung konfigurierenAuswahl der NetzkartenEine Bridge benötigt mindestens zwei Netzkarten.
- Leider sind unter FreeBSD 4.x nicht alle verfügbaren
- Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;, um
- sich über Details der unterstützten Karten zu
- informieren.
+ Leider sind unter FreeBSD 4.X nicht alle verfügbaren
+ Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;
+ für Informationen zu unterstützten Karten.
Installieren und testen Sie beide Netzkarten, bevor Sie
fortfahren.Anpassen der KernelkonfigurationKernelkonfigurationKernelkonfigurationoptions BRIDGEUm die Kernelunterstützung für die LAN-Kopplung
zu aktivieren, fügen Sieoptions BRIDGEin Ihre Kernelkonfigurationsdatei ein, und erzeugen einen
neuen Kernel.FirewallunterstützungFirewall
- Wenn Sie die Bridge als Firewall verwenden wollen, müssen
- Sie zusätzlich die Option IPFIREWALL
- einfügen. Die Konfiguration von Firewalls
- wird in beschrieben.
+ Wenn Sie die Bridge als Firewall verwenden wollen,
+ müssen Sie zusätzlich die Option
+ IPFIREWALL einfügen. Die
+ Konfiguration einer Firewall wird in
+ des Handbuchs beschrieben.Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
- Bridge leiten wollen, müssen Sie eine zusätzliche,
- undokumentierte Option verwenden. Es handelt sich um
+ Bridge leiten wollen, müssen Sie eine zusätzliche
+ Option verwenden. Es handelt sich um
IPFIREWALL_DEFAULT_TO_ACCEPT.
Beachten Sie aber, dass Ihre Firewall durch diese Option per
Voreinstellung alle Pakete akzeptiert. Sie sollten sich also
über die Auswirkungen dieser Option im Klaren sein,
bevor Sie sie verwenden.Unterstützung für Traffic ShapingWenn Sie die Bridge als Traffic-Shaper verwenden wollen,
müssen Sie die Option DUMMYNET in
Ihre Kernelkonfigurationsdatei einfügen. Lesen Sie
&man.dummynet.4;, um weitere Informationen zu erhalten.Die LAN-Kopplung aktivierenFügen Sie die Zeilenet.link.ether.bridge=1in /etc/sysctl.conf ein, um die Bridge
zur Laufzeit zu aktivieren, sowie die Zeilenet.link.ether.bridge_cfg=if1,if2um die LAN-Kopplung für die festgelegten Geräte
- zu ermöglichen (ersetzen Sie dazu if1
- und if2 mit den Namen Ihrer Netzkarten).
- Wenn Sie die Datenpakete via &man.ipfw.8; filtern wollen, sollten
- Sie zusätzlich Folgendes einfügen:
+ zu ermöglichen (ersetzen Sie dazu
+ if1 und
+ if2 durch die Namen Ihrer
+ Netzkarten). Wenn Sie die Datenpakete via &man.ipfw.8; filtern
+ wollen, sollten Sie zusätzlich folgende Zeile
+ einfügen:
net.link.ether.bridge_ipfw=1
+
+ Ab &os; 5.2-RELEASE verwenden Sie die
+ folgenden Zeilen:
+
+ net.link.ether.bridge.enable=1
+net.link.ether.bridge.config=if1,if2
+net.link.ether.bridge.ipfw=1Sonstige Informationen
- Wenn Sie via telnet auf die Bridge zugreifen
- wollen, ist es in Ordnung, einer der beiden Netzkarten eine IP-Adresse
- zuzuweisen. Es besteht Einigkeit darüber, dass es eine schlechte
- Idee ist, beiden Karten eine IP-Adresse zuzuweisen.
+ Wenn Sie via &man.telnet.1; auf die Bridge zugreifen wollen,
+ können Sie einer der Netzkarten eine IP-Adresse zuzuweisen.
+ Es besteht Einigkeit darüber, dass es eine schlechte Idee
+ ist, beiden Karten eine IP-Adresse zuzuweisen.
+
- Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann es
- dennoch nicht mehr als einen Weg zwischen zwei Arbeitsplätzen
- geben. Das heißt, Spanning tree link Management wird nicht
- unterstützt.
+ Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann
+ es dennoch nicht mehr als einen Weg zwischen zwei
+ Arbeitsplätzen geben. Das heißt,
+ Spanning tree link Management
+ wird nicht unterstützt.Eine Bridge kann, besonders für Verkehr über
Segmente, die Laufzeiten von Paketen erhöhen.
-
TomRhodes
- Reorganisiert und erweitert von
+ Reorganisiert und erweitert von BillSwingleGeschrieben von NFS – Network File SystemNFSEines der vielen von FreeBSD unterstützten Dateisysteme
ist das Netzwerkdateisystem, das auch als NFS
bekannt ist. NFS ermöglicht es einem
- System, Dateien und Verzeichnisse über ein Netzwerk mit anderen
- zu teilen. Über NFS können Benutzer
- und Programme auf Daten entfernter Systeme zugreifen, und zwar
- genauso, wie wenn es sich um lokale Daten handeln würde.
+ System, Dateien und Verzeichnisse über ein Netzwerk mit
+ anderen zu teilen. Über NFS können
+ Benutzer und Programme auf Daten entfernter Systeme zugreifen, und
+ zwar genauso, wie wenn es sich um lokale Daten handeln würde.
+
Einige der wichtigsten Vorteile von NFS
sind:
- Lokale Arbeitsstationen benötigen weniger Plattenplatz,
- da gemeinsam benutzte Daten nur auf einem einzigen Rechner
- vorhanden sind. Alle anderen Stationen greifen über das
- Netzwerk auf diese Daten zu.
+ Lokale Arbeitsstationen benötigen weniger
+ Plattenplatz, da gemeinsam benutzte Daten nur auf einem
+ einzigen Rechner vorhanden sind. Alle anderen Stationen
+ greifen über das Netzwerk auf diese Daten zu.Benutzer benötigen nur noch ein zentrales
Heimatverzeichnis auf einem NFS-Server.
Diese Verzeichnisse sind über das Netzwerk auf allen
Stationen verfügbar.Speichergeräte wie Disketten-, CD-ROM-
oder ZIP-Laufwerke können über das Netzwerk von
anderen Arbeitstationen genutzt werden. Dadurch sind für
das gesamte Netzwerk deutlich weniger Speichergeräte
nötig.Wie funktioniert NFS?NFS besteht aus zwei Hauptteilen: Einem
Server und einem oder mehreren Clients. Der Client greift
über das Netzwerk auf die Daten zu, die auf dem Server
gespeichert sind. Damit dies korrekt funktioniert, müssen
einige Prozesse konfiguriert und gestartet werden:
- In &os;nbsp;5.X wurde portmap
+ In &os; 5.X wurde portmap
durch rpcbind ersetzt. Benutzer von
- &os;nbsp;5.X müssen in den folgenden Beispielen
+ &os; 5.X müssen daher in den folgenden Beispielen
portmap durch
rpcbind ersetzen.Der Server benötigt folgende Daemonen:NFSServerportmapmountdnfsdDaemonBeschreibungnfsdDer NFS-Daemon. Er bearbeitet
Anfragen der NFS-Clients.mountdDer NFS-Mount-Daemon. Er
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
weitergibt.portmap Der Portmapper-Daemon. Durch ihn erkennen die
NFS-Clients, welchen Port der
NFS-Server verwendet.
- Der Client kann ebenfalls einen Daemon aufrufen, und zwar den
- nfsiod-Daemon. Der
+ Der Client kann ebenfalls einen Daemon aufrufen, und zwar
+ den nfsiod-Daemon. Der
nfsiod-Daemon bearbeitet Anfragen vom
NFS-Server. Er ist optional und verbessert
die Leistung des Netzwerks. Für eine normale und korrekte
- Arbeit ist er allerdings nicht erforderlich. Lesen Sie
- &man.nfsiod.8;, wenn Sie weitere Informationen benötigen.
+ Arbeit ist er allerdings nicht erforderlich. Mehr erfahren
+ Sie in der Hilfeseite &man.nfsiod.8;.
-
NFS einrichtenNFSeinrichten
- NFS läßt sich leicht
+ NFS lässt sich leicht
einrichten. Die nötigen Prozesse werden durch einige
Änderungen in /etc/rc.conf bei
jedem Systemstart gestartet.
- Stellen Sie sicher, dass auf dem NFS-Server
- folgende Optionen in /etc/rc.conf
- gesetzt sind:
+ Stellen Sie sicher, dass auf dem
+ NFS-Server folgende Optionen in der Datei
+ /etc/rc.conf gesetzt sind:
-
-portmap_enable="YES"
+ portmap_enable="YES"
nfs_server_enable="YES"
-mountd_flags="-r"
-
+mountd_flags="-r"mountd läuft automatisch, wenn der
NFS-Server aktiviert ist.Auf dem Client muss in /etc/rc.conf
folgende Option gesetzt sein:nfs_client_enable="YES"
-
- /etc/exports legt fest, welche Dateisysteme
- NFS exportieren (manchmal auch als
- teilen bezeichnet) soll. Jede Zeile in
+ /etc/exports legt fest, welche
+ Dateisysteme NFS exportieren (manchmal auch
+ als teilen bezeichnet) soll. Jede Zeile in
/etc/exports legt ein Dateisystem sowie
- die Arbeitsstationen, die darauf Zugriff haben, fest. Außerdem
- ist es möglich, Zugriffsoptionen festzulegen. Es gibt viele
- verschiedene Optionen, allerdings werden hier nur einige von
- ihnen erwähnt. Wenn Sie Informationen über weitere
- Optionen benötigen, lesen Sie &man.exports.5;.
+ die Arbeitsstationen, die darauf Zugriff haben, fest.
+ Außerdem ist es möglich, Zugriffsoptionen
+ festzulegen. Es gibt viele verschiedene Optionen, allerdings
+ werden hier nur einige von ihnen erwähnt. Wenn Sie
+ Informationen zu weiteren Optionen benötigen, lesen Sie
+ &man.exports.5;.Nun folgen einige Beispieleinträge für
/etc/exports:NFSExport von DateisystemenDie folgenden Beispiele geben Ihnen Anhaltspunkte zum
Exportieren von Dateisystemen, obwohl diese Einstellungen
natürlich von Ihrer Arbeitsumgebung und Ihrer
Netzwerkkonfiguration abhängen. Das nächste
Beispiel exportiert das Verzeichnis /cdrom
für drei Rechner, die sich in derselben Domäne wie
- der Server befinden oder für die entsprechende Einträge
- in /etc/hosts existieren.
+ der Server befinden oder für die entsprechende
+ Einträge in /etc/hosts existieren.
Die Option kennzeichnet das
exportierte Dateisystem als schreibgeschützt. Durch dieses
Flag ist das entfernte System nicht in der Lage, das exportierte
Dateisystem zu verändern./cdrom -ro host1 host2 host3Die nächste Zeile exportiert /home
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
ist nützlich, wenn Sie über ein privates Netzwerk ohne
DNS-Server verfügen. Optional
könnten interne Rechnernamen auch in
/etc/hosts konfiguriert werden.
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
&man.hosts.5;. Durch das Flag wird es
möglich, auch Unterverzeichnisse als Mountpunkte
festzulegen. Dies bedeutet aber nicht, dass alle
Unterverzeichnisse eingehängt werden, vielmehr wird es dem
Client ermöglicht, nur diejenigen Verzeichnisse
einzuhängen, die auch benötigt werden./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Die nächste Zeile exportiert /a,
damit Clients von verschiedenen Domänen auf das Dateisystem
zugreifen können. Das -Flag
erlaubt es dem Benutzer root des entfernten
Systems, als root auf das exportierte
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
kann selbst root nicht auf das exportierte
Dateisystem schreiben./a -maproot=root host.example.com box.example.orgDamit ein Client auf ein exportiertes Dateisystem zugreifen
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
sicher, dass der Client in /etc/exports
aufgeführt wird.Jede Zeile in /etc/exports entspricht
- der Exportinformation für ein Dateisystem auf einen Rechner.
- Ein entfernter Rechner kann für jedes Dateisystem nur
- einmal festgelegt werden, und kann auch nur einen Standardeintrag
- haben. Nehmen wir an, dass /usr
- ein einziges Dateisystem ist. Dann wären folgende Zeilen
- ungültig:
-
-
-/usr/src client
-/usr/ports client
-
+ der Exportinformation für ein Dateisystem auf einen
+ Rechner. Ein entfernter Rechner kann für jedes Dateisystem
+ nur einmal festgelegt werden, und kann auch nur einen
+ Standardeintrag haben. Nehmen wir an, dass
+ /usr ein einziges Dateisystem ist. Dann
+ wären folgende Zeilen ungültig:
+
+ /usr/src client
+/usr/ports clientDas Dateisystem /usr wird hier zweimal
auf den selben Rechner (client)
- exportiert. Dies ist aber nicht zulässig. Der richtige
+ exportiert. Dies ist aber nicht zulässig. Der korrekte
Eintrag sieht daher so aus:/usr/src /usr/ports clientDie Eigenschaften eines auf einen anderen Rechner
- exportierten Dateisystems müssen alle in einer Zeile
+ exportierten Dateisystems müssen alle in einer Zeile
stehen. Zeilen, in denen kein Rechner festgelegt wird, werden
als einzelner Rechner behandelt. Dies schränkt die
Möglichkeiten zum Export von Dateisystemen ein, für
die meisten Anwender ist dies aber kein Problem.Eine gültige Exportliste, in der
/usr und /exports
lokale Dateisysteme sind, sieht so aus:
-
-# Export src and ports to client01 and client02, but only
+ # Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
-/exports/obj -ro
-
+/exports/obj -roSie müssen mountd nach jeder
Änderung von /etc/exports neu
starten, damit die Änderungen wirksam werden. Dies
kann durch das Senden des HUP-Signals an den
mountd-Prozess erfolgen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Alternativ können Sie auch das System neu starten.
Dies ist allerdings nicht nötig. Wenn Sie die folgenden
Befehle als root ausführen, sollte
alles korrekt gestartet werden.Auf dem NFS-Server:&prompt.root; portmap
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rAuf dem NFS-Client:&prompt.root; nfsiod -n 4Nun sollte alles bereit sein, um ein entferntes Dateisystem
einhängen zu können. In unseren Beispielen nennen wir
den Server server, den Client
client. Wenn Sie ein entferntes Dateisystem
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
testen möchten, führen Sie auf dem Client als
root einen Befehl ähnlich dem
folgenden aus:NFSDateisysteme einhängen&prompt.root; mount server:/home /mntDadurch wird das Verzeichnis /home des
- Servers auf dem Client unter /mnt eingehängt.
- Wenn alles korrekt konfiguriert wurde, sehen Sie auf dem Client
- im Verzeichnis /mnt alle Dateien des
- Servers.
+ Servers auf dem Client unter /mnt
+ eingehängt. Wenn alles korrekt konfiguriert wurde, sehen
+ Sie auf dem Client im Verzeichnis /mnt alle
+ Dateien des Servers.
Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
- automatisch einhängen wollen, fügen Sie das Dateisystem
- in /etc/fstab ein. Dazu ein Beispiel:
+ automatisch einhängen wollen, fügen Sie das
+ Dateisystem in /etc/fstab ein. Dazu ein
+ Beispiel:
server:/home /mnt nfs rw 0 0
- Für Informationen zu allen möglichen Optionen lesen
- Sie bitte &man.fstab.5;.
+ Eine Beschreibung aller Optionen enthält
+ die Hilfeseite &man.fstab.5;.Praktische AnwendungenNFS ist in vielen Situationen
nützlich. Einige Anwendungsbereiche finden Sie in der
folgenden Liste:NFSAnwendungsbeispieleMehrere Maschinen können sich ein CD-ROM-Laufwerk
- oder andere Medien teilen. Dies ist billiger und außerdem
- praktischer, um Programme auf mehreren Rechnern zu
- installieren.
+ oder andere Medien teilen. Dies ist billiger und
+ außerdem praktischer, um Programme auf mehreren
+ Rechnern zu installieren.
In größeren Netzwerken ist es praktisch,
einen zentralen NFS-Server einzurichten,
auf dem die Heimatverzeichnisse der Benutzer gespeichert
werden. Diese Heimatverzeichnisse werden über das
Netzwerk exportiert. Dadurch haben die Benutzer immer das
gleiche Heimatverzeichnis zur Verfügung,
unabhängig davon, an welchem Arbeitsplatz sie sich
anmelden.Verschiedene Rechner können auf ein gemeinsames
- /usr/ports/distfiles-Verzeichnis
+ Verzeichnis /usr/ports/distfiles
zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern
installieren wollen, greifen Sie einfach auf dieses
Verzeichnis zu, ohne die Quelldateien auf jede Maschine
zu kopieren.
-
WylieStilwellBeigetragen von ChernLeeÜberarbeitet von AMDamdAutomatic Mounter Daemon&man.amd.8; (Automatic Mounter Daemon) hängt ein
entferntes Dateisystem automatisch ein,
wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem
zugegriffen wird. Dateisysteme, die über einen gewissen
Zeitraum inaktiv sind, werden von amd
automatisch abgehängt.
amd ist eine einfache
Alternative zum dauerhaften Einhängen von Dateisystemen
in /etc/fstab.In der Voreinstellung stellt amd
die Verzeichnisse /host und
- /net als NFS-Server bereit. Wenn auf eine Datei
- in diesen Verzeichnissen zugegriffen wird, sucht
+ /net als NFS-Server bereit. Wenn auf eine
+ Datei in diesen Verzeichnissen zugegriffen wird, sucht
amd den entsprechenden Mountpunkt
und hängt das Dateisystem automatisch ein.
/net wird zum Einhängen von
exportierten Dateisystemen von einer IP-Adresse verwendet,
während /host zum Einhängen
von exportierten Dateisystemen eines durch seinen Namen
festgelegten Rechners dient.Ein Zugriff auf eine Datei in
/host/foobar/usr würde
amd veranlassen,
das von foobar exportierte Dateisystem
/usr einzuhängen.Ein exportiertes Dateisystem mit
amd in den Verzeichnisbaum
einhängenSie können sich die verfügbaren Mountpunkte
eines entfernten Rechners mit showmount
ansehen. Wollen Sie sich die Mountpunkte des Rechners
foobar ansehen, so verwenden Sie:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrWie Sie an diesem Beispiel erkennen können, zeigt
showmount/usr
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
/host/foobar/usr wechselt, versucht
amd den Rechnernamen
foobar aufzulösen und den gewünschten
Export in den Verzeichnisbaum einzuhängen.amd kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
automatisch gestartet werden:amd_enable="YES"Mit der Option amd_flags kann
amd angepasst werden.
Die Voreinstellung für amd_flags sieht
so aus:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"/etc/amd.map legt die Standardoptionen
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
eingehängt werden. /etc/amd.conf
hingegen legt einige der erweiterten Optionen von
amd fest.Weitere Informationen finden Sie in den Hilfeseiten
&man.amd.8; und &man.amd.conf.5;.
-
JohnLindBeigetragen von Integrationsprobleme mit anderen SystemenBestimmte ISA-Ethernetadapter haben Beschränkungen, die
zu ernsthaften Netzwerkproblemen, insbesondere mit NFS
führen können. Es handelt sich dabei nicht um ein
FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon
ebenfalls betroffen.Das Problem tritt fast ausschließlich dann auf, wenn
(FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
wie Systemen von Silicon Graphics, Inc. oder
- Sun Microsystems, Inc. Das Einhängen via NFS funktioniert
- problemlos, auch einige Dateioperationen können erfolgreich
- sein. Plötzlich aber wird der Server nicht mehr auf den
- Client reagieren, obwohl Anfragen an und von anderen Rechnern
- weiter bearbeitet werden. Dieses Problem betrifft stets den
- Client, egal ob es sich beim Client um das FreeBSD-System oder
- den Hochleistungsrechner handelt. Auf vielen Systemen gibt es
- keine Möglichkeit mehr, den Client ordnungsgemäß
- zu beenden. Die einzige Lösung ist oft, den Rechner neu
- zu starten, da dieses NFS-Problem nicht mehr behoben werden kann.
+ Sun Microsystems, Inc. Das Einhängen via NFS
+ funktioniert problemlos, auch einige Dateioperationen
+ können erfolgreich sein. Plötzlich aber wird der
+ Server nicht mehr auf den Client reagieren, obwohl Anfragen von
+ anderen Rechnern weiterhin bearbeitet werden. Dieses
+ Problem betrifft stets den Client, egal ob es sich beim Client
+ um das FreeBSD-System oder den Hochleistungsrechner handelt.
+ Auf vielen Systemen gibt es keine Möglichkeit mehr, den
+ Client ordnungsgemäß zu beenden. Die einzige
+ Lösung ist es oft, den Rechner neu zu starten, da dieses
+ NFS-Problem nicht mehr behoben werden kann.
Die korrekte Lösung für dieses
Problem ist es, sich eine schnellere Ethernetkarte für
FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und
meist zufriedenstellende Lösung, um dieses Problem zu
umgehen. Wenn es sich beim FreeBSD-System um den
Server handelt, verwenden Sie beim
Einhängen in den Verzeichnisbaum auf der Clientseite
zusätzlich die Option . Wenn es
sich beim FreeBSD-System um den Client
handelt, dann hängen Sie das NFS-Dateisystem mit der
zusätzlichen Option ein.
Diese Optionen können auf der Clientseite auch durch
- das vierte Feld der Einträge in /etc/fstab
- festgelegt werden, damit die Dateisysteme automatisch eingehängt
- werden. Um die Dateisysteme manuell einzuhängen, verwendet
- man bei mount zusätzlich die Option
+ das vierte Feld der Einträge in
+ /etc/fstab festgelegt werden, damit die
+ Dateisysteme automatisch eingehängt werden. Um die
+ Dateisysteme manuell einzuhängen, verwendet man bei
+ mount zusätzlich die Option
.Es gibt ein anderes Problem, das oft mit diesem verwechselt
wird. Dieses andere Problem tritt auf, wenn sich über NFS
verbundene Server und Clients in verschiedenen Netzwerken
befinden. Wenn dies der Fall ist, stellen Sie
sicher, dass Ihre Router die
nötigen UDP-Informationen weiterleiten, oder Sie werden
nirgends hingelangen, egal was Sie machen.In den folgenden Beispielen ist fastws der
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
freebox hingegen ist der Name des
FreeBSD-Systems, das über eine Netzkarte mit geringer
Leistung verfügt. /sharedfs ist das
exportierte NFS -Dateisystem (lesen Sie dazu auch
&man.exports.5;). Bei /project handelt es
sich um den Mountpunkt, an dem das exportierte Dateisystem auf
der Clientseite eingehängt wird. In allen Fällen
können zusätzliche Optionen, wie z.B.
, oder
wünschenswert sein.FreeBSD als Client (eingetragen in
- /etc/fstab auf freebox):
+ /etc/fstab auf freebox):
+
fastws:/sharedfs /project nfs rw,-r=1024 0 0
- Manuelles Einhängen auf freebox:
+ Manuelles Einhängen auf
+ freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project
- FreeBSD als Server (eingetragen in
- /etc/fstab auf fastws):
+ &os; als Server (eingetragen in
+ /etc/fstab auf fastws):
+ freebox:/sharedfs /project nfs rw,-w=1024 0 0Manuelles Einhängen auf fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectNahezu alle 16-bit Ethernetadapter erlauben Operationen
ohne obengenannte Einschränkungen auf die Lese- oder
Schreibgröße.Für alle technisch Interessierten wird nun beschrieben,
was passiert, wenn dieser Fehler auftritt, und warum er
irreversibel ist. NFS arbeitet üblicherweise mit einer
Blockgröße von 8 kByte (obwohl
es kleinere Fragmente zulassen würde). Da die maximale
Rahmengröße von Ethernet 1500 Bytes
beträgt, wird der NFS-Block in einzelne
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
Einheit handelt, die auch als Einheit empfangen, verarbeitet
und bestätigt werden muss. Der
Hochleistungsrechner verschickt die Pakete, aus denen der
NFS-Block besteht, so eng hintereinander, wie es der Standard
erlaubt. Auf der anderen Seite (auf der sich die langsamere
Netzkarte befindet), überschreiben die späteren
Pakete ihre Vorgänger, bevor diese vom System verarbeitet
werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block
nicht mehr rekonstruiert und bestätigt werden kann. Als
Folge davon glaubt der Hochleistungsrechner, dass der andere
Rechner nicht erreichbar ist (Timeout!) und versucht die
Sendung zu wiederholen. Allerdings wird wiederum der komplette
NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt,
und zwar immer wieder (oder bis zum Systemneustart).Indem wir die Einheitengröße unter der maximalen
Größe der Ethernetpakete halten, können wir
sicherstellen, dass jedes vollständig erhaltene
Ethernetpaket individuell angesprochen werden kann und vermeiden
die Blockierung des Systems.Überläufe können zwar nach wie vor auftreten,
wenn ein Hochleistungsrechner Daten auf ein PC-System
transferiert. Durch die besseren (und schnelleren) Netzkarten
treten solche Überläufe allerdings nicht mehr
zwingend auf, wenn
NFS-Einheiten übertragen werden. Tritt nun
ein Überlauf auf, wird die betroffene Einheit erneut
verschickt, und es besteht eine gute Chance, dass sie nun
erhalten, verarbeitet und bestätigt werden kann.
-
Jean-FrançoisDockèsAktualisiert von
+
+
+
+ Alex
+ Dupre
+ Reorganisiert und erweitert von
+
+ Start und Betrieb von FreeBSD über ein Netzwerkplattenloser Arbeitsplatzplattenloser BetriebFreeBSD kann über ein Netzwerk starten und arbeiten, ohne
eine lokale Festplatte zu verwenden, indem es Dateisysteme eines
- NFS-Servers in den eigenen Verzeichnisbaum einhängt. Dazu
- sind, von den Standardkonfigurationsdateien abgesehen, keine
- Systemänderungen nötig. Ein solches System kann leicht
- installiert werden, da alle notwendigen Elemente bereits vorhanden
- sind:
+ NFS-Servers in den eigenen Verzeichnisbaum
+ einhängt. Dazu sind, von den Standardkonfigurationsdateien
+ abgesehen, keine Systemänderungen nötig. Ein solches
+ System kann leicht installiert werden, da alle notwendigen
+ Elemente bereits vorhanden sind:
Es gibt mindestens zwei Möglichkeiten, den Kernel
über das Netzwerk zu laden:
- PXE: Das
+ PXE: Das
Preboot Execution Environment System von
- &intel; ist eine Art intelligentes Boot-ROM, das in einigen
- Netzkarten oder Hauptplatinen verwendet wird. Mehr
- Informationen finden Sie in der Hilfeseite
- &man.pxeboot.8;.
+ &intel; ist eine Art intelligentes Boot-ROM, das in
+ einigen Netzkarten oder Hauptplatinen verwendet wird.
+ Weitere Informationen finden Sie in &man.pxeboot.8;.
+ Der Port
- etherboot
- (net/etherboot) erzeugt
- ROM-fähigen Code, um einen Kernel über das
- Netzwerk zu laden. Dieser Code kann entweder auf ein
+ etherboot
+ (net/etherboot)
+ erzeugt ROM-fähigen Code, um einen Kernel über
+ das Netzwerk zu laden. Dieser Code kann entweder auf ein
Boot-PROM einer Netzkarte gebrannt werden, was von vielen
Netzkarten unterstützt wird. Oder er kann von einer
lokalen Diskette, Festplatte oder von einem laufenden
&ms-dos;-System geladen werden.Das Beispielskript
- (/usr/share/examples/diskless/clone_root)
- erleichtert die Erzeugung und die Wartung des root-Dateisystems
- auf dem Server. Das Skript muss wahrscheinlich angepasst
- werden, dennoch werden Sie schnell zu einem Ergebnis kommen.
-
+ /usr/share/examples/diskless/clone_root
+ erleichtert die Erzeugung und die Wartung des
+ root-Dateisystems auf dem Server. Das Skript muss
+ wahrscheinlich angepasst werden, dennoch werden Sie schnell zu
+ einem Ergebnis kommen.
Die Startdateien, die einen plattenlosen Systemstart
erkennen und unterstützen, sind nach der Installation
in /etc vorhanden.
- Dateiauslagerungen können sowohl via NFS als auch
- auf die lokale Platte erfolgen.
+ Dateiauslagerungen können sowohl via
+ NFS als auch auf die lokale Platte
+ erfolgen.Es gibt verschiedene Wege, einen plattenlosen Rechner
einzurichten. Viele Elemente sind daran beteiligt, die fast
immer an den persönlichen Geschmack angepasst werden
- können. Die folgende Beschreibung erklärt die
- Installation eines kompletten Systems, wobei der Schwerpunkt auf
- Einfachheit und Kompatibilität zu den Standardstartskripten
- von FreeBSD liegt. Das beschriebene System hat folgende
- Eigenschaften:
+ können. Im folgenden Abschnitt wird die Installation
+ eines kompletten Systems beschrieben, wobei der
+ Schwerpunkt auf Einfachheit und Kompatibilität zu den
+ Standardstartskripten von FreeBSD liegt. Das beschriebene
+ System hat folgende Eigenschaften:
Die plattenlosen Rechner haben ein gemeinsames
root- sowie ein gemeinsames
/usr-Dateisystem, die jeweils
schreibgeschützt sind.Das root-Dateisystem ist eine Kopie
eines Standardwurzelverzeichnisses von FreeBSD
(üblicherweise das des Servers), bei dem einige
Konfigurationsdateien durch für den plattenlosen
Betrieb geeignete Versionen ersetzt wurden.Für die Bereiche von root, die
beschreibbar sein müssen, werden mit &man.mfs.8;
+ (&os; 4.X) oder &man.md.4; (&os; 5.X)
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
alle Veränderungen verloren gehen, wenn das System neu
gestartet wird.
- Der Kernel wird von etherboot
- geladen. Dazu werden DHCP (oder BOOTP) und TFTP verwendet.
+ Der Kernel wird, in Abhängigkeit von der jeweiligen
+ Situation, entweder von etherboot
+ oder von PXE transferiert und geladen.
+ Das hier beschriebene System ist nicht sicher. Es
sollte nur in einem gesicherten Bereich eines Netzwerks verwendet
werden und für andere Rechner nicht erreichbar sein.
+ Alle Informationen in diesem Abschnitt wurden unter
+ &os; 4.9-RELEASE sowie 5.2.1-RELEASE getestet. Die
+ Beschreibungen beziehen sich aber vor allem auf die Version 4.X.
+ Falls nötig, wurden daher Hinweise auf eventuelle
+ Änderungen unter 5.X eingefügt.
+
- Installationsanweisungen
-
- plattenloser Betrieb
- Systemstart
-
+ Hintergrundinformationen
-
- DHCP/BOOTP konfigurieren
+ Die Einrichtung von plattenlosen Rechnern ist einfach, aber
+ auch fehleranfällig. Der Grund dafür sind auftretende
+ Fehler, die sich oft nur schwer zuordnen lassen. Unter anderem
+ sind dafür folgende Umstände verantwortlich:
- Es gibt zwei häufig verwendete Protokolle, um Rechner
- zu starten, die ihre Konfiguration über ein Netzwerk
- erhalten: BOOTP und DHCP. Diese werden in verschiedenen
- Phasen des Startvorganges verwendet:
+
+
+ Kompilierte Optionen haben zur Laufzeit unterschiedliche
+ Auswirkungen.
+
-
- etherboot verwendet
- DHCP (Voreinstellung) oder BOOTP (muss vorher konfiguriert
- werden), um den Kernel zu finden (PXE verwendet DHCP).
-
+
+ Fehlermeldungen sind oft kryptisch oder fehlen
+ vollständig.
+
+
- Der Kernel verwendet BOOTP, um das
- NFS-Wurzelverzeichnis zu finden.
-
-
+ Daher ist es nützlich, über die im Hintergrund
+ ablaufenden Mechanismen Bescheid zu wissen. Dadurch wird es
+ einfacher, eventuell auftretende Fehler zu beheben.
- Es ist möglich, das System so zu konfigurieren, dass
- es nur BOOTP verwendet. Das &man.bootpd.8;-Serverprogramm ist
- bereits im Basissystem enthalten.
+ Verschiedene Operationen müssen ausgeführt werden,
+ um ein System erfolgreich zu starten:
- DHCP hat im Vergleich zu BOOTP allerdings mehrere Vorteile
- (bessere Konfigurationsdateien, die Möglichkeit zur
- Verwendung von PXE, sowie viele andere, die nicht in direktem
- Zusammenhang mit dem plattenlosen Betrieb stehen), daher werden
- hier beide Methoden, die ausschließliche Verwendung von
- BOOTP sowie die gemeinsame Nutzung von BOOTP und DHCP
- beschrieben. Der Schwerpunkt liegt dabei auf der Betrachtung
- von DHCP. Dazu wird das Softwarepaket ISC-DHCP verwendet.
+
+
+ Der Rechner benötigt einige Startparameter, wie
+ seine IP-Adresse, die Namen ausführbarer Dateien, den
+ Servernamen sowie den root-Pfad. Für die
+ Übermittlung dieser Informationen wird entweder das
+ DHCP- oder das BOOTP-Protokoll verwendet.
+ Bei DHCP handelt es sich um eine
+ abwärtskompatible Erweiterung von BOOTP, die die
+ gleichen Portnummern und das gleiche Paketformat verwendet.
+
-
- Konfiguration unter Verwendung von ISC DHCP
-
- DHCP
- plattenloser Betrieb
-
+ Es ist möglich, das System so zu konfigurieren,
+ dass es nur BOOTP verwendet. Das Serverprogramm
+ &man.bootpd.8; ist bereits im &os;-Basissystem enthalten.
+
- Der isc-dhcp-Server kann
- Anfragen sowohl von BOOTP als auch von DHCP beantworten.
-
+ DHCP hat im Vergleich zu BOOTP
+ allerdings mehrere Vorteile (bessere Konfigurationsdateien,
+ die Möglichkeit zur Verwendung von
+ PXE, sowie viele andere, die nicht in
+ direktem Zusammenhang mit dem plattenlosen Betrieb stehen).
+ Dieser Abschnitt beschreibt die Konfiguration mittels
+ DHCP. Wenn möglich, werden aber
+ entsprechende Beispiele für &man.bootpd.8;
+ angeführt. Die Beispielkonfiguration nutzt das
+ Softwarepaket ISC DHCP.
+
- isc-dhcp 3.0 ist nicht Teil
- des Basissystems. Sie müssen es daher zuerst
- installieren. Verwenden Sie dazu den Port
- net/isc-dhcp3 oder das
- entsprechende Paket. Für allgemeine Informationen zu
- Ports und Paketen lesen Sie bitte .
-
+
+ Der Rechner muss ein oder mehrere Programme in den
+ lokalen Speicher laden. Dazu wird entweder
+ TFTP oder NFS
+ verwendet. Die Auswahl zwischen TFTP und
+ NFS erfolgt über das Setzen von
+ verschiedenen Kompilieroptionen. Ein häufig gemachter
+ Fehler ist es, Dateinamen für das falsche Protokoll
+ anzugeben: TFTP transferiert
+ normalerweise alle Dateien aus einem einzigen Verzeichnis
+ des Servers, und erwartet einen Pfad relativ zu diesem
+ Verzeichnis. NFS verlangt hingegen
+ absolute Dateipfade.
+
+
+
+ Die möglichen Bootstrap-Programme und der Kernel
+ müssen initialisiert und ausgeführt werden. Dabei
+ gibt es zwei Möglichkeiten:
+
+
+
+ PXE lädt &man.pxeboot.8;.
+ Dabei handelt es sich um eine modifizierte Version des
+ &os;-Laders der Boot-Phase drei. Der &man.loader.8;
+ beschafft alle für den Systemstart notwendigen
+ Parameter, und hinterlegt diese in der Kernelumgebung,
+ bevor er die Kontrolle übergibt. Es ist hier
+ möglich, den GENERIC-Kernel
+ zu verwenden.
+
+
+
+ etherboot lädt den
+ Kernel hingegen direkt. Dafür müssen Sie
+ allerdings einen Kernel mit spezifischen Optionen
+ erzeugen.
+
+
+
+ Auf 4.X-Systemen sind PXE und
+ etherboot gleichwertig.
+ 5.X-Kernel übergeben hingegen viele Aufgaben an den
+ &man.loader.8;, daher ist die Verwendung von
+ PXE auf 5.X-Systemen
+ empfehlenswert.
+
+ Wenn Ihr BIOS und Ihre Netzkarten
+ PXE unterstützen, sollten Sie es
+ auch verwenden. Es ist allerdings nach wie vor
+ möglich, ein 5.X-System über
+ etherboot zu starten.
+
+
+
+ Zuletzt muss der Rechner auf seine Dateisysteme
+ zugreifen können. Dafür wird stets
+ NFS verwendet.
+
+
+
+ Weitere Informationen finden Sie in &man.diskless.8;.
+
- Nachdem isc-dhcp installiert
- ist, muss das Programm konfiguriert werden (normalerweise in
- /usr/local/etc/dhcpd.conf). Nachfolgend
- finden Sie dazu ein kommentiertes Beispiel:
+
+ Installationsanweisungen
+
+
+ Konfiguration unter Verwendung von
+ ISC DHCP
+
+
+ DHCP
+ plattenloser Betrieb
+
-
- default-lease-time 600;
+ Der ISC DHCP-Server kann
+ Anfragen sowohl von BOOTP als auch von DHCP beantworten.
+
+
+ isc-dhcp 3.0 ist nicht Teil
+ des Basissystems. Sie müssen es daher zuerst
+ installieren. Verwenden Sie dazu den Port
+ net/isc-dhcp3-server
+ oder das entsprechende Paket. Allgemeine Informationen zu
+ Ports und Paketen finden Sie im
+ des Handbuchs.
+
+ Nachdem ISC DHCP installiert
+ ist, muss das Programm konfiguriert werden (normalerweise in
+ /usr/local/etc/dhcpd.conf). Im
+ folgenden Beispiel verwendet Rechner margaux
+ etherboot, während Rechner
+ corbieres PXE verwendet:
+
+
+ default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/tftpboot/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
+ host corbieres {
+ hardware ethernet 00:02:b3:27:62:df;
+ fixed-address corbieres.example.com;
+ next-server 192.168.4.4;
+ filename "pxeboot";
+ option root-path "192.168.4.4:/data/misc/diskless";
+ }
}
-
-
-
- Diese Option
- weist dhcpd an, den Wert der
- host-Deklaration als Rechnernamen des
- plattenlosen Rechners zu senden. Alternativ kann man der
- Hostdeklaration Folgendes hinzufügen:
- option host-name
- margaux
-
-
- Die Anweisung
- next-server bestimmt den TFTP-Server
- (in der Voreinstellung ist das der DHCP-Server
- selbst).
-
-
- Die Anweisung
- filename bestimmt die Datei, die
- etherboot als Kernel lädt.
- PXE erfordert einen relativen Dateinamen und
- lädt pxeboot (dies geschieht
- also nicht über die Kerneloption
- option filename "pxeboot").
-
-
-
+
- Die Option
- root-path bestimmt den Pfad des
- root-Dateisystems in normaler NFS-Schreibweise.
-
-
-
+
+ Diese Option
+ weist dhcpd an, den Wert der
+ host-Deklaration als Rechnernamen des
+ plattenlosen Rechners zu senden. Alternativ kann man der
+ Hostdeklaration Folgendes hinzufügen:
+ option host-name
+ margaux
+
+
+ Die Anweisung
+ next-server bestimmt den
+ TFTP- oder
+ NFS-Server, von dem der Loader oder
+ der Kernel geladen werden (in der Voreinstellung ist das
+ der DHCP-Server selbst).
+
+
+ Die Anweisung
+ filename bestimmt die Datei, die
+ etherboot als nächstes
+ lädt. Das genaue Format hängt von der
+ gewählten Transfermethode ab.
+ etherboot kann sowohl mit
+ NFS als auch mit
+ TFTP kompiliert werden. In der
+ Voreinstellung wird der &os;-Port mit
+ NFS-Unterstützung kompiliert.
+ PXE verwendet TFTP,
+ daher wird im Beispiel ein relativer Dateipfad verwendet.
+ Dies kann aber, je nach Konfiguration des
+ TFTP-Servers, auch anders sein.
+ Beachten Sie, dass PXE
+ pxeboot lädt, und nicht den
+ Kernel. Es ist auch möglich, das Verzeichnis
+ /boot einer
+ &os;-CD-ROM von pxeboot laden zu
+ lassen. &man.pxeboot.8; kann einen
+ GENERIC-Kernel laden, dadurch ist es
+ möglich, PXE von einer entfernten
+ CD-ROM zu starten.
+
+ Die Option
+ root-path bestimmt den Pfad des
+ root-Dateisystems in normaler NFS-Schreibweise. Wird
+ PXE verwendet, ist es möglich,
+ die IP-Adresse des Rechners wegzulassen, solange nicht
+ die Kerneloption BOOTP aktiviert wird. Der
+ NFS-Server entspricht in diesem Fall
+ dem TFTP-Server.
+
+
+
-
- Konfiguration bei Verwendung von BOOTP
-
- BOOTP
- plattenloser Betrieb
-
+
+ Konfiguration bei Verwendung von BOOTP
- Es folgt nun eine der Konfiguration von DHCP
- entsprechende Konfiguration für
- bootpd. Zu finden ist die
- Konfigurationsdatei unter /etc/bootptab.
-
+
+ BOOTP
+ plattenloser Betrieb
+
- Beachten Sie bitte, dass
- etherboot mit der Option
- NO_DHCP_SUPPORT kompiliert werden muss,
- damit BOOTP verwendet werden kann. PXE hingegen
- benötigt DHCP. Der einzige
- offensichtliche Vorteil von bootpd
- ist, dass es bereits im Basissystem vorhanden ist.
-
-
- .def100:\
- :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
- :sm=255.255.255.0:\
- :ds=192.168.4.1:\
- :gw=192.168.4.1:\
- :hd="/tftpboot":\
- :bf="/kernel.diskless":\
- :rp="192.168.4.4:/data/misc/diskless":
-
- margaux:ha=0123456789ab:tc=.def100
-
-
+ Es folgt nun eine der Konfiguration von DHCP
+ entsprechende Konfiguration (für einen Client) für
+ bootpd. Zu finden ist die
+ Konfigurationsdatei unter /etc/bootptab.
+
+
+ Beachten Sie bitte, dass
+ etherboot mit der Option
+ NO_DHCP_SUPPORT kompiliert werden muss,
+ damit BOOTP verwendet werden kann. PXE
+ hingegen benötigt
+ DHCP. Der einzige offensichtliche
+ Vorteil von bootpd ist, dass es
+ bereits im Basissystem vorhanden ist.
+
+ .def100:\
+ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
+ :sm=255.255.255.0:\
+ :ds=192.168.4.1:\
+ :gw=192.168.4.1:\
+ :hd="/tftpboot":\
+ :bf="/kernel.diskless":\
+ :rp="192.168.4.4:/data/misc/diskless":
+
+margaux:ha=0123456789ab:tc=.def100Ein Startprogramm unter Verwendung von
Etherboot erstellenEtherboot
-
- Die Internetseite von Etherboot enthält
-
+ Die
+ Internetseite von Etherboot enthält
+
ausführliche Informationen, die zwar vor allem
für Linux gedacht sind, aber dennoch nützliche
Informationen enthalten. Im Folgenden wird daher nur grob
beschrieben, wie Sie etherboot auf
einem FreeBSD-System einsetzen können.
- Als erstes müssen Sie
+ Als Erstes müssen Sie
net/etherboot als Paket
oder als Port installieren. Der Port
etherboot befindet sich unter
/usr/ports/net/etherboot. Wenn Sie
die Portssammlung installiert haben, reicht es aus, in dieses
Verzeichnis zu wechseln, und make install
- aufzurufen.
- Alles Weitere sollte automatisch ablaufen. Ist dies nicht der
- Fall, lesen Sie bitte , das
- Informationen zu Ports und Paketen enthält.
+ aufzurufen. Alles Weitere sollte automatisch ablaufen. Ist
+ dies nicht der Fall, lesen Sie bitte ,
+ das Informationen zu Ports und Paketen enthält.
+
+ Sie können etherboot so
+ konfigurieren, dass TFTP anstelle von
+ NFS verwendet wird, indem Sie die Datei
+ Config im Quellverzeichnis von
+ etherboot bearbeiten.Für unsere Installation verwenden wir eine
Startdiskette. Für Informationen zu anderen Methoden
- (PROM oder DOS-Programme) lesen Sie bitte die Dokumentation zu
- etherboot.
+ (PROM oder &ms-dos;-Programme) lesen Sie bitte die
+ Dokumentation zu etherboot.Um eine Startdiskette zu erzeugen, legen Sie eine Diskette
in das Laufwerk des Rechners ein, auf dem Sie
etherboot installiert haben. Danach
wechseln Sie in das Verzeichnis src des
etherboot-Verzeichnisbaums und geben
Folgendes ein:
-
- &prompt.root; gmake bin32/devicetype.fd0
-
+ &prompt.root; gmake bin32/devicetype.fd0devicetype hängt vom Typ
der Ethernetkarte ab, über die der plattenlose Rechner
verfügt. Lesen Sie dazu NIC im
gleichen Verzeichnis, um den richtigen Wert für
devicetype zu bestimmen.
- Serverkonfiguration - TFTP und NFS
+ Das System mit PXE starten
+
+ In der Voreinstellung lädt der
+ &man.pxeboot.8;-Loader den Kernel über
+ NFS. Soll stattdessen
+ TFTP verwendet werden, muss beim
+ Kompilieren die Option
+ LOADER_TFTP_SUPPORT in der Datei
+ /etc/make.conf eingetragen sein. Sehen
+ Sie sich die Dateien
+ /etc/defaults/make.conf (oder
+ /usr/share/examples/etc/make.conf
+ für 5.X-Systeme) für weitere Anweisungen an.
+
+ Es gibt zwei nicht dokumentierte Optionen für
+ make.conf, die nützlich sein
+ können, wenn Sie eine plattenlose serielle Konsole
+ einrichten wollen:
+ BOOT_PXELDR_PROBE_KEYBOARD, und
+ BOOT_PXELDR_ALWAYS_SERIAL (die zweite
+ Option existiert nur unter &os; 5.X).
+
+ Um PXE beim Systemstart zu verwenden,
+ müssen Sie im BIOS des Rechner die
+ Option Über das Netzwerk starten
+ aktivieren. Alternativ können Sie während der
+ PC-Initialisierung auch eine Funktionstaste drücken.
+
+
+
+
+ Serverkonfiguration - TFTP und
+ NFSTFTPplattenloser Betrieb
+
NFSplattenloser Betrieb
- Sie müssen auf dem TFTP-Server
- tftpd aktivieren:
+ Wenn Sie PXE oder
+ etherboot so konfiguriert haben,
+ dass diese TFTP verwenden, müssen
+ Sie auf dem Dateiserver tftpd
+ aktivieren:Erzeugen Sie ein Verzeichnis, in dem
- tftpd seine Dateien ablegt,
+ tftpd seine Dateien ablegt,
beispielsweise /tftpboot.Fügen Sie folgende Zeile in
/etc/inetd.conf ein:tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpbootAnscheinend benötigen zumindest einige
- PXE-Versionen die TCP-Version von TFTP. Sollte dies der
+ PXE-Versionen die
+ TCP-Version von
+ TFTP. Sollte dies bei Ihnen der
Fall sein, fügen Sie eine zweite Zeile ein, in der
Sie dgram udp durch
stream tcp ersetzen.
- Weisen Sie inetd an, seine
+ Weisen Sie inetd an, seine
Konfiguration erneut einzulesen:&prompt.root; kill -HUP `cat /var/run/inetd.pid`Sie können das Verzeichnis
/tftpboot an einem beliebigen Ort auf dem
Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
sowohl in inetd.conf als auch in
- dhcpd.conf eingetragen.
+ dhcpd.conf eingetragen haben.
Außerdem müssen Sie NFS aktivieren und die
entsprechenden Verzeichnisse exportieren.Fügen Sie folgende Zeile in
/etc/rc.conf ein:nfs_server_enable="YES"Exportieren Sie das Verzeichnis, in dem sich das
Wurzelverzeichnis für den plattenlosen Betrieb
befindet, indem Sie folgende Zeile in
/etc/exports einfügen (passen
- Sie dabei den Einhängpunkt an und ersetzen Sie
- margaux durch den Namen Ihres
- plattenlosen Rechners):
+ Sie dabei den mountpoint
+ an und ersetzen Sie
+ margaux corbieres durch den
+ Namen Ihres plattenlosen Rechners):
/data/misc -alldirs -ro margaux
- Weisen sie nun mountd an, seine
- Konfigurationsdatei erneut einzulesen. Wenn Sie NFS erst
- in /etc/rc.conf aktivieren mussten,
+ Weisen sie nun mountd an,
+ seine Konfigurationsdatei erneut einzulesen. Wenn Sie
+ NFS erst in der Datei
+ /etc/rc.conf aktivieren mussten,
sollten Sie stattdessen den Rechner neu starten. Dadurch
wird die Konfigurationsdatei ebenfalls neu eingelesen.
&prompt.root; kill -HUP `cat /var/run/mountd.pid`Einen plattenlosen Kernel erzeugenplattenloser BetriebKernelkonfiguration
- Fügen Sie in Ihre Kernelkonfigurationsdatei
- zusätzlich folgende Optionen ein:
+ Wenn Sie etherboot verwenden,
+ müssen Sie in die Kernelkonfigurationsdatei Ihres
+ plattenlosen Clients zusätzlich folgende Optionen
+ einfügen:
-
- options BOOTP # Use BOOTP to obtain IP address/hostname
- options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
- options BOOTP_COMPAT # Workaround for broken bootp daemons.
-
+ options BOOTP # Use BOOTP to obtain IP address/hostname
+options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP infoAußerdem können Sie die Optionen
- BOOTP_NFSV3 und
+ BOOTP_NFSV3,
+ BOOT_COMPAT sowie
BOOTP_WIRED_TO verwenden (sehen Sie sich
- dazu auch LINT an).
+ dazu auch LINT unter 4.X oder
+ NOTES unter 5.X an).
+
+ Die Namen dieser Optionen sind historisch bedingt.
+ Sie ermöglichen eine unterschiedliche Verwendung von
+ DHCP und BOOTP innerhalb des Kernels.
+ Es ist auch möglich, eine strikte Verwendung von BOOTP
+ oder DHCP zu erzwingen.Erzeugen Sie den neuen Kernel (lesen Sie dazu auch
- ) und kopieren Sie ihn unter dem
- in dhcpd.conf angegebenen Namen ins
- TFTP-Verzeichnis.
+ ) und kopieren Sie ihn an den
+ in dhcpd.conf festgelegten Ort.
+
+ Wenn Sie PXE verwenden, ist die
+ Erzeugung eines Kernels zwar nicht unbedingt nötig, sie
+ wird allerdings dennoch empfohlen. Die Aktivierung dieser
+ Optionen bewirkt, dass die Anzahl der möglichen
+ DHCP-Anforderungen während des
+ Kernelstarts erhöht wird. Ein kleiner Nachteil sind
+ eventuell auftretende Inkonsistenzen zwischen den neuen
+ Werten und den von &man.pxeboot.8; erhaltenen Werten. Der
+ große Vorteil dieser Variante ist es, dass dabei der
+ Rechnername gesetzt wird, den Sie ansonsten durch eine
+ andere Methode, beispielsweise in einer clientspezifischen
+ rc.conf-Datei festlegen müssten.
+
+
+
+ Damit ein 5.X-Kernel von
+ etherboot geladen werden kann,
+ müssen device hints im
+ Kernel einkompiliert sein. Dazu setzen Sie normalerweise
+ folgende Option in die Kernelkonfigurationsdatei (sehen Sie
+ sich dazu auch die kommentierte Datei
+ NOTES an):
+
+ hints "GENERIC.hints"
+ Das root-Dateisystem erzeugenRoot-Dateisystemplattenloser BetriebSie müssen für den plattenlosen Rechner ein
root-Dateisystem erzeugen, und zwar an dem in
dhcpd.conf als
- root-path festgelegten Ort.
-
- Der einfachste Weg, dies zu tun, ist die Verwendung des
- Shellskripts
- /usr/share/examples/diskless/clone_root.
- Dieses Skript muss von Ihnen allerdings noch angepasst werden.
- Unbedingt nötig ist der Ort, an dem das Dateisystem
- erzeugt werden soll. Dies geschieht über die Variable
- DEST.
-
- Die Kommentare am Anfang des Skripts enthalten
- weitere Informationen. Dort wird erklärt, wie das
- Basisdateisystem erzeugt wird und wie einzelne Dateien durch
- angepasste Versionen für den plattenlosen Betrieb,
- für ein Subnetzwerk oder für einen speziellen
- Rechner ersetzt werden. Ebenfalls enthalten sind Beispiele
- für /etc/fstab und
- /etc/rc.conf, die für den
- plattenlosen Betrieb angepasst sind.
-
- Die README-Dateien unter
- /usr/share/examples/diskless enthalten
- sehr viele interessante Hintergrundinformationen. Gemeinsam
- mit den Beispielen im Verzeichnis diskless
- beschreiben sie allerdings eine Konfigurationsmethode, die von
- der in clone_root und
- /etc/rc.diskless[12] abweicht. Dies kann
- etwas verwirrend sein. Verwenden Sie diese Dateien also nur,
- wenn Sie weitere Informationen benötigen. Es sei denn,
- Sie wollen die dort beschriebene Methode verwenden. In diesem
- Fall müssen Sie allerdings die
- rc-Skripte anpassen.
+ root-path festgelegten Ort. Der
+ folgende Abschnitt beschreibt zwei Möglichkeiten, dies
+ zu tun.
+
+
+ Das Skript clone_root
+ verwenden
+
+ Die Verwendung dieses Skripts ist der schnellste Weg,
+ der allerdings nur unter &os; 4.X funktioniert. Das
+ Shellskript findet sich unter
+ /usr/share/examples/diskless/clone_root
+ und muss von Ihnen angepasst werden. Unbedingt nötig
+ ist der Ort, an dem das Dateisystem erzeugt werden soll.
+ Dazu setzen Sie die Variable DEST
+ entsprechend.
+
+ Die Kommentare am Anfang des Skripts enthalten
+ weitere Informationen. Dort wird erklärt, wie das
+ Basisdateisystem erzeugt wird und wie einzelne Dateien durch
+ angepasste Versionen für den plattenlosen Betrieb,
+ für ein Subnetzwerk oder für einen speziellen
+ Rechner ersetzt werden. Ebenfalls enthalten sind Beispiele
+ für /etc/fstab und
+ /etc/rc.conf, die für den
+ plattenlosen Betrieb angepasst sind.
+
+ Die README-Dateien unter
+ /usr/share/examples/diskless enthalten
+ sehr viele interessante Hintergrundinformationen. Gemeinsam
+ mit den Beispielen im Verzeichnis
+ diskless beschreiben sie allerdings
+ eine Konfigurationsmethode, die von
+ der in clone_root und den
+ Systemstartskripten unter
+ /etc abweicht. Dies
+ kann etwas verwirrend sein. Verwenden Sie diese Dateien
+ also nur zu Informationszwecken. Es sei denn, Sie wollen
+ die dort beschriebene Methode verwenden. In diesem Fall
+ müssen Sie allerdings die
+ rc-Skripte anpassen.
+
+
+
+ Die Standardprozedur make world
+ verwenden
+
+ Diese Methode funktioniert sowohl unter &os; 4.X
+ als auch unter 5.X und installiert ein komplettes
+ jungfräuliches System (und nicht nur ein
+ root-Dateisystem) nach DESTDIR. Dazu
+ müssen Sie lediglich das folgende Skript
+ ausführen:
+
+ #!/bin/sh
+export DESTDIR=/data/misc/diskless
+mkdir -p ${DESTDIR}
+cd /usr/src; make world && make kernel
+cd /usr/src/etc; make distribution
+
+ Danach müssen Sie noch die dadurch in
+ DESTDIR erzeugten Dateien
+ /etc/rc.conf sowie
+ /etc/fstab Ihren Wünschen
+ anpassen.
+ Den Auslagerungsbereich konfigurieren
- Falls nötig, kann eine auf dem NFS-Server liegende
- Datei als Auslagerungsdatei eingerichtet werden. Die
- genauen Optionen für bootptab
- oder dhcpd.conf sind zurzeit allerdings
- nicht vollständig dokumentiert. Die folgenden
- Einstellungen wurden bereits auf einigen Systemen mit
- isc-dhcp 3.0rc11 erfolgreich getestet.
-
+ Falls nötig, kann eine auf dem
+ NFS-Server liegende Datei als
+ Auslagerungsdatei eingerichtet werden. Dazu
+ müssen Sie auf 4.X und 5.X-Systemen
+ unterschiedlich vorgehen.
-
- Fügen Sie folgende Zeilen in
- dhcpd.conf ein:
-
-
- # Global section
- option swap-path code 128 = string;
- option swap-size code 129 = integer 32;
-
- host margaux {
- ... # Standard lines, see above
- option swap-path "192.168.4.4:/netswapvolume/netswap";
- option swap-size 64000;
- }
-
-
- Die Idee dahinter ist, dass es sich bei der Option 128
- von DHCP/BOOTP (zumindest auf einem FreeBSD-Client) um den
- Pfad zur NFS-Auslagerungsdatei handelt. Option 129
- hingegen gibt die Größe der Auslagerungsdatei
- in Kilobytes an. Ältere Versionen von
- dhcpd erlaubten auch Folgendes:
- option option-128 ".... Diese Option
- scheint allerdings nicht mehr zu funktionieren.
-
- /etc/bootptab würde hingegen
- folgende Syntax verwenden:
-
-
- T128="192.168.4.4:/netswapvolume/netswap":T129=64000
-
-
+
+ Eine NFS-Auslagerungsdatei unter
+ &os; 4.X einrichten
+
+ Größe und Ort der Auslagerungsdatei werden
+ durch die &os;-spezifischen
+ BOOTP/DHCP-Optionen 128 und 129
+ festgelegt. Es folgen nun einige Beispielkonfigurationen
+ für ISC DHCP 3.0 sowie
+ bootpd:
+
+
+ Fügen Sie folgende Zeilen in
+ dhcpd.conf ein:
+
+ # Global section
+option swap-path code 128 = string;
+option swap-size code 129 = integer 32;
+
+host margaux {
+ ... # Standard lines, see above
+ option swap-path "192.168.4.4:/netswapvolume/netswap";
+ option swap-size 64000;
+}
+
+ swap-path legt den Pfad zum
+ Verzeichnis der Auslagerungsdatei fest. Jede Datei hat
+ den Namen
+ swap.client-ip.
+
+
+ Ältere
+ dhcpd-Versionen benutzen die
+ Syntax option option-128 "..., die
+ aber nicht mehr unterstützt wird.
+
+ /etc/bootptab würde
+ stattdessen folgende Syntax verwenden:
+
+ T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00
+
+ Die Größe der Auslagerungsdatei
+ wird in /etc/bootptab als
+ Hexadezimalzahl festgelegt.
+
+
+
+ Erzeugen Sie die Auslagerungsdatei(en) auf dem
+ NFS-Dateiserver:
+
+ &prompt.root; mkdir /netswapvolume/netswap
+&prompt.root; cd /netswapvolume/netswap
+&prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
+&prompt.root; chmod 0600 swap.192.168.4.6
+
+ Bei 192.168.4.6 handelt
+ es sich um die IP-Adresse des plattenlosen Clients.
+
+
+
+
+ Fügen Sie auf dem
+ NFS-Dateiserver folgende Zeile in
+ /etc/exports ein:
+
+ /netswapvolume -maproot=0:10 -alldirs margaux corbieres
+
+ Zuletzt weisen Sie mountd
+ erneut an, die Exportdateien neu einzulesen.
+
+
+
-
- Erzeugen Sie die Auslagerungsdatei(en) auf dem
- NFS-Server.
-
-
- &prompt.root; mkdir /netswapvolume/netswap
- &prompt.root; cd /netswapvolume/netswap
- &prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
- &prompt.root; chmod 0600 swap.192.168.4.6
-
-
- 192.168.4.6 ist die
- IP-Adresse des plattenlosen Clients.
-
+
+ Eine NFS-Auslagerungsdatei unter
+ &os; 5.X einrichten
-
- Auf dem NFS-Server, auf dem die Auslagerungsdatei
- liegt, fügen Sie in /etc/exports
- folgende Zeile ein:
+ Der Kernel unterstützt beim Systemstart keine
+ NFS-Auslagerungsdatei. Diese muss daher
+ in den Startskripten aktiviert werden, indem ein
+ beschreibbares Dateisystem eingehängt wird, um dort
+ die Auslagerungsdatei zu erzeugen und zu aktivieren. Um
+ eine Auslagerungsdatei zu erzeugen, gehen Sie wie folgt
+ vor:
-
- /netswapvolume -maproot=0:10 -alldirs margaux
-
+ &prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000
- Anschließend weisen Sie (wie bereits
- beschrieben) mountd an, die
- Exportdatei erneut einzulesen.
-
-
+ Um die Auslagerungsdatei zu aktivieren, fügen Sie
+ folgende Zeile in rc.conf ein:
+
+ swapfile=/path/to/swapfile
+
VerschiedenesSchreibgeschütztes Dateisystem
/usrplattenloser Betrieb/usr schreibgeschütztWenn am plattenlosen Rechner X läuft, müssen
Sie die Konfigurationsdatei von xdm
- anpassen, da Fehlermeldungen per Voreinstellung auf
+ anpassen, da Fehlermeldungen in der Voreinstellung auf
/usr geschrieben werden.Der Server läuft nicht unter FreeBSD
- Wenn das root-Dateisystem nicht auf einem FreeBSD-Rechner
- liegt, muss das Dateisystem zuerst unter FreeBSD erzeugt
- werden. Anschließend wird es beispielsweise mit
- tar oder cpio
- an den gewünschten Ort kopiert.
+ Wenn das root-Dateisystem nicht auf einem
+ FreeBSD-Rechner liegt, muss das Dateisystem zuerst unter
+ FreeBSD erzeugt werden. Anschließend wird es
+ beispielsweise mit tar oder
+ cpio an den gewünschten Ort
+ kopiert.Dabei kann es Probleme mit den Gerätedateien
in /dev geben, die durch eine
unterschiedliche Darstellung der Major- und Minor-Number
von Geräten auf beiden Systemen hervorgerufen werden.
Eine Problemlösung besteht darin, das root-Verzeichnis
- auf einem FreeBSD einzuhängen und die
+ auf einem FreeBSD-Rechner einzuhängen und die
Gerätedateien dort mit MAKEDEV
- zu erzeugen (seit FreeBSD 5.0
- werden Gerätedateien allerdings mit
- &man.devfs.5; erzeugt, ein Ausführen von
- MAKEDEV ist unter diesen Versionen
- daher sinnlos).
+ zu erzeugen (seit FreeBSD 5.0 werden Gerätedateien
+ allerdings mit &man.devfs.5; erzeugt, ein Ausführen von
+ MAKEDEV ist unter diesen Versionen
+ daher sinnlos).
-
ISDN – diensteintegrierendes digitales NetzwerkISDNEine gute Quelle für Informationen zu ISDN ist die
-
+
ISDN-Seite von Dan Kegel.Welche Informationen finden Sie in diesem Abschnitt?Wenn Sie in Europa leben, könnte der Abschnitt
über ISDN-Karten für Sie interessant sein.Wenn Sie ISDN hauptsächlich dazu verwenden wollen, um
sich über einen Anbieter ins Internet einzuwählen,
sollten Sie den Abschnitt über Terminaladapter lesen.
Dies ist die flexibelste Methode, die auch die wenigsten
Probleme verursacht.Wenn Sie zwei Netzwerke miteinander verbinden, oder sich
über eine ISDN-Standleitung mit dem Internet verbinden
wollen, finden Sie entsprechende Informationen im Abschnitt
über Router und Bridges.Bei der Wahl der gewünschten Lösung sind die
entstehenden Kosten ein entscheidender Faktor. Die folgenden
Beschreibungen reichen von der billigsten bis zur teuersten
Variante.HellmuthMichaelisBeigetragen von ISDN-KartenISDNKartenDas ISDN-Subsystem von FreeBSD unterstützt den
DSS1/Q.931- (oder Euro-ISDN)-Standard nur für passive
- Karten. Beginnend mit FreeBSD 4.4 werden auch einige
+ Karten. Seit FreeBSD 4.4 werden auch einige
aktive Karten unterstützt, bei denen die Firmware auch
andere Signalprotokolle unterstützt; dies schließt
auch die erste ISDN-Karte mit
Primärmultiplex-Unterstützung mit ein.
- isdn4bsd erlaubt es Ihnen, sich
- unter Verwendung von IP over raw HDLC oder
+ isdn4bsd ermöglicht es
+ Ihnen, sich unter Nutzung von
+ IP over raw HDLC oder
synchronem PPP mit anderen ISDN-Routern zu
verbinden. Dazu verwenden Sie entweder Kernel-&man.ppp.8;
- (via isppp, einem modifizierten sppp-Treiber), oder Sie benutzen
- User-&man.ppp.8;. Wenn Sie User-&man.ppp.8; verwenden,
- können Sie zwei oder mehrere ISDN-B-Kanäle
- bündeln. Im Paket enthalten ist auch ein Programm mit
- Anrufbeantworterfunktion sowie verschiedene Werkzeuge, wie ein
- Softwaremodem, das 300 Baud unterstützt.
+ (via isppp, einem modifizierten
+ sppp-Treiber), oder Sie benutzen User-&man.ppp.8;. Wenn Sie
+ User-&man.ppp.8; verwenden, können Sie zwei oder mehrere
+ ISDN-B-Kanäle bündeln. Im Paket enthalten ist auch
+ ein Programm mit Anrufbeantworterfunktion sowie verschiedene
+ Werkzeuge, wie ein Softwaremodem, das 300 Baud
+ unterstützt.FreeBSD unterstützt eine ständig wachsende Anzahl
von PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.
Von FreeBSD unterstützte passive ISDN-Karten enthalten
fast immer den ISAC/HSCX/IPAC ISDN-Chipsatz von Infineon
(ehemals Siemens). Unterstützt werden aber auch Karten mit
Cologne Chip (diese allerdings nur für den ISA-Bus),
PCI-Karten mit Winbond W6692 Chipsatz, einige Karten mit dem
Tiger 300/320/ISAC Chipsatz sowie einige Karten mit einem
herstellerspezifischen Chipsatz, wie beispielsweise die
Fritz!Card PCI V.1.0 und die Fritz!Card PnP von AVM.An aktiven ISDN-Karten werden derzeit die AVM B1 BRI-Karten
(ISA und PCI-Version) sowie die AVM T1 PRI-Karten (PCI-Version)
unterstützt.Informationen zu isdn4bsd finden
- Sie im Verzeichnis /usr/share/examples/isdn/
- Ihres FreeBSD-Systems, oder auf der
+ Sie im Verzeichnis
+ /usr/share/examples/isdn/ Ihres
+ FreeBSD-Systems, oder auf der
Internetseite
von isdn4bsd. Dort finden Sie auch
Verweise zu Tipps, Korrekturen, sowie weiteren Informationen,
wie dem
isdn4bsd-Handbuch.
Falls Sie an der Unterstützung eines zusätzlichen
ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
Erweiterung von isdn4bsd interessiert
sind, wenden Sie sich bitte an &a.hm;.Für Fragen zur Installation, Konfiguration und zu
sonstigen Problemen von isdn4bsd gibt
es die Mailingliste &a.isdn.name;.ISDN-TerminaladapterTerminaladapterTerminaladapter (TA) sind für ISDN, was Modems für
analoge Telefonleitungen sind.Modem
- Die meisten Terminaladapter verwenden den Standardbefehlssatz
- für Modems von Hayes (AT-Kommandos) und können daher als
- Modemersatz verwendet werden.
+ Die meisten Terminaladapter verwenden den
+ Standardbefehlssatz für Modems von Hayes (AT-Kommandos) und
+ können daher als Modemersatz verwendet werden.Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
- allerdings erfolgt der Verbindungsaufbau um einiges schneller. Die
- Konfiguration von PPP entspricht
- dabei exakt der eines Modems. Stellen Sie dabei allerdings
- die serielle Geschwindigkeit so hoch wie möglich ein.
+ allerdings erfolgt der Verbindungsaufbau um einiges schneller.
+ Die Konfiguration von PPP entspricht
+ dabei exakt der eines Modems. Stellen Sie dabei allerdings
+ die serielle Geschwindigkeit so hoch wie möglich ein.
+
PPP
- Der Hauptvorteil bei der Verwendung eines Terminaladapters zur
- Verbindung mit einem Internetanbieter ist die Möglichkeit
- zur Nutzung von dynamischem PPP. Da IP-Adressen immer knapper
- werden, vergeben die meisten Provider keine statischen
- IP-Adressen mehr. Die meisten Router unterstützen
- allerdings keine dynamische Zuweisung von IP-Adressen.
+ Der Hauptvorteil bei der Verwendung eines Terminaladapters
+ zur Verbindung mit einem Internetanbieter ist die
+ Möglichkeit zur Nutzung von dynamischem PPP. Da
+ IP-Adressen immer knapper werden, vergeben die meisten Provider
+ keine statischen IP-Adressen mehr. Die meisten Router
+ unterstützen allerdings keine dynamische Zuweisung von
+ IP-Adressen.Der PPP-Daemon bestimmt die Stabilität und
Eigenschaften der Verbindung, wenn Sie einen Terminaladapter
- verwenden. Daher können Sie unter FreeBSD einfach von einer
- Modemverbindung auf eine ISDN-Verbindung wechseln, wenn
+ verwenden. Daher können Sie unter FreeBSD einfach von
+ einer Modemverbindung auf eine ISDN-Verbindung wechseln, wenn
Sie PPP bereits konfiguriert haben. Allerdings bedeutet
dies auch, das bereits bestehende Probleme mit PPP auch unter
ISDN auftreten werden.Wenn Sie an maximaler Stabilität interessiert sind,
verwenden Sie Kernel-PPP, und
- nicht das User-PPP.
-
+ nicht das User-PPP.
Folgende Terminaladapter werden von FreeBSD
unterstützt:Motorola BitSurfer und Bitsurfer ProAdtranDie meisten anderen Terminaladapter werden wahrscheinlich
ebenfalls funktionieren, da die Hersteller von Terminaladaptern
darauf achten, dass ihre Produkte den Standardbefehlssatz
möglichst gut unterstützen.Das wirkliche Problem mit einem externen Terminaladapter ist,
dass, ähnlich wie bei Modems, eine gute serielle Karte
eine Grundvoraussetzung ist.Sie sollten sich die
-
+
Anleitung für die Nutzung serieller Geräte unter
FreeBSD ansehen, wenn Sie detaillierte Informationen
über serielle Geräte und die Unterschiede zwischen
- asynchronen und synchronen seriellen Ports benötigen.
+ asynchronen und synchronen seriellen Ports benötigen.
+
Ein Terminaladapter, der an einem (asynchronen)
seriellen Standardport angeschlossen ist, beschränkt
Sie auf 115,2 Kbs. Dies
selbst dann, wenn Sie eine Verbindung mit 128 Kbs haben.
Um die volle Leistungsfähigkeit von ISDN (128 Kbs)
nutzen zu können, müssen Sie den Terminaladapter
daher an eine synchrone serielle Karte anschließen.Kaufen Sie keinen internen Terminaladapter in der Hoffnung,
damit das synchron/asynchron-Problem vermeiden zu können.
Interne Terminaladapter haben einen (asynchronen) seriellen
Standardportchip eingebaut. Der einzige Vorteil interner
- Terminaladapter ist es, dass Sie sich den Kauf eines seriellen
- Kabels ersparen und dass Sie ein Stromkabel weniger haben.
+ Terminaladapter ist es, dass Sie ein serielles sowie ein
+ Stromkabel weniger benötigen.
Eine synchrone Karte mit einem Terminaladapter ist
mindestens so schnell wie ein autonomer ISDN-Router,
und, in Kombination mit einem einfachen 386-FreeBSD-System,
wahrscheinlich flexibler.Die Entscheidung zwischen synchroner Karte/Terminaladapter
- und einem autonomen ISDN-Router ist eine beinahe religiöse
+ und einem autonomen ISDN-Router ist beinahe eine religiöse
Angelegenheit. Zu diesem Thema gibt es viele Diskussionen
in den Mailinglisten. Suchen Sie in den
-
+
Archiven danach, wenn Sie an der kompletten Diskussion
interessiert sind.ISDN-Bridges und RouterISDNAutonome Bridge/RouterISDN-Bridges und Router sind keine Eigenheit von
FreeBSD oder eines anderen Betriebssystems. Für eine
vollständigere Beschreibung von Routing und
Netzwerkkopplungen mit einer Bridge informieren Sie sich
bitte durch weiterführende Literatur.In diesem Abschnitt werden die Begriffe Router und
Bridge synonym verwendet.
- ISDN-Router und Bridges werden immer günstiger und damit
- auch immer beliebter. Ein ISDN-Router ist eine kleine Box, die
- direkt an Ihr lokales Ethernet-Netzwerk angeschlossen wird und
- sich mit mit einem Router oder einer Bridge verbindet. Die
- eingebaute Software ermöglicht die Kommunikation über
- PPP oder andere beliebte Protokolle.
+ ISDN-Router und Bridges werden immer günstiger und
+ damit auch immer beliebter. Ein ISDN-Router ist eine kleine
+ Box, die direkt an Ihr lokales Ethernet-Netzwerk angeschlossen
+ wird und sich mit einem Router oder einer Bridge verbindet.
+ Die eingebaute Software ermöglicht die Kommunikation
+ über PPP oder andere beliebte Protokolle.Ein Router ermöglicht einen deutlich höheren
Datendurchsatz als ein herkömmlicher Terminaladapter,
da er eine vollsynchrone ISDN-Verbindung nutzt.Das Hauptproblem mit ISDN-Routern und Bridges ist,
dass die Zusammenarbeit zwischen Geräten verschiedener
Hersteller nach wie vor ein Problem ist. Wenn Sie sich auf
diese Weise mit einem Internetanbieter verbinden wollen,
klären Sie daher vorher ab, welche Anforderungen Ihre
Geräte erfüllen müssen.Eine ISDN-Bridge ist eine einfache und wartungsarme
Lösung, zwei Netze, beispielsweise Ihr privates Netz
und Ihr Firmennetz, miteinander zu verbinden. Da Sie die
technische Ausstattung für beide Seiten kaufen müssen,
ist sichergestellt, dass die Verbindung funktionieren
wird.Um beispielsweise einen privaten Computer oder eine
Zweigstelle mit dem Hauptnetzwerk zu verbinden, könnte
folgende Konfiguration verwendet werden:Kleines Netzwerk (Privatnetz)10 base 2Das Netzwerk basiert auf der Bustopologie mit 10base2
Ethernet (Thinnet). Falls nötig, stellen
Sie die Verbindung zwischen Router und Netzwerkkabel mit einem
AUI/10BT-Transceiver her.
---Sun Workstation
|
---FreeBSD Rechner
|
---Windows 95
|
Autonomer Router
|
ISDN BRI Verbindung
10Base2 - EthernetWenn Sie nur einen einzelnen Rechner verbinden wollen,
können Sie auch ein Twisted-Pair-Kabel (Cross-Over)
verwenden, das direkt an den Router angeschlossen wird.Großes Netzwerk (Firmennetz)10 base TDieses Netzwerk basiert auf der Sterntopologie und 10baseT
Ethernet (Twisted Pair).
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Autonomer Router
|
ISDN BRI Verbindung
ISDN NetzwerkdiagrammEin großer Vorteil der meisten Router und Bridges
ist es, dass man gleichzeitig zwei
unabhängige PPP-Verbindungen
zu zwei verschiedenen Zielen aufbauen kann. Diese
Funktion bieten die meisten Terminaladapter nicht. Die
Ausnahme sind spezielle (meist teure) Modelle, die über
zwei getrennte serielle Ports verfügen. Verwechseln Sie
dies aber nicht mit Kanalbündelung oder MPP.Dies kann sehr nützlich sein, wenn Sie eine
ISDN-Standleitung in Ihrem Büro haben, die sie
aufteilen wollen, ohne eine zusätzliche ISDN-Leitung
zu installieren. Ein ISDN-Router kann über einen B-Kanal
(64 Kbps) eine dedizierte Verbindung ins Internet aufbauen,
und gleichzeitig den anderen B-Kanal für eine separate
Datenverbindung nutzen. Der zweite B-Kanal kann beispielsweise
für ein- oder ausgehende Verbindungen verwendet werden.
Sie können ihn aber auch dynamisch mit dem ersten B-Kanal
bündeln, um Ihre Bandbreite zu erhöhen.IPX/SPXEine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll,
sondern auch in beliebigen anderen Protokollen versenden.
-
-
BillSwingleBeigetragen von EricOgrenErweitert von UdoErdelhoff
- NIS/YP (Network Information Service)
+ NIS/YP – Network Information ServiceWas ist NIS?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS (Network Information Service) wurde von Sun Microsystems
- entwickelt, um &unix;-Systeme (ursprünglich &sunos;) zentral
- verwalten zu können. Mittlerweile hat es sich zu einem
- Industriestandard entwickelt, der von allen wichtigen
- &unix;-Systemen (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD,
- FreeBSD und anderen) unterstützt wird.
+ entwickelt, um &unix;-Systeme (ursprünglich &sunos;)
+ zentral verwalten zu können. Mittlerweile hat es sich zu
+ einem Industriestandard entwickelt, der von allen wichtigen
+ &unix;-Systemen (&solaris;, HP-UX, &aix;, Linux, NetBSD,
+ OpenBSD, FreeBSD und anderen) unterstützt wird.
yellow pagesNISNIS war ursprünglich als
Yellow Pages bekannt, aus markenrechtlichen
Gründen wurde der Name aber geändert. Die alte
Bezeichnung (sowie die Abkürzung YP) wird aber nach wie vor
häufig verwendet.NISDomänenBei NIS handelt es sich um ein RPC-basiertes
Client/Server-System. Eine Gruppe von Rechnern greift dabei
innerhalb einer NIS-Domäne auf gemeinsame
Konfigurationsdateien zu. Ein Systemadministrator wird dadurch
in die Lage versetzt, NIS-Clients mit minimalem Aufwand
einzurichten, sowie Änderungen an der Systemkonfiguration
von einem zentralen Ort aus durchzuführen.Windows NTDie Funktion entspricht dem Domänensystem von
&windowsnt;; auch wenn sich die interne Umsetzung unterscheidet,
sind die Basisfunktionen vergleichbar.Wichtige Prozesse und BegriffeEs gibt verschiedene Begriffe und Anwenderprozesse, auf die
Sie stoßen werden, wenn Sie NIS unter FreeBSD einrichten,
egal ob Sie einen Server oder einen Client konfigurieren:portmapBegriffBeschreibungNIS-DomänennameEin NIS-Masterserver sowie alle Clients (inklusive
der Slaveserver) haben einen NIS-Domänennamen.
- Dieser hat (ähnlich den &windowsnt;-Domänennamen)
- nichts mit DNS zu tun.
+ Dieser hat (ähnlich den
+ &windowsnt;-Domänennamen) nichts mit DNS zu tun.
+
portmapMuss laufen, damit RPC (Remote Procedure Call, ein
von NIS verwendetes Netzwerkprotokoll) funktioniert.
NIS-Server sowie Clients funktionieren ohne
portmap nicht.ypbindBindet einen NIS-Client an seinen
NIS-Server. Der Client bezieht den
NIS-Domänennamen vom System und stellt über
das RPC-Protokoll eine Verbindung zum NIS-Server her.
ypbind ist der zentrale Bestandteil
der Client-Server-Kommunikation in einer NIS-Umgebung.
Wird ypbind auf einem Client beendet,
ist dieser nicht mehr in der Lage, auf den NIS-Server
zuzugreifen.ypservSollte nur auf dem NIS-Server laufen, da es sich um
den Serverprozess selbst handelt. Wenn &man.ypserv.8;
nicht mehr läuft, kann der Server nicht mehr auf
NIS-Anforderungen reagieren (wenn ein Slaveserver
existiert, kann dieser als Ersatz fungieren). Einige
- NIS-Systeme (allerdings nicht das von
+ NIS-Systeme (allerdings nicht das von
FreeBSD) versuchen allerdings erst gar nicht, sich mit
einem anderen Server zu verbinden, wenn der bisher
verwendete Server nicht mehr reagiert. Die einzige
Lösung dieses Problems besteht dann darin, den
Serverprozess (oder gar den Server selbst) oder den
ypbind-Prozess auf dem Client neu
zu starten.rpc.yppasswddEin weiterer Prozess, der nur auf dem
NIS-Masterserver laufen sollte. Es handelt sich um einen
Daemonprozess, der es NIS-Clients ermöglicht, sich
auf dem NIS-Masterserver anzumelden, um ihr Passwort zu
ändern.Wie funktioniert NIS?In einer NIS-Umgebung gibt es drei Rechnerarten:
Masterserver, Slaveserver und Clients. Server dienen als
zentraler Speicherort für Rechnerkonfigurationen.
Masterserver speichern die maßgebliche Kopie dieser
Informationen, während Slaveserver diese Informationen
aus Redundanzgründen spiegeln. Die Clients beziehen
ihre Informationen immer vom Server.Auf diese Art und Weise können Informationen aus
verschiedenen Dateien von mehreren Rechnern gemeinsam
verwendet werden. master.passwd,
group, und hosts
werden oft gemeinsam über NIS verwendet. Immer, wenn
ein Prozess auf einem Client auf Informationen zugreifen will,
die normalerweise in lokalen Dateien vorhanden wären,
wird stattdessen eine Anfrage an den NIS-Server gestellt, an
den der Client gebunden ist.Arten von NIS-RechnernNISMasterserverEin NIS-Masterserver verwaltet,
ähnlich einem &windowsnt;-Domänencontroller, die
von allen NIS-Clients gemeinsam verwendeten Dateien.
passwd, group,
sowie verschiedene andere von den Clients verwendete
Dateien existieren auf dem Masterserver.Ein Rechner kann auch für mehrere
NIS-Domänen als Masterserver fungieren. Dieser
Abschnitt konzentriert sich im Folgenden allerdings auf
eine relativ kleine NIS-Umgebung.NISSlaveserverNIS-Slaveserver. Ähnlich
einem &windowsnt;-Backupdomänencontroller, verwalten
NIS-Slaveserver Kopien der Daten des NIS-Masterservers.
NIS-Slaveserver bieten die Redundanz, die für
kritische Umgebungen benötigt wird. Zusätzlich
entlasten Slaveserver den Masterserver: NIS-Clients
verbinden sich immer mit dem NIS-Server, der zuerst
- reagiert. Dieser Server kann auch ein Slaveserver sein.
+ reagiert. Dieser Server kann auch ein Slaveserver sein.
+
NISClientNIS-Clients. NIS-Clients
identifizieren sich gegenüber dem NIS-Server
- (ähnlich den &windowsnt;-Workstations), um sich am Server
- anzumelden.
+ (ähnlich den &windowsnt;-Workstations), um sich am
+ Server anzumelden.
NIS/YP konfigurierenDieser Abschnitt beschreibt an Hand eines Beispiels die
Einrichtung einer NIS-Umgebung.Es wird dabei davon ausgegangen, dass Sie
FreeBSD 3.3 oder eine aktuellere Version verwenden.
Wahrscheinlich funktioniert diese Anleitung
auch für FreeBSD-Versionen ab 3.0, es gibt dafür aber
keine Garantie.PlanungNehmen wir an, Sie seien der Administrator eines kleinen
Universitätsnetzes. Dieses Netz besteht aus
fünfzehn FreeBSD-Rechnern, für die derzeit keine
zentrale Verwaltung existiert, jeder Rechner hat also eine
eigene Version von /etc/passwd und
/etc/master.passwd. Diese Dateien werden
manuell synchron gehalten; legen Sie einen neuen Benutzer an,
so muss dies auf allen fünfzehn Rechnern manuell
erledigt werden (unter Verwendung von
adduser). Da diese Lösung sehr
ineffizient ist, soll das Netzwerk in Zukunft NIS verwenden,
wobei zwei der Rechner als Server dienen sollen.In Zukunft soll das Netz also wie folgt aussehen:RechnernameIP-AdresseRechneraufgabeellington10.0.0.2NIS-Mastercoltrane10.0.0.3NIS-Slavebasie10.0.0.4Workstation der Fakultätbird10.0.0.5Clientrechnercli[1-11]10.0.0.[6-17]Verschiedene andere ClientsWenn Sie NIS das erste Mal einrichten, ist es ratsam, sich
zuerst über die Vorgangsweise Gedanken zu machen.
Unabhängig von der Größe Ihres Netzwerks
müssen Sie stets einige Entscheidungen treffen.Einen NIS-Domänennamen wählenNISDomänennameDies muss nicht der Domainname sein. Es
handelt sich vielmehr um den NIS-Domainnamen.
Wenn ein Client Informationen anfordert, ist in dieser
Anforderung der Name der NIS-Domäne enthalten.
Dadurch weiß jeder Server im Netzwerk, auf welche
Anforderung er antworten muss. Stellen Sie sich den
NIS-Domänennamen als den Namen einer Gruppe von
Rechnern vor, die etwas gemeinsam haben.Manchmal wird der Name der Internetdomäne auch
für die NIS-Domäne verwendet. Dies ist allerdings
nicht empfehlenswert, da dies bei der Behebung von Problemen
verwirrend sein kann. Der Name der NIS-Domäne sollte
innerhalb Ihres Netzwerks einzigartig sein. Hilfreich ist
es, wenn der Name die Gruppe der in ihr zusammengefassten
Rechner beschreibt. Die Kunstabteilung von Acme Inc.
hätte daher die NIS-Domäne
acme-art. Für unser Beispiel verwenden
wir den NIS-Domänennamen
test-domain.SunOSEs gibt jedoch auch Betriebssysteme (vor allem &sunos;),
die als NIS-Domänennamen den Name der
Internetdomäne verwenden. Wenn dies für einen
oder mehrere Rechner Ihres Netzwerks zutrifft,
müssen Sie den Namen der
Internetdomäne als Ihren NIS-Domänennamen
verwenden.Anforderungen an den ServerWenn Sie einen NIS-Server einrichten wollen, müssen
Sie einige Dinge beachten. Eine unangenehme Eigenschaft
von NIS ist die Abhängigkeit der Clients vom Server.
Wenn sich der Client nicht über den Server mit seiner
NIS-Domäne verbinden kann, wird der Rechner oft
unbenutzbar, da das Fehlen von Benutzer- und
Gruppeninformationen zum Einfrieren des Clients führt.
Daher sollten Sie für den Server einen Rechner
auswählen, der nicht regelmäßig neu
gestartet werden muss und der nicht für Testversuche
verwendet wird. Idealerweise handelt es sich um einen
alleinstehenden Rechner, dessen einzige Aufgabe es ist, als
NIS-Server zu dienen. Wenn Sie ein Netzwerk haben, das
nicht zu stark ausgelastet ist, ist es auch möglich,
den NIS-Server als weiteren Dienst auf einem anderen Rechner
laufen zu lassen. Denken Sie aber daran, dass ein Ausfall
des NIS-Servers alle NIS-Clients
betrifft.NIS-ServerDie verbindlichen Kopien aller NIS-Informationen befinden
sich auf einem einzigen Rechner, dem NIS-Masterserver. Die
Datenbanken, in denen die Informationen gespeichert sind,
bezeichnet man als NIS-Maps. Unter FreeBSD werden diese
Maps unter /var/yp/[domainname]
gespeichert, wobei [domainname] der
Name der NIS-Domäne ist. Ein einzelner NIS-Server
kann gleichzeitig mehrere NIS-Domänen verwalten, daher
können auch mehrere Verzeichnisse vorhanden sein. Jede
Domäne verfügt über ein eigenes Verzeichnis
sowie einen eigenen, von anderen Domänen
unabhängigen Satz von NIS-Maps.NIS-Master- und Slaveserver verwenden den
ypserv-Daemon, um NIS-Anfragen zu
bearbeiten. ypserv empfängt
eingehende Anfragen der NIS-Clients, ermittelt aus der
angeforderten Domäne und Map einen Pfad zur
entsprechenden Datenbank, und sendet die angeforderten
Daten von der Datenbank zum Client.Einen NIS-Masterserver einrichtenNISServerkonfigurationAbhängig von Ihren Anforderungen ist die
Einrichtung eines NIS-Masterservers relativ einfach, da
NIS von FreeBSD bereits in der Standardkonfiguration
unterstützt wird. Sie müssen nur folgende
Zeilen in /etc/rc.conf einfügen:
nisdomainname="test-domain"Diese Zeile setzt den NIS-Domänennamen auf
test-domain, wenn Sie das Netzwerk
initialisieren (beispielsweise nach einem Systemstart).
nis_server_enable="YES"
Dadurch werden die NIS-Serverprozesse gestartet.nis_yppasswdd_enable="YES"
Durch diese Zeile wird der
rpc.yppasswdd-Daemon aktiviert, der,
wie bereits erwähnt, die Änderung von
NIS-Passwörtern von einem Client aus
ermöglicht.In Abhängigkeit von Ihrer NIS-Konfiguration
können weitere Einträge erforderlich sein.
Weitere Informationen finden Sie im Abschnitt
NIS-Server, die auch
als NIS-Clients arbeiten.Nun müssen Sie nur noch
/etc/netstart als Superuser
ausführen, um alles entsprechend Ihren Vorgaben in
/etc/rc.conf einzurichten.Die NIS-Maps initialisierenNISmapsNIS-Maps sind Datenbanken, die
sich im Verzeichnis /var/yp befinden.
Sie werden am NIS-Masterserver aus den Konfigurationsdateien
unter /etc erzeugt. Einzige Ausnahme:
/etc/master.passwd. Dies ist auch
sinnvoll, da Sie die Passwörter für Ihr
- root- bzw. andere
+ root- oder andere
Administratorkonten nicht an alle Server der NIS-Domäne
verteilen wollen. Bevor Sie also die NIS-Maps des
Masterservers einrichten, sollten Sie Folgendes tun:
-
-&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
+ &prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
-&prompt.root; vi master.passwd
-
+&prompt.root; vi master.passwdEntfernen Sie alle Systemkonten
(wie bin, tty,
kmem oder games),
sowie alle Konten, die Sie nicht an die NIS-Clients
weitergeben wollen (beispielsweise root
und alle Konten mit der UID 0 (=Superuser).Stellen Sie sicher, dass
/var/yp/master.passwd weder von der
Gruppe noch von der Welt gelesen werden kann (Zugriffsmodus
600)! Ist dies nicht der Fall, ändern Sie dies mit
chmod.Tru64 UNIXNun können Sie die NIS-Maps initialisieren.
- FreeBSD verwendet für diese Aufgabe das Skript
- ypinit (weiteres erfahren Sie
- in der Hilfeseite &man.ypinit.8;). Dieses Skript ist auf
- fast allen UNIX-Betriebssystemen verfügbar. Bei
+ FreeBSD verwendet dafür das Skript
+ ypinit (lesen Sie dazu auch
+ &man.ypinit.8;). Dieses Skript ist auf fast allen
+ UNIX-Betriebssystemen verfügbar. Bei
Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings
ypsetup. Da wir Maps für einen
NIS-Masterserver erzeugen, verwenden wir
ypinit mit der Option
. Nachdem Sie die beschriebenen
Aktionen durchgeführt haben, erzeugen Sie nun die
NIS-Maps:
-
-ellington&prompt.root; ypinit -m test-domain
+ ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
-ellington has been setup as an YP master server without any errors.
-
+ellington has been setup as an YP master server without any errors.Dadurch erzeugt ypinit/var/yp/Makefile aus der Datei
/var/yp/Makefile.dist.
Durch diese Datei wird festgelegt, dass Sie in einer
NIS-Umgebung mit nur einem Server arbeiten und dass alle
Clients unter FreeBSD laufen. Da
test-domain aber auch über einen
Slaveserver verfügt, müssen Sie
/var/yp/Makefile entsprechend anpassen:
ellington&prompt.root; vi /var/yp/MakefileSie sollten die ZeileNOPUSH = "True"auskommentieren (falls dies nicht bereits der Fall ist).Einen NIS-Slaveserver einrichtenNISSlaveserverEin NIS-Slaveserver ist noch einfacher einzurichten als
ein Masterserver. Melden Sie sich am Slaveserver an und
ändern Sie /etc/rc.conf analog
zum Masterserver. Der einzige Unterschied besteht in der
Verwendung der Option , wenn Sie
ypinit aufrufen. Die Option
erfordert den Namen des
NIS-Masterservers, daher sieht unsere Ein- und Ausgabe wie
folgt aus:
-
-coltrane&prompt.root; ypinit -s ellington test-domain
+ coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
-Don't forget to update map ypservers on ellington.
-
+Don't forget to update map ypservers on ellington.Sie sollten nun über das Verzeichnis
/var/yp/test-domain verfügen.
Die Kopien der NIS-Masterserver-Maps sollten sich in diesem
Verzeichnis befinden. Allerdings müssen Sie diese
auch aktuell halten. Die folgenden Einträge in
/etc/crontab erledigen diese Aufgabe:
-
-20 * * * * root /usr/libexec/ypxfr passwd.byname
-21 * * * * root /usr/libexec/ypxfr passwd.byuid
-
+ 20 * * * * root /usr/libexec/ypxfr passwd.byname
+21 * * * * root /usr/libexec/ypxfr passwd.byuidDiese zwei Zeilen zwingen den Slaveserver, seine Maps
mit denen des Masterservers zu synchronisieren. Diese
Einträge sind nicht zwingend, da der Masterserver
versucht, alle Änderungen seiner NIS-Maps an seine
Slaveserver weiterzugeben. Da Passwortinformationen aber
für vom Server abhängige Systeme vital sind, ist
es eine gute Idee, diese Aktualisierungen zu erzwingen.
Besonders wichtig ist dies in stark ausgelasteten Netzen,
in denen Map-Aktualisierungen unvollständig sein
könnten.Führen Sie nun /etc/netstart
auch auf dem Slaveserver aus, um den NIS-Server erneut zu
starten.NIS-ClientsEin NIS-Client bindet sich unter
Verwendung des ypbind-Daemons an einen
NIS-Server. ypbind prüft die
Standarddomäne des Systems (die durch
domainname gesetzt wird), und beginnt
RPCs über das lokale Netzwerk zu verteilen (broadcast).
Diese Anforderungen legen den Namen der Domäne fest,
für die ypbind eine Bindung erzeugen
will. Wenn der Server der entsprechenden Domäne eine
solche Anforderung erhält, schickt er eine Antwort an
ypbind. ybind speichert
daraufhin die Adresse des Servers. Wenn mehrere Server
verfügbar sind (beispielsweise ein Master- und mehrere
Slaveserver), verwendet ypbind die erste
erhaltene Adresse. Ab diesem Zeitpunkt richtet der Client alle
Anfragen an genau diesen Server. ypbindpingt den Server gelegentlich an, um
sicherzustellen, dass der Server funktioniert. Antwortet der
Server innerhalb eines bestimmten Zeitraums nicht (Timeout),
markiert ypbind die Domäne als
ungebunden und beginnt erneut, RPCs über das Netzwerk zu
verteilen, um einen anderen Server zu finden.Einen NIS-Client konfigurierenNISClient konfigurierenEinen FreeBSD-Rechner als NIS-Client einzurichten, ist
recht einfach.Fügen Sie folgende Zeilen in
/etc/rc.conf ein, um den
NIS-Domänennamen festzulegen, und um
ypbind bei der Initialisierung des
Netzwerks zu starten:
-
-nisdomainname="test-domain"
-nis_client_enable="YES"
-
+ nisdomainname="test-domain"
+nis_client_enable="YES"Um alle Passworteinträge des NIS-Servers zu
importieren, löschen Sie alle Benutzerkonten in
/etc/master.passwd und fügen
mit vipw folgende Zeile am Ende der
Datei ein:+:::::::::Diese Zeile legt für alle gültigen
Benutzerkonten der NIS-Server-Maps einen Zugang an.
Es gibt verschiedene Wege, Ihren NIS-Client durch
Änderung dieser Zeile zu konfigurieren. Lesen
Sie dazu auch den Abschnitt über
- Netzgruppen weiter
+ Netzgruppen weiter
unten. Weitere detaillierte Informationen finden Sie
im Buch Managing NFS and NIS von
O'Reilly.Sie sollten zumindest ein lokales Benutzerkonto,
das nicht über NIS importiert wird, in Ihrer
/etc/master.passwd behalten.
Dieser Benutzer sollte außerdem ein Mitglied der
Gruppe wheel sein. Wenn es
mit NIS Probleme gibt, können Sie diesen Zugang
verwenden, um sich anzumelden,
root zu werden und das Problem
zu beheben.Um alle möglichen Gruppeneinträge vom
NIS-Server zu importieren, fügen sie folgende Zeile
in /etc/group ein:+:*::Nachdem Sie diese Schritte erledigt haben, sollten Sie
mit ypcat passwd die
passwd-Map des NIS-Server anzeigen
können.
Sicherheit unter NISNISSicherheitIm Allgemeinen kann jeder entfernte Anwender einen RPC an
&man.ypserv.8; schicken, um den Inhalt Ihrer NIS-Maps abzurufen,
falls er Ihren NIS-Domänennamen kennt. Um solche
unautorisierten Transaktionen zu verhindern, unterstützt
&man.ypserv.8; securenets, durch die man den
Zugriff auf bestimmte Rechner beschränken kann.
&man.ypserv.8; versucht, beim Systemstart die Informationen
über securenets aus der Datei
/var/yp/securenets zu laden.Die Datei securenets kann auch
in einem anderen Verzeichnis stehen, das mit der Option
angegeben wird. Diese Datei
enthält Einträge, die aus einer Netzwerkadresse und
einer Netzmaske bestehen, die durch Leerzeichen getrennt
werden. Kommentarzeilen beginnen mit #.
/var/yp/securnets könnte
beispielsweise so aussehen:
-
-# allow connections from local host -- mandatory
+ # allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
-10.0.0.0 255.255.240.0
-
+10.0.0.0 255.255.240.0Wenn &man.ypserv.8; eine Anforderung von einer zu diesen
Regeln passenden Adresse erhält, wird die Anforderung
bearbeitet. Gibt es keine passende Regel, wird die
Anforderung ignoriert und eine Warnmeldung aufgezeichnet. Wenn
/var/yp/securenets nicht vorhanden ist,
erlaubt ypserv Verbindungen von jedem Rechner
aus.ypserv unterstützt auch das
tcpwrapper-Paket von Wietse Venema.
Mit diesem Paket kann der Administrator für
Zugriffskontrollen die Konfigurationsdateien von
tcpwrapper anstelle von
/var/yp/securenets verwenden.Während beide Kontrollmechanismen einige Sicherheit
gewähren, beispielsweise durch privilegierte Ports, sind
sie gegenüber IP spoofing-Attacken
verwundbar. Jeder NIS-Verkehr sollte daher von Ihrer Firewall
blockiert werden.Server, die /var/yp/securenets
verwenden, können Schwierigkeiten bei der Anmeldung von
Clients haben, die ein veraltetes TCP/IP-Subsystem
besitzen. Einige dieser TCP/IP-Subsysteme setzen alle
Rechnerbits auf Null, wenn Sie einen
Broadcast durchführen und/oder
können die Subnetzmaske nicht auslesen, wenn sie die
- Broadcast-Adresse berechnen. Einige Probleme können durch
- Änderungen der Clientkonfiguration behoben werden.
+ Broadcast-Adresse berechnen. Einige Probleme können
+ durch Änderungen der Clientkonfiguration behoben werden.
Andere hingegen lassen sich nur durch das Entfernen des
betreffenden Rechners aus dem Netzwerk oder den Verzicht auf
/var/yp/securenets umgehen.Die Verwendung von /var/yp/securenets
auf einem Server mit einem solch veralteten
TCP/IP-Subsystem ist eine sehr schlechte Idee, die zu
einem Verlust der NIS-Funktionalität für große
Teile Ihres Netzwerks führen kann.tcpwrapperDie Verwendung von tcpwrapper
verlangsamt die Reaktion Ihres NIS-Servers. Diese
zusätzliche Reaktionszeit kann in Clientprogrammen zu
Timeouts führen. Dies vor allem in Netzwerken, die
stark ausgelastet sind, oder nur über langsame NIS-Server
verfügen. Wenn ein oder mehrere Ihrer Clientsysteme
dieses Problem aufweisen, sollten Sie die betreffenden Clients
in NIS-Slaveserver umwandeln, und diese an sich selbst binden.
Bestimmte Benutzer an der Anmeldung hindernNISBenutzer blockierenIn unserem Labor gibt es den Rechner basie,
der nur für Mitarbeiter der Fakultät bestimmt ist.
Wir wollen diesen Rechner nicht aus der NIS-Domäne
entfernen, obwohl passwd des
NIS-Masterservers Benutzerkonten sowohl für
Fakultätsmitarbeiter als auch für Studenten
enthält. Was können wir also tun?Es gibt eine Möglichkeit, bestimmte Benutzer an der
Anmeldung an einem bestimmten Rechner zu hindern, selbst wenn
diese in der NIS-Datenbank vorhanden sind. Dazu müssen
Sie lediglich an diesem Rechner den Eintrag
-Benutzername an
das Ende von /etc/master.passwd setzen,
wobei Benutzername der zu
blockierende Benutzername ist. Diese Änderung sollte
bevorzugt durch vipw erledigt werden, da
vipw Ihre Änderungen an
/etc/master.passwd auf Plausibilität
überprüft und nach erfolgter Änderung die
Passwortdatenbank automatisch aktualisiert. Um also den
Benutzer bill an der Anmeldung am Rechner
basie zu hindern, gehen wir wie folgt vor:
-
-basie&prompt.root; vipw
+ basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
-basie&prompt.root;
-
+basie&prompt.root;UdoErdelhoffBeigetragen von Netzgruppen verwendenNetzgruppenDie im letzten Abschnitt beschriebene Methode eignet sich
besonders, wenn Sie spezielle Regeln für wenige
Benutzer oder wenige Rechner benötigen. In großen
Netzwerken werden Sie allerdings
mit Sicherheit vergessen, einige Benutzer
von der Anmeldung an bestimmten Rechnern auszuschließen.
Oder Sie werden gezwungen sein, jeden Rechner einzeln zu
konfigurieren. Dadurch verlieren Sie aber den Hauptvorteil von
NIS, die zentrale Verwaltung.Die Lösung für dieses Problem sind
Netzgruppen. Ihre Aufgabe und Bedeutung
ist vergleichbar mit normalen, von UNIX-Dateisystemen
verwendeten Gruppen. Die Hauptunterschiede sind das Fehlen
einer numerischen ID sowie die Möglichkeit, Netzgruppen
zu definieren, die sowohl Benutzer als auch andere Netzgruppen
enthalten.Netzgruppen wurden entwickelt, um große, komplexe
Netzwerke mit Hunderten Benutzern und Rechnern zu verwalten.
Sie sind also von Vorteil, wenn Sie von dieser Situation
betroffen sind. Andererseits ist es dadurch beinahe
unmöglich, Netzgruppen mit einfachen Beispielen zu
erklären. Das hier verwendete Beispiel veranschaulicht
dieses Problem.Nehmen wir an, dass Ihre erfolgreiche Einführung von
NIS die Aufmerksamkeit Ihrer Vorgesetzten geweckt hat. Ihre
nächste Aufgabe besteht nun darin, Ihre NIS-Domäne
um zusätzliche Rechner zu erweitern. Die folgenden
Tabellen enthalten die neuen Benutzer und Rechner inklusive
einer kurzen Beschreibung.Benutzername(n)Beschreibungalpha, betaBeschäftigte der IT-Abteilungcharlie, deltaDie neuen Lehrlinge der IT-Abteilungecho, foxtrott, golf, ...Normale Mitarbeiterable, baker, ...Externe MitarbeiterRechnername(n)Beschreibungwar, death, famine, pollutionIhre wichtigsten Server. Nur IT-Fachleute
dürfen sich an diesen Rechnern anmelden.pride, greed, envy, wrath, lust, slothWeniger wichtige Server. Alle Mitarbeiter der
IT-Abteilung dürfen sich auf diesen Rechnern
anmelden.one, two, three, four, ...Gewöhnliche Arbeitsrechner. Nur die
wirklichen Mitarbeiter dürfen
diese Rechner verwenden.trashcanEin sehr alter Rechner ohne kritische Daten. Sogar
externe Mitarbeiter dürfen diesen Rechner
verwenden.Wollten Sie diese Einschränkungen umsetzen, indem Sie
jeden Benutzer einzeln blockieren, müssten Sie auf jedem
System für jeden Benutzer eine Zeile in
passwd einfügen. Wenn Sie nur einen
Eintrag vergessen, haben Sie ein Problem. Es mag noch angehen,
dies während der ersten Installation zu erledigen, im
täglichen Betrieb werden Sie allerdings
mit Sicherheit einmal vergessen, die
entsprechenden Einträge anzulegen. Vergessen Sie nicht:
Murphy war Optimist.Die Verwendung von Netzgruppen hat in dieser Situation
mehrere Vorteile. Sie müssen nicht jeden Benutzer einzeln
verwalten; weisen Sie stattdessen den Benutzer einer Netzgruppe
zu und erlauben oder verbieten Sie allen Mitglieder dieser
Gruppe die Anmeldung an einem Server. Wenn Sie einen neuen
Rechner hinzufügen, müssen Sie
Zugangsbeschränkungen nur für die Netzgruppen
festlegen. Legen Sie einen neuen Benutzer an, müssen Sie
ihn nur einer oder mehrere Netzgruppen zuweisen. Diese
Veränderungen sind voneinander unabhängig; Anweisungen
der Form für diese Kombination aus Benutzer und
Rechner mache Folgendes ... sind nicht mehr nötig.
Wenn Sie die Einrichtung von NIS sorgfältig geplant haben,
müssen Sie nur noch eine zentrale Konfigurationsdatei
bearbeiten, um den Zugriff auf bestimmte Rechner zu erlauben
oder zu verbieten.Der erste Schritt ist die Initialisierung der NIS-Maps
der Netzgruppe. &man.ypinit.8; kann dies unter FreeBSD nicht
automatisch durchführen. Sind die Maps aber erst einmal
erzeugt, werden sie jedoch von NIS problemlos unterstützt.
Um eine leere Map zu erzeugen, geben Sie Folgendes ein:
-
-ellington&prompt.root; vi /var/yp/netgroup
-
+ ellington&prompt.root; vi /var/yp/netgroupDanach legen Sie die Einträge an. Für unser
Beispiel benötigen wir mindestens vier Netzgruppen:
IT-Beschäftige, IT-Lehrlinge, normale Beschäftigte
sowie Externe.
-
-IT_EMP (,alpha,test-domain) (,beta,test-domain)
+ IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
-INTERNS (,able,test-domain) (,baker,test-domain)
-
+INTERNS (,able,test-domain) (,baker,test-domain)Bei IT_EMP, IT_APP
usw. handelt es sich um Netzgruppennamen. In den Klammern
werden diesen Netzgruppen jeweils ein oder mehrere
Benutzerkonten hinzugefügt. Die drei Felder in der
Klammer haben folgende Bedeutung:Der Name des Rechners, auf dem die folgenden Werte
gültig sind. Legen Sie keinen Rechnernamen fest, ist
der Eintrag auf allen Rechnern gültig. Dadurch
gehen Sie vielen Problemen aus dem Weg.Der Name des Benutzerkontos, der zu dieser Netzgruppe
gehört.Die NIS-Domäne für das Benutzerkonto. Sie
können Benutzerkonten von anderen NIS-Domänen in
Ihre Netzgruppe importieren, wenn Sie mehrere
NIS-Domänen verwalten.Jedes Feld kann Wildcards enthalten. Die Einzelheiten
entnehmen Sie bitte &man.netgroup.5;.NetzgruppenNetzgruppennamen sollten nicht länger als 8 Zeichen
sein, vor allem dann, wenn Sie Rechner mit verschiedenen
Betriebssystemen in Ihrer NIS-Domäne haben. Es wird
zwischen Groß- und Kleinschreibung unterschieden.
Die Verwendung von Großbuchstaben für
Netzgruppennamen ermöglicht eine leichte Unterscheidung
zwischen Benutzern, Rechnern und Netzgruppen.Einige NIS-Clients (dies gilt nicht für FreeBSD)
können keine Netzgruppen mit einer großen Anzahl
von Einträgen verwalten. Einige ältere Versionen
- von &sunos; haben beispielsweise Probleme, wenn Netzgruppen mehr
- als fünfzehn Einträge
+ von &sunos; haben beispielsweise Probleme, wenn Netzgruppen
+ mehr als fünfzehn Einträge
enthalten. Sie können dieses Problem umgehen, indem Sie
mehrere Subnetzgruppen mit weniger als fünfzehn Benutzern
anlegen und diese Subnetzgruppen wiederum in einer Netzgruppe
zusammenfassen:
-
-BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
+ BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
-BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3
-
+BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Sie können diesen Vorgang wiederholen, wenn Sie mehr
als 255 Benutzer in einer einzigen Netzgruppe benötigen.
Das Aktivieren und Verteilen Ihre neuen NIS-Map ist
einfach:
-
-ellington&prompt.root; cd /var/yp
-ellington&prompt.root; make
-
+ ellington&prompt.root; cd /var/yp
+ellington&prompt.root; makeDadurch werden die NIS-Maps netgroup,
netgroup.byhost und
netgroup.byuser erzeugt. Prüfen Sie
die Verfügbarkeit Ihrer neuen NIS-Maps mit &man.ypcat.1;.
-
-ellington&prompt.user; ypcat -k netgroup
+ ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
-ellington&prompt.user; ypcat -k netgroup.byuser
-
+ellington&prompt.user; ypcat -k netgroup.byuserDie Ausgabe des ersten Befehls gibt den Inhalt von
/var/yp/netgroup wieder. Der zweite Befehl
erzeugt nur dann eine Ausgabe, wenn Sie rechnerspezifische
Netzgruppen erzeugt haben. Der dritte Befehl gibt die
Netzgruppen nach Benutzern sortiert aus.Die Einrichtung der Clients ist einfach. Sie müssen
lediglich auf dem Server war
&man.vipw.8; aufrufen und die Zeile+:::::::::durch+@IT_EMP:::::::::ersetzen.Ab sofort werden nur noch die Daten der in der Netzgruppe
IT_EMP vorhandenen Benutzer in die
Passwortdatenbank von war importiert.
Nur diese Benutzer dürfen sich am Server anmelden.Unglücklicherweise gilt diese Einschränkung auch
für die ~-Funktion der Shell und für alle Routinen,
die auf Benutzernamen und numerische Benutzer-IDs zugreifen.
Oder anders formuliert,
cd ~user ist nicht
möglich, ls -l zeigt die numerische
Benutzer-ID statt dem Benutzernamen und
find . -user joe -print erzeugt die
Fehlermeldung No such user. Um dieses
Problem zu beheben, müssen Sie alle Benutzereinträge
importieren, ohne ihnen jedoch zu erlauben, sich an
Ihrem Server anzumelden.Dazu fügen Sie eine weitere Zeile in
/etc/master.passwd ein. Diese Zeile sollte
ähnlich der folgenden aussehen:+:::::::::/sbin/nologin, was in etwa
Importiere alle Einträge, aber ersetze die Shell in
den importierten Einträgen durch
/sbin/nologin entspricht. Sie
können jedes Feld dieses Eintrages ersetzen, indem Sie
einen Standardwert in /etc/master.passwd
eintragen.Stellen Sie sicher, dass die Zeile
+:::::::::/sbin/nologin
- nach der Zeile
+ nach der Zeile
+@IT_EMP::::::::: eingetragen ist. Sonst
haben alle via NIS importierten Benutzerkonten
/sbin/nologin als Loginshell.Danach müssen Sie nur mehr eine einzige NIS-Map
ändern, wenn ein neuer Mitarbeiter berücksichtigt
werden muss. Für weniger wichtige Server gehen Sie analog
vor, indem Sie den alten Eintrag +:::::::::
in den lokalen Versionen von
/etc/master.passwd durch folgende
Einträge ersetzen:
-
-+@IT_EMP:::::::::
+ +@IT_EMP:::::::::
+@IT_APP:::::::::
-+:::::::::/sbin/nologin
-
++:::::::::/sbin/nologinDie entsprechenden Zeilen für normale Arbeitsplätze
lauten:
-
-+@IT_EMP:::::::::
+ +@IT_EMP:::::::::
+@USERS:::::::::
-+:::::::::/sbin/nologin
-
++:::::::::/sbin/nologinAb jetzt wäre alles wunderbar, allerdings ändert
sich kurz darauf die Firmenpolitik: Die IT-Abteilung beginnt
damit, externe Mitarbeiter zu beschäftigen. Externe
dürfen sich an normalen Arbeitsplätzen sowie an den
weniger wichtigen Servern anmelden. Die IT-Lehrlinge
dürfen sich nun auch an den Hauptservern anmelden. Sie
legen also die neue Netzgruppe IT_INTERN an, weisen Ihr die
neuen IT-Externen als Benutzer zu und beginnen damit,
die Konfiguration auf jedem einzelnen Rechner zu ändern ...
Halt. Sie haben gerade die alte Regel Fehler in der
zentralisierten Planung führen zu globaler
Verwirrung. bestätigt.Da NIS in der Lage ist, Netzgruppen aus anderen Netzgruppen
zu bilden, lassen sich solche Situationen leicht vermeiden.
Eine Möglichkeit ist die Erzeugung rollenbasierter
Netzgruppen. Sie könnten eine Netzgruppe
BIGSRV erzeugen, um den Zugang zu
den wichtigsten Servern zu beschränken, eine weitere
Gruppe SMALLSRV für die weniger
wichtigen Server und eine dritte Netzgruppe
USERBOX für die normalen
Arbeitsplatzrechner. Jede dieser Netzgruppen enthält die
Netzgruppen, die sich auf diesen Rechnern anmelden dürfen.
Die Einträge der Netzgruppen in der NIS-Map sollten
ähnlich den folgenden aussehen:
-
-BIGSRV IT_EMP IT_APP
+ BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
-USERBOX IT_EMP ITINTERN USERS
-
+USERBOX IT_EMP ITINTERN USERSDiese Methode funktioniert besonders gut, wenn Sie
Rechner in Gruppen mit identischen Beschränkungen einteilen
können. Unglücklicherweise ist dies die Ausnahme und
nicht die Regel. Meistens werden Sie die Möglichkeit zur
- rechnerspezischen Zugangsbeschränkung benötigen.
+ rechnerspezischen Zugangsbeschränkung benötigen.
+
Rechnerspezifische Netzgruppen sind die zweite
Möglichkeit, um mit den oben beschriebenen Änderungen
umzugehen. In diesem Szenario enthält
/etc/master.passwd auf jedem Rechner zwei
mit + beginnende Zeilen. Die erste Zeile
legt die Netzgruppe mit den Benutzern fest, die sich auf diesem
Rechner anmelden dürfen. Die zweite Zeile weist allen
anderen Benutzern /sbin/nologin als Shell
zu. Verwenden Sie auch hier (analog zu den Netzgruppen)
Großbuchstaben für die Rechnernamen. Die Zeilen
sollten also ähnlich den folgenden aussehen:
-
-+@BOXNAME:::::::::
-+:::::::::/sbin/nologin
-
+ +@BOXNAME:::::::::
++:::::::::/sbin/nologinWenn Sie dies für alle Rechner erledigt haben, werden
Sie die lokalen Versionen von
/etc/master.passwd nie mehr verändern
müssen. Alle weiteren Änderungen geschehen über
die NIS-Maps. Nachfolgend ein Beispiel für eine
mögliche Netzgruppen-Map, die durch einige Besonderheiten
erweitert wurde:# Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]
Wenn Sie eine Datenbank verwenden, um Ihre Benutzerkonten zu
verwalten, sollten Sie den ersten Teil der NIS-Map mit Ihren
Datenbanktools erstellen können. Auf diese Weise haben
neue Benutzer automatisch Zugriff auf die Rechner.Eine letzte Warnung: Es ist nicht immer ratsam,
rechnerbasierte Netzgruppen zu verwenden. Wenn Sie Dutzende
oder gar Hunderte identische Rechner einrichten müssen,
sollten Sie rollenbasierte Netzgruppen verwenden, um die
Grösse der NIS-Maps in Grenzen zu halten.Weitere wichtige PunkteNachdem Sie Ihre NIS-Umgebung eingerichtet haben,
müssen Sie einige Dinge anders als bisher erledigen.Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen,
tun Sie dies ausschließlich am
NIS-Masterserver. Außerdem
müssen Sie anschließend die
NIS-Maps neu erzeugen. Wenn Sie diesen Punkt vergessen,
kann sich der neue Benutzer nur am
NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer
- jsmith anlegen, gehen Sie wie folgt vor:
+ jsmith anlegen, gehen Sie folgerndermassen
+ vor:
&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainStatt pw useradd jsmith könnten
Sie auch adduser jsmith verwenden.Tragen Sie die Administratorkonten nicht
in die NIS-Maps ein. Administratorkonten und
Passwörter dürfen nicht auf Rechnern verbreitet
werden, auf denen sich Benutzer anmelden können, die
auf diese Konten keine Zugriff haben sollen.Sichern Sie die NIS-Master- und Slaveserver
und minimieren Sie die Ausfallzeiten. Wenn
diese Rechner gehackt oder einfach nur ausgeschaltet werden,
haben viele Leute keinen Netzwerkzugriff mehr.Dies ist die größte Schwäche
jeder zentralen Verwaltung. Wenn Sie Ihre NIS-Server nicht
schützen, werden Sie viele verärgerte Anwender
haben.Kompatibilität zu NIS v1NISKompatibilität zu NIS v1ypserv unterstützt NIS v1
unter FreeBSD nur eingeschränkt. Die NIS-Implementierung
von FreeBSD verwendet nur NIS v2, andere Implementierungen
unterstützen aus Gründen der
Abwärtskompatibilität mit älteren Systemen auch
NIS v1. Die mit diesen Systemen gelieferten
ypbind-Daemonen versuchen, sich an
einen NIS-v1-Server zu binden (Dies selbst dann, wenn sie ihn
- nie benötigen. Außerdem versuchen Sie auch dann, einen
- v1-Server zu erreichen, wenn Sie zuvor eine Antwort von einem
- v2-Server erhalten.). Während normale Clientaufrufe
+ nie benötigen. Außerdem versuchen Sie auch dann,
+ einen v1-Server zu erreichen, wenn Sie zuvor eine Antwort von
+ einem v2-Server erhalten.). Während normale Clientaufrufe
unter FreeBSD unterstützt werden, sind Anforderungen zum
Transfer von v1-Maps nicht möglich. Daher kann FreeBSD
nicht als Client oder Server verwendet werden, wenn ein
NIS-Server vorhanden ist, der nur NIS v1 unterstützt.
Glücklicherweise sollte es heute keine Server mehr geben,
die nur NIS v1 unterstützen.NIS-Server, die auch als NIS-Clients arbeitenWenn Sie ypserv in einer Multi-Serverdomäne verwenden,
in der NIS-Server gleichzeitig als NIS-Clients arbeiten, ist es
eine gute Idee, diese Server zu zwingen, sich an sich selbst zu
binden. Damit wird verhindert, dass Bindeanforderungen gesendet
werden und sich die Server gegenseitig binden. Sonst
könnten seltsame Fehler auftreten, wenn ein Server
ausfällt, auf den andere Server angewiesen sind. Letztlich
werden alle Clients einen Timeout melden, und versuchen, sich an
andere Server zu binden. Die dadurch entstehende
- Verzögerung kann beträchtlich sein. Außerdem kann
- der Fehler erneut auftreten, da sich die Server wiederum
+ Verzögerung kann beträchtlich sein. Außerdem
+ kann der Fehler erneut auftreten, da sich die Server wiederum
aneinander binden könnten.Sie können einen Rechner durch die Verwendung von
ypbind sowie der Option
zwingen, sich an einen bestimmten Server zu binden. Um diesen
Vorgang zu automatisieren, können Sie folgende Zeilen in
/etc/rc.conf einfügen:
-
-nis_client_enable="YES" # run client stuff as well
-nis_client_flags="-S NIS domain,server"
-
+ nis_client_enable="YES" # run client stuff as well
+nis_client_flags="-S NIS domain,server"Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen
benötigen.
- Passwort Formate
+ PasswortformateNIS
- Passwort Formate
+ Passwortformate
- Unterschiedliche Passwort-Formate sind die Hauptprobleme,
- die beim Einrichten eines NIS-Servers auftreten können.
+ Unterschiedliche Passwortformate sind das Hauptproblem,
+ das beim Einrichten eines NIS-Servers auftreten kann.
Wenn der NIS-Server mit DES verschlüsselte Passwörter
verwendet, werden nur Clients unterstützt, die ebenfalls
DES benutzen. Wenn sich auf Ihrem Netzwerk beispielsweise
&solaris; NIS-Clients befinden, müssen die Passwörter
mit DES verschlüsselt werden.Welches Format die Server und Clients verwenden,
steht in /etc/login.conf. Wenn ein
System Passwörter mit DES verschlüsselt,
enthält die default-Klasse einen
Eintrag wie den folgenden:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[weitere Einträge]
- Mögliche Werte für passwd_format
- sind unter anderem blf und
- md5 (mit Blowfish und MD5 verschlüsselte
- Passwörter).
+ Mögliche Werte für
+ passwd_format sind unter anderem
+ blf und md5 (mit
+ Blowfish und MD5 verschlüsselte Passwörter).Wenn die Datei /etc/login.conf
geändert wird, muss die Login-Capability Datenbank
- neu erstellt werden. Setzen Sie dazu als root
- den folgenden Befehl ab:
+ neu erstellt werden. Geben Sie dazu als
+ root den folgenden Befehl ein:&prompt.root; cap_mkdb /etc/login.confDas Format der schon in
/etc/master.passwd befindlichen
Passwörter wird erst aktualisiert, wenn ein Benutzer
sein Passwort ändert, nachdem
die Datenbank neu erstellt wurde.Damit die Passwörter auch im gewählten
Format abgespeichert werden, muss mit
crypt_default in der Datei
/etc/auth.conf die richtige
Priorität der Formate eingestellt werden. Das
- gewählte Format sollte als erstes in der Liste
+ gewählte Format sollte als Erstes in der Liste
stehen. Sollen die Passwörter mit DES verschlüsselt
werden, verwenden Sie den folgenden Eintrag:crypt_default = des blf md5Wenn Sie alle &os; NIS-Server und NIS-Clients entsprechend
den obigen Schritten eingestellt haben, wird im ganzen
- Netzwerk dasselbe Passwort-Format verwendet. Falls Sie
+ Netzwerk dasselbe Passwortformat verwendet. Falls Sie
Probleme mit der Authentifizierung eines NIS-Clients
- haben, kontrollieren Sie die verwendeten Passwort-Formate.
+ haben, kontrollieren Sie die verwendeten Passwortformate.
In einer heterogenen Umgebung werden Sie DES benutzen
müssen, da dies der meist unterstützte Standard
ist.
-
-
GregSutterGeschrieben von
- DHCP - Dynamic Host Configuration Protocol
+ DHCP – Dynamic Host Configuration ProtocolWas ist DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)Über DHCP, das Dynamic Host Configuration Protocol,
kann sich ein System mit einem Netzwerk verbinden und die
für die Kommunikation mit diesem Netzwerk nötigen
Informationen beziehen. FreeBSD verwendet die
DHCP-Implementation von ISC (Internet Software Consortium),
daher beziehen sich alle implementationsspezifischen
Informationen in diesem Abschnitt auf die ISC-Distribution.
ÜbersichtDieser Abschnitt beschreibt sowohl die Client- als auch die
Serverseite des DHCP-Systems von ISC. Das Clientprogramm
dhclient ist in FreeBSD integriert, das
Serverprogramm kann über den Port
- net/isc-dhcp3 installiert
- werden. Mehr Informationen finden Sie in den Hilfeseiten
+ net/isc-dhcp3-server
+ installiert werden. Weiter Informationen finden Sie in
&man.dhclient.8;, &man.dhcp-options.5; sowie
&man.dhclient.conf.5;.Wie funktioniert DHCP?UDPDer DHCP-Client dhclient beginnt von
einem Clientrechner aus über den UDP-Port 68
Konfigurationsinformationen anzufordern. Der Server antwortet
auf dem UDP-Port 67, indem er dem Client eine IP-Adresse
zuweist und ihm weitere wichtige Informationen über das
Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt. Diese
Informationen werden als
DHCP-Lease bezeichnet und
sind nur für eine bestimmte Zeit, die vom Administrator des
DHCP-Servers vorgegeben wird, gültig. Dadurch fallen
verwaiste IP-Adressen, deren Clients nicht mehr mit dem Netzwerk
verbunden sind, automatisch an den Server zurück.DHCP-Clients können sehr viele Informationen von einem
DHCP-Server erhalten. Eine ausführliche Liste finden Sie
in &man.dhcp-options.5;.Integration in FreeBSDDer ISC-DHCP-Client ist seit FreeBSD 3.2
vollständig in FreeBSD integriert. Sowohl während
der Installation als auch im Basissystem steht der
DHCP-Client zur Verfügung. In Netzen mit
DHCP-Servern wird dadurch die Konfiguration von
Systemen erheblich vereinfacht.sysinstallDHCP wird von sysinstall
unterstützt. Richten Sie eine Netzkarte unter
sysinstall ein, wird Ihnen zuerst
folgende Frage gestellt: Wollen Sie diese Karte über
DHCP einrichten? Wenn Sie diese Frage bejahen, wird
dhclient aufgerufen, und die Netzkarte wird
automatisch eingerichtet.Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei
Dinge erledigen:DHCPAnforderungenStellen Sie sicher, dass bpf in
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
pseudo-device bpf in Ihre
Kernelkonfigurationsdatei ein und erzeugen einen neuen
- Kernel. Mehr über die Kernelkonfiguration
- erfahren Sie in .
+ Kernel. Weitere Informationen zur Kernelkonfiguration
+ finden Sie in des Handbuchs.
+
Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Fügen Sie folgende Zeile in
/etc/rc.conf ein:ifconfig_fxp0="DHCP"Ersetzen Sie fxp0 durch den
Eintrag für die Netzkarte, die Sie dynamisch
einrichten wollen. Lesen Sie dazu auch
.Wenn Sie dhclient an einem anderen
Ort installiert haben, oder zusätzliche Flags an
dhclient übergeben wollen,
fügen Sie auch folgende (entsprechend angepasste)
Zeilen ein:
-
-dhcp_program="/sbin/dhclient"
-dhcp_flags=""
-
+ dhcp_program="/sbin/dhclient"
+dhcp_flags=""DHCPServerDer DHCP-Server dhcpd ist als Teil des
- net/isc-dhcp3-Ports
+ Ports net/isc-dhcp3-server
verfügbar. Dieser Port enthält die komplette
- ISC-DHCP-Distribution, inklusive Client, Server, Relay-Agent und
- der Dokumentation.
+ ISC-DHCP-Distribution, inklusive der Dokumentation.
DateienDHCPKonfigurationsdateien/etc/dhclient.confdhclient benötigt die
Konfigurationsdatei /etc/dhclient.conf.
- Diese Datei enthält normalerweise nur Kommentare,
- da die Vorgabewerte meistens ausreichend sind.
- Die Hilfeseite &man.dhclient.conf.5; beschreibt
- diese Konfigurationsdatei.
+ Diese Datei enthält normalerweise nur Kommentare, da
+ die Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu
+ auch &man.dhclient.conf.5;.
/sbin/dhclientdhclient ist statisch gelinkt und
- befindet sich in /sbin. Mehr
- Informationen finden Sie in der Hilfeseite
- &man.dhclient.8;.
+ befindet sich in /sbin. Weitere
+ Informationen finden Sie in &man.dhclient.8;.
/sbin/dhclient-scriptBei dhclient-script handelt es sich
um das FreeBSD-spezifische Konfigurationsskript des
DHCP-Clients. Es wird in &man.dhclient-script.8;
beschrieben und kann meist unverändert übernommen
werden./var/db/dhclient.leasesDer DHCP-Client verfügt über eine Datenbank,
die alle derzeit gültigen Leases enthält und als
Logdatei erzeugt wird. Weitere Informationen finden Sie in
&man.dhclient.8;.Weitere InformationenDas DHCP-Protokoll wird vollständig im
RFC 2131
beschrieben. Eine weitere, lehrreiche Informationsquelle
existiert unter
dhcp.org.Einen DHCP-Server installieren und einrichtenÜbersichtDieser Abschnitt beschreibt die Einrichtung eines
FreeBSD-Systems als DHCP-Server. Dazu wird die
DHCP-Implementation von ISC (Internet Software Consortium)
verwendet.Der DHCP-Server ist nicht im Basissystem von FreeBSD
- enthalten, daher müssen Sie als erstes den Port
- net/isc-dhcp3
+ enthalten, daher müssen Sie als Erstes den Port
+ net/isc-dhcp3-server
installieren. Lesen Sie , wenn Sie
weitere Informationen zur Portssammlung benötigen.
Den DHCP-Server installierenDHCPinstallierenStellen Sie sicher, dass bpf in
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
pseudo-device bpf in Ihre
Kernelkonfigurationsdatei ein und erzeugen einen neuen
Kernel. Die Kernelkonfiguration wird in
beschrieben.Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Danach müssen Sie die vom Port
- net/isc-dhcp3 erzeugte
- Vorlage für dhcpd.conf anpassen.
- Die bei der Installation erzeugte Datei
+ net/isc-dhcp3-server
+ erzeugte Vorlage für dhcpd.conf
+ anpassen. Die bei der Installation erzeugte Datei
/usr/local/etc/dhcpd.conf.sample
sollten Sie nach
/usr/local/etc/dhcpd.conf kopieren,
bevor Sie Veränderungen vornehmen.Den DHCP-Server einrichtenDHCPdhcpd.confdhcpd.conf besteht aus Festlegungen
zu Subnetzen und Rechnern und lässt sich am besten an
einem Beispiel erklären:
-
-option domain-name "example.com";
+ option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
-}
+}Diese Option beschreibt die Domäne, die den
Clients als Standardsuchdomäne zugewiesen wird.
- Weitere Informationen finden Sie in der Hilfeseite
- &man.resolv.conf.5;.
+ Weitere Informationen finden Sie in man.resolv.conf.5;.
+
Diese Option legt eine, durch Kommata getrennte
Liste von DNS-Servern fest, die von den Clients
verwendet werden sollen.Die den Clients zugewiesene Netzmaske.Ein Client kann eine Lease einer bestimmten Dauer
anfordern. Geschieht dies nicht, weist der Server eine
Lease mit einer vorgegebenen Ablaufdauer (in Sekunden)
zu.Die maximale Zeitdauer, für die der Server
Konfigurationsinformationen vergibt. Sollte ein Client
eine längere Zeitspanne anfordern, wird dennoch
nur der Wert max-lease-time in
Sekunden zugewiesen.Diese Option legt fest, ob der DHCP-Server eine
DNS-Aktualisierung versuchen soll, wenn
Konfigurationsdateien vergeben oder zurückgezogen
werden. In der ISC-Implementation
muss diese Option gesetzt sein.
Dadurch werden die IP-Adressen festgelegt, die den
Clients zugewiesen werden können. IP-Adressen
zwischen diesen Grenzen sowie die einschließenden
Adressen werden den Clients zugewiesen.
- Legt den Standard-Gateway fest, der den Clients
+ Legt das Standard-Gateway fest, das den Clients
zugewiesen wird.Die (Hardware-)MAC-Adresse eines Rechners (durch die
der DHCP-Server den Client erkennt, der eine Anforderung
an ihn stellt).Einem Rechner soll immer die gleiche IP-Adresse
zugewiesen werden. Beachten Sie, dass hier auch ein
Rechnername gültig ist, da der DHCP-Server den
Rechnernamen auflöst, bevor er die
Konfigurationsinformationen zuweist.Nachdem Sie dhcpd.conf fertig
konfiguriert haben, können Sie den DHCP-Server starten:
-
-&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start
-
+ &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startSollten Sie die Konfiguration Ihres Servers einmal
verändern müssen, reicht es nicht aus, ein
SIGHUP-Signal an
dhcpd zu senden, weil damit die
Konfiguration nicht erneut geladen wird
(im Gegensatz zu den meisten Daemonen). Sie müssen
den Prozess vielmehr mit dem Signal
SIGTERM stoppen, um ihn
anschließend neu zu starten.DateienServerKonfigurationsdateien/usr/local/sbin/dhcpddhcpd ist statisch
gelinkt und befindet sich in
/usr/local/sbin. Lesen Sie auch die
- mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn Sie
- weitere Informationen zu dhcpd
- benötigen.
+ mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn
+ Sie weitere Informationen zu
+ dhcpd benötigen.
/usr/local/etc/dhcpd.confdhcpd benötigt die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf, damit
der Server den Clients seine Dienste anbieten kann.
Diese Datei muss alle Informationen enthalten, die an
die Clients weitergegeben werden soll. Außerdem
sind hier Informationen zur Konfiguration des Servers
enthalten. Die mit dem Port installierte Hilfeseite
- &man.dhcpd.conf.5; enthält weitere Informationen.
+ &man.dhcpd.conf.5; enthält weitere Informationen.
+
/var/db/dhcpd.leasesDer DHCP-Server hat eine Datenbank, die alle
vergebenen Leases enthält. Diese wird als Logdatei
erzeugt. Weitere Informationen finden Sie in der vom
Port installierten Hilfeseite &man.dhcpd.leases.5;./usr/local/sbin/dhcrelaydhcrelay wird in
komplexen Umgebungen verwendet, in denen ein DHCP-Server
eine Anfrage eines Clients an einen DHCP-Server in einem
- separaten Netzwerk weiterleitet. Die vom Port
- installierte Hilfeseite &man.dhcrelay.8; enthält
- weitere Informationen.
+ separaten Netzwerk weiterleitet. Wenn Sie diese
+ Funktion benötigen, müssen Sie den Port
+ net/isc-dhcp3-server
+ installieren. Weitere Informationen zu diesem Thema
+ finden Sie in &man.dhcrelay.8;.
- DNS (Domain Name Service)
+
+
+
+ Chern
+ Lee
+ Beigetragen von
+
+
+
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte
- das Original in englischer Sprache.
-
+ DNS – Domain Name Service
-
- NTP (Network Time Protocol)
+
+ Überblick
+
+ BIND
+
+ DNS ist das für die Umwandlung von Rechnernamen in
+ IP-Adressen zuständige Protokoll. FreeBSD verwendet dazu
+ BIND (Berkeley Internet Name Domain), die am häufigsten
+ verwendete Implementierung von DNS. Eine Anfrage nach
+ www.FreeBSD.org gibt die IP-Adresse
+ des &os;-Webservers, eine Anfrage nach
+ ftp.FreeBSD.org die IP-Adresse des
+ entsprechenden FTP-Servers zurück. Der umgekehrte Weg
+ ist ebenso möglich, eine IP-Adresse kann also auch in ihren
+ Rechnernamen aufgelöst werden. Um eine DNS-Abfrage
+ durchzuführen, muss am jeweiligen Rechner kein Nameserver
+ installiert sein.
+
+ DNS
+
+ Im Internet wird DNS durch ein komplexes System von
+ autoritativen Root-Nameservern sowie anderen kleineren
+ Nameservern verwaltet, die individuelle Rechnerinformationen
+ speichern und untereinander abgleichen.
+
+ Dieses Dokument beschreibt die unter FreeBSD verwendete
+ stabile Version BIND 8.x. BIND 9.x kann über den
+ Port net/bind9
+ installiert werden.
+
+ Das DNS-Protokoll wird in den RFCs 1034 und 1035
+ beschrieben.
+
+ Derzeit wird BIND vom
+ Internet Software Consortium verwaltet.
+
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte
- das Original in englischer Sprache.
-
+
+ Begriffsbestimmungen
-
- NATD (Network Address Translation Daemon)
+ Um dieses Dokument besser verstehen zu können,
+ müssen einige DNS-spezifische Begriffe genauer definiert
+ werden.
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte
- das Original in englischer Sprache.
-
+
+
+
+
+ Begriff
-
- inetd Super-Server
+ Bedeutung
+
+
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte
- das Original in englischer Sprache.
-
+
+
+ Forward-DNS
-
- Parallel Line IP (PLIP)
+ Rechnernamen in IP-Adressen umwandeln
+
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte
- das Original in englischer Sprache.
-
+
+ Origin (Ursprung)
-
- IPv6
+ Die in einer bestimmten Zonendatei beschriebene
+ Domäne.
+
+
+
+ named, BIND,
+ Nameserver
+
+ Gebräuchliche Namen für das unter FreeBSD
+ verwendete BIND-Nameserverpaket
+
+
+ Resolver
+
+
+ Resolver
+
+ Ein Systemprozess, durch den ein Rechner
+ Zoneninformationen von einem Nameserver anfordert.
+
+
+
+ Reverse-DNS
+
+
+ Reverse-DNS
+
+ Das Gegenteil von Forward-DNS; die Umwandlung von
+ IP-Adressen in Rechnernamen
+
+
+ root zone
+
+
+ Root-Zone
+
+ Der Beginn der Internet-Zonenhierarchie. Alle
+ Zonen befinden sich innerhalb der Root-Zone. Dies ist
+ analog zu einem Dateisystem, in dem sich alle Dateien
+ und Verzeichnisse innerhalb des Wurzelverzeichnisses
+ befinden.
+
+
+
+ Zone
+
+ Eine individuelle Domäne, Unterdomäne,
+ oder ein Teil von DNS, der von der gleichen
+ Autorität verwaltet wird.
+
+
+
+
+
+
+ Zonen
+ Beispiele
+
+
+ Es folgen nun einige Zonenbeispiele:
+
+
+
+ . ist die Root-Zone.
+
+
+
+ org. ist eine Zone innerhalb der
+ Root-Zone.
+
+
+
+ example.org. ist eine Zone innerhalb
+ der org-Zone.
+
+
+
+ foo.example.org. ist eine
+ Unterdomäne, eine Zone innerhalb der Zone
+ example.org.
+
+
+
+ 1.2.3.in-addr.arpa. ist die Zone mit
+ allen IP-Adressen des 3.2.1.*-IP-Adressraums.
+
+
+
+ Wie man an diesen Beispielen erkennen kann, befindet sich
+ der spezifischere Teil eines Rechnernamens auf der linken Seite
+ der Adresse. example.org. beschreibt einen
+ Rechner also genauer als org., während
+ org. genauer als die Root-Zone ist. Jeder Teil
+ des Rechnernamens hat Ähnlichkeiten mit einem Dateisystem,
+ in dem etwa /dev dem Wurzelverzeichnis
+ untergeordnet ist.
+
+
+
+ Gründe für die Verwendung eines
+ Nameservers
+
+ Es gibt zwei Arten von Nameservern: Autoritative Nameserver
+ sowie zwischenspeichernde (cachende) Nameserver.
+
+ Ein autoritativer Nameserver ist notwendig, wenn
+
+
+
+ sie anderen verbindliche DNS-Ausk¨nfte erteilen
+ wollen.
+
+
+
+ eine Domain, beispielsweise example.org,
+ registriert wird, und den zu dieser Domain gehörenden
+ Rechnern IP-Adressen zugewiesen werden müssen.
+
+
+
+ ein IP-Adressblock reverse-DNS-Einträge
+ benötigt, um IP-Adressen in Rechnernamen auflösen
+ zu können.
+
+
+
+ ein Backup-Nameserver (auch Slaveserver genannt) auf
+ Anfragen antworten muss, weil der Hauptserver nicht
+ erreichbar ist.
+
+
+
+ Ein cachender Nameserver ist notwendig, weil
+
+
+
+ ein lokaler DNS-Server Daten zwischenspeichern und daher
+ schneller auf Anfragen reagieren kann als ein entfernter
+ Server.
+
+
+
+ die Datenmenge reduziert werden muss
+ (DNS-Verkehr macht etwa 5 % des gesamten Datenverkehrs im
+ Internet aus).
+
+
+
+ Wird nach www.FreeBSD.org gesucht, leitet
+ der Resolver diese Anfrage an den Nameserver des
+ ISPs weiter und nimmt danach das Ergebnis der
+ Abfrage entgegen. Existiert ein lokaler, zwischenspeichernder
+ DNS-Server, muss dieser die Anfrage nur einmal nach außen
+ weitergeben. Für alle weiteren Anfragen ist dies nicht
+ mehr nötig, da diese Information nun lokal gespeichert
+ ist.
+
+
+
+ Wie funktioniert DNS?
+
+ Unter FreeBSD wird der BIND-Daemon als
+ named bezeichnet.
+
+
+
+
+
+ Datei
+
+ Beschreibung
+
+
+
+
+
+ named
+
+ Der BIND-Daemon.
+
+
+
+ ndc
+
+ Das Steuerprogramm für
+ named.
+
+
+
+ /etc/namedb
+
+ Das Verzeichnis, in dem sich die Zoneninformationen
+ für BIND befinden.
+
+
+
+ /etc/namedb/named.conf
+
+ Die Konfigurationsdatei für
+ named.
+
+
+
+
+
+ Zonendateien befinden sich normalerweise im Verzeichnis
+ /etc/namedb und enthalten die vom
+ Nameserver angebotenen DNS-Zoneninformationen.
+
+
+
+ BIND starten
+
+
+ BIND
+ Start
+
+
+ Da BIND automatisch installiert wird, ist die Konfiguration
+ relativ einfach.
+
+ Um den named-Daemon beim
+ Systemstart automatisch zu starten, fügen Sie folgende
+ Zeile in /etc/rc.conf ein:
+
+ named_enable="YES"
+
+ Um den Daemon (nach der Konfiguration) manuell zu starten,
+ geben Sie Folgendes ein:
+
+ &prompt.root; ndc start
+
+
+
+ Konfigurationsdateien
+
+
+ BIND
+ Konfigurationsdateien
+
+
+
+ make-localhost verwenden
+
+ Um die lokale reverse-DNS-Zonendatei
+ /etc/namedb/localhost.rev korrekt zu
+ erzeugen, machen Sie Folgendes:
+
+ &prompt.root; cd /etc/namedb
+&prompt.root; sh make-localhost
+
+
+
+ /etc/namedb/named.conf
+
+ // $FreeBSD$
+//
+// Refer to the named(8) manual page for details. If you are ever going
+// to setup a primary server, make sure you've understood the hairy
+// details of how DNS is working. Even with simple mistakes, you can
+// break connectivity for affected parties, or cause huge amount of
+// useless Internet traffic.
+
+options {
+ directory "/etc/namedb";
+
+// In addition to the "forwarders" clause, you can force your name
+// server to never initiate queries of its own, but always ask its
+// forwarders only, by enabling the following line:
+//
+// forward only;
+
+// If you've got a DNS server around at your upstream provider, enter
+// its IP address here, and enable the line below. This will make you
+// benefit from its cache, thus reduce overall DNS traffic in the
+Internet.
+/*
+ forwarders {
+ 127.0.0.1;
+ };
+*/
+
+ Um vom Cache Ihres Internetproviders zu profitieren,
+ können hier forwarders aktiviert
+ werden. Normalerweise sucht ein Nameserver das Internet
+ rekursiv ab, bis er die gesuchte Antwort findet. Durch
+ diese Option wird stets der Nameserver Ihres
+ Internetproviders zuerst abgefragt, um von dessen
+ Cache zu profitieren. Wenn es sich um einen schnellen,
+ viel benutzten Nameserver handelt, kann dies zu einer
+ Geschwindigkeitssteigerung führen.
+
+
+ 127.0.0.1 funktioniert
+ hier nicht. Ändern Sie diese
+ Adresse in einen Nameserver Ihres Einwahlproviders.
+
+
+ /*
+* If there is a firewall between you and name servers you want
+* to talk to, you might need to uncomment the query-source
+* directive below. Previous versions of BIND always asked
+* questions using port 53, but BIND 8.1 uses an unprivileged
+* port by default.
+*/
+// query-source address * port 53;
+
+/*
+* If running in a sandbox, you may have to specify a different
+* location for the dumpfile.
+*/
+// dump-file "s/named_dump.db";
+};
+
+// Note: the following will be supported in a future release.
+/*
+host { any; } {
+ topology {
+ 127.0.0.0/8;
+ };
+};
+*/
+
+// Setting up secondaries is way easier and the rough picture for this
+// is explained below.
+//
+// If you enable a local name server, don't forget to enter 127.0.0.1
+// into your /etc/resolv.conf so this server will be queried first.
+// Also, make sure to enable it in /etc/rc.conf.
+
+zone "." {
+ type hint;
+ file "named.root";
+};
+
+zone "0.0.127.IN-ADDR.ARPA" {
+ type master;
+ file "localhost.rev";
+};
+
+zone
+"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
+ type master;
+ file "localhost.rev";
+};
+
+// NB: Do not use the IP addresses below, they are faked, and only
+// serve demonstration/documentation purposes!
+//
+// Example secondary config entries. It can be convenient to become
+// a secondary at least for the zone where your own domain is in. Ask
+// your network administrator for the IP address of the responsible
+// primary.
+//
+// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
+// (This is the first bytes of the respective IP address, in reverse
+// order, with ".IN-ADDR.ARPA" appended.)
+//
+// Before starting to setup a primary zone, better make sure you fully
+// understand how DNS and BIND works, however. There are sometimes
+// unobvious pitfalls. Setting up a secondary is comparably simpler.
+//
+// NB: Don't blindly enable the examples below. :-) Use actual names
+// and addresses instead.
+//
+// NOTE!!! FreeBSD runs bind in a sandbox (see named_flags in rc.conf).
+// The directory containing the secondary zones must be write accessible
+// to bind. The following sequence is suggested:
+//
+// mkdir /etc/namedb/s
+// chown bind:bind /etc/namedb/s
+// chmod 750 /etc/namedb/s
+
+ Wenn Sie BIND innerhalb einer Sandbox betreiben wollen,
+ lesen Sie bitte den
+ .
+
+ /*
+zone "example.com" {
+ type slave;
+ file "s/example.com.bak";
+ masters {
+ 192.168.1.1;
+ };
+};
+
+zone "0.168.192.in-addr.arpa" {
+ type slave;
+ file "s/0.168.192.in-addr.arpa.bak";
+ masters {
+ 192.168.1.1;
+ };
+};
+*/
+
+ Hierbei handelt es sich um Slave-Einträge für
+ eine Reverse- und Forward-DNS-Zone, die in der Datei
+ named.conf definiert sind.
+
+ Für jede neue Zone muss ein zusätzlicher Eintrag
+ in named.conf erstellt werden.
+
+ Ein einfacher Eintrag für eine Zone
+ example.org könnte
+ beispielsweise so aussehen:
+
+ zone "example.org" {
+ type master;
+ file "example.org";
+};
+
+ Die Option legt fest, dass es sich
+ um eine Master-Zone handelt, deren Zoneninformationen sich in
+ der Datei /etc/namedb/example.org
+ befinden. Diese Datei wird durch die Option
+ festgelegt.
+
+ zone "example.org" {
+ type slave;
+ file "example.org";
+};
+
+ Hier handelt es sich um einen Slaveserver, der seine
+ Informationen vom Masterserver der betreffenden Zone bezieht
+ und diese in der angegebenen Datei speichert. Wenn der
+ Masterserver nicht erreichbar ist, verfügt der
+ Slaveserver über die transferierten Zoneninformationen
+ und kann diese an andere Rechner weitergeben.
+
+
+
+ Zonendateien
+
+ Die in der Datei
+ /etc/namedb/example.org definierte
+ Zonendatei für example.org könnte
+ etwa so aussehen:
+
+ $TTL 3600
+
+example.org. IN SOA ns1.example.org. admin.example.org. (
+ 5 ; Serial
+ 10800 ; Refresh
+ 3600 ; Retry
+ 604800 ; Expire
+ 86400 ) ; Minimum TTL
+
+; DNS Servers
+@ IN NS ns1.example.org.
+@ IN NS ns2.example.org.
+
+; Machine Names
+localhost IN A 127.0.0.1
+ns1 IN A 3.2.1.2
+ns2 IN A 3.2.1.3
+mail IN A 3.2.1.10
+@ IN A 3.2.1.30
+
+; Aliases
+www IN CNAME @
+
+; MX Record
+@ IN MX 10 mail.example.org.
+
+ Beachten Sie, dass jeder mit einem .
+ endende Rechnername ein exakter Rechnername ist, während
+ sich alles ohne einen abschließenden .
+ auf den Ursprung bezieht. www steht daher
+ für www + Ursprung. In unserer
+ fiktiven Zonendatei ist example.org. der
+ Ursprung, daher steht www für
+ www.example.org.
+
+ Eine Zonendatei hat folgenden Aufbau:
+
+ recordname IN recordtype value
+
+
+ DNS
+ Einträge
+
+
+ Die am häufigsten verwendeten DNS-Einträge sind:
+
+
+
+ SOA
+
+
+ Start der Zonenautorität
+
+
+
+
+ NS
+
+
+ Ein autoritativer Nameserver
+
+
+
+
+ A
+
+ Eine Rechneradresse
+
+
+
+ CNAME
+
+
+ Der kanonische Name eines Alias
+
+
+
+
+ MX
+
+ Mail Exchanger
+
+
+
+ PTR
+
+
+ Ein (bei Reverse-DNS verwendeter) Domain Name
+ Pointer
+
+
+
+
+ example.org. IN SOA ns1.example.org. admin.example.org. (
+ 5 ; Serial
+ 10800 ; Refresh after 3 hours
+ 3600 ; Retry after 1 hour
+ 604800 ; Expire after 1 week
+ 86400 ) ; Minimum TTL of 1 day
+
+
+
+ example.org.
+
+ Der Name der Domäne und damit der
+ Ursprung dieser Zonendatei.
+
+
+
+
+ ns1.example.org.
+
+ Der primäre/autoritative Nameserver
+ dieser Zone.
+
+
+
+
+ admin.example.org.
+
+ Die für diese Zone verantwortliche
+ Person. Das Zeichen @ wird dabei
+ ersetzt (admin@example.org wird also zu
+ admin.example.org).
+
+
+
+
+ 5
+
+ Die Seriennummer der Datei. Sie muss
+ stets inkrementiert werden, wenn die Zonendatei
+ geändert wird. Viele Administratoren bevorzugen
+ ein JJJJMMTTRR-Format, um die
+ Seriennummer festzulegen. 2001041002 steht also für
+ den 10.04.2001, die beiden letzten Stellen für die
+ zweite Modifikation der Zonendatei an diesem Tag. Die
+ Seriennummer ist von großer Bedeutung, da
+ Slaveserver daran eine aktualisierte Zonendatei erkennen
+ können.
+
+
+
+
+ @ IN NS ns1.example.org.
+
+ Ein NS-Eintrag. Jeder Nameserver, der
+ für eine Zone verantwortlich ist, muss über einen
+ solchen Eintrag verfügen. Das Zeichen
+ @ steht in unserem Beispiel für
+ example.org.,
+ @ verweist also auf den Ursprung.
+
+ localhost IN A 127.0.0.1
+ns1 IN A 3.2.1.2
+ns2 IN A 3.2.1.3
+mail IN A 3.2.1.10
+@ IN A 3.2.1.30
+
+ Der Eintrag A bezieht sich auf
+ Rechnernamen. ns1.example.org würde
+ also zu 3.2.1.2 aufgelöst
+ werden. Da das (Ursprungs-)Symbol @
+ verwendet wird, wird example.org zu
+ 3.2.1.30 aufgelöst.
+
+ www IN CNAME @
+
+ Der Eintrag für den kanonischen Namen wird dazu
+ verwendet, Aliase für einen Rechner zu vergeben. Im
+ Beispiel ist www ein Alias für den
+ Ursprungsrechner (example.org oder
+ 3.2.1.30). Durch die Option
+ CNAME können Aliasnamen vergeben
+ werden. Ein Rechnername kann aber auch abwechselnd
+ verschiedenen Rechnern zugewiesen werden.
+
+
+ MX-Eintrag
+
+
+ @ IN MX 10 mail.example.org.
+
+ Die Option MX legt fest, welcher
+ Mailserver für eintreffende Mails der Zone
+ verantwortlich ist.
+ mail.example.org ist der
+ Rechnername des Mailservers, der eine Priorität von 10
+ hat.
+
+ Es können auch mehrere Mailserver mit verschiedener
+ Priorität vorhanden sein. Ein Mailserver, der eine Mail
+ an example.org verschicken
+ will, verwendet zuerst den MX mit der höchsten
+ Priorität, danach den mit der nächsthöheren,
+ bis die E-Mail zugestellt werden kann.
+
+ Für (bei Reverse-DNS verwendete)
+ in-addr.arpa-Zonendateien wird das gleiche
+ Format verwendet. Der einzige Unterschied besteht in der
+ Verwendung der Option PTR an Stelle der
+ Optionen A und CNAME.
+
+ $TTL 3600
+
+1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
+ 5 ; Serial
+ 10800 ; Refresh
+ 3600 ; Retry
+ 604800 ; Expire
+ 3600 ) ; Minimum
+
+@ IN NS ns1.example.org.
+@ IN NS ns2.example.org.
+
+2 IN PTR ns1.example.org.
+3 IN PTR ns2.example.org.
+10 IN PTR mail.example.org.
+30 IN PTR example.org.
+
+ Durch diese Datei werden den Rechnernamen der fiktiven
+ Domäne IP-Adressen zugewiesen.
+
+
+
+
+ Zwischenspeichernde (cachende) Nameserver
+
+
+ BIND
+ Zwischenspeichernde Nameserver
+
+
+ Ein cachender Nameserver ist für keine Zonen
+ verantwortlich. Er stellt lediglich eigene Anfragen und
+ speichert deren Ergebnisse ab. Um einen solchen Nameserver
+ einzurichten, gehen Sie wie gewohnt vor, allerdings definieren
+ Sie keine Zonen.
+
+
+
+ named in einer Sandbox
+ ausführen
+
+
+ BIND
+ Sandbox
+
+
+
+ chroot
+
+
+ Es ist möglich, &man.named.8; als nicht privilegierter
+ Benutzer in einer mit &man.chroot.8; definierten Sandbox
+ auszuführen. Dadurch hat der
+ named-Daemon keinen Zugriff auf
+ Verzeichnisse und Dateien außerhalb der Sandbox. Sollte
+ named kompromittiert werden,
+ lässt sich dadurch der mögliche Schaden begrenzen.
+ FreeBSD erzeugt dazu automatisch einen Benutzer und eine
+ Gruppe namens bind.
+
+
+ Manchmal wird auch empfohlen, statt mit
+ chroot das Wurzelverzeichnis für
+ named zu ändern,
+ named innerhalb eines &man.jail.8;s
+ auszuführen. Diese Situation wird hier jedoch nicht
+ beschrieben.
+
+
+ Da named keinen Zugriff auf
+ Dateien außerhalb der Sandbox (wie Systembibliotheken oder
+ Protokolldateien) hat, sind einige Vorbereitungen notwendig,
+ damit named korrekt funktioniert.
+ Im Folgenden wird angenommen, dass die Sandbox unter
+ /etc/namedb eingerichtet wird. Außerdem
+ befinden sich die Dateien in diesem Verzeichnis noch im
+ Originalzustand. Alle Schritte müssen als
+ root durchgeführt werden.
+
+
+
+ Erzeugen Sie alle Verzeichnisse, die
+ named benötigt:
+
+ &prompt.root; cd /etc/namedb
+&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
+&prompt.root; chown bind:bind slave var/*
+
+
+
+ Da named nur schreibend
+ auf diese Verzeichnisse zugreifen muss, werden auch
+ keine weiteren Rechte zugeteilt.
+
+
+
+
+
+ Erzeugen Sie die Basiszonen sowie die nötigen
+ Konfigurationsdateien:
+
+ &prompt.root; cp /etc/localtime etc
+&prompt.root; mv named.conf etc && ln -sf etc/named.conf
+&prompt.root; mv named.root master
+
+&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master&prompt.root; cat > master/named.localhost
+$ORIGIN localhost.
+$TTL 6h
+@ IN SOA localhost. postmaster.localhost. (
+ 1 ; serial
+ 3600 ; refresh
+ 1800 ; retry
+ 604800 ; expiration
+ 3600 ) ; minimum
+ IN NS localhost.
+ IN A 127.0.0.1
+^D
+
+
+
+ Dadurch ist es named
+ möglich, die korrekte Systemzeit an &man.syslogd.8;
+ weiterzugeben.
+
+
+
+
+
+ Wenn Sie FreeBSD in einer Version vor 4.9-RELEASE
+ verwenden, erzeugen Sie eine statisch gelinkte Kopie von
+ named-xfer und kopieren diese
+ in Ihre Sandbox:
+
+ &prompt.root; cd /usr/src/lib/libisc
+&prompt.root; make cleandir && make cleandir && make depend && make all
+&prompt.root; cd /usr/src/lib/libbind
+&prompt.root; make cleandir && make cleandir && make depend && make all
+&prompt.root; cd /usr/src/libexec/named-xfer
+&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
+&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer
+
+ Nachdem Sie ihre statische gelinkte Version von
+ named-xfer installiert haben,
+ müssen Sie etwas aufräumen, damit keine
+ veralteten Kopien von Bibliotheken oder Programmen in Ihrem
+ Quellbaum verbleiben:
+
+ &prompt.root; cd /usr/src/lib/libisc
+&prompt.root; make cleandir
+&prompt.root; cd /usr/src/lib/libbind
+&prompt.root; make cleandir
+&prompt.root; cd /usr/src/libexec/named-xfer
+&prompt.root; make cleandir
+
+
+
+ Dieser Schritt kann manchmal fehlschlagen. Wenn
+ dies passiert, machen Sie Folgendes:
+
+ &prompt.root; cd /usr/src && make cleandir && make cleandir
+
+ Danach löschen Sie
+ /usr/obj inklusive aller
+ Unterverzeichnisse:
+
+ &prompt.root; rm -fr /usr/obj && mkdir /usr/obj
+
+ Dadurch entfernen Sie den ganzen
+ Müll aus Ihrem Quellbaum und die
+ fehlgeschlagenen Schritte sollten nun ebenfalls
+ funktionieren.
+
+
+
+ Wenn Sie &os; in der Version 4.9-RELEASE oder neuer
+ verwenden, wird die in /usr/libexec
+ vorhandene Kopie von named-xfer
+ automatisch statisch gelinkt und Sie können die Datei
+ einfach mit &man.cp.1; in Ihre Sandbox kopieren.
+
+
+
+ Erzeugen Sie ein dev/null, auf
+ das named lesend und schreibend
+ zugreifen kann:
+
+ &prompt.root; cd /etc/namedb/dev && mknod null c 2 2
+&prompt.root; chmod 666 null
+
+
+
+ Linken Sie /etc/namedb/var/run/ndc
+ symbolisch nach /var/run/ndc:
+
+ &prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndc
+
+
+ Dadurch können Sie auf die Option
+ verzichten, wenn Sie &man.ndc.8;
+ aufrufen. Der Inhalt von /var/run
+ wird beim Systemstart automatisch gelöscht. Diese
+ Anweisung kann unter Nutzung der Option
+ in die
+ crontab von root
+ eingebaut werden. Lesen Sie dazu auch die Hilfeseite
+ &man.crontab.5;.
+
+
+
+
+ Weisen Sie &man.syslogd.8; an, einen zusätzlichen
+ log-Socket zu erzeugen, auf den
+ named Schreibzugriff hat. Dazu
+ hängen Sie in der Datei
+ /etc/rc.conf an den Eintrag
+ syslogd_flags die Option
+ -l /etc/namedb/dev/log an.
+
+
+
+ Stellen Sie sicher, dass
+ named gestartet wird und sein
+ Wurzelverzeichnis mittels chroot in die
+ Sandbox setzt, indem Sie folgende Einträge in
+ /etc/rc.conf einfügen:
+
+ named_enable="YES"
+named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"
+
+
+ Beachten Sie, dass die Konfigurationsdatei
+ /etc/named.conf durch einen
+ absoluten Pfad (aber relativ zur
+ Sandbox) festgelegt wird. Bei der im obigen Beispiel
+ angesprochenen Datei handelt es sich also um
+ /etc/namedb/etc/named.conf.
+
+
+
+
+ Danach bearbeiten Sie
+ /etc/namedb/etc/named.conf, damit
+ named weiß, welche Zonen geladen
+ werden müssen und wo sich diese befinden. Es folgt nun
+ ein kommentiertes Beispiel (alle nicht dokumentierten
+ Einträge gelten auch für einen DNS-Server, der nicht
+ in einer Sandbox läuft):
+
+ options {
+ directory "/";
+ named-xfer "/bin/named-xfer";
+ version ""; // Don't reveal BIND version
+ query-source address * port 53;
+};
+// ndc control socket
+controls {
+ unix "/var/run/ndc" perm 0600 owner 0 group 0;
+};
+// Zones follow:
+zone "localhost" IN {
+ type master;
+ file "master/named.localhost";
+ allow-transfer { localhost; };
+ notify no;
+};
+zone "0.0.127.in-addr.arpa" IN {
+ type master;
+ file "master/localhost.rev";
+ allow-transfer { localhost; };
+ notify no;
+};
+zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {
+ type master;
+ file "master/localhost-v6.rev";
+ allow-transfer { localhost; };
+ notify no;
+};
+zone "." IN {
+ type hint;
+ file "master/named.root";
+};
+zone "private.example.net" in {
+ type master;
+ file "master/private.example.net.db";
+ allow-transfer { 192.168.10.0/24; };
+};
+zone "10.168.192.in-addr.arpa" in {
+ type slave;
+ masters { 192.168.10.2; };
+ file "slave/192.168.10.db";
+};
+
+
+
+ directory wird als
+ / festgelegt, da sich alle von
+ named benötigten Dateien in
+ diesem Verzeichnis befinden (analog zur
+ /etc/namedb eines
+ normalen Benutzers.
+
+
+
+ Legt den vollständigen Pfad zur Binärdatei
+ named-xfer aus der Sicht von
+ named fest. Das ist nötig,
+ weil named per Voreinstellung
+ im Verzeichnis /usr/libexec nach
+ named-xfer sucht.
+
+
+
+ Legt die Datei (relativ zum
+ directory-Statement) fest, in der
+ named die Zonendatei für
+ diese Zone findet.
+
+
+
+ Legt die Datei (relativ zum
+ directory-Statement) fest, in die
+ named eine Kopie der Zonendatei
+ dieser Zone schreibt, nachdem diese erfolgreich vom
+ Masterserver angefordert wurde. Aus diesem Grund musste in
+ den vorherigen Schritten auch bind
+ der Eigentümer des Verzeichnisses
+ slave sein.
+
+
+
+ Nachdem Sie diese Schritte erledigt haben, müssen Sie
+ entweder den Rechner oder &man.syslogd.8; neu starten. Danach
+ starten Sie &man.named.8; unter Verwendung der neuen, unter
+ syslogd_flags und
+ named_flags festgelegten Optionen. Sie
+ verwenden nun eine Sandboxversion von
+ named!
+
+
+
+ Sicherheit
+
+ Obwohl BIND die am meisten verwendete (und kontrollierte)
+ Implementierung von DNS darstellt, werden dennoch manchmal neue
+ Sicherheitsprobleme entdeckt.
+
+ Es ist daher eine gute Idee, die Mailinglisten von
+ CERT sowie
+
+ freebsd-security-notifications zu abonnieren, um sich
+ über Sicherheitsprobleme im Zusammenhang mit dem Internet
+ und FreeBSD zu informieren.
+
+
+ Tritt ein Problem auf, kann es nie schaden, die
+ Quellen zu aktualisieren und named
+ neu zu kompilieren.
+
+
+
+
+ Weitere Informationsquellen
+
+
+
+ Hilfeseiten zu BIND/named:
+ &man.ndc.8;, &man.named.8;, &man.named.conf.5;
+
+
+
+ Offizielle ISC-Seite
+ zu BIND
+
+
+
+
+ BIND FAQs
+
+
+
+ O'Reilly
+ DNS and BIND 4th Edition
+
+
+
+ RFC1034
+ - Domain Names - Concepts and Facilities
+
+
+
+
+ RFC1035
+ - Domain Names - Implementation and Specification
+
+
+
+
+
+
+
+
+
+
+ Tom
+ Hukins
+ Beigetragen von
+
+
+
+
+ NTP – Network Time Protocol
+
+ NTP
+
+
+ Überblick
+
+ Da die interne Uhrzeit eines Computers nie ganz exakt ist,
+ wurde mit NTP
+ (Network Time Protocol) eine
+ Möglichkeit geschaffen, die exakte Uhrzeit zu ermitteln
+ und festzulegen.
+
+ Viele Internetdienste sind von einer exakten Uhrzeit
+ abhängig. Ein Webserver könnte beispielsweise die
+ Anforderung erhalten, eine Datei zu versenden, wenn sich diese
+ in einer bestimmten Zeitspanne geändert hat. Dienste wie
+ &man.cron.8; führen Befehle zu einem bestimmten Zeitpunkt
+ aus. Ist die Uhrzeit nicht korrekt, kann dies zu Problemen
+ führen.
+
+
+ NTP
+ ntpd
+
+
+ &os; verwendet den &man.ntpd.8;-NTP-Server, um die genaue
+ Uhrzeit von anderen NTP-Servern abzufragen, die eigene
+ Systemzeit zu setzen, oder um diese anderen Rechnern
+ anzubieten.
+
+
+
+ Einen passenden NTP-Server auswählen
+
+
+ NTP
+ Serverwahl
+
+
+ Um die Uhrzeit zu synchronisieren, müssen Sie sich mit
+ einem NTP-Server verbinden. Ihr Netzwerkadministrator oder Ihr
+ Internetprovider haben vielleicht schon einen NTP-Server
+ eingerichtet. Lesen Sie deren Dokumentation, um dies zu
+ überprüfen. Es gibt eine
+
+ Liste mit frei zugänglichen NTP-Servern, aus der
+ Sie sich einen in Ihrer Nähe gelegenen Server
+ auswählen können. Beachten Sie aber auf jeden Fall
+ die Nutzungsbedingungen des entsprechenden Servers, und fragen
+ Sie um Erlaubnis, wenn dies nötig ist.
+
+ Die Auswahl von mehreren NTP-Servern kann sinnvoll sein,
+ wenn ein Server ausfällt oder falsche Zeiten liefert.
+ &man.ntpd.8; verwendet die Antworten anderer Server, um
+ zuverlässige Server zu bestimmen, die dann bevorzugt
+ abgefragt werden.
+
+
+
+ NTP unter &os; einrichten
+
+
+ NTP
+ Konfiguration
+
+
+
+ NTP aktivieren
+
+ ntpdate
+
+ Wenn Sie Ihre Uhrzeit nur beim Systemstart
+ synchronisieren wollen, können Sie &man.ntpdate.8;
+ verwenden. Für Desktoprechner, die regelmäßig
+ neu gestartet werden und keine ständige Synchronisation
+ benötigen, ist dies akzeptabel. In allen anderen
+ Fällen sollten Sie jedoch &man.ntpd.8; verwenden.
+
+ Die Ausführung von &man.ntpdate.8; während des
+ Systemstarts ist aber auch für Rechner, die &man.ntpd.8;
+ verwenden, sinnvoll. &man.ntpd.8; passt die Systemzeit nur
+ bei größeren Abweichungen an, während
+ &man.ntpdate.8; die Zeit immer synchronisiert, egal wie
+ groß die Differenz zwischen Systemzeit und korrekter
+ Zeit ist.
+
+ Um &man.ntpdate.8; beim Systemstart zu aktivieren,
+ fügen Sie den Eintrag
+ ntpdate_enable="YES" in
+ /etc/rc.conf ein. Außerdem müssen
+ Sie alle Server, mit denen Sie sich synchronisieren wollen,
+ sowie alle an &man.ntpdate.8; zu übergebenden Optionen
+ in den ntpdate_flags angeben.
+
+
+
+
+ NTP
+ ntp.conf
+
+
+ NTP einrichten
+
+ Die Konfiguration von NTP erfolgt über die Datei
+ /etc/ntp.conf, und wird in der
+ Hilfeseite &man.ntp.conf.5; beschrieben. Dazu ein
+ einfaches Beispiel:
+
+ server ntplocal.example.com prefer
+server timeserver.example.org
+server ntp2a.example.net
+
+driftfile /var/db/ntp.drift
+
+ Die Option server legt die zu
+ verwendenden Server fest, wobei jeder Server in einer eigenen
+ Zeile steht. Wenn ein Server mit der Option
+ prefer versehen ist, wie dies hier bei
+ ntplocal.example.com der Fall
+ ist, wird dieser Server bevorzugt verwendet. Eine Antwort von
+ einem bevorzugten Server wird nur dann verworfen, wenn sie
+ signifikant von denen anderer Server abweicht, ansonsten wird
+ sie ohne Abfrage weiterer Server verwendet. Die Option
+ prefer wird gewöhnlich nur für
+ sehr zuverlässige und genaue Server verwendet, die
+ über spezielle Hardware zur Zeitüberwachung
+ verfügen.
+
+ Die Option driftfile legt fest, in
+ welcher Datei die Abweichungen der Systemuhr protokolliert
+ werden. &man.ntpd.8; verwendet diese Datei, um die Systemzeit
+ automatisch anzupassen, selbst wenn kurzzeitig kein NTP-Server
+ zur Synchronisation verfügbar ist.
+
+ Weiterhin legt die Option driftfile fest,
+ wo Informationen über frühere Antworten des von
+ Ihnen verwendeten NTP-Servers gespeichert werden sollen.
+ Diese Datei enthält NTP-interne Informationen, sie sollte
+ daher von anderen Prozessen nicht verändert werden.
+
+
+
+ Den Zugang zu Ihrem NTP-Server beschränken
+
+ In der Voreinstellung ist Ihr NTP-Server für alle
+ Rechner im Internet erreichbar. Über die Option
+ restrict in der Datei
+ /etc/ntp.conf können Sie den
+ Zugang zu Ihrem Server beschränken.
+
+ Wenn Sie alle Rechner vom Zugriff auf Ihren NTP-Server
+ ausschließen wollen, fügen Sie folgende Zeile in
+ /etc/ntp.conf ein:
+
+ restrict default ignore
+
+ Wenn Sie nur Rechnern Ihres eigenen Netzwerks die
+ Synchronisation mit Ihrem NTP-Server erlauben, gleichzeitig
+ aber verhindern wollen, dass diese den NTP-Server
+ konfigurieren oder als Server für andere Rechner dienen
+ können, fügen Sie folgende Zeile ein:
+
+ restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
+
+ Bei 192.168.1.0 handelt es
+ sich um einen Rechner Ihres Netzwerks.
+ 255.255.255.0 ist die
+ Netzmaske Ihres Netzwerks.
+
+ /etc/ntp.conf kann verschiedene
+ restrict-Optionen enthalten.
+ Weiteres erfahren Sie im Abschnitt
+ Access Control Support der
+ Hilfeseite &man.ntp.conf.5;.
+
+
+
+
+ Den NTP-Server starten
+
+ Damit der NTP-Server beim Systemstart automatisch gestartet
+ wird, fügen Sie den Eintrag
+ xntpd_enable="YES" in
+ /etc/rc.conf ein. Wenn Sie weitere
+ Argumente an &man.ntpd.8; übergeben wollen, passen Sie
+ die Option xntpd_flags in der Datei
+ /etc/rc.conf entsprechend an.
+
+ Um den NTP-Server ohne einen Systemneustart zu starten,
+ rufen Sie ntpd mit den unter
+ xntpd_flags in
+ /etc/rc.conf festgelegten Parametern auf.
+ Hierzu ein Beispiel:
+
+ &prompt.root; ntpd -p /var/run/ntpd.pid
+
+ Unter &os; 5.X wurden verschiedene Optionen in
+ /etc/rc.conf umbenannt. Daher
+ müssen Sie alle Vorkommen von xntpd
+ durch ntpd ersetzen.
+
+
+
+ ntpd mit einer Einwahlverbindung verwenden
+
+ &man.ntpd.8; benötigt keine ständige
+ Internetverbindung. Wenn Sie sich ins Internet einwählen,
+ ist es sinnvoll, zu verhindern, dass NTP-Verkehr eine Verbindung
+ aufbauen oder aufrechterhalten kann. Wenn Sie user-PPP
+ verwenden, können Sie dies in den
+ filter-Direktiven von
+ /etc/ppp/ppp.conf festlegen. Sehen Sie
+ sich dazu das folgende Beispiel ein:
+
+ set filter dial 0 deny udp src eq 123
+# Prevent NTP traffic from initiating dial out
+set filter dial 1 permit 0 0
+set filter alive 0 deny udp src eq 123
+# Prevent incoming NTP traffic from keeping the connection open
+set filter alive 1 deny udp dst eq 123
+# Prevent outgoing NTP traffic from keeping the connection open
+set filter alive 2 permit 0/0 0/0
+
+ Weitere Informationen finden Sie im Abschnitt
+ PACKET FILTERING von &man.ppp.8; sowie in den
+ Beispielen unter /usr/share/examples/ppp/.
+
+ Einige Internetprovider blockieren Ports mit niedrigen
+ Nummern. In solchen Fällen funktioniert NTP leider
+ nicht, da Antworten eines NTP-Servers Ihren Rechner nicht
+ erreichen werden.
+
+
+
+ Weitere Informationen
+
+ Weiterführende Dokumentation (im HTML-Format)
+ zum NTP-Server finden Sie unter
+ /usr/share/doc/ntp/.
+
+
+
+
+ NATD – Network Address Translation Daemon
+
+ Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
+ bitte
+ das Original in englischer Sprache.
+
+
+
+ inetd Super-Server
+
+ Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
+ bitte
+ das Original in englischer Sprache.
+
+
+
+ PLIP – Parallel Line IP
+
+ PLIP
+
+ Parallel Line IP
+
+ PLIP ermöglicht TCP/IP-Verbindungen zwischen zwei
+ Rechnern, die über ihre parallelen Schnittstellen
+ verbunden sind. Eine solche Verbindung ist nützlich,
+ wenn zwei Rechner nicht mit Netzkarten ausgestattet sind,
+ oder wenn eine Installation auf einem Laptop erfolgen soll.
+ Dieser Abschnitt behandelt folgende Themen:
+
+
+
+ Die Herstellung eines parallelen (Laplink-) Kabels
+
+
+
+ Die Verbindung von zwei Computern über PLIP
+
+
+
+
+ Ein paralleles Kabel herstellen
+
+ Ein paralleles (Laplink-)Kabel können Sie in fast jedem
+ Computergeschäft kaufen. Falls dies nicht möglich
+ sein sollte, oder Sie einfach wissen wollen, wie ein solches
+ Kabel aufgebaut ist, sollten Sie sich die folgende Tabelle
+ ansehen. Sie beschreibt die Herstellung eines parallelen
+ Netzwerkkabels aus einem gewöhnlichen parallelen
+ Druckerkabel.
+
+
+
+
+
+ PLIP einrichten
+
+ Als Erstes benötigen Sie ein Laplink-Kabel. Danach
+ müssen Sie sicherstellen, dass beide Computerkernel den
+ &man.lpt.4;-Treiber unterstützen:
+
+ &prompt.root; grep lp /var/run/dmesg.boot
+lpt0: <Printer> on ppbus0
+lpt0: Interrupt-driven port
+
+ Der Parallelport muss Interrupt-gesteuert sein, daher
+ sollte Ihre Kernelkonfigurationsdatei unter &os; 4.X eine
+ Zeile ähnlich der folgenden enthalten:
+
+ device ppc0 at isa? irq 7
+
+ Unter &os; 5.X sollte die Datei
+ /boot/device.hints hingegen folgende Zeilen
+ enthalten:
+
+ hint.ppc.0.at="isa"
+hint.ppc.0.irq="7"
+
+ Danach überprüfen Sie, ob die
+ Kernelkonfigurationsdatei die Zeile
+ device plip enthält, oder ob das
+ Kernelmodul plip.ko geladen wurde. In
+ beiden Fällen sollte die parallele Schnittstelle
+ von &man.ifconfig.8; angezeigt werden. Unter &os; 4.X
+ sieht die Ausgabe in etwa so aus:
+
+ &prompt.root; ifconfig lp0
+lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
+
+ Unter &os; 5.X erhalten Sie folgende Ausgabe:
+
+ &prompt.root; ifconfig plip0
+plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
+
+ Die Gerätenamen der parallelen Schnittstelle
+ sind für &os; 4.X
+ (lpX)
+ und &os; 5.X
+ (plipX)
+ unterschiedlich.
+
+ Verbinden Sie die parallelen Schnittstellen der beiden
+ Computer über das (Laplink-)Kabel.
+
+ Konfigurieren Sie die Netzwerkparameter auf beiden Rechnern
+ als root. Wenn Sie beispielweise den Rechner
+ host1, der unter &os; 4.X läuft, mit
+ dem unter &os; 5.X laufenden Rechner host2
+ verbinden wollen, gehen Sie folgendermaßen vor:
+
+ host1 <-----> host2
+IP Address 10.0.0.1 10.0.0.2
+
+ Richten Sie die parallele Schnittstelle von
+ host1 ein, indem Sie Folgendes eingeben:
+
+ &prompt.root; ifconfig lp0 10.0.0.1 10.0.0.2
+
+ Danach richten Sie die parallele Schnittstelle von
+ host2 ein:
+
+ &prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1
+
+ Sie sollten nun über eine funktionierende Verbindung
+ verfügen. Bei Problemen lesen Sie bitte die Hilfeseiten
+ &man.lp.4; sowie &man.lpt.4;.
+
+ Zusätzlich sollten beide Rechner in
+ /etc/hosts eingetragen werden:
+
+ 127.0.0.1 localhost.my.domain localhost
+10.0.0.1 host1.my.domain host1
+10.0.0.2 host2.my.domain
+
+ Um die Verbindung zu überprüfen, pingen Sie jeden
+ Rechner vom anderen Rechner aus an. Auf host1
+ gehen Sie dazu folgendermaßen vor:
+
+ &prompt.root; ifconfig lp0
+lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
+&prompt.root; netstat -r
+Routing tables
+
+Internet:
+Destination Gateway Flags Refs Use Netif Expire
+host2 host1 UH 0 0 lp0
+&prompt.root; ping -c 4 host2
+PING host2 (10.0.0.2): 56 data bytes
+64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
+64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
+64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
+64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
+
+--- host2 ping statistics ---
+4 packets transmitted, 4 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
+
+
+
+
+
+
+
+ Aaron
+ Kaplan
+ Beigetragen von
+
+
+
+
+
+ Tom
+ Rhodes
+ Überarbeitet und erweitert von
+
+
+
+
+ IPv6 – Internet Protocol Version 6
+
+ Bei IPv6 (auch als IPng oder
+ IP next generation
+ bekannt) handelt es sich um die neueste Version des bekannten
+ IP-Protokolls (das auch als IPv4 bezeichnet
+ wird). FreeBSD enthält, genauso wie die anderen frei
+ erhältlichen BSD-Systeme, die IPv6-Referenzimplementation
+ von KAME. FreeBSD erfüllt damit bereits
+ alle für die Nutzung von IPv6 nötigen Voraussetzungen.
+ Dieser Abschnitt konzentriert sich daher auf die Konfiguration
+ und den Betrieb von IPv6.
+
+ Anfang der 90er Jahre wurde man auf den stark steigenden
+ Verbrauch von IPv4-Adressen aufmerksam. Im Hinblick auf das
+ Wachstums des Internets gab es zwei Hauptsorgen:
+
+
+
+ Die drohende Knappheit von IPv4-Adressen. Dieses Problem
+ konnte durch die Einführung von privaten
+ Adressräumen (mit Adressen wie
+ 10.0.0.0/8 oder
+ 192.168.0.0/24) sowie der
+ Entwicklung von Network Address
+ Translation (NAT)
+ weitestgehend entschärft werden.
+
+
+
+ Die immer größer werdenden Einträge in
+ Router-Tabellen. Dieses Problem ist auch heute noch
+ aktuell.
+
+
+
+ IPv6 ist in der Lage, diese, aber auch viele andere Probleme
+ zu lösen:
+
+
+
+ IPv6 hat einen 128 Bit großen Adressraum. Es sind
+ also theoretisch
+ 340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
+ verfügbar. In anderen Worten: Für jeden
+ Quadratmeter der Erdoberfläche sind etwa
+ 6,67 * 10^27 IPv6-Adressen verfügbar.
+
+
+
+ Router speichern nur noch Netzwerk-Aggregationsadressen in
+ Ihren Routingtabellen. Dadurch reduziert sich die
+ durchschnittliche Größe einer Routingtabelle auf
+ 8192 Einträge.
+
+
+
+ Weitere nützliche Eigenschaften von IPv6 sind:
+
+
+
+ Die automatische Konfiguration von Adressen, die im
+ RFC2462
+ beschrieben wird.
+
+
+
+ Anycast-Adressen (eine-von-vielen)
+
+
+
+ Verpflichtende Multicast-Adressen
+
+
+
+ Die Unterstützung von IPsec (IP-Security)
+
+
+
+ Eine vereinfachte Headerstruktur
+
+
+
+ Mobile IP-Adressen
+
+
+
+ Die Umwandlung von IPv4- in IPv6-Adressen
+
+
+
+ Weitere Informationsquellen:
+
+
+
+ Beschreibung von IPv6 auf
+ playground.sun.com
+
+
+
+
+ KAME.net
+
+
+
+ 6bone.net
+
+
+
+
+ Hintergrundinformationen zu IPv6-Adressen
+
+ Es gibt verschiedene Arten von IPv6-Adressen: Unicast-,
+ Anycast- und Multicast-Adressen.
+
+ Unicast-Adressen sind die herkömlichen Adressen. Ein
+ Paket, das an eine Unicast-Adresse gesendet wird, kommt nur an
+ der Schnittstelle an, die dieser Adresse zugeordnet ist.
+
+ Anycast-Adressen unterscheiden sich in ihrer Syntax nicht
+ von Unicast-Adressen, sie wählen allerdings aus
+ mehreren Schnittstellen eine Schnittstelle aus.
+ Ein für eine Anycast-Adresse
+ bestimmtes Paket kommt an der nächstgelegenen
+ (entsprechend der Router-Metrik) Schnittstelle
+ an. Anycast-Adressen werden nur von Routern verwendet.
+
+ Multicast-Adressen bestimmen Gruppen, denen mehrere
+ Schnittstellen angehören. Ein
+ Paket, das an eine Multicast-Adresse geschickt wird, kommt an
+ allen Schnittstellen an, die zur Multicast-Gruppe gehören.
+
+ Die von IPv4 bekannte Broadcast-Adresse
+ (normalerweise
+ xxx.xxx.xxx.255) wird bei IPv6
+ durch Multicast-Adressen verwirklicht.
+
+
+ Reservierte IPv6-Adressen:
+
+
+
+
+ IPv6-Adresse
+ Präfixlänge
+ Beschreibung
+ Anmerkungen
+
+
+
+
+
+ ::
+ 128 Bit
+ nicht festgelegt
+ entspricht 0.0.0.0
+ bei IPv4
+
+
+
+ ::1
+ 128 Bit
+ Loopback-Adresse
+ entspricht 127.0.0.1
+ bei IPv4
+
+
+
+ ::00:xx:xx:xx:xx
+ 96 Bit
+ Eingebettete IPv4-Adresse
+ Die niedrigen 32 Bit entsprechen der IPv4-Adresse.
+ Wird auch als IPv4-kompatible IPv6-Adresse
+ bezeichnet.
+
+
+
+ ::ff:xx:xx:xx:xx
+ 96 Bit
+ Eine auf IPv6 abgebildete IPv4-Adresse
+ Die niedrigen 32 Bit entsprechen der IPv4-Adresse.
+ Notwendig für Rechner, die IPv6 nicht
+ unterstützen.
+
+
+
+ fe80:: - feb::
+ 10 Bit
+ link-local
+ Entspricht der Loopback-Adresse bei IPv4
+
+
+
+ fec0:: - fef::
+ 10 Bit
+ site-local
+
+
+
+
+ ff::
+ 8 Bit
+ Multicast
+
+
+
+
+ 001
+ (im Dualsystem)
+ 3 Bit
+ Globaler Unicast
+ Alle globalen Unicastadressen stammen aus diesem
+ Pool. Die ersten 3 Bit lauten 001.
+
+
+
+
+
+
+
+
+ IPv6-Adressen verstehen
+
+ Die kanonische Form von IPv6-Adressen lautet
+ x:x:x:x:x:x:x:x, jedes
+ x steht dabei für einen
+ 16-Bit-Hexadezimalwert. Ein Beispiel für eine IPv6-Adresse
+ wäre etwa
+ FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.
+
+ Eine IPv6-Adresse enthält oft Teilzeichenfolgen aus lauter
+ Nullen. Ein solcher Zeichenfolge kann zu ::
+ verkürzt werden. fe80::1
+ entspricht also der Adresse
+ fe80:0000:0000:0000:0000:0000:0000:0001.
+
+
+ Eine weitere Möglichkeit ist die Darstellung der
+ letzten 32 Bit in der bekannten (dezimalen) IPv4-Darstellung,
+ bei der Punkte (.) zur Trennung verwendet werden.
+ 2002::10.0.0.1 ist also nur eine
+ andere Schreibweise für die (hexadezimale) kanonische Form
+ 2002:0000:0000:0000:0000:0000:0a00:0001,
+ die wiederum der Adresse
+ 2002::a00:1 entspricht.
+
+ Sie sollten nun in der Lage sein, die folgende Ausgabe zu
+ verstehen:
+
+ &prompt.root; ifconfig
+rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
+ inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
+ inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
+ ether 00:00:21:03:08:e1
+ media: Ethernet autoselect (100baseTX )
+ status: active
+
+ Bei
+ fe80::200:21ff:fe03:8e1%rl0
+ handelt es sich um eine automatisch konfigurierte
+ link-local-Adresse. Sie
+ enthält die (kodierte) Ethernet-MAC-Adresse als
+ Folge der automatischen Konfiguration.
+
+ Weitere Informationen zum Aufbau von IPv6-Adressen finden
+ Sie im
+ RFC3513.
+
+
+
+ Eine IPv6-Verbindung herstellen
+
+ Es gibt derzeit vier Möglichkeiten, sich mit anderen
+ IPv6-Rechnern oder Netzwerken zu verbinden:
+
+
+
+ Die Teilnahme am experimentellen 6bone.
+
+
+
+ Die Teilnahme am IPv6-Netzwerk Ihres Providers.
+ Wenn Sie daran interessiert sind, wenden Sie sich an Ihren
+ Provider.
+
+
+
+ Die Verwendung eines 6-nach-4-Tunnels.
+
+
+
+ Die Verwendung des Ports
+ /usr/ports/net/freenet6 bei der Einwahl
+ ins Internet.
+
+
+
+ In diesem Abschnitt wird die Einrichtung einer Verbindung
+ zum 6bone beschrieben, da dies derzeit der beliebteste Weg ist.
+
+ Suchen Sie sich zuerst auf der Internetseite des
+ 6bone-Projekts
+ einen 6bone-Knoten in Ihrer Nähe. Schreiben Sie an
+ die verantwortliche Person und mit etwas Glück erhalten
+ Sie entsprechende Anweisungen, um Ihre Verbindung einzurichten.
+ Dazu gehört üblicherweise die Einrichtung
+ eines GRE-(gif)-Tunnels.
+
+ Typischerweise wird ein &man.gif.4;-Tunnels wie folgt
+ eingerichtet:
+
+ &prompt.root; ifconfig gif0 create
+&prompt.root; ifconfig gif0
+gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
+&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDRHIS_IPv4_ADDR
+&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR
+
+ Ersetzen Sie die in Großbuchstaben geschriebenen
+ Werte durch die Informationen, die Sie für Ihren
+ 6bone-Knoten erhalten haben.
+
+ Die gezeigten Befehle bauen den Tunnel auf.
+ Überprüfen Sie die korrekte Funktion, indem Sie
+ ff02::1%gif0 an&man.ping6.8;en.
+ Sie sollten zwei Antworten erhalten.
+
+
+ Bei ff02:1%gif0
+ handelt es sich um eine Multicast-Adresse.
+ %gif0 legt fest, dass die Multicast-Adresse
+ der Schnittstelle gif0 verwendet
+ werden soll. Da wir
+ eine Multicast-Adresse ange&man.ping6.8;t haben, sollte der
+ andere Endpunkt des Tunnels ebenfalls antworten.
+
+
+ Eine Route zu Ihrem 6bone-Knoten können Sie
+ einfach wie folgt einrichten:
+
+ &prompt.root; route add -inet6 default -interface gif0
+&prompt.root; ping6 -n MY_UPLINK
+
+ &prompt.root; traceroute6 www.jp.FreeBSD.org
+(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
+ 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
+ 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
+ 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
+ 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
+ 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
+ 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms
+
+ Diese Ausgabe kann auf Ihrem Rechner unterschiedlich sein.
+ Sie sollten aber jetzt die IPv6-Seite
+ www.kame.net erreichen
+ und die tanzende Schildkröte sehen können –
+ vorausgesetzt, Sie haben einen IPv6-fähigen Browser wie
+ www/mozilla installiert.
+
+
+
+ DNS in der IPv6-Welt
+
+ Mit IPv6 werden zwei neue DNS-Einträge
+ eingeführt:
+
+
+
+ AAAA-Einträge,
+
+
+
+ A6-Einträge
+
+
+
+ Empfohlen wird die Verwendung von AAAA-Einträgen.
+ Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
+ indem Sie den Eintrag
+
+ MYHOSTNAME AAAA MYIPv6ADDR
+
+ in Ihre primäre DNS-Zonendatei einfügen. Falls
+ Sie nicht für Ihre DNS-Zone
+ verantwortlich sind, bitten Sie den dafür
+ Zuständigen, diese Änderung durchzuführen.
+ Die aktuellen Versionen von bind
+ (Version 8.3 oder 9) unterstützen AAAA-Einträge.
+
+
+
+
+ ATM – Asynchronous Transfer ModeDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/network-atm.html">
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
index cd5294ee24..7d03e351d2 100644
--- a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
@@ -1,2685 +1,2685 @@
ChrisShumwayUmgeschrieben von UwePierauÜbersetzt von Grundlagen des UNIX BetriebssystemsÜbersichtGrundlagenDas folgende Kapitel umfasst die grundlegenden Kommandos
und Funktionsweisen des Betriebssystems FreeBSD. Viel von dem folgenden
Material gilt auch für jedes andere &unix; System.
Falls Sie mit dem Material schon vertraut sind, können Sie dieses
Kapitel überlesen. Wenn FreeBSD neu für Sie ist, dann sollten
Sie dieses Kapitel auf jeden Fall aufmerksam lesen.Dieser Abschnitt behandelt die folgenden Themen:virtuelle Konsolen,Zugriffsrechte unter &unix;,Zugriffskontrolllisten für Dateisysteme,die Verzeichnisstruktur von &os;,Organisation von Dateisystemen unter &os;,Ein- und Abhängen von Dateisystemen,Prozesse, Dämonen und Signale,Shells und die Login-Umgebung,Texteditoren,Geräte und Gerätedateien,Binärformate unter &os; undwie Sie in den Manualpages nach weiteren Informationen
suchen können.Virtuelle Konsolen und Terminalsvirtuelle KonsoleTerminalsSie können FreeBSD mit einem Terminal benutzen, der nur Text
darstellen kann. Wenn Sie FreeBSD auf diese Weise benutzen, stehen
Ihnen alle Möglichkeiten eines &unix; Betriebssystems zur
Verfügung. Dieser Abschnitt beschreibt was Terminals und
Konsolen sind und wie sie unter FreeBSD eingesetzt werden.Die KonsoleKonsoleWenn Ihr FreeBSD-System ohne eine graphische
Benutzeroberfläche startet, wird am Ende des Systemstarts,
nachdem die Startskripten gelaufen sind, ein Anmeldeprompt
ausgegeben. Die letzten Startmeldungen sollten ähnlich wie
die Folgenden aussehen:Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:Beachten Sie die letzten beiden Zeilen der Ausgabe, die
vorletzte lautet:FreeBSD/i386 (pc3.example.org) (ttyv0)Diese Zeile enthält einige Informationen über das
gerade gestartete System. Die Ausgabe stammt von der
FreeBSD-Konsole einer Maschine mit einem Intel oder
Intel-kompatiblen Prozessor der x86-ArchitekturGenau das ist mit i386 gemeint. Auch
wenn Ihr System keine Intel 386 CPU besitzt, wird
i386 ausgegeben. Es wird immer die
Architektur und nicht der Typ des Prozessors ausgegeben.. Der Name des Systems (jedes &unix; System besitzt
einen Namen) ist pc3.example.org und die Ausgabe
stammt von der Systemkonsole, dem Terminal
ttyv0.Das Ende der Ausgabe ist immer die Aufforderung zur Eingabe
eines Benutzernamens:login:Der Anmeldevorgang wird im nächsten Abschnitt
erläutert.Der AnmeldevorgangFreeBSD ist ein Mehrbenutzersystem, das Multitasking
unterstützt. Das heißt mehrere Benutzer können
gleichzeitig viele Programme auf einem System laufen lassen.Jedes Mehrbenutzersystem muss die Benutzer voneinander
unterscheiden können. Bei FreeBSD und allen anderen &unix;
Betriebssystemen wird dies dadurch erreicht, dass sich die
Benutzer anmelden müssen, bevor sie Programme laufen lassen
können. Jeder Benutzer besitzt einen eindeutigen Namen (den
Account) und ein dazugehörendes Passwort, die beide bei
der Anmeldung abgefragt werden.StartskriptenNachdem FreeBSD gestartet ist und die StartskriptenStartskripten sind Programme, die FreeBSD automatisch bei
jedem Startvorgang ausführt. Der Zweck der Skripte
besteht darin, das System zu konfigurieren und nützliche
Dienste im Hintergrund zu starten., gelaufen sind, erscheint eine Aufforderung zur Eingabe
des Benutzernamens:login:Wenn Ihr Benutzername beispielsweise john
ist, geben Sie jetzt john gefolgt von
Enter ein. Sie sollten dann eine Aufforderung zur
Eingabe des Passworts erhalten:login: john
Password:Geben Sie jetzt das Passwort von john
gefolgt von Enter ein. Das Passwort wird aus
Sicherheitsgründen nicht auf dem Bildschirm angezeigt.Wenn Sie das richtige Passwort eingegeben haben, sind Sie
am System angemeldet und können nun alle verfügbaren
Kommandos absetzen.Anmgemeldet sind Sie, wenn Sie die Tagesmeldungen
(message of today) gefolgt
von einer Eingabeaufforderung (dem Zeichen #,
$ oder %) gesehen
haben.Virtuelle KonsolenDa FreeBSD mehrere Programme gleichzeitig laufen lassen kann,
ist eine einzige Konsole, an der Kommandos abgesetzt werden
können, zu wenig. Abhilfe schaffen virtuelle Konsolen, die
mehrere Konsolen zur Verfügung stellen.Die Anzahl der virtuellen Konsolen unter FreeBSD können Sie
einstellen. Zwischen den einzelnen Konsolen können Sie mit
speziellen Tastenkombinationen wechseln. Jede Konsole verfügt
über einen eigenen Ausgabekanal und FreeBSD ordnet die
Tastatureingaben und Monitorausgaben der richtigen Konsole zu, wenn
Sie zwischen den Konsolen wechseln.Zum Umschalten der Konsolen stellt FreeBSD spezielle
Tastenkombinationen bereitEine recht technische und genaue Beschreibung der FreeBSD-Konsole
und der Tastatur-Treiber finden Sie in den Hilfeseiten
&man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; und
&man.kbdcontrol.1;. Lesen Sie diese Seiten, wenn Sie an den
Einzelheiten interessiert sind.. Benutzen Sie
AltF1,
AltF2 bis
AltF8,
um zwischen den verschiedenen Konsolen umzuschalten.Wenn Sie zu einer anderen Konsole wechseln, sichert FreeBSD den
Bildschirminhalt und gibt den Bildschirminhalt der neuen Konsole
aus. Dies erzeugt die Illusion mehrerer Bildschirme und
Tastaturen, an denen Sie Kommandos absetzen können. Wenn eine
Konsole nicht sichtbar ist, weil Sie auf eine andere Konsole
gewechselt haben, laufen die dort abgesetzten Kommandos
weiter./etc/ttysIn der Voreinstellung stehen unter FreeBSD acht virtuelle
Konsolen zur Verfügung, deren Anzahl Sie leicht erhöhen
oder verringern können. Die Anzahl und Art der Konsolen wird
in /etc/ttys eingestellt.Jede Zeile in /etc/ttys, die nicht mit
# anfängt, konfiguriert einen Terminal oder
eine virtuelle Konsole. In der Voreinstellung werden in dieser
Datei neun virtuelle Konsolen definiert, von denen acht aktiviert
sind. Die Konsolen sind in den Zeilen, die mit
ttyv beginnen, definiert:# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureDie Hilfeseite &man.ttys.5; enthält eine ausführliche
Beschreibung der Spalten dieser Datei und der Optionen, die Sie zum
Konfigurieren der virtuellen Konsolen benutzen können.Die Konsole im Single-User-ModusEine eingehende Beschreibung des Single-User-Modus finden Sie
in . Im Single-User-Modus steht
Ihnen nur eine Konsole zur Verfügung.
Die Definition dieser Konsole befindet sich ebenfalls in
/etc/ttys. Suchen Sie nach einer Zeile, die
mit console beginnt:# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secureIn der Zeile, die mit console beginnt,
können Sie secure durch
insecure ersetzen. Wenn Sie danach in den
Single-User-Modus booten, verlangt das System ebenfalls die
Eingabe des root-Passworts.Setzen Sie insecure nicht
leichtfertig ein. Wenn Sie das Passwort von
root vergessen, wird es schwierig, in den
Single-User-Modus zu gelangen, wenn Sie den
FreeBSD-Boot-Prozess nicht genau verstehen.ZugriffsrechteUNIXFreeBSD, das ein direkter Abkömmling von BSD &unix; ist,
stützt sich auf mehrere Grundkonzepte von &unix; Systemen.
Das erste und ausgeprägteste: FreeBSD ist
ein Mehrbenutzer-Betriebssystem. Das System ermöglicht,
dass mehrere Benutzer gleichzeitig an völlig verschiedenen
und unabhängigen Aufgaben arbeiten können. Es ist
verantwortlich für eine gerechte Auf- und Zuteilung von
Nachfragen nach Hardware- und Peripheriegeräten, Speicher
und CPU-Zeit unter den Benutzern.Da das System mehrere Benutzer unterstützt, hat alles,
was das System verwaltet, einen Satz von Rechten, die bestimmen,
wer die jeweilige Ressource lesen, schreiben oder ausführen
darf. Diese Zugriffsrechte stehen in drei Achtergruppen, die in
drei Teile unterteilt sind: einen für den Besitzer der
Datei, einen für die Gruppe, zu der die Datei gehört
und einen für alle anderen. Die numerische Darstellung
sieht wie folgt aus:ZugriffsrechteDateizugriffsrechteWertZugriffsrechteAuflistung im Verzeichnis0Kein Lesen, Kein Schreiben, Kein Ausführen---1Kein Lesen, Kein Schreiben, Ausführen--x2Kein Lesen, Schreiben, Kein Ausführen-w-3Kein Lesen, Schreiben, Ausführen-wx4Lesen, Kein Schreiben, Kein Ausführenr--5Lesen, Kein Schreiben, Ausführenr-x6Lesen, Schreiben, Kein Ausführenrw-7Lesen, Schreiben, AusführenrwxlsVerzeichnisseSie können auf der Kommandozeile
von &man.ls.1; angeben, um eine ausführliche Verzeichnisauflistung
zu sehen, die in einer Spalte die Zugriffsrechte für den
Besitzer, die Gruppe und alle anderen enthält.
Die Ausgabe von ls -l könnte
wie folgt aussehen:&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...Die erste Spalte der Ausgabe enthält die
Zugriffsrechte:-rw-r--r--Das erste Zeichen von links ist ein Symbol, welches angibt,
ob es sich um eine normale Datei, ein Verzeichnis, ein
zeichenorientiertes Gerät, ein Socket oder irgendeine andere
Pseudo-Datei handelt. In diesem Beispiel zeigt - eine
normale Datei an. Die nächsten drei Zeichen,
dargestellt als rw-, ergeben die Rechte
für den Datei-Besitzer. Die drei Zeichen danach
r-- die Rechte der Gruppe, zu der die Datei
gehört. Die letzten drei Zeichen, r--,
geben die Rechte für den Rest der Welt an. Ein Minus
bedeutet, dass das Recht nicht gegeben ist. In diesem Fall
sind die Zugriffsrechte also: der Eigentümer kann die Datei
lesen und schreiben, die Gruppe kann lesen und alle anderen
können auch nur lesen. Entsprechend obiger Tabelle
wären die Zugriffsrechte für diese Datei
644, worin jede Ziffer die drei Teile der
Zugriffsrechte dieser Datei verkörpert.Das ist alles schön und gut, aber wie kontrolliert das
System die Rechte von Hardware-Geräten? FreeBSD behandelt
die meisten Hardware-Geräte als Dateien, welche Programme
öffnen, lesen und mit Daten beschreiben können wie
alle anderen Dateien auch. Diese Spezial-Dateien sind im
Verzeichnis /dev gespeichert.Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie
haben Lese-, Schreib- und Ausführ-Rechte. Das
Ausführungs-Bit hat eine etwas andere Bedeutung für
ein Verzeichnis als für eine Datei. Die Ausführbarkeit
eines Verzeichnisses bedeutet, dass in das Verzeichnis
zum Beispiel mit cd gewechselt werden kann.
Das bedeutet auch, dass in dem Verzeichnis auf Dateien, deren
Namen bekannt sind, zugegriffen werden kann, vorausgesetzt die
Zugriffsrechte der Dateien lassen dies zu.Das Leserecht auf einem Verzeichnis erlaubt es, sich den Inhalt
des Verzeichnisses anzeigen zu lassen. Um eine Datei mit bekanntem
Namen in einem Verzeichnis zu löschen, müssen auf dem
Verzeichnis Schreib- und Ausführ-Rechte
gesetzt sein.Es gibt noch mehr Rechte, aber die werden vor allem in
speziellen Umständen benutzt, wie zum Beispiel bei
SetUID-Binaries und Verzeichnissen mit gesetztem Sticky-Bit.
Mehr über Zugriffsrechte von Dateien und wie sie gesetzt werden,
finden Sie in &man.chmod.1;.TomRhodesBeigesteuert von Symbolische ZugriffsrechteZugriffsrechtesymbolischeDie Zugriffsrechte lassen sich auch über Symbole
anstelle von oktalen Werten festlegen. Symbolische
Zugriffsrechte werden in der Reihenfolge
Wer, Aktion
und Berechtigung angegeben.
Die folgenden Symbole stehen zur Auswahl:OptionSymbolBedeutungWeruBenutzer (user)WergGruppe (group)WeroAndere (other)WeraAlleAktion+Berechtigungen hinzufügenAktion-Berechtigungen entziehenAktion=Berechtigungen explizit setzenBerechtigungrlesen (read)Berechtigungwschreiben (write)Berechtigungxausführen
(execute)BerechtigungtSticky-BitBerechtigungsSet-UID oder Set-GIDSymbolische Zugriffsrechte werden wie die numerischen
mit dem Kommando &man.chmod.1; vergeben. Wenn
Sie beispielsweise allen anderen Benutzern den Zugriff auf
die Datei FILE verbieten wollen,
benutzen Sie den nachstehenden Befehl:&prompt.user; chmod go= FILEWenn Sie mehr als eine Änderung der Rechte einer
Datei vornehmen wollen, können Sie eine durch Kommata
getrennte Liste der Rechte angeben. Das folgende Beispiel
entzieht der Gruppe und der Welt (den anderen) die
Schreibberechtigung auf die Datei FILE
und fügt dann für alle Ausführungsrechte
hinzu:&prompt.user; chmod go-w,a+x FILEVerzeichnis-StrukturenVerzeichnis HierarchienDie FreeBSD-Verzeichnishierarchie ist die Grundlage, um
ein umfassendes Verständnis des Systems zu erlangen.
Das wichtigste Konzept, das Sie verstehen sollten, ist das
Root-Verzeichnis /. Dieses Verzeichnis ist das
erste, das während des Bootens eingehangen wird. Es
enthält das notwendige Basissystem, um das System in den
Mehrbenutzerbetrieb zu bringen. Das Root-Verzeichnis enthält
auch die Mountpunkte anderer Dateisysteme, die später
eingehangen werden.Ein Mountpunkt ist ein Verzeichnis, in das zusätzliche
Dateisysteme in das / Verzeichnis eingepflanzt
werden können.
Standard Mountpunkte beinhalten /usr,
/var, /mnt und
/cdrom. Auf diese Verzeichnisse verweisen
üblicherweise Einträge in der Datei
/etc/fstab. /etc/fstab ist
eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten
als Referenz des Systems. Die meisten der Dateisysteme in
/etc/fstab werden beim Booten automatisch
durch das Skript &man.rc.8; gemountet, wenn die zugehörigen
Einträge nicht mit der Option
versehen sind. Konsultieren Sie die &man.fstab.5; Manualpage
für mehr Informationen über das Format der Datei
/etc/fstab und den Optionen darin.Eine vollständige Beschreibung der Dateisystem-Hierarchie
finden Sie in &man.hier.7;. Als Beispiel sei eine kurze
Übersicht über die gebräuchlisten Verzeichnisse
gegeben:VerzeichnisBeschreibung/Root-Verzeichnis des Dateisystems./bin/Grundlegende Werkzeuge für den Single-User-Modus
sowie den Mehrbenutzerbetrieb./boot/Programme und Konfigurationsdateien, die während
des Bootens benutzt werden./boot/defaults/Vorgaben für die Boot-Konfiguration, siehe
&man.loader.conf.5;./dev/Gerätedateien, siehe &man.intro.4;./etc/Konfigurationsdateien und Skripten des Systems./etc/defaults/Vorgaben für die System Konfigurationsdateien,
siehe &man.rc.8;./etc/mail/Konfigurationsdateien von MTAs wie
&man.sendmail.8;./etc/namedb/Konfigurationsdateien von named,
siehe &man.named.8;./etc/periodic/Täglich, wöchentlich oder monatlich
ablaufende Skripte, die von &man.cron.8; gestartet werden.
Siehe &man.periodic.8;./etc/ppp/Konfigurationsdateien von ppp,
siehe &man.ppp.8;./mnt/Ein leeres Verzeichnis, das von Systemadministratoren
häufig als temporärer Mountpunkt genutzt wird./proc/Prozess Dateisystem, siehe &man.procfs.5;
und &man.mount.procfs.8;./root/Home Verzeichnis von root./sbin/Systemprogramme und administrative Werkzeuge, die
grundlegend für den Single-User-Modus und den
Mehrbenutzerbetrieb sind./stand/Programme, die ohne andere Programme oder Bibliotheken
laufen./tmp/Temporäre Dateien, die für gewöhnlich
nicht nach einem Reboot erhalten werden. Dies kann
ein speicherbasiertes Dateisystem, siehe &man.mfs.8;,
sein./usr/Der Großteil der Benutzerprogramme und
Anwendungen./usr/bin/Gebräuchliche Werkzeuge, Programmierhilfen und
Anwendungen./usr/include/Standard C include-Dateien./usr/lib/Bibliotheken./usr/libdata/Daten verschiedener Werkzeuge./usr/libexec/System-Dämonen und System-Werkzeuge, die von
anderen Programmen ausgeführt werden./usr/local/Lokale Programme, Bibliotheken usw. Die Ports-Sammlung
benutzt dieses Verzeichnis als Zielverzeichnis für zu
installierende Anwendungen. Innerhalb von
/usr/local sollte das von
&man.hier.7; beschriebene Layout für
/usr benutzt werden. Das
man Verzeichnis wird direkt unter
/usr/local anstelle unter
/usr/local/share angelegt. Die
Dokumentation der Ports findet sich in
share/doc/port.
/usr/obj/Von der Architektur abhängiger Verzeichnisbaum,
der durch das Bauen von /usr/src
entsteht./usr/portsDie FreeBSD-Ports-Sammlung (optional)./usr/sbin/System-Dämonen und System-Werkzeuge, die von
Benutzern ausgeführt werden./usr/share/Von der Architektur unabhängige Dateien./usr/src/Quelldateien von BSD und/oder lokalen
Ergänzungen./usr/X11R6/Optionale X11R6-Programme und Bibliotheken./var/Wird für mehrere Zwecke genutzt und enthält
Logdateien, temporäre Daten und Spooldateien./var/log/Verschiedene Logdateien des Systems./var/mail/Postfächer der Benutzer./var/spool/Verschiedene Spool-Verzeichnisse der Drucker- und
Mailsysteme./var/tmp/Temporäre Dateien, die über Reboots erhalten
bleiben./var/ypNIS maps.Festplatten, Slices und Partitionen&os; identifiziert Dateien anhand eines Dateinamens.
In Dateinamen wird zwischen Groß- und Kleinschreibung
unterschieden: readme.txt und
README.TXT bezeichnen daher zwei
verschiedene Dateien. &os; benutzt keine Dateiendungen wie
.txt, um den Typ der Datei
(ein Programm, ein Dokument oder andere Daten) zu
bestimmen.Dateien werden in Verzeichnissen gespeichert. In einem
Verzeichnis können sich keine oder hunderte Dateien
befinden. Ein Verzeichnis kann auch andere Verzeichnisse
enthalten und so eine Hierarchie von Verzeichnissen aufbauen,
die Ihnen die Ablage von Daten erleichtert.In Dateinamen werden Verzeichnisse durch einen
Schrägstrich (/,
Slash) getrennt. Wenn
das Verzeichnis foo
ein Verzeichnis bar
enthält, in dem sich die Datei readme.txt
befindet, lautet der vollständige Name der Datei
(oder der Pfad zur Datei)
foo/bar/readme.txt.Verzeichnisse und Dateien werden in einem Dateisystem
gespeichert. Jedes Dateisystem besitzt ein
Wurzelverzeichnis
(Root-Directory),
das weitere Verzeichnisse enthalten kann.Dieses Konzept kennen Sie vielleicht von anderen
Betriebssystemen, aber es gibt einige Unterschiede:
In &ms-dos; werden Datei- und Verzeichnisnamen mit dem
Zeichen \ getrennt, &macos; benutzt
dazu das Zeichen :.&os; kennt keine Laufwerksbuchstaben und in Pfaden
werden keine Bezeichnungen für Laufwerke benutzt.
Die Pfadangabe c:/foo/bar/readme.txt
gibt es in &os; nicht.Stattdessen wird ein Dateisystem als Wurzeldateisystem
(Root-Filesystem)
ausgewählt. Das Wurzelverzeichnis dieses Dateisystems
wird / genannt.
Jedes andere Dateisystem wird unter dem Wurzeldateisystem
eingehangen
(mount). Daher scheint
jedes Verzeichnis, unabhängig von der Anzahl der
Platten, auf derselben Platte zu liegen.Betrachten wir drei Dateisysteme A,
B und C. Jedes
Dateisystem besitzt ein eigenes Wurzelverzeichnis, das
zwei andere Verzeichnisse enthält:
A1,
A2,
B1,
B2,
C1 und
C2.Das Wurzeldateisystem soll A sein.
Das Kommando ls zeigt darin
die beiden Verzeichnisse A1
und A2 an.
Der Verzeichnisbaum sieht wie folgt aus: /
|
+--- A1
|
`--- A2Ein Dateisystem wird in einem Verzeichnis eines anderen
Dateisystems eingehangen. Wir hängen nun das Dateisystem
B in das Verzeichnis
A1 ein. Das
Wurzelverzeichnis von B ersetzt nun
das Verzeichnis A1 und
die Verzeichnisse des Dateisystems B
werden sichtbar: /
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2Jede Datei in den Verzeichnissen
B1 oder
B2 kann
über den Pfad /A1/B1
oder /A1/B2
erreicht werden. Dateien aus dem Verzeichnis
/A1 sind jetzt
verborgen. Wenn das Dateisystem B
wieder abgehangen wird
(umount), erscheinen
die verborgenen Dateien wieder.Wenn das Dateisystem B unter dem
Verzeichnis A2
eingehangen würde, sähe der Verzeichnisbaum
so aus: /
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2Die Dateien des Dateisystems B wären
unter den Pfaden /A2/B1 und
/A2/B2 erreichbar.Dateisysteme können übereinander eingehangen
werden. Der folgende Baum entsteht, wenn im letzten
Beispiel das Dateisystem C in das Verzeichnis
B1 des Dateisystems
B eingehangen wird: /
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2C könnte auch im Verzeichnis
A1 eingehangen
werden: /
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2Der &ms-dos;-Befehl join kann Ähnliches
bewirken.Normalerweise müssen Sie sich nicht mit Dateisystemen
beschäftigen. Während der Installation werden
die Dateisysteme und die Stellen, in der sie eingehangen werden,
festgelegt. Dateisysteme müssen Sie erst wieder anlegen,
wenn Sie eine neue Platte hinzufügen.Sie können sogar mit nur einem großen
Dateisystem auskommen. Dies hat mehrere Nachteile
und einen Vorteil.Vorteile mehrerer DateisystemeDie Dateisysteme können mit unterschiedlichen
Optionen (mount options)
eingehangen werden. Bei sorgfältiger Planung können
Sie beispielsweise das Wurzeldateisystem nur lesbar
einhängen. Damit schützen Sie sich vor dem
unabsichtlichen Löschen oder Editieren kritischer
Dateien. Von Benutzern beschreibbare Dateisysteme
wie /home
können Sie mit der Option nosuid
einhängen, wenn sie von anderen Dateisystemen getrennt
sind. Die SUID- und
GUID-Bits verlieren auf solchen
Dateisystemen ihre Wirkung und die Sicherheit des
Systems kann dadurch erhöht werden.Die Lage von Dateien im Dateisystem wird, abhängig
vom Gebrauch des Dateisystems, automatisch von &os;
optimiert. Ein Dateisystem mit vielen kleinen Dateien,
die häufig geschrieben werden, wird anders behandelt
als ein Dateisystem mit wenigen großen Dateien.
Mit nur einem Dateisystem ist diese Optimierung
unmöglich.In der Regel übersteht ein &os;-Dateisystem auch
einen Stromausfall. Allerdings kann ein Stromausfall zu
einem kritischen Zeitpunkt das Dateisystem beschädigen.
Wenn die Daten über mehrere Dateisysteme verteilt
sind, lässt sich das System mit hoher
Wahrscheinlichkeit noch starten. Dies erleichtert
das Zurückspielen von Datensicherungen.Vorteil eines einzelnen DateisystemsDie Größe von Dateisystemen liegt fest.
Es kann passieren, dass Sie eine Partition
vergrößern müssen. Dies ist nicht leicht:
Sie müssen die Daten sichern, das Dateisystem
vergrößert anlegen und die gesicherten
Daten zurückspielen.Ab &os; 4.4 existiert diese Beschränkung
nicht mehr: Das Kommando &man.growfs.8; kann Dateisysteme
im laufenden Betrieb vergrößern.Dateisysteme befinden sich in Partitionen (damit sind
nicht die normalen &ms-dos;-Partitionen gemeint). Jede Partition
wird mit einem Buchstaben von a bis
h bezeichnet und kann nur ein Dateisystem
enthalten. Dateisysteme können daher über ihren
Mount-Point, den Punkt an dem sie eingehangen sind, oder
den Buchstaben der Partition, in der sie liegen, identifiziert
werden.&os; benutzt einen Teil der Platte für den
Swap-Bereich, der dem Rechner
virtuellen Speicher zur Verfügung
stellt. Dadurch kann der Rechner Anwendungen mehr Speicher
zur Verfügung stellen als tatsächlich eingebaut
ist. Wenn der Speicher knapp wird, kann &os; nicht benutzte
Daten in den Swap-Bereich auslagern. Die ausgelagerten
Daten können später wieder in den Speicher
geholt werden (dafür werden dann andere Daten
ausgelagert).Für einige Partitionen gelten besondere
Konventionen:PartitionKonventionaEnthält normalerweise
das WurzeldateisystembEnthält normalerweise
den Swap-BereichcIst normalerweise genauso groß wie
die Slice in der die Partition liegt. Werkzeuge,
die auf der kompletten Slice arbeiten, wie ein
Bad-Block-Scanner, können so die
c-Partition benutzen.
Für gewöhnlich legen Sie in dieser
Partition kein Dateisystem an.dFrüher hatte die d-Partition
eine besondere Bedeutung. Bis heute haben einige
Werkzeuge Schwierigkeiten mit der
d-Partition, sodass
sysinstall normalerweise
keine d-Partition anlegt.Jede Partition, die ein Dateisystem enthält,
wird in einer Slice angelegt.
Slice ist der Begriff, den &os; für &ms-dos;-Partitionen
verwendet. Slices werden von eins bis vier durchnummeriert.SlicesPartitionendangerously dedicatedDie Slice-Nummern werden mit vorgestelltem
s hinter den Gerätenamen gestellt:
da0s1
ist die erste Slice auf dem ersten SCSI-Laufwerk. Auf einer
Festplatte gibt es höchstens vier Slices. In einer
Slice des passenden Typs kann es weitere logische Slices
geben. Diese erweiterten Slices werden ab fünf durchnummeriert:
ad0s5 ist
die erste erweiterte Slice auf einer IDE-Platte. Diese
Geräte werden von Dateisystemen benutzt, die sich in
einer kompletten Slice befinden müssen.Slices, dangerously dedicated-Festplatten
und andere Platten enthalten Partitionen, die mit Buchstaben
von a bis h bezeichnet
werden. Der Buchstabe wird an den Gerätenamen
gehangen: da0a
ist die a-Partition des ersten
da-Laufwerks. Dieses Laufwerk ist
dangerously dedicated.
ad1s3e ist
die fünfte Partition in der dritten Slice der zweiten
IDE-Platte.Schließlich wird noch jede Festplatte des Systems
eindeutig bezeichnet. Der Name einer Festplatte beginnt mit
einem Code, der den Typ der Platte bezeichnet. Es folgt eine
Nummer, die angibt, um welche Festplatte es sich handelt.
Anders als bei Slices werden Festplatten von Null beginnend
durchnummeriert. Gängige Festplatten-Namen sind in
zusammengestellt.Wenn Sie eine Partition angeben, erwartet &os; dass Sie
auch die Slice und die Platte angeben, in denen sich die
Partition befindet. Wenn Sie eine Slice angeben, müssen
Sie auch die Platte der Slice angeben. Setzen Sie den Namen
aus dem Plattennamen gefolgt von einem s,
der Slice-Nummer und dem Buchstaben der Partition zusammen.
Einige Beispiele finden Sie in
.Der Aufbau einer Festplatte wird in
dargestellt.Um &os; zu installieren, müssen Sie zuerst Slices
auf den Festplatten anlegen. Innerhalb der Slices, die Sie
für &os; verwenden wollen, müssen Sie dann
Partitionen anlegen. In den Partitionen wiederum werden
die Dateisysteme (oder der Auslagerungsbereich) angelegt.
Für Dateisysteme müssen Sie schließlich
noch festlegen, wo diese eingehangen werden (Mount-Point).
Namen von Platten, Slices und PartitionenNameBedeutungad0s1aDie erste Partition (a)
in der ersten Slice (s1) der
ersten IDE-Festplatte (ad0).da1s2eDie fünfte Partition (e)
der zweiten Slice (s2) auf
der zweiten SCSI-Festplatte
(da1).Aufteilung einer FestplatteDas folgende Diagramm zeigt die Sicht von &os; auf die
erste IDE-Festplatte eines Rechners. Die Platte soll
4 GB groß sein und zwei Slices (&ms-dos;-Partitionen)
mit je 2 GB besitzen. Die erste Slice enthält
ein &ms-dos;-Laufwerk (C:), die zweite
Slice wird von &os; benutzt. Im Beispiel verwendet die
&os;-Installationen drei Partitionen und einen
Auslagerungsbereich.Jede der drei Partitionen enthält ein Dateisystem.
Das Wurzeldateisystem ist die a-Partition.
In der e-Partition befindet sich
der /var-Verzeichnisbaum
und in der f-Partition befindet sich
der Verzeichnisbaum unterhalb von
/usr..-----------------. --.
| | |
| DOS / Windows | |
: : > First slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partition a, mounted as / |
| | > referred to as ad0s2a |
| | | |
:-----------------: ==: |
| | | Partition b, used as swap |
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
| | | Partition e, used as /var > filesystem, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partition f, used as /usr |
: : > referred to as ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'Anhängen und Abhängen von DateisystemenEin Dateisystem wird am besten als ein Baum mit der
Wurzel / veranschaulicht.
/dev, /usr, und
die anderen Verzeichnisse im Rootverzeichnis sind Zweige,
die wiederum eigene Zweige wie /usr/local
haben können.Root-DateisystemEs gibt verschiedene Gründe, bestimmte dieser Verzeichnisse
auf eigenen Dateisystemen anzulegen. /var
enthält log/, spool/
sowie verschiedene andere temporäre
Dateien und kann sich daher schnell füllen. Es empfiehlt sich,
/var von / zu trennen,
da es schlecht ist, wenn das Root-Dateisystem voll
läuft.Ein weiterer Grund bestimmte Verzeichnisbäume auf
andere Dateisysteme zu legen, ist gegeben, wenn sich die
Verzeichnisbäume auf gesonderten physikalischen oder
virtuellen Platten, wie
Network File System
oder CD-ROM-Laufwerken, befinden.Die fstab DateiDateisystemefstabWährend des Boot-Prozesses
werden in /etc/fstab aufgeführte
Verzeichnisse, sofern sie nicht mit der Option
versehen sind, automatisch angehangen.Die Zeilen in /etc/fstab haben das
folgende Format:device/mount-pointfstypeoptionsdumpfreqpassnodeviceEin existierender Gerätename
wie in beschrieben.mount-pointEin existierendes Verzeichnis,
an das das Dateisystem angehangen wird.fstypeDer Typ des Dateisystems,
der an &man.mount.8; weitergegeben wird. FreeBSDs
Standarddateisystem ist ufs.optionsEntweder
für beschreibbare Dateisysteme oder
für schreibgeschützte Dateisysteme, gefolgt von
weiteren benötigten Optionen. Eine häufig verwendete
Option ist für Dateisysteme,
die während der normalen Bootsequenz nicht angehangen
werden sollen. Weitere Optionen finden sich
in &man.mount.8;.dumpfreqGibt die Anzahl der Tage an, nachdem das
Dateisystem gesichert werden soll. Fehlt der Wert, wird
0 angenommen.passnoBestimmt die Reihenfolge, in der die Dateisysteme
überprüft werden sollen. Für Dateisysteme,
die übersprungen werden sollen, ist
passno auf null zu setzen. Für das
Root-Dateisystem, das vor allen anderen überprüft
werden muss, sollte der Wert von
passno eins betragen. Allen anderen
Dateisystemen sollten Werte größer eins zugewiesen
werden. Wenn mehrere Dateisysteme den gleichen Wert
besitzen, wird &man.fsck.8; versuchen, diese parallel zu
überprüfen.Das mount KommandoDateisystemeanhängen&man.mount.8; hängt schließlich Dateisysteme
an.In der grundlegenden Form wird es wie folgt benutzt:&prompt.root; mount devicemountpointViele Optionen werden in &man.mount.8; beschrieben,
die am häufigsten verwendeten sind:Optionen von mountHängt alle Dateisysteme aus
/etc/fstab an. Davon ausgenommen
sind Dateisysteme, die mit noauto markiert
sind, die mit der Option ausgeschlossen
wurden und Dateisysteme, die schon angehangen sind.Führt alles bis auf den
mount-Systemaufruf aus.
Nützlich ist diese Option in Verbindung
mit . Damit wird angezeigt, was
&man.mount.8; tatsächlich versuchen
würde, um das Dateisystem anzuhängen.Erzwingt das Anhängen eines unsauberen Dateisystems
oder erzwingt die Rücknahme des Schreibzugriffs, wenn
der Status des Dateisystems von beschreibbar auf
schreibgeschützt geändert wird.Hängt das Dateisystem schreibgeschützt an. Das
kann auch durch Angabe von zu der
Option erreicht werden.fstypeHängt das Dateisystem mit dem angegebenen Typ an,
oder hängt nur Dateisysteme mit dem angegebenen Typ
an, wenn auch angegeben
wurde.Die Voreinstellung für den Typ des Dateisystems
ist ufs.Aktualisiert die Mountoptionen des Dateisystems.Geschwätzig sein.Hängt das Dateisystem beschreibbar an. erwartet eine durch Kommata separierte Liste
von Optionen, unter anderem die folgenden:nodevBeachtet keine Gerätedateien auf dem Dateisystem.
Dies ist eine nützliche Sicherheitsfunktion.noexecVerbietet das Ausführen von binären
Dateien auf dem Dateisystem. Dies ist eine
nützliche Sicherheitsfunktion.nosuidSetUID und SetGID Bits werden auf dem Dateisystem
nicht beachtet. Dies ist eine nützliche
Sicherheitsfunktion.Das umount KommandoDateisystemeabhängen&man.umount.8; akzeptiert als Parameter entweder
einen Mountpoint, einen Gerätenamen, oder die
Optionen oder .Jede Form akzeptiert , um das
Abhängen zu erzwingen, und , um
etwas geschwätziger zu sein. Seien Sie bitte vorsichtig mit
: Ihr Computer kann abstürzen oder es
können Daten auf dem Dateisystem beschädigt werden, wenn
Sie das Abhängen erzwingen. und werden benutzt
um alle Dateisysteme, deren Typ durch
modifiziert werden kann, abzuhängen.
hängt das Rootdateisystem nicht ab.ProzesseDa FreeBSD ein Multitasking-Betriebssystem ist, sieht es so aus,
als ob mehrere Prozesse zur gleichen Zeit laufen. Jedes Programm,
das zu irgendeiner Zeit läuft, wird
Prozess genannt. Jedes Kommando
startet mindestens einen Prozess. Einige Systemprozesse
laufen ständig und stellen die Funktion des Systems sicher.Jeder Prozess wird durch eine eindeutige Nummer identifiziert,
die Prozess-ID oder
PID genannt wird. Prozesse haben ebenso
wie Dateien einen Besitzer und eine Gruppe, die festlegen, welche
Dateien und Geräte der Prozess benutzen kann. Dabei
finden die vorher beschriebenen Zugriffsrechte Anwendung. Die meisten
Prozesse haben auch einen Elternprozess, der sie gestartet hat.
Wenn Sie in der Shell Kommandos eingeben, dann ist die Shell ein
Prozess und jedes Kommando, das Sie starten, ist auch ein
Prozess. Jeder Prozess, den Sie auf diese Weise starten,
besitzt den Shell-Prozess als Elternprozess. Die Ausnahme
hiervon ist ein spezieller Prozess, der &man.init.8;
heißt. init ist immer der erste Prozess
und hat somit die PID 1. init wird vom Kernel
beim Booten von FreeBSD gestartet.Die Kommandos &man.ps.1; und &man.top.1; sind besonders
nützlich, um sich die Prozesse auf einem System anzusehen.
ps zeigt eine statische Liste der laufenden
Prozesse und kann deren PID, Speicherverbrauch und die
Kommandozeile, mit der sie gestartet wurden und vieles mehr
anzeigen. top zeigt alle laufenden Prozesse
an und aktualisiert die Anzeige, so dass Sie Ihrem Computer
bei der Arbeit zuschauen können.Normal zeigt Ihnen ps nur die laufenden
Prozesse, die Ihnen gehören. Zum Beispiel:&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishWie Sie sehen, gibt &man.ps.1; mehrere Spalten aus. In der
PID Spalte findet sich die vorher besprochene
Prozess-ID. PIDs werden von 1 beginnend bis 99999 zugewiesen
und fangen wieder von vorne an, wenn die Grenze überschritten
wird. Die Spalte TT zeigt den Terminal, auf dem das
Programm läuft. STAT zeigt den Status
des Programms an und kann für die Zwecke dieser Diskussion ebenso
wie TT ignoriert werden. TIME
gibt die Zeit an, die das Programm auf der CPU gelaufen ist –
dies ist nicht unbedingt die Zeit, die seit dem Start des Programms
vergangen ist, da die meisten Programme hauptsächlich auf
bestimmte Dinge warten, bevor sie wirklich CPU-Zeit verbrauchen.
Unter der Spalte COMMAND finden Sie schließlich
die Kommandozeile, mit der das Programm gestartet wurde.&man.ps.1; besitzt viele Optionen, um die angezeigten Informationen
zu beeinflussen. Eine nützliche Kombination ist
auxww. Mit werden Information
über alle laufenden Prozesse und nicht nur Ihrer eigenen
angezeigt. Der Name des Besitzers des Prozesses, sowie Informationen
über den Speicherverbrauch werden mit
angezeigt. zeigt auch Dämonen-Prozesse an,
und veranlasst &man.ps.1; die komplette
Kommandozeile anzuzeigen, anstatt sie abzuschneiden, wenn sie
zu lang für die Bildschirmausgabe wird.Die Ausgabe von &man.top.1; sieht ähnlich aus:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
fünf Kopfzeilen finden sich die zuletzt zugeteilte PID, die
Systemauslastung (engl. load average),
die Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie viele
Prozesse momentan laufen (im Beispiel 47), wie viel Speicher
und Swap verbraucht wurde und wie viel Zeit das System in den
verschiedenen CPU-Modi verbringt.Darunter befinden sich einige Spalten mit ähnlichen
Informationen wie in der Ausgabe von &man.ps.1;. Wie im vorigen
Beispiel können Sie die PID, den Besitzer, die verbrauchte
CPU-Zeit und das Kommando erkennen. &man.top.1; zeigt auch den
Speicherverbrauch des Prozesses an, der in zwei Spalten aufgeteilt
ist. Die erste Spalte gibt den gesamten Speicherverbrauch des
Prozesses an, in der zweiten Spalte wird der aktuelle Verbrauch
angegeben. &netscape; hat im gezeigten
Beispiel insgesamt 30 MB Speicher verbraucht. Momentan benutzt
es allerdings nur 9 MB.Die Anzeige wird von &man.top.1; automatisch alle zwei Sekunden
aktualisiert. Der Zeitraum kann mit eingestellt
werden.Dämonen, Signale und Stoppen von ProzessenWenn Sie einen Editor starten, können Sie ihn leicht bedienen
und Dateien laden. Sie können das, weil der Editor dafür
Vorsorge getroffen hat und auf einem Terminal
läuft. Manche Programme erwarten keine Eingaben von einem
Benutzer und lösen sich bei erster Gelegenheit von ihrem
Terminal. Ein Web-Server zum Beispiel verbringt den ganzen Tag
damit, auf Anfragen zu antworten und erwartet keine Eingaben von Ihnen.
Programme, die E-Mail von einem Ort zu einem anderen Ort transportieren
sind ein weiteres Beispiel für diesen Typ von Anwendungen.Wir nennen diese Programme Dämonen.
Dämonen stammen aus der griechischen Mythologie und waren
weder gut noch böse. Sie waren kleine dienstbare Geister,
die meistens nützliche Sachen für die Menschheit vollbrachten.
Ähnlich wie heutzutage Web-Server und Mail-Server nützliche
Dienste verrichten. Seit langer Zeit ist daher das BSD Maskottchen
dieser fröhlich aussehende Dämon mit Turnschuhen
und Dreizack.Programme, die als Dämon laufen, werden entsprechend einer
Konvention mit einem d am Ende benannt.
BIND ist der Berkeley Internet Name Daemon
und das tatsächlich laufende Programm heißt
named. Der Apache Webserver wird
httpd genannt, der Druckerspool-Dämon heißt
lpd usw. Dies ist allerdings eine Konvention
und keine unumstößliche Regel: Der Dämon der
Anwendung sendmail heißt
sendmail und nicht maild, wie
Sie vielleicht gedacht hatten.Manchmal müssen Sie mit einem Dämon kommunizieren und
dazu benutzen Sie Signale. Sie können
mit einem Dämonen oder jedem anderen laufenden Prozess
kommunizieren, indem Sie diesem ein Signal schicken. Sie können
verschiedene Signale verschicken – manche haben eine festgelegte
Bedeutung, andere werden von der Anwendung interpretiert. Die
Dokumentation zur fraglichen Anwendung wird erklären, wie
die Anwendung Signale interpretiert. Sie können nur Signale
zu Prozessen senden, die Ihnen gehören. Normale Benutzer haben
nicht die Berechtigung, Prozessen anderer Benutzer mit &man.kill.1;
oder &man.kill.2; Signale zu schicken. Der Benutzer
root darf jedem Prozess Signale schicken.In manchen Fällen wird FreeBSD Signale senden. Wenn eine
Anwendung schlecht geschrieben ist und auf Speicher zugreift, auf
den sie nicht zugreifen soll, so sendet FreeBSD dem Prozess
das Segmentation Violation Signal
(SIGSEGV). Wenn eine Anwendung den &man.alarm.3;
Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu
werden, bekommt sie das Alarm Signal (SIGALRM)
gesendet.Zwei Signale können benutzt werden, um Prozesse zu stoppen:
SIGTERM und SIGKILL. Mit
SIGTERM fordern Sie den Prozess höflich zum
Beenden auf. Der Prozess kann das Signal abfangen und merken,
dass er sich beenden soll. Er hat dann Gelegenheit Logdateien
zu schließen und die Aktion, die er vor der Aufforderung
sich zu beenden durchführte, abzuschließen. Er kann
sogar SIGTERM ignorieren, wenn er eine Aktion
durchführt, die nicht unterbrochen werden darf.SIGKILL kann von keinem Prozess ignoriert
werden. Das Signal lässt sich mit Mich interessiert
nicht, was du gerade machst, hör sofort auf damit!
umschreiben. Wenn Sie einem Prozess SIGKILL
schicken, dann wird FreeBSD diesen sofort beenden
Das stimmt nicht ganz: Es gibt Fälle, in denen ein Prozess
nicht unterbrochen werden kann. Wenn der Prozesss zum Beispiel
eine Datei von einem anderen Rechner auf dem Netzwerk liest und dieser
Rechner aus irgendwelchen Gründen nicht erreichbar ist
(ausgeschaltet, oder ein Netzwerkfehler), dann ist der Prozess
nicht zu unterbrechen. Wenn der Prozess den Lesezugriff
nach einem Timeout von typischerweise zwei Minuten aufgibt,
dann wir er beendet..Andere Signale, die Sie vielleicht verschicken wollen, sind
SIGHUP, SIGUSR1 und
SIGUSR2. Diese Signale sind für allgemeine
Zwecke vorgesehen und verschiedene Anwendungen werden unterschiedlich
auf diese Signale reagieren.Nehmen wir an, Sie haben die Konfiguration Ihres Webservers
verändert und möchten dies dem Server mitteilen. Sie
könnten den Server natürlich stoppen und
httpd wieder starten. Die Folge wäre eine
kurze Zeit, in der der Server nicht erreichbar ist. Die meisten
Dämonen lesen Ihre Konfigurationsdatei beim Empfang eines
SIGHUP neu ein. Da es keinen Standard gibt, der
vorschreibt, wie auf diese Signale zu reagieren ist, lesen
Sie bitte die Dokumentation zu dem in Frage kommenden Dämon.Mit &man.kill.1; können Sie, wie unten gezeigt, Signale
verschicken.Verschicken von SignalenDas folgende Beispiel zeigt, wie Sie &man.inetd.8; ein
Signal schicken. Die Konfigurationsdatei von
inetd ist /etc/inetd.conf.
Diese Konfigurationsdatei liest inetd ein,
wenn er ein SIGHUP empfängt.Suchen Sie die Prozess-ID des Prozesses, dem Sie ein Signal
schicken wollen. Benutzen Sie dazu &man.ps.1; und &man.grep.1;.
Mit &man.grep.1; können Sie in einer Ausgabe nach einem
String suchen. Da &man.inetd.8; unter dem Benutzer
root läuft und Sie das Kommando als
normaler Benutzer absetzen, müssen Sie &man.ps.1; mit
aufrufen:&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWDie Prozess-ID von &man.inetd.8; ist 198. In einigen
Fällen werden Sie auch das grep inetd
Kommando in der Ausgabe sehen. Dies hat damit zu tun, wie
&man.ps.1; die Liste der laufenden Prozesse untersucht.Senden Sie das Signal mit &man.kill.1;. Da &man.inetd.8;
unter dem Benutzer root läuft, müssen
Sie zuerst mit &man.su.1; root werden:&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198&man.kill.1; wird, wie andere Kommandos von &unix; Systemen auch, keine Ausgabe
erzeugen, wenn das Kommando erfolgreich war. Wenn Sie versuchen,
einem Prozess, der nicht Ihnen gehört, ein Signal zu
senden, dann werden Sie die Meldung
kill: PID: Operation not
permitted sehen. Wenn Sie sich bei der Eingabe der
PID vertippen, werden Sie das Signal dem falschen Prozess
schicken, was schlecht sein kann. Wenn Sie Glück haben,
existiert der Prozess nicht und Sie werden mit der Ausgabe
kill: PID: No such
process belohnt.Warum soll ich /bin/kill benutzen?Viele Shells stellen kill als internes
Kommando zur Verfügung, das heißt die Shell sendet
das Signal direkt, anstatt /bin/kill
zu starten. Das kann nützlich sein, aber die
unterschiedlichen Shells benutzen eine verschiedene Syntax,
um die Namen der Signale anzugeben. Anstatt jede Syntax zu
lernen, kann es einfacher sein, /bin/kill
... direkt aufzurufen.Andere Signale senden Sie auf die gleiche Weise, ersetzen
Sie nur TERM oder KILL
entsprechend.Es kann gravierende Auswirkungen haben, wenn Sie zufällig
Prozesse beenden. Insbesondere &man.init.8; mit der Prozess-ID
ist ein Spezialfall. Mit /bin/kill -s KILL 1
können Sie Ihr System schnell herunterfahren.
Überprüfen Sie die Argumente von &man.kill.1;
immer zweimal bevor
Sie Return drücken.ShellsShellsKommandozeileVon der tagtäglichen Arbeit mit FreeBSD wird eine Menge
mit der Kommandozeilen Schnittstelle der Shell erledigt. Die
Hauptaufgabe einer Shell besteht darin, Kommandos der Eingabe
anzunehmen und diese auszuführen. Viele Shells haben
außerdem eingebaute Funktionen, die die tägliche
Arbeit erleichtern, beispielsweise eine Dateiverwaltung,
die Vervollständigung von Dateinamen (Globbing), einen
Kommandozeileneditor, sowie Makros und Umgebungsvariablen. FreeBSD
enthält die Shells sh (die Bourne Shell) und
tcsh (die verbesserte C-Shell) im Basissystem.
Viele andere Shells, wie zsh oder
bash, befinden sich in der Ports-Sammlung.Welche Shell soll ich benutzen? Das ist wirklich eine
Geschmacksfrage. Sind Sie ein C-Programmierer, finden Sie
vielleicht eine C-artige Shell wie die tcsh
angenehmer. Kommen Sie von Linux oder ist Ihnen der Umgang mit &unix; Systemen
neu, so könnten Sie die bash probieren.
Der Punkt ist, dass
jede Shell ihre speziellen Eigenschaften hat, die mit Ihrer
bevorzugten Arbeitsumgebung harmonieren können oder nicht.
Sie müssen sich eine Shell aussuchen.Ein verbreitetes Merkmal in Shells ist die
Dateinamen-Vervollständigung. Sie müssen nur einige
Buchstaben eines Kommandos oder eines Dateinamen eingeben und
die Shell vervollständigt den Rest automatisch durch
drücken der Tab-Taste. Hier ist ein Beispiel.
Angenommen, Sie
haben zwei Dateien foobar und
foo.bar. Die Datei
foo.bar möchten Sie löschen. Nun
würden Sie an der Tastatur eingeben:
rm fo[Tab].
[Tab].Die Shell würde dann rm
foo[BEEP].bar ausgeben.[BEEP] meint den Rechner-Piepser. Diesen gibt die Shell
aus, um anzuzeigen, dass es den Dateinamen nicht
vervollständigen konnte, da es mehrere Möglichkeiten
gibt. Beide Dateien foobar und
foo.bar beginnen mit fo,
so konnte nur bis foo ergänzt werden.
Nachdem Sie . eingaben und dann die
Tab-Taste
drückten, konnte die Shell den Rest für Sie
ausfüllen.UmgebungsvariablenEin weiteres Merkmal der Shell ist der Gebrauch von
Umgebungsvariablen. Dies sind veränderbare Schlüsselpaare
im Umgebungsraum der Shell, die jedes von der Shell aufgerufene
Programm lesen kann. Daher enthält der Umgebungsraum viele
Konfigurationsdaten für Programme. Die folgende Liste zeigt
verbreitete Umgebungsvariablen und was sie bedeuten:UmgebungsvariablenVariableBeschreibungUSERName des angemeldeten Benutzers.PATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
zum Suchen nach Programmen.DISPLAYWenn gesetzt der Netzwerkname des X11 Bildschirms
für die Anzeige.SHELLDie aktuelle Shell.TERMName des Terminals des Benutzers. Benutzt, um die
Fähigkeiten des Terminals bestimmen.TERMCAPDatenbankeintrag der Terminal Escape Codes,
benötigt um verschieden Terminalfunktionen
auszuführen.OSTYPETyp des Betriebsystems, beispielsweise FreeBSD.MACHTYPEDie CPU Architektur auf dem das System
läuft.EDITORVom Benutzer bevorzugter Text-Editor.PAGERVom Benutzer bevorzugter Text-Betrachter.MANPATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
zum Suchen nach Manualpages.ShellsBourne ShellDas Setzen von Umgebungsvariablen funktioniert
von Shell zu Shell unterschiedlich. Zum Beispiel benutzt man
in C-artigen Shells wie der tcsh dazu
setenv. Unter Bourne-Shells wie sh
oder bash benutzen Sie zum Setzen von
Umgebungsvariablen export. Um
beispielsweise die Variable EDITOR mit
csh oder tcsh auf
/usr/local/bin/emacs zu setzen, setzen Sie das
folgende Kommando ab:&prompt.user; setenv EDITOR /usr/local/bin/emacsUnter Bourne-Shells:&prompt.user; export EDITOR="/usr/local/bin/emacs"Sie können die meisten Shells Umgebungsvariablen
expandieren lassen, in dem Sie in der Kommandozeile ein
$ davor eingeben. Zum Beispiel gibt
echo $TERM aus, worauf $TERM
gesetzt ist, weil die Shell $TERM expandiert
und das Ergebnis an echo gibt.Shells behandeln viele Spezialzeichen, so genannte
Metazeichen, als besondere Darstellungen für Daten.
Das allgemeinste ist das Zeichen *, das eine
beliebige Anzahl Zeichen in einem Dateinamen repräsentiert.
Diese Metazeichen können zum Vervollständigen von
Dateinamen (Globbing) benutzt werden. Beispielsweise liefert
das Kommando echo * nahezu das gleiche
wie die Eingabe von ls, da die Shell alle
Dateinamen die mit * übereinstimmen, an
echo weitergibt.Um zu verhindern, dass die Shell diese Sonderzeichen
interpretiert, kann man sie schützen, indem man ihnen einen
Backslash (\) voranstellt. echo
$TERM gibt aus, auf was auch immer Ihr Terminal
gesetzt ist. echo \$TERM gibt
$TERM genauso aus, wie es hier steht.Ändern der ShellDer einfachste Weg Ihre Shell zu ändern, ist das
Kommando chsh zu benutzen.
chsh platziert Sie im Editor, welcher durch
Ihre Umgebungsvariable EDITOR gesetzt ist,
im vi wenn die Variable nicht gesetzt ist.
Ändern Sie die Zeile mit Shell:
entsprechend Ihren Wünschen.Sie können auch chsh mit der Option
aufrufen, dann wird Ihre Shell gesetzt,
ohne dass Sie in einen Editor gelangen. Um Ihre Shell
zum Beispiel auf die bash zu ändern,
geben Sie das folgende Kommando ein:&prompt.user; chsh -s /usr/local/bin/bashDasselbe Ergebnis hätten Sie erzielt, wenn Sie einfach
chsh ohne Optionen aufgerufen und die
entsprechende Zeile editiert hätten.Die von Ihnen gewünschte Shell
muss in /etc/shells
aufgeführt sein. Haben Sie eine Shell aus der
Ports Sammlung installiert,
sollte das schon automatisch erledigt werden. Installierten
Sie die Shell von Hand, so müssen Sie sie dort
eintragen.Haben Sie beispielsweise die bash nach
/usr/local/bin installiert, wollen Sie
dies tun:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsDanach können Sie chsh aufrufen.Text-EditorenText EditorenEditorenEine Menge der Konfiguration wird bei FreeBSD durch
das Editieren von Textdateien erledigt. Deshalb ist es eine
gute Idee, mit einem Texteditor vertraut zu werden. FreeBSD hat
ein paar davon im Basissystem und sehr viel mehr in der
Ports-Sammlung.eeDer am leichtesten und einfachsten zu erlernende Editor nennt
sich ee, was für
easy editor steht.
Um ee zu starten, gibt man in der
Kommandozeile ee filename ein, worin
filename der Name der zu editierenden Datei
ist. Um zum Beispiel /etc/rc.conf zu
editieren, tippen Sie ee /etc/rc.conf.
Einmal im Editor, finden Sie alle Editor-Funktionen oben im
Display aufgelistet. Das Einschaltungszeichen
^ steht für die Ctrl (oder
Strg) Taste, mit ^e ist also die
Tastenkombination Ctrle
gemeint. Um ee zu verlassen, drücken
Sie Esc und wählen dann aus. Der Editor fragt nach, ob Sie speichern
möchten, wenn die Datei verändert wurde.viText EditorenviemacsText EditorenemacsFreeBSD verfügt über leistungsfähigere
Editoren wie vi als Teil des
Basissystems, andere Editoren wie emacs oder
vim sind Teil der Ports Sammlung.
Diese Editoren bieten höhere Funktionalität und
Leistungsfähigkeit jedoch auf Kosten einer etwas
schwierigeren Erlernbarkeit. Wenn Sie viel
Textdateien editieren werden, sparen Sie auf lange Sicht mehr
Zeit durch das Erlernen von Editoren wie
vim oder
emacs ein.Geräte und GerätedateienDer Begriff Gerät wird meist in Verbindung mit Hardware
wie Laufwerken, Druckern, Grafikkarten oder Tastaturen gebraucht.
Der Großteil der Meldungen, die beim Booten von FreeBSD angezeigt
werden, beziehen sich auf gefundene Geräte. Sie können sich
die Bootmeldungen später in /var/run/dmesg.boot
ansehen.Gerätenamen, die Sie wahrscheinlich in den Bootmeldungen sehen
werden, sind zum Beispiel acd0, das erste
IDE CD-ROM oder kbd0, die Tastatur.Auf die meisten Geräte wird unter &unix; Systemen über spezielle
Gerätedateien im /dev Verzeichnis
zugegriffen.Anlegen von GerätedateienWenn sie ein neues Gerät zu Ihrem System hinzufügen,
oder die Unterstützung für zusätzliche Geräte
kompilieren, müssen oft ein oder mehrere Gerätedateien
erstellt werden.MAKEDEV SkriptAuf Systemen ohne DEVFS (das sind alle
Systeme vor FreeBSD 5.0) müssen Gerätedateien mit
&man.MAKEDEV.8; wie unten gezeigt angelegt werden:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV ad1Im Beispiel werden alle Gerätedateien für das
zweite IDE Laufwerk angelegt.DEVFS (Gerätedateisystem)Das Gerätedateisystem DEVFS
ermöglicht durch den
Namensraum des Dateisystems Zugriff auf den Namensraum der
Geräte im Kernel. Damit müssen Gerätedateien
nicht mehr extra angelegt werden, sondern werden von
DEVFS verwaltet.Weitere Informationen finden Sie in &man.devfs.5;.DEVFS ist ab &os; 5.0
in der Grundeinstellung aktiviert.BinärformateUm zu verstehen, warum &os; das Format
&man.elf.5; benutzt, müssen Sie
zunächst etwas über die drei gegenwärtig
dominanten ausführbaren Formate
für &unix; Systeme wissen:&man.a.out.5;Das älteste und klassische
Objektformat von &unix; Systemen. Es benutzt einen kurzen,
kompakten Header mit einer magischen Nummer am Anfang, die oft
benutzt wird, um das Format zu charakterisieren
(weitere Details finden Sie unter &man.a.out.5;). Es
enthält drei geladene Segmente: .text, .data und
.bss, sowie eine Symboltabelle und eine
Stringtabelle.COFFDas Objektformat von SVR3. Der Header
enthält nun eine Sectiontable. Man kann
also mit mehr als nur den Sections .text, .data und .bss
arbeiten.&man.elf.5;Der Nachfolger von COFF.
Kennzeichnend sind mehrere Sections und mögliche
32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil:
ELF wurde auch unter der Annahme
entworfen, dass es nur eine ABI (Application
Binary Interface) pro Systemarchitektur geben wird.
Tatsächlich ist diese Annahme falsch – nicht
einmal für die kommerzielle SYSV-Welt (in der es
mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft
sie zu.FreeBSD versucht, dieses Problem zu umgehen, indem
ein Werkzeug bereitgestellt wird, um ausführbare
Dateien im ELF-Format mit
Informationen über die ABI zu versehen, zu der
sie passen. Weitere Informationen finden Sie in der
Manualpage &man.brandelf.1;.FreeBSD kommt aus dem klassischen Lager
und verwendete traditionell das Format &man.a.out.5;, eine
Technik, die bereits über viele BSD-Releases
hinweg eingesetzt und geprüft worden ist. Obwohl es
bereits seit einiger Zeit möglich war, auf einem
FreeBSD-System auch Binaries (und Kernel) im
ELF-Format zu erstellen und
auszuführen, widersetzte FreeBSD sich anfangs dem
Druck, auf ELF als
Standardformat umzusteigen. Warum? Nun, als das
Linux-Lager die schmerzhafte Umstellung auf
ELF durchführte, ging es nicht so
sehr darum, dem ausführbaren Format
a.out zu entkommen, als dem
unflexiblen, auf Sprungtabellen basierten Mechanismus
für Shared-Libraries der die Konstruktion von
Shared-Libraries für Hersteller und Entwickler
gleichermaßen sehr kompliziert machte. Da die
verfügbaren ELF-Werkzeuge eine
Lösung für das Problem mit den Shared-Libraries
anboten und ohnehin generell als ein Schritt
vorwärts angesehen wurden, wurde der Aufwand
für die Umstellung als notwendig akzeptiert und die
Umstellung wurde durchgeführt. Unter FreeBSD ist der
Mechanismus von Shared-Libraries enger an den Stil des
Shared-Library-Mechanismus von Suns &sunos;
angelehnt und von daher sehr einfach zu verwenden.Ja, aber warum gibt es so viele unterschiedliche Formate?In alter, grauer Vorzeit gab es simple Hardware.
Diese simple Hardware unterstützte ein einfaches,
kleines System. a.out war absolut passend
für die Aufgabe, Binaries auf diesem simplen System (eine PDP-11)
darzustellen. Als &unix; von diesem simplen System portiert
wurde, wurde auch das a.out-Format beibehalten,
weil es für die frühen Portierungen auf Architekturen
wie den Motorola 68000 und VAX ausreichte.Dann dachte sich ein schlauer Hardware-Ingenieur,
dass, wenn er Software zwingen könnte, einige
Tricks anzustellen, es ihm möglich wäre, ein
paar Gatter im Design zu sparen, und seinen CPU-Kern
schneller zu machen. Obgleich es dazu gebracht wurde, mit
dieser neuen Art von Hardware (heute als RISC
bekannt) zu arbeiten, war a.out für
diese Hardware schlecht geeignet. Deshalb wurden viele neue
Formate entwickelt, um eine bessere Leistung auf dieser
Hardware zu erreichen, als mit dem begrenzten, simplen
a.out-Format. Dinge wie
COFF, ECOFF und
einige andere obskure wurden erdacht und ihre Grenzen
untersucht, bevor die Dinge sich in Richtung
ELF entwickelten.Hinzu kam, dass die Größe von
Programmen gewaltig wurde und Festplatten sowie
physikalischer Speicher immer noch relativ klein waren.
Also wurde das Konzept von Shared-Libraries geboren. Das
VM-System wurde auch immer fortgeschrittener. Obwohl bei
jedem dieser Fortschritte das
a.out-Format benutzt worden ist,
wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr
gedehnt. Zusätzlich wollte man Dinge dynamisch zur
Ausführungszeit laden, oder Teile ihres Programms
nach der Initialisierung wegwerfen, um Hauptspeicher
oder Swap-Speicher zu sparen. Programmiersprachen
wurden immer fortschrittlicher und man wollte, dass
Code automatisch vor der main-Funktion aufgerufen wird.
Das a.out-Format wurde oft
überarbeitet, um alle diese Dinge zu ermöglichen
und sie funktionierten auch für einige Zeit.
a.out konnte diese Probleme nicht
ohne ein ständiges Ansteigen eines Overheads im Code
und in der Komplexität handhaben. Obwohl
ELF viele dieser Probleme löste,
wäre es sehr aufwändig, ein System umzustellen, das
im Grunde genommen funktionierte. Also musste
ELF warten, bis es aufwändiger war, bei
a.out zu bleiben, als zu
ELF überzugehen.Im Laufe der Zeit haben sich die Erstellungswerkzeuge,
von denen FreeBSD seine Erstellungswerkzeuge abgeleitet
hat (speziell der Assembler und der Loader), in zwei
parallele Zweige entwickelt. Im FreeBSD-Zweig wurden
Shared-Libraries hinzugefügt und einige Fehler
behoben. Das GNU-Team, das diese Programme
ursprünglich geschrieben hat, hat sie umgeschrieben
und eine simplere Unterstützung zur Erstellung von
Cross-Compilern durch beliebiges Einschalten verschiedener
Formate usw. hinzugefügt. Viele Leute wollten
Cross-Compiler für FreeBSD erstellen, aber sie hatten
kein Glück, denn FreeBSD's ältere Sourcen
für as und ld
waren hierzu nicht geeignet. Die neuen
GNU-Werkzeuge (binutils) unterstützen
Cross-Compilierung, ELF, Shared-Libraries,
C++-Erweiterungen und mehr. Weiterhin geben viele
Hersteller ELF-Binaries heraus und es
ist gut, wenn FreeBSD sie ausführen kann.ELF ist ausdrucksfähiger als
a.out und gestattet eine bessere Erweiterbarkeit
des Basissystems. Die ELF-Werkzeuge werden
besser gewartet und bieten Unterstützung von
Cross-Compilierung, was für viele Leute wichtig ist.
ELF mag etwas langsamer sein, als
a.out, aber zu versuchen, das zu messen,
könnte schwierig werden. Es gibt unzählige Details, in
denen sich die beiden Formate unterscheiden, wie sie Pages
abbilden, Initialisierungscode handhaben usw. Keins davon
ist sehr wichtig, aber es sind Unterschiede. Irgendwann
wird die Unterstützung für Programme im
a.out-Format aus dem
GENERIC-Kernel entfernt werden.
Wenn es dann keinen oder kaum noch
Bedarf für die Unterstützung dieses Formates
gibt, werden die entsprechenden Routinen ganz entfernt
werden.Weitere InformationenManualpagesManualpagesDie umfassendste Dokumentation rund um FreeBSD gibt es in
Form von Manualpages. Annähernd jedes Programm im System
bringt eine kurze Referenzdokumentation mit, die die
grundsätzliche Funktion und verschiedene Parameter
erklärt. Diese Dokumentationen kann man mit dem
man Kommando benutzen. Die Benutzung des
man Kommandos ist einfach:&prompt.user; man KommandoKommando ist der Name des Kommandos,
über das Sie etwas erfahren wollen. Um beispielsweise
mehr über das Kommando ls zu lernen,
geben Sie ein:&prompt.user; man lsDie Online-Dokumentation ist in nummerierte Sektionen
unterteilt:Benutzerkommandos.Systemaufrufe und Fehlernummern.Funktionen der C Bibliothek.Gerätetreiber.Dateiformate.Spiele und andere Unterhaltung.Verschiedene Informationen.Systemverwaltung und -Kommandos.Kernel Entwickler.In einigen Fällen kann dasselbe Thema in mehreren
Sektionen auftauchen. Es gibt zum Beispiel ein chmod
Benutzerkommando und einen chmod()
Systemaufruf. In diesem Fall können Sie dem
man Kommando
sagen, aus welcher Sektion Sie die Information erhalten
möchten, indem Sie die Sektion mit angeben:&prompt.user; man 1 chmodDies wird Ihnen die Manualpage für das Benutzerkommando
chmod zeigen. Verweise auf eine Sektion
der Manualpages werden traditionell in Klammern
gesetzt. So bezieht sich &man.chmod.1; auf das
Benutzerkommando chmod und mit
&man.chmod.2; ist der Systemaufruf gemeint.Das ist nett, wenn Sie den Namen eines Kommandos wissen,
und lediglich wissen wollen, wie es zu benutzen ist. Aber was
tun Sie, wenn Sie Sich nicht an den Namen des Kommandos
erinnern können? Sie können mit man
nach Schlüsselbegriffen in den
Kommandobeschreibungen zu suchen, indem Sie den Parameter
benutzen:&prompt.user; man -k mailMit diesem Kommando bekommen Sie eine Liste der
Kommandos, deren Beschreibung das Schlüsselwort
mail enthält. Diese Funktionalität
erhalten Sie auch, wenn Sie das Kommando apropos
benutzen.Nun, Sie schauen Sich alle die geheimnisvollen Kommandos
in /usr/bin an, haben aber nicht den
blassesten Schimmer, wozu die meisten davon gut sind? Dann
rufen Sie doch einfach das folgende Kommando auf:&prompt.user; cd /usr/bin
&prompt.user; man -f *Dasselbe erreichen Sie durch Eingabe von:&prompt.user; cd /usr/bin
&prompt.user; whatis *GNU Info DateienFreeBSD enthält viele Anwendungen und Utilities
der Free Software Foundation (FSF). Zusätzlich zu den
Manualpages bringen diese Programme ausführlichere
Hypertext-Dokumente (info genannt) mit,
welche man sich mit dem Kommando info
ansehen kann. Wenn Sie emacs
installiert haben, können Sie auch dessen info-Modus
benutzen.Um das Kommando &man.info.1; zu benutzen, geben Sie
einfach ein:&prompt.user; infoEine kurze Einführung gibt es mit
h; eine Befehlsreferenz erhalten Sie durch
Eingabe von: ?.
diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
index 39117dde59..2c06213584 100644
--- a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
@@ -1,630 +1,630 @@
BibliografieÜbersetzt von &a.de.gruender;Während die Manualpages die endgültige Auskunft
über bestimmte Teile des FreeBSD-Betriebssystems geben, so
können sie jedoch nicht darstellen, wie man die einzelnen Teile
zusammenfügt, um ein vollständig laufendes Betriebssystem
herzustellen. Daher gibt es keinen Ersatz für ein gutes Buch
über die Administration von &unix; Systemen und ein gutes
Benutzerhandbuch.In der Regel handelt es sich im folgenden Kapitel um englische
Ausgaben der genannten Werke. Übersetzungen oder Ausgaben in
anderen Sprachen sind mit entsprechenden Hinweisen versehen.Bücher und Magazine speziell für FreeBSDInternationale Bücher und
Magazine:
Using FreeBSD (in chinesischer Sprache).FreeBSD for PC 98'ers (in japanischer Sprache), herausgegeben von
SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.FreeBSD (in japanischer Sprache), herausgegeben von CUTT. ISBN
4-906391-22-2 C3055 P2400E.Complete Introduction to FreeBSD (in Japanese), published by Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E.
Personal UNIX Starter Kit FreeBSD (in japanischer Sprache),
herausgegeben von ASCII.
ISBN 4-7561-1733-3 P3000E.FreeBSD Handbook (japanische Übersetzung), herausgegeben
von ASCII.
ISBN 4-7561-1580-2 P3800E.FreeBSD mit Methode (in deutscher Sprache), herausgegeben von
Computer und Literatur Verlag
/Vertrieb Hanser, 1998.
ISBN 3-932311-31-0.FreeBSD 4 -
Installieren, Konfigurieren, Administrieren (in
deutscher Sprache), herausgegeben von Computer und Literatur Verlag, 2001.
ISBN 3-932311-88-4.FreeBSD 5 –
Installieren, Konfigurieren, Administrieren (in
deutscher Sprache), herausgegeben von Computer und Literatur Verlag,
2001. ISBN 3-936546-06-1.FreeBSD
de Luxe (in German), published by
Verlag Modere Industrie,
2003. ISBN 3-8266-1343-0.
FreeBSD Install and Utilization Manual (in japanischer Sprache),
herausgegeben von
Mainichi Communications Inc..Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with FreeBSD
(in indonesischer Sprache), herausgegeben von Elex Media Komputindo.Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with
FreeBSD (auf indonesisch), herausgegeben
von Elex Media Komputindo.Englischsprachige Bücher und
Magazine:Absolute BSD: The
Ultimate Guide to FreeBSD, herausgegeben von
No Starch Press,
2002. ISBN: 1886411743
The Complete FreeBSD, herausgegeben von
O'Reilly, 2003.
ISBN: 0596005164The
FreeBSD Corporate Networker's Guide, herausgegeben von
Addison-Wesley,
2002. ISBN: 0201704811
FreeBSD: An Open-Source Operating System for Your Personal
Computer, herausgegeben von The Bit Tree Press, 2001.
ISBN: 0971204500Teach Yourself FreeBSD in 24 Hours, herausgegeben von
Sams, 2002.
ISBN: 0672324245FreeBSD unleashed, herausgegeben von
Sams, 2002.
ISBN: 0672324563FreeBSD: The Complete Reference, herausgegeben von
McGrawHill, 2003.
ISBN: 0072224096 HandbücherComputer Systems Research Group, UC Berkeley. 4.4BSD
User's Reference Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-075-9Computer Systems Research Group, UC Berkeley. 4.4BSD
User's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-076-7UNIX in a Nutshell. O'Reilly &
Associates, Inc., 1990. ISBN 093717520XMui, Linda. What You Need To Know When You Can't Find
Your UNIX System Administrator. O'Reilly &
Associates, Inc., 1995. ISBN 1-56592-104-6Die Ohio State
University hat ein UNIX
Introductory Course veröffentlicht, welcher auch
online im HTML- und PostScriptformat verfügbar ist.Eine italienische Übersetzung
ist Teil des &os; Italian Documentation Projects.Jpman Project, Japan
FreeBSD Users Group. FreeBSD User's
Reference Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0088-4 P3800E.Edinburgh
University hat einen Online Guide für
Anfänger in Sachen UNIX geschrieben.Administrations-AnleitungenAlbitz, Paul and Liu, Cricket. DNS and
BIND, 4th Ed. O'Reilly & Associates, Inc., 2001.
ISBN 1-59600-158-4Computer Systems Research Group, UC Berkeley. 4.4BSD
System Manager's Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-080-5Costales, Brian, et al. Sendmail, 2nd Ed.
O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0Frisch, Æleen. Essential System
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1995. ISBN 1-56592-127-5Hunt, Craig. TCP/IP Network
Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997.
ISBN 1-56592-322-7Nemeth, Evi. UNIX System Administration
Handbook. 3rd Ed. Prentice Hall, 2000. ISBN
0-13-020601-6Stern, Hal Managing NFS and NIS O'Reilly
& Associates, Inc., 1991. ISBN 0-937175-75-7Jpman Project, Japan
FreeBSD Users Group. FreeBSD System
Administrator's Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0109-0 P3300E.Dreyfus, Emmanuel. Cahiers
de l'Admin: BSD (in French), Eyrolles, 2003.
ISBN 2-212-11244-0.ProgrammierhandbücherAsente, Paul, Paul, Converse, Diana, and Swick, Ralph.
X Window System Toolkit. Digital Press,
1998. ISBN 1-55558-178-1Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Reference Manual. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-078-3Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-079-1Harbison, Samuel P. and Steele, Guy L. Jr. C: A
Reference Manual. 4rd ed. Prentice Hall, 1995.
ISBN 0-13-326224-3Kernighan, Brian and Dennis M. Ritchie. The C
Programming Language.. PTR Prentice Hall, 1988.
ISBN 0-13-110362-9Lehey, Greg. Porting UNIX Software.
O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7Plauger, P. J. The Standard C Library.
Prentice Hall, 1992. ISBN 0-13-131509-9Spinellis, Diomidis.
Code
Reading: The Open Source Perspective.
Addison-Wesley, 2003. ISBN 0-201-79940-5Stevens, W. Richard. Advanced Programming in the UNIX
Environment. Reading, Mass. : Addison-Wesley, 1992.
ISBN 0-201-56317-7Stevens, W. Richard. UNIX Network
Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN
0-13-490012-XWells, Bill. Writing Serial Drivers for UNIX.
Dr. Dobb's Journal. 19(15), December 1994.
pp68-71, 97-99.Betriebssystem-InternaAndleigh, Prabhat K. UNIX System
Architecture. Prentice-Hall, Inc., 1990. ISBN
0-13-949843-5Jolitz, William. Porting UNIX to the 386.
Dr. Dobb's Journal. January 1991-July
1992.Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
John Quarterman The Design and Implementation of the
4.3BSD UNIX Operating System. Reading, Mass. :
Addison-Wesley, 1989. ISBN 0-201-06196-1Kapitel 2 dieses Buchs ist Teil des FreeBSD Documentation
Projects und online
erhältlich. Kapitel 9 findet sich
hier.Leffler, Samuel J., Marshall Kirk McKusick, The Design
and Implementation of the 4.3BSD UNIX Operating System: Answer
Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
0-201-54629-9McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
John Quarterman. The Design and Implementation of the
4.4BSD Operating System. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4Stevens, W. Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, Mass. : Addison-Wesley,
1996. ISBN 0-201-63346-9Schimmel, Curt. Unix Systems for Modern
Architectures. Reading, Mass. : Addison-Wesley, 1994.
ISBN 0-201-63338-8Stevens, W. Richard. TCP/IP Illustrated, Volume 3:
TCP for Transactions, HTTP, NNTP and the UNIX Domain
Protocols. Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-63495-3Vahalia, Uresh. UNIX Internals -- The New
Frontiers. Prentice Hall, 1996. ISBN
0-13-101908-2Wright, Gary R. and W. Richard Stevens. TCP/IP
Illustrated, Volume 2: The Implementation. Reading,
Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-XSicherheits-AnleitungCheswick, William R. and Steven M. Bellovin. Firewalls
and Internet Security: Repelling the Wily Hacker.
Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-63357-4Garfinkel, Simson and Gene Spafford.
Practical UNIX & Internet Security.
2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
1-56592-148-8Garfinkel, Simson. PGP Pretty Good
Privacy O'Reilly & Associates, Inc., 1995. ISBN
1-56592-098-8Hardware-AnleitungAnderson, Don and Tom Shanley. Pentium Processor
System Architecture. 2nd Ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-40992-5Ferraro, Richard F. Programmer's Guide to the EGA,
VGA, and Super VGA Cards. 3rd ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-62490-7Die Intel Corporation veröffentlicht Dokumentationen
Ihrer CPUs, Chipsets und Standards auf ihrer developer web site,
normalerweise als PDF-Dateien.Shanley, Tom. 80486 System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40994-1Shanley, Tom. ISA System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40996-8Shanley, Tom. PCI System Architecture.
4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
0-201-30974-2Van Gilluwe, Frank. The Undocumented PC,
2nd Ed.
Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
0-201-47950-8Messmer, Hans-Peter. The Indispensable PC Hardware
Book, 4th Ed.
Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
0-201-59616-4&unix; GeschichteLion, John Lion's Commentary on UNIX, 6th Ed. With
Source Code. ITP Media Group, 1996. ISBN
1573980137Raymond, Eric S. The New Hacker's Dictionary, 3rd
edition. MIT Press, 1996. ISBN
0-262-68092-0. Auch bekannt als das Jargon
FileSalus, Peter H. A quarter century of UNIX.
Addison-Wesley Publishing Company, Inc., 1994. ISBN
0-201-54777-5Simon Garfinkel, Daniel Weise, Steven Strassmann. The
UNIX-HATERS Handbook. IDG Books Worldwide, Inc.,
1994. ISBN 1-56884-203-1Don Libes, Sandy Ressler Life with UNIX
— special edition. Prentice-Hall, Inc., 1989. ISBN
0-13-536657-7The BSD family tree.
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree">
oder unter /usr/share/misc/bsd-family-tree
auf jedem neueren FreeBSD-System.The BSD Release Announcements collection.
1997. Networked Computer Science Technical Reports
Library.
Old BSD releases from the Computer Systems Research
group (CSRG).
:
Das Paket mit 4 CD-ROMs enthält alle BSD-Versionen von 1BSD
bis 4.4BSD und 4.4BSD-Lite2 (unglücklicherweise nicht
2.11BSD). Die letzte CD beinhaltet auch die finalen Sourcen
inclusive den SCCS Dateien.Magazine und JournaleThe C/C++ Users Journal. R&D
Publications Inc. ISSN 1075-2838Sys Admin — The Journal for UNIX System
Administrators Miller Freeman, Inc., ISSN
1061-2688freeX – Das Magazin für Linux –
BSD – UNIX (in deutscher Sprache),
Computer- und Literaturverlag GmbH,
ISSN 1436-7033
diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml
index 5b14a7c685..d3e41c740d 100644
--- a/de_DE.ISO8859-1/books/handbook/book.sgml
+++ b/de_DE.ISO8859-1/books/handbook/book.sgml
@@ -1,274 +1,275 @@
%man;
%bookinfo;
%freebsd;
%translators;
%chapters;
%authors;
%teams;
%mailing-lists;
%newsgroups;
%de-trademarks;
%trademarks;
%txtfiles;
-
+
%pgpkeys;
]>
Das FreeBSD-HandbuchThe FreeBSD German Documentation Projectde-bsd-translators@de.FreeBSD.orgFebruar 19991995199619971998199920002001200220032004The FreeBSD German Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Willkommen bei FreeBSD! Dieses Handbuch beschreibt die
Installation und den täglichen Umgang mit
FreeBSD &rel2.current;-RELEASE und
FreeBSD &rel.current;-RELEASE.
Das Handbuch ist jederzeit unter Bearbeitung
und das Ergebnis der Arbeit vieler Einzelpersonen.
Manche Kapitel existieren noch
nicht und andere Kapitel müssen auf den neusten Stand
gebracht werden.
Wenn Sie an diesem Projekt mithelfen möchten, senden Sie bitte
- eine E-Mail an die Mailingliste &a.de.translators;. Die aktuelle
- Version des Handbuchs ist immer auf dem
- FreeBSD-Webserver
+ eine E-Mail an die Mailingliste &a.de.translators;. Die
+ aktuelle
+ Version des Handbuchs ist immer auf dem
+ FreeBSD-Webserver
verfügbar.
Es kann außerdem in verschiedenen Formaten und in komprimierter
Form vom FreeBSD-FTP-Server
oder einem der vielen
Spiegel
herunter geladen werden.
Vielleicht möchten Sie das Handbuch auch
- durchsuchen.
+ durchsuchen.
&chap.preface;
Erste SchritteDieser Teil des FreeBSD-Handbuchs richtet sich an Benutzer
und Administratoren für die FreeBSD neu ist. Diese
Kapitelgeben Ihnen eine Einführung in FreeBSD,geleiten Sie durch den Installationsprozess,erklären Ihnen die Grundlagen
von &unix; Systemen,zeigen Ihnen, wie Sie die Fülle der erhältlichen
Anwendungen Dritter installieren undführen Sie in X, der Benutzeroberfläche
von &unix; Systemen ein. Es wird gezeigt, wie Sie den
Desktop konfigurieren, um effektiver arbeiten
zu können.Wir haben uns bemüht, Referenzen auf weiter vorne liegende
Textteile auf ein Minimum zu beschränken, so dass Sie
diesen Teil des Handbuchs ohne viel Blättern durcharbeiten
können.System AdministrationDie restlichen Kapitel behandeln alle Aspekte der FreeBSD
Systemadministration. Am Anfang jedes Kapitels finden Sie eine
Zusammenfassung, die beschreibt, was Sie nach dem Durcharbeiten des
Kapitels gelernt haben. Weiterhin werden die Voraussetzungen
beschrieben, die für das Durcharbeiten des Kapitels
erforderlich sind.Diese Kapitel sollten Sie lesen, wenn Sie die Informationen
darin benötigen. Sie brauchen Sie nicht in einer bestimmten
Reihenfolge zu lesen, noch müssen Sie die Kapitel lesen, bevor
Sie anfangen, FreeBSD zu benutzen.
-
+
Anhang
&chap.colophon;
diff --git a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
index c219419b07..8d2f0f3bf0 100644
--- a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
@@ -1,877 +1,877 @@
Hans-ChristianEbkeÜbersetzt von FreeBSDs BootvorgangÜbersichtbootenBootstrapDas Starten des Computers und das Laden des Betriebssystems
wird im Allgemeinen als Bootstrap-Vorgang
bezeichnet, oder einfach als Booten. FreeBSDs
Bootvorgang ermöglicht große Flexibilität, was
das Anpassen dessen anbelangt, was passiert, wenn das System
gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
die auf demselben Computer installiert sind oder verschiedenen
Versionen desselben Betriebssystems oder installierten Kernels
gewählt werden.Dieses Kapitel zeigt die zur Verfügung stehenden
Konfigurationsmöglichkeiten und wie man den Bootvorgang anpasst.
Dies schließt alles ein, bis der Kernel gestartet worden ist,
der dann alle Geräte gefunden hat und &man.init.8; gestartet hat.
Falls Sie sich nicht ganz sicher sind, wann dies passiert:
Es passiert, wenn die Farbe des Textes während des Bootvorgangs
von weiß zu Hellgrau wechselt.Dieses Kapitel informiert über folgende Punkte:Die Komponenten des FreeBSD-Bootvorgangs und deren
Interaktion.Die Optionen, mit denen Sie den FreeBSD-Bootvorgang steuern
können.Wie Geräte mit &man.device.hints.5; konfiguriert
werden.nur x86Dieses Kapitel erklärt den Bootvorgang von FreeBSD auf
Intel X86 Plattformen.Das Problem des BootensWenn der Computer eingeschaltet wird und das Betriebssystem
gestartet werden soll, entsteht ein interessantes Dilemma, denn der
Computer weiß per Definition nicht, wie er irgendetwas tut, bis
das Betriebssystem gestartet wurde. Das schließt das Starten von
Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
der Computer kein Programm von der Festplatte starten kann, sich
das Betriebssystem aber dummerweise genau dort befindet, wie
wird es dann gestartet?Dieses Problem ähnelt einer Geschichte des Barons von
Münchhausen. Dort war eine Person in einen Sumpf gefallen
und hat sich selbst an den Riemen seiner Stiefel (engl.
bootstrap) herausgezogen. In den
jungen Jahren des Computerzeitalters wurde mit dem Begriff
Bootstrap dann die Technik das Betriebssystem zu laden bezeichnet
und wurde hinterher mit booten abgekürzt.Auf x86 Plattformen ist das BIOS (Basic Input/Output System)
dafür verantwortlich, das Betriebssystem zu laden. Dazu
liest das BIOS den Master Bootsektor (MBR; Master Boot Record)
aus, der sich an einer bestimmten Stelle auf der
Festplatte/Diskette befinden muss. Das BIOS kann den MBR
selbstständig laden und ausführen und geht davon aus,
dass der die restlichen Dinge, die für das Laden des
Betriebssystems notwendig sind, selber erledigen kann.BIOSBasic Input/Output SystemFalls nur ein Betriebssystem installiert ist, ist der
Standard MBR ausreichend. Dieser MBR sucht nach dem ersten
bootbaren Slice auf dem Laufwerk und führt ihn aus, um das
restliche Betriebssystem zu laden.Falls mehrere Betriebssysteme installiert sind, sollte
man einen anderen MBR installieren, der eine Liste der
verfügbaren Betriebssysteme anzeigt und einen wählen
lässt, welches man booten möchte. FreeBSD liegt ein
solcher MBR bei und andere Hersteller bieten Alternativen
an.Das restliche FreeBSD-Bootstrap-System ist in drei Phasen
unterteilt. Die erste Phase wird vom MBR durchgeführt, der
gerade genug Funktionalität besitzt um den Computer in
einen bestimmten Status zu verhelfen und die zweite Phase zu
starten. Die zweite Phase führt ein wenig mehr Operationen
durch und startet schließlich die dritte Phase, die das Laden
des Betriebssystems abschließt. Der ganze Prozess wird in drei
Phasen durchgeführt, weil der PC Standard die Größe
der Programme, die in Phase eins und zwei ausgeführt
werden, limitiert. Durch das Verketten der durchzuführenden
Aufgaben wird es FreeBSD möglich, ein sehr flexibles
Ladeprogramm zu besitzen.KernelinitAls nächstes wird der Kernel gestartet, der zunächst nach
Geräten sucht und sie für den Gebrauch
initialisiert. Nach dem Booten des Kernels übergibt dieser
die Kontrolle an den Benutzer Prozess &man.init.8;, der erst
sicherstellt, dass alle Laufwerke benutzbar sind und die
Ressourcen Konfiguration auf Benutzer Ebene startet. Diese
wiederum mountet Dateisysteme, macht die Netzwerkkarten für
die Kommunikation mit dem Netzwerk bereit und startet generell
alle Prozesse, die auf einem FreeBSD-System normalerweise beim
Hochfahren gestartet werden.Der MBR, und die Boot-Phasen Eins, Zwei und DreiDer MBR, /boot/boot0Master Boot Record (MBR)Eine Kopie des Master Boot Records (MBR)
von FreeBSD befindet sich in /boot/boot0.
Der richtige MBR wird in einem nicht benutzbaren Teil des Laufwerks
gespeichert.boot0 ist ein ziemlich simples
Programm, und zwar aus dem einfachen Grund, dass der MBR nur
512 Bytes groß sein darf. Falls Sie den FreeBSD-MBR
installiert haben und sich mehrere Betriebssysteme auf Ihrer
Festplatte befinden, werden Sie beim Starten des Computers
eine Anzeige sehen, ähnlich der Folgenden:boot0-ScreenshotF1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2Diverse Betriebssysteme, insbesondere &windows; 95 und
Nachfolger, überschreiben den MBR ungefragt mit ihrem
eigenen. Falls einem dies passiert sein sollte, kann man mit
folgendem Kommando den momentanen MBR durch den FreeBSD-MBR
ersetzen:&prompt.root; fdisk -B -b /boot/boot0 GerätWobei Gerät das Gerät ist,
von dem gebootet wird, also z.B. ad0
für die erste IDE-Festplatte,
ad2 für die erste IDE-Festplatte
am zweiten IDE-Controller, da0
für die erste SCSI-Festplatte, usw.Wenn Sie auf demselben Rechner FreeBSD und Linux benutzen
möchten, können Sie den FreeBSD-Bootmanager oder
LILO benutzen. Wollen Sie den MBR von
LILO benutzen, wählen Sie
bei der FreeBSD-Installation im Bootmanager Menü
aus. Damit
Sie das FreeBSD-System aus LILO booten
können, tragen Sie in /etc/lilo.conf die
folgenden Zeilen ein:other=/dev/diskXY
table=/dev/diskX
loader=/boot/chain.b
label=FreeBSDErsetzen Sie dabei diskXY mit
hdXY, wenn Sie
ein IDE-Laufwerk benutzen, oder mit
sdXY, wenn Sie
ein SCSI-Laufwerk benutzen. Mit
XY geben Sie die Slice des FreeBSD
Systems, zum Beispiel /dev/hdb1, an. Wenn sich
beide Betriebssysteme auf derselben Platte befinden, können
Sie auch weglassen. Mit
geben Sie das Gerät an, auf dem die
Partitionstabelle liegt, /dev/hdb bezeichnet
zum Beispiel das zweite IDE-Laufwerk. Die Änderungen
können Sie nun mit /sbin/lilo -v
aktivieren. Achten Sie dabei auf die Bildschirmausgabe, die den
Erfolg der Operation anzeigt.Phase Eins, /boot/boot1 und Phase Zwei,
/boot/boot2Im Prinzip sind die erste und die zweite Phase Teile
desselben Programms, im selben Bereich auf der
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie aufgeteilt, aber man installiert sie eigentlich
generell zusammen.Sie befinden sich beide im Bootsektor des Boot-Slices,
wo boot0 und jedes andere
Programm im MBR das Programm erwartet, das
den weiteren Bootvorgang durchführt. Die Dateien im
Verzeichnis /boot sind nur Kopien der
eigentlichen Dateien, die sich außerhalb FreeBSDs Dateisystems
befinden.boot1 ist ebenfalls ein sehr simples
Programm, da es auch nur 512 Bytes groß sein darf, und es
besitzt gerade genug Funktionalität um FreeBSDs
disklabel, das Informationen über
den Slice enthält, auszulesen um
boot2 zu finden und
auszuführen.boot2 ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität um
Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.Da der Loader einen
weitaus größeren Funktionsumfang hat und eine schöne
und einfach zu bedienende Boot-Konfigurations-Schnittstelle zur
Verfügung stellt, wird er gewöhnlich von
boot2 anstatt des Kernels
gestartet. Früher war es jedoch dazu da den Kernel direkt
zu starten.boot2-Screenshot>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:Um das installierte
boot1 und boot2 zu
ersetzen, benutzt man &man.disklabel.8;:&prompt.root; disklabel -B SliceWobei Slice das Laufwerk und die Slice
darstellt, von dem gebootet wird, beispielsweise
ad0s1 für die erste Slice
auf der ersten IDE-Festplatte.Dangerously Dedicated ModeWenn man nur den Festplatten-Namen, also
z.B. ad0, in &man.disklabel.8;
benutzt wird eine "dangerously dedicated disk" erstellt,
ohne Slices. Das ist ein Zustand, den man meistens nicht
hervorrufen möchte. Aus diesem Grund sollte man ein
&man.disklabel.8; Kommando noch einmal prüfen, bevor
man Return betätigt.Phase drei, /boot/loaderboot-loaderDer boot-loader ist der letzte von drei Schritten im
Bootstrap Prozess und kann im Dateisystem normalerweise unter
/boot/loader gefunden werden.Der Loader soll eine benutzerfreundliche
Konfigurations-Schnittstelle sein mit einem einfach zu
bedienenden eingebauten Befehlssatz, ergänzt durch einen
umfangreichen Interpreter mit einem komplexeren
Befehlssatz.Loader AblaufDer Loader sucht während seiner Initialisierung
nach Konsolen und Laufwerken, findet heraus, von welchem
Laufwerk er gerade bootet und setzt dementsprechend
bestimmte Variablen. Dann wird ein Interpreter gestartet,
der Befehle interaktiv oder von einem Skript empfangen
kann.loaderloader KonfigurationDanach liest der Loader die Datei
/boot/loader.rc aus, welche ihn
standardmäßig anweist
/boot/defaults/loader.conf zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
festgelegt werden und wiederum
/boot/loader.conf für lokale
Änderungen an diesen Variablen ausgelesen
wird. Anschließend arbeitet dann
loader.rc entsprechend dieser Variablen
und lädt die ausgewählten Module und den
gewünschten Kernel.In der Voreinstellung wartet der Loader
10 Sekunden lang auf eine Tastatureingabe und bootet den
Kernel, falls keine Taste betätigt wurde. Falls doch
eine Taste betätigt wurde wird dem Benutzer eine
Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
bedienenden Befehlssatz entgegen, der es dem Benutzer
erlaubt, Änderungen an Variablen vorzunehmen, Module zu
laden, alle Module zu entladen oder schließlich zu booten
bzw. neu zu booten.Die eingebauten Befehle des LoadersHier werden nur die gebräuchlichsten Befehle
bearbeitet. Für eine erschöpfende Diskussion aller
verfügbaren Befehle konsultieren Sie bitte
&man.loader.8;.autoboot SekundenEs wird mit dem Booten des Kernels fortgefahren,
falls keine Taste in der gegebenen Zeitspanne
betätigt wurde. In der gegebenen Zeitspanne, Vorgabe
sind 10 Sekunden, wird ein Countdown angezeigt.boot
-optionsKernelnameBewirkt das sofortige Booten des Kernels mit den
gegebenen Optionen, falls welche angegeben wurden, und
mit den angegebenen Kernel, falls denn einer angegeben
wurde.boot-confBewirkt die automatische Konfiguration der Module,
abhängig von den entsprechenden Variablen. Dieser
Vorgang ist identisch zu dem Vorgang, den der Bootloader
ausführt und daher nur sinnvoll, wenn zuvor
unload benutzt wurde und Variablen
(gewöhnlich kernel) verändert
wurden.help
ThemaZeigt die Hilfe an, die zuvor aus der Datei
/boot/loader.help gelesen
wird. Falls index als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.include Dateiname
…Verarbeitet die angegebene Datei. Das Einlesen und
Interpretieren geschieht Zeile für Zeile und wird im Falle eines
Fehlers umgehend unterbrochen.load TypDateinameLädt den Kernel, das Kernel-Modul, oder die Datei
des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
der Datei übergeben.ls PfadListet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
wurde. Die Option bewirkt, dass die
Dateigrössen ebenfalls angezeigt werden.lsdev Listet alle Geräte auf, für die Module geladen
werden können. Die Option bewirkt
eine detailreichere Ausgabe.lsmod Listet alle geladenen Module auf. Die Option
bewirkt eine detailreichere
Ausgabe.more DateinameZeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle LINES Zeilen gemacht
wird.rebootBewirkt einen umgehenden Neustart des Systems.set Variableset
Variable=WertSetzt die Umgebungsvariablen des Loaders.unloadEntlädt sämtliche geladenen Module.Beispiele für die Loader BedienungHier ein paar praktische Beispiele für die Bedienung
des Loaders.Single-User ModusUm den gewöhnlichen Kernel im Single-User Modus zu
starten:boot -sUm alle gewöhnlichen Kernelmodule zu entladen und dann
nur den alten (oder jeden beliebigen anderen) Kernel zu
laden:kernel.oldunloadload kernel.oldEs kann kernel.GENERIC verwendet
werden, um den allgemeinen, Kernel zu bezeichnen, der
vorinstalliert wird. kernel.old
bezeichnet den Kernel, der vor dem aktuellen installiert
war (falls man einen neuen Kernel compiliert und
installiert hat, zum Beispiel).Der folgende Befehl lädt die gewöhnlichen Module mit
einem anderen Kernel:unloadset kernel="kernel.old"boot-confFolgendes lädt ein Kernelkonfigurations-Skript (ein
automatisiertes Skript, dass dasselbe tut, was der
Benutzer normalerweise von Hand an der Eingabeaufforderung
durchführen würde):load -t userconfig_script /boot/kernel.confKernel Interaktion während des BootprozessesKernelboot interactionWenn der Kernel einmal geladen ist, entweder durch den Loader (die Standardmethode) oder
durch boot2 (den Loader
umgehend), verhält sich gemäß seiner Boot-Flags, falls es
welche gibt.KernelbootflagsKernel Boot-FlagsEs folgt eine Auflistung der gebräuchlichsten
Boot-Flags:Bewirkt, dass der Benutzer während der
Kernel-Initialisierung gefragt wird, welches Gerät als
Root-Dateisystem gemounted werden soll.Es wird von CD-ROM gebootet.UserConfig, das Boot-Zeit Konfigurationsprogramm,
wird gestartet.Bewirkt den Start des Single-User Modus.Zeigt mehr Informationen während des Starten des
Kernels an.Andere Boot-Flags sind in der Hilfeseite
&man.boot.8; erläutert.TomRhodesBeigetragen von device.hintsKonfiguration von GerätenDiese Funktion steht erst ab FreeBSD 5.0 zur
Verfügung.Der Boot-Loader liest während des Systemstarts die Datei
&man.device.hints.5;, die Variablen, auch device hints
genannt, zur Konfiguration von Geräten enthält.Die Variablen können auch mit Kommandos in der Phase 3 des Boot-Loaders bearbeitet
werden. Neue Variablen werden mit set gesetzt,
unset löscht schon definierte Variablen und
show zeigt Variablen an. Variablen aus
/boot/device.hints können zu diesem Zeitpunkt
überschrieben werden. Die hier durchgeführten Änderungen
sind nicht permanent und beim nächsten Systemstart nicht mehr
gültig.Nach dem Systemstart können alle Variablen mit &man.kenv.1;
angezeigt werden.Pro Zeile enthält /boot/device.hints eine
Variable. Kommentare werden, wie üblich, durch
# eingeleitet. Die verwendete Syntax
lautet:hint.driver.unit.keyword="value"Der Boot-Loader verwendet die nachstehende Syntax:set hint.driver.unit.keyword=valueDer Gerätetreiber wird mit driver,
die Nummer des Geräts mit unit
angegeben. keyword ist eine Option aus
der folgenden Liste:: Gibt den Bus, auf dem sich das
Gerät befindet, an.: Die Startadresse des
I/O-Bereichs.: Gibt die zu verwendende
Unterbrechungsanforderung (IRQ) an.: Die Nummer des DMA Kanals.: Die physikalische Speicheradresse des
Geräts.: Setzt verschiedene
gerätespezifische Optionen.: Deaktiviert das Gerät, wenn
der Wert auf 1 gesetzt wird.Ein Gerätetreiber kann mehr Optionen, als die hier
beschriebenen, besitzen oder benötigen. Schlagen Sie die
Optionen bitte in der Online-Hilfe des Treibers nach. Weitere
Informationen erhalten Sie in &man.device.hints.5;, &man.kenv.1;,
&man.loader.conf.5; und &man.loader.8;.initInit: Initialisierung der Prozess-KontrolleNachdem der Kernel den Bootprozess abgeschlossen hat,
übergibt er die Kontrolle an den Benutzer-Prozess
&man.init.8;. Dieses Programm befindet sich in
/sbin/init, oder dem Pfad, der durch die
Variable init_path im Loader
spezifiziert wird.Der automatische Reboot-VorgangDer automatische Reboot-Vorgang stellt sicher, dass alle
Dateisysteme des Systems konsistent sind. Falls dies nicht der
Fall ist und die Inkonsistenz nicht durch
&man.fsck.8; behebbar ist, schaltet
&man.init.8; das System in den Single-User Modus, damit der
Systemadministrator sich des Problems annehmen kann.Der Single-User ModusSingle-User ModusKonsoleDas Schalten in diesen Modus kann erreicht werden durch den automatischen
Reboot-Vorgang, durch das Booten mit der Option
oder das Setzen der
boot_single Variable in
Loader.Weiterhin kann der Single-User Modus aus dem Mehrbenutzer Modus heraus durch
den Befehl &man.shutdown.8; ohne die reboot
() oder halt () Option
erreicht werden.
Falls die System-Konsole (console) in
/etc/ttys auf insecure
(dt.: unsicher) gesetzt ist, fordert das System allerdings zur
Eingabe des Passworts von root auf,
bevor es den Single-User Modus aktiviert.Auf insecure gesetzte Konsole in
/etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureEine Konsole sollte auf insecure
gesetzt sein, wenn die physikalische Sicherheit der Konsole
nicht gegeben ist und sichergestellt werden soll, dass nur
Personen, die das Passwort von root kennen,
den Single-User Modus benutzen können. Es bedeutet nicht,
dass die Konsole "unsicher" laufen wird. Daher sollte man
insecure wählen, wenn man auf Sicherheit
bedacht ist, nicht secure.Mehrbenutzer ModusMehrbenutzer ModusStellt &man.init.8; fest, dass das Dateisystem
in Ordnung ist, oder der Benutzer den Single-User Modus beendet,
schaltet das System in den Mehrbenutzer Modus, in dem dann die
Ressourcen Konfiguration des Systems gestartet wird.rc-DateienRessourcen Konfiguration, rc-DateienDas Ressourcen Konfigurationssystem (engl.
resource configuration, rc)
liest seine Standardkonfiguration von
/etc/defaults/rc.conf und
System-spezifische Details von
/etc/rc.conf. Dann mountet es die
Dateisysteme gemäß /etc/fstab, startet
die Netzwerkdienste, diverse System Daemons und führt
schließlich die Start-Skripten der lokal installierten
Anwendungen aus.Die &man.rc.8; Handbuch Seite ist eine gute Quelle für
Informationen über das Ressourcen Konfigurationssystem und
ebenso über die Skripte an sich.Der Shutdown-VorgangshutdownIm Falle eines regulären Herunterfahrens durch
&man.shutdown.8; führt &man.init.8;
/etc/rc.shutdown aus, sendet dann
sämtlichen Prozessen ein TERM Signal und
schließlich ein KILL Signal an alle Prozesse,
die sich nicht schnell genug beendet haben.FreeBSD-Systeme, die Energieverwaltungsfunktionen
unterstützen, können Sie mit dem Kommando
shutdown -p now ausschalten. Zum Neustart des
Systems benutzen Sie shutdown -r now. Das
Kommando &man.shutdown.8; kann nur von root oder
Mitgliedern der Gruppe operator benutzt
werden. Sie können auch die Kommandos &man.halt.8; und
&man.reboot.8; verwenden. Weitere Informationen finden Sie in den
Hilfeseiten der drei Kommandos.Mit FreeBSD 5.0 müssen Sie die
&man.acpi.4;-Unterstützung im Kernel aktivieren oder das Modul
geladen haben, damit Sie die Energieverwaltungsfunktionen benutzen
können. Mit FreeBSD 4.0 benötigen Sie die
&man.apm.4;-Unterstützung.
diff --git a/de_DE.ISO8859-1/books/handbook/chapters.ent b/de_DE.ISO8859-1/books/handbook/chapters.ent
index e391f434eb..6d3eeb83da 100644
--- a/de_DE.ISO8859-1/books/handbook/chapters.ent
+++ b/de_DE.ISO8859-1/books/handbook/chapters.ent
@@ -1,52 +1,52 @@
-
+
diff --git a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
index 57f52aebb2..9e56201e11 100644
--- a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
@@ -1,2479 +1,3072 @@
ChernLeeGeschrieben von MikeSmithNach einem Tutorium von MattDillonBasiert ebenfalls auf tuning(7) von MartinHeinenÜbersetzt von Konfiguration und TuningÜbersichtSystem-KonfigurationSystem-OptimierungEin korrekt konfiguriertes System kann die Arbeit,
die bei der zukünftigen Pflege und bei Migrationen des Systems
entsteht, erheblich reduzieren. Dieses Kapitel beschreibt die
Konfiguration von &os; sowie Maßnahmen zur Leistungssteigerung
von &os;-Systemen.Nachdem Sie dieses Kapitel durchgearbeitet haben,
werden Sie Folgendes wissen:Wie Sie effizient Dateisysteme und
Swap-Partitionen auf Ihrer Festplatte einrichten.Die Grundlagen der Konfiguration mit
rc.conf und des Systems zum Starten
von Anwendungen in /usr/local/etc/rc.d.Wie Sie Netzwerkkarten konfigurieren und testen.Wie Sie virtuelle Hosts und Netzwerkgeräte
konfigurieren.Wie Sie die verschiedenen Konfigurationsdateien
in /etc benutzen.Wie Sie mit sysctl-Variablen &os;
einstellen können.Wie Sie die Platten-Performance einstellen und Kernel-Parameter
modifizieren können.Bevor Sie dieses Kapitel lesen, sollten Siedie Grundlagen von &unix; und &os; ()
verstehen.Damit vertraut sein, wie Sie die &os;-Quellen aktuell
halten () und wissen, wie Sie einen
Kernel konfigurieren und kompilieren
().Vorbereitende KonfigurationLayout von PartitionenLayout von Partitionen/etc/var/usrPartitionenWenn Sie Dateisysteme mit &man.disklabel.8; oder
&man.sysinstall.8; anlegen, sollten Sie beachten, dass
Festplatten auf Daten in den äußeren Spuren
schneller zugreifen können als auf Daten in den
inneren Spuren. Daher sollten die kleineren oft benutzten
Dateisysteme, wie das Root-Dateisystem oder die Swap-Partition,
an den äußeren Rand der Platte gelegt werden.
Die größeren Partitionen wie /usr
sollten in die inneren Bereiche gelegt werden.
Es empfiehlt sich, die Partitionen in einer ähnlichen
Reihenfolge wie Root-Partition, Swap, /var
und /usr anzulegen.Die Größe von /var
ist abhängig vom Zweck der Maschine.
/var enthält hauptsächlich
Postfächer, den Spoolbereich zum Drucken und Logdateien.
Abhängig von der Anzahl der Systembenutzer und der
Aufbewahrungszeit für Logdateien, können gerade
die Postfächer und Logdateien zu ungeahnten Größen
wachsen. Oft werden Sie mit weniger als einem Gigabyte
auskommen, doch beachten Sie, dass
/var/tmp für Pakete ausreichend
dimensioniert ist.Die /usr-Partition enthält den
Hauptteil des Systems, die Ports-Sammlung (empfohlen) und die
Quellen (optional). Im Laufe der Installation haben Sie die
Möglichkeit, die Quellen und die Ports-Sammlung gleich mit
zu installieren. Für die
/usr-Partition sollten Sie mindestens
zwei Gigabyte vorsehen.Wenn Sie die Größe der Partitionen festlegen,
beachten Sie bitte das Wachstum Ihres Systems. Wenn Sie den
Platz auf einer Partition vollständig aufgebraucht haben,
eine andere Partition aber kaum benutzen, kann die Handhabung des
Systems schwierig werden.Die automatische Partitionierung von &man.sysinstall.8;
mit Auto-defaults legt manchmal zu kleine
/ und /var-Partition an.
Partitionieren Sie weise und großzügig.Swap PartitionSwap-PartitionGrößeSwap-PartitionAls Daumenregel sollten Sie doppelt soviel Speicher
für die Swap-Partition vorsehen, als Sie Hauptspeicher
haben. Verfügt die Maschine beispielsweise über
128 Megabyte Hauptspeicher, sollten Sie 256 Megabyte
für den Swap-Bereich vorsehen. Systeme mit weniger Speicher
werden wahrscheinlich mit viel mehr Swap mehr leisten. Es
wird nicht empfohlen, weniger als 256 Megabyte Swap einzurichten.
Außerdem sollten Sie künftige Speichererweiterungen
beachten, wenn Sie die Swap-Partition einrichten. Die
VM-Paging-Algorithmen im Kernel sind so eingestellt, dass
Sie am besten laufen, wenn die Swap-Partition mindestens
doppelt so groß wie der Hauptspeicher ist. Zu wenig
Swap kann zu einer Leistungsverminderung im
VM page scanning
Code führen, sowie Probleme verursachen, wenn Sie später
mehr Speicher in Ihre Maschine bauen.Auf größeren Systemen mit mehreren SCSI-Laufwerken
(oder mehreren IDE-Laufwerken an unterschiedlichen Controllern)
empfehlen wir Ihnen, Swap-Bereiche auf bis zu
vier Laufwerken einzurichten. Diese Swap-Partitionen sollten
ungefähr dieselbe Größe haben. Der Kernel
kann zwar mit beliebigen Größen umgehen, aber
die internen Datenstrukturen skalieren bis zur vierfachen
Größe der größten Partition. Ungefähr
gleich große Swap-Partitionen erlauben es dem Kernel,
den Swap-Bereich optimal über die Laufwerke zu verteilen.
Große Swap-Bereiche, auch wenn sie nicht oft gebraucht
werden, sind nützlich, da sich ein speicherfressendes
Programm unter Umständen auch ohne einen Neustart des Systems
beenden lässt.Warum partitionieren?Gegen eine einzelne Partition sprechen mehrere Gründe.
Jede Partition hat im Betrieb unterschiedliche Eigenschaften
und die Trennung der Partitionen erlaubt es, die Dateisysteme
an diese Eigenschaften anzupassen. Die Root- und
/usr-Partitionen weisen meist nur
lesende Zugriffe auf, während /var
und /var/tmp hauptsächlich
beschrieben werden.Indem Sie ein System richtig partitionieren, verhindern
Sie, dass eine Fragmentierung in den häufig beschriebenen
Partitionen auf die meist nur gelesenen Partitionen
übergreift. Wenn Sie die häufig beschriebenen
Partitionen an den Rand der Platte, legen, dann wird die
I/O-Leistung diesen Partitionen steigen.
Die I/O-Leistung ist natürlich auch für große
Partitionen wichtig, doch erzielen Sie eine größere
Leistungssteigerung, wenn Sie /var an den
Rand der Platte legen. Schließlich sollten Sie
noch die Stabilität des Systems beachten.
Eine kleine Root-Partition, auf die meist nur lesend
zugegriffen wird, überlebt einen schlimmen Absturz
wahrscheinlich eher als eine große Partition.Basiskonfigurationrc-Dateienrc.confInformationen zur Systemkonfiguration sind hauptsächlich
in /etc/rc.conf, die meist beim Start
des Systems verwendet wird, abgelegt. Der Name der Datei zeigt
ihren Zweck an: Sie enthält die Konfigurationen für
die rc* Dateien.In rc.conf werden die Vorgabewerte aus
/etc/defaults/rc.conf überschrieben.
Die Vorgabedatei sollte nicht nach /etc
kopiert werden, da sie die Vorgabewerte und keine Beispiele
enthält. Jede systemspezifische Änderung wird
in rc.conf vorgenommen.Um den administrativen Aufwand gering zu halten, existieren
in geclusterten Anwendungen mehrere Strategien,
globale Konfigurationen von systemspezifischen Konfigurationen
zu trennen. Der empfohlene Weg hält die globale Konfiguration
in einer separaten Datei z.B. rc.conf.site.
Diese Datei wird dann in /etc/rc.conf,
die nur systemspezifische Informationen enthält, eingebunden.Da rc.conf von &man.sh.1; gelesen
wird, ist das einfach zu erreichen:rc.conf: . rc.conf.site
hostname="node15.example.com"
network_interfaces="fxp0 lo0"
ifconfig_fxp0="inet 10.1.1.1"rc.conf.site: defaultrouter="10.1.1.254"
saver="daemon"
blanktime="100"rc.conf.site kann dann auf jedes
System mit rsync verteilt werden,
rc.conf bleibt dabei systemspezifisch.Bei einem Upgrade des Systems mit &man.sysinstall.8; oder
make world wird rc.conf
nicht überschrieben, so dass die Systemkonfiguration
erhalten bleibt.Konfiguration von AnwendungenInstallierte Anwendungen haben typischerweise
eigene Konfigurationsdateien, die eine eigene Syntax
verwenden. Damit diese Dateien leicht von der
Paketverwaltung gefunden und verwaltet werden können,
ist es wichtig, sie vom Basissystem zu trennen./usr/local/etcFür gewöhnlich werden diese Dateien in
/usr/local/etc installiert. Besitzt
eine Anwendung viele Konfigurationsdateien, werden
diese in einem separaten Unterverzeichnis abgelegt.Wenn ein Port oder ein Paket installiert wird, werden
normalerweise auch Beispiele für die Konfigurationsdateien
installiert. Diese erkennt man gewöhnlich an dem
Suffix .default. Wenn keine Konfigurationsdateien
für eine Anwendung existieren, werden sie durch
Kopieren der .default Dateien erstellt.Als Beispiel sei /usr/local/etc/apache
gezeigt:-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.defaultAnhand der Dateigröße erkennen Sie, dass sich
nur srm.conf geändert hat. Eine
spätere Aktualisierung des Apache-Ports
überschreibt diese Datei nicht.Start von DienstenDiensteEs ist üblich, dass ein System mehrere Dienste
zur Verfügung stellt. Diese können auf verschiedene
Weisen, die jeweils andere Vorteile haben, gestartet werden./usr/local/etc/rc.dSoftware, die von einem Port oder einem Paket installiert
wurde, wird oft ein Skript in /usr/local/etc/rc.d
stellen. Dieses wird beim Hochfahren des Systems mit dem
Argument und beim Herunterfahren mit
dem Argument aufgerufen. Das ist der empfohlene
Weg, systemweite Dienste, die unter root laufen
oder unter root gestartet werden, zu starten.
Die Skripten werden bei der Installation des Paketes registriert
und entfernt, wenn das Paket entfernt wird.Ein typisches Skript in /usr/local/etc/rc.d
sieht wie folgt aus:#!/bin/sh
echo -n ' FooBar'
case "$1" in
start)
/usr/local/bin/foobar
;;
stop)
kill -9 `cat /var/run/foobar.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
Die Startskripten von &os; suchen in
/usr/local/etc/rc.d nach Dateien mit dem Suffix
.sh, die von root
ausgeführt werden können. Die gefundenen Skripten werden
beim Hochfahren des Systems mit der Option und
beim Herunterfahren mit der Option aufgerufen,
damit sie die passenden Aktionen ausführen können. Wenn
Sie das vorige Beispiel beim Systemstart verwenden wollen, sollten
Sie es also als FooBar.sh in
/usr/local/etc/rc.d speichern und sicherstellen,
das das Skript ausführbar ist. Benutzen Sie &man.chmod.1;, um
das Skript ausführbar zu machen:&prompt.root; chmod 755 FooBar.shManche Dienste werden von &man.inetd.8; aufgerufen, wenn
eine Verbindung auf dem passenden Port aufgebaut wird. Üblich
ist das für Server von Mail-Clients (POP, IMAP, usw.). Diese
Dienste werden durch das Editieren von
/etc/inetd.conf aktiviert. Details dazu
finden sich in &man.inetd.8;.Weitere Systemdienste werden vielleicht nicht von
/etc/rc.conf abgedeckt. Diese werden
traditionell durch Kommandos in /etc/rc.local
aktiviert. Seit &os; 3.1 existiert keine Vorgabe für
/etc/rc.local mehr. Wenn die Datei allerdings
von einem Administrator angelegt wird, so wird sie auch
ausgeführt. Beachten Sie bitte, dass
/etc/rc.local als der letzte Weg, einen
Dienst zu starten, angesehen wird. Wenn es eine andere
Möglichkeit gibt, den Dienst zu starten, nehmen Sie diese
bitte wahr.Fügen Sie bitte keine Kommandos
in /etc/rc.conf ein. Starten Sie stattdessen
Dæmons oder Kommandos beim Hochfahren mit Skripten in
/usr/local/etc/rc.d.Systemdienste können auch mit &man.cron.8; gestartet
werden. Dieser Ansatz hat einige Vorteile; nicht zuletzt, weil
&man.cron.8; die Prozesse unter dem Eigentümer der
crontab startet, ist es möglich, dass
Dienste von nicht-root Benutzern gestartet
und gepflegt werden können.Dies nutzt eine Eigenschaft von &man.cron.8;:
Für die Zeitangabe kann @reboot
eingesetzt werden. Damit wird das Kommando gestartet, wenn
&man.cron.8; kurz nach dem Systemboot gestartet wird.TomRhodesBeigetragen von Programme mit cron startencronEin sehr nützliches Werkzeug von &os; ist &man.cron.8;.
cron läuft im Hintergrund und
überprüft fortlaufend die Datei
/etc/crontab. Beim Start sucht
cron neue crontab-Dateien
im Verzeichnis /var/cron/tabs. In den
crontab-Dateien wird festgelegt, welche
Programme zu welchem Zeitpunkt laufen sollen.Der folgende Auszug aus /etc/crontab
zeigt den Aufbau einer crontab-Datei:# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
#
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#
#minute hour mday month wday who command
#
#
*/5 * * * * root /usr/libexec/atrun Das Zeichen # leitet, wie in
den meisten Konfigurationsdateien, einen Kommentar ein.
Benutzen Sie Kommentare, um die Funktion eines Eintrags
zu erläutern. Kommentare müssen in einer
extra Zeile stehen. Sie können nicht in derselben
Zeile wie ein Kommando stehen, da sie sonst Teil des
Kommandos wären. Leerzeilen in dieser Datei
werden ignoriert.Umgebungsvariablen werden mit dem Gleichheits-Zeichen
(=) festgelegt. Im Beispiel werden
die Variablen SHELL, PATH
und HOME definiert. Wenn die Variable
SHELL nicht definiert wird, benutzt
cron die Shell sh.
Wird die Variable PATH nicht gesetzt,
müssen alle Pfadangaben absolut sein, da es keinen
Vorgabewert für PATH gibt. Der
Vorgabewert für HOME ist das
Heimatverzeichnis des Accounts, dem die
crontab gehört.In dieser Zeile werden sieben Felder beschrieben:
minute, hour,
mday, month,
wday, who
und command. Die ersten Felder
legen den Zeitpunkt fest, an dem ein Kommando laufen
soll. Das Feld minute legt die
Minute fest, das Feld hour die
Stunde, das Feld mday den Tag
des Monats. Im Feld month
wird der Monat und im Feld wday
der Wochentag festgelegt. Alle Felder müssen
numerische Werte enthalten und die Zeitangaben sind
im 24-Stunden-Format. Das Feld who
gibt es nur in der Datei /etc/crontab
und gibt den Account an, unter dem das Kommando laufen
soll. In den crontab-Dateien
einzelner Accounts existiert dieses Feld nicht. Im
letzten Feld wird schließlich das auszuführende
Kommando angegeben.Diese Zeile definiert die Zeitpunkte an denen das
Kommando atrun laufen soll. Beachten
Sie die Zeichenfolge */5 gefolgt von
mehreren *-Zeichen. Das Zeichen
* ist ein Platzhalter und steht
für jede mögliche Zeit.
Diese Zeile führt das Kommando atrun
unter dem root-Account alle fünf
- Minuten aus. Weitere Informationen zu atrun
- erhalten Sie in der Hilfeseite &man.atrun.8;.
+ Minuten aus. Mehr über das Kommando
+ atrun erfahren Sie in der
+ Hilfeseite &man.atrun.8;.
Bei den Kommandos können beliebige Optionen
angegeben werden. Wenn das Kommando zu lang ist und
auf der nächsten Zeile fortgesetzt werden soll,
muss am Ende der Zeile das Fortsetzungszeichen
(\) angegeben werden.Bis auf das sechste Feld, das den Account angibt, sieht
jede crontab-Datei so wie das Beispiel
aus. Das sechste Feld existiert nur in der Systemdatei
/etc/crontab. In den restlichen
crontab-Dateien fehlt dieses Feld.crontab installierenEine erstellte crontab-Datei
installieren Sie mit dem nachstehenden Befehl:&prompt.root; crontab crontabDer Befehl crontab -l zeigt
die installierte crontab-Datei an.Benutzer, die eine eigene crontab-Datei
ohne Vorlage erstellen wollen, können den Befehl
crontab -e verwenden. Dieser Befehl
ruft einen Editor auf und installiert beim Verlassen des
Editors die crontab-Datei.TomRhodesBeigetragen von Das rc-System für SystemdienstercNGDas rcNG-System von NetBSD zum
Start von Systemdiensten wurde in &os; integriert.
Die zu diesem System gehörenden Dateien sind im
Verzeichnis /etc/rc.d abgelegt.
Die Skripten in diesem Verzeichnis akzeptieren die
Optionen ,
und . Beispielsweise kann
&man.sshd.8; mit dem nachstehenden Kommando neu gestartet
werden:&prompt.root; /etc/rc.d/sshd restartAnalog können Sie andere Dienste starten und stoppen.
Normalerweise werden die Dienste über Einträge in
der Datei &man.rc.conf.5; gestartet. Der Network Address
Translation Dæmon wird zum Beispiel mit dem folgenden
Eintrag in /etc/rc.conf aktiviert:natd_enable="YES"Wenn dort bereits die Zeile
existiert, ändern Sie einfach in
. Die rc-Skripten starten, wie unten
beschrieben, auch abhängige Dienste.Da das rcNG-System primär
zum automatischen Starten und Stoppen von Systemdiensten
dient, funktionieren die Optionen ,
und nur,
wenn die entsprechenden Variablen in
/etc/rc.conf gesetzt sind. Beispielsweise
funktioniert das Kommando sshd restart
nur dann, wenn in /etc/rc.conf die
Variable sshd_enable auf
gesetzt wurde. Wenn Sie die Optionen ,
oder
unabhängig von den Einstellungen in
/etc/rc.conf benutzen wollen,
müssen Sie den Optionen mit dem Präfix
force verwenden. Um beispielsweise
sshd unabhängig von den
Einstellungen in /etc/rc.conf neu
zu starten, benutzen Sie das nachstehende Kommando:&prompt.root; /etc/rc.d/sshd forcerestartOb ein Dienst in /etc/rc.conf
aktiviert ist, können Sie leicht herausfinden, indem
Sie das entsprechende rc.d-Skript
mit der Option aufrufen. Ein
Administrator kann beispielsweise wie folgt prüfen, ob
der sshd-Dienst in
/etc/rc.conf aktiviert ist:&prompt.root; /etc/rc.d/sshd rcvar
# sshd
$sshd_enable=YESDie zweite Zeile (# sshd) wird
vom Kommando sshd ausgegeben; sie
kennzeichnet nicht die Eingabeaufforderung von
root.Ob ein Dienst läuft, kann mit der Option
abgefragt werden. Das folgende
Kommando überprüft, ob der sshd
auch wirklich gestartet wurde:&prompt.root; /etc/rc.d/sshd status
sshd is running as pid 433.Die Option initialisiert einen
Dienst neu. Dem Dienst wird über ein Signal mitgeteilt,
dass er seine Konfigurationsdateien neu einlesen soll.
Oft wird dazu das Signal SIGHUP
verwendet.Die meisten Systemdienste werden beim Systemstart vom
rcNG-System gestartet. Zum Beispiel
aktiviert das Skript bgfsck die Prüfung
von Dateisystemen im Hintergrund. Das Skript gibt die folgende
Meldung aus, wenn es gestartet wird:Starting background file system checks in 60 seconds.Viele Systemdienste hängen von anderen Diensten
ab. NIS und andere RPC-basierende Systeme hängen
beispielsweise von dem rpcbind-Dienst
(portmapper) ab. Im Kopf der Startskripten befinden sich
die Informationen über Abhängigkeiten von anderen
Diensten und weitere Metadaten. Mithilfe dieser Daten
bestimmt das Programm &man.rcorder.8; beim Systemstart die
Startreihenfolge der Dienste. Folgende Schlüsselwörter
werden im Kopf der Startskripten verwendet:
- PROVIDE: Gibt die Namen der Dienste an, die
- mit dieser Datei zur Verfügung gestellt werden.
+ PROVIDE: Gibt die Namen der Dienste an,
+ die mit dieser Datei zur Verfügung gestellt werden.
- REQUIRE: Gibt die Namen der Dienste an, von denen dieser
- Dienst abhängt. Diese Datei wird nach
- den angegebenen Diensten ausgeführt.
+ REQUIRE: Gibt die Namen der Dienste an,
+ von denen dieser Dienst abhängt. Diese Datei wird
+ nach den angegebenen Diensten
+ ausgeführt.
- BEFORE: Zählt Dienste auf, die auf diesen Dienst
- angewiesen sind. Diese Datei wird vor
- den angegebenen Diensten ausgeführt.
+ BEFORE: Zählt Dienste auf,
+ die auf diesen Dienst angewiesen sind. Diese Datei wird
+ vor den angegebenen Diensten
+ ausgeführt.KEYWORD: FreeBSD oder
NetBSD. Unterscheidet Funktionen,
die von der BSD-Variante abhängen.Mit diesem System kann ein Administrator den Start
von Systemdiensten einfach steuern, ohne mit den
Schwierigkeiten des runlevel-Systems
anderer &unix; Systeme kämpfen zu müssen.MarcFonvieilleBeigetragen von Einrichten von NetzwerkkartenNetzwerkkartenEin Rechner ohne Netzanschluss ist heute nicht mehr
vorstellbar. Die Konfiguration einer Netzwerkkarte gehört zu
den alltäglichen Aufgaben eines &os; Administrators.Bestimmen des richtigen TreibersNetzwerkkartenTreiberBevor Sie anfangen, sollten Sie das Modell Ihrer Karte kennen,
wissen welchen Chip die Karte benutzt und bestimmen, ob es sich
um eine PCI- oder ISA-Karte handelt. Eine Aufzählung der
unterstützten PCI- und ISA-Karten finden Sie in der
Liste der unterstützen Geräte. Schauen Sie nach, ob Ihre
Karte dort aufgeführt ist.Wenn Sie wissen, dass Ihre Karte unterstützt wird,
müssen Sie den Treiber für Ihre Karte bestimmen.
/usr/src/sys/i386/conf/LINT enthält eine
Liste der verfügbaren Treiber mit Informationen zu den
unterstützten Chipsätzen und Karten. Wenn Sie sich nicht
sicher sind, ob Sie den richtigen Treiber ausgewählt haben,
lesen Sie die Hilfeseite des Treibers. Die Hilfeseite enthält
weitere Informationen über die unterstützten Geräte
und macht auch auf mögliche Probleme aufmerksam.Wenn Sie eine gebräuchliche Karte besitzen, brauchen Sie
meistens nicht lange nach dem passenden Treiber zu suchen. Die
Treiber zu diesen Karten sind schon im
GENERIC-Kernel enthalten und die Karte sollte
während des Systemstarts erkannt werden:dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
dc0: Ethernet address: 00:a0:cc:da:da:da
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
dc1: Ethernet address: 00:a0:cc:da:da:db
miibus1: <MII bus> on dc1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, autoIm Beispiel erkennt das System zwei Karten, die den
&man.dc.4; Treiber benutzen.Der richtige Treiber muss geladen sein, damit eine
Netzwerkkarte benutzt werden kann. Der Treiber kann auf zwei Arten
geladen werden: Am einfachsten laden Sie das Kernelmodul für
Ihre Karte mit &man.kldload.8;. Für manche Netzwerkkarten
gibt es kein Kernelmodul (beispielsweise für ISA-Karten, die
den &man.ed.4; Treiber benutzen). Die zweite Möglichkeit ist,
die Unterstützung für Ihre Karte fest in den Kernel
einzubinden. Schauen Sie sich dazu
/usr/src/sys/i386/conf/LINT und die Hilfeseite
des Treibers, den Sie in den Kernel einbinden möchten, an.
Die Übersetzung des Kernels wird in
beschrieben. Wenn Ihre Karte
während des Systemstarts vom Kernel
(GENERIC) erkannt wurde, müssen Sie den
Kernel nicht neu übersetzen.Konfiguration von NetzwerkkartenNetzwerkkartenkonfigurierenNachdem der richtige Treiber für die Karte geladen ist,
muss die Karte konfiguriert werden. Unter Umständen ist
die Karte schon während der Installation mit
sysinstall konfiguriert worden.Das nachstehende Kommando zeigt die Konfiguration der Karten
eines Systems an:&prompt.user; ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500In alten Versionen von &os; müssen Sie vielleicht
noch auf der Kommandozeile von &man.ifconfig.8;
angeben. Hinweise zum Gebrauch von &man.ifconfig.8; entnehmen
Sie bitte der Hilfeseite. Beachten Sie, dass in diesem
Beispiel die IPv6-Ausgaben (inet6 etc.)
ausgelassen wurden.Im Beispiel werden Informationen zu den folgenden Geräten
angezeigt:dc0: Der erste
Ethernet-Adapterdc1: Der zweite
Ethernet-Adapterlp0: Die parallele
Schnittstellelo0: Das Loopback-Gerättun0: Das von
ppp benutzte Tunnel-GerätDer Name der Netzwerkkarte wird aus dem Namen des Treibers und
einer Zahl zusammengesetzt. Die Zahl gibt die Reihenfolge an, in
der die Geräte beim Systemstart erkannt wurden. Die dritte
Karte, die den &man.sis.4; Treiber benutzt, würde
beispielsweise sis2 heißen.Der Adapter dc0 aus dem Beispiel ist
aktiv. Sie erkennen das an den folgenden Hinweisen:UP bedeutet, dass die Karte
konfiguriert und aktiv ist.Der Karte wurde die Internet-Adresse (inet)
192.168.1.3 zugewiesen.Die Subnetzmaske ist richtig
(0xffffff00 entspricht
255.255.255.0).Die Broadcast-Adresse 192.168.1.255 ist richtig.Die MAC-Adresse der Karte (ether)
lautet 00:a0:cc:da:da:da.Die automatische Medienerkennung ist aktiviert
(media: Ethernet autoselect (100baseTX
<full-duplex>)). Der Adapter
dc1 benutzt das Medium
10baseT/UTP. Weitere Informationen
über die einstellbaren Medien entnehmen
Sie bitte der Hilfeseite des Treibers.Der Verbindungsstatus (status) ist
active, das heißt es wurde ein
Trägersignal entdeckt. Für
dc1 wird status: no
carrier angezeigt. Das ist normal, wenn kein Kabel
an der Karte angeschlossen ist.Wäre die Karte nicht konfiguriert, würde die Ausgabe
von &man.ifconfig.8; so aussehen:dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
ether 00:a0:cc:da:da:daSie brauchen die Berechtigungen von root, um
Ihre Karte zu konfigurieren. Die Konfiguration kann auf der
Kommandozeile mit &man.ifconfig.8; erfolgen, allerdings
müsste sie dann nach jedem Neustart wiederholt werden.
Dauerhaft wird die Karte in /etc/rc.conf
konfiguriert.Öffnen Sie /etc/rc.conf mit Ihrem
Lieblingseditor und fügen Sie für jede Karte Ihres
Systems eine Zeile hinzu. In dem hier diskutierten Fall wurden
die nachstehenden Zeilen eingefügt:ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"Ersetzen Sie dc0,
dc1 usw. durch die Gerätenamen Ihrer
Karten und setzen Sie die richtigen IP-Adressen ein. Die
Hilfeseiten des Treibers und &man.ifconfig.8; enthalten weitere
Einzelheiten über verfügbare Optionen. Die Syntax von
/etc/rc.conf wird in &man.rc.conf.5;
erklärt.Wenn Sie das Netz während der Installation
konfiguriert haben, existieren vielleicht schon Einträge
für Ihre Karten. Überprüfen Sie
/etc/rc.conf bevor Sie weitere Zeilen
hinzufügen.In /etc/hosts können Sie die Namen
und IP-Adressen der Rechner Ihres LANs eintragen. Weitere
Informationen entnehmen Sie bitte &man.hosts.5; und
/usr/share/examples/etc/hosts.Test und FehlersucheNachdem Sie die notwendigen Änderungen in
/etc/rc.conf vorgenommen haben, führen
Sie einen Neustart Ihres Systems durch. Dadurch werden die Adapter
konfiguriert und Sie stellen sicher, dass der Start ohne
Konfigurationsfehler erfolgt.Wenn das System gestartet ist, sollten Sie die Netzwerkkarten
testen.Test der Ethernet-KarteNetzwerkkartenTestMit zwei Tests können Sie prüfen, ob die
Ethernet-Karte richtig konfiguriert ist. Testen Sie zuerst mit
ping den Adapter selbst und sprechen Sie dann
eine andere Maschine im LAN an.Zuerst, der Test des Adapters:&prompt.user; ping -c5 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
--- 192.168.1.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 msJetzt versuchen wir, eine andere Maschine im LAN zu
erreichen:&prompt.user; ping -c5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 msSie können auch den Namen der Maschine anstelle von
192.168.1.2 benutzen, wenn Sie
/etc/hosts entsprechend eingerichtet
haben.FehlersucheNetzwerkkartenFehlersucheFehler zu beheben, ist immer sehr mühsam.
Indem Sie die einfachen Sachen zuerst prüfen,
erleichtern Sie sich die Aufgabe. Steckt das Netwerkkabel?
Sind die Netzwerkdienste richtig konfiguriert? Funktioniert
die Firewall? Wird die Netwerkkarte von &os;
- unterstützt? Bevor Sie einen Fehlerbericht einsenden,
- sollten Sie sich immer die Hardware-Informationen des
- Releases durchlesen. Aktualisieren Sie Ihre &os;-Version
+ unterstützt? Lesen Sie immer die Hardware-Informationen
+ des Releases, bevor Sie einen Fehlerbericht einsenden.
+ Aktualisieren Sie Ihre &os;-Version
auf -STABLE. Suchen Sie in den Archiven der Mailinglisten
oder auf dem Internet nach bekannten Lösungen.Wenn die Karte funktioniert, die Verbindungen aber
zu langsam sind, lesen Sie bitte die Hilfeseite
&man.tuning.7;. Prüfen Sie auch die
Netzwerkkonfiguration, da falsche Einstellungen die
Ursache für langsame Verbindungen sein können.Wenn Sie viele device timeout
Meldungen in den Systemprotokollen finden, prüfen
Sie, dass es keinen Konflikt zwischen der Netzwerkkarte
und anderen Geräten Ihres Systems gibt.
Überprüfen Sie nochmals die Verkabelung.
Unter Umständen benötigen Sie eine neue
Netzwerkkarte.Wenn Sie in den Systemprotokollen
watchdog timeout Fehlermeldungen
finden, kontrollieren Sie zuerst die Verkabelung.
Überprüfen Sie dann, ob der PCI-Steckplatz der
Karte Bus Mastering unterstützt. Auf einigen
älteren Motherboards ist das nur für einen
Steckplatz (meistens Steckplatz 0) der Fall. Lesen Sie
in der Dokumentation Ihrer Karte und Ihres Motherboards
nach, ob das vielleicht die Ursache des Problems sein
könnte.Die Meldung No route to host
erscheint, wenn Ihr System ein Paket nicht zustellen
kann. Das kann vorkommen weil beispielsweise keine
Default-Route gesetzt wurde oder das Netzwerkkabel
nicht richtig steckt. Schauen Sie in der Ausgabe
von netstat -rn nach, ob eine
Route zu dem Zielsystem existiert. Wenn nicht, lesen
Sie bitte das .Die Meldung ping: sendto: Permission
denied wird oft von einer falsch konfigurierten
Firewall verursacht. Wenn keine Regeln definiert wurden,
blockiert eine aktivierte Firewall alle Pakete, selbst
einfache ping-Pakete. Weitere
Informationen erhalten Sie in .Falls die Leistung der Karte schlecht ist, setzen
Sie die Medienerkennung von autoselect
(automatisch) auf das richtige Medium. In vielen Fällen
löst diese Maßnahme Leistungsprobleme. Wenn
nicht, prüfen Sie nochmal die Netzwerkeinstellungen
und lesen Sie die Hilfeseite &man.tuning.7;.Virtual Hostsvirtual hostsIP-AliaseEin gebräuchlicher Zweck von &os; ist das
virtuelle Hosting, bei dem ein Server im Netzwerk wie
mehrere Server aussieht. Dies wird dadurch erreicht,
dass einem Netzwerkinterface mehrere Netzwerk-Adressen
zugewiesen werden.Ein Netzwerkinterface hat eine echte
Adresse und kann beliebig viele alias Adressen
haben. Die Aliase werden durch entsprechende alias Einträge
in /etc/rc.conf festgelegt.Ein alias Eintrag für das Interface
fxp0 sieht wie folgt aus:ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"Beachten Sie, dass die alias Einträge mit alias0
anfangen müssen und dann weiter hochgezählt werden,
das heißt _alias1, _alias2, usw.
Die Konfiguration der Aliase hört bei der ersten
fehlenden Zahl auf.Die Berechnung der Alias-Netzwerkmasken ist wichtig, doch
zum Glück einfach. Für jedes Interface muss es
eine Adresse geben, die die Netzwerkmaske des Netzwerkes richtig
beschreibt. Alle anderen Adressen in diesem Netzwerk haben dann
eine Netzwerkmaske, die mit 1 gefüllt
ist.Als Beispiel betrachten wir den Fall, in dem
fxp0 mit zwei Netzwerken verbunden
ist: dem Netzwerk 10.1.1.0 mit der
Netzwerkmaske 255.255.255.0
und dem Netzwerk 202.0.75.16 mit der
Netzwerkmaske 255.255.255.240.
Das System soll die Adressen 10.1.1.1
bis 10.1.1.5 und
202.0.75.17 bis
202.0.75.20 belegen.Die folgenden Einträge konfigurieren den Adapter
entsprechend dem Beispiel: ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"Konfigurationsdateien/etc LayoutKonfigurationsdateien finden sich in einigen Verzeichnissen
unter anderem in:/etcEnthält generelle Konfigurationsinformationen,
die Daten hier sind systemspezifisch./etc/defaultsDefault Versionen der Konfigurationsdateien./etc/mailEnthält die &man.sendmail.8; Konfiguration
und weitere MTA Konfigurationsdateien./etc/pppHier findet sich die Konfiguration für
die User- und Kernel-ppp Programme./etc/namedbDas Vorgabeverzeichnis, in dem Daten von
&man.named.8; gehalten werden. Normalerweise
werden hier named.conf und Zonendaten
abgelegt./usr/local/etcInstallierte Anwendungen legen hier ihre
Konfigurationsdateien ab. Dieses Verzeichnis kann
Unterverzeichnisse für bestimmte Anwendungen
enthalten./usr/local/etc/rc.dOrt für Start- und Stopskripten installierter
Anwendungen./var/dbAutomatisch generierte systemspezifische Datenbanken,
wie die Paket-Datenbank oder die
locate-Datenbank.HostnamenhostnameDNS/etc/resolv.confresolv.confWie der &os;-Resolver auf das Internet Domain Name
System (DNS) zugreift, wird in /etc/resolv.conf
festgelegt.Die gebräuchlichsten Einträge in
/etc/resolv.conf sind:nameserverDie IP-Adresse eines Nameservers, den
der Resolver abfragen soll. Bis zu drei Server werden
in der Reihenfolge, in der sie aufgezählt
sind, abgefragt.
searchSuchliste mit Domain-Namen zum Auflösen von
Hostnamen. Die Liste wird normalerweise durch den
Domain-Teil des lokalen Hostnamens festgelegt.
domainDer lokale Domain-Name.Beispiel für eine typische
resolv.conf:search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30Nur eine der Anweisungen search
oder domain sollte benutzt werden.Wenn Sie DHCP benutzen, überschreibt &man.dhclient.8;
für gewöhnlich resolv.conf
mit den Informationen vom DHCP-Server./etc/hostshosts/etc/hosts ist eine einfache textbasierte
Datenbank, die aus alten Internetzeiten stammt. Zusammen
mit DNS und NIS stellt sie eine Abbildung zwischen Namen und
IP-Adressen zur Verfügung. Anstatt &man.named.8;
zu konfigurieren, können hier lokale Rechner, die über
ein LAN verbunden sind, eingetragen werden. Lokale Einträge
für gebräuchliche Internet-Adressen in
/etc/hosts verhindern die Abfrage eines
externen Servers und beschleunigen die Namensauflösung.# $FreeBSD$
#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1 localhost localhost.my.domain myname.my.domain
127.0.0.1 localhost localhost.my.domain myname.my.domain
#
# Imaginary network.
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers. PLEASE PLEASE PLEASE do not try
# to invent your own network numbers but instead get one from your
# network provider (if any) or from the Internet Registry (ftp to
# rs.internic.net, directory `/templates').
#/etc/hosts hat ein einfaches Format:[Internet Adresse] [Offizieller Hostname] [Alias1] [Alias2] ...Zum Beispiel:10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2Weitere Informationen entnehmen Sie bitte &man.hosts.5;.Konfiguration von LogdateienLogdateiensyslog.confsyslog.confsyslog.conf ist die Konfigurationsdatei
von &man.syslogd.8;. Sie legt fest, welche
syslog Meldungen in welche
Logdateien geschrieben werden.# $FreeBSD$
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the syslog.conf(5) manpage.
*.err;kern.debug;auth.notice;mail.crit /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.* /var/log/cron
*.err root
*.notice;news.err root
*.alert root
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
#*.* /var/log/all.log
# uncomment this to enable logging to a remote log host named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.logWeitere Informationen enthält &man.syslog.conf.5;.newsyslog.confnewsyslog.confDie Konfigurationsdatei für &man.newsyslog.8;, das
normalerweise von &man.cron.8; aufgerufen wird, ist
newsyslog.conf. &man.newsyslog.8;
stellt fest, ob Logdateien archiviert oder verschoben
werden müssen. So wird logfile
nach logfile.0 geschoben und
logfile.0 nach logfile.1
usw. Zudem können Logdateien mit &man.gzip.1;
komprimiert werden. Die Namen der Logdateien sind dann
logfile.0.gz, logfile.1.gz
usw.newsyslog.conf legt fest, welche
Logdateien wann bearbeitet und wie viele Dateien behalten werden.
Logdateien können auf Basis ihrer Größe oder zu
einem gewissen Zeitpunkt archiviert bzw. umbenannt werden.# configuration file for newsyslog
# $FreeBSD$
#
# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
/var/log/cron 600 3 100 * Z
/var/log/amd.log 644 7 100 * Z
/var/log/kerberos.log 644 7 100 * Z
/var/log/lpd-errs 644 7 100 * Z
/var/log/maillog 644 7 * @T00 Z
/var/log/sendmail.st 644 10 * 168 B
/var/log/messages 644 5 100 * Z
/var/log/all.log 600 7 * @T00 Z
/var/log/slip.log 600 3 100 * Z
/var/log/ppp.log 600 3 100 * Z
/var/log/security 600 10 100 * Z
/var/log/wtmp 644 3 * @01T05 B
/var/log/daily.log 640 7 * @T00 Z
/var/log/weekly.log 640 5 1 $W6D0 Z
/var/log/monthly.log 640 12 * $M1D0 Z
/var/log/console.log 640 5 100 * ZUm mehr zu erfahren, lesen Sie bitte &man.newsyslog.8;.sysctl.confsysctl.confsysctlsysctl.conf sieht ähnlich
wie rc.conf aus. Werte werden in der
Form Variable=Wert gesetzt.
Die angegebenen Werte werden
gesetzt, nachdem sich das System im Mehrbenutzer Modus befindet,
das heißt nicht alle Werte können in
diesem Modus gesetzt werden.In der folgenden sysctl.conf wird das
Loggen von fatalen Signalen abgestellt und Linux Programmen
wird klar gemacht, dass sie in Wirklichkeit unter
&os; laufen:kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11)
compat.linux.osname=FreeBSD
compat.linux.osrelease=4.3-STABLEEinstellungen mit sysctlsysctlEinstellungenmit sysctlMit &man.sysctl.8; können Sie Änderungen an
einem laufenden &os; System vornehmen. Unter anderem
können Optionen des TCP/IP-Stacks oder des
virtuellen Speichermanagements verändert werden. Unter
der Hand eines erfahrenen Systemadministrators kann dies
die Systemperformance erheblich verbessern. Über 500
Variablen können mit &man.sysctl.8; gelesen und gesetzt
werden.Der Hauptzweck von &man.sysctl.8; besteht darin, Systemeinstellungen
zu lesen und zu verändern.Alle auslesbaren Variablen werden wie folgt angezeigt:&prompt.user; sysctl -aSie können auch eine spezielle Variable, z.B.
kern.maxproc lesen:&prompt.user; sysctl kern.maxproc
kern.maxproc: 1044Um eine Variable zu setzen, benutzen Sie die Syntax
Variable=
Wert:&prompt.root; sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000Mit sysctl können Sie Strings, Zahlen oder
Boolean-Werte setzen. Bei Boolean-Werten setzen sie 1
für wahr und 0 für falsch.TomRhodesContributed by Schreibgeschützte VariablenManchmal ist es notwendig, obwohl es nicht
empfohlen ist, schreibgeschützte
sysctl-Variablen zu verändern.Beispielsweise hat &man.cardbus.4; auf einigen Laptops
Schwierigkeiten, Speicherbereiche zu erkennen. Es treten
dann Fehlermeldungen wie die folgende auf:cbb0: Could not map register memory
device_probe_and_attach: cbb0 attach returned 12Um dieses Problem zu lösen, muss eine
schreibgeschützte sysctl-Variable verändert
werden. Eine OID kann in der Datei
- /boot/loader.conf.local überschrieben
+ /boot/loader.conf überschrieben
werden. Die Datei /boot/defaults/loader.conf
enthält Vorgabewwerte für sysctl-Variablen.Das oben erwähnte Problem wird durch die Angabe von
in
- /boot/loader.conf.local gelöst.
+ /boot/loader.conf gelöst.
Danach sollte &man.cardbus.4; fehlerfrei funktionieren.Tuning von LaufwerkenSysctl Variablenvfs.vmiodirenablevfs.vmiodirenableDie Variable vfs.vmiodirenable besitzt
in der Voreinstellung den Wert 1. Die Variable kann auf den Wert
0 (ausgeschaltet) oder 1 (angeschaltet) gesetzt werden. Sie
steuert, wie Verzeichnisse vom System zwischengespeichert
werden. Die meisten Verzeichnisse sind klein und benutzen
nur ein einzelnes Fragment, typischerweise 1 kB, im Dateisystem.
Im Buffer-Cache verbrauchen sie mit 512 Bytes noch weniger
Platz. In der Voreinstellung wird der Buffer-Cache nur
eine limitierte Anzahl Verzeichnisse zwischenspeichern, auch
wenn das System über sehr viel Speicher verfügt.
Wenn Sie diese Variable aktivieren, kann der Buffer-Cache den
VM-Page-Cache benutzen, um Verzeichnisse zwischenzuspeichern.
Der ganze Speicher steht damit zum Zwischenspeichern von
Verzeichnissen zur Verfügung. Der Nachteil bei dieser
Vorgehensweise ist, dass zum Zwischenspeichern eines
Verzeichnisses mindestens eine physikalische Seite im Speicher,
die normalerweise 4 kB groß ist, anstelle von 512 Bytes
gebraucht wird. Wir empfehlen diese Option zu aktivieren,
wenn Sie Dienste zur Verfügung stellen, die viele
Dateien manipulieren. Beispiele für
solche Dienste sind Web-Caches, große Mail-Systeme oder
Netnews. Trotz des verschwendeten Speichers vermindert
das Aktivieren dieser Variable in aller Regel nicht die
Leistung des Systems, obwohl Sie das nachprüfen sollten.vfs.write_behindvfs.write_behindIn der Voreinstellung besitzt die Variable
vfs.write_behind den Wert
1 (aktiviert). Mit dieser Einstellung
schreibt das Dateisystem anfallende vollständige Cluster,
die besonders beim sequentiellen Schreiben großer Dateien
auftreten, direkt auf das Medium aus. Dies verhindert,
dass sich im Buffer-Cache veränderte Puffer
(dirty buffers) ansammeln,
die die I/O-Verarbeitung nicht mehr beschleunigen
würden. Unter bestimmten Umständen blockiert
diese Funktion allerdings Prozesse. Setzen Sie in diesem
Fall die Variable vfs.write_behind auf
den Wert 0.vfs.hirunningspacevfs.hirunningspaceDie Variable vfs.hirunningspace
bestimmt systemweit die Menge ausstehender Schreiboperationen,
die dem Platten-Controller zu jedem beliebigen Zeitpunkt
übergeben werden können. Normalerweise können
Sie den Vorgabewert verwenden. Auf Systemen mit
vielen Platten kann der Wert aber auf 4 bis
5 Megabyte erhöht werden.
Beachten Sie, dass ein zu hoher Wert (größer
als der Schreib-Schwellwert des Buffer-Caches) zu
Leistungverlusten führen kann. Setzen Sie den Wert daher
nicht zu hoch! Hohe Werte können auch Leseoperationen
verzögern, die gleichzeitig mit Schreiboperationen
ausgeführt werden.Es gibt weitere Variablen, mit denen Sie den Buffer-Cache
und den VM-Page-Cache beeinflussen können. Wir raten
Ihnen allerdings davon ab, diese Variablen zu verändern:
Seit &os; 4.3 stellt sich die Verwaltung des virtuellen
Speichers sehr gut selbst ein.vm.swap_idle_enabledvm.swap_idle_enabledDie Variable vm.swap_idle_enabled
ist für große Mehrbenutzer-Systeme gedacht, auf
denen sich viele Benutzer an- und abmelden und auf denen
es viele Prozesse im Leerlauf
(idle) gibt. Solche Systeme
fragen kontinuierlich freien Speicher an. Wenn Sie die
Variable vm.swap_idle_enabled aktivieren,
können Sie die Auslagerungs-Hysterese von Seiten mit
den Variablen vm.swap_idle_threshold1 und
vm.swap_idle_threshold2 einstellen. Die
Schwellwerte beider Variablen geben die Zeit in Sekunden an,
in denen sich ein Prozess im Leerlauf befinden muss. Wenn die
Werte so eingestellt sind, dass Seiten früher als nach dem
normalen Algorithmus ausgelagert werden, verschafft das dem
Auslagerungs-Prozess mehr Luft. Aktivieren Sie diese Funktion
nur, wenn Sie sie wirklich benötigen: Die Speicherseiten
werden eher früher als später ausgelagert. Der
Platz im Swap-Bereich wird dadurch schneller verbraucht und
die Plattenaktivitäten steigen an. Auf kleine Systeme
hat diese Funktion spürbare Auswirkungen. Auf großen
Systemen, die sowieso schon Seiten auslagern müssen,
können ganze Prozesse leichter in den Speicher geladen
oder ausgelagert werden.hw.ata.wchw.ata.wcIn &os; 4.3 wurde versucht, den IDE-Schreib-Zwischenspeicher
abzustellen. Obwohl dies die Bandbreite zum Schreiben auf
IDE-Platten verringerte, wurde es aus Gründen der
Datenkonsistenz als notwenig angesehen. Der Kern des
Problems ist, dass IDE-Platten keine zuverlässige
Aussage über das Ende eines Schreibvorgangs treffen.
Wenn der Schreib-Zwischenspeicher aktiviert ist, werden die Daten
nicht in der Reihenfolge ihres Eintreffens geschrieben. Es kann
sogar passieren, dass das Schreiben mancher Blöcke
im Fall von starker Plattenaktivität auf unbefristete
Zeit verzögert wird. Ein Absturz oder Stromausfall
zu dieser Zeit kann die Dateisysteme erheblich beschädigen.
Wir entschieden uns daher für die sichere Variante
und stellten den Schreib-Zwischenspeicher ab. Leider war
damit auch ein großer Leistungsverlust verbunden, so
dass wir die Variable
nach dem Release wieder aktiviert haben. Sie sollten den
Wert der Variable hw.ata.wc auf Ihrem
System überprüfen. Wenn der Schreib-Zwischenspeicher
abgestellt ist, können Sie ihn aktivieren, indem Sie die
Variable auf den Wert 1 setzen. Dies muss zum Zeitpunkt
des Systemstarts im Boot-Loader geschehen. Eine Änderung
der Variable, nachdem der Kernel gestartet ist, hat keine
Auswirkungen.Weitere Informationen finden Sie in &man.ata.4;.
(kern.cam.scsi_delay)kern.cam.scsi_delayMit der Kerneloption kann
die Dauer des Systemstarts verringert werden. Der Vorgabewert
ist recht hoch und er verzögert den Systemstart um 15 oder
mehr Sekunden. Normalerweise kann dieser Wert, insbesondere
mit modernen Laufwerken, auf 5 Sekunden heruntergesetzt
werden. Ab &os; 5.0 wird dazu die
sysctl-Variable
kern.cam.scsi_delay benutzt. Die Variable
sowie die Kerneloption verwenden für die Zeitangabe
Millisekunden und nicht Sekunden.Soft UpdatesSoft UpdatestunefsMit &man.tunefs.8; lassen sich Feineinstellungen an
Dateisystemen vornehmen. Das Programm hat verschiedene Optionen,
von denen hier nur Soft Updates betrachtet werden. Soft Updates
werden wie folgt ein- und ausgeschaltet:&prompt.root; tunefs -n enable /filesystem
&prompt.root; tunefs -n disable /filesystemEin eingehängtes Dateisystem kann nicht mit &man.tunefs.8;
modifiziert werden. Soft Updates werden am besten im Single-User
Modus aktiviert, bevor Partitionen eingehangen sind.Ab &os; 4.5 können Sie Soft Updates mit der
Option -U von &man.newfs.8; beim Anlegen der
Dateisysteme aktivieren.Durch Einsatz eines Zwischenspeichers wird die Performance
im Bereich der Metadaten, vorwiegend beim Anlegen und Löschen
von Dateien, gesteigert. Wir empfehlen, Soft Updates auf allen
Dateisystemen zu aktivieren. Allerdings sollten Sie sich über
die zwei Nachteile von Soft Updates bewusst sein:
Erstens garantieren Soft Updates zwar die Konsistenz der Daten
im Fall eines Absturzes, aber es kann leicht passieren, dass
das Dateisystem über mehrere Sekunden oder gar eine Minute
nicht synchronisiert wurde. Im Fall eines Absturzes verlieren
Sie mit Soft Updates unter Umständen mehr Daten als ohne.
Zweitens verzögern Soft Updates die Freigabe von
Datenblöcken. Eine größere Aktualisierung
eines fast vollen Dateisystems, wie dem Root-Dateisystem,
z.B. während eines make installworld,
kann das Dateisystem vollaufen lassen. Dadurch würde
die Aktualisierung fehlschlagen.Details über Soft UpdatesSoft UpdatesDetailsEs gibt zwei klassische Herangehensweisen, wie
man die Metadaten des Dateisystems (also Daten
über Dateien, wie inode Bereiche oder Verzeichniseinträge)
aktualisiert auf die Platte zurückschreibt:Das historisch übliche Verfahren waren synchrone
Updates der Metadaten, d. h. wenn eine Änderung an
einem Verzeichnis nötig war, wurde anschließend
gewartet, bis diese Änderung tatsächlich auf die
Platte zurückgeschrieben worden war. Der
Inhalt der Dateien wurde im
Buffer Cache zwischengespeichert und
asynchron irgendwann später auf die Platte geschrieben.
Der Vorteil dieser Implementierung ist, dass sie
sicher funktioniert. Wenn während eines Updates ein
Ausfall erfolgt, haben die Metadaten immer einen
konsistenten Zustand. Eine Datei ist entweder komplett
angelegt oder gar nicht. Wenn die Datenblöcke einer
Datei im Fall eines Absturzes noch nicht den Weg aus dem
Buffer Cache auf die Platte gefunden haben,
kann &man.fsck.8; das Dateisystem reparieren, indem es die
Dateilänge einfach auf 0 setzt. Außerdem
ist die Implementierung einfach und überschaubar. Der
Nachteil ist, dass Änderungen der Metadaten sehr
langsam vor sich gehen. Ein rm -r
beispielsweise fasst alle Dateien eines Verzeichnisses
der Reihe nach an, aber jede dieser Änderungen am
Verzeichnis (Löschen einer Datei) wird einzeln synchron
auf die Platte geschrieben. Gleiches beim Auspacken
großer Hierarchien (tar -x).Der zweite Fall sind asynchrone Metadaten-Updates. Das
ist z. B. der Standard bei Linux/ext2fs oder die Variante
mount -o async für *BSD UFS. Man
schickt die Updates der Metadaten einfach auch noch
über den Buffer Cache, sie werden also
zwischen die Updates der normalen Daten eingeschoben.
Vorteil ist, dass man nun nicht mehr auf jeden Update
warten muss, Operationen, die zahlreiche Metadaten
ändern, werden also viel schneller. Auch
hier ist die Implementierung sehr einfach und wenig
anfällig für Fehler. Nachteil ist, dass
keinerlei Konsistenz des Dateisystems mehr gesichert ist.
Wenn mitten in einer Operation, die viele Metadaten
ändert, ein Ausfall erfolgt (Stromausfall, drücken
des Reset-Tasters), dann ist das Dateisystem
anschließend in einem unbestimmten Zustand. Niemand
kann genau sagen, was noch geschrieben worden ist und was
nicht mehr; die Datenblöcke einer Datei können
schon auf der Platte stehen, während die inode Tabelle
oder das zugehörige Verzeichnis nicht mehr aktualisiert
worden ist. Man kann praktisch kein fsck
mehr implementieren, das diesen Zustand
wieder reparieren kann, da die dazu nötigen
Informationen einfach auf der Platte fehlen. Wenn ein
Dateisystem derart beschädigt worden ist, kann man es
nur neu erzeugen (&man.newfs.8;) und die Daten
vom Backup zurückspielen.
Der historische Ausweg aus diesem Dilemma war ein
dirty region logging (auch als
Journalling bezeichnet, wenngleich
dieser Begriff nicht immer gleich benutzt und manchmal auch
für andere Formen von Transaktionsprotokollen gebraucht
wird). Man schreibt die Metadaten-Updates zwar synchron,
aber nur in einen kleinen Plattenbereich, die
logging area. Von da aus werden sie
dann asynchron auf ihre eigentlichen Bereiche verteilt. Da
die logging area ein kleines
zusammenhängendes Stückchen ist, haben die
Schreibköpfe der Platte bei massiven Operationen auf
Metadaten keine allzu großen Wege zurückzulegen,
so dass alles ein ganzes Stück schneller geht als
bei klassischen synchronen Updates. Die Komplexität
der Implementierung hält sich ebenfalls in Grenzen,
somit auch die Anfälligkeit für Fehler. Als
Nachteil ergibt sich, dass Metadaten zweimal auf die
Platte geschrieben werden müssen (einmal in die
logging area, einmal an die richtige
Stelle), so dass das im Falle regulärer
Arbeit (also keine gehäuften Metadatenoperationen) eine
Pessimisierung des Falls der synchronen
Updates eintritt, es wird alles langsamer. Dafür hat man
als Vorteil, dass im Falle eines Crashes der
konsistente Zustand dadurch erzielbar ist, dass die
angefangenen Operationen aus dem dirty region
log entweder zu Ende ausgeführt oder
komplett verworfen werden, wodurch das Dateisystem schnell
wieder zur Verfügung steht.Die Lösung von Kirk McKusick, dem Schöpfer von
Berkeley FFS, waren Soft Updates: die
notwendigen Updates der Metadaten werden im Speicher
gehalten und dann sortiert auf die Platte geschrieben
(ordered metadata updates). Dadurch hat man
den Effekt, dass im Falle massiver
Metadaten-Änderungen spätere Operationen die
vorhergehenden, noch nicht auf die Platte geschriebenen
Updates desselben Elements im Speicher
einholen. Alle Operationen, auf ein
Verzeichnis beispielsweise, werden also in der Regel noch im
Speicher abgewickelt, bevor der Update überhaupt auf
die Platte geschrieben wird (die dazugehörigen
Datenblöcke werden natürlich auch so sortiert,
dass sie nicht vor ihren Metadaten auf der Platte
sind). Im Fall eines Absturzes hat man ein implizites log
rewind: alle Operationen, die noch nicht den Weg auf
die Platte gefunden haben, sehen danach so aus, als
hätten sie nie stattgefunden. Man hat so also den
konsistenten Zustand von ca. 30 bis 60 Sekunden früher
sichergestellt. Der verwendete Algorithmus garantiert
dabei, dass alle tatsächlich benutzten Ressourcen
auch in den entsprechenden Bitmaps (Block- und inode
Tabellen) als belegt markiert sind. Der einzige Fehler, der
auftreten kann, ist, dass Ressourcen noch als
belegt markiert sind, die tatsächlich
frei sind. &man.fsck.8; erkennt dies und
korrigiert diese nicht mehr belegten Ressourcen. Die
Notwendigkeit eines Dateisystem-Checks darf aus diesem
Grunde auch ignoriert und das Dateisystem mittels
mount -f zwangsweise eingebunden werden.
Um noch allozierte Ressourcen freizugeben muss
später ein &man.fsck.8; nachgeholt werden. Das ist
dann auch die Idee des background fsck:
beim Starten des Systems wird lediglich ein
Schnappschuss des Filesystems
gemacht, mit dem &man.fsck.8; dann später arbeiten
kann. Alle Dateisysteme dürfen unsauber
eingebunden werden und das System kann sofort in den
Multiuser-Modus gehen. Danach wird ein
Hintergrund-fsck für die
Dateisysteme gestartet, die dies benötigen, um
möglicherweise irrtümlich belegte Ressourcen
freizugeben. (Dateisysteme ohne Soft
Updates benötigen natürlich immer noch
den üblichen (Vordergrund-)fsck,
bevor sie eingebunden werden können.)Der Vorteil ist, dass die Metadaten-Operationen
beinahe so schnell ablaufen wie im asynchronen Fall (also
durchaus auch schneller als beim logging, das
ja die Metadaten immer zweimal schreiben muss). Als
Nachteil stehen dem die Komplexität des Codes (mit
einer erhöhten Fehlerwahrscheinlichkeit in einem
bezüglich Datenverlust hoch sensiblen Bereich) und ein
erhöhter Speicherverbrauch entgegen. Außerdem
muss man sich an einige Eigenheiten
gewöhnen: Nach einem Absturz ist ein etwas älterer
Stand auf der Platte – statt einer leeren, aber bereits
angelegten Datei (wie nach einem herkömmlichen
fsck Lauf) ist auf einem Dateisystem mit
Soft Updates keine Spur der
entsprechenden Datei mehr zu sehen, da weder die Metadaten
noch der Dateiinhalt je auf die Platte geschrieben wurden.
Weiterhin kann der Platz nach einem rm -r
nicht sofort wieder als verfügbar markiert werden,
sondern erst dann, wenn der Update auch auf die Platte
vermittelt worden ist. Dies kann besonders dann Probleme
bereiten, wenn große Datenmengen in einem Dateisystem
ersetzt werden, das nicht genügend Platz hat, um alle
Dateien zweimal unterzubringen.Einstellungen von Kernel LimitsEinstellungenvon Kernel LimitsDatei und Prozeß Limitskern.maxfileskern.maxfilesAbhängig von den Anforderungen Ihres Systems
kann kern.maxfiles erhöht oder
erniedrigt werden. Die Variable legt die maximale
Anzahl von Dateideskriptoren auf Ihrem System fest. Wenn
die Dateideskriptoren aufgebraucht sind, werden Sie
die Meldung file: table is full
wiederholt im Puffer für Systemmeldungen sehen. Den
Inhalt des Puffers können Sie sich mit dmesg
anzeigen lassen.Jede offene Datei, jedes Socket und jede FIFO verbraucht
einen Dateideskriptor. Auf dicken Produktionsservern
können leicht Tausende Dateideskriptoren benötigt
werden, abhängig von der Art und Anzahl der gleichzeitig
laufenden Dienste.Die Voreinstellung von kern.maxfile
wird von aus Ihrer Kernelkonfiguration
bestimmt. kern.maxfiles wächst
proportional mit dem Wert von .
Wenn Sie einen angepassten Kernel kompilieren, empfiehlt es sich
diese Option entsprechend der maximalen Benutzerzahl Ihres
Systems einzustellen. Obwohl auf einer Produktionsmaschine
vielleicht nicht 256 Benutzer gleichzeitig angemeldet sind,
können die benötigten Ressourcen ähnlich denen
eines großen Webservers sein.Ab &os; 4.5 können Sie
in der Kernelkonfiguration auf 0 setzen. Das
System setzt dann automatisch einen passenden Wert, der von der
Größe Ihres Hauptspeichers abhängt,
ein.kern.ipc.somaxconnkern.ipc.somaxconnDie Variable kern.ipc.somaxconn
beschränkt die Größe der Warteschlange
(Listen-Queue) für
neue TCP-Verbindungen. Der Vorgabewert von
128 ist normalerweise zu klein, um neue
Verbindungen auf einem stark ausgelasteten Webserver
zuverlässig zu handhaben. Auf solchen Servern sollte
der Wert auf 1024 oder höher gesetzt
werden. Ein Dienst (z.B. &man.sendmail.8;, oder
Apache) kann die Größe
der Queue selbst einschränken. Oft gibt es die
Möglichkeit, die Größe der Listen-Queue in
einer Konfigurationsdatei einzustellen. Eine große
Listen-Queue übersteht vielleicht auch einen
Denial of Service Angriff (DoS).Netzwerk LimitsDie Kerneloption schreibt
die Anzahl der Netzwerkpuffer (Mbufs) fest, die das System besitzt.
Eine zu geringe Anzahl Mbufs auf einem Server mit viel Netzwerkverkehr
verringert die Leistung von &os;. Jeder Mbuf-Cluster nimmt
ungefähr 2 kB Speicher in Anspruch, so dass ein Wert
von 1024 insgesamt 2 Megabyte Speicher für Netzwerkpuffer
im System reserviert. Wie viele Cluster benötigt werden,
lässt sich durch eine einfache Berechnung herausfinden.
Wenn Sie einen Webserver besitzen, der maximal 1000 gleichzeitige
Verbindungen servieren soll und jede der Verbindungen je einen
16 kB großen Puffer zum Senden und Empfangen braucht,
brauchen Sie ungefähr 32 MB Speicher für
Netzwerkpuffer. Als Daumenregel verdoppeln Sie diese Zahl,
so dass sich für NMBCLUSTERS der Wert
2x32 MB / 2 kB = 32768 ergibt.
Für Maschinen mit viel Speicher sollten Werte zwischen
4096 und 32768 genommen werden. Sie können diesen Wert
nicht willkürlich erhöhen, da dies bereits zu einem
Absturz beim Systemstart führen kann. Mit der Option
von &man.netstat.1; können Sie den
Gebrauch der Netzwerkpuffer kontrollieren.Die Netzwerkpuffer können beim Systemstart mit der
Loader-Variablen kern.ipc.nmbclusters
eingestellt werden. Nur auf älteren &os;-Systemen
müssen Sie die Kerneloption
verwenden.Die Anzahl der &man.sendfile.2; Puffer muss auf ausgelasteten
Servern, die den Systemaufruf &man.sendfile.2; oft verwenden,
vielleicht erhöht werden. Dazu können Sie die
Kerneloption verwenden oder die
Anzahl der Puffer in /boot/loader.conf
(siehe &man.loader.8;) setzen. Die Puffer sollten erhöht
werden, wenn Sie Prozesse im Zustand sfbufa
sehen. Die schreibgeschützte sysctl-Variable
kern.ipc.nsfbufs zeigt die Anzahl
eingerichteten Puffer im Kernel. Der Wert dieser Variablen
wird normalerweise von kern.maxusers bestimmt.
Manchmal muss die Pufferanzahl jedoch manuell eingestellt
werden.Auch wenn ein Socket nicht blockierend angelegt wurde,
kann der Aufruf von &man.sendfile.2; blockieren, um auf
freie struct sf_buf Puffer zu warten.net.inet.ip.portrange.*net.inet.ip.portrange.*Die sysctl-Variable net.inet.ip.portrange.*
legt die Portnummern für TCP- und UDP-Sockets fest.
Es gibt drei Bereiche: den niedrigen Bereich, den
normalen Bereich und den hohen Bereich. Die meisten
Netzprogramme benutzen den normalen Bereich. Dieser Bereich
umfasst in der Voreinstellung die Portnummern 500 bis 5000
und wird durch die Variablen
net.inet.ip.portrange.first und
net.inet.ip.portrange.last festgelegt.
Die festgelegten Bereiche für Portnummern werden von
ausgehenden Verbindungen benutzt. Unter bestimmten
Umständen, beispielsweise auf stark ausgelasteten
Proxy-Servern, sind alle Portnummern für ausgehende
Verbindungen belegt. Bereiche
für Portnummern spielen auf Servern keine Rolle, die
hauptsächlich eingehende Verbindungen verarbeiten (wie ein
normaler Webserver) oder nur eine begrenzte Anzahl ausgehender
Verbindungen öffnen (beispielsweise ein Mail-Relay).
Wenn Sie keine freien Portnummern mehr haben, sollten Sie
die Variable net.inet.ip.portrange.last
langsam erhöhen. Ein Wert von 10000,
20000 oder 30000 ist
angemessen. Beachten Sie auch eine vorhandene
Firewall, wenn Sie die Bereiche für Portnummern
ändern. Einige Firewalls sperren große Bereiche
(normalerweise aus den kleinen Portnummern) und erwarten,
dass hohe Portnummern für ausgehende Verbindungen
verwendet werden. Daher kann es erforderlich sein, den
Wert von net.inet.ip.portrange.first
zu erhöhen.TCP Bandwidth Delay Product BegrenzungTCP Bandwidth Delay Product Begrenzungnet.inet.tcp.inflight_enableDie TCP Bandwidth Delay Product Begrenzung gleicht
TCP/Vegas von NetBSD. Die
Begrenzung wird aktiviert, indem Sie die sysctl-Variable
net.inet.tcp.inflight_enable auf den
Wert 1 setzen. Das System wird dann
versuchen, für jede Verbindung, das Produkt aus der
Übertragungsrate und der Verzögerungszeit zu
bestimmen. Dieses Produkt begrenzt die Datenmenge, die
für einen optimales Durchsatz zwischengespeichert
werden muss.Diese Begrenzung ist nützlich, wenn Sie Daten
über Verbindungen mit einem hohen Produkt aus
Übertragungsrate und Verzögerungszeit wie Modems,
Gigabit-Ethernet oder schnellen WANs, zur Verfügung
stellen. Insbesondere wirkt sich die Begrenzung aus, wenn
die Verbindung die TCP-Option
Window-scaling verwendet oder
große Sende-Fenster
(send window) benutzt.
Schalten Sie die Debug-Meldungen aus, wenn Sie die Begrenzung
aktiviert haben. Dazu setzen Sie die Variable
net.inet.tcp.inflight_debug auf
0. Auf Produktions-Systemen sollten Sie
zudem die Variable net.inet.tcp.inflight_min
mindestens auf den Wert 6144 setzen.
Allerdings kann ein zu hoher Wert, abhängig von der
Verbindung, die Begrenzungsfunktion unwirksam machen.
Die Begrenzung reduziert die Datenmenge in den Queues von Routern
und Switches, sowie die Datenmenge in der Queue der lokalen
Netzwerkkarte. Die Verzögerungszeit
(Round Trip Time) für
interaktive Anwendungen sinkt, da weniger Pakete
zwischengespeichert werden. Dies gilt besonders für
Verbindungen über langsame Modems. Die Begrenzung
wirkt sich allerdings nur auf das Versenden von Daten aus
(Uploads, Server). Auf den Empfang von Daten (Downloads)
hat die Begrenzung keine Auswirkungen.Die Variable net.inet.tcp.inflight_stab
sollte nicht angepasst werden. Der
Vorgabewert der Variablen beträgt 20,
das heißt es werden maximal zwei Pakete zu dem Produkt
aus Übertragungsrate und Verzögerungszeit addiert.
Dies stabilisiert den Algorithmus und verbessert die
Reaktionszeit auf Veränderungen. Bei langsamen
Verbindungen können sich aber die Laufzeiten der Pakete
erhöhen (ohne diesen Algorithmus wären sie
allerdings noch höher). In solchen Fällen
können Sie versuchen, den Wert der Variablen auf
15, 10 oder
5 zu erniedrigen. Gleichzeitig müssen
Sie vielleicht auch net.inet.tcp.inflight_min
auf einen kleineren Wert (beispielsweise 3500)
setzen. Ändern Sie diese Variablen nur ab, wenn Sie
keine anderen Möglichkeiten mehr haben.Hinzufügen von Swap-BereichenEgal wie vorausschauend Sie planen, manchmal entspricht ein System
einfach nicht Ihren Erwartungen. Es ist leicht, mehr Swap-Bereiche
hinzuzufügen. Dazu stehen Ihnen drei Wege offen: Sie
können eine neue Platte einbauen, den Swap-Bereich über NFS
ansprechen oder eine Swap-Datei auf einer existierenden Partition
einrichten.Swap auf einer neuen FestplatteDer einfachste Weg, zusätzlich einen Swap-Bereich
einzurichten, ist der Einbau einer neuen Platte, da Sie ja immer
eine neue Platte einbauen können. Nachdem Sie das getan
haben, lesen Sie bitte noch einmal den Abschnitt
Swap
Partition aus dem Kapitel Vorbereitende Konfiguration
des Handbuchs. Dort finden Sie Vorschläge, wie Sie den
Swap-Bereich am besten einrichten.Swap-Bereiche über NFSSwap-Bereiche über NFS sollten Sie nur dann einsetzen, wenn
Sie über keine lokale Platte verfügen. In &os;
Versionen vor 4.X ist dies zudem sehr langsam und nicht effizient.
Ab &os; 4.0 ist das Nutzen von Swap über NFS genügend
schnell und effizient, doch wird es durch die zur Verfügung
stehende Bandbreite limitiert und belastet zusätzlich den
NFS-Server.Swap-DateienSie können eine Datei festgelegter Größe als
Swap-Bereich nutzen. Im folgenden Beispiel werden wir eine 64 MB
große Datei mit dem Namen /usr/swap0
benutzen, Sie können natürlich einen beliebigen Namen
für den Swap-Bereich benutzen.Erstellen einer Swap-Datei mit &os; 4.XZuerst stellen Sie bitte sicher, dass Ihr Kernel den
vnode-Treiber enthält. In neueren Versionen von
GENERIC ist dieser
nicht enthalten.pseudo-device vn 1 #Vnode driver (turns a file into a device)Erstellen Sie das vn-Gerät:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vn0Legen Sie die Swap-Datei /usr/swap0
an:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Setzen Sie die richtigen Berechtigungen für
/usr/swap0:&prompt.root; chmod 0600 /usr/swap0Aktivieren Sie die Swap-Datei in
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Um die Swap-Datei zu aktivieren, führen Sie
entweder einen Neustart durch oder geben das folgende Kommando
ein:&prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swapErstellen einer Swap-Datei mit &os; 5.XStellen Sie sicher, dass der Kernel RAM-Disks
(&man.md.4;) unterstützt. Dies ist in der
GENERIC-Konfiguration
voreingestellt.device md # Memory "disks"Legen Sie die Swap-Datei
/usr/swap0 an:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Setzen Sie die richtigen Berechtigungen für
/usr/swap0:&prompt.root; chmod 0600 /usr/swap0Aktivieren Sie die Swap-Datei
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Um die Swap-Datei zu aktivieren, führen Sie
entweder einen Neustart durch oder geben das folgende Kommando
ein:&prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0HitenPandyaVerfasst von TomRhodesEnergie- und RessourcenverwaltungEs ist sehr wichtig, Hardware effizient einzusetzen. Vor der
Einführung des Advanced Configuration and Power
Interface (ACPI) konnten der
Stromverbrauch und die Wärmeabgabe eines Systems nur sehr
schlecht von Betriebssystemen gesteuert werden. Die Hardware wurde
mit BIOS-Funktionen, wie Plug and Play BIOS
(PNPBIOS) oder Advanced Power Management
(APM), gesteuert. Das Betriebssystem soll aber das System
überwachen können und auf Ereignisse, beispielsweise einen
unerwarteten Temperaturanstieg, reagieren können.Dieser Abschnitt erklärt das Advanced Configuration and
Power Interface (ACPI). Beachten Sie, dass Sie
das ACPI erst ab &os; 5.X als Kernelmodul
zur Verfügung steht. In &os; 4.9 können Sie
ACPI aktivieren, indem Sie die nachstehende
Zeile in die Kernelkonfigurationsdatei aufnehmen und den Kernel
neu übersetzen:device acpiWas ist ACPI?Advanced Configuration and Power Interface
(ACPI) ist ein Standard verschiedener
Hersteller, der die Verwaltung von Hardware und
Energiesparfunktionen festlegt. Die
ACPI-Funktionen können von einem
Betriebssystem gesteuert werden. Der Vorgänger des
ACPI, Advanced Power Management
(APM), der auch in &os; 4.X verwendet
wird, erwies sich in modernen Systemen als unzureichend.Mängel des Advanced Power Managements (APM)Das Advanced Power Management (APM)
steuert den Energieverbrauch eines Systems auf Basis
der Systemaktivität. Das APM-BIOS wird von dem
Hersteller des Systems zur Verfügung gestellt
und ist auf die spezielle Hardware angepasst. Der
APM-Treiber des Betriebssystems greift auf das
APM Software Interface zu, das den
Energieverbrauch regelt.Das APM hat hauptsächlich
vier Probleme. Erstens läuft die Energieverwaltung
unabhängig vom Betriebssystem in einem
(herstellerspezifischen) BIOS. Beispielsweise kann
das APM-BIOS die Festplatten nach einer konfigurierbaren
Zeit ohne die Zustimmung des Betriebssystems herunterfahren.
Zweitens befindet sich die ganze APM-Logik im BIOS; das
Betriebssystem hat gar keine APM-Komponenten. Bei Problemen
mit dem APM-BIOS muss das Flash-ROM aktualisiert werden.
Diese Prozedur ist gefährlich, da sie im Fehlerfall
das System unbrauchbar machen kann. Zum Dritten ist APM
eine Technik, die herstellerspezifisch ist und nicht
koordiniert wird. Fehler im BIOS eines Herstellers werden
nicht unbedingt im BIOS anderer Hersteller korrigiert.
Das letzte Problem ist, dass im APM-BIOS nicht genügend
Platz vorhanden ist, um eine durchdachte oder eine auf den
Zweck der Maschine zugeschnittene Energieverwaltung
zu implementieren.Das Plug and Play BIOS (PNPBIOS)
war ebenfalls unzureichend. Das PNPBIOS verwendet eine
16-Bit-Technik. Damit das Betriebssystem das PNPBIOS
ansprechen kann, muss es in einer 16-Bit-Emulation laufen.Der APM-Treiber von &os; ist in
der Hilfeseite &man.apm.4; beschrieben.Konfiguration des ACPIDas Modul acpi.ko wird
standardmäß beim Systemstart vom &man.loader.8;
geladen und sollte daher nicht
fest in den Kernel eingebunden werden. Dadurch kann
acpi.ko ohne einen Neubau des Kernels ersetzt
werden und das Modul ist leichter zu testen. Wenn Sie in der
Ausgabe von &man.dmesg.8; das Wort ACPI sehen,
ist das Modul geladen worden. Es ist nicht sinnvoll, das Modul
im laufenden Betrieb zu laden, dies kann sogar manchmal fatale
Folgen haben.
Das Modul kann im laufenden Betrieb nicht entfernt werden,
da es zur Kommunikation mit der Hardware verwendet wird.
Mit &man.acpiconf.8; können Sie das ACPI
konfigurieren (unter anderem können Sie damit auch die
Energieverwaltung deaktivieren).ACPI und APM
können nicht zusammen verwendet werden. Das zuletzt
geladene Modul beendet sich, sobald es bemerkt, dass das andere
Modul geladen ist.Mit &man.acpiconf.8; können Sie das System in einen
Ruhemodus (sleep mode) versetzen.
Es gibt verschiedene Modi (von 1 bis
5), die Sie auf der Kommandozeile mit
angeben können. Für die meisten
Anwender ist der Modus 1 völlig
ausreichend. Der Modus 5 schaltet das System
aus (Soft-off) und entspricht dem
Ausführen des folgenden Befehls:&prompt.root; halt -pWeitere Informationen entnehmen Sie bitte der Hilfeseite
&man.acpiconf.8;.
+
+
+
+
+
+
+ Nate
+ Lawson
+ Verfasst von
+
+
+
+
+ Peter
+ Schultz
+ Mit Beiträgen von
+
+
+ Tom
+ Rhodes
+
+
+
+
+ ACPI-Fehlersuche
+
+ ACPI ist ein gänzlich neuer
+ Weg, um Geräte aufzufinden und deren Stromverbrauch
+ zu regulieren. Weiterhin bietet ACPI
+ einen einheitlichen Zugriff auf Geräte, die vorher
+ vom BIOS verwaltet wurden. Es werden
+ zwar Fortschritte gemacht, dass ACPI
+ auf allen Systemen läuft, doch tauchen immer wieder
+ Fehler auf: fehlerhafter Bytecode der
+ ACPI-Machine-Language
+ (AML) einiger Systemplatinen,
+ ein unvollständiges &os;-Kernel-Subsystem oder
+ Fehler im ACPI-CA-Interpreter von Intel.
+
+ Dieser Abschnitt hilft Ihnen, zusammen mit den Betreuern
+ des &os;-ACPI-Subsystems, Fehlerquellen
+ zu finden und Fehler zu beseitigen. Danke, dass Sie diesen
+ Abschnitt lesen; hoffentlich hilft er, Ihre Systemprobleme
+ zu lösen.
+
+
+ Fehlerberichte einreichen
+
+ Wenn Sie sofort einen Fehlerbericht einsenden wollen,
+ schicken Sie bitte die folgenden Informationen an
+ die Mailingliste freebsd-acpi:
+
+
+
+ Beschreiben Sie den Fehler und alle Umstände,
+ unter denen der Fehler auftritt. Geben Sie
+ ebenfalls den Typ und das Modell Ihres Systems
+ an. Wenn Sie einen neuen Fehler entdeckt haben,
+ versuchen Sie möglichst genau zu beschreiben,
+ wann der Fehler das erste Mal aufgetreten ist.
+
+
+
+ Die Ausgaben eines Systemstarts
+ (boot ).
+ Geben Sie auch alle Fehlermeldungen an, die erscheinen,
+ wenn Sie den Fehler provozieren.
+
+
+
+ Die Ausgaben eines Systemstarts
+ (boot ) ohne
+ ACPI, wenn das Problem
+ ohne ACPI nicht auftritt.
+
+
+
+ Die Ausgabe von sysctl -a | grep hw.acpi.
+ Dieses Kommando zeigt die vom System unterstützten
+ ACPI-Funktionen an.
+
+
+
+ Die URL, unter der die
+ ACPI-Source-Language
+ (ASL) liegt. Schicken Sie
+ bitte nicht die ASL
+ an die Mailingliste, da die ASL
+ sehr groß sein kann. Eine Kopie der
+ ASL erstellen Sie mit dem
+ nachstehenden Befehl:
+
+ &prompt.root; acpidump -t -d > $NAME-$SYSTEM.asl
+
+ Setzen Sie bitte für $NAME
+ den Namen Ihres Kontos und für
+ $SYSTEM den Hersteller und
+ das Modell Ihres Systems ein. Zum Beispiel:
+ njl-FooCo6000.asl.
+
+
+
+ Obwohl die meisten Entwickler die Mailingliste
+ &a.current.name; lesen, sollten Sie Fehlerberichte an
+ die Liste &a.acpi.name; schicken. Seien Sie bitte
+ geduldig; wir haben alle Arbeit außerhalb des Projekts.
+ Wenn der Fehler nicht offensichtlich ist, bitten
+ wir Sie vielleicht, einen offiziellen Fehlerbericht
+ (PR) mit &man.send-pr.1; einzusenden.
+ Geben Sie im Fehlerbericht bitte dieselben Informationen
+ wie oben an. Mithilfe der PRs
+ verfolgen und lösen wir Probleme. Senden Sie
+ bitte keinen PR ein, ohne vorher
+ den Fehlerbericht an die Liste &a.acpi.name; zu senden.
+ Wir benutzen die PRs als Erinnerung
+ an bestehende Probleme und nicht zum Sammeln aller
+ Probleme. Es kann sein, dass der Fehler schon von
+ jemand anderem gemeldet wurde.
+
+
+
+ ACPI-Grundlagen
+
+ ACPI gibt es in allen modernen Rechnern
+ der ia32- (x86), ia64- (Itanium) und amd64- (AMD) Architektur.
+ Der vollständige Standard bietet Funktionen
+ zur Steuerung und Verwaltung der CPU-Leistung,
+ der Stromversorgung, von Wärmebereichen, Batterien,
+ eingebetteten Controllern und Bussen. Auf den meisten
+ Systemen wird nicht der vollständige Standard implementiert.
+ Arbeitsplatzrechner besitzen meist nur Funktionen zur
+ Verwaltung der Busse, während Notebooks Funktionen
+ zur Temperaturkontrolle und Ruhezustände besitzen.
+
+ Ein ACPI konformes System
+ besitzt verschiedene Komponenten. Die BIOS-
+ und Chipsatz-Hersteller stellen mehrere statische
+ Tabellen bereit (zum Beispiel die
+ Fixed-ACPI-Description-Table,
+ FADT). Die Tabellen enthalten beispielsweise
+ die mit SMP-Systemen benutzte
+ APIC-Map, Konfigurationsregister und
+ einfache Konfigurationen. Zusätzlich gibt es die
+ Differentiated-System-Description-Table (DSDT),
+ die Bytecode enthält. Die Tabelle ordnet Geräte
+ und Methoden in einem baumartigen Namensraum an.
+
+ Ein ACPI-Treiber muss die statischen
+ Tabellen einlesen, einen Interpreter für den Bytecode
+ bereitstellen und die Gerätetreiber im Kernel so
+ modifizieren, dass sie mit dem ACPI-Subsystem
+ kommunizieren. Für &os;, Linux und NetBSD hat Intel
+ den Interpreter ACPI-CA, zur Verfügung
+ gestellt. Der Quelltext zu ACPI-CA
+ befindet sich im Verzeichnis
+ src/sys/contrib/dev/acpica.
+ Die Schnittstelle von ACPI-CA zu &os;
+ befindet sich unter src/sys/dev/acpica/Osd.
+ Treiber, die verschiedene ACPI-Geräte
+ implementieren, befinden sich im Verzeichnis
+ src/sys/dev/acpica.
+
+
+
+ Häufige Probleme
+
+ Damit ACPI richtig funktioniert,
+ müssen alle Teile funktionieren. Im Folgenden
+ finden Sie eine Liste mit Problemen und möglichen
+ Umgehungen oder Fehlerbehebungen. Die Liste ist nach
+ der Häufigkeit, mit der die Probleme auftreten,
+ sortiert.
+
+
+ Suspend/Resume
+
+ ACPI kennt drei
+ Suspend-to-RAM-Zustände
+ (STR):
+ S1-S3.
+ Es gibt einen Suspend-to-Disk-Zustand:
+ S4. Der Zustand S5
+ wird Soft-Off genannt. In diesem Zustand befindet
+ sich ein Rechner, wenn die Stromversorgung angeschlossen
+ ist, der Rechner aber nicht hochgefahren ist. Der
+ Zustand S4 kann auf zwei Arten
+ implementiert werden:
+ S4BIOS und
+ S4OS.
+ Im ersten Fall wird der Suspend-to-Disk-Zustand durch
+ das BIOS hergestellt im zweiten
+ Fall alleine durch das Betriebssystem.
+
+
+ Die Suspend-Zustände sind Ruhezustände,
+ in denen der Rechner weniger Energie als im
+ Normalbetrieb benötigt. Resume bezeichnet
+ die Rückkehr zum Normalbetrieb.
+
+
+ Die Suspend-Zustände können Sie mit
+ dem Kommando sysctl -a | grep hw.acpi
+ ermitteln. Das Folgende könnte beispielsweise
+ ausgegeben werden:
+
+ hw.acpi.supported_sleep_state: S3 S4 S5
+hw.acpi.s4bios: 0
+
+ Diese Ausgabe besagt, dass mit dem Befehl
+ acpiconf -s die Zustände
+ S3, S4OS
+ und S5 eingestellt werden können.
+ Hätte den Wert
+ 1, gäbe es den Zustand
+ S4BIOS anstelle
+ von S4OS.
+
+ Wenn Sie die Suspend- und Resume-Funktionen
+ testen, fangen Sie mit dem S1-Zustand
+ an, wenn er angeboten wird. Dieser Zustand wird
+ am ehesten funktionieren, da der Zustand wenig
+ Treiber-Unterstützung benötigt. Der Zustand
+ S2 ist ähnlich wie
+ S1, allerdings hat ihn noch niemand
+ implementiert. Als nächstes sollten Sie den
+ Zustand S3 ausprobieren. Dies
+ ist der tiefste STR-Schlafzustand.
+ Dieser Zustand ist auf massive Treiber-Unterstützung
+ angewiesen, um die Geräte wieder richtig zu
+ initialisieren. Wenn Sie Probleme mit diesem Zustand
+ haben, können Sie die Mailingliste
+ &a.acpi.name; anschreiben. Erwarten Sie allerdings
+ nicht zu viel: Es gibt viele Treiber und Geräte,
+ an denen noch gearbeitet und getestet wird.
+
+ Um das Problem einzugrenzen, entfernen Sie soviele
+ Treiber wie möglich aus dem Kernel. Sie können
+ das Problem isolieren, indem Sie einen Treiber nach
+ dem anderen laden, bis der Fehler wieder auftritt.
+ Typischerweise verursachen binäre Treiber wie
+ nvidia.ko,
+ X11-Grafiktreiber und
+ USB-Treiber die meisten Fehler,
+ hingegen laufen Ethernet-Treiber für gewöhnlich
+ sehr zuverlässig. Wenn ein Treiber
+ zuverlässig geladen und entfernt werden kann,
+ können Sie den Vorgang automatisieren, indem
+ Sie die entsprechenden Kommandos in die Dateien
+ /etc/rc.suspend und
+ /etc/rc.resume einfügen.
+ In den Dateien finden Sie ein deaktiviertes Beispiel,
+ das einen Treiber lädt und wieder entfernt.
+ Ist die Bildschirmanzeige bei der Wiederaufnahme
+ des Betriebs gestört, setzen Sie bitte die
+ Variable auf
+ 0. Versuchen Sie auch, die Variable
+ auf kürzere
+ Zeitspannen zu setzen.
+
+ Die Suspend- und Resume-Funktionen können
+ Sie auch auf einer neuen Linux-Distribution
+ mit ACPI testen. Wenn es mit
+ Linux funktioniert, liegt das Problem wahrscheinlich
+ bei einem &os;-Treiber. Es hilft uns, das Problem
+ zu lösen, wenn Sie feststellen können, welcher
+ Treiber das Problem verursacht. Beachten Sie bitte,
+ dass die ACPI-Entwickler normalerweise
+ keine anderen Treiber pflegen (beispielsweise Sound- oder
+ ATA-Treiber). Es ist wohl das beste,
+ die Ergebnisse der Fehlersuche an die Mailingliste
+ &a.current.name; und den Entwickler des Treibers
+ zu schicken. Wenn Ihnen danach ist, versuchen Sie,
+ den Fehler in der Resume-Funktion zu finden, indem
+ Sie einige &man.printf.3;-Anweisungen in den Code
+ des fehlerhaften Treibers einfügen.
+
+ Schließlich können Sie ACPI
+ noch abschalten und stattdessen APM
+ verwenden. Wenn die Suspend- und Resume-Funktionen mit
+ APM funktionieren, sollten Sie
+ vielleicht besser APM verwenden
+ (insbesondere mit alter Hardware von vor dem Jahr 2000).
+ Die Hersteller benötigten einige Zeit, um
+ ACPI korrekt zu implementieren, daher
+ gibt es mit älterer Hardware oft
+ ACPI-Probleme.
+
+
+
+ Temporäre oder permanente Systemhänger
+
+ Die meisten Systemhänger entstehen durch verlorene
+ Interrupts oder einen Interrupt-Sturm.
+ Probleme werden verursacht durch die Art, in der das
+ BIOS Interrupts vor dem Systemstart
+ konfiguriert, durch eine fehlerhafte
+ APIC-Tabelle und durch die
+ Zustellung des System-Control-Interrupts
+ (SCI).
+
+ Anhand der Ausgabe des Befehls
+ vmstat -i können Sie verlorene
+ Interrupts von einem Interrupt-Sturm unterscheiden.
+ Untersuchen Sie die Ausgabezeile, die acpi0
+ enthält. Ein Interrupt-Sturm liegt vor, wenn
+ der Zähler öfter als ein paar Mal pro
+ Sekunde hochgezählt wird. Wenn sich das System
+ aufgehangen hat, versuchen Sie mit der Tastenkombination
+
+ Ctrl
+ Alt
+ Esc
+ in den Debugger DDB
+ zu gelangen. Geben Sie dort den Befehl
+ ein.
+
+ Wenn Sie Interrupt-Probleme haben, ist es vorerst
+ wohl am besten, APIC zu deaktivieren.
+ Tragen Sie dazu die Zeile
+ hint.apic.0.disabled="1" in
+ loader.conf ein.
+
-
- Fehlersuche und ACPI ausschalten
-
- Meist werden Sie erst etwas von ACPI
- merken, wenn etwas nicht funktioniert. Der &man.acpi.4;-Treiber
- besitzt viele Optionen zur Fehlersuche. Es ist sogar
- möglich, einzelne Teile des ACPI-Systems
- auszuschalten. Weitere Informationen zur Fehlersuche
- erhalten Sie in der Hilfeseite &man.acpi.4;.
-
- Manchmal muss das acpi.ko-Modul
- entfernt werden. Dies ist nur mit dem &man.loader.8;
- während des Systemstarts möglich. An der
- Eingabeaufforderung von &man.loader.8; können Sie
- das Modul mit dem Befehl unset acpi_load
- entfernen. Wenn Sie den Befehl nicht bei jedem Start
- absetzen wollen, können Sie verhindern, dass der
- &man.acpi.4;-Treiber überhaupt geladen wird. Dazu
- fügen Sie die folgende Zeile in
- /boot/loader.conf ein:
-
- exec="unset acpi_load"
-
- Ab &os; 5.1-RELEASE gibt es ein Boot-Menü, das
- den Bootvorgang von &os; steuert. Darin kann
- ACPI abgestellt werden: Wählen
- Sie dazu einfach die Option
- 2. Boot &os; with ACPI disabled
- aus.
+
+ Abstürze (Panics)
+
+ Panics werden so
+ schnell wie möglich behoben; mit ACPI
+ kommt es aber selten dazu. Zuerst sollten Sie
+ die Panic reproduzieren und dann versuchen einen
+ backtrace (eine
+ Rückverfolgung der Funktionsaufrufe) zu erstellen.
+ Richten Sie dazu den DDB über
+ die serielle Schnittstelle (siehe
+ ) oder eine gesonderte
+ &man.dump.8;-Partition ein. In DDB
+ können Sie den backtrace
+ mit dem Kommando tr erstellen.
+ Falls Sie den backtrace
+ vom Bildschirm abschreiben müssen, schreiben
+ Sie bitte mindestens die fünf ersten und die
+ fünf letzten Zeile der Ausgabe auf.
+
+ Versuchen Sie anschließend, das Problem
+ durch einen Neustart ohne ACPI
+ zu beseitigen. Wenn das funktioniert hat, können
+ Sie versuchen, das verantwortliche
+ ACPI-Subsystem durch Setzen der
+ Variablen
+ herauszufinden. Die Hilfeseite &man.acpi.4; enthält
+ dazu einige Beispiele.
+
+
+
+ Nach einem Suspend oder einem Stopp startet
+ das System wieder
+
+ Setzen Sie zuerst in &man.loader.conf.5; die Variable
+ auf
+ 0. Damit wird verhindert, dass
+ ACPI während des Systemabschlusses
+ die Bearbeitung verschiedener Ereignisse deaktiviert.
+ Auf manchen Systemen muss die Variable den Wert
+ 1 besitzen (die Voreinstellung).
+ Normalerweise wird der unerwünschte Neustart
+ des Systems durch Setzen dieser Variablen behoben.
+
+
+
+ Andere Probleme
+
+ Wenn Sie weitere Probleme mit ACPI
+ haben (Umgang mit einer Docking-Station, nicht erkannte
+ Geräte), schicken Sie bitte eine Beschreibung an die
+ Mailingliste. Allerdings kann es sein, dass einige
+ Probleme von noch unvollständigen Teilen des
+ ACPI-Subsystems abhängen und
+ es etwas dauern kann bis diese Teile fertig sind.
+ Seien Sie geduldig und rechnen Sie damit, dass wir
+ Ihnen Fehlerbehebungen zum Testen senden.
+
+
+
+
+ ASL, acpidump und
+ IASL
+
+ Ein häufiges Problem ist fehlerhafter Bytecode
+ des BIOS-Herstellers. Dies erkennen
+ Sie an Kernelmeldungen auf der Konsole wie die folgende:
+
+ ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND
+
+ Oft können Sie das Problem dadurch lösen,
+ dass Sie die neuste BIOS-Version
+ einspielen. Die meisten Meldungen auf der Konsole sind
+ harmlos, wenn aber beispielsweise der Batteriestatus
+ falsch angezeigt wird, können Sie in den
+ Meldungen nach Problemen mit der
+ AML-Machine-Language
+ (AML) suchen. Der Bytecode der
+ AML wird aus der
+ ACPI-Source-Language (ASL)
+ übersetzt und in einer Tabelle, der DSDT,
+ abgelegt. Eine Kopie der ASL
+ können Sie mit dem Befehl &man.acpidump.8; erstellen.
+ Verwenden Sie mit diesem Befehl sowohl die Option
+ (die Inhalte der statischen
+ Tabellen anzeigen) als auch die Option
+ (die AML in ASL
+ zurückübersetzen). Ein Beispiel für
+ die Syntax finden Sie im Abschnitt Fehlerberichte einreichen.
+
+ Sie können einfach prüfen, ob sich die
+ ASL übersetzen lässt.
+ Für gewöhnlich können Sie Warnungen
+ während des Übersetzens ignorieren.
+ Fehlermeldungen führen normal dazu, dass
+ ACPI fehlerhaft arbeitet. Ihre
+ ASL übersetzen Sie mit dem
+ nachstehenden Kommando:
+
+ &prompt.root; iasl ihre.asl
+
+
+
+ Die ASL reparieren
+
+ Auf lange Sicht ist es unser Ziel, dass
+ ACPI ohne Eingriffe des Benutzers
+ läuft. Zurzeit entwickeln wir allerdings noch
+ Umgehungen für Fehler der BIOS-Hersteller.
+ Microsofts Interpreter (acpi.sys
+ und acpiec.sys) prüft die
+ ASL nicht streng gegen den Standard.
+ Daher reparieren BIOS-Hersteller,
+ die ACPI nur unter Windows testen,
+ ihre ASL nicht. Wir hoffen, dass
+ wir das vom Standard abweichende Verhalten des
+ Microsoft-Interpreters dokumentieren und in &os; replizieren
+ können. Dadurch müssen Benutzer ihre
+ ASL nicht selbst reparieren.
+ Sie können Ihre ASL selbst reparieren,
+ wenn Sie ein Problem umgehen und uns helfen möchten.
+ Senden Sie uns bitte die mit &man.diff.1; erstellte Differenz
+ zwischen alter und neuer ASL. Wir
+ werden versuchen, den Interpreter ACPI-CA
+ zu korrigieren, damit die Fehlerbehebung nicht mehr
+ erforderlich ist.
+
+ Die nachfolgende Liste enthält häufige
+ Fehlermeldungen, deren Ursache und eine Beschreibung,
+ wie die Fehler korrigiert werden:
+
+
+ Abhängigkeiten vom Betriebssystem
+
+ Einige AMLs gehen davon aus, dass
+ die Welt ausschließlich aus verschiedenen
+ Windows-Versionen besteht. &os; kann vorgeben, irgendein
+ Betriebssystem zu sein. Versuchen Sie das Betriebssystem,
+ das Sie in der ASL finden, in der
+ Datei /boot/loader.conf anzugeben:
+ hw.acpi.osname="Windows 2001".
+
+
+ Fehlende Return-Anweisungen
+
+ Einige Methoden verzichten auf die vom Standard
+ vorgeschriebene Rückgabe eines Wertes. Obwohl
+ der Interpreter ACPI-CA dies nicht
+ beheben kann, besitzt &os; die Möglichkeit, den
+ Rückgabewert implizit zu setzen. Wenn Sie
+ wissen, welcher Wert zurückgegeben werden muss,
+ können Sie die fehlenden Return-Anweisungen
+ selbst einsetzen. Die Option
+ zwingt iasl, die ASL
+ zu übersetzen.
+
+
+
+ Überschreiben der vorgegebenen
+ AML
+
+ Nachdem Sie Ihre ASL in der
+ Datei ihre.asl angepasst haben,
+ übersetzen Sie die ASL wie folgt:
+
+ &prompt.root; iasl ihre.asl
+
+ Mit der Option erzwingen Sie das
+ Erstellen der AML auch wenn während
+ der Übersetzung Fehler auftreten. Beachten Sie,
+ dass einige Fehler, wie fehlende Return-Anweisungen,
+ automatisch vom Interpreter umgangen werden.
+
+ In der Voreinstellung erstellt der Befehl
+ iasl die Ausgabedatei
+ DSDT.aml. Wenn Sie diese Datei
+ anstelle der fehlerhaften Kopie des BIOS
+ laden wollen, editieren Sie /boot/loader.conf
+ wie folgt:
+
+ acpi_dsdt_load="YES"
+acpi_dsdt_name="/boot/DSDT.aml"
+
+ Stellen Sie bitte sicher, dass sich die Datei
+ DSDT.aml im Verzeichnis
+ /boot befindet.
+
+
+
+ ACPI-Meldungen zur
+ Fehlersuche erzeugen
+
+ Der ACPI-Treiber besitzt
+ flexible Möglichkeiten zur Fehlersuche. Sie
+ können sowohl die zu untersuchenden Subsysteme
+ als auch die zu erzeugenden Ausgaben festlegen. Die zu
+ untersuchenden Subsysteme werden als so genannte
+ layers angegeben. Die Subsysteme sind in
+ ACPI-CA-Komponenten
+ (ACPI_ALL_COMPONENTS) und
+ ACPI-Hardware (ACPI_ALL_DRIVERS)
+ aufgeteilt. Welche Meldungen ausgegeben werden, wird über
+ level gesteuert. level reicht
+ von ACPI_LV_ERROR (es werden nur Fehler
+ ausgegeben) bis zu ACPI_LV_VERBOSE (alles
+ wird ausgegeben). level ist eine Bitmaske,
+ sodass verschiedene Stufen auf einmal (durch Leerzeichen
+ getrennt) angegeben werden können. Die erzeugte
+ Ausgabemenge passt vielleicht nicht in den Konsolenpuffer.
+ In diesem Fall sollten Sie die Ausgaben mithilfe einer
+ seriellen Konsole sichern. Die möglichen Werte
+ für layers und level
+ werden in der Hilfeseite &man.acpi.4; beschrieben.
+
+ Die Ausgaben zur Fehlersuche sind in der Voreinstellung
+ nicht aktiviert. Wenn ACPI im Kernel
+ enthalten ist, fügen Sie
+ zur Kernelkonfigurationsdatei hinzu. Sie können die
+ Ausgaben zur Fehlersuche global aktivieren, indem Sie in der
+ Datei /etc/make.conf die Zeile
+ einfügen. Das Modul
+ acpi.ko können Sie wie folgt
+ neu übersetzen:
+
+ &prompt.root; cd /sys/modules/acpi/acpi
+ && make clean &&
+ make ACPI_DEBUG=1
+
+ Installieren Sie anschließend
+ acpi.ko im Verzeichnis
+ /boot/kernel.
+ In der Datei loader.conf stellen Sie
+ level und layer ein. Das
+ folgende Beispiel aktiviert die Ausgabe von Fehlern für
+ alle ACPI-CA-Komponenten und alle
+ ACPI-Hardwaretreiber (wie
+ CPU, LID):
+
+ debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
+debug.acpi.level="ACPI_LV_ERROR"
+
+ Wenn ein Problem durch ein bestimmtes Ereignis,
+ beispielsweise den Start nach einem Ruhezustand, hervorgerufen
+ wird, können Sie die Einstellungen für
+ level und layer auch mit dem
+ Kommando sysctl vornehmen. In diesem
+ Fall müssen Sie die Datei loader.conf
+ nicht editieren. Auf der sysctl-Kommandozeile
+ geben Sie dieselben Variablennamen wie in
+ loader.conf an.
+
+
+
+ ACPI-Informationsquellen
+
+ Weitere Informationen zu ACPI
+ erhalten Sie an den folgenden Stellen:
+
+
+
+ die ACPI-Mailingliste:
+
+ freebsd-acpi@FreeBSD.org,
+
+
+
+ die Archive der ACPI-Mailingliste:
+ ,
+
+
+
+ die alten Archive der ACPI-Mailingliste:
+ ,
+
+
+
+ die ACPI-Spezifikation (Version 2.0):
+ ,
+
+
+
+ in den nachstehenden &os;-Hilfeseiten:
+ &man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;,
+ &man.iasl.8; und &man.acpidb.8;,
+
+
+
+
+ DSDT debugging resource
+ (als Beispiel wird Compaq erläutert, die
+ Ressource ist aber dennoch nützlich).
+
+
+
diff --git a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
index 362014f825..833d12a353 100644
--- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -1,1925 +1,1959 @@
JimMockUmstrukturiert und aktualisiert von JordanHubbardIm Original von Poul-HenningKampJohnPolstraNikClaytonMartinHeinenÜbersetzt von Das Neueste und BesteÜbersicht&os; wird zwischen einzelnen Releases konstant weiter entwickelt.
Es gibt mehrere einfache Möglichkeiten, ein System auf dem
aktuellen Stand der Entwicklung zu halten. Seien Sie jedoch gewarnt:
Die neueste Version ist nicht für jeden geeignet! Dieses
Kapitel hilft Ihnen bei der Entscheidung, ob Sie mit dem
Entwicklungssystem Schritt halten oder ein Release verwenden
wollen.Nachdem Sie dieses Kapitel gelesen haben, werden Sieden Unterschied der beiden Entwicklerversionen
&os.stable; und &os.current; kennen,wissen, wie Sie Ihr System mit
CVSup, CVS
oder CTM aktualisieren.Wissen, wie Sie mit make world das
komplette Basissystem wieder neu bauen und installieren
können.Bevor Sie dieses Kapitel lesen, sollten SieIhr Netzwerk richtig konfiguriert haben () undwissen, wie Sie Software Dritter installieren
().&os.current; vs. &os.stable;-CURRENT-STABLEFreeBSD besitzt zwei Entwicklungszweige: &os.current; und
&os.stable;. Dieser Abschnitt beschreibt beide Zweige und
erläutert, wie Sie Ihr System auf dem aktuellen Stand
eines Zweiges halten. Zuerst wird &os.current; vorgestellt, dann
&os.stable;.&os.current;Beachten Sie im Folgenden, dass &os.current; die Spitze
der Entwicklung von &os; ist. Benutzer von &os.current; sollten
über sehr gute technische Fähigkeiten verfügen und
in der Lage sein, schwierige Probleme alleine zu lösen. Wenn
&os; neu für Sie ist, überlegen Sie sich genau, ob Sie
&os.current; benutzen wollen.Was ist &os.current;?Snapshot&os.current; besteht aus den neuesten Quellen des
FreeBSD-Systems. Es enthält Sachen, an denen gerade
gearbeitet wird, experimentelle Änderungen und
Übergangsmechanismen, die im nächsten offiziellen
Release der Software enthalten sein können oder nicht.
Obwohl &os.current; täglich von vielen Entwicklern gebaut
wird, gibt es Zeiträume, in denen sich das System nicht
bauen lässt. Diese Probleme werden so schnell wie
möglich gelöst, aber ob Sie mit &os.current;
Schiffbruch erleiden oder die gewünschten Verbesserungen
erhalten, kann von dem Zeitpunkt abhängen, an dem Sie sich
den Quelltext besorgt haben!Wer braucht &os.current;?&os.current; wird hauptsächlich für 3
Interessengruppen zur Verfügung gestellt:Entwickler, die an einem Teil des Quellbaums arbeiten und
daher über die aktuellen Quellen verfügen
müssen.Tester, die bereit sind, Zeit in das Lösen von
Problemen zu investieren und sicherstellen, dass
&os.current; so stabil wie möglich bleibt. Weiterhin
Leute, die Vorschläge zu Änderungen oder der
generellen Entwicklung von &os; machen und Patches
bereitstellen, um diese Vorschläge zu realisieren.Für Leute, die die Entwicklung im Auge behalten
wollen, oder die Quellen zu Referenzzwecken (zum Beispiel
darin lesen, aber nicht verwenden) benutzen wollen. Auch diese
Gruppe macht Vorschläge oder steuert Quellcode
bei.Was &os.current; nicht ist!Der schnellste Weg, neue Sachen vor dem offiziellen
Release auszuprobieren. Bedenken Sie, dass der erste,
der die neuen Sachen ausprobiert, auch der erste ist, der die
neuen Fehler findet.Ein schneller Weg, um an Fehlerbehebungen (engl.
bug fixes) zu kommen. Jede
Version von &os.current; führt mit gleicher
Wahrscheinlichkeit neue Fehler ein, mit der sie alte
behebt.In irgendeiner Form offiziell
unterstützt. Wir tun unser Bestes, um Leuten
aus den drei legitimen Benutzergruppen von
&os.current; zu helfen, aber wir haben einfach nicht
die Zeit, technische Unterstützung zu
erbringen. Das kommt nicht daher, dass wir kleinliche,
gemeine Leute sind, die anderen nicht helfen wollen (wenn
wir das wären, würden wir &os; nicht machen), wir
können einfach nicht jeden Tag Hunderte Nachrichten
beantworten und an &os; arbeiten! Vor
die Wahl gestellt, &os; zu verbessern oder jede Menge Fragen
zu experimentellem Code zu beantworten, haben sich die
Entwickler für ersteres entschieden.Benutzen von &os.current;-CURRENTbenutzenEs ist essentiell, die Mailinglisten
&a.current.name; und &a.cvsall.name; zu lesen. Wenn Sie
&a.current.name; nicht lesen, verpassen Sie die Kommentare
anderer über den momentanen Zustand des Systems und rennen
demzufolge in viele bekannte Probleme, die schon gelöst
sind. Noch kritischer ist, dass Sie wichtige
Bekanntmachungen verpassen, die erhebliche Auswirkungen
auf die Stabilität Ihres Systems haben können.In der &a.cvsall.name; Mailingliste sehen Sie zu jeder
Änderung das Commit-Log, das Informationen zu
möglichen Seiteneffekten enthält.Um diese Listen zu abonnieren (oder zu lesen)
besuchen Sie bitte die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken.Beschaffen Sie sich die Quellen von einem
&os;-Spiegel. Sie haben
dazu zwei Möglichkeiten:cvsupcron-CURRENTmit CVSup
synchronisierenBenutzen Sie das Programm
cvsup
mit der Datei standard-supfile
aus dem Verzeichnis
/usr/share/examples/cvsup.
Dies ist die empfohlene Methode, da Sie die ganzen
Quellen nur einmal herunterladen und danach nur noch
Änderungen beziehen. Viele lassen
cvsup aus cron
heraus laufen, um ihre Quellen automatisch auf Stand
zu bringen. Sie müssen die obige Sup-Datei
anpassen und cvsup
in Ihrer Umgebung konfigurieren.-CURRENTmit CTM synchronisierenCTM
kommt in Frage, wenn Sie
über eine schlechte Internet-Anbindung (hoher Preis
oder nur E-Mail Zugriff) verfügen. Der Umgang mit
CTM ist allerdings recht
mühsam und Sie können beschädigte Dateien
erhalten. Daher wird es selten benutzt, was wiederum
dazu führt, dass es über längere Zeit
nicht funktioniert. Wir empfehlen jedem mit einem
9600 bps oder schnellerem Modem,
CVSup
zu benutzen.Wenn Sie die Quellen einsetzen und nicht nur darin
lesen wollen, besorgen Sie sich bitte die
kompletten Quellen von &os.current; und
nicht nur ausgesuchte Teile. Der Grund hierfür ist,
dass die verschiedenen Teile der Quellen voneinander
abhängen. Es ist ziemlich sicher, dass Sie in
Schwierigkeiten geraten, wenn Sie versuchen, nur einen Teil
der Quellen zu übersetzen.-CURRENTübersetzen
- Bevor Sie &os.current; übersetzen, sollten Sie sich
- das Makefile in
- /usr/src genau anschauen. Wenn Sie
+
+ Sehen Sie sich das Makefile in
+ /usr/src genau an, bevor Sie
+ &os.current; übersetzen. Wenn Sie
&os; das erste Mal aktualisieren, sollten Sie sowohl
einen Kernel als auch das
System neu installieren.
Lesen Sie bitte die Mailingliste &a.current;
und /usr/src/UPDATING, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Seien Sie aktiv! Wenn Sie &os.current; laufen lassen,
wollen wir wissen, was Sie darüber denken, besonders
wenn Sie Verbesserungsvorschläge oder Fehlerbehebungen
haben. Verbesserungsvorschläge, die Code enthalten,
werden übrigens begeistert entgegengenommen.&os.stable;Was ist &os.stable;?-STABLE&os.stable; ist der Entwicklungszweig, auf dem Releases
erstellt werden. Dieser Zweig ändert sich langsamer als
&os.current; und alle Änderungen hier sollten zuvor in
&os.current; ausgetestet sein. Beachten Sie, dass dies
immer noch ein Entwicklungszweig ist und
daher zu jedem Zeitpunkt die Quellen von &os.stable; verwendbar
sein können oder nicht. &os.stable; ist Teil des
Entwicklungsprozesses und nicht für Endanwender
gedacht.Wer braucht &os.stable;?Wenn Sie den FreeBSD-Entwicklungsprozess, besonders im
Hinblick auf das nächste Release, verfolgen oder
dazu beitragen wollen, sollten Sie erwägen, &os.stable; zu
benutzen.Auch wenn sicherheitsrelevante Fehlerbehebungen in den
&os.stable; Zweig einfließen, müssen Sie deswegen
noch lange nicht &os.stable; verfolgen. Jeder der FreeBSD
Sicherheitshinweise beschreibt für jedes betroffene Release,
Das stimmt nicht ganz. Obwohl wir alte FreeBSD
Releases für einige Jahre unterstützen, können
wir sie nicht ewig unterstützen. Eine vollständige
Beschreibung der Sicherheitspolitik für alte FreeBSD
Releases entnehmen Sie bitte http://www.FreeBSD.org/security/.
wie sie einen sicherheitsrelevanten Fehler beheben.
Wenn Sie den Entwicklungszweig aus Sicherheitsgründen
verfolgen wollen, bedenken Sie, dass Sie neben
Fehlerbehebungen auch eine Vielzahl unerwünschter
Änderungen erhalten werden.Obwohl wir versuchen sicherzustellen, dass der
&os.stable; Zweig sich jederzeit übersetzen lässt
und läuft, können wir dafür keine Garantie
übernehmen. Auch wenn Neuentwicklungen in &os.current;
stattfinden, ist es jedoch so, dass mehr Leute
&os.stable; benutzen als &os.current; und es daher unvermeidlich
ist, dass Fehler und Grenzfälle erst in &os.stable;
auffallen.Aus diesen Gründen empfehlen wir Ihnen
nicht, blindlings &os.stable; zu benutzen.
Es ist wichtig, dass Sie &os.stable; zuerst sorgfältig
in einer Testumgebung austesten, bevor Sie Ihre Produktion
auf &os.stable; migrieren.Wenn Sie dies nicht leisten können, empfehlen wir Ihnen,
das aktuelle FreeBSD-Release zu verwenden. Benutzen Sie dann den
binären Update-Mechanismus, um auf neue Releases
zu migrieren.Benutzen von &os.stable;-STABLEbenutzenLesen Sie Mailingliste &a.stable.name;, damit Sie über
Abhängigkeiten beim Bau von &os.stable; und Sachen, die
besondere Aufmerksamkeit erfordern, informiert sind.
Umstrittene Fehlerbehebungen oder Änderungen werden von
den Entwicklern auf dieser Liste bekannt gegeben. Dies
erlaubt es den Benutzern, Einwände gegen die
vorgeschlagenen Änderungen vorzubringen.In der &a.cvsall.name; Mailingliste sehen Sie zu jeder
Änderung das Commit-Log, das Informationen zu
möglichen Seiteneffekten enthält.Um diese Listen oder andere Listen zu abonnieren
besuchen Sie bitte die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken.Wenn Sie ein neues System installieren und so aktuell wie
möglich sein wollen, holen Sie sich einfach den neusten
Snapshot von
- und installieren ihn wie ein normales Release. Das
- aktuelle Release können Sie auch mit den folgenden
- Anweisungen von den Spiegeln
- beziehen.
+ und installieren ihn wie ein normales Release. Sie
+ können ebenfalls das neuste &os.stable; von
+ den Spiegeln beziehen
+ und Ihr System nach den folgenden Anweisungen
+ aktualisieren.
Wenn Sie schon ein älteres Release von &os;
und das System mit dem Quellcode aktualisieren wollen,
benutzen Sie einen der &os;-Spiegel. Sie haben
dazu zwei Möglichkeiten:cvsupcron-STABLEmit CVSup
synchronisierenBenutzen Sie das Programm
cvsup
mit der Datei stable-supfile
aus dem Verzeichnis
/usr/share/examples/cvsup.
Dies ist die empfohlene Methode, da Sie die ganzen
Quellen nur einmal herunterladen und danach nur noch
Änderungen beziehen. Viele lassen
cvsup aus cron
heraus laufen, um ihre Quellen automatisch auf Stand
zu bringen. Sie müssen das oben erwähnte
supfile anpassen und cvsup konfigurieren.-STABLEmit CTM synchronisierenBenutzen Sie
CTM. Wenn Sie über
keine schnelle und billige Internet-Anbindung
verfügen, sollten Sie diese Methode in Betracht
ziehen.Benutzen Sie cvsup oder
ftp, wenn Sie schnellen Zugriff auf die
Quellen brauchen und die Bandbreite keine Rolle spielt,
andernfalls benutzen Sie
CTM.-STABLEübersetzenBevor Sie &os.stable; übersetzen, sollten Sie sich
das Makefile in
/usr/src genau anschauen. Wenn Sie
&os; das erste Mal aktualisieren, sollten Sie sowohl
einen Kernel als auch das
System neu installieren.
Lesen Sie bitte die Mailingliste &a.stable;
und /usr/src/UPDATING, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Synchronisation der QuellenSie können eine Internet-Verbindung (oder E-Mail) dazu
nutzen, Teile von &os;, wie die Quellen zu einzelnen Projekten, oder
das Gesamtsystem, aktuell zu halten. Dazu bieten wir die Dienste
AnonymousCVS,
CVSup und
CTM an.Obwohl es möglich ist, nur Teile des Quellbaums zu
aktualisieren, ist die einzige unterstütze Migrationsprozedur,
den kompletten Quellbaum zu aktualisieren und alles, das
heißt das Userland (z.B. alle Programme in
/bin und /sbin) und die
Kernelquellen, neu zu übersetzen. Wenn Sie nur einen Teil der
Quellen, zum Beispiel nur den Kernel oder nur die Programme aus dem
Userland, aktualisieren, werden Sie oft Probleme haben, die von
Übersetzungsfehlern über Kernel-Panics bis hin zu
Beschädigungen Ihrer Daten reichen können.anonymous CVSAnonymous CVS und
CVSup benutzen die
Pull-Methode
Von engl. to pull =
ziehen. Der Client holt sich bei dieser
Methode die Dateien ab., um die Quellen zu aktualisieren. Im Fall von
CVSup ruft der Benutzer oder ein
cron-Skript cvsup auf, das
wiederum mit einem cvsupd Server interagiert, um
Ihre Quellen zu aktualisieren. Mit beiden Methoden erhalten Sie
aktuelle Updates zu einem genau von Ihnen bestimmten Zeitpunkt. Sie
können die Prozedur auf bestimmte Dateien oder Verzeichnisse
einschränken, so dass Sie nur die Updates bekommen, die
für Sie von Interesse sind. Die Updates werden zur Laufzeit,
abhängig von den Sachen, die Sie schon haben und den Sachen, die
Sie haben wollen, auf dem Server generiert. Anonymous
CVS ist eine Erweiterung von
CVS, die es Ihnen erlaubt, Änderungen
direkt aus einem entfernten CVS-Repository zu ziehen.
Anonymous CVS ist leichter zu handhaben
als CVSup, doch ist letzteres sehr viel
effizienter.CTMIm Gegensatz dazu vergleicht CTM Ihre
Quellen nicht mit denen auf einem Server. Stattdessen läuft auf
dem Server ein Skript, das Änderungen an Dateien gegenüber
seinem vorigen Lauf bemerkt, die Änderungen komprimiert, mit
einer Sequenznummer versieht und für das Verschicken per E-Mail
kodiert (es werden nur druckbare ASCII-Zeichen verwendet). Wenn Sie
diese CTM-Deltas erhalten haben, können Sie sie
mit &man.ctm.rmail.1; benutzen, welches die Deltas dekodiert,
verifiziert und dann die Änderungen an Ihren Quellen vornimmt.
Dieses Verfahren ist viel effizienter als
CVSup und erzeugt auch weniger Last auf
unseren Servern, da es die
Push-Methode
Von engl. to push =
schieben. Der Server schickt dem Client die
Dateien. verwendet.Es gibt natürlich noch weitere Unterschiede, die Sie
beachten sollten. Wenn Sie unabsichtlich Teile Ihres Archivs
löschen, wird das von CVSup
wie Anonymous CVS erkannt
und repariert. Wenn sich fehlerhafte Dateien in Ihrem Quellbaum
befinden, löschen Sie diese einfach und synchronisieren erneut.
CTM leistet das nicht,
wenn Sie Teile des Quellbaums gelöscht haben und keine Sicherung
besitzen, müssen Sie von neuem, das heißt vom letzten
Basis-Delta, starten und die Änderungen wieder
mit CTM nachziehen.
Bau mit make worldmake worldWenn Sie Ihren lokalen Quellbaum mit einer bestimmten FreeBSD
Version (&os.stable;, &os.current;, usw.) synchronisiert haben,
können Sie diesen benutzen, um das System neu zu
bauen.Erstellen Sie eine Sicherung!Es kann nicht oft genug betont werden, wie wichtig es ist, Ihr
System zu sichern, bevor Sie die nachfolgenden
Schritte ausführen. Obwohl der Neubau des Systems eine
einfache Aufgabe ist, solange Sie sich an die folgende Anleitung
halten, ist es unvermeidlich, dass Sie Fehler machen, oder Ihr
System nicht mehr bootet, weil andere Fehler in den Quellbaum
eingeführt haben.Stellen Sie sicher, dass Sie eine Sicherung erstellt haben
und über eine Fixit-Floppy verfügen. Wahrscheinlich
brauchen Sie sie nicht zu benutzen, aber gehen Sie auf Nummer
Sicher!Abonnieren Sie die richtige MailinglisteMailinglisteDie &os.stable; und &os.current; Zweige befinden sich in
ständiger Entwicklung. Die Leute, die zu
&os; beitragen, sind Menschen und ab und zu machen sie
Fehler.Manchmal sind diese Fehler harmlos und lassen Ihr System eine
Warnung ausgeben. Die Fehler können allerdings auch
katastrophal sein und dazu führen, dass Sie Ihr System
nicht mehr booten können, Dateisysteme beschädigt
werden oder Schlimmeres passiert.Wenn solche Probleme auftauchen, wird ein
heads up an die passende Mailingliste geschickt, welches
das Problem erklärt und die betroffenen Systeme benennt. Eine
all clear Meldung wird versendet, wenn das
Problem gelöst ist.Wenn Sie &os.stable; oder &os.current; benutzen und nicht die
Mailinglisten &a.stable; beziehungsweise &a.current; lesen, bringen
Sie sich nur unnötig in Schwierigkeiten.
+
+ Richtig aktualisieren
+
+ Aktualisieren Sie ein System nach der folgenden
+ Vorschrift:
+
+ &prompt.root; make buildworld
+&prompt.root; make buildkernel
+&prompt.root; make installkernel
+&prompt.root; reboot
+
+ Fahren Sie das System in den Einbenutzermodus
+ (beispielsweise indem Sie im Loader
+ boot -s eingeben) und starten
+ Sie dann die nachstehenden Kommandos:
+
+ &prompt.root; mergemaster -p
+&prompt.root; make installworld
+&prompt.root; mergemaster
+&prompt.root; reboot
+
+
+ Lesen Sie bitte weiter
+
+ Die obige Vorschrift ist nur eine
+ Gedächtnisstütze. Um die einzelnen
+ Schritte zu verstehen, lesen Sie bitte die
+ folgenden Abschnitte, insbesondere wenn Sie
+ einen angepassten Kernel erstellen.
+
+
+
Lesen Sie /usr/src/UPDATINGBevor Sie etwas anderes tun, lesen Sie bitte
/usr/src/UPDATING (oder die entsprechende
Datei, wenn Sie den Quellcode woanders installiert haben). Die
Datei enthält wichtige Informationen zu Problemen, auf die Sie
stoßen könnten oder gibt die Reihenfolge vor, in der Sie
bestimmte Kommandos laufen lassen müssen. Die Anweisungen in
UPDATING sind aktueller als die in diesem
Handbuch. Im Zweifelsfall folgen Sie bitte den Anweisungen aus
UPDATING.Das Lesen von UPDATING ersetzt nicht das
Abonnieren der richtigen Mailingliste. Die beiden Voraussetzungen
ergänzen sich, es reicht nicht aus, nur eine zu
erfüllen.Überprüfen Sie
/etc/make.confmake.confÜberprüfen Sie die Dateien
/etc/defaults/make.conf und
/etc/make.conf. Die erste enthält
Vorgabewerte, von denen die meisten auskommentiert sind. Um diese
während des Neubaus des Systems zu nutzen, tragen Sie die
Werte in /etc/make.conf ein. Beachten Sie,
dass alles, was Sie in /etc/make.conf
eintragen, bei jedem Aufruf von make angezogen
wird. Es ist also klug, hier etwas Sinnvolles einzutragen.Typischerweise wollen Sie die Zeilen, die
CFLAGS und NOPROFILE
enthalten, aus /etc/defaults/make.conf nach
/etc/make.conf übertragen und dort
aktivieren.Sehen Sie sich auch die anderen Definitionen, wie
COPTFLAGS oder NOPORTDOCS an
und entscheiden Sie, ob Sie diese aktivieren wollen.Aktualisieren Sie die Dateien in /etcDas Verzeichnis /etc enthält den
Großteil der Konfigurationsdateien des Systems und Skripten,
die beim Start des Systems ausgeführt werden. Einige dieser
Skripten ändern sich bei einer Migration auf eine neue
FreeBSD-Version.Einige der Konfigurationsdateien, besonders
/etc/group, werden für den Normalbetrieb
des Systems gebraucht.Es gab Fälle, in denen der Installationsteil von
make world auf das Vorhandensein von bestimmten
Accounts oder Gruppen angewiesen war, die aber zurzeit des Updates
noch nicht vorhanden waren. Demzufolge kam es zu Problemen
bei der Migration.Ein Beispiel dafür ist der vor kurzem hinzugefügte
Benutzer smmsp. Die Installationsprozedur
schlug an der Stelle fehl, an der &man.mtree.8;
versuchte, /var/spool/clientmqueue
anzulegen.Um dieses Problem zu umgehen, vergleichen Sie die Gruppen in
/usr/src/etc/group mit den auf Ihrem System
vorhandenen Gruppen. Wenn sich in dieser Datei neue Gruppen
befinden, kopieren Sie diese nach /etc/group.
Gruppen, die in /etc/group dieselbe GID wie in
/usr/src/etc/group aber einen
unterschiedlichen Namen haben, sollten Sie umbenennen.Seit 4.6-RELEASE besitzt &man.mergemaster.8; einen
prä-buildworld Modus, der mit aktiviert
wird. In diesem Modus werden nur Dateien verglichen, die für
den Erfolg von buildworld oder
installworld essentiell sind. Wenn Ihre
alte Version von mergemaster die Option
noch nicht unterstützt, nehmen Sie beim
ersten Lauf die neue Version aus dem Quellbaum:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pWenn Sie besonders paranoid sind, sollten Sie Ihr System nach
Dateien absuchen, die der Gruppe, die Sie umbenennen oder
löschen, gehören:&prompt.root; find / -group GID -printDas obige Kommando zeigt alle Dateien an, die der Gruppe
GID (dies kann entweder ein
Gruppenname oder eine numerische ID sein) gehören.Wechseln Sie in den Single-User ModusSingle-User ModusSie können das System im Single-User Modus
übersetzen. Abgesehen davon, dass dies etwas schneller
ist, werden bei der Installation des Systems viele wichtige Dateien,
wie die Standard-Systemprogramme, die Bibliotheken und
Include-Dateien, verändert. Sie bringen sich in
Schwierigkeiten, wenn Sie diese Dateien auf einem laufenden System
verändern, besonders dann, wenn zu dieser Zeit Benutzer auf
dem System aktiv sind.MehrbenutzermodusEine andere Methode übersetzt das System im
Mehrbenutzermodus und wechselt für die Installation den
Single-User Modus. Wenn Sie diese Methode benutzen wollen, warten
Sie mit den folgenden Schritten, bis der Bau des Systems fertig
ist und Sie mit installkernel oder
installworld installieren wollen.Als Superuser können Sie mit dem folgenden Kommando ein
laufendes System in den Single-User Modus bringen:&prompt.root; Alternativ können Sie das System mit der Option
in den Single-User Modus booten. Setzen Sie
dann die folgenden Kommandos ab:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aDie Kommandos überprüfen die Dateisysteme,
hängen / wieder beschreibbar ein,
hängen dann alle anderen UFS Dateisysteme aus
/etc/fstab ein und aktivieren den
Swap-Bereich.Zeigt Ihre CMOS-Uhr die lokale Zeit und nicht GMT an, dies
erkennen Sie daran, dass &man.date.1; die
falsche Zeit und eine flasche Zeitzone anzeigt, setzen Sie das
folgende Kommando ab:&prompt.root; adjkerntz -iDies stellt sicher, dass Ihre Zeitzone richtig
eingestellt ist. Ohne dieses Kommando werden Sie
vielleicht später Probleme bekommen.Entfernen Sie /usr/objDie neugebauten Teile des Systems werden in der Voreinstellung
unter /usr/obj gespeichert. Die Verzeichnisse
dort spiegeln die Struktur unter
/usr/src.Sie können den make world Prozess
beschleunigen, indem Sie dieses Verzeichnis entfernen. Dies
erspart Ihnen zudem einigen Ärger aufgrund von
Abhängigkeiten.Einige Dateien unter /usr/obj sind
vielleicht durch die -Option
(siehe &man.chflags.1;) schreibgeschützt, die vor dem
Löschen entfernt werden muss.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Übersetzen der QuellenSichern der AusgabenFür den Fall, dass etwas schief geht, sollten Sie
die Ausgaben von &man.make.1; in einer Datei sichern, damit Sie
eine Kopie der Fehlermeldung besitzen. Das mag Ihnen nicht
helfen, den Fehler zu finden, kann aber anderen helfen, wenn Sie
Ihr Problem in einer der &os;-Mailinglisten schildern.Dazu können Sie einfach das Kommando &man.script.1;
benutzen, dem Sie beim Aufruf als Parameter den Dateinamen
für die Ausgaben mitgeben. Setzen Sie das Kommando
unmittelbar vor dem Neubau ab und geben Sie
exit ein, wenn der Bau abgeschlossen
ist:&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… Ausgaben des Kommandos …
&prompt.root; exit
Script done, …Sichern Sie die Ausgaben nicht in /tmp,
da dieses Verzeichnis beim nächsten Boot aufgeräumt
werden kann. Ein geeigneteres Verzeichnis ist
/var/tmp, wie im vorigen Beispiel gezeigt,
oder das Heimatverzeichnis von root.Übersetzen des BasissystemsWechseln Sie in das Verzeichnis, in dem die Quellen liegen
(in der Voreinstellung ist das
/usr/src):&prompt.root; cd /usr/srcmakeZum Neubau der Welt benutzen Sie &man.make.1;. Dieses
Kommando liest ein Makefile, das Anweisungen
enthält, wie die Programme, aus denen &os; besteht, zu bauen
sind und in welcher Reihenfolge diese zu bauen sind.Ein typischer Aufruf von make sieht wie
folgt aus:&prompt.root; make -x -DVARIABLEtargetIn diesem Beispiel ist
eine Option, die
Sie an &man.make.1; weitergeben wollen. Eine Liste gültiger
Optionen finden Sie in der &man.make.1; Manualpage.Das Verhalten eines Makefiles wird von
Variablen bestimmt. Mit
setzen Sie
eine Variable. Diese Variablen sind dieselben, die auch in
/etc/make.conf gesetzt werden, dies ist nur
ein alternativer Weg, Variablen zu setzen.Um zu verhindern, dass die profiled
Bibliotheken gebaut werden, rufen Sie make wie
folgt auf:&prompt.root; make -DNOPROFILE targetDieser Aufruf entspricht dem folgenden Eintrag in
/etc/make.conf:NOPROFILE= true # Avoid compiling profiled librariesJedes Makefile definiert einige
Ziele, die festlegen, was genau zu tun ist. Mit
target wählen Sie eins dieser
Ziele aus.Einige Ziele im Makefile sind nicht
für den Endanwender gedacht, sondern unterteilen den
Bauprozess in eine Reihe von Einzelschritten.Im Regelfall müssen Sie &man.make.1; keine Parameter
mitgeben, so dass Ihre Kommandozeile wie folgt aussehen
wird:&prompt.root; make targetIn der &os; Version 2.2.5 wurde das Ziel
world in zwei Ziele aufgespalten:
buildworld und
installworld. Tatsächlich ist das
zuerst in &os.current; passiert und wurde dann irgendwann
zwischen den Versionen 2.2.2 und 2.2.5 in &os.stable;
eingebaut.Mit buildworld wird ein kompletter
Baum unterhalb von /usr/obj gebaut, der mit
installworld auf dem System installiert
werden kann.Dies ist aus zwei Gründen nützlich. Erstens
können Sie das System auf einem laufenden System bauen, da die
Bauprozedur abgekapselt vom Rest des Systems ist. Das System
lässt sich im Mehrbenutzermodus ohne negative
Seiteneffekte bauen. Die Installation mit
installworld sollte aber immer noch im
Single-User Modus erfolgen.Zweitens können Sie NFS benutzen, um mehrere Maschinen
in Ihrem Netzwerk zu aktualisieren. Wenn Sie die Maschinen
A, B und C
aktualisieren wollen, lassen sie make
buildworld und make installworld auf
A laufen. Auf den Maschinen B
und C können Sie die
Verzeichnisse /usr/src und
/usr/obj von A einhängen
und brauchen dort nur noch make installworld
auszuführen, um die Bauresultate zu installieren.Obwohl das Ziel world noch
existiert, sollten Sie es wirklich nicht mehr benutzen.Um das System zu bauen, setzen Sie das folgende Kommando
ab:&prompt.root; make buildworldMit können Sie
make anweisen, mehrere Prozesse zu starten.
Besonders effektiv ist das auf Mehrprozessor-Systemen. Da aber
der Übersetzungsprozess hauptsächlich von IO statt
der CPU bestimmt wird, ist diese Option auch auf
Einprozessor-Systemen nützlich.Auf einem typischen Einprozessor-System können Sie den
folgenden Befehl absetzen:&prompt.root; make -j4 buildworld&man.make.1; wird dann bis zu vier Prozesse gleichzeitig
laufen lassen. Erfahrungsberichte aus den Mailinglisten zeigen,
dass dieser Aufruf typischerweise den besten
Geschwindigkeitsgewinn bringt.Wenn Sie ein Mehrprozessor-System besitzen und SMP in Ihrem
Kernel konfiguriert ist, probieren Sie Werte zwischen 6 und 10
aus.Beachten Sie bitte, dass dies noch nicht richtig
unterstützt wird und dass es bei einigen
Änderungen am Quellbaum zu Fehlern kommen kann. Wenn Sie
diesen Parameter benutzt haben und der Bau nicht funktioniert,
bauen Sie bitte noch einmal ohne den Parameter, bevor Sie ein
Problem melden.Laufzeitenmake worldLaufzeitenDie Laufzeit eines Baus wird von vielen Faktoren
beeinflusst. Ein 500 MHz &pentium; III braucht
ungefähr zwei Stunden um &os.stable; zu bauen. Der Bau von
&os.current; dauert etwas länger.Übersetzen und Installation des KernelsKernelÜbersetzenUm das Beste aus Ihrem System zu holen, sollten Sie einen neuen
Kernel kompilieren. Praktisch gesehen ist das sogar notwendig, da
sich einige Datenstrukturen geändert haben und Programme wie
&man.ps.1; oder &man.top.1; nur mit einem Kernel zusammen arbeiten,
der auch zu dem entsprechenden Quellcode passt.Am einfachsten und sichersten bauen Sie dazu den
GENERIC Kernel. Obwohl der
GENERIC Kernel vielleicht nicht alle
Ihre Geräte unterstützt, sollte er alles enthalten,
um das System in den Single-User Modus zu booten. Dies ist auch
ein guter Test, um zu sehen, dass das System
ordnungsgemäß funktioniert. Nachdem Sie mit
GENERIC gebootet und sichergestellt haben,
dass Ihr System funktioniert, können Sie einen neuen
Kernel mit Ihrer Konfigurationsdatei bauen.Wenn Sie einen Update nach &os; 4.0 oder höher
durchführen, sollten Sie den Kernel nicht mit der
herkömmlichen Methode,
die in
beschrieben ist, bauen. Stattdessen benutzen Sie die nachstehenden
Kommandos (die neue Methode)
nach dem
Bau des Basissystems mit
buildworld.Wenn Sie einen angepassten Kernel erstellen wollen und
bereits über eine Konfigurationsdatei verfügen,
geben Sie diese, wie im folgenden Beispiel gezeigt, auf der
Kommandozeile an:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELWenn Sie FreeBSD 4.2 oder eine ältere Version
verwenden, ersetzen Sie KERNCONF= durch
KERNEL=. Ab der 4.2-STABLE Version vom
2. Februar 2001 können Sie die Variable
KERNCONF verwenden.Wenn kern.securelevel einen Wert
größer als 1 besitzt
und der Kernel mit noschg
oder ähnlichen Optionen geschützt ist, müssen Sie
installkernel im Einbenutzermodus
ausführen. Wenn das nicht der Fall ist, sollten die beiden
Kommandos problemlos im Mehrbenutzermodus laufen. Weitere
Informationen über kern.securelevel finden
Sie in &man.init.8; und &man.chflags.1; erläutert Optionen, die
Sie auf Dateien setzen können.Wenn Sie ein Update auf eine &os; Version vor 4.0
durchführen, sollten Sie die herkömmliche
Methode benutzen. Es ist allerdings empfohlen, dazu die frisch
gebaute Version von &man.config.8; zu benutzen:&prompt.root; /usr/obj/usr/src/usr.sbin/config/config KERNELNAMEBooten Sie in den Single-User ModusSingle-User ModusUm zu prüfen, ob der neue Kernel funktioniert, sollten Sie
in den Single-User Modus booten. Folgen Sie dazu der Anleitung aus
.Installation des SystemsWenn Sie make buildworld benutzt haben, um
das System zu bauen, sollten Sie jetzt
installworld benutzen, um es zu
installieren. Rufen Sie dazu das folgende Kommando auf:&prompt.root; cd /usr/src
&prompt.root; make installworldWenn Sie mit dem make buildworld Kommando
Variablen verwenden haben, müssen Sie dieselben Variablen
auch bei dem make installworld Kommando
angeben. Auf die anderen Optionen trifft das nur bedingt zu:
darf mit installworld
nicht benutzt werden.Sie haben zum Bauen die folgende Kommandozeile
verwendet:&prompt.root; make -DNOPROFILE buildworldBei der Installation setzen Sie dann das folgende Kommando
ab:&prompt.root; make -DNOPROFILE installworldWürden Sie die Variable bei der Installation weglassen,
so würde das System versuchen, die profiled
Bibliotheken, die aber gar nicht gebaut wurden, zu
installieren.Aktualisieren der von make installworld
ausgelassenen DateienNeue oder geänderte Konfigurationsdateien aus einigen
Verzeichnissen, besonders /etc,
/var und /usr werden bei
der Installationsprozedur nicht berücksichtigt.Sie können diese Dateien mit &man.mergemaster.8;
aktualisieren. Alternativ können Sie das auch manuell
durchführen, obwohl wir diesen Weg nicht empfehlen. Egal
welchen Weg Sie beschreiten, sichern Sie vorher den Inhalt von
/etc für den Fall, dass etwas schief
geht.TomRhodesBeigetragen von mergemastermergemasterDas Bourne-Shell Skript &man.mergemaster.8; hilft Ihnen dabei,
die Unterschiede zwischen den Konfigurationsdateien in
/etc und denen im Quellbaum unter
/usr/src/etc zu finden.
mergemaster ist der empfohlene Weg, Ihre
Systemkonfiguration mit dem Quellbaum abzugleichen.Zwischen 3.3-RELEASE und 3.4-RELEASE wurde
mergemaster in das Basissystem integriert, so
dass es in allen -STABLE und -CURRENT Systemen seit der
Version 3.3 vorhanden ist.Rufen Sie mergemaster einfach auf und
schauen Sie zu. Ausgehend von / wird
mergemaster einen virtuellen Root-Baum
aufbauen und darin die neuen Konfigurationsdateien ablegen.
Diese Dateien werden dann mit den auf Ihrem System installierten
verglichen. Unterschiede zwischen den Dateien werden im
&man.diff.1;-Format dargestellt. Neue oder geänderte Zeilen
werden mit gekennzeichnet. Zeilen die
gelöscht oder ersetzt werden, sind mit einem
gekennzeichnet. Das Anzeigeformat wird in
&man.diff.1; genauer erklärt.&man.mergemaster.8; zeigt Ihnen jede geänderte Datei an
und Sie haben die Wahl, die neue Datei (in
mergemaster wird sie temporäre Datei
genannt) zu löschen, sie unverändert zu installieren,
den Inhalt der neuen Datei mit dem Inhalt der alten Datei
abzugleichen, oder die &man.diff.1; Ausgabe noch einmal zu
sehen. Sie können die aktuelle Datei auch
überspringen, sie wird dann noch einmal angezeigt, nachdem
alle anderen Dateien abgearbeitet wurden. Sie erhalten Hilfe,
wenn Sie bei der Eingabeaufforderung von
mergemaster ein ?
eingeben.Wenn Sie die temporäre Datei löschen, geht
mergemaster davon aus, dass Sie Ihre
aktuelle Datei behalten möchten. Wählen Sie die Option
bitte nur dann, wenn Sie keinen Grund sehen, die aktuelle Datei
zu ändern.Wenn Sie die temporäre Datei installieren, wird Ihre
aktuelle Datei mit der neuen Datei überschrieben. Sie
sollten alle unveränderten Konfigurationsdateien auf diese
Weise aktualisieren.Wenn Sie sich entschließen den Inhalt beider Dateien
abzugleichen, wird ein Texteditor aufgerufen, indem Sie beide
Dateien nebeneinander betrachten können. Mit der Taste
l übernehmen Sie die aktuelle Zeile der
links dargestellten Datei, mit der Taste r
übernehmen Sie die Zeile der rechts dargestellten Datei.
Das Ergebnis ist eine Datei, die aus Teilen der beiden
ursprünglichen Dateien besteht und installiert werden kann.
Dieses Verfahren wird gewöhnlich bei veränderten
Dateien genutzt.Haben Sie sich entschieden die Differenzen noch einmal
anzuzeigen, zeigt Ihnen &man.mergemaster.8; dieselbe Ausgabe, die
Sie gesehen haben, bevor die Eingabeaufforderung ausgegeben
wurde.Wenn &man.mergemaster.8; alle Systemdateien abgearbeitet hat,
werden weitere Optionen abgefragt. Sie werden unter
Umständen gefragt, ob Sie die Passwort-Datei neu bauen
oder &man.MAKEDEV.8; laufen lassen wollen. Am Ende
haben Sie die Möglichkeit, den Rest der temporären Dateien
zu löschen.Manueller Abgleich der KonfigurationsdateienWenn Sie den Abgleich lieber selbst ausführen wollen,
beachten Sie bitte, dass Sie nicht einfach die Dateien aus
/usr/src/etc nach /etc
kopieren können. Einige dieser Dateien müssen zuerst
installiert werden, bevor sie benutzt werden
können. Das liegt daran, dass
/usr/src/etc keine exakte Kopie von
/etc ist. Zudem gibt es Dateien, die sich
in /etc befinden aber nicht in
/usr/src/etc. Wenn Sie, wie empfohlen,
mergemaster benutzen, lesen Sie bitte im
nächsten Abschnitt
weiter.Am einfachsten ist es, wenn Sie die neuen Dateien in ein
temporäres Verzeichnis installieren und sie nacheinander auf
Differenzen zu den bestehenden Dateien durchsehen.Sichern Sie die Inhalte von /etcObwohl bei dieser Prozedur keine Dateien in
/etc automatisch verändert werden,
sollten Sie dessen Inhalt an einen sicheren Ort
kopieren:&prompt.root; cp -Rp /etc /etc.oldMit wird rekursiv kopiert und
erhält die Attribute der kopierten
Dateien, wie Zugriffszeiten und Eigentümer.Sie müssen die neuen Dateien in einem temporären
Verzeichnis installieren. /var/tmp/root ist
eine gute Wahl für das temporäre Verzeichnis, in dem
auch noch einige Unterverzeichnisse angelegt werden
müssen.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionDie obigen Kommandos bauen die nötige
Verzeichnisstruktur auf und installieren die neuen Dateien in
diese Struktur. Unterhalb von /var/tmp/root
wurden einige leere Verzeichnisse angelegt, die Sie am besten wie
folgt entfernen:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullIm obigen Beispiel wurde die Fehlerausgabe nach
/dev/null umgeleitet, um die Warnungen
über nicht leere Verzeichnisse zu unterdrücken./var/tmp/root enthält nun alle
Dateien, die unterhalb von / installiert
werden müssen. Sie müssen nun jede dieser Dateien mit
den schon existierenden Dateien vergleichen.Einige der installierten Dateien unter
/var/tmp/root beginnen mit einem /var/tmp/root/ und
/var/tmp/root/root/. Abhängig davon,
wann Sie dieses Handbuch lesen, können mehr Dateien dieser
Art existieren. Verwenden Sie ls -a um
sicherzustellen, dass Sie alle derartigen Dateien
finden.Benutzen Sie &man.diff.1; um Unterschiede zwischen zwei
Dateien festzustellen:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsDas obige Kommando zeigt Ihnen die Unterschiede zwischen der
installierten Version von /etc/shells und
der neuen Version in /var/tmp/root/etc/shells.
Entscheiden Sie anhand der Unterschiede, ob
Sie beide Dateien abgleichen oder die neue Version über die
alte kopieren wollen.Versehen Sie das temporäre Verzeichnis mit einem
ZeitstempelWenn Sie das System oft neu bauen, müssen Sie
/etc genauso oft aktualisieren. Dies kann
mit der Zeit sehr lästig werden.Sie können das Verfahren beschleunigen, wenn Sie sich
eine Kopie der Dateien behalten, die Sie zuletzt nach
/etc installiert haben. Das folgende
Verfahren zeigt Ihnen, wie das geht.Folgen Sie der normalen Prozedur um das System zu
bauen. Wenn Sie /etc und die anderen
Verzeichnisse aktualisieren wollen, geben Sie dem
temporären Verzeichnis einen Namen, der das aktuelle
Datum enthält. Wenn Sie dies zum Beispiel am
14. Februar 1998 durchführten, hätten Sie die
folgenden Kommandos abgesetzt:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionGleichen Sie die Änderungen entsprechend der
Anleitung von oben ab.Wenn Sie fertig sind, entfernen Sie das Verzeichnis
/var/tmp/root-19980214nicht.Wenn Sie nun neue Quellen heruntergeladen und gebaut
haben, folgen Sie bitte Schritt 1. Wenn Sie zwischen den
Updates eine Woche gewartet haben, haben Sie nun ein
Verzeichnis mit dem Namen
/var/tmp/root-19980221.Sie können nun die Unterschiede, die sich in einer
Woche ergeben haben, sehen, indem Sie &man.diff.1; rekursiv
anwenden:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Üblicherweise sind die Differenzen, die Sie jetzt
sehen, kleiner als die Differenzen zwischen
/var/tmp/root-19980221/etc und
/etc. Da die angezeigten Differenzen
kleiner sind, ist es jetzt einfacher den Abgleich der
Dateien durchzuführen.Sie können nun das älteste der beiden
/var/tmp/root-* Verzeichnisse
entfernen:&prompt.root; rm -rf /var/tmp/root-19980214Wiederholen Sie diesen Prozess jedes Mal wenn Sie
Dateien in /etc abgleichen
müssen.Mit &man.date.1; können Sie den Verzeichnisnamen
automatisch erzeugen:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`Aktualisieren Sie /devDEVFSÜberspringen Sie diesen Abschnitt, wenn Sie
FreeBSD 5.0 oder eine neuere Version benutzen. In diesen
Versionen werden die Gerätedateien automatisch von
&man.devfs.5; angelegt.In den meisten Fällen bemerkt &man.mergemaster.8; wann es
notwendig ist, Gerätedateien in /dev
zu erstellen. Die folgenden Anweisungen zeigen Ihnen, wie Sie dies
manuell durchführen.Um sicher zu gehen, besteht dieser Prozess aus mehreren
Schritten.Kopieren Sie /var/tmp/root/dev/MAKEDEV
nach /dev:&prompt.root; cp /var/tmp/root/dev/MAKEDEV /devMAKEDEVWenn Sie &man.mergemaster.8; benutzt haben, sollte
MAKEDEV schon aktualisiert sein, obwohl es
nicht schadet, das mit diff zu
überprüfen und die Datei, wenn nötig, manuell zu
kopieren.Sichern Sie jetzt die Dateiinformationen aus
/dev. Sie brauchen die Rechte,
Eigentümer, sowie die Major und Minor Nummern der
Gerätedateien (die Zeitstempel sind nicht wichtig). Am
besten erledigen Sie das mit &man.awk.1;:&prompt.root; cd /dev
&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.outErstellen Sie alle Gerätedateien neu:&prompt.root; Sammeln Sie erneut die Dateiinformationen aus
/dev, diesmal in der Datei
/var/tmp/dev2.out ein. Vergleichen Sie
beide Dateien und suchen Sie nach Gerätedateien, die nicht
erstellt wurden. Sie sollten keine finden, aber es ist besser
das jetzt wirklich zu kontrollieren:&prompt.root; diff /var/tmp/dev.out /var/tmp/dev2.outWenn es doch fehlende Einträge gibt, sind dies
wahrscheinlich fehlende Geräte für Slices. Diese
können Sie mit einem Befehl wie dem folgenden
wiederherstellen:&prompt.root; sh MAKEDEV sd0s1Die genauen Geräte können bei Ihnen
natürlich andere sein.Aktualisieren Sie /standDieser Schritt wurde nur der Vollständigkeit wegen
aufgenommen. Sie können ihn komplett auslassen.
Ab &os; 5.2 werden beim Lauf von
make installworld automatisch
aktuelle statisch übersetzte Programme im Verzeichnis
/rescue installiert. Daher ist
es überflüssig, /stand
zu aktualisieren.Der Vollständigkeit halber wollen Sie vielleicht auch die
Dateien in /stand aktualisieren. Alle Dateien
in diesem Verzeichnis sind Hardlinks zu
/stand/sysinstall. Dieses Programm ist
statisch gelinkt, so dass es unabhängig von den Dateien
in anderen Dateisystemen, insbesondere /usr,
ist.&prompt.root; cd /usr/src/release/sysinstall
&prompt.root; make all installBootenSie sind nun am Ende der Prozedur angelangt. Nachdem Sie sich
davon überzeugt haben, dass Ihr System funktioniert,
booten Sie das System mit &man.shutdown.8;:&prompt.root; shutdown -r nowEndeHerzlichen Glückwunsch! Sie haben gerade erfolgreich Ihr
&os; System aktualisiert.Es ist übrigens leicht einen Teil des Systems
wiederherzustellen, für den Fall, dass Ihnen ein kleiner
Fehler unterlaufen ist. Wenn Sie beispielsweise während des
Updates oder Abgleichs /etc/magic aus Versehen
gelöscht haben, wird &man.file.1; nicht mehr funktionieren.
In diesem Fall können Sie das Problem mit dem folgenden
Kommando beheben:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; FragenMuss ich wirklich immer alles neu bauen, wenn sich
etwas geändert hat?Darauf gibt es keine einfache Antwort. Was zu tun ist,
hängt von den Änderungen ab. Es lohnt
wahrscheinlich nicht, alles neu zu bauen, wenn sich bei einem
CVSup-Lauf nur die folgenden
Dateien geändert haben:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkIn diesem Fall können Sie in die entsprechenden
Unterverzeichnisse wechseln und dort make all
install ausführen. Wenn sich allerdings etwas
Wichtiges, wie src/lib/libc/stdlib,
geändert hat, sollten Sie die Welt oder
mindestens die statisch gelinkten Teile des Systems (sowie
Ihre statisch gelinkten Ergänzungen) neu bauen.Letztendlich ist das Ihre Entscheidung. Sie sind
vielleicht damit zufrieden, das System alle zwei Wochen neu
zu bauen und in der Zwischenzeit die anfallenden
Änderungen zu sammeln. Wenn Sie sich zutrauen, alle
Abhängigkeiten zu erkennen, bauen Sie vielleicht auch
nur die geänderten Sachen neu.Das hängt natürlich auch noch davon ab, wie oft
Sie ein Update durchführen wollen und ob Sie &os.stable;
oder &os.current; benutzen.Der Bau bricht mit vielen
Signal 11-Fehlern (oder anderen
Signalnummern) ab. Was ist da passiert?Signal 11Normalerweise zeigen diese Meldungen Hardwarefehler an.
Ein Neubau der Welt ist ein guter Belastungstest für
Ihre Hardware und zeigt oft Probleme mit dem Speicher auf.
Dies äußert sich darin, dass der Kompiler
mit dem Erhalt von seltsamen Signalen abbricht.Es liegt garantiert ein Hardwarefehler vor, wenn ein
neuer Übersetzungslauf an einer anderen Stelle
abbricht.In diesem Fall können Sie nur einzelne Komponenten
Ihres Systems tauschen, um zu bestimmen, welche Komponente den
Fehler verursacht.Kann ich /usr/obj löschen, wenn
ich fertig bin?Kurze Antwort: Ja.In /usr/obj werden alle Dateien
abgelegt, die während der Übersetzungsphase erstellt
wurden. Dieses Verzeichnis wird in einem der ersten Schritte
der Bauprozedur entfernt. Es macht daher
wenig Sinn, dieses Verzeichnis zu behalten und Sie setzen
eine Menge Plattenplatz, momentan ungefähr 340 MB,
frei, wenn Sie es löschen.Wenn Sie allerdings genau wissen, was Sie tun, können
Sie diesen Schritt bei make world
auslassen. Nachfolgende Bauprozeduren werden dadurch erheblich
schneller, da die meisten Quelldateien nicht mehr neu
übersetzt werden. Dafür können aber subtile
Abhängigkeitsprobleme entstehen, die dazu führen,
dass der Bau auf merkwürdige Weise abbrechen kann.
Dies führt häufig zu unnötigen Diskussionen auf
den &os; Mailinglisten, wenn sich jemand über einen
kaputten Bau beschwert, aber nicht sieht, dass er
Probleme hat, weil er eine Abkürzung genommen hat.Kann ein abgebrochener Bau weitergeführt
werden?Das hängt davon ab, wieweit der Bauprozess
fortgeschritten ist.Üblicherweise werden
essentielle Werkzeuge, wie &man.gcc.1; und &man.make.1;,
und die Systembibliotheken während des Bauprozesses
neu erstellt (dies ist aber keine allgemein gültige
Regel). Die neu erstellen Werkzeuge und Bibliotheken werden
dann benutzt, um sich selbst noch einmal zu bauen, und wieder
installiert. Anschließend wird das Gesamtsystem mit
den neu erstellten Systemdateien gebaut.Wenn Sie sich im letzten Schritt befinden und Sie wissen,
dass Sie dort sind, weil Sie durch die Ausgaben, die Sie
ja sichern, der Bauprozedur gesehen haben, können Sie
mit ziemlicher Sicherheit den Bau weiterführen:… Fehler beheben …
&prompt.root; cd /usr/src
&prompt.root; make -DNOCLEAN allDie Variable NOCLEAN verhindert,
dass make world die vorher erstellten
Dateien löscht.Das Sie sich im letzten Schritt der Bauprozedur
befinden, erkennen Sie daran, dass Sie in der Ausgabe die
folgenden Zeilen finden:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------Wenn Sie diese Meldung nicht finden, oder sich nicht sicher
sind, dann ist es besser, noch einmal ganz von Vorne
anzufangen.Wie kann ich den Bauprozesss beschleunigen?Bauen Sie im Single-User Modus.Legen Sie /usr/src und
/usr/obj in getrennte Dateisysteme auf
unterschiedliche Festplatten. Benutzen Sie nach
Möglichkeit auch getrennte Platten-Controller.Noch besser ist es, diese Dateisysteme auf mehrere
Festplatten mit &man.ccd.4; zu verteilen.Bauen Sie die profiled-Bibliotheken,
die Sie wahrscheinlich sowieso nicht brauchen, nicht.
/etc/make.conf sollte dazu
NOPROFILE=true enthalten.Setzen Sie die CFLAGS in
/etc/make.conf auf . Die Optimierungsstufe
ist deutlich langsamer und die
Performance-Unterschiede zwischen und
sind vernachlässigbar klein.
veranlasst den Kompiler Pipes
anstelle von Dateien für die Kommunikation zu
benutzen. Dies spart einige Plattenzugriffe, geht aber
auf Kosten des Speichers.Benutzen Sie
, um
mehrere Prozesse parallel laufen zu lassen.
Normalerweise beschleunigt dies den Bauprozess
unabhängig davon, ob Sie ein Einprozessor oder
Mehrprozessor System einsetzen.Sie können das Dateisystem
/usr/src mit der Option
einhängen. Dies
verhindert, dass die Zugriffszeiten der Dateien
aktualisiert werden (eine Information, die Sie vielleicht
gar nicht brauchen).&prompt.root; mount -u -o noatime /usr/srcDas Beispiel geht davon aus, dass sich
/usr/src auf einem separaten
Dateisystem befindet. Wenn das nicht der Fall ist,
weil das Verzeichnis beispielsweise Teil des
/usr Dateisystems ist,
müssen Sie anstelle von
/usr/src den Mountpoint des
Dateisystems angeben.Das Dateisystem, in dem sich
/usr/obj befindet, kann mit der
Option eingehangen werden. Dies
bewirkt, dass Schreibzugriffe auf die Platte
asynchron stattfinden, das heißt ein Schreibzugriff
ist sofort beendet, die Daten werden allerdings erst einige
Sekunden später geschrieben. Dadurch können
Schreibzugriffe zusammengefasst werden, was einen
erheblichen Geschwindigkeitszuwachs mit sich bringen
kann.Beachten Sie, dass dies Ihr Dateisystem
anfälliger für Fehler macht. Im Fall eines
Stromausfalls besteht eine erhöhte
Wahrscheinlichkeit, dass das Dateisystem beim
Start der Maschine zerstört ist.Wenn sich /usr/obj auf einem
extra Dateisystem befindet, ist das kein Problem. Wenn
sich allerdings auf diesem Dateisystem noch andere
wertvolle Daten befinden, stellen Sie sicher, dass
Sie aktuelle Sicherungen besitzen.&prompt.root; mount -u -o async /usr/objErsetzen Sie /usr/obj durch
den Mountpoint des entsprechenden Dateisystems, wenn es
sich nicht auf einem eigenen Dateisystem
befindet.Was mache ich, wenn etwas nicht funktioniert?Stellen Sie sicher, dass sich in Ihrer Umgebung
keine Reste eines vorherigen Baus befinden. Das geht ganz
einfach:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirJa, make cleandir muss wirklich
zweimal aufgerufen werden.Nachdem Sie aufgeräumt haben, starten Sie den
Bauprozess wieder mit make
buildworld.Wenn Sie immer noch Probleme haben, schicken Sie die
Fehlermeldungen und die Ausgabe von uname
-a an die Mailingliste &a.de.questions;. Bereiten
Sie sich darauf vor, weitere Fragen zu Ihrer Umgebung zu
beantworten.MikeMeyerBeigetragen von Installation mehrerer MaschinenWenn Sie mehrere Maschinen besitzen, die Sie alle auf dem
gleichen Stand halten wollen, ist es eine Verschwendung von
Ressourcen, die Quellen auf jeder Maschine vorzuhalten und zu
übersetzen. Die Lösung dazu ist, eine Maschine den
Großteil der Arbeit durchführen zu lassen und den anderen
Maschinen das Ergebnis mit NFS zur Verfügung zu stellen. Dieser
Abschnitt zeigt Ihnen wie das geht.VoraussetzungenStellen Sie zuerst eine Liste der Maschinen zusammen, die auf
demselben Stand sein sollen. Wir nennen diese Maschinen die
Baugruppe. Jede dieser Maschinen kann mit
einem eigenen Kernel laufen, doch sind die Programme des Userlands
auf allen Maschinen gleich. Wählen Sie aus der Baugruppe eine
Maschine aus, auf der der Bau durchgeführt wird, den
Bau-Master. Dies sollte eine Maschine sein,
die über die nötigen Ressourcen für make
world verfügt. Sie brauchen auch eine
Testmaschine, auf der Sie die Updates testen,
bevor Sie sie in Produktion installieren. Dies sollte eine
Maschine, eventuell der Bau-Master, sein, die über einen
längeren Zeitraum nicht zur Verfügung stehen kann.
Alle Maschinen der Baugruppe müssen
/usr/obj und /usr/src von
derselben Maschine an gleichem Ort einhängen. Idealerweise
befinden sich die beiden Verzeichnisse auf dem Bau-Master auf
verschiedenen Festplatten, sie können allerdings auch auf dem
Bau-Master über NFS zur Verfügung gestellt werden. Wenn
Sie mehrere Baugruppen haben, sollte sich
/usr/src auf einem Bau-Master befinden und
über NFS für den Rest der Maschinen zur Verfügung
gestellt werden.Stellen Sie sicher, dass
/etc/make.conf auf allen Maschinen einer
Baugruppe mit der Datei des Bau-Masters übereinstimmt. Der
Bau-Master muss jeden Teil des Systems bauen, den irgendeine
Maschine der Baugruppe benötigt. Auf dem Bau-Master
müssen in /etc/make.conf alle zu bauenden
Kernel mit der Variablen KERNCONF bekannt gegeben
werden. Geben Sie dabei den Kernel des Bau-Masters zuerst an.
Für jeden zu bauenden Kernel muss auf dem Bau-Master die
entsprechende Konfigurationsdatei unter
/usr/src/sys/arch/conf
abgelegt werden.Installation des BasissystemsNach diesen Vorbereitungen können Sie mit dem Bau
beginnen. Bauen Sie auf dem Bau-Master, wie in beschrieben, den Kernel und die Welt,
installieren Sie aber nichts. Wechseln Sie auf die Testmaschine
und installieren Sie den gerade gebauten Kernel. Wenn diese
Maschine /usr/src und
/usr/obj über NFS bekommt, müssen
Sie das Netzwerk im Single-User Modus aktivieren und die beiden
Dateisysteme einhängen. Am einfachsten ist dies, wenn Sie
auf der Testmaschine ausgehend vom Mehrbenutzermodus mit
shutdown now in den Single-User Modus wechseln.
Sie können dann mit der normalen Prozedur den neuen Kernel
und das System installieren und anschließend
mergemaster laufen lassen. Wenn Sie damit
fertig sind, können Sie die Maschine wieder in den
Mehrbenutzermodus booten.Nachdem Sie sichergestellt haben, dass die Testmaschine
einwandfrei funktioniert, wiederholen Sie diese Prozedur für
jede Maschine in der Baugruppe.Die Ports-SammlungDasselbe Verfahren können Sie auch für die
Ports-Sammlung anwenden. Zuerst müssen alle Maschinen einer
Baugruppe /usr/ports von derselben Maschine
über NFS zur Verfügung gestellt bekommen. Setzen Sie
dann ein Verzeichnis für die Quellen auf, das sich alle
Maschinen teilen. Dieses Verzeichnis können Sie in
/etc/make.conf mit der Variablen
DISTDIR angeben. Das Verzeichnis sollte
für den Benutzer beschreibbar sein, auf den der Benutzer
root vom NFS Subsystem abgebildet wird. Jede
Maschine sollte noch WRKDIRPREFIX auf ein
lokales Bauverzeichnis setzen. Wenn Sie vorhaben, Pakete zu bauen
und zu verteilen, sollten Sie PACKAGES auf ein
Verzeichnis mit den gleichen Eigenschaften wie
DISTDIR setzen.
diff --git a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
index 7829897af3..40fe0a834c 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,3593 +1,3973 @@
BerndWarkenÜbersetzt von MartinHeinenSpeichermedienÜbersichtDieses Kapitel behandelt die Benutzung von Laufwerken unter
FreeBSD. Laufwerke können speichergestützte Laufwerke,
Netzwerklaufwerke oder normale SCSI/IDE-Geräte sein.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Die Begriffe, die FreeBSD verwendet, um die
Organisation der Daten auf einem physikalischen Laufwerk
zu beschreiben (Partitionen und Slices).Wie Sie ein weiteres Laufwerk zu Ihrem System
hinzufügen.Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks,
eingerichtet werden.Wie Sie mit Quotas die Benutzung von Laufwerken
einschränken können.Wie Sie Partitionen verschlüsseln, um Ihre Daten
zu schützen.Wie unter FreeBSD CDs und DVDs gebrannt werden.Sie werden die Speichermedien, die Sie für
Backups einsetzen können, kennen.Wie Sie die unter FreeBSD erhältlichen Backup
Programme benutzen.Wie Sie ein Backup mit Disketten erstellen.Was Schnappschüsse sind und wie sie eingesetzt
werden.GerätenamenDie folgende Tabelle zeigt die von FreeBSD unterstützten
Speichergeräte und deren Gerätenamen.
Namenskonventionen von physikalischen LaufwerkenLaufwerkstypGerätenameIDE-FestplattenadIDE-CD-ROM LaufwerkeacdSCSI-Festplatten und USB-SpeichermediendaSCSI-CD-ROM LaufwerkecdVerschiedene proprietäre CD-ROM-Laufwerkemcd Mitsumi CD-ROM,
scd Sony CD-ROM,
matcd Matsushita/Panasonic CD-ROM
Der &man.matcd.4;-Treiber wurde am 5. Oktober
vom FreeBSD 4.X Zweig entfernt und existiert in
FreeBSD 5.0 und 5.1-RELEASE nicht. Am
16. Juni 2003 wurde der Treiber wieder
in den FreeBSD 5.X-Zweig integriert.DiskettenlaufwerkefdSCSI-BandlaufwerkesaIDE-BandlaufwerkeastFlash-Laufwerkefla für &diskonchip;
Flash-DeviceRAID-Laufwerkeaacd für &adaptec; AdvancedRAID,
mlxd und mlyd
für &mylex;,
amrd für AMI &megaraid;,
idad für Compaq Smart RAID,
twed für &tm.3ware; RAID.
DavidO'BrianIm Original von Hinzufügen von LaufwerkenLaufwerkehinzufügenAngenommen, Sie wollen ein neues SCSI-Laufwerk zu einer Maschine
hinzufügen, die momentan nur ein Laufwerk hat. Dazu schalten
Sie zuerst den Rechner aus und installieren das Laufwerk entsprechend
der Anleitungen Ihres Rechners, Ihres Controllers und Laufwerk
Herstellers. Den genauen Ablauf können wir wegen der
großen Abweichungen leider nicht beschreiben.Nachdem Sie das Laufwerk installiert haben, melden Sie sich als
Benutzer root an und kontrollieren Sie
/var/run/dmesg.boot, um sicherzustellen,
dass das neue Laufwerk gefunden wurde. Das neue Laufwerk
wird, um das Beispiel fortzuführen, da1
heißen und soll unter /1 angehangen
werden. Fügen Sie eine IDE-Platte hinzu, wird sie
wd1 auf FreeBSD-Systemen vor 4.0 und
ad1
auf den meisten 4.X Systemen heißen.PartitionenSlicesfdiskDa FreeBSD auf IBM-PC kompatiblen Rechnern läuft, muss
es die PC BIOS-Partitionen, die verschieden von den traditionellen
BSD-Partitionen sind, berücksichtigen. Eine PC Platte kann
bis zu vier BIOS-Partitionen enthalten. Wenn die Platte
ausschließlich für FreeBSD verwendet wird, können
Sie den dedicated Modus benutzen, ansonsten
muss FreeBSD in eine der BIOS-Partitionen installiert werden.
In FreeBSD heißen die PC BIOS-Partitionen
Slices, um sie nicht mit den traditionellen
BSD-Partitionen zu verwechseln. Sie können auch Slices auf
einer Platte verwenden, die ausschließlich von FreeBSD
benutzt wird, sich aber in einem Rechner befindet, der noch ein
anderes Betriebssystem installiert hat. Dadurch stellen Sie sicher,
dass Sie fdisk des anderen Betriebssystems noch
benutzen können.Im Fall von Slices wird die Platte als
/dev/da1s1e hinzugefügt. Das heißt:
SCSI-Platte, Einheit 1 (die zweite SCSI-Platte), Slice 1
(PC BIOS-Partition 1) und die e BSD-Partition.
Wird die Platte ausschließlich für FreeBSD verwendet
(dangerously dedicated), wird sie einfach als
/dev/da1e hinzugefügt.Verwenden von &man.sysinstall.8;sysinstallhinzufügen von LaufwerkensuDas sysinstall MenüUm ein Laufwerk zu partitionieren und zu labeln, kann das
menügestützte /stand/sysinstall
benutzt werden. Dazu melden Sie sich als root
an oder benutzen su, um
root zu werden. Starten Sie
/stand/sysinstall und wählen das
Configure Menü, wählen Sie dort
den Punkt Fdisk aus.Partitionieren mit fdiskInnerhalb von fdisk geben Sie
A ein, um die ganze Platte für
FreeBSD zu benutzen. Beantworten Sie die Frage remain
cooperative with any future possible operating systems mit
YES. W schreibt die
Änderung auf die Platte, danach können Sie
fdisk mit q
verlassen. Da Sie eine Platte zu einem schon laufenden System
hinzugefügt haben, beantworten Sie die Frage nach dem
Master Boot Record mit None.Disk-Label-EditorBSD PartitionenAls nächstes müssen Sie
sysinstall verlassen und es erneut
starten. Folgen Sie dazu bitte den Anweisungen von oben, aber
wählen Sie dieses Mal die Option Label,
um in den Disk Label Editor zu gelangen.
Hier werden die traditionellen BSD-Partitionen erstellt.
Ein Laufwerk kann acht Partitionen, die mit den Buchstaben
a-h gekennzeichnet werden,
besitzen. Einige Partitionen sind für spezielle Zwecke
reserviert. Die a Partition ist für die
Root-Partition (/) reserviert. Deshalb
sollte nur das Laufwerk, von dem gebootet wird, eine
a Partition besitzen. Die b
Partition wird für Swap-Partitionen benutzt, wobei Sie
diese auf mehreren Platten benutzen dürfen.
Im dangerously dedicated Modus spricht
die c Partition die gesamte Platte an,
werden Slices verwendet, wird damit die ganze Slice angesprochen.
Die anderen Partitionen sind für allgemeine Zwecke
verwendbar.Der Label Editor von sysinstall
bevorzugt die e
Partition für Partitionen, die weder Root-Partitionen noch
Swap-Partitionen sind. Im Label
Editor können Sie ein einzelnes Dateisystem
mit C erstellen. Wählen Sie
FS, wenn Sie gefragt werden, ob Sie ein
FS (Dateisystem) oder Swap erstellen wollen, und geben Sie einen
Mountpoint z.B. /mnt an. Wenn Sie nach einer
FreeBSD-Installation ein Dateisystem mit
sysinstall erzeugen,
so werden die Einträge in /etc/fstab
nicht erzeugt, so dass die Angabe des Mountpoints nicht
wichtig ist.Sie können nun das Label auf das Laufwerk schreiben und
das Dateisystem erstellen, indem Sie W
drücken. Ignorieren Sie die Meldung von
sysinstall, dass die neue Partition
nicht angehangen werden konnte, und verlassen Sie den Label Editor
sowie sysinstall.EndeIm letzten Schritt fügen Sie noch in
/etc/fstab den Eintrag für das neue
Laufwerk ein.Die KommandozeileAnlegen von SlicesMit der folgenden Vorgehensweise wird eine Platte mit
anderen Betriebssystemen, die vielleicht auf Ihrem Rechner
installiert sind, zusammenarbeiten und nicht das
fdisk Programm anderer Betriebssysteme
stören. Bitte benutzen
Sie den dedicated Modus nur dann, wenn
Sie dazu einen guten Grund haben!&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Initialisieren der neuen Platte
&prompt.root; disklabel -B -w -r da1s1 auto # Labeln
&prompt.root; disklabel -e da1s1 # Editieren des Disklabels und Hinzufügen von Partitionen
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Wiederholen Sie diesen Schritt für jede Partition
&prompt.root; mount /dev/da1s1e /1 # Anhängen der Partitionen
&prompt.root; vi /etc/fstab # Ändern Sie /etc/fstab entsprechendWenn Sie ein IDE-Laufwerk besitzen, ändern Sie
da in ad. Auf
Systemen vor 4.0 benutzen Sie wd.DedicatedOS/2Wenn das neue Laufwerk nicht von anderen Betriebssystemen
benutzt werden soll, können Sie es im
dedicated Modus betreiben. Beachten Sie bitte,
dass Microsoft Betriebssysteme mit diesem Modus eventuell nicht
zurechtkommen, aber es entsteht kein Schaden am Laufwerk. Im
Gegensatz dazu wird IBMs &os2; versuchen, jede ihm nicht bekannte
Partition zu reparieren.&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; disklabel -Brw da1 auto
&prompt.root; disklabel -e da1 # Erstellen der `e' Partition
&prompt.root; newfs -d0 /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Eine alternative Methode:&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.RAIDSoftware-RAIDChristopherShumwayOriginal von JimBrownÜberarbeitet von Concatenated-Disk (CCD) konfigurierenRAIDSoftwareRAIDCCDDie wichtigsten Faktoren bei der Auswahl von Massenspeichern
sind Geschwindigkeit, Zuverlässigkeit und Preis.
Selten findet sich eine ausgewogene Mischung aller drei Faktoren.
Schnelle und zuverlässige Massenspeicher sind für
gewöhnlich teuer. Um die Kosten zu senken, muss
entweder an der Geschwindigkeit oder an der Zuverlässigkeit
gespart werden.Das unten beschriebene System sollte vor allem
preiswert sein. Der nächst wichtige Faktor war
die Geschwindigkeit gefolgt von der Zuverlässigkeit.
Die Geschwindigkeit war nicht so wichtig, da über
das Netzwerk auf das System zugegriffen wird. Da alle
Daten schon auf CD-Rs gesichert sind, war die
Zuverlässigkeit, obwohl wichtig, ebenfalls nicht
von entscheidender Bedeutung.Die Bewertung der einzelnen Faktoren ist der erste
Schritt bei der Auswahl von Massenspeichern. Wenn Sie
vor allem ein schnelles und zuverlässiges Medium
benötigen und der Preis nicht wichtig ist, werden
Sie ein anderes System als das hier beschriebene
zusammenstellen.Installation der HardwareNeben der IDE-Systemplatte besteht das System
aus drei Western Digital IDE-Festplatten mit
5400 RPM und einer Kapazität von je
30 GB. Insgesamt stehen also 90 GB
Speicherplatz zur Verfügung. Im Idealfall sollte
jede Festplatte an einen eigenen Controller angeschlossen
werden. Um Kosten zu sparen, wurde bei diesem System
darauf verzichtet und an jeden IDE-Controller eine
Master- und eine Slave-Platte angeschlossen.Beim Reboot wurde das BIOS so konfiguriert, dass es
die angeschlossenen Platten automatisch erkennt und FreeBSD
erkannte die Platten ebenfalls:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Wenn FreeBSD die Platten nicht erkennt,
überprüfen Sie, ob die Jumper korrekt
konfiguriert sind. Die meisten IDE-Festplatten
verfügen über einen
Cable Select-Jumper. Die Master-
und Slave-Platten werden mit einem anderen
Jumper konfiguriert. Bestimmen Sie den richtigen
Jumper mithilfe der Dokumentation Ihrer
Festplatte.Als nächstes sollten Sie überlegen,
auf welche Art der Speicher zur Verfügung
gestellt werden soll. Schauen Sie sich dazu
&man.vinum.8; ()
und &man.ccd.4; an. Im hier beschriebenen
System wird &man.ccd.4; eingesetzt.Konfiguration von CCDMit &man.ccd.4; können mehrere
gleiche Platten zu einem logischen Dateisystem
zusammengefasst werden. Um &man.ccd.4;
zu benutzen, muss der Kernel mit der entsprechenden
Unterstützung übersetzt werden.
Ergänzen Sie die Kernelkonfiguration um die
nachstehende Zeile. Anschließend müssen
Sie den Kernel neu übersetzen und installieren.pseudo-device ccd 4Für 5.X-Systeme verwenden Sie die folgende
Zeile:pseudo-device ccdAb FreeBSD 5.0 muss die gewünschte
Geräteanzahl nicht mehr angegeben werden,
da die Geräte automatisch zur Laufzeit
erzeugt werden.Ab FreeBSD 3.0 kann &man.ccd.4; auch als
Kernelmodul geladen werden.Um &man.ccd.4; zu benutzen, müssen
die Laufwerke zuerst mit einem Label versehen werden.
Die Label werden mit &man.disklabel.8; erstellt:disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 autoAb &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Damit wurden die Label ad1c,
ad2c und ad3c
erstellt, die jeweils das gesamte Laufwerk umfassen.Im nächsten Schritt muss der Typ des Labels
geändert werden. Die Labels können Sie
mit &man.disklabel.8; editieren:disklabel -e ad1
disklabel -e ad2
disklabel -e ad3Für jedes Label startet dies den durch
EDITOR gegebenen Editor, typischerweise
&man.vi.1;.Ein unverändertes Label sieht zum Beispiel
wie folgt aus:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Erstellen Sie eine e-Partition
für &man.ccd.4;. Dazu können Sie normalerweise
die Zeile der c-Partition kopieren,
allerdings muss auf
4.2BSD gesetzt werden.
Das Ergebnis sollte wie folgt aussehen:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Erstellen des DateisystemsWenn die Gerätedatei für
ccd0c noch nicht existiert,
erstellen Sie diese wie folgt:cd /dev
sh MAKEDEV ccd0Ab FreeBSD 5.0 werden die Gerätedateien
automatisch von &man.devfs.5; erzeugt.
MAKEDEV muss also nicht aufgerufen
werden.Nachdem alle Platten ein Label haben, kann das
&man.ccd.4;-RAID aufgebaut werden. Dies geschieht
mit &man.ccdconfig.8;:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eDie folgende Aufstellung erklärt die
verwendeten Kommandozeilenargumente:Das erste Argument gibt das zu konfigurierende
Gerät, hier /dev/ccd0c,
an. Die Angabe von /dev/ ist
dabei optional.Der Interleave für das Dateisystem. Der
Interleave definiert die Größe eines
Streifens in Blöcken, die normal 512 Bytes
groß sind. Ein Interleave von 32 ist
demnach 16384 Bytes groß.Weitere Argumente für &man.ccdconfig.8;.
Wenn Sie spiegeln wollen, können Sie das
hier angeben. Die gezeigte Konfiguration
verwendet keine Spiegel, sodass der Wert
0 angegeben ist.Das letzte Argument gibt die Geräte des
Plattenverbundes an. Benutzen Sie für jedes
Gerät den kompletten Pfadnamen.Nach Abschluß von &man.ccdconfig.8; ist der
Plattenverbund konfiguriert und es können Dateisysteme
auf dem Plattenverbund angelegt werden. Das Anlegen
von Dateisystemen wird in der Hilfeseite &man.newfs.8;
beschrieben. Für das Beispiel genügt
der folgende Befehl:newfs /dev/ccd0cAutomatisierungDamit &man.ccd.4; beim Start automatisch
aktiviert wird, ist die Datei /etc/ccd.conf
mit dem folgenden Kommando zu erstellen:ccdconfig -g > /etc/ccd.confWenn /etc/ccd.conf existiert, wird beim
Reboot ccdconfig -C von
/etc/rc aufgerufen. Damit wird
&man.ccd.4; eingerichtet und die darauf
befindlichen Dateisysteme können angehängt
werden.Wenn Sie in den Single-User Modus booten, müssen Sie
den Verbund erst konfigurieren, bevor Sie darauf befindliche
Dateisysteme anhängen können:ccdconfig -CIn /etc/fstab ist noch ein Eintrag
für das auf dem Verbund befindliche Dateisystem zu
erstellen, damit dieses beim Start des Systems immer
angehängt wird:/dev/ccd0c /media ufs rw 2 2Der Vinum-Volume-ManagerRAIDSoftwareRAIDVinumDer Vinum Volume Manager ist ein Block-Gerätetreiber,
der virtuelle Platten zur Verfügung stellt. Er trennt die
Verbindung zwischen der Festplatte und dem zugehörigen
Block-Gerät auf. Im Gegensatz zur konventionellen
Aufteilung einer Platte in Slices lassen sich dadurch Daten
flexibler, leistungsfähiger und zuverlässiger verwalten.
&man.vinum.8; stellt RAID-0, RAID-1 und RAID-5 sowohl einzeln wie
auch in Kombination zur Verfügung.Mehr Informationen über &man.vinum.8; erhalten Sie in
.Hardware-RAIDRAIDHardwareFreeBSD unterstützt eine Reihe von
RAID-Controllern. Diese Geräte
verwalten einen Plattenverbund; zusätzliche Software
wird nicht benötigt.Der Controller steuert mithilfe eines
BIOS auf der Karte die Plattenoperationen.
Wie ein RAID System eingerichtet wird,
sei kurz am Beispiel des Promise
IDE RAID-Controllers gezeigt. Nachdem
die Karte eingebaut ist und der Rechner neu gestartet wurde,
erscheint eine Eingabeaufforderung. Wenn Sie den Anweisungen
auf dem Bildschirm folgen, gelangen Sie in eine Maske, in der
Sie mit den vorhandenen Festplatten ein
RAID-System aufbauen können.
FreeBSD behandelt das RAID-System wie
eine einzelne Festplatte.Wiederherstellen eines ATA-RAID-1 VerbundsMit FreeBSD können Sie eine ausgefallene Platte in
einem RAID-Verbund während des Betriebs auswechseln,
vorausgesetzt Sie bemerken den Ausfall vor einem Neustart.Einen Ausfall erkennen Sie, wenn in der Datei
/var/log/messages oder in der
Ausgabe von &man.dmesg.8; Meldungen wie die folgenden
auftauchen:ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11) status=59 error=40
ar0: WARNING - mirror lostÜberprüfen Sie den RAID-Verbund mit
&man.atacontrol.8;:&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDDamit Sie die Platte ausbauen können, muss sie zuerst
aus dem Verbund entfernt werden:&prompt.root; atacontrol detach 3Ersetzen Sie dann die Platte.Nehmen Sie die neue Platte in den Verbund auf:&prompt.root; atacontrol attach 3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentStellen Sie die Organisation des Verbunds wieder her:&prompt.root; atacontrol rebuild ar0Das Kommando blockiert den Terminal bis der Verbund
wiederhergestellt ist. Den Fortgang des Prozesses können
Sie in einem anderen Terminal (die Tastenkombination
AltFn schaltet auf einen anderen Terminal um)
mit den folgenden Befehlen
kontrollieren:&prompt.root; dmesg | tail -10
[output removed]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedWarten Sie bis die Wiederherstellung beendet ist.MikeMeyerBeigesteuert von
- Handhabung von optischen Speichermedien (CDs & DVDs)
+ CDs benutzenCD-ROM
- erstellen
+ brennenEinführungCDs besitzen einige Eigenschaften, die sie von
konventionellen Laufwerken unterscheiden. Zuerst konnten
sie nicht beschrieben werden. Sie wurden so entworfen, dass
sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen
zwischen den Spuren, gelesen werden können. Sie konnten
früher auch leichter als vergleichbar große Medien zwischen
Systemen bewegt werden.CDs besitzen Spuren, aber damit ist der Teil Daten
gemeint, der ununterbrochen gelesen wird, und nicht eine
physikalische Eigenschaft der CD. Um eine CD mit FreeBSD
zu erstellen, werden die Daten jeder Spur der CD in
Dateien vorbereitet und dann die Spuren auf die CD
geschrieben.ISO 9660DateisystemeISO 9660Das ISO 9660-Dateisystem wurde entworfen, um mit diesen
Unterschieden umzugehen. Leider hat es auch damals übliche
Grenzen für Dateisysteme implementiert. Glücklicherweise
existiert ein Erweiterungsmechanismus, der es korrekt
geschriebenen CDs erlaubt, diese Grenzen zu überschreiten
und dennoch auf Systemen zu funktionieren, die diese
Erweiterungen nicht unterstützen.sysutils/mkisofsMit sysutils/mkisofs
wird eine Datei erstellt, die ein ISO 9660-Dateisystem enthält.
Das Kommando hat Optionen, um verschiedene Erweiterungen
zu unterstützen, und wird unten beschrieben. Sie
können es aus dem Port
sysutils/mkisofs
installieren.CD-BrennerATAPIWelches Tool Sie zum Brennen von CDs benutzen, hängt davon
ab, ob Ihr CD-Brenner ein ATAPI-Gerät ist oder nicht.
Mit ATAPI-CD-Brennern wird
burncd benutzt, das Teil des Basissystems ist.
SCSI- und USB-CD-Brenner werden mit
cdrecord aus
sysutils/cdrtools
benutzt.Von burncd wird nur eine beschränkte
Anzahl von Laufwerken unterstützt. Um herauszufinden, ob
ein Laufwerk unterstützt wird, sehen Sie bitte unter
CD-R/RW supported drives
nach.CD-BrennerATAPI/CAM-TreiberWenn Sie &os; 5.X oder &os; 4.8-RELEASE
und spätere Versionen benutzen, können Sie
mithilfe des ATAPI/CAM Treibers
die Werkzeuge für SCSI-Laufwerke, wie
cdrecord,
benutzen.mkisofssysutils/mkisofs erstellt ein
ISO 9660-Dateisystem,
das ein Abbild eines Verzeichnisbaumes des Dateisystems
ist. Die einfachste Anwendung ist wie folgt:&prompt.root; mkisofs -o Imagedatei/path/to/treeDateisystemeISO 9660Dieses Kommando erstellt eine Imagedatei,
die ein ISO 9660-Dateisystem enthält, das eine Kopie des
Baumes unter /path/to/tree ist.
Dabei werden die Dateinamen auf Namen abgebildet, die den
Restriktionen des ISO 9660-Dateisystems entsprechen. Dateien
mit Namen, die im ISO 9660-Dateisystem nicht gültig sind,
bleiben unberücksichtigt.DateisystemeHFSDateisystemeJolietEs einige Optionen, um diese Beschränkungen
zu überwinden. Die unter &unix; Systemen üblichen
Rock-Ridge-Erweiterungen werden durch
aktiviert, aktiviert die von Microsoft
Systemen benutzten Joliet-Erweiterungen und
dient dazu, um das von &macos; benutzte HFS zu erstellen.
Für CDs, die nur auf FreeBSD-Systemen verwendet werden
sollen, kann genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen
mit wird ein Abbild des
Dateisystems, ausgehend von dem Startpunkt im FreeBSD-Dateibaum,
erstellt, obwohl dies den ISO 9660 Standard
verletzen kann.CD-ROMbootbare erstellenDie letzte übliche Option ist .
Sie wird benutzt, um den Ort eines Bootimages einer
El Torito bootbaren CD anzugeben. Das Argument
zu dieser Option ist der Pfad zu einem Bootimage ausgehend
von der Wurzel des Baumes, der auf die CD geschrieben werden
soll. Wenn /tmp/myboot ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot befindet, können
Sie ein Abbild eines ISO 9660-Dateisystems in
/tmp/bootable.iso wie folgt
erstellen:&prompt.root; mkisofs -U -R -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootWenn Sie vn (mit FreeBSD 4.X)
oder md (mit FreeBSD 5.X) in Ihrem
Kernel konfiguriert haben, können Sie danach das Dateisystem
einhängen. Mit FreeBSD 4.X setzen Sie dazu die
nachstehenden Kommandos ab:&prompt.root; vnconfig -e vn0c /tmp/bootable.iso
&prompt.root; mount -t cd9660 /dev/vn0c /mntMit FreeBSD 5.X verwenden Sie die Kommandos:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntJetzt können Sie überprüfen, dass
/mnt und /tmp/myboot
identisch sind.Sie können das Verhalten von
sysutils/mkisofs
mit einer Vielzahl von Optionen beeinflussen. Insbesondere können
Sie das ISO 9660-Dateisystem modifizieren und Joliet- oder
HFS-Dateisysteme brennen. Details dazu entnehmen Sie
bitte der Manualpage von
sysutils/mkisofs.burncdCD-ROMbrennenWenn Sie einen ATAPI-CD-Brenner besitzen, können
Sie burncd benutzen, um ein ISO-Image
auf CD zu brennen. burncd ist Teil
des Basissystems und unter /usr/sbin/burncd
installiert. Da es nicht viele Optionen hat, ist es leicht
zu benutzen:&prompt.root; burncd -f cddevice data imagefile.iso fixateDieses Kommando brennt eine Kopie von
imagefile.iso auf das Gerät
cddevice. In der Grundeinstellung
- wird das Gerät /dev/acd0c benutzt.
+ wird das Gerät /dev/acd0
+ (oder unter &os; 4.X /dev/acd0c) benutzt.
&man.burncd.8; beschreibt, wie die Schreibgeschwindigkeit
gesetzt wird, die CD ausgeworfen wird und Audiodaten
geschrieben werden.cdrecordWenn Sie keinen ATAPI-CD-Brenner besitzen, benutzen Sie
cdrecord, um CDs zu brennen.
cdrecord ist nicht Bestandteil des Basissystems.
Sie müssen es entweder aus den Ports in
sysutils/cdrtools oder dem
passenden Paket installieren. Änderungen im Basissystem
können Fehler im binären Programm verursachen und
führen möglicherweise dazu, dass Sie einen
Untersetzer brennen. Sie sollten
daher den Port aktualisieren, wenn Sie Ihr System aktualisieren
bzw. wenn Sie
STABLE verfolgen,
den Port aktualisieren, wenn es eine neue Version gibt.Obwohl cdrecord viele Optionen besitzt,
ist die grundlegende Anwendung einfacher als burncd.
Ein ISO 9660-Image erstellen Sie mit:&prompt.root; cdrecord dev=deviceimagefile.isoDer Knackpunkt in der Benutzung von cdrecord
besteht darin, das richtige Argument zu zu
finden. Benutzen Sie dazu den Schalter
von cdrecord, der eine ähnliche Ausgabe
wie die folgende produziert:CD-ROMbrennen&prompt.root; cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Für die aufgeführten Geräte in der Liste
wird das passende Argument zu gegeben.
Benutzen Sie die drei durch Kommas separierten Zahlen, die zu
Ihrem CD-Brenner angegeben sind, als Argument für
. Im Beispiel ist das CDRW-Gerät
1,5,0, so dass die passende Eingabe
dev=1,5,0 wäre.
Einfachere Wege das Argument anzugeben, sind in &man.cdrecord.1;
beschrieben. Dort sollten Sie auch nach
Informationen über Audiospuren, das Einstellen der
Geschwindigkeit und ähnlichem suchen.Kopieren von Audio-CDsUm eine Kopie einer Audio-CD zu erstellen, kopieren Sie die
Stücke der CD in einzelne Dateien und brennen diese Dateien
dann auf eine leere CD. Das genaue Verfahren hängt davon ab,
ob Sie ATAPI- oder SCSI-Laufwerke verwenden.SCSI-LaufwerkeKopieren Sie die Audiodaten mit
cdda2wav:&prompt.user; cdda2wav -v255 -D2,0 -B -OwavDie erzeugten .wav Dateien schreiben
Sie mit cdrecord auf eine leere CD:&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavDas Argument von gibt das verwendete
Gerät an, das Sie, wie in
beschrieben, ermitteln können.ATAPI-LaufwerkeDer ATAPI-CD-Treiber stellt die einzelnen Stücke der
CD über die Dateien
/dev/acddtnn,
zur Verfügung. d bezeichnet
die Laufwerksnummer und nn ist die
Nummer des Stücks. Die Nummer ist immer zweistellig,
das heißt es wird, wenn nötig, eine führende
Null ausgegeben. Die Datei /dev/acd0t01
ist also das erste Stück des ersten CD-Laufwerks.
/dev/acd0t02 ist das zweite Stück
und /dev/acd0t03 das dritte.Die entsprechenden Dateien in /dev
erstellen Sie mit MAKEDEV:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV acd0t99Ab FreeBSD 5.0 werden die Gerätedateien
automatisch von &man.devfs.5; erzeugt, so dass Sie
MAKEDEV nicht laufen lassen
müssen.Die einzelnen Stücke kopieren Sie mit &man.dd.1;. Sie
müssen dazu eine spezielle Blockgröße
angeben:&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Die kopierten Dateien können Sie dann mit
burncd brennen. Auf der Kommandozeile
müssen Sie angeben, dass Sie Audio-Daten brennen
wollen und dass das Medium fixiert werden soll:
- &prompt.root; burncd -f /dev/acd0c audio track1.cdr track2.cdr ... fixate
+ &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixateKopieren von Daten-CDsSie können eine Daten-CD in eine Datei kopieren, die einem
Image entspricht, das mit
sysutils/mkisofs erstellt
wurde. Mit Hilfe dieses Images können Sie jede Daten-CD
kopieren. Das folgende Beispiel verwendet
acd0 für das CD-ROM-Gerät. Wenn
Sie ein anderes Laufwerk benutzen, setzen Sie bitte den richtigen
- Namen ein. An den Gerätenamen muss ein
+ Namen ein. Unter &os; 4.X muss an den Gerätenamen ein
c angehangen werden, um die ganze Partition,
in diesem Fall ist das die ganze CD-ROM, anzusprechen.
- &prompt.root; dd if=/dev/acd0c of=file.iso bs=2048
+ &prompt.root; dd if=/dev/acd0 of=file.iso bs=2048Danach haben Sie ein Image, das Sie wie oben beschrieben, auf
eine CD brennen können.Einhängen von Daten-CDsNachdem Sie eine Daten-CD gebrannt haben, wollen Sie
wahrscheinlich auch die Daten auf der CD lesen. Dazu müssen
Sie die CD in den Dateibaum einhängen. Die Voreinstellung
für den Typ des Dateisystems von &man.mount.8; ist
UFS. Das System wird die Fehlermeldung
Incorrect super block ausgeben, wenn Sie
versuchen, die CD mit dem folgenden Kommando
einzuhängen:
- &prompt.root; mount /dev/cd0c /mnt
+ &prompt.root; mount /dev/cd0 /mntAuf der CD befindet sich ja kein UFS
Dateisystem, so dass der Versuch, die CD einzuhängen
fehlschlägt. Sie müssen &man.mount.8; sagen, dass
es ein Dateisystem vom Typ ISO9660 verwenden
soll. Dies erreichen Sie durch die Angabe von auf der Kommandozeile. Wenn Sie also die CD-ROM
- /dev/cd0c in /mnt
+ /dev/cd0 in /mnt
einhängen wollen, führen Sie folgenden Befehl aus:&prompt.root; mount -t cd9660 /dev/cd0c /mntAbhängig vom verwendeten CD-ROM kann der Gerätename
- von dem im Beispiel (/dev/cd0c)
+ von dem im Beispiel (/dev/cd0)
abweichen. Die Angabe von führt
&man.mount.cd9660.8; aus, so dass das Beispiel verkürzt
werden kann:
-&prompt.root; mount_cd9660 /dev/cd0c /mnt
+&prompt.root; mount_cd9660 /dev/cd0 /mntAuf diese Weise können Sie
Daten-CDs von jedem Hersteller verwenden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene ISO 9660 Erweiterungen
benutzen. So speichern Joliet-CDs alle Dateinamen unter Verwendung
von zwei Byte langen Unicode-Zeichen. Der FreeBSD-Kernel
unterstützt zurzeit noch kein Unicode und manche
Sonderzeichen werden als Fragezeichen dargestellt. Ab
FreeBSD 4.3 sind im CD9660-Treiber Möglichkeiten vorgesehen,
eine Konvertierungstabelle zur Laufzeit zu laden. Module für
die gebräuchlisten Kodierungen finden Sie im Port
sysutils/cd9660_unicode.Manchmal werden Sie die Meldung Device
not configured erhalten, wenn Sie versuchen, eine
CD-ROM einzuhängen. Für gewöhnlich liegt das daran,
dass das Laufwerk meint es sei keine CD eingelegt, oder
dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann
einige Sekunden dauern, bevor das Laufwerk merkt, dass eine CD
eingelegt wurde. Seien Sie also geduldig.Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit
hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie
ein SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in Ihre
Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:options SCSI_DELAY=15000Die Zeile bewirkt, dass nach dem Zurücksetzen des
SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem
CD-ROM-Laufwerk genügend Zeit zu geben, darauf zu
antworten.Brennen von rohen CDsSie können eine Datei auch direkt auf eine CD brennen,
ohne vorher auf ihr ein ISO 9660-Dateisystem einzurichten.
Einige Leute nutzen dies, um Datensicherungen durchzuführen.
Diese Vorgehensweise hat den Vorteil, dass Sie schneller als
das Brennen einer normalen CD ist.
- &prompt.root; burncd -f /dev/acd1c -s 12 data archive.tar.gz fixate
+ &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixateWenn Sie die Daten von einer solchen CD wieder
zurückbekommen wollen, müssen Sie sie direkt von dem
rohen Gerät lesen:
- &prompt.root; tar xzvf /dev/acd1c
+ &prompt.root; tar xzvf /dev/acd1Eine auf diese Weise gefertigte CD können Sie nicht in das
Dateisystem einhängen. Sie können Sie auch nicht auf
einem anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in
das Dateisystem einhängen oder mit anderen Betriebssystemen
austauschen wollen, müssen Sie
sysutils/mkisofs,
wie oben beschrieben, benutzen.
+
+
+
+ Marc
+ Fonvieille
+ Beigetragen von
+
+
+
+
CD-BrennerATAPI/CAM Treiber
+
Der ATAPI/CAM TreiberMit diesem Treiber kann auf ATAPI-Geräte (wie
CD-ROM-, CD-RW- oder DVD-Laufwerke) mithilfe des
SCSI-Subsystems zugegriffen werden. Damit können
Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder &man.cdrecord.1;,
zusammen mit einem ATAPI-Gerät benutzen.Wenn Sie den Treiber benutzen wollen, fügen Sie
die nachstehenden Zeilen zu der Kernelkonfiguration
hinzu:device atapicam
device scbus
device cd
device passDie folgenden Zeilen werden ebenfalls benötigt,
sollten aber schon Teil der Kernelkonfiguration sein:device ata
device atapicdÜbersetzen und installieren Sie dann den neuen
Kernel. Der CD-Brenner sollte beim Neustart des Systems
erkannt werden:acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedÜber den Gerätenamen /dev/cd0
können Sie nun auf das Laufwerk zugreifen. Wenn Sie
beispielsweise eine CD-ROM in /mnt
einhängen wollen, benutzen Sie das nachstehende
Kommando:
- &prompt.root; mount -t cd9660 /dev/cd0c /mnt
+ &prompt.root; mount -t cd9660 /dev/cd0 /mntDie SCSI-Adresse des Brenners können Sie als
root wie folgt ermitteln:&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)Die SCSI-Adresse 1,0,0 können
Sie mit den SCSI-Werkzeugen, zum Beispiel &man.cdrecord.1;,
verwenden.Weitere Informationen über das ATAPI/CAM- und
das SCSI-System erhalten Sie in den Hilfeseiten
&man.atapicam.4; und &man.cam.4;.
+
+
+
+
+ Marc
+ Fonvieille
+ Beigetragen von
+
+
+
+
+
+ DVDs benutzen
+
+ DVD
+ brennen
+
+
+
+ Einführung
+
+ Nach der CD ist die DVD die nächste Generation
+ optischer Speichermedien. Auf einer DVD können
+ mehr Daten als auf einer CD gespeichert werden.
+ DVDs werden heutzutage als Standardmedium für
+ Videos verwendet.
+
+ Für beschreibbare DVDs existieren fünf
+ Medienformate:
+
+
+
+ DVD-R: Dies war das erste verfügbare Format.
+ Das Format wurde vom DVD-Forum
+ festgelegt. Die Medien sind nur einmal beschreibbar.
+
+
+
+ DVD-RW: Dies ist die wiederbeschreibbare Version
+ des DVD-R Standards. Eine DVD-RW kann ungefähr
+ 1000 Mal beschrieben werden.
+
+
+
+ DVD-RAM: Dies ist ebenfalls ein wiederbeschreibbares
+ Format, das vom DVD-Forum unterstützt wird.
+ Eine DVD-RAM verhält sich wie eine Wechselplatte.
+ Allerdings sind die Medien nicht kompatibel zu den
+ meisten DVD-ROM-Laufwerken und DVD-Video-Spielern.
+ DVD-RAM wird nur von wenigen Brennern unterstützt.
+
+
+
+ DVD+RW: Ist ein wiederbeschreibbares Format, das
+ von der DVD+RW
+ Alliance festgelegt wurde. Eine DVD+RW
+ kann ungefähr 1000 Mal beschrieben werden.
+
+
+
+ DVD+R: Dieses Format ist die nur einmal beschreibbare
+ Variante des DVD+RW Formats.
+
+
+
+ Auf einer einfach beschichteten DVD können
+ 4.700.000.000 Bytes gespeichert werden. Das
+ sind 4,38 GB oder 4485 MB (1 Kilobyte
+ sind 1024 Bytes).
+
+
+ Die physischen Medien sind unabhängig von
+ der Anwendung. Ein DVD-Video ist ein spezielles
+ Dateisystem, das auf irgendein Medium (zum Beispiel
+ DVD-R, DVD+R oder DVD-RW) geschrieben werden kann.
+ Bevor Sie ein Medium auswählen, müssen
+ Sie sicherstellen, dass der Brenner und der DVD-Spieler
+ (ein Einzelgerät oder ein DVD-ROM-Laufwerk
+ eines Rechners) mit dem Medium umgehen können.
+
+
+
+
+ Konfiguration
+
+ Das Programm &man.growisofs.1; beschreibt DVDs.
+ Das Kommando ist Teil der Anwendung
+ dvd+rw-tools
+ (sysutils/dvd+rw-tools).
+ dvd+rw-tools kann mit allen
+ DVD-Medien umgehen.
+
+ Um die Geräte anzusprechen, brauchen die
+ Werkzeuge das SCSI-Subsystem. Daher muss der
+ Kernel den ATAPI/CAM-Treiber
+ zur Verfügung stellen.
+
+ Bevor Sie dvd+rw-tools
+ mit Ihrem DVD-Brenner benutzen, lesen Sie bitte die
+ Hardware-Informationen auf der Seite dvd+rw-tools'
+ hardware compatibility notes.
+
+
+
+ Daten-DVDs brennen
+
+ &man.growisofs.1; erstellt mit dem Programm
+ mkisofs das Dateisystem
+ und brennt anschließend die DVD. Vor dem Brennen
+ brauchen Sie daher kein Abbild der Daten zu erstellen.
+
+ Wenn Sie von den Daten im Verzeichnis
+ /path/to/data eine
+ DVD+R oder eine DVD-R brennen wollen, benutzen Sie
+ das nachstehende Kommando:
+
+ &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data
+
+ Die Optionen werden an
+ &man.mkisofs.8; durchgereicht und dienen zum Erstellen
+ des Dateisystems (hier: ein ISO-9660-Dateisystem mit
+ Joliet- und Rock-Ridge-Erweiterungen). Weiteres
+ entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;.
+
+ Die Option wird für die erste
+ Aufnahme einer Session benötigt, egal ob Sie eine
+ Multi-Session-DVD brennen oder nicht. Für
+ /dev/cd0 müssen Sie
+ den Gerätenamen Ihres Brenners einsetzen. Die
+ Option schließt das
+ Medium, weitere Daten können danach nicht mehr
+ angehängt werden. Durch die Angabe dieser Option
+ kann das Medium von mehr DVD-ROM-Laufwerken gelesen
+ werden.
+
+ Sie können auch ein vorher erstelltes Abbild
+ der Daten brennen. Die nachstehende Kommandozeile
+ brennt das Abbild in der Datei
+ imagefile.iso:
+
+ &prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.iso
+
+ Die Schreibgeschwindigkeit hängt von den
+ verwendeten Medium sowie dem verwendeten Gerät ab
+ und sollte automatisch gesetzt werden. Falls Sie die
+ Schreibgeschwindigkeit vorgeben möchten, verwenden
+ Sie den Parameter . Weiteres
+ erfahren Sie in der Hilfeseite &man.growisofs.1;.
+
+
+
+ DVD
+ DVD-Video
+
+
+
+ DVD-Videos brennen
+
+ Ein DVD-Video ist ein spezielles Dateisystem, das
+ auf den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen
+ beruht. Ein DVD-Video ist auf eine bestimmte Datei-Hierarchie
+ angewiesen. Daher müssen Sie DVDs mit speziellen
+ Programmen wie sysutils/dvdauthor
+ erstellen.
+
+ Wenn Sie schon ein Abbild des Dateisystems eines
+ DVD-Videos haben, brennen Sie das Abbild wie jedes
+ andere auch. Eine passende Kommandozeile finden Sie
+ im vorigen Abschnitt. Wenn Sie die DVD im Verzeichnis
+ /path/to/video
+ zusammengestellt haben, erstellen Sie das DVD-Video
+ mit dem nachstehenden Kommando:
+
+ &prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video
+
+ Mit der Option erstellt
+ &man.mkisofs.8; das DVD-Video-Dateisystem.
+
+
+
+ DVD
+ DVD+RW
+
+
+
+ DVD+RW-Medien benutzen
+
+ Im Gegensatz zu CD-RW-Medien müssen Sie DVD+RW-Medien
+ erst formatieren, bevor Sie die Medien benutzen.
+ Eine DVD+RW formatieren Sie wie folgt:
+
+ &prompt.root; dvd+rw-format /dev/cd0
+
+ Sie müssen das Kommando nur einmal mit
+ neuen Medien laufen lassen. Anschließend
+ können Sie DVD+RWs, wie in den vorigen
+ Abschnitten beschrieben, brennen.
+
+ Wenn Sie auf einer DVD+RW ein neues Dateisystem
+ erstellen wollen, brauchen Sie die DVD+RW vorher
+ nicht zu löschen. Überschreiben Sie
+ einfach das vorige Dateisystem indem Sie eine neue
+ Session anlegen:
+
+ &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata
+
+ Mit dem DVD+RW-Format ist es leicht, Daten an eine
+ vorherige Aufnahme anzuhängen. Dazu wird eine neue
+ Session mit der schon bestehenden zusammengeführt.
+ Es wird keine Multi-Session geschrieben, sondern
+ &man.growisofs.1; vergrößert
+ das ISO-9660-Dateisystem auf dem Medium.
+
+ Das folgende Kommando fügt weitere Daten zu
+ einer vorher erstellten DVD+RW hinzu:
+
+ &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata
+
+ Wenn Sie eine DVD+RW erweitern, verwenden Sie
+ dieselben &man.mkisofs.8;-Optionen wie beim Erstellen
+ der DVD+RW.
+
+
+ Wenn Sie die erste Session erstellen, dürfen Sie
+ die Option nicht
+ angeben. Ansonsten müssten Sie später wieder
+ eine neue Session erstellen.
+
+
+ Wenn Sie das Medium aus irgendwelchen Gründen
+ doch löschen müssen, verwenden Sie den
+ nachstehenden Befehl:
+
+ &prompt.root; growisofs -Z /dev/cd0=/dev/zero
+
+
+
+ DVD
+ DVD-RW
+
+
+
+ DVD-RW-Medien benutzen
+
+ Eine DVD-RW kann mit zwei Methoden beschrieben werden:
+ Sequential-Recording oder
+ Restricted-Overwrite. Voreingestellt
+ ist Sequential-Recording.
+
+ Eine neue DVD-RW kann direkt beschrieben werden; sie
+ muss nicht vorher formatiert werden. Allerdings muss
+ eine DVD-RW, die mit Sequential-Recording aufgenommen
+ wurde, zuerst gelöscht werden, bevor eine neue Session
+ aufgenommen werden kann.
+
+ Der folgende Befehl löscht eine DVD-RW im
+ Sequential-Recording-Modus:
+
+ &prompt.root; dvd+rw-format -blank=full /dev/cd0
+
+
+ Das vollständige Löschen
+ () dauert mit einem
+ 1x Medium ungefähr eine Stunde. Wenn die
+ DVD-RW im Disk-At-Once-Modus (DAO) aufgenommen wurde,
+ kann Sie mit der Option schneller
+ gelöscht werden. Um eine DVD-RW im DAO-Modus zu
+ brennen, benutzen Sie das folgende Kommando:
+
+ &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso
+
+ Die Option
+ sollte nicht erforderlich sein, da &man.growisofs.1;
+ den DAO-Modus erkennt.
+
+ Der Restricted-Overwrite-Modus sollte mit jeder
+ DVD-RW verwendet werden, da er flexibler als der
+ voreingestellte Sequential-Recording-Modus ist.
+
+
+ Um Daten auf eine DVD-RW im Sequential-Recording-Modus
+ zu schreiben, benutzen Sie dasselbe Kommando wie
+ für die anderen DVD-Formate:
+
+ &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data
+
+ Wenn Sie weitere Daten zu einer Aufnahme hinzufügen
+ wollen, benutzen Sie die Option von
+ &man.growisofs.1;. Werden die Daten im Sequential-Recording-Modus
+ hinzugefügt, wird eine neue Session erstellt.
+ Das Ergebnis ist ein Multi-Session-Medium.
+
+ Eine DVD-RW im Restricted-Overwrite-Modus muss nicht
+ gelöscht werden, um eine neue Session aufzunehmen.
+ Sie können das Medium einfach mit der Option
+ überschreiben, ähnlich wie
+ bei DVD+RW. Mit der Option können
+ Sie das ISO-9660-Dateisystem, wie mit einer DVD+RW,
+ vergrößern. Die DVD enthält danach eine
+ Session.
+
+ Benutzen sie das nachstehende Kommando, um den
+ Restricted-Overwrite-Modus einzustellen:
+
+ &prompt.root; dvd+rw-format /dev/cd0
+
+ Das folgende Kommando stellt den Modus wieder auf
+ Sequential-Recording zurück:
+
+ &prompt.root; dvd+rw-format -blank=full /dev/cd0
+
+
+
+ Multi-Session
+
+ Nur wenige DVD-ROM- und DVD-Video-Spieler können
+ Multi-Session-DVDs lesen. Meist lesen die Spieler nur
+ die erste Session. Mehrere Sessions werden von
+ DVD+R, DVD-R und DVD-RW im Sequential-Recording-Modus
+ unterstützt. Im Modus Restricted-Overwrite gibt
+ es nur eine Session.
+
+ Wenn das Medium noch nicht geschlossen ist, erstellt
+ das nachstehende Kommando eine neue Session auf einer
+ DVD+R, DVD-R oder DVD-RW im Sequential-Recording-Modus:
+
+ &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata
+
+
+
+ Weiterführendes
+
+ Das Kommando dvd+rw-mediainfo
+ /dev/cd0 zeigt
+ Informationen über eine im Laufwerk liegende
+ DVD an.
+
+ Weiteres zu den dvd+rw-tools
+ lesen Sie bitte in der Hilfeseite &man.growisofs.1;,
+ auf der dvd+rw-tools
+ Web-Seite oder in den Archiven der cdwrite-Mailingliste.
+
+
+
JulioMerinoOriginal von MartinKarlssonUmgeschrieben von
- Handhabung von Disketten
+ Disketten benutzenDisketten sind nützlich, wenn kein anderes
bewegliches Speichermedium vorhanden ist oder wenn
nur kleine Datenmengen transferiert werden sollen.Dieser Abschnitt beschreibt die Handhabung von Disketten
unter FreeBSD. Hauptsächlich geht es um die
Formatierung und Benutzung von 3,5 Zoll Disketten,
doch lassen sich die Konzepte leicht auf Disketten anderer
Formate übertragen.Disketten formatierenDie GerätedateienWie auf jedes andere Gerät auch, greifen Sie
auf Disketten über Einträge im Verzeichnis
/dev zu. Unter &os; 4.X und
früheren Versionen greifen Sie auf das Laufwerk
über die Gerätedateien
/dev/fdN
(N ist Laufwerksnummer,
für gewöhnlich 0) oder
/dev/fdNX
(X ist ein Buchstabe) zu.Unter &os; 5.0 oder neueren Versionen
verwenden Sie einfach die Datei
/dev/fdN.Diskettenkapazitäten unter 4.X oder
früherEs gibt Gerätedateien der Form
/dev/fdX.Größe.
Größe gibt die
Kapazität der Diskette in Kilobytes an. Diese
Einträge bestimmen bei der Low-Level-Formatierung
die Speicherkapazität der Diskette. In den folgenden
Beispiel wird die Größe 1440 kb
verwendet.Manchmal müssen die Gerätedateien
in /dev (neu) erstellt werden.
Dies geschieht mit dem folgenden Befehl:&prompt.root; cd /dev && ./MAKEDEV "fd*"Diskettenkapazitäten unter 5.0 oder
neueren VersionenUnter &os; 5.X werden die Gerätedateien
von &man.devfs.5; verwaltet. Der Befehl
MAKEDEV wird nicht mehr
benötigt.Die gewünschte Kapazität wird &man.fdformat.1;
über die Option mitgeteilt. Die
unterstützten Kapazitäten sind in der
Hilfeseite &man.fdcontrol.8; aufgezählt.
1440 kB ist eine gängige Kapazität und
funktioniert am besten.FormatierungBevor eine Diskette benutzt werden kann, muss Sie
(low-level) formatiert werden, was normalerweise der
Hersteller schon gemacht hat. Sie können die
Diskette allerdings noch einmal formatieren, um das Medium zu
überprüfen. Es ist möglich, die
Kapazität der Diskette zu verändern,
allerdings sind die meisten Disketten auf 1440 kB
ausgelegt.Mit &man.fdformat.1; formatieren Sie eine
Diskette. Das Kommando erwartet die Angabe eines
Gerätenamens.Achten Sie bei der Formatierung
auf Fehlermeldungen, die schlechte Speichermedien
anzeigen.Formatierung unter 4.X oder
früheren VersionenDie Disketten werden mithilfe der Gerätedatei
/dev/fdX.Größe
formatiert. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando
aus:&prompt.root; /usr/sbin/fdformat /dev/fd0.1440Formatierung unter 5.X oder
neueren VersionenDie Disketten werden mithilfe der Gerätedatei
/dev/fdN
formatiert. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando
aus:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0Das DisklabelNach dem Formatieren muss auf der Diskette ein Disklabel
erstellt werden. Das Disklabel wird später zerstört, ist
aber notwendig, um die Größe und Geometrie der Diskette
zu erkennen.Das Disklabel gilt für die ganze Diskette und enthält
alle Informationen über die Geometrie der Diskette. Eine
Liste der möglichen Geometrien finden Sie in
/etc/disktab.Erstellen Sie nun das Label mit &man.disklabel.8;:&prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Das DateisystemAuf der Diskette muss nun ein Dateisystem erstellt werden
(high-level Formatierung), damit FreeBSD von der Diskette lesen und
auf sie schreiben kann. Das Disklabel wird durch das Anlegen eines
Dateisystems zerstört. Falls Sie die Diskette später erneut
formatieren wollen, müssen Sie dann auch ein neues Disklabel
anlegen.Sie können entweder UFS oder FAT als Dateisystem
verwenden. Für Floppies ist FAT das beste Dateisystem.Das folgende Kommando legt ein Dateisystem auf der Diskette
an:&prompt.root; /sbin/newfs_msdos /dev/fd0Die Diskette kann nun benutzt werden.Verwenden der DisketteUnter &os; 4.X und früheren Versionen
können Sie die Diskette mit &man.mount.msdos.8; in
den Dateibaum einhängen. Unter &os; 5.X und
neueren Versionen verwenden Sie dazu den Befehl
&man.mount.msdosfs.8;. Sie können auch den
Port emulators/mtools
verwenden, um mit der Diskette zu arbeiten.
- Handhabung von Bandmedien
+ Bandmedien benutzenBandmedienDie wichtigsten Bandmedien sind 4mm, 8mm, QIC,
Mini-Cartridge und DLT.4mm (DDS: Digital Data Storage)BandmedienDDS (4mm) BänderBandmedienQIC BänderDie 4mm-Bänder ersetzen mehr und mehr das QIC-Format als
Backupmedium der Wahl für Workstations. Dieser Trend nahm stark
zu, als Conner die Firma Archive, einen führenden Hersteller von
QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
gleichen Ruf der Zuverlässigkeit, den die 8mm-Laufwerke
genießen. Die 4mm-Kassetten sind preiswerter und mit den
Maßen 76,2 x 50,8 x 12,7 mm
(3 x 2 x 0,5 Inch) kleiner als die
8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetköpfe
haben eine relativ kurze Lebensdauer, weil beide die gleiche
- Helical-Scan-Technologie benutzen.
+ Helical-Scan-Technik benutzen.
Der Datendurchsatz dieser Laufwerke beginnt bei etwa
150 kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s.
Die Datenkapazität liegt zwischen 1,3 GB und 2 GB.
Die meisten Geräte haben eine Hardwarekompression eingebaut,
die die Kapazität ungefähr verdoppelt. Es gibt
Multi-Drive-Einheiten für Bandbibliotheken mit bis zu 6
Laufwerken in einem Gehäuse und automatischem Bandwechsel. Die
Kapazität einer solchen Bibliothek liegt bei 240 GB.Der Standard DDS-3 unterstützt nun Bandkapazitäten bis
zu 12 GB (oder komprimiert 24 GB).4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
Alle Vor- und Nachteile von Helical-Scan gelten sowohl für 4mm-
als auch für 8mm-Laufwerke.Bänder sollten nach 2.000 Banddurchläufen oder 100
vollen Backups ersetzt werden.8mm (Exabyte)BandmedienExabyte (8mm) Bänder8mm-Bänder sind die verbreitetsten SCSI-Bandlaufwerke; sie
sind das geeignetste Bandformat zum Austausch von Bändern.
Fast an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB.
8mm-Bänder sind zuverlässig, gut zu handhaben und
arbeiten leise. Bandkassetten sind preiswert und klein mit
122 x 84 x 15 mm
(4,8 x 3,3 x 0,6 Inch). Ein Nachteil
- der 8mm-Technologie ist die relativ kurze Lebensdauer des
+ der 8mm-Technik ist die relativ kurze Lebensdauer des
Schreib-/Lesekopfs und der Bänder auf Grund der hohen
Relativgeschwindigkeit des Bandes über die Köpfe
hinweg.Der Datendurchsatz liegt ungefähr zwischen
250 kByte/s und 500 kByte/s. Die Datenkapazität
beginnt bei 300 MB und erreicht bis zu 7 GB bei den
Spitzengeräten. Die meisten Geräte
haben eine Hardwarekompression eingebaut, die die Kapazität
ungefähr verdoppelt. Diese Laufwerke sind erhältlich in
Form von Einzelgeräten oder als Multi-Drive-Bandbibliotheken mit
6 Laufwerken und 120 Bändern in einem Gehäuse. Die
Bänder werden von der Geräteeinheit automatisch gewechselt.
Die Kapazität einer solchen Bibliothek liegt bei 840 GB und
mehr.Das Exabyte-Modell Mammoth unterstützt
12 GB auf einem Band (24 GB mit Kompression) und kostet
etwa doppelt so viel wie ein konventionelles Bandlaufwerk.Die Daten werden mittels Helical-Scan auf das Band
aufgezeichnet, die Köpfe sind leicht schräg zum Medium
angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt
sich 270 Grad um die Spule, die die Köpfe trägt.
Die Spule dreht sich, während das Band darüberläuft.
Das Resultat ist eine hohe Datendichte und eng gepackte Spuren,
die von einem Rand des Bands zum gegenüberliegenden quer
über das Band abgewinkelt verlaufen.QICBandmedienQIC-150QIC-150-Bänder und -Laufwerke sind wohl der am weitesten
verbreitete Bandtyp überhaupt. QIC-Bandlaufwerke sind die
preiswertesten seriösen Backupgeräte,
die angeboten werden. Der Nachteil dabei ist der hohe Preis
der Bänder. QIC-Bänder sind im Vergleich zu 8mm- oder
4mm-Bändern bis zu fünf Mal teurer, wenn man den Preis
auf 1 GB Datenkapazität umrechnet. Aber wenn Ihr Bedarf
mit einem halben Dutzend Bänder abgedeckt werden kann,
mag QIC die richtige Wahl sein.QIC ist der gängigste
Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder
anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC
bietet eine große Anzahl verschiedener Datendichten auf
physikalisch ähnlichen (manchmal gleichen) Bändern.
QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die
richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen.
Sie sind während des Lesens, Schreibens und Suchens deutlich
hörbar.Die Abmessungen der QIC-Kassetten betragen
152.4 x 101.6 x 17.78 mm
(6 x 4 x 0,7 Inch),
die QIC-Bandbreite beträgt 6,35 mm (1/4 Inch). Mini-Cartridges, die die
gleiche Bandbreite verwenden, werden gesondert vorgestellt.
Bandbibliotheken und Bandwechselgeräte gibt es im QIC-Format
keine.Der Datendurchsatz liegt ungefähr zwischen
150 kByte/s und 500 kByte/s. Die Datenkapazität
reicht von 40 MB bis zu 15 GB.
Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut.
QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den
DAT-Laufwerken abgelöst.Die Daten werden auf dem Band in Spuren aufgezeichnet. Die
Spuren verlaufen entlang der Längsachse des Bandmediums von einem
Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite
einer Spur, variiert mit der Kapazität des Laufwerks. Die
meisten, wenn nicht alle neueren Laufwerke sind
rückwärtskompatibel, zumindest zum Lesen (aber oft auch zum
Schreiben). QIC hat einen guten Ruf bezüglich der
Datensicherheit (die Mechanik ist einfacher und robuster als diejenige
der Helical-Scan-Laufwerke).Bänder sollten nach 5,000 Backups ersetzt werden.XXX* Mini-CartridgeDLTBandmedienDLTDLT hat die schnellste Datentransferrate von allen hier
aufgelisteten Gerätetypen. Das 1/2-Inch-Band (12,7 mm)
befindet sich in einer Spulkassette mit den Abmessungen
101,6 x 101,6 x 25,4 mm
(4 x 4 x 1 Inch). Die eine Seite
der Kassette hat eine bewegliche Abdeckung. Der Laufwerksmechanismus
öffnet diese Abdeckung und zieht die Bandführung heraus.
Die Bandführung trägt ein ovales Loch, die das Laufwerk
zum Einhängen des Bandes benutzt. Die
Aufwickelspule befindet sich im Innern des Bandlaufwerks. Bei allen
anderen hier besprochenen Bandkassetten (9-Spur-Bänder
sind die einzige Ausnahme) befinden sich sowohl die Auf- als auch
die Abwickelspule im Inneren der Bandkassette.Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
Datenkapazität reicht von 10 GB bis 20 GB für
Einfachlaufwerke. Auch Mehrfachbandgeräte sind erhältlich,
sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die
Platz für 5 bis 900 Bänder verteilt auf 1 bis 20 Laufwerke
enthalten, mit einer Speicherkapazität von 50 GB bis
9 TB.Mit Kompression unterstützt das Format DLT Type IV bis zu
70 GB Kapazität.Die Daten werden auf dem Band in Spuren aufgezeichnet, die
parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
QIC-Bändern). Zwei Spuren werden dabei gleichzeitig beschrieben.
Die Lebenszeit der Lese- und Schreibköpfe sind relativ lang; denn
sobald das Band anhält, gibt es keine Relativbewegung mehr
zwischen den Köpfen und dem Band.AITBandmedienAITAIT ist ein neues Format von Sony, das (mit Kompression) bis zu
50 GB pro Band speichern kann. Die Bänder haben einen
Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage
von Dateien auf dem Band benutzt werden, während andere
Bänder einige Minuten zur Lokalisierung benötigen.Entsprechende Software wie etwa
SAMS:Alexandria können 40
oder mehr AIT-Bandbibliotheken verarbeiten, indem sie
direkt mit dem Speicherchip des Bandes kommunizieren, wenn der
Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden
soll, welche Dateien auf welchem Band gespeichert sind, oder um das
richtige Band zu lokalisieren, zu laden und Daten vom Band
zurückzuspielen. Bibliotheken dieser Art liegen in der
Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
herausfallen.Die erste Benutzung eines neuen BandsDer Versuch ein neues, vollkommen leeres Band ohne weiteres zu
lesen oder zu beschreiben wird schief gehen. Auf der Konsole werden
dann Meldungen ähnlich wie folgt ausgegeben:sa0(ncr1:4:0): NOT READY asc:4,1
0(ncr1:4:0): Logical unit is in process of becoming readyDas Band enthält nämlich keinen Identifier-Block
(Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einführung des
QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es
gibt zwei Lösungen:mt fsf 1 veranlasst das Bandlaufwerk
einen Identifier-Block auf das Band zu schreiben.Das Band durch Drücken des Bandauswurfknopfs an der
Vorderseite des Bandgeräts auswerfen.Danach das Band wieder einlegen und mit
dump Daten auf das Band
übertragen.Das Kommando dump gibt die Meldung
DUMP: End of tape detected zurück
und die Konsole zeigt:
HARDWARE FAILURE info:280 asc:80,96.Das Band zurückspulen mit dem Kommando:
mt rewind.Nachfolgende Bandoperationen werden dann erfolgreich
ausgeführt.Was ist mit Backups auf Disketten?Kann ich Disketten zum Backup meiner Daten verwenden?Backup DiskettenDiskettenDisketten sind kein wirklich geeignetes Medium für Backups
aus folgenden Gründen:Disketten sind unzuverlässig, besonders
langfristig.Speichern und Wiederherstellen ist sehr langsam.Sie haben eine sehr eingeschränkte Kapazität (Die
Zeiten sind längst vorbei, wo eine ganze Festplatte auf ein
Dutzend Floppies oder so gespeichert werden konnte).Wenn jedoch keine andere Möglichkeit zum Datenbackup
vorhanden ist, dann sind Disketten immer noch besser als gar kein
Backup.Wenn man gezwungen ist Disketten zu verwenden, dann sollte man
auf eine gute Qualität achten. Floppies, die schon einige Jahre
im Büro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
neue Disketten von einem renommierten Hersteller.Wie mache ich ein Backup auf Disketten?Die beste Art eines Diskettenbackups ist der Befehl
&man.tar.1; mit der Mehrfachband-Option ,
die es ermöglicht ein Backup über mehrere
Floppies zu verteilen.Ein Backup aller Dateien im aktuellen Verzeichnis
einschließlich aller Unterverzeichnisse wird durch den folgenden
Befehl veranlasst (als root):&prompt.root; tar Mcvf /dev/fd0 *Wenn die erste Floppy voll ist, meldet sich &man.tar.1;
und verlangt einen Diskettenwechsel (weil &man.tar.1;
unabhängig vom
Medium arbeitet, wird das nächste Band (Volume) verlangt, was in
diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:Prepare volume #2 for /dev/fd0 and hit return:Dies wird mit steigender Volumenzahl wiederholt, bis alle
angegebenen Dateien archiviert sind.Können Diskettenbackups komprimiert werden?targzipKompressionLeider erlaubt es &man.tar.1; nicht, die Option
für Multi-Volume-Archive zu verwenden.
Man kann natürlich alle Dateien mit &man.gzip.1;
komprimieren, sie mit &man.tar.1; auf die Floppies
aufspielen, und dann die Dateien wieder &man.gunzip.1;
entkomprimieren!Wie werden Diskettenbackups wieder hergestellt?Zur Wiederherstellung des gesamten Archivs verwendet man:&prompt.root; tar Mxvf /dev/fd0Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
mit der ersten Diskette den folgenden Befehl auszuführen:&prompt.root; tar Mxvf /dev/fd0 filename&man.tar.1; wird dann die folgenden Disketten anfordern,
bis die benötigte Datei gefunden ist.Wenn man die Diskette kennt, auf der sich die Datei befindet,
kann man alternativ diese Diskette auch direkt einlegen und den
gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
erste Datei eine Fortsetzung einer Datei von einer
der vorigen Disketten ist, &man.tar.1; die Warnung ausgibt,
dass diese Datei nicht wiederhergestellt werden kann, selbst dann,
wenn dies gar nicht verlangt wurde!DatensicherungDie drei wichtigsten Programme zur Sicherung von Daten sind
&man.dump.8;, &man.tar.1; und &man.cpio.1;.Sichern und WiederherstellenDatensicherungBackupBackup-SoftwaredumpBackup-Softwarerestoredumprestoredump und restore sind die
traditionellen
Backupprogramme in &unix; Systemen. Sie betrachten das Laufwerk als eine
Ansammlung von Blöcken, operieren also unterhalb dem
Abstraktionslevel von Dateien, Links und Verzeichnissen, die die
Grundlage des Dateisystemkonzepts bilden. dump
sichert ein ganzes Dateisystem auf einem Gerät, es ist nicht
möglich nur einen Teil des Dateisystems, oder einen
Verzeichnisbaum, der mehr als ein Dateisystem umfasst zu
sichern. dump schreibt keine Dateien oder
Verzeichnisse auf das Band, sondern die Blöcke, aus denen
Dateien und Verzeichnisse bestehen.Wenn Sie mit dump das Root-Verzeichnis
sichern, werden /home, /usr
und viele andere Verzeichnisse nicht gesichert, da dies normalerweise
Mountpunkte für andere Dateisysteme oder symbolische Links
zu diesen Dateisystemen sind.dump hat einige Eigenarten, die noch aus den
frühen Tagen der Version 6 von AT&T UNIX (ca. 1975)
stammen. Die Parameter
sind für 9-Spur-Bänder (6250 bpi) voreingestellt,
nicht auf die heute üblichen Medien hoher Dichte (bis zu
62.182 ftpi). Bei der Verwendung der Kapazitäten
moderner Bandlaufwerke muss diese Voreinstellung auf der
Kommandozeile überschrieben werden..rhostsrdump und rrestore
können Daten über
Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
Computers befindet, überspielen. Beide Programme benutzen die
Befehle rcmd und ruserok zum
Zugriff auf das entfernte
Bandlaufwerk. Daher muss der Anwender, der das Backup
durchführt, auf dem entfernten Rechner in
.rhosts eingetragen sein.Die Argumente zu rdump und
rrestore müssen
zur Verwendung auf dem entfernten Computer geeignet sein.
Wenn Sie zum Beispiel mit rdump von einem
FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer Sun mit
Namen komodo zugreifen möchten, setzen Sie
das folgende Kommando ab:&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1Zum Ausführen dieses Kommandos müssen Sie auf dem
entfernten Rechner in .rhosts eingetragen
sein. Die r-Kommandos sind ein großes Sicherheitsrisiko,
daher sollten Sie deren Verwendung sorgfältig
abwägen.Es ist auch möglich, dump und
restore über eine gesicherte Verbindung
mit ssh einzusetzen:dump mit ssh
benutzen&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz
+
+
+ Sie können ebenfalls mit der internen Methode
+ von dump auf entfernte Rechner zugreifen,
+ indem Sie die Umgebungsvariable RSH
+ setzen:
+
+
+ dump über ssh
+ mit gesetzter RSH benutzen
+ &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0tarBackup-Softwaretar&man.tar.1; stammt ebenfalls aus Version 6 von AT&T UNIX
(ca. 1975). tar arbeitet mit dem Dateisystem,
denn es schreibt Dateien und Verzeichnisse auf das Band.
tar unterstützt zwar nicht den vollen Umfang
von Optionen, die bei
&man.cpio.1; zur Verfügung stehen, aber dafür erfordert
tar nicht die ungewöhnliche Kommando-Pipeline,
die cpio verwendet.tarDie meisten Versionen von tar unterstützen
keine Backups über das Netzwerk. Die GNU-Version von
tar die in FreeBSD verwendet wird, unterstützt
jedoch entfernte Geräte mit der gleichen Syntax wie
rdump. Um tar
für ein Exabyte-Bandlaufwerk auf einer Sun
namens komodo auszuführen, muss folgendes
Kommando aufgerufen werden:&prompt.root; /usr/bin/tar cf komodo:/dev/nsa8 . 2>&1Bei den Versionen ohne Unterstützung
für entfernte Geräte kann man die Daten über eine
Pipeline und rsh an ein entferntes Laufwerk
senden.&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20bWenn Sie Bedenken bezüglich der Sicherheit beim Backup
über das Netz haben, sollten Sie ssh anstatt
rsh benutzen.CpioBackup-Softwarecpiocpio&man.cpio.1; ist das ursprüngliche Programm von
&unix; Systemen zum Dateitransfer mit magnetischen Medien.
cpio hat (neben vielen anderen
Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
einer Anzahl verschiedener Archivformate und zum Weiterleiten von
Daten an andere Programme über eine Pipeline. Dieses letzte
Leistungsmerkmal macht cpio zu einer
ausgezeichneten Wahl für Installationsmedien. Leider kann
cpio keine
Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden
Dateien über stdin angegeben werden
muss.cpio unterstützt keine Backups
über das Netzwerk. Man kann aber eine Pipeline und
rsh verwenden, um
Daten an ein entferntes Bandlaufwerk zu senden.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Dabei steht directory_list für
eine Aufzählung der Verzeichnisse, die Sie sichern wollen.
user@host
gibt den Benutzer auf dem Zielrechner an, der die Sicherung
laufen lässt. Der Ort der Sicherung wird durch
backup_device angegeben
(z.B. /dev/nsa0).paxBackup-SoftwarepaxpaxPOSIXIEEE&man.pax.1; ist die Antwort von IEEE/&posix; auf
tar und cpio.
Über die Jahre hinweg sind die verschiedenen
Versionen von tar und cpio leicht
inkompatibel geworden. Daher hat &posix;, statt eine Standardisierung
zwischen diesen auszufechten, ein neues Archivprogramm geschaffen.
pax versucht viele der unterschiedlichen
cpio- und tar-Formate zu lesen
und zu schreiben, außerdem einige neue, eigene Formate. Die
Kommandostruktur ähnelt eher cpio als
tar.AmandaBackup-SoftwareAmandaAmandaAmanda
(Advanced Maryland Network Disk Archiver) ist ein
Client/Server-Backupsystem, nicht nur ein einzelnes Programm.
Ein Amanda-Server kann auf einem
einzigen Bandlaufwerk Datensicherungen von jeder beliebigen
Anzahl von Computern speichern, sofern auf diesen jeweils ein
Amanda-Client läuft und sie
über Netzwerk mit dem Amanda-Server
verbunden sind.Ein häufiges Problem bei Standorten mit einer Anzahl
großer Festplatten ist, dass das Kopieren der Daten auf
Band langsamer vor sich geht als solche Daten anfallen.
Amanda löst dieses Problem
durch Verwendung einer Holding Disk, einer Festplatte
zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.Für Datensicherungen über einen längeren
Zeitraum erzeugt AmandaArchivsets von allen Dateisystemen, die in
Amandas Konfigurationsdatei genannt
werden. Ein Archivset ist eine Gruppe von Bändern mit
vollen Backups und Reihen von inkrementellen (oder differentiellen)
Backups, die jeweils nur die Unterschiede zum vorigen
Backup enthalten. Zur Wiederherstellung von beschädigten
Dateisystemen benötigt man Das Letzte volle Backup und alle
darauf folgenden inkrementellen Backups.Die Konfigurationsdatei ermöglicht die Feineinstellung
der Backups und des Netzwerkverkehrs von
Amanda. Amanda
kann zum Schreiben der Daten auf das Band jedes der oben
beschriebenen Backuprogramme verwenden.
Amanda ist nicht Teil des Basissystems,
Sie müssen Amanda über
die Ports-Sammlung oder als Paket installieren.Tue nichtsTue nichts ist kein Computerprogramm, sondern die
am häufigsten angewendete Backupstrategie. Diese kostet nichts,
man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn
etwas passiert, einfach grinsen und ertragen!Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist
die Strategie Tue nichts das geeignetste Backupprogramm
für Ihren Computer. Aber &unix; ist ein nützliches Werkzeug,
Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten
eine Sammlung von Dateien haben, die für Sie wertvoll geworden
sind.Tue nichts ist die richtige Backupmethode für
/usr/obj und andere Verzeichnisbäume, die
vom Computer exakt wiedererzeugt werden können. Ein Beispiel
sind die Dateien, die diese Handbuchseiten darstellen – sie
wurden aus Quelldateien im Format SGML erzeugt.
Es ist nicht nötig, Sicherheitskopien der Dateien in den
sekundären Formaten wie etwa HTML zu
erstellen. Die Quelldateien in SGML sollten jedoch
in die regelmäßigen Backups mit einbezogen werden.Welches Backup-Programm ist am Besten?LISAdump, Punkt und Schluss.
Elizabeth D. Zwicky hat alle hier genannten Backup-Programme
bis zur Erschöpfung ausgetestet. Ihre eindeutige Wahl zur
Sicherung aller Daten mit Berücksichtigung aller Besonderheiten
von &unix; Dateisystemen ist dump.Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt
ungewöhnlicher Bedingungen (und einiger gar nicht so
ungewöhnlicher) und testete jedes Programm durch ein Backup und
eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten
waren Dateien mit Löchern, Dateien mit Löchern und einem
Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im
Dateinamen, unlesbare und nichtschreibbare Dateien,
Gerätedateien, Dateien, deren Länge sich während des
Backups ändert, Dateien, die während des Backups erzeugt und
gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse
in LISA V im Oktober 1991, s. Torture-testing
Backup and Archive Programs.Die Wiederherstellung in einem NotfallVor dem UnglückEs sind nur vier Vorkehrungen zu treffen, um auf jedes
erdenkliche Unglück vorbereitet zu sein.disklabelAls erstes drucken Sie das Disklabel jeder Ihrer Festplatten
(z.B. mittels disklabel da0 | lpr), die
Partitions- und Dateisystemtabelle jeder Festplatte (mit
/etc/fstab) sowie alle Bootmeldungen, jeweils
in zweifacher Ausfertigung.fix-it floppiesZweitens, überzeugen Sie sich, dass sowohl die
Bootdiskette als auch die Reparaturdiskette
(boot.flp bzw. fixit.flp)
all Ihre Geräte ansprechen können. Die einfachste Methode
dies nachzuprüfen ist, Ihren Rechner mit der Boot-Diskette im
Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen.
Wenn all Ihre Geräte aufgelistet sind und funktionieren,
können Sie weiter zu Schritt drei gehen.Ist das nicht der Fall, müssen Sie sich eine eigene
Version der beiden zum Booten benötigten Disketten erstellen.
Diese müssen einen Kernel enthalten, der all Ihre Platten
mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese
Disketten müssen ferner folgende Programme enthalten:
fdisk, disklabel,
newfs, mount sowie
jedes Backup-Programm, das Sie verwenden. Diese Programme
müssen statisch gelinkt sein. Falls Sie dump
verwenden, muss die Diskette auch restore
enthalten.Drittens, machen Sie oft Backups auf Band. Jede Änderung
seit Ihrem letzten Backup kann unwiederbringlich verloren gehen.
Versehen Sie die Backup-Bänder mit Schreibschutz.Viertens, testen Sie aus, wie die Disketten (entweder
boot.flp und fixit.flp
oder Ihre beiden eigenen Disketten aus Schritt zwei) und die
Bänder mit den Backups zu behandeln sind. Machen Sie sich
Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den
Bootdisketten, den Ausdrucken und den Bändern mit den Backups
auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt
sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren
Bändern zerstören. (Wie das geht? Man braucht nur
unglücklicherweise den Befehl tar cvf
/dev/sa0 einzugeben um ein Band zu
überschreiben).Als zusätzliche Sicherheitsvorkehrung, kann man jeweils
die Disketten und Bänder zweifach erstellen. Eine der Kopien
sollte an einem entfernten Standort aufbewahrt werden. Ein
entfernter Standort ist NICHT der Keller im gleichen
Bürogebäude. Eine Anzahl von Firmen im World Trade Center
musste diese Lektion auf die harte Tour lernen. Ein entfernter
Standort sollte von Ihrem Computer und Ihren Festplatten
physikalisch durch eine erhebliche Entfernung getrennt sein.Ein Beispielskript zum Erstellen eigener Bootdisketten /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# Geraetedateien erstellen
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# Minimale Dateisystemtabelle erstellen
#
cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <Nach dem UnglückDie Schlüsselfrage ist, ob Ihre Hardware überlebt
hat. Denn da Sie ja regelmäßig Backups angefertigt
haben, brauchen Sie sich um die Software keine Sorgen zu
machen.Falls die Hardware beschädigt wurde, ersetzen Sie zuerst
die defekten Teile bevor Sie den Computer benutzen.Falls die Hardware funktioniert, überprüfen Sie die
Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im
Single-User-Modus (geben dazu Sie -s am
Boot-Prompt boot: ein). Überspringen Sie den
folgenden Paragrafen.Wenn Sie die Standarddisketten boot.flp
und fixit.flp verwenden, lesen Sie hier weiter.
Legen Sie die Bootdiskette boot.flp in das
erste Floppylaufwerk ein und starten Sie den Computer. Wie
üblich wird dann das originale Installationsmenü von
FreeBSD gestartet. Wählen Sie die Option
Fixit--Repair mode with CD-ROM or floppy. Legen
Sie die Diskette fixit.flp ein, wenn danach
gefragt wird. restore und die anderen Programme,
die Sie benötigen, befinden sich dann in
/mnt2/stand.Stellen Sie die Dateisysteme nacheinander, getrennt von
einander, wieder her.mountRoot-PartitiondisklabelnewfsVersuchen Sie die Root-Partition Ihrer ersten Festplatte
einzuhängen (z.B. mit mount /dev/sd0a
/mnt). Wenn das Disklabel beschädigt wurde,
benutzen Sie disklabel um die Platte
neu zu partitionieren und zu benennen und zwar so, dass die
Festplatte mit dem Label übereinstimmt, das Sie
ausgedruckt und aufbewahrt haben.Verwenden Sie newfs um neue Dateisysteme
auf den
Partitionen anzulegen. Hängen Sie nun die Root-Partition der
Festplatte mit Schreibzugriff ein (mit mount -u -o rw
/mnt). Benutzen Sie Ihr Backup-Programm um die Daten
für das jeweilige Dateisystem aus den Backup-Bändern
wieder her zu stellen (z.B. durch restore vrf
/dev/sta). Hängen Sie das Dateisystem wieder aus
(z.B. durch umount /mnt). Wiederholen Sie diesen
Ablauf für jedes betroffene Dateisystem.Sobald Ihr System wieder läuft, machen Sie gleich wieder
ein vollständiges Backup auf neue Bänder. Denn die
Ursache für den Absturz oder den Datenverlust kann wieder
zuschlagen. Eine weitere Stunde, die Sie jetzt noch
dranhängen, kann Ihnen später ein weiteres Missgeschick
ersparen.* Ich habe mich nicht auf Missgeschicke vorbereitet - was
nun?
]]>
MarcFonvieilleVerbessert und neu strukturiert von Netzwerk-, speicher- und dateibasierte DateisystemeLaufwerkevirtuelleNeben Laufwerken, die sich physikalisch im Rechner befinden
wie Floppylaufwerke, CDs, Festplatten usw., kann FreeBSD auch
mit anderen Laufwerken, den virtuellen Laufwerken,
umgehen.NFSCodaLaufwerkespeicherbasierteLaufwerkeRAM-DisksDazu zählen Netzwerkdateisysteme wie
Network Filesystem und Coda,
speicher- und dateibasierte Dateisysteme.Abhängig von der verwendeten FreeBSD Version werden
speicher- und dateibasierte Dateisysteme mit unterschiedlichen
Werkzeugen angelegt.In FreeBSD 4.X werden Gerätedateien mit
&man.MAKEDEV.8; angelegt. FreeBSD 5.X erzeugt
Gerätedateien automatisch mithilfe von &man.devfs.5;.Dateibasierte Laufwerke unter FreeBSD 4.XLaufwerkedateibasierte (4.X)Mit &man.vnconfig.8; werden vnode Pseudo-Platten
konfiguriert und aktiviert. Ein vnode
stellt eine Datei dar, auf der Dateioperationen ablaufen.
Das bedeutet, dass &man.vnconfig.8; Dateien benutzt,
um ein Dateisystem zu erstellen und zu verwalten. Damit
ist es z.B. möglich, Dateien, die Abbilder von Floppies
oder CDs enthalten, anzuhängen.In der Kernelkonfiguration muss die
&man.vn.4;-Unterstützung aktiviert sein, damit
&man.vnconfig.8; funktioniert:pseudo-device vnUm ein existierendes Abbild eines Dateisystems
einzuhängen:Einhängen eines existierenden Abbildes unter
FreeBSD 4.X&prompt.root; vnconfig vn0diskimage
&prompt.root; mount /dev/vn0c /mntUm ein neues Dateisystem mit &man.vnconfig.8; anzulegen:Anlegen eines dateibasierten Laufwerks&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; vnconfig -s labels -c vn0newimage
&prompt.root; disklabel -r -w vn0 auto
&prompt.root; newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
32
&prompt.root; mount /dev/vn0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mntDateibasierte Laufwerke unter FreeBSD 5.XLaufwerkedateibasierte (5.X)Unter FreeBSD 5.0 werden virtuelle Laufwerke (&man.md.4;)
mit &man.mdconfig.8; erzeugt. Dazu muss das Modul &man.md.4;
geladen sein oder das entsprechende Gerät in der
Kernelkonfiguration aktiviert sein:device mdMit &man.mdconfig.8; können drei verschiedene virtuelle
Laufwerke angelegt werden: speicherbasierte Laufwerke, deren
Speicher von &man.malloc.9; zur Verfügung gestellt wird, oder
dateibasierte Laufwerke, deren Speicher von einer Datei oder dem
Swap-Bereich zur Verfügung gestellt wird. Eine mögliche
Anwendung ist das Einhängen von Dateien, die Abbilder von
CD-ROMs oder Floppies enthalten.Das Abbild eines Dateisystems wird wie folgt
eingehangen:Einhängen eines existierenden Abbildes unter
FreeBSD 5.X&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0c /mntEin neues Dateisystem-Abbild erstellen Sie mit
&man.mdconfig.8; wie folgt:Erstellen eines dateibasierten Laufwerks mit
mdconfig&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f newimage -u 0
&prompt.root; disklabel -r -w md0 auto
&prompt.root; newfs md0c
/dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
&prompt.root; mount /dev/md0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4846 2 4458 0% /mntWenn Sie keine Gerätenummer mit dem Schalter
angeben, wird von &man.md.4; automatisch eine
ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät
wird auf der Standardausgabe ausgegeben (zum Beispiel
md4). Weitere Informationen entnehmen Sie
bitte der Hilfeseite &man.mdconfig.8;.Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Das Werkzeug &man.mdconfig.8; ist sehr nützlich, doch muss
man viele Kommandos absetzen, um ein dateibasiertes Dateisystem zu
erstellen. FreeBSD enthält das Werkzeug &man.mdmfs.8;, das
die notwendigen Schritte in einem Befehl zusammenfasst. Es
konfiguriert mit &man.mdconfig.8; ein &man.md.4;-Laufwerk, erstellt
darauf mit &man.newfs.8; ein Dateisystem und hängt es
anschließend mit &man.mount.8; ein. Das virtuelle Laufwerk
aus dem obigen Beispiel kann somit einfach mit den nachstehenden
Befehlen erstellt werden:
+
+ Mit mdmfs ein dateibasiertes
+ Dateisystem erstellen
+
&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
-5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F newimage -s 5m md0/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4846 2 4458 0% /mnt
+ Wenn sie die Option ohne Gerätenummer
verwenden, wählt &man.md.4; automatisch ein ungenutztes
Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der
Hilfeseite &man.mdmfs.8;.Speicherbasierte Laufwerke unter FreeBSD 4.XLaufwerkespeicherbasierte (4.X)LaufwerkeRAM-Disks (4.X)Mit dem Gerätetreiber &man.md.4; lassen sich unter
FreeBSD 4.X leicht speicherbasierte Laufwerke (RAM-disks)
anlegen. Der dazu nötige Speicher wird mit &man.malloc.9;
belegt.Nehmen Sie einfach ein Dateisystem, dass Sie
z.B. mit &man.vnconfig.8; vorbereitet haben:Speicherbasiertes Laufwerk unter FreeBSD 4.X&prompt.root; dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
&prompt.root; mount /dev/md0c/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mntWeitere Einzelheiten entnehmen Sie bitte der Hilfeseite
&man.md.4;.Speicherbasierte Laufwerke unter FreeBSD 5.XLaufwerkespeicherbasierte (5.X)LaufwerkeRAM-Disks (5.X)Speicher- und dateibasierte Laufwerke werden in
FreeBSD 5.0 mit denselben Werkzeugen erstellt:
&man.mdconfig.8; oder &man.mdmfs.8;. Der Speicher für
speicherbasierte Laufwerke (RAM-disks) wird mit
&man.malloc.9; belegt.Erstellen eines speicherbasierten Laufwerks mit
mdconfig&prompt.root; mdconfig -a -t malloc -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
with soft updates
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4846 2 4458 0% /mntErstellen eines speicherbasierten Laufwerks mit
mdmfs&prompt.root; mdmfs -M -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntDer Speicher für das Dateisystem muss nicht mit
&man.malloc.9; zugewiesen werden, sondern kann auch aus dem
Swap-Bereich stammen. Auf der Kommandozeile von &man.mdconfig.8;
ist dazu durch
zu ersetzen. Ohne Angabe des Schalters
verwendet &man.mdmfs.8; Speicher aus dem Swap-Bereich.
Weitere Informationen entnehmen Sie bitte den Hilfeseiten
&man.mdconfig.8; und &man.mdmfs.8;.Virtuelle Laufwerke freigebenLaufwerkeFreigabe von virtuellen LaufwerkenWenn ein virtuelles Laufwerk nicht mehr gebraucht wird, sollten
Sie dem System die belegten Ressourcen zurückgeben.
Hängen Sie dazu zuerst das Dateisystem ab und geben Sie dann
die benutzten Ressourcen mit &man.mdconfig.8; frei.Alle von /dev/md4 belegten Ressourcen
werden mit dem nachstehenden Kommando freigegeben:&prompt.root; mdconfig -d -u 4Eingerichtete &man.md.4;-Geräte werden mit dem Befehl
mdconfig -l angezeigt.Unter FreeBSD 4.X geben Sie die Ressourcen mit
&man.vnconfig.8; frei. Die von /dev/vn4
belegten Ressourcen geben Sie wie folgt frei:&prompt.root; vnconfig -u vn4TomRhodesBeigetragen von Schnappschüsse von DateisystemenSchnappschüsse von DateisystemenSchnappschüsseZusammen mit Soft Updates
bietet FreeBSD 5.0 eine neue Funktion: Schnappschüsse von
Dateisystemen.Schnappschüsse sind Dateien, die ein Abbild eines
Dateisystems enthalten und müssen auf dem jeweiligen
Dateisystem erstellt werden. Pro Dateisystem darf es maximal
20 Schnappschüsse, die im Superblock vermerkt werden, geben.
Schnappschüsse bleiben erhalten, wenn das Dateisystem abgehangen,
neu eingehangen oder das System neu gestartet wird. Wenn Sie einen
Schnappschuss nicht mehr benötigen, können Sie ihn
mit &man.rm.1; löschen. Es ist egal, in welcher Reihenfolge
Schnappschüsse gelöscht werden. Es kann allerdings
vorkommen, dass nicht der gesamte Speicherplatz
wieder freigegeben wird, da ein anderer
Schnappschuss einen Teil der entfernten Blöcke für sich
beanspruchen kann.Schnappschüsse werden mit dem Flag
(siehe &man.chflags.1;) angelegt, um sicherzustellen, das nicht
einmal root den Schnappschuss beschreiben
kann. In &man.unlink.1; wird allerdings für
Schnappschüsse eine Ausnahme gemacht: Sie dürfen
gelöscht werden, ohne das das Flag
vorher entfernt werden muss.Schnappschüsse werden mit &man.mount.8; erstellt. Das
folgende Kommando legt einen Schnappschuss von
/var in /var/snapshot/snap
ab:&prompt.root; mount -u -o snapshot /var/snapshot/snap /var
+ Den Schnappschuss können Sie auch mit &man.mksnap.ffs.8;
+ erstellen:
+
+ &prompt.root; mksnap_ffs /var /var/snapshot/snap
+
Nachdem ein Schnappschuss erstellt wurde, können Sie
ihn für verschiedene Zwecke benutzen:Sie können den Schnappschuss für die
Datensicherung benutzen und ihn auf eine CD oder ein Band
schreiben.Sie können den Schnappschuss mit &man.fsck.8;
prüfen. Wenn das Dateisystem zum Zeitpunkt der Erstellung
des Schnappschusses in Ordnung war, sollte &man.fsck.8; immer
erfolgreich durchlaufen.Sie können den Schnappschuss mit &man.dump.8;
sichern. Sie erhalten dann eine konsistente Sicherung des
Dateisystems zu dem Zeitpunkt, der durch den Zeitstempel des
Schnappschusses gegeben ist. Der Schalter
von &man.dump.8; erstellt für die Sicherung einen
Schnappschuss und entfernt diesen am Ende der Sicherung
wieder.Sie können einen Schnappschuss in den
Verzeichnisbaum einhängen und sich dann den Zustand des
Dateisystems zu dem Zeitpunkt ansehen, an dem der
Schnappschuss erstellt wurde. Der folgende Befehl
hängt den Schnappschuss
/var/snapshot/snap ein:
-&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
-&prompt.root; mount -r /dev/md4 /mnt
+ &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
+&prompt.root; mount -r /dev/md4 /mntSie können sich nun den eingefrorenen Stand des
/var Dateisystems unterhalb von
/mnt ansehen. Mit Ausnahme der früheren
Schnappschüsse, die als leere Dateien auftauchen, wird alles
so aussehen, wie zu dem Zeitpunkt als der Schnappschuss
erstellt wurde. Wenn Sie den Schnappschuss nicht mehr
benötigen, können Sie ihn, wie nachfolgend gezeigt,
abhängen:
-&prompt.root; umount /mnt
-&prompt.root; mdconfig -d -u 4
+ &prompt.root; umount /mnt
+&prompt.root; mdconfig -d -u 4Weitere Informationen über Soft Updates und
Schnappschüsse von Dateisystemen sowie technische Artikel finden
Sie auf der Webseite
von Marshall Kirk McKusick.Dateisystem-QuotasAccountingPlattenplatzDisk QuotasQuotas sind eine optionale Funktion des Betriebssystems,
die es Ihnen erlauben, den Plattenplatz und/oder die Anzahl
der Dateien eines Benutzers oder der Mitglieder einer Gruppe,
auf Dateisystemebene zu beschränken. Oft wird dies
auf Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da
es dort erwünscht ist, die Ressourcen, die ein Benutzer oder
eine Gruppe von Benutzern belegen können, zu limitieren. Das
verhindert, dass ein Benutzer oder eine Gruppe von Benutzern
den ganzen verfügbaren Plattenplatz belegt.Konfiguration des Systems, um Quotas zu
aktivierenBevor Quotas benutzt werden können, müssen
sie im Kernel konfiguriert werden, wozu die folgende Zeile
der Kernelkonfiguration hinzugefügt wird:options QUOTAIm gewöhnlichen GENERIC Kernel
sind Quotas nicht aktiviert, so dass Sie einen angepassten
Kernel konfigurieren und bauen müssen, um Quotas zu
benutzen. Weitere Informationen
finden Sie in .Durch Hinzufügen der folgenden Zeile in
/etc/rc.conf wird das Quota-System
aktiviert:enable_quotas="YES"Disk QuotasüberprüfenUm den Start des Quota-Systems zu beeinflussen, steht
eine weitere Variable zur Verfügung. Normalerweise
wird beim Booten die Integrität der Quotas auf
allen Dateisystemen mit &man.quotacheck.8;
überprüft. &man.quotacheck.8; stellt
sicher, dass die Quota-Datenbank mit den Daten auf
einem Dateisystem übereinstimmt. Dies ist allerdings
ein sehr zeitraubender Prozess, der die Zeit, die
das System zum Booten braucht, signifikant beeinflusst.
Eine Variable in /etc/rc.config erlaubt es Ihnen,
diesen Schritt zu überspringen:check_quotas="NO"Wenn Sie ein FreeBSD vor 3.2-RELEASE benutzen, ist
die Konfiguration einfacher. In /etc/rc.conf
setzen Sie nur eine Variable:check_quotas="YES"Schließlich müssen Sie noch in
/etc/fstab die Plattenquotas auf
Dateisystemebene aktivieren. Dort können Sie
für alle Dateisysteme Quotas für Benutzer, Gruppen
oder für beide aktivieren.Um Quotas pro Benutzer für ein Dateisystem zu
aktivieren, geben Sie für dieses Dateisystem die
Option im Feld Optionen von
/etc/fstab an. Beispiel:/dev/da1s2g /home ufs rw,userquota 1 2Um Quotas für Gruppen einzurichten, verwenden
Sie anstelle von
. Um Quotas für Benutzer
und Gruppen einzurichten, ändern Sie den Eintrag
wie folgt ab:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Die Quotas werden jeweils im Rootverzeichnis des Dateisystems
unter dem Namen quota.user für
Benutzer-Quotas und quota.group für
Gruppen-Quotas abgelegt. Obwohl &man.fstab.5; beschreibt,
dass diese Dateien an anderer Stelle gespeichert werden
können, wird das nicht empfohlen, da es den Anschein hat,
dass die verschiedenen Quota-Utilities das nicht richtig
unterstützen.Jetzt sollten Sie Ihr System mit dem neuen Kernel booten.
/etc/rc wird dann automatisch die
richtigen Kommandos aufrufen, die die Quota-Dateien für
alle Quotas, die Sie in /etc/fstab
definiert haben, anlegen. Deshalb müssen vorher auch keine
leeren Quota-Dateien angelegt werden.Normalerweise brauchen Sie die Kommandos
&man.quotacheck.8;, &man.quotaon.8; oder
&man.quotaoff.8; nicht händisch aufzurufen,
obwohl Sie vielleicht die entsprechenden Seiten im
Manual lesen sollten, um sich mit ihnen vertraut
zu machen.Setzen von Quota-LimitsDisk QuotasLimitsNachdem Sie Quotas in Ihrem System aktiviert haben, sollten
Sie überprüfen, dass Sie auch tatsächlich
aktiviert sind. Führen Sie dazu einfach den folgenden
Befehl aus:&prompt.root; quota -vFür jedes Dateisystem, auf dem Quotas aktiviert sind,
sollten Sie eine Zeile mit der Plattenauslastung und den
aktuellen Quota-Limits sehen.Mit &man.edquota.8; können Sie nun
Quota-Limits setzen.Sie haben mehrere Möglichkeiten, die Limits für
den Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen
kann, oder die Anzahl der Dateien, die angelegt werden dürfen,
festzulegen. Die Limits können auf dem Plattenplatz
(Block-Quotas) oder der Anzahl der Dateien (Inode-Quotas) oder
einer Kombination von beiden basieren.
Jedes dieser Limits wird weiterhin in zwei Kategorien geteilt:
Hardlimits und Softlimits.HardlimitEin Hardlimit kann nicht überschritten werden.
Hat der Benutzer einmal ein Hardlimit erreicht, so kann er
auf dem betreffenden Dateisystem keinen weiteren Platz mehr
beanspruchen. Hat ein Benutzer beispielsweise ein Hardlimit
von 500 Blöcken auf einem Dateisystem und benutzt davon
490 Blöcke, so kann er nur noch 10 weitere Blöcke
beanspruchen. Der Versuch, weitere 11 Blöcke zu beanspruchen,
wird fehlschlagen.SoftlimitIm Gegensatz dazu können Softlimits für eine
befristete Zeit überschritten werden. Diese Frist
beträgt in der Grundeinstellung
eine Woche. Hat der Benutzer das Softlimit über die
Frist hinaus überschritten, so wird das Softlimit in
ein Hardlimit umgewandelt und der Benutzer kann
keinen weiteren Platz mehr beanspruchen. Wenn er einmal
das Softlimit unterschreitet, wird die Frist wieder
zurückgesetzt.Das folgende Beispiel zeigt die Benutzung von
&man.edquota.8;. Wenn &man.edquota.8; aufgerufen wird,
wird der Editor gestartet, der durch EDITOR
gegeben ist oder vi falls
EDITOR nicht gesetzt ist. In dem Editor
können Sie die Limits eingeben.&prompt.root; edquota -u testQuotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Für jedes Dateisystem, auf dem Quotas aktiv sind,
sehen Sie zwei Zeilen, eine für die Block-Quotas und die
andere für die Inode-Quotas. Um ein Limit zu modifizieren,
ändern Sie einfach den angezeigten Wert. Um beispielsweise
das Blocklimit dieses Benutzers von einem Softlimit von 50
und einem Hardlimit von 75 auf ein Softlimit von 500 und
ein Hardlimit von 600 zu erhöhen, ändern Sie
die Zeile/usr: blocks in use: 65, limits (soft = 50, hard = 75)zu: /usr: blocks in use: 65, limits (soft = 500, hard = 600)Die neuen Limits sind wirksam, wenn Sie den
Editor verlassen.Manchmal ist es erwünscht, die Limits für einen
Bereich von UIDs zu setzen. Dies kann mit der
Option von &man.edquota.8; bewerkstelligt werden.
Weisen Sie dazu die Limits einem Benutzer zu und rufen danach
edquota -p protouser startuid-enduid auf.
Besitzt beispielsweise der Benutzer test
die gewünschten Limits, können diese mit
dem folgenden Kommando für die UIDs 10.000 bis 19.999
dupliziert werden:&prompt.root; edquota -p test 10000-19999Weitere Informationen erhalten Sie in &man.edquota.8;.Überprüfen von Quota-Limits und PlattennutzungDisk QuotasüberprüfenSie können &man.quota.1; oder
&man.repquota.8; benutzen, um Quota-Limits
und Plattennutzung zu überprüfen. Um die Limits
oder die Plattennutzung individueller Benutzer und Gruppen
zu überprüfen, kann &man.quota.1;
benutzt werden. Ein Benutzer kann nur die eigenen Quotas und die
Quotas der Gruppe, der er angehört untersuchen. Nur der
Superuser darf sich alle Limits ansehen.
Mit &man.repquota.8; erhalten Sie eine Zusammenfassung
von allen Limits und der Plattenausnutzung für alle
Dateisysteme, auf denen Quotas aktiv sind.Das folgende Beispiel zeigt die Ausgabe von
quota -v für einen Benutzer, der
Quota-Limits auf zwei Dateisystemen besitzt:Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60Disk QuotasFristIm Dateisystem /usr liegt der Benutzer
momentan 15 Blöcke über dem Softlimit von
50 Blöcken und hat noch 5 Tage seiner Frist übrig.
Der Stern * zeigt an, dass der
Benutzer sein Limit überschritten hat.In der Ausgabe von &man.quota.1; werden Dateisysteme,
auf denen ein Benutzer keinen Platz verbraucht, nicht angezeigt,
auch wenn diesem Quotas zugewiesen wurden. Mit
werden diese Dateisysteme, wie /usr/var
im obigen Beispiel, angezeigt.Quotas über NFSNFSQuotas werden von dem Quota-Subsystem auf dem NFS Server
erzwungen. Der &man.rpc.rquotad.8; Dæmon stellt
&man.quota.1; die Quota Informationen auf dem NFS Client
zur Verfügung, so dass Benutzer auf diesen
Systemen ihre Quotas abfragen können.Aktivieren Sie rpc.rquotad in
/etc/inetd.conf wie folgt:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadAnschließend starten Sie inetd
neu:&prompt.root; kill -HUP `cat /var/run/inetd.pid`LuckyGreenBeigetragen von shamrock@cypherpunks.toPartitionen verschlüsselnPartitionenverschlüsselnFreeBSD bietet ausgezeichnete Möglichkeiten, Daten vor
unberechtigten Zugriffen zu schützen. Wenn das
Betriebssystem läuft, schützen Zugriffsrechte und
vorgeschriebene Zugriffskontrollen (MAC) (siehe )
die Daten. Die Zugriffskontrollen des Betriebssystems
schützen allerdings nicht vor einem Angreifer, der
Zugriff auf den Rechner hat. Der Angreifer
kann eine Festplatte einfach in ein anderes System einbauen
und dort die Daten analysieren.GEOM Based Disk Encryption (gbde)
schützt Daten auf Dateisystemen auch vor hoch motivierten
Angreifern, die über erhebliche Mittel verfügen.
Der Schutz ist unabhängig von der Art und Weise, auf der
ein Angreifer Zugang zu einer Festplatte oder zu einem
Rechner erlangt hat. Im Gegensatz zu schwerfälligen
Systemen, die einzelne Dateien verschlüsseln,
verschlüsselt gbde transparent
ganze Dateisysteme. Auf der Festplatte werden keine Daten
im Klartext gespeichert.gbde im Kernel einrichtenWechseln sie zu rootSie benötigen Superuser-Rechte, um
gbde einzurichten.&prompt.user; su -
Password:Überprüfen Sie die FreeBSD-Version&man.gbde.4; benötigt FreeBSD 5.0
oder höher.&prompt.root; uname -r
5.0-RELEASEAktivieren Sie &man.gbde.4; in
der KernelkonfigurationFügen Sie mit Ihrem Lieblingseditor die
folgende Zeile in die Kernelkonfiguration ein:options GEOM_BDEÜbersetzen und installieren Sie den FreeBSD-Kernel.
In werden die dazu
notwendigen Schritte erklärt.Starten sie das System neu, um den neuen Kernel
zu benutzen.Einrichten eines verschlüsselten DateisystemsDas folgende Beispiel beschreibt, wie ein Dateisystem
auf einer neuen Festplatte verschlüsselt wird. Das
Dateisystem wird in /private eingehangen.
Mit gbde könnten auch
/home und /var/mail
verschlüsselt werden. Die dazu nötigen Schritte
können allerdings in dieser Einführung
nicht behandelt werden.Installieren der FestplatteInstallieren Sie die Festplatte wie in
beschrieben. Im Beispiel
verwenden wir die Partition /dev/ad4s1c.
Die Gerätedateien
/dev/ad0s1*
sind Standard-Partitionen des FreeBSD-Systems.&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4Verzeichnis für gbde-Lock-Dateien anlegen&prompt.root; mkdir /etc/gbdeDie Lock-Dateien sind für den Zugriff von
gbde auf verschlüsselte
Partitionen notwendig. Ohne die Lock-Dateien können
die Daten nur mit erheblichem manuellen Aufwand wieder
entschlüsselt werden (dies wird auch von der Software
nicht unterstützt). Jede verschlüsselte
Partition benötigt eine gesonderte Lock-Datei.Vorbereiten der gbde-PartitionEine von gbde benutzte
Partition muss einmalig vorbereitet werden:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c&man.gbde.8; öffnet eine Vorlage in Ihrem Editor,
in der Sie verschiedene Optionen einstellen können.
Setzen Sie sector_size auf
2048, wenn Sie
UFS1 oder UFS2 benutzen.$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]
&man.gbde.8; fragt dann zweimal eine Passphrase
zum Schutz der Daten ab. Die Passphrase muss beides
Mal gleich eingegeben werden. Die Sicherheit der
Daten hängt alleine von der Qualität der
gewählten Passphrase ab.
Die Auswahl einer sicheren und leicht zu merkenden
Passphrase wird auf der Webseite Diceware
Passphrase beschrieben.Mit gbde init wurde im Beispiel
auch die Lock-Datei /etc/gbde/ad4s1c
angelegt.Sichern Sie die Lock-Dateien von
gbde immer zusammen mit den
verschlüsselten Dateisystemen. Ein entschlossener
Angreifer kann die Daten vielleicht auch ohne die
Lock-Datei entschlüsseln. Ohne die Lock-Datei
können Sie allerdings nicht auf die
verschlüsselten Daten zugreifen. Dies ist nur noch
mit erheblichem manuellen Aufwand möglich, der
weder von &man.gbde.8; noch seinem Entwickler
unterstützt wird.Einbinden der verschlüsselten Partition
in den Kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cDas Kommando fragt die Passphrase ab, die Sie
beim Vorbereiten der Partition eingegeben haben. Das
neue Gerät erscheint danach als
/dev/device_name.bde im
Verzeichnis /dev:&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeDateisystem auf dem verschlüsselten Gerät
anlegenWenn der Kernel die verschlüsselte Partition
kennt, können Sie ein Dateisystem auf ihr anlegen.
Benutzen Sie dazu den Befehl &man.newfs.8;. Da ein
Dateisystem vom Typ UFS2 sehr viel schneller als eins
vom Typ UFS1 angelegt wird, empfehlen wir Ihnen, die
Option zu benutzen.Ab &os; 5.1-RELEASE wird
als Voreinstellung verwendet.&prompt.root; newfs -U -O2 /dev/ad4s1c.bde&man.newfs.8; muss auf einer dem Kernel bekannten
gbde-Partition (einem
Gerät mit dem Namen
*.bde
laufen.Einhängen der verschlüsselten PartitionLegen Sie einen Mountpunkt für das
verschlüsselte Dateisystem an:&prompt.root; mkdir /privateHängen Sie das verschlüsselte Dateisystem
ein:&prompt.root; mount /dev/ad4s1c.bde /privateÜberprüfen des verschlüsselten
DateisystemDas verschlüsselte Dateisystem sollte jetzt
von &man.df.1; erkannt werden und benutzt werden
können.&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateEinhängen eines existierenden verschlüsselten
DateisystemsNach jedem Neustart müssen verschlüsselte
Dateisysteme dem Kernel wieder bekannt gemacht werden,
auf Fehler überprüft werden und eingehangen
werden. Die dazu nötigen Befehle müssen als
root durchgeführt werden.gbde-Partition im Kernel bekannt geben&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cDas Kommando fragt nach der Passphrase, die Sie
beim Vorbereiten der Partition eingegeben haben.Prüfen des DateisystemsDas verschlüsselte Dateisystem kann noch nicht
automatisch über /etc/fstab
eingehangen werden. Daher muss es vor dem Einhängen
mit &man.fsck.8; geprüft werden:&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeEinhängen des verschlüsselten
Dateisystems&prompt.root; mount /dev/ad4s1c.bde /privateDas verschlüsselte Dateisystem steht danach
zur Verfügung.Verschlüsselte Dateisysteme automatisch
einhängenMit einem Skript können verschlüsselte
Dateisysteme automatisch bekannt gegeben, geprüft
und eingehangen werden. Wir raten Ihnen allerdings
aus Sicherheitsgründen davon ab. Starten Sie das
Skript manuell an der Konsole oder in einer
&man.ssh.1;-Sitzung.Kryptographische Methoden von gbde&man.gbde.8; benutzt den 128-Bit AES im CBC-Modus,
um die Daten eines Sektors zu verschlüsseln. Jeder
Sektor einer Festplatte wird mit einem unterschiedlichen
AES-Schlüssel verschlüsselt. Mehr Informationen,
unter anderem wie die Schlüssel für einen Sektor
aus der gegebenen Passphrase ermittelt werden, erhalten
Sie in &man.gbde.4;.Kompatibilität&man.sysinstall.8; kann nicht mit verschlüsselten
gbde-Geräten umgehen. Vor
dem Start von &man.sysinstall.8; sind alle
*.bde-Geräte
zu deaktivieren, da &man.sysinstall.8; sonst bei der
Gerätesuche abstürzt. Das im Beispiel verwendete
Gerät wird mit dem folgenden Befehl deaktiviert:&prompt.root; gbde detach /dev/ad4s1cSie können gbde
nicht zusammen mit vinum
benutzen, da &man.vinum.4; das &man.geom.4;-Subsystem
nicht benutzt.
diff --git a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
index 8d54f59cb8..12f2d83922 100644
--- a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
@@ -1,1644 +1,1714 @@
Ressourcen im InternetGedruckte Medien können mit der schnellen Entwicklung von
FreeBSD nicht Schritt halten. Elektronische Medien sind häufig
die einzige Möglichkeit, über aktuelle Entwicklungen
informiert zu sein. Da FreeBSD ein Projekt von Freiwilligen ist, gibt
die Benutzergemeinde selbst auch technische Unterstützung. Die
Benutzergemeinde erreichen Sie am besten über E-Mail oder
Usenet-News.Die wichtigsten Wege, auf denen Sie die FreeBSD-Benutzergemeinde
erreichen können, sind unten dargestellt. Wenn Sie weitere
Ressourcen kennen, die hier fehlen, schicken Sie diese bitte an die
Mailingliste &a.doc;, so dass sie hier aufgenommen werden
können.MailinglistenObwohl viele FreeBSD-Entwickler Usenet-News lesen, können
wir nicht garantieren, dass Sie eine zügige Antwort auf
Ihre Fragen bekommen, wenn Sie diese nur in einer der
comp.unix.bsd.freebsd.* Gruppen stellen. Wenn Sie
Ihre Fragen auf der passenden Mailingliste stellen, erreichen Sie
sowohl die Entwickler wie auch die FreeBSD-Benutzergemeinde und
erhalten damit bessere (oder zumindest schnellere) Antworten.Die Chartas der verschiedenen Listen sind unten wiedergegeben.
Bevor Sie sich einer Mailingliste anschließen oder
E-Mails an eine Liste senden, lesen Sie bitte die Charta der
Liste. Die meisten Mitglieder unserer Mailinglisten
erhalten Hunderte E-Mails zum Thema FreeBSD pro Tag. Die Chartas und
Regeln, die den Gebrauch der Listen beschreiben, garantieren die hohe
Qualität der Listen. Die Listen würden ihren hohen Wert
für das Projekt verlieren, wenn wir weniger Regeln aufstellen
würden.Alle Mailinglisten werden archiviert und können auf dem
FreeBSD World Wide Web
Server durchsucht werden. Das nach
Schlüsselwörtern durchsuchbare Archiv bietet die
hervorragende Möglichkeit, Antworten auf häufig gestellte
Fragen zu finden. Nutzen Sie bitte diese Möglichkeit bevor Sie
Fragen auf einer Liste stellen.Beschreibung der MailinglistenAllgemeine Listen: Jeder kann die
folgenden allgemeinen Listen abonnieren (und ist dazu
aufgefordert):MailinglisteZweck&a.cvsall.name;Änderungen im FreeBSD-Quellbaum&a.advocacy.name;Verbreitung von FreeBSD&a.announce.name;Wichtige Ereignisse und Meilensteine des
Projekts&a.arch.name;Architektur und Design von FreeBSD&a.bugbusters.name;Diskussionen über die Pflege der FreeBSD
Fehlerberichte-Datenbank und die dazu benutzten
Werkzeuge&a.bugs.name;Fehlerberichte&a.chat.name;Nicht technische Themen, die die FreeBSD-Gemeinschaft
betreffen&a.config.name;Entwicklung von Konfigurations- und
Installations-Werkzeugen für FreeBSD&a.current.name;Gebrauch von &os.current;&a.isp.name;Für Internet-Service-Provider, die
FreeBSD benutzen&a.jobs.name;Anstellung und Beratung im FreeBSD-Umfeld&a.newbies.name;-newbiesStarthilfen für neue FreeBSD-Benutzer&a.policy.name;Grundsatzentscheidungen des FreeBSD-Core-Teams. Wenig
Verkehr und nur zum Lesen&a.questions.name;Benutzerfragen und technische
Unterstützung&a.security-notifications.name;Ankündigungen zum Thema Sicherheit&a.stable.name;Gebrauch von &os.stable;&a.test.name;Schicken Sie Testnachrichten an diese Liste anstelle
der wirklichen ListenTechnische Listen: Auf den folgenden
Listen werden technische Diskussionen geführt. Bevor Sie eine
der Listen abonnieren oder Nachrichten an sie schicken, lesen Sie
sich bitte die Charta der Liste durch, da der Inhalt und Zweck
dieser Listen genau festgelegt ist.MailinglisteZweck
+
+ &a.acpi.name;
+ Entwicklung von ACPI
+
+
&a.afs.name;Portierung von AFS nach FreeBSD&a.aic7xxx.name;Entwicklung von &adaptec; AIC 7xxx Treibern&a.alpha.name;Portierung von FreeBSD auf Alpha-Maschinen&a.amd64.name;Portierung von FreeBSD auf AMD65-Systeme&a.arm.name;Portierung von FreeBSD auf &arm;-Prozessoren&a.atm.name;Benutzung von ATM-Netzen mit FreeBSD&a.audit.name;Audit der FreeBSD-Quellen&a.binup.name;Design und Entwicklung eines Systems, das es erlaubt,
ein FreeBSD-System mit binären Paketen zu
aktualisieren&a.cluster.name;Benutzung von FreeBSD in einem Cluster&a.cvsweb.name;Pflege von CVSweb&a.database.name;Diskussion über Datenbanken und
Datenbankprogrammierung unter FreeBSD&a.doc.name;Erstellen der FreeBSD-Dokumentation&a.emulation.name;Emulation anderer Systeme wie Linux, DOS oder
&windows;&a.firewire.name;Technische Diskussion über &firewire;
(iLink, IEEE 1394)&a.fs.name;Dateisysteme
+
+ &a.geom.name;
+ Diskusion über GEOM
+
+
&a.gnome.name;Portierung von GNOME und
GNOME-Anwendungen&a.hackers.name;Allgemeine technische Diskussionen&a.hardware.name;Allgemeine Diskussion über Hardware, auf der
FreeBSD läuft&a.i18n.name;Internationalisierung von FreeBSD&a.ia32.name;FreeBSD für die IA-32 (&intel; x86) Plattform&a.ia64.name;Portierung von FreeBSD auf Intels neue
IA64-Systeme&a.ipfw.name;Technische Diskussion über die Neubearbeitung der
IP-Firewall Quellen&a.isdn.name;Für Entwickler des ISDN-Systems&a.java.name;Für &java; Entwickler und Leute, die &jdk;s nach
FreeBSD portieren&a.kde.name;Portierung von KDE und
KDE-Anwendungen&a.lfs.name;Portierung von LFS nach FreeBSD&a.libh.name;Das nächste Installations- und
Paketsystem&a.mips.name;Portierung von FreeBSD zu &mips;&a.mobile.name;Diskussionen über mobiles Rechnen&a.mozilla.name;Portierung von Mozilla
nach FreeBSD&a.multimedia.name;Multimedia Anwendungen&a.newbus.name;Technische Diskussionen über die Architektur von
Bussen&a.net.name;Diskussion über Netzwerke und den TCP/IP
Quellcode&a.openoffice.name;Portierung von OpenOffice.org
und &staroffice;
nach FreeBSD&a.performance.name;Fragen zur Optimierung der Leistung stark
ausgelasteter Systeme&a.perl.name;Pflege der portierten
Perl-Anwendungen.&a.platforms.name;Portierungen von FreeBSD auf nicht-&intel;
Architekturen&a.ports.name;Diskussion über die Ports-Sammlung&a.ports-bugs.name;Diskussion über Fehler und PRs der Ports&a.ppc.name;Portierung von FreeBSD auf den &powerpc;&a.qa.name;Diskussion über Qualitätssicherung,
normalerweise kurz vor einem Release&a.realtime.name;Entwicklung von Echtzeiterweiterungen für
FreeBSD&a.scsi.name;Diskussion über das SCSI-Subsystem&a.security.name;Sicherheitsthemen&a.small.name;Gebrauch von FreeBSD in eingebetteten Systemen&a.smp.name;Diskussionen über das Design von asymmetrischen
und symmetrischen Mehrprozessor-Programmen&a.sparc.name;Portierung von FreeBSD auf &sparc; Systeme&a.standards.name;Konformität von FreeBSD mit den C99- und
POSIX-Standards&a.threads.name;Leichgewichtige Prozesse
(Threads) in FreeBSD&a.testing.name;Leistungs- und Stabilitätstests von FreeBSD&a.tokenring.name;Token-Ring Unterstützung in FreeBSD&a.x11.name;Wartung und Unterstützung von X11
auf FreeBSDEingeschränkte Listen: Die folgenden
Listen wenden sich an Zielgruppen mit speziellen Anforderungen und
sind nicht für die Öffentlichkeit gedacht. Bevor Sie
eine dieser Listen abonnieren, sollten Sie einige der technischen
Listen abonniert haben, um mit den Umgangsformen vertraut zu
sein.MailinglisteZweck&a.hubs.name;Betrieb von FreeBSD-Spiegeln&a.usergroups.name;Koordination von Benutzergruppen&a.vendors.name;Koordination von Händlern vor einem
Release&a.www.name;Betreuer von www.FreeBSD.orgZusammenfassungen: Alle eben
aufgezählten Listen sind auch in zusammengefasster
Form (digest) erhältich.
In den Einstellungen Ihres Accounts legen Sie fest,
in welcher Form Sie die Listen empfangen.CVS Listen: Die folgenden Listen versenden
die Log-Einträge zu Änderungen an verschiedenen
Teilen des Quellbaums. Diese Listen sollen nur
gelesen werden, schicken Sie bitte keine Nachrichten
an eine der Listen.MailinglisteTeil des QuellbaumsBeschreibung&a.cvsall.name;/usr/(CVSROOT|doc|ports|projects|src)Alle Änderungen im Quellbaum (Obermenge der
anderen Commit-Listen)&a.cvs-doc.name;
- /usr/doc
- Änderungen im doc-Baum
+ /usr/(doc|www)
+ Änderungen in den
+ doc- und
+ www Bäumen&a.cvs-ports.name;/usr/portsÄnderungen im ports-Baum&a.cvs-projects.name;/usr/projectsÄnderungen im
projects-Baum&a.cvs-src.name;/usr/srcÄnderungen im src-BaumMailinglisten abonnierenUm eine Liste zu abonnieren, folgen Sie dem oben angegebenen
Hyperlink der Liste oder besuchen Sie die Webseite
&a.mailman.lists.link; und klicken dort auf Liste, die Sie
abonnieren wollen. Sie gelangen dann auf die Webseite der
Liste, die weitere Anweisungen enthält.Um eine Nachricht an eine Mailingliste zu schicken, schreiben
Sie einfach eine E-Mail an
<Liste@FreeBSD.org>. Die E-Mail
wird dann an alle Mitglieder der Mailingliste verteilt.Wenn Sie das Abonnement aufheben wollen, folgen Sie der
URL, die am Ende jeder Mail der Liste angegeben ist. Sie
können das Abonnement auch mit einer E-Mail an
freebsd-Liste-unsubscribe@FreeBSD.org
aufheben.Verwenden Sie bitte die technischen Listen ausschließlich
für technische Diskussionen. Wenn Sie nur an wichtigen
Ankündigungen interessiert sind, abonnieren Sie die
Mailingliste &a.announce;, auf der nur wenige Nachrichten
versendet werden.Chartas der MailinglistenAlle FreeBSD-Mailinglisten besitzen
Grundregeln, die von jedem beachtet werden müssen. Für
die ersten beiden Male, in denen ein Absender gegen diese Regeln
verstößt, erhält er jeweils eine Warnung vom
FreeBSD-Postmaster postmaster@FreeBSD.org. Ein
dritter Verstoß gegen die Regeln führt dazu, dass
der Absender in allen FreeBSD-Mailinglisten gesperrt wird und
weitere Nachrichten von ihm nicht mehr angenommen werden. Wir
bedauern sehr, dass wir solche Maßnahmen ergreifen
müssen, aber heutzutage ist das Internet eine recht rauhe
Umgebung, in der immer weniger Leute Rücksicht aufeinander
nehmen.Die Regeln:Das Thema einer Nachricht soll der Charta der Liste, an die
sie gesendet wird, entsprechen. Wenn Sie eine Nachricht an
eine technische Liste schicken, sollte die Nachricht auch
technische Inhalte haben. Fortwährendes Geschwätz
oder Streit mindern den Wert der Liste für alle Mitglieder
und wird nicht toleriert. Benutzen Sie &a.chat; für
allgemeine Diskussionen über FreeBSD.Eine Nachricht sollte an nicht mehr als zwei Mailinglisten
gesendet werden. Schicken Sie eine Nachricht nur dann an
zwei Listen, wenn das wirklich notwendig ist. Viele Leute
haben mehrere Mailinglisten abonniert und Nachrichten sollten
nur zu ungewöhnlichen Kombinationen der Listen, wie
-stable und -scsi, gesendet
werden. Wenn Sie eine Nachricht erhalten, die im
Cc-Feld mehrere Listen enthält, sollten
Sie das Feld kürzen, bevor Sie eine Antwort darauf
verschicken. Unabhängig von dem
ursprünglichen Verteiler sind Sie für Ihre eigenen
Mehrfach-Sendungen selbst verantwortlich.Persönliche Angriffe und Beschimpfungen sind in einer
Diskussion nicht erlaubt. Dies gilt gleichermaßen
für Benutzer wie Entwickler. Grobe Verletzungen der
Netiquette, wie das Verschicken oder Zitieren von privater
E-Mail ohne eine entsprechende Genehmigung, werden nicht
gebilligt. Die Nachrichten werden aber nicht besonders auf
Verletzungen der Netiquette untersucht. Es kann sein,
dass eine Verletzung der Netiquette durchaus zu der Charta
einer Liste passt, aber der Absender aufgrund der
Verletzung eine Warnung erhält oder gesperrt wird.Werbung für Produkte oder Dienstleistungen, die nichts
mit FreeBSD zu tun haben, sind verboten. Ist die Werbung als
Spam verschickt worden, wird der Absender sofort gesperrt.Chartas einzelner Listen:
+
+ &a.acpi.name;
+
+
+ Die Entwicklung von ACPI und
+ Energieverwaltungsfunktionen.
+
+
+
&a.afs.name;Andrew File SystemAuf dieser Liste wird die Portierung des AFS von
CMU/Transarc diskutiert.&a.announce.name;Wichtige Ereignisse und
MeilensteineDiese Liste ist für Personen, die nur an den wenigen
Ankündigungen wichtiger Ereignisse interessiert sind.
Die Ankündigungen betreffen Schnappschüsse und
Releases, neue Merkmale von FreeBSD und die Suche nach
freiwilligen Mitarbeitern. Auf der Liste herrscht wenig
Verkehr und sie wird streng moderiert.&a.arch.name;Architektur und Design
von FreeBSDAuf dieser technischen Liste wird die FreeBSD-Architektur
diskutiert. Beispiele für angemessene Themen
sind:Wie das Bausystem zu verändern ist, damit
verschiedene Läufe gleichzeitig möglich
sind.Was am VFS geändert werden muss, damit
Heidemann Schichten eingesetzt werden können.Wie die Schnittstelle der Gerätetreiber
angepasst werden muss, damit derselbe Treiber
auf verschiedenen Bussen und Architekturen eingesetzt
werden kann.Wie ein Netzwerktreiber geschrieben wird.&a.audit.name;Source Code Audit ProjectDies ist die Liste des FreeBSD-Source Code Audit
Projects. Ursprünglich war vorgesehen, hier nur
sicherheitsrelevante Änderungen zu diskutieren, doch ist
die Charta auf alle Änderungen ausgedehnt worden.Zu dieser Liste werden viele Korrekturen gesandt, so
dass sie für den normalen FreeBSD-Benutzer von
wenig Wert ist. Diskussionen über Sicherheit, die sich
nicht auf die Änderung von Quellcode beziehen, finden
auf der Mailingliste &a.security; statt. Auf der anderen
Seite sind aber alle Entwickler aufgefordert, ihre
Korrekturen zur Überprüfung an diese Liste zu
senden. Dies trifft besonders auf Änderungen zu, in
denen ein Fehler die Integrität des Gesamtsystems
gefährdet.&a.binup.name;FreeBSD Binary Update ProjectAuf dieser Liste wird das Design und die Implementierung
von binup diskutiert. Weitere
Themen sind Fehlerbehebungen, Fehlerberichte und Anfragen
nach Neuerungen. Die CVS-Logmeldungen des Projekts werden
ebenfalls auf diese Liste gesendet.&a.bugbusters.name;Bearbeitung der FehlerberichteAuf dieser Liste wird die Bearbeitung der Fehlerberichte
(PR, engl. problem report)
koordiniert. Sie dient dem Bugmeister und
allen Leuten, die ein Interesse an der Datenbank der
Fehlerberichte haben, als Diskussionsforum. Auf dieser Liste
werden keine spezifischen Fehler, Fehlerbehebungen oder PRs
diskutiert.&a.bugs.name;FehlerberichteAuf dieser Liste werden Fehlerberichte gesammelt.
Fehlerberichte sollten immer mit &man.send-pr.1; oder dem
Web Formular
erstellt werden.&a.chat.name;Nicht technische Themen, die die FreeBSD
Gemeinschaft betreffenAuf dieser Liste werden nicht-technische soziale Themen
diskutiert, die nicht auf die anderen Listen passen. Hier
kann diskutiert werden, ob Jordan wie ein Frettchen aus einem
Zeichentrickfilm aussieht oder nicht, ob grundsätzlich
in Großbuchstaben geschrieben werden soll, wer zuviel
Kaffee trinkt, wo das beste Bier gebraut wird und wer Bier in
seinem Keller braut. Gelegentlich können auf den
technischen Listen wichtige Ereignisse wie Feste, Hochzeiten
oder Geburten angekündigt werden, aber nachfolgende
Nachrichten sollten auf die Liste &a.chat; gesendet
werden.&a.core.name;FreeBSD Core TeamDies ist eine interne Mailingliste des FreeBSD Core
Teams. Wenn in einer wichtigen Angelegenheit, die FreeBSD
betrifft, entschieden werden muss oder die
Angelegenheit einer genauen Prüfung unterzogen werden
muss, können Nachrichten an diese Liste gesendet
werden.&a.current.name;Gebrauch von &os.current;Diese Mailingliste ist für die Benutzer von
&os.current; eingerichtet. Auf ihr finden sich
Ankündigungen über Besonderheiten von -CURRENT, von
denen Benutzer betroffen sind. Sie enthält weiterhin
Anweisungen, wie man ein System auf -CURRENT hält.
Jeder, der ein -CURRENT System besitzt, muss diese Liste
lesen. Die Liste ist nur für technische Inhalte
bestimmt.&a.cvsweb.name;FreeBSD CVSweb ProjectTechnische Diskussion über den Gebrauch, die
Entwicklung und die Pflege von FreeBSD-CVSweb.&a.doc.name;Documentation ProjectAuf dieser Mailingliste werden Themen und Projekte
diskutiert, die im Zusammenhang mit der Erstellung der FreeBSD
Dokumentation stehen. The FreeBSD Documentation
Project besteht aus den Mitgliedern dieser Liste.
Diese Liste steht jedem offen, Sie sind herzlich eingeladen
teilzunehmen und mitzuhelfen.&a.firewire.name;&firewire; (iLink, IEEE 1394)Auf dieser Liste wird das Design und die Implementierung
eines &firewire;-Subsystems (auch IEEE 1394 oder iLink)
für FreeBSD diskutiert. Relevante Themen sind die
Standards, Busse und ihre Protokolle, sowie Adapter, Karten
und Chipsätze. Des Weiteren die Architektur und der
Quellcode, die nötig sind, diese Geräte zu
unterstützen.&a.fs.name;DateisystemeDiskussionen über FreeBSD-Dateisysteme. Dies ist
eine technische Liste, in der nur technische Inhalte erwartet
werden.
+
+ &a.geom.name;
+
+
+ GEOM
+
+ Diskussion über GEOM und verwandte
+ Implementierungen. Dies ist eine technische Liste,
+ in der nur technische Inhalte erwartet werden.
+
+
+
&a.gnome.name;GNOMEDiskussionen über die grafische
Benutzeroberfläche GNOME.
Dies ist eine technische Liste, in der nur technische Inhalte
erwartet werden.&a.ipfw.name;IP FirewallDiskussionen über eine Neubearbeitung des
IP-Firewall Quelltexts in FreeBSD. Dies ist eine technische
Liste, in der nur technische Inhalte erwartet werden.&a.ia64.name;Portierung von FreeBSD auf die
IA64-PlattformDies ist eine technische Liste für diejenigen, die
FreeBSD auf die IA-64 Plattform von &intel; portieren. Themen
sind die Probleme bei der Portierung und deren Lösung.
Interessierte, die der Diskussion folgen wollen, sind
ebenfalls willkommen.&a.isdn.name;ISDN SubsystemMailingliste für die Entwickler des ISDN Subsystems
von FreeBSD.&a.java.name;&java; EntwicklungMailingliste, auf der die Entwicklung von &java;
Anwendungen für FreeBSD sowie die Portierung und Pflege
von &jdk;s diskutiert wird.
+
+ &a.jobs.name;
+
+
+ Stellenangebote und
+ Stellengesuche
+
+ In diesem Forum können Sie Stellenangebote
+ und Stellengesuche, die mit &os; zu tun haben, aufgeben.
+ Wenn Sie beispielsweise eine Beschäftigung im
+ &os;-Umfeld suchen oder eine freie Stelle haben,
+ die mit &os; zu tun hat, ist dies der richtige Ort.
+ Diese Mailingliste ist nicht
+ der Ort, um über allgemeine Beschäftigungsprobleme
+ zu diskutieren; dazu gibt es anderswo geeignete
+ Foren.
+
+ Beachten Sie bitte, dass diese Liste, wie die
+ anderen FreeBSD.org-Listen, weltweit gelesen wird.
+ Geben Sie daher bitte den Arbeitsort genau an. Geben
+ Sie bitte auch an, ob Telearbeit möglich ist
+ und ob Hilfen für einen Umzug angeboten werden.
+
+ Benutzen Sie in der E-Mail bitte nur offene
+ Formate – vorzugsweise nur das Textformat.
+ Andere Formate, wie PDF oder
+ HTML, werden von den Lesern akzeptiert. Nicht offene
+ Formate wie µsoft; Word (.doc)
+ werden vom Server der Liste abgelehnt.
+
+
+
&a.hackers.name;Technische DiskussionenDies ist ein Forum für technische Diskussionen
über FreeBSD. Leute, die aktiv an FreeBSD arbeiten,
können hier Probleme und deren Lösungen
diskutieren. Interessierte, die den Diskussionen folgen
wollen, steht die Liste ebenfalls offen. Auf dieser Liste
finden nur technische Diskussionen statt.&a.hardware.name;Allgemeine Diskussionen über
HardwareAllgemeine Diskussionen über die Hardware, auf der
FreeBSD läuft: Probleme und Ratschläge welche
Hardware man kaufen sollte und welche nicht.&a.hubs.name;FreeBSD-SpiegelAnkündigungen und Diskussionsforum für Leute,
die FreeBSD-Spiegel betreiben.&a.isp.name;Themen für Internet Service
ProviderDiese Liste ist für Internet Service Provider (ISP),
die FreeBSD benutzen. Auf dieser Liste finden nur technische
Diskussionen statt.&a.kde.name;KDEDiskussionen über KDE
auf FreeBSD-Systemen.
Dies ist eine technische Liste, in der nur technische Inhalte
erwartet werden.&a.newbies.name;Starthilfen für neue FreeBSD
BenutzerEin Forum für Aktivitäten von Neulingen, die
anderswo nicht behandelt werden, wieselbständiges Lernen,Techniken zur Problemlösung,Suchen und Benutzen von Ressourcen,wo man Hilfe findet,wie Mailinglisten benutzt werden und welche Listen
man abonnieren sollte,allgemeine Unterhaltungen und Geschichten,Berichte über Fehler, die man gemacht hat,Prahlen mit eigenen Erfolgen,Mitteilen von Ideen,moralische (aber keine technische)
Unterstützung undwie man aktiver Teil der FreeBSD-Gemeinde
wird.Fragen und Probleme werden auf der Liste &a.questions;
behandelt, die Mailingliste &a.newbies; gibt neuen FreeBSD
Benutzern die nötigen Starthilfen.&a.openoffice.name;OpenOffice.orgPortierung und Pflege von
OpenOffice.org und
&staroffice;.&a.performance.name;Diskussionsforum mit dem Ziel, die
Leistung von FreeBSD zu verbessern.Auf dieser Liste diskutieren Hacker,
Systemadministratoren und andere Interessierte die
Leistung von FreeBSD. Zulässige Themen sind
beispielsweise Systeme unter hoher Last, Systeme
mit Leistungsproblemen oder Systeme, die Leistungsgrenzen
von FreeBSD überwinden. Jeder, der mithelfen will,
die Leistung von FreeBSD zu verbessern, sollte diese
Liste abonnieren. Die Liste ist technisch anspruchsvoll
und geeignet für erfahrene FreeBSD-Benutzer,
Hacker oder Administratoren, die FreeBSD schnell,
robust und skalierbar halten wollen. Auf der Liste
werden Beiträge gesammelt oder Fragen nach
ungelösten Problemen beantwortet. Sie ist kein
Ersatz für das gründliche Studium der
Dokumentation.&a.platforms.name;Portierung auf nicht-&intel;
PlattformenPlattformübergreifende Themen und Vorschläge
für die Portierung auf nicht-&intel; Plattformen.
Auf dieser Liste finden nur technische Diskussionen
statt.&a.policy.name;Grundsatzentscheidungen des Core
TeamsDiese Mailingliste ist für Grundsatzentscheidungen
des FreeBSD-Core-Teams. Sie trägt wenige Nachrichten und
ist nur zum Lesen gedacht.&a.ports.name;Diskussion über die
Ports-SammlungDiskussionen über die FreeBSD-Ports-Sammlung und
die Infrastruktur der Sammlung. Die
Liste dient auch der allgemeinen Koordination der Dinge, die
die Ports-Sammlung betreffen. Auf dieser Liste finden nur
technische Diskussionen statt.&a.ports-bugs.name;Diskussion über Fehler in
den PortsDiskussion über Fehler in der Ports-Sammlung
(/usr/ports), neue Ports oder
Änderungen an bestehenden Ports. Auf dieser Liste
finden nur technische Diskussionen statt.&a.questions.name;BenutzerfragenAuf dieser Mailingliste können Fragen über
FreeBSD gestellt werden. Fragen Sie bitte nicht nach
Anleitungen, wenn Sie nicht sicher sind, dass Ihre
Frage wirklich technischer Natur ist.&a.scsi.name;SCSI SubsystemDiese Mailingliste ist für die Entwickler des SCSI
Subsystems von FreeBSD. Auf dieser Liste finden nur
technische Diskussionen statt.&a.security.name;SicherheitsthemenSicherheitsthemen, die FreeBSD betreffen, wie DES,
Kerberos, bekannte Sicherheitslöcher und Fehlerbehebungen.
Stellen Sie bitte auf dieser Liste keine allgemeinen Fragen
zum Thema Sicherheit. Willkommen sind allerdings Beiträge
zur FAQ, das heißt eine Frage mit der passenden
Antwort. Auf dieser Liste finden nur technische Diskussionen
statt.&a.security-notifications.name;Ankündigungen zum Thema
SicherheitAnkündigungen über Sicherheitsprobleme von
FreeBSD und deren Behebungen. Diese Liste ist kein
Diskussionsforum, benutzen Sie &a.security;, um
Sicherheitsthemen zu diskutieren.&a.small.name;Gebrauch von FreeBSD in
eingebetteten Systemen.Diese Liste für ungewöhnlich kleine FreeBSD
Installation oder den Einsatz von FreeBSD in eingebetteten
Systemen gedacht. Auf dieser Liste finden nur technische
Diskussionen statt.&a.stable.name;Gebrauch von &os.stable;.Diese Mailingliste ist für die Benutzer von
&os.stable; eingerichtet. Auf ihr finden sich
Ankündigungen über Besonderheiten von -STABLE, von
denen Benutzer betroffen sind. Sie enthält weiterhin
Anweisungen, wie man ein System auf -STABLE hält. Jeder,
der ein -STABLE System besitzt, muss diese Liste lesen. Die
Liste ist nur für technische Inhalte bestimmt.&a.standards.name;Konformität von FreeBSD mit den C99- und
&posix; StandardsDieses Forum ist für technische Diskussionen
über die Konformität von FreeBSD mit den C99- und
POSIX-Standards.&a.usergroups.name;Koordination von BenutzergruppenDiese Liste ist für Koordinatoren lokaler
Benutzergruppen und einem ausgesuchten Mitglied des Core Teams
eingerichtet worden. Der Inhalt sollte Inhalte von Treffen
und die Koordination von Projekten mehrerer Benutzergruppen
beschränkt sein.&a.vendors.name;Koordination von HändlernKoordination zwischen dem FreeBSD-Projekt und
Händlern, die Soft- und Hardware für FreeBSD
verkaufen.Filter der MailinglistenUm die Verbreitung von Spam, Viren und anderen nicht
erwünschten E-Mails zu verhindern, werden auf den
&os;-Mailinglisten Filter eingesetzt. Dieser Abschnitt
beschreibt nur einen Teil der zum Schutz der Listen
eingesetzten Filter.Auf den Mailinglisten sind nur die unten aufgeführten
Anhänge erlaubt. Anhänge mit einem anderen
MIME-Typ werden entfernt, bevor eine E-Mail an eine
Liste verteilt wird.application/octet-streamapplication/pdfapplication/pgp-signatureapplication/x-pkcs7-signaturemessage/rfc822multipart/alternativemultipart/relatedmultipart/signedtext/htmltext/plaintext/x-difftext/x-patchEinige Mailinglisten erlauben vielleicht Anhänge
mit anderem MIME-Typ. Für die meisten Mailinglisten
sollte die obige Aufzählung aber richtig sein.Wenn eine E-Mail sowohl aus einer HTML-Version wie auch
aus einer Text-Version besteht, wird die HTML-Version entfernt.
Wenn eine E-Mail nur im HTML-Format versendet wurde, wird
sie in reinen Text umgewandelt.Usenet-NewsNeben den Gruppen, die sich ausschließlich mit BSD
beschäftigen, gibt es viele weitere in denen über FreeBSD
diskutiert wird, oder die für FreeBSD-Benutzer wichtig sind.
Warren Toomey wkt@cs.adfa.edu.au stellte
großzügig suchbare
Archive einiger dieser Gruppen bereit.BSD spezifische Gruppencomp.unix.bsd.freebsd.announcecomp.unix.bsd.freebsd.miscde.comp.os.unix.bsd (Deutsch)
+ url="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd (deutsch)
+
+
+
+ fr.comp.os.bsd (französisch)fr.comp.os.bsd (Französisch)
+ url="news:it.comp.os.bsd">it.comp.os.bsd (italienisch)
Weitere UNIX Gruppencomp.unixcomp.unix.questionscomp.unix.admincomp.unix.programmercomp.unix.shellcomp.unix.user-friendlycomp.security.unixcomp.sources.unixcomp.unix.advocacycomp.unix.misccomp.bugs.4bsdcomp.bugs.4bsd.ucb-fixescomp.unix.bsdX Window Systemcomp.windows.x.i386unixcomp.windows.xcomp.windows.x.appscomp.windows.x.announcecomp.windows.x.intrinsicscomp.windows.x.motifcomp.windows.x.pexcomp.emulators.ms-windows.wineWorld Wide Web Server
&chap.eresources.www.inc;
E-Mail AdressenDie folgenden Benutzergruppen stellen ihren Mitgliedern für
die Arbeit an FreeBSD E-Mail-Adressen zur Verfügung. Der
aufgeführte Administrator behält sich das Recht vor,
die Adresse zu sperren, wenn sie missbraucht wird.DomainAngebotBenutzergruppeAdministratorukug.uk.FreeBSD.orgnur zum Weiterleitenfreebsd-users@uk.FreeBSD.orgLee Johnston
lee@uk.FreeBSD.orgShell AccountsDie folgenden Benutzergruppen stellen Personen, die das FreeBSD
Projekt aktiv unterstützen, Shell-Accounts zur Verfügung.
Der aufgeführte Administrator behält sich das Recht vor,
den Account zu sperren, wenn er missbraucht wird.RechnerZugriffAngebotAdministratorstorm.uk.FreeBSD.orgnur SSHlesender Zugriff auf CVS, persönliche Webseiten,
E-Mail&a.brian;dogma.freebsd-uk.eu.orgTelnet/FTP/SSHE-Mail, Webseiten, Anonymous FTPLee Johnston
lee@uk.FreeBSD.org
diff --git a/de_DE.ISO8859-1/books/handbook/install/chapter.sgml b/de_DE.ISO8859-1/books/handbook/install/chapter.sgml
index ec89698c30..95f4786935 100644
--- a/de_DE.ISO8859-1/books/handbook/install/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/install/chapter.sgml
@@ -1,30 +1,30 @@
Installing FreeBSD (noch nicht übersetzt)Dieses Kapitel ist noch nicht übersetzt.
Lesen Sie bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html">
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
index bfa28aac2d..f24cb56f5c 100644
--- a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
@@ -1,1227 +1,1228 @@
JimMockNeu zusammengestellt, umstrukturiert und um
Abschnitte erweitert durch SaschaEdelburgÜbersetzt von EinführungÜbersichtHerzlichen Dank für Ihr Interesse an FreeBSD! Das
folgende Kapitel behandelt verschiedene Aspekte des
FreeBSD-Projekts wie dessen geschichtliche Entwicklung,
dessen Ziele oder dessen Entwicklungsmodell.Nach dem Durcharbeiten des Kapitels wissen Sie über
folgende Punkte Bescheid:Wo FreeBSD im Vergleich zu anderen Betriebssystemen
stehtDie Geschichte des FreeBSD-ProjektsDie Ziele des FreeBSD-ProjektsDie Grundlagen des
FreeBSD-Open-Source-EntwicklungsmodellsUnd natürlich wo der Name FreeBSD
herrührtWillkommen bei FreeBSD!4.4BSD-LiteFreeBSD ist ein auf 4.4BSD-Lite basierendes Betriebssystem
- für Intel (x86), DEC Alpha und
- Sun &ultrasparc; Rechner. An
+ für Intel (x86 und &itanium;), AMD64, Alpha
+ und Sun &ultrasparc; Rechner. An
Portierungen zu anderen Architekturen wird derzeit gearbeitet.
Mehr zu Geschichte von FreeBSD können Sie im kurzen geschichtlichen Abriss zu FreeBSD
oder im Abschnitt Das aktuelle
FreeBSD-Release nachlesen.
Falls Sie das FreeBSD-Projekt unterstützen wollen
(mit Quellcode, Hardware- oder Geldspenden)
lesen Sie den Artikel Contributing to
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/index.html">Contributing to
FreeBSD (derzeit nur in englischer Sprache
verfügbar).Was kann FreeBSD?FreeBSD hat zahlreiche bemerkenswerte Eigenschaften.
Um nur einige zu nennen:Präemptives MultitaskingPräemptives Multitasking mit
dynamischer Prioritätsanpassung zum reibungslosen und
ausgeglichenen Teilen der Systemressourcen zwischen
Anwendungen und Anwendern, selbst unter schwerster
Last.MehrbenutzerbetriebDer Mehrbenutzerbetrieb von
FreeBSD erlaubt es, viele Anwender gleichzeitig am System
mit verschiedenen Aufgaben arbeiten zu lassen.
Beispielsweise Geräte wie Drucker oder Bandlaufwerke,
die sich nur schwerlich unter allen Anwendern des Systems
oder im Netzwerk teilen lassen, können durch Setzen
von Verwendungsbeschränkungen auf Benutzer oder
Benutzergruppen wichtige Systemressourcen vor
Überbeanspruchung schützen.TCP/IP-NetzwerkfähigkeitHervorragende
TCP/IP-Netzwerkfähigkeit mit
Unterstützung der Industriestandards wie SLIP, PPP,
NFS, DHCP und NIS. Das heißt, Ihr FreeBSD-System
kann in einfachster Weise mit anderen Systemen
interagieren. Zudem kann es als Server-System im
Unternehmen wichtige Aufgaben übernehmen,
beispielsweise als NFS- oder E-Mail-Server oder es kann
Ihren Betrieb durch HTTP- und FTP-Server beziehungsweise
durch Routing und Firewalling Internet-fähig machen.SpeicherschutzDer Speicherschutz stellt sicher,
dass Anwendungen (oder Anwender) sich nicht gegenseitig
stören. Stürzt eine Anwendung ab, hat das
keine Auswirkung auf andere Prozesse.FreeBSD ist ein
32-Bit-Betriebssystem
- (64-Bit auf Alpha und &ultrasparc;) und
- wurde als solches von Grund auf neu entworfen.
+ (64-Bit auf Alpha, &itanium;, AMD64,
+ und &ultrasparc;) und wurde als solches von Grund auf
+ neu entworfen.
X-Window-SystemXFree86Das X-Window-System (X11R6) als
Industriestandard bietet eine grafische Benutzeroberfläche
(GUI). Minimale Voraussetzung zur Verwendung ist
lediglich eine Grafikkarte und ein Bildschirm, die beide
den VGA-Modus unterstützen.BinärkompatibilitätLinuxBinärkompatibilitätSCOBinärkompatibilitätSVR4BinärkompatibilitätBSD/OSBinärkompatibilitätNetBSDBinärkompatibilität mit
vielen unter verschiedenen Betriebssystemen erstellten
Programmen wie Linux, SCO, SVR4, BSDI und NetBSD.Tausende von sofort
lauffähigen Anwendungen sind aus den
Ports- und
Packages-Sammlungen für FreeBSD
verfügbar. Warum mühselig im Netz Software
suchen, wenn sie bereits hier vorhanden ist?Tausende zusätzliche leicht zu
portierende Anwendungen sind über das
Internet zu beziehen. FreeBSD ist Quellcode-kompatibel
mit den meisten kommerziellen &unix; Systemen. Daher
bedürfen Anwendungen häufig nur geringer oder
gar keiner Anpassung, um auf einem FreeBSD-System zu
kompilieren.Virtueller SpeicherSeitenweise anforderbarer Virtueller
Speicher und der merged VM/buffer
cache-Entwurf bedient effektiv den großen
Speicherhunger mancher Anwendungen bei gleichzeitigem
Aufrechterhalten der Bedienbarkeit des Systems für
weitere Benutzer.Symmetrisches Multi-Processing (SMP)SMP-Unterstützung für
MehrprozessorsystemeKompilerCKompilerC++KompilerFORTRANEin voller Satz von C,
C++, Fortran und
Perl Entwicklungswerkzeugen. Viele
zusätzliche Programmiersprachen für Wissenschaft
und Entwicklung sind aus der Ports- und Packages-Sammlung
zu haben.QuellcodeQuellcode für das gesamte
System bedeutet größtmögliche Kontrolle
über Ihre Umgebung. Warum sollte man sich durch
proprietäre Lösungen knebeln und sich auf Gedeih
und Verderb der Gnade eines Herstellers ausliefern, wenn
man doch ein wahrhaft offenes System haben kann?Umfangreiche
Online-Dokumentation.4.4BSD-LiteComputer Systems Research Group (CSRG)U.C. BerkeleyFreeBSD basiert auf dem 4.4BSD-Lite-Release der Computer
Systems Research Group (CSRG) der Universität von
Kalifornien in Berkeley und führt die namhafte
Tradition der Entwicklung von BSD-Systemen fort.
Zusätzlich zu der herausragenden Arbeit der CSRG hat das
FreeBSD-Projekt tausende weitere Arbeitsstunden investiert,
um das System zu verfeinern und maximale Leistung und
Zuverlässigkeit bei Alltagslast zu bieten. Während
viele kommerzielle Riesen Probleme haben PC-Betriebssysteme
mit derartigen Funktionen, Leistungpotential und
Zuverlässigkeit anzubieten, kann FreeBSD damit schon
jetzt aufwarten! Die Anwendungsmöglichkeiten von FreeBSD werden nur
durch Ihre Vorstellungskraft begrenzt. Von
Software-Entwicklung bis zu Produktionsautomatisierung, von
Lagerverwaltung über Abweichungskorrektur bei Satelliten;
Falls etwas mit kommerziellen &unix; Produkten machbar ist, dann
ist es höchstwahrscheinlich auch mit FreeBSD
möglich. FreeBSD profitiert stark von tausenden
hochwertigen Anwendungen aus wissenschaftlichen Instituten und
Universitäten in aller Welt. Häufig sind diese
für wenig Geld oder sogar kostenlos zu bekommen.
Kommerzielle Anwendungen sind ebenso verfügbar und es
werden täglich mehr.Durch den freien Zugang zum Quellcode von FreeBSD ist es
in unvergleichbarer Weise möglich, das System für
spezielle Anwendungen oder Projekte anzupassen. Dies ist
mit den meisten kommerziellen Betriebssystemen einfach nicht
möglich. Beispiele für Anwendungen, die unter
FreeBSD laufen, sind:Internet-Dienste: Die robuste
TCP/IP-Implementierung in FreeBSD macht es zu einer
idealen Plattform für verschiedenste
Internet-Dienste, wie zum Beispiel:FTP-ServerFTP-ServerHTTP-ServerHTTP-Server (Standard-Web-Server oder mit
SSL-Verschlüsselung)FirewallIP-MasqueradingFirewalls und NAT-Gateways
(IP-Masquerading)E-MailE-Mail-ServerUsenetUsenet-News und Foren (BBS)Zum Betreiben von FreeBSD reicht schon ein
günstiger 386-PC. Wenn es das Wachstum Ihres
Unternehmens verlangt, kann FreeBSD aber auch auf einem
hochgerüsteten 4-Wege-System mit Xeon-Prozessoren
und RAID-Plattenspeicher Verwendung finden.Bildung: Sind Sie
Informatikstudent oder Student eines verwandten
Studiengangs? Die praktischen Einblicke in FreeBSD sind
die beste Möglichkeit etwas über Betriebssysteme,
Rechnerarchitektur und Netzwerke zu lernen. Einige frei
erhältliche CAD-, mathematische und grafische Anwendungen
sind sehr nützlich, gerade für diejenigen, die
FreeBSD nicht zum Selbstzweck, sondern als
Arbeitsmittel einsetzen.Wissenschaft: Mit dem frei
verfügbaren Quellcode für das gesamte System
bildet FreeBSD ein exzellentes Studienobjekt in der
Disziplin der Betriebssysteme, wie auch in anderen Zweigen
der Informatik. Es ist beispielsweise denkbar, das
räumlich getrennte Gruppen gemeinsam an einer Idee
oder Entwicklung arbeiten. Das Konzept der freien
Verfügbarkeit und -nutzung von FreeBSD
ermöglicht so einen Gebrauch, auch ohne sich
groß Gedanken über Lizenzbedingungen oder
-beschränkungen machen zu müssen.RouterDNS-ServerNetzwerkfähigkeit: Brauchen
Sie einen neuen Router? Oder einen Name-Server (DNS)? Eine
Firewall zum Schutze Ihres Intranets vor Fremdzugriff?
FreeBSD macht aus dem in der Ecke verstaubenden 386- oder
486-PC im Handumdrehen einen leistungsfähigen Router
mit anspruchsvollen Packet-Filter-Fähigkeiten.X-Window-SystemXFree86X-Window-SystemAccelerated-XX-Window-Workstation: FreeBSD ist
eine gute Wahl als kostengünstiges X-Terminal, egal
ob mit dem frei erhältlichen &xfree86; Server oder mit
einem der exzellenten kommerziellen Server von
Xi Graphics.
Im Gegensatz zu einem X-Terminal erlaubt es FreeBSD, viele
Anwendungen lokal laufen zu lassen, was die Last eines
zentralen Servers erleichtern kann. FreeBSD kann selbst
plattenlos starten, was einzelne
Workstations noch günstiger macht und die Wartung
erleichtert.GNU-Compiler-CollectionSoftware-Entwicklung: Das
Standard-System von FreeBSD wird mit einem kompletten Satz
an Entwicklungswerkzeugen bereitgestellt, unter anderem
mit dem bekannten GNU C/C++-Kompiler und -Debugger.&os; ist sowohl in Form von Quellcode als auch in
Binärform auf CD-ROM, DVD und über anonymous FTP
erhältlich. Näheres zum Bezug von FreeBSD
enthält .Wer benutzt FreeBSD?AnwenderBekannte FreeBSD-AnwenderUnter FreeBSD laufen einige der größten
Internet-Auftritte, beispielsweise:Yahoo!Yahoo!ApacheApacheBlue Mountain ArtsBlue
Mountain ArtsPair NetworksPair
NetworksSony JapanSony
JapanNetcraftNetcraftWeathernewsWeathernewsSupervaluSupervaluTELEHOUSE AmericaTELEHOUSE
AmericaSophos Anti-VirusSophos
Anti-VirusJMA WiredJMA
WiredDas FreeBSD-ProjektDer folgende Abschnitt bietet einige
Hintergrundinformationen zum FreeBSD-Projekt,
einschließlich einem kurzen geschichtlichen Abriss,
den Projektzielen und dem Entwicklungsmodell.JordanHubbardBeigesteuert von Kurzer geschichtlicher Abriss zu FreeBSD386BSD PatchkitHubbard, JordanWilliams, NateGrimes, RodFreeBSD-ProjektGeschichteDas FreeBSD-Projekt erblickte das Licht der Welt Anfang
1993 teils als Auswuchs des Unofficial 386BSD
Patchkit unter der Regie der letzten drei
Koordinatoren des Patchkits: Nate Williams, Rod Grimes und
mir.386BSDUnser eigentliches Ziel war es, einen zwischenzeitlichen
Abzug von 386BSD zu erstellen, um ein paar Probleme zu
beseitigen, die das Patchkit-Verfahren nicht lösen
konnte. Einige von Ihnen werden sich in dem Zusammenhang noch
an die frühen Arbeitstitel 386BSD 0.5 oder
386BSD Interim erinnern.Jolitz, Bill386BSD war das Betriebssystem von Bill Jolitz. Dieses
litt bis zu diesem Zeitpunkt heftig unter fast
einjähriger Vernachlässigung. Als das Patchkit mit
jedem Tag anschwoll und unhandlicher wurde, waren wir
einhellig der Meinung, es müsse etwas geschehen. Wir
entschieden uns Bill Jolitz zu helfen, indem wir den
übergangsweise bereinigten Abzug zur
Verfügung stellten. Diese Pläne wurden unschön
durchkreuzt als Bill Jolitz plötzlich seine Zustimmung
zu diesem Projekt zurückzog, ohne einen Hinweis darauf,
was stattdessen geschehen sollte.Greenman, DavidWalnut Creek CDROMEs hat nicht lange gedauert zu entscheiden, dass das Ziel
es wert war, weiterverfolgt zu werden, selbst ohne Bills
Unterstützung. Also haben wir den von David Greenman
geprägten Namen FreeBSD angenommen.
Unsere anfänglichen Ziele setzten wir nach
Rücksprache mit den damaligen Benutzern des Systems fest.
Und als deutlich wurde, das Projekt würde
möglicherweise Realität, nahm ich Kontakt mit Walnut
Creek CDROM auf, mit einem Auge darauf, den Vertriebsweg
für die vielen Missbegünstigten zu verbessern,
die keinen einfachen Zugang zum Internet hatten. Walnut Creek
CDROM unterstützte nicht nur die Idee des
CD-ROM-Vertriebs, sondern stellte sogar dem Projekt einen
Arbeitsrechner und eine schnelle Internetverbindung zur
Verfügung. Ohne den beispiellosen Glauben von Walnut
Creek CDROM in ein zu der Zeit absolut unbekanntes Projekt,
gäbe es FreeBSD in der heutigen Form wohl nicht.4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software FoundationDie erste auf CD-ROM (und netzweit) verfügbare
Veröffentlichung war FreeBSD 1.0 aus dem Dezember
1993. Diese basierte auf dem Band der 4.3BSD-Lite
(Net/2) der Universität von Kalifornien in
Berkeley. Viele Teile wurden aus der 386BSD und der Free
Software Foundation gestellt. Gemessen am ersten Angebot, war
das ein ziemlicher Erfolg und wir ließen dem das extrem
erfolgreiche FreeBSD 1.1 im Mai 1994 folgen.NovellU.C. BerkeleyNet/2AT&T Zu der Zeit formierten sich unerwartete Gewitterwolken am
Horizont, als Novell und die Universität von Kalifornien
in Berkeley (UCB) ihren langen Rechtsstreit über den
rechtlichen Status des Berkeley Net/2-Bandes mit einem
Vergleich beilegten. Eine Bedingung dieser Einigung war es,
dass die UCB große Teile des Net/2-Quellcodes als
belastet zugestehen musste, und dass diese
Besitz von Novell sind, welches den Code selbst einige Zeit vorher
von AT&T bezogen hatte. Im Gegenzug bekam die UCB den
Segen von Novell, dass sich das 4.4BSD-Lite-Release
bei seiner endgültigen Veröffentlichung als
unbelastet bezeichnen darf. Alle Net/2-Benutzer sollten
auf das neue Release wechseln. Das betraf auch FreeBSD. Dem
Projekt wurde eine Frist bis Ende Juli 1994 eingeräumt,
das auf Net/2-basierende Produkt nicht mehr zu vertreiben.
Unter den Bedingungen dieser Übereinkunft war es dem
Projekt noch erlaubt ein letztes Release vor diesem
festgesetzten Zeitpunkt herauszugeben. Das war
FreeBSD 1.1.5.1.FreeBSD machte sich dann an die beschwerliche Aufgabe,
sich Stück für Stück, aus einem neuen und
ziemlich unvollständigen Satz von 4.4BSD-Lite-Teilen,
wieder aufzubauen. Die
Lite-Veröffentlichungen waren deswegen
leicht, weil Berkeleys CSRG große Code-Teile,
die für ein start- und lauffähiges System gebraucht
wurden, aufgrund diverser rechtlicher Anforderungen entfernen
musste und weil die 4.4-Portierung für Intel-Rechner extrem
unvollständig war. Das Projekt hat bis November 1994
gebraucht diesen Übergang zu vollziehen, was dann zu dem
im Netz veröffentlichten FreeBSD 2.0 und zur
CD-ROM-Version (im späten Dezember) führte. Obwohl
FreeBSD gerade die ersten Hürden genommen hatte, war
dieses Release ein maßgeblicher Erfolg. Diesem folgte
im Juni 1995 das robustere und einfacher zu installierende
FreeBSD 2.0.5.Im August 1996 veröffentlichten wir
FreeBSD 2.1.5. Es schien unter ISPs und der Wirtschaft
beliebt genug zu sein, ein weiteres Release aus dem
2.1-STABLE-Zweig zu rechtfertigen. Das war
FreeBSD 2.1.7.1. Es wurde im Februar 1997
veröffentlicht und bildete das Ende des
Hauptentwicklungszweiges 2.1-STABLE. Derzeit unterliegt
dieser Zweig dem Wartungsmodus, das heißt, es werden nur
noch Sicherheitsverbesserungen und die Beseitigung von
kritischen Fehlern vorgenommen (RELENG_2_1_0).FreeBSD 2.2 entsprang dem Hauptentwicklungszweig
(-CURRENT) im November 1996 als
RELENG_2_2-Zweig und das erste komplette Release (2.2.1) wurde
im April 1997 herausgegeben. Weitere Veröffentlichungen
des 2.2-Zweiges gab es im Sommer und Herbst 1997. Das letzte
Release des 2.2-Zweiges bildete die Version 2.2.8 und erschien
im November 1998. Das erste offizielle 3.0-Release tauchte im
Oktober 1998 auf und läutete das Endes des
2.2-Zweiges ein.Am 20. Januar 1999 teilte sich der Quellbaum
erneut und führte zu den Zweigen 4.0-CURRENT und
3.X-STABLE. Auf dem 3.X-STABLE-Zweig wurden folgende
Releases erstellt: 3.1 am 15. Februar 1999,
3.2 am 15. Mai 1999,
3.3 am 16. September 1999,
3.4 am 20. Dezember 1999 und
3.5 am 24. Juni 2000 veröffentlicht. Dem letzten
folgte ein paar Tage später das Release 3.5.1, welches
einige akute Sicherheitslöcher von Kerberos stopfte. Es
ist die letzte Veröffentlichung des 3.X-Zweiges.Es folgte eine weitere Aufspaltung am
13. März 2000 aus dem der 4.X-STABLE-Zweig
hervorging, welcher zurzeit als der
stabile Zweig angesehen wird.
Bis jetzt gab es mehrere Veröffentlichungen aus diesem
Zweig: 4.0-RELEASE erschien im März 2000
und das neuste &rel2.current;-RELEASE erschien im
&rel2.current.date;. Bis ins Jahr 2003 wird es weitere
Veröffentlichungen aus dem 4.X-STABLE-Zweig
(RELENG_4) geben.Das lang erwartete 5.0-RELEASE wurde am
19. Januar 2003 veröffentlicht. Nach nahezu
drei Jahren brachte diese Release weiterentwickelte
Unterstützung für Mehrprozessor-Systeme und
Unterstützung für Multithreading. Mit dieser
Release lief &os; erstmalig auf den Plattformen &ultrasparc;
und ia64. Im Juni 2003 folgte das 5.1-RELEASE.
Neben neuen Funktionen brachten die 5.X-Releases auch
weitreichende Änderungen der Systemarchitektur.
Dadurch enthält das System eine enorme Menge neuen
Code, der nicht weit gehend ausgetestet ist. Die 5.X-Releases
werden daher als Neue Technik bezeichnet,
während die 4.X-Releases als produktionsreif
bezeichnet werden. Mit der Zeit wird sich der 5.X-Zweig
stabilisieren, danach wird die Entwicklung auf einem neuen
Zweig, 6.0-CURRENT, weitergeführt.Zurzeit werden Projekte mit langem Entwicklungshorizont
noch im Zweig 5.0-CURRENT verfolgt und Schnappschüsse
von 5.0 auf CD-ROM (und natürlich im Netz) werden bei
fortlaufender Entwicklung auf dem
Snapshot-Server zur Verfügung gestellt.JordanHubbardBeigesteuert von Ziele des FreeBSD-ProjektsFreeBSD-ProjektZieleDas FreeBSD-Projekt stellt Software her, die ohne
Einschränkungen für beliebige Zwecke eingesetzt
werden kann. Viele
von uns haben beträchtlich in Quellcode und Projekt
investiert und hätten sicher nichts dagegen, hin und
wieder ein wenig finanziellen Ausgleich dafür zu
bekommen. Aber in keinem Fall bestehen wir darauf. Wir
glauben unsere erste und wichtigste Mission ist
es, Software für jeden Interessierten und zu jedem Zweck
zur Verfügung zu stellen, damit die Software
größtmögliche Verbreitung erlangt und
größtmöglichen Nutzen stiftet. Das ist,
glaube ich, eines der grundlegenden Ziele freier Software,
welche wir mit größter Begeisterung
unterstützen.GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD CopyrightDer Code in unserem Quellbaum, der unter die General
Public License (GPL) oder die Library General Public License
(LGPL) fällt, stellt geringfügig mehr Bedingungen.
Das aber vielmehr im Sinne von eingefordertem Zugriff, als das
übliche Gegenteil der Beschränkungen. Aufgrund
zusätzlicher Abhängigkeiten, die sich durch die
Verwendung von GPL-Software bei kommerziellem Gebrauch
ergeben, bevorzugen wir daher Software unter dem
transparenteren BSD-Copyright, wo immer es angebracht ist.SatoshiAsamiBeigesteuert von Das Entwicklungsmodell von FreeBSDFreeBSD-ProjektEntwicklungsmodellDie Entwicklung von FreeBSD ist ein offener und
vielseitiger Prozess. FreeBSD besteht aus Beisteuerungen
von Hunderten Leuten rund um die Welt, wie Sie aus der
Liste
der Beitragenden ersehen können. Die vielen
Entwickler können aufgrund der Entwicklungs-Infrastruktur
von &os; über das Internet zusammenarbeiten. Wir suchen
ständig nach neuen Entwicklern, Ideen und jenen, die sich
in das Projekt tiefer einbringen wollen. Nehmen Sie einfach
auf der Mailingliste &a.hackers; Kontakt mit uns auf.
Die Mailingliste &a.announce; steht für wichtige
Ankündigungen, die alle FreeBSD-Benutzer betreffen,
zur Verfügung.Unabhängig davon ob Sie alleine oder mit
anderen eng zusammen arbeiten, enthält die folgende
Aufstellung nützliche Informationen über das
FreeBSD-Projekt und dessen Entwicklungsabläufe.Das CVS-RepositoryCVSRepositoryConcurrent-Versions-SystemCVSDer Hauptquellbaum von FreeBSD wird mit CVS gepflegt, einem
frei erhältlichen Versionskontrollsystem, welches
mit FreeBSD geliefert wird. Das Haupt- CVS-Repository
läuft auf einer Maschine in
Santa Clara, Kalifornien, USA. Von dort wird es auf
zahlreiche Server in aller Welt gespiegelt. Der
CVS-Quellbaum, der die Zweige
-CURRENT und
-STABLE enthält,
kann einfach auf Ihr eigenes System gespiegelt
werden. Näheres dazu können Sie im Handbuch unter
Synchronisation der Quellen
in Erfahrung bringen.Die Committer-ListeCommitterDie Committer sind Personen
mit Schreibzugriff auf den
CVS-Quellbaum (der Begriff Committer
stammt vom &man.cvs.1;-Befehl commit,
der zum Einspeisen von Änderungen ins Repository
gebraucht wird). Der beste Weg, Vorschläge zur
Prüfung durch die Mitglieder der Committer-Liste
einzureichen, bietet der Befehl &man.send-pr.1;. Sollte es
unerwartete Probleme mit diesem Verfahren geben, besteht
immer noch die Möglichkeit eine E-Mail an die Liste
&a.committers; zu schicken.Das FreeeBSD-Core-TeamCore-TeamWürde man das FreeBSD-Projekt mit einem
Unternehmen vergleichen, so wäre das
FreeBSD-Core-Team das
Gegenstück zum Vorstand. Die Hauptaufgabe des
Core-Teams ist es, das Projekt als Ganzes in gesunder
Verfassung zu halten und die weitere Entwicklung in die
richtige Bahn zu lenken. Das Anwerben leidenschaftlicher
und verantwortungsbewusster Entwickler ist eine
Aufgabe des Core-Team, genauso wie die Rekrutierung
neuer Mitglieder für das Core-Team, im Falle, dass
Altmitglieder aus dem Projekt aussteigen. Das
derzeitige Core-Team wurde im Juni 2002 aus einem Kreis
kandidierender Committer gewählt. Wahlen
werden alle zwei Jahre abgehalten.Einige Core-Team-Mitglieder haben auch spezielle
Verantwortungsbereiche. Das bedeutet, Sie haben sich
darauf festgelegt, sicherzustellen, dass ein
größerer Teil des Systems so funktioniert wie
ausgewiesen. Eine vollständige Liste an FreeBSD
beteiligter Entwickler und ihrer Verantwortungsbereiche
kann in der Liste der
Beitragenden eingesehen werden.Die Mehrzahl der Mitglieder des Core-Teams sind
Freiwillige in Bezug auf die FreeBSD-Entwicklung und
profitieren nicht finanziell vom Projekt. Daher
sollte Verpflichtung nicht als
garantierter Support fehlinterpretiert
werden. Der oben angeführte Vergleich mit einem
Vorstand hinkt und es wäre angebrachter zu
erwähnen, dass diese Leute – wider besseres
Wissen – ihr eigenes Leben für FreeBSD
aufgegeben haben!Weitere BeitragendeBeitragendeAls letztes, aber mit Sicherheit nicht das
Unwichtigste, ist die größte Gruppe der
Entwickler – die Anwender selbst, die Rückmeldungen
und Fehlerbehebungen in einem anhaltend
hohen Maße an uns senden. Der bevorzugte Weg an
dem weniger zentralisierten Bereich der
FreeBSD-Entwicklung teilzuhaben, ist die
Möglichkeit sich bei der Liste &a.hackers;
anzumelden. Weitere Informationen über die
verschiedenen FreeBSD-Mailinglisten erhalten Sie in
.Die Liste
der zu FreeBSD Beitragenden ist eine
lange und wachsende. Also warum nicht selbst dort
stehen, indem Sie gleich persönlich etwas zu
FreeBSD beitragen?Quellcode ist nicht der einzige Weg, etwas zum
Projekt beizusteuern. Eine genauere Übersicht
über offene Aufgaben finden Sie auf der FreeBSD-Web-Site.Zusammengefasst bildet unser Entwicklungsmodell einen
losen Verbund konzentrischer Kreise. Das zentralisierte
Modell ist auf die Bedürfnisse der
Anwender zugeschnitten, mit der einfachen
Möglichkeit eine zentrale Code-Basis zu verfolgen und
möglichen neuen Beitragenden nicht das Leben zu
erschweren! Unser Ziel ist es, ein stabiles Betriebssystem mit
einer großen Zahl passender
Programme zu bieten, die der Anwender
leicht installieren und anwenden kann. Und dieses Modell
funktioniert für diese Aufgabe ziemlich gut.Das Einzige was wir von möglichen neuen Mitgliedern
fordern, ist die gleiche Hingabe, mit der die jetzigen
Mitglieder am dauerhaften Erfolg arbeiten!Das aktuelle FreeBSD-ReleaseNetBSDOpenBSD386BSDFree Software FoundationU.C. BerkeleyComputer Systems Research Group (CSRG)FreeBSD ist ein (mit vollem Quellcode und ein frei
erhältliches) auf 4.4BSD-Lite-basierendes Release
für Intel &i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (oder ein dazu kompatibler Prozessor),
&xeon;, DEC Alpha und
Sun &ultrasparc; Systeme.
Es stützt sich zum größten
Teil auf Software der Computer Systems Research Group (CSRG)
der Universität von Kalifornien in Berkeley mit einigen
Verbesserungen aus NetBSD, OpenBSD, 386BSD und der Free
Software Foundation.Seit unserem FreeBSD 2.0 vom Ende 1994, hat sich
Leistung, Funktionsvielfalt und Stabilität dramatisch
verbessert.
Die größte Änderung erfuhr das virtuelle
Speichermanagement durch eine Kopplung von virtuellem Speicher
und dem Buffer-Cache, das nicht nur die Leistung
steigert, sondern auch den Hauptspeicherverbrauch reduziert
und ein 5 MB-System zu einem nutzbaren Minimal-System
verhilft. Weitere Verbesserungen sind volle NIS-Client- und
Server-Unterstützung, T/TCP, Dial-On-Demand-PPP,
integriertes DHCP, ein verbessertes SCSI-Subsystem,
ISDN-Support, Unterstützung für ATM-, FDDI-, Fast-
und Gigabit-Ethernet-Karten (1000 Mbit), verbesserter
Support der neusten Adaptec-Controller und tausende
Fehlerkorrekturen.Zusätzlich zur Standard-Distribution bietet FreeBSD
eine Sammlung von portierter Software mit tausenden begehrten
Programmen. Zum Verfassungszeitpunkt waren über
&os.numports; Anwendungen in der Ports-Sammlung! Das Spektrum
der Ports-Sammlung reicht von HTTP-Servern über Spiele,
Programmiersprachen, Editoren und so ziemlich allem
dazwischen. Die gesamte Ports-Sammlung benötigt
&ports.size; an Speicherplatz, wobei jeder Port anhand eines
Deltas zu den Quellen angegeben wird. Das
macht es für uns erheblich leichter, Ports zu
aktualisieren und es verringert den Plattenbedarf im Vergleich
zur älteren 1.0-Port-Sammlung. Um ein Port zu
übersetzen, müssen Sie einfach ins Verzeichnis des
Programms wechseln und ein make install
absetzen. Den Rest erledigt das System. Die originalen
Quellen jedes zu installierenden Port werden dynamisch von
CD-ROM oder einem FTP-Server bezogen. Es reicht also für
genügend Plattenplatz zu sorgen, um die gewünschten
Ports zu erstellen. Allen, die Ports nicht selbst kompilieren
wollen: Es gibt zu fast jedem Port ein vorkompiliertes
Paket, das einfach mit dem Befehl (pkg_add)
installiert wird. Pakete und Ports werden in
beschrieben.Eine Reihe von weiteren Dokumenten, die sich als hilfreich
bei der Installation oder dem Arbeiten mit FreeBSD erweisen
könnten, liegen auf neueren &os;-Systemen im Verzeichnis
/usr/share/doc. Die lokal installierten
Anleitungen lassen sich mit jedem HTML-fähigen Browser
unter folgenden Adressen betrachten:Das FreeBSD-Handbuch/usr/share/doc/handbook/index.htmlDie FreeBSD-FAQ/usr/share/doc/faq/index.htmlEs besteht auch die Möglichkeit, die (am
häufigst-aktualisierten) Referenzdokumente unter http://www.FreeBSD.org/
anzusehen.
diff --git a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index 7644246378..d1840d0f04 100644
--- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1760 +1,1781 @@
JimMockErweitert und neu strukturiert von JakeHambyUrsprünglich veröffentlicht von RobertAltschaffelÜbersetzt von Konfiguration des &os;-KernelsÜbersichtKernelErstellen eines angepassten KernelsDer Kernel ist das Herz des &os; Betriebssystems. Er ist
verantwortlich für die Speicherverwaltung, das Durchsetzen
von Sicherheitsdirektiven, Netzwerkfähigkeit, Festplattenzugriffen
und vieles mehr. Obwohl &os; es immer mehr ermöglicht, dynamisch
konfiguriert zu werden, ist es ab und an notwendig, den Kernel
neu zu konfigurieren und zu kompilieren.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Wieso Sie Ihren Kernel neu konfigurieren sollten.Wie Sie eine Kernelkonfigurationsdatei erstellen oder
verändern.Wie Sie mit der Konfigurationsdatei einen neuen Kernel
kompilieren.Wie Sie den neuen Kernel installieren.Wie sie die benötigten Einträge in
/dev erstellen.Was zu tun ist, falls etwas schiefgeht.Wieso einen eigenen Kernel bauen?Traditionell besaß &os; einen monolithischen Kernel. Das
bedeutet, dass der Kernel ein einziges großes Programm war,
das eine bestimmte Auswahl an Hardware unterstützte.
Also musste man immer, wenn man das Kernelverhalten verändern
wollte, zum Beispiel wenn man neue Hardware hinzufügen wollte,
einen neuen Kernel kompilieren, installieren und das System neu
starten.Heutzutage vertritt &os; immer mehr die Idee eines modularen
Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module
geladen werden können. Ein bekanntes Beispiel dafür sind
die Module für die PCMCIA-Karten in Laptops, die zum Starten
nicht zwingend benötigt werden, und erst bei Bedarf geladen werden.
Diese Module nennt man KLDs
(kernel loadable modules).Trotzdem ist es noch immer nötig, einige statische
Kernelkonfigurationen durchzuführen. In einigen Fällen
ist die Funktion zu systemnah, um durch ein Modul zu realisiert werden.
In anderen Fällen hat eventuell noch niemand ein ladbares
Kernelmodul für diese Funktion geschrieben.Das Erstellen eines angepaßten Kernels ist eines der
wichtigsten Rituale, das nahezu jeder Benutzer eines &unix; Systems erdulden
muss. Obwohl dieser Prozess recht viel Zeit in Anspruch nimmt,
bringt er doch viele Vorteile für Ihr &os; System. Der
GENERIC Kernel muss eine Vielzahl
unterschiedlicher Hardware unterstützen, im Gegensatz dazu
unterstützt ein angepasster Kernel nur
Ihre Hardware. Dies hat einige Vorteile:Schnellerer Bootvorgang. Da der Kernel nach weniger Geräten
sucht, ist die Boot-Sequenz weitaus schneller.Geringere Speicherausnutzung. Ein eigener Kernel benötigt
in der Regel weniger Speicher als ein GENERIC
Kernel, was vorteilhaft ist, da der Kernel immer im RAM verweilt.
Insbesondere profitieren Systeme mit wenig RAM davon.Zusätzliche Hardwareunterstützung. Ein
angepasster Kernel kann Unterstützung für Geräte
wie Soundkarten bieten, die im GENERIC Kernel
nicht unterstützt werden.Erstellen und Installation eines angepassten
KernelsKernelErstellen und InstallationZuerst erläutern wir die Verzeichnisstruktur, in der der
Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind
relativ zu /usr/src/sys angegeben, das Sie auch
über /sys erreichen können. Es existieren
mehrere Unterverzeichnisse, die bestimmte Teile des Kernels
darstellen, aber die für uns wichtigsten sind
arch/conf, in dem
Sie die Konfigurationsdatei für den angepassten Kernel
erstellen werden, und compile, in dem der Kernel
gebaut wird. arch kann entweder
i386, alpha oder
pc98 (eine in Japan beliebte Architektur) sein.
Alles in diesen Verzeichnissen ist nur für die jeweilige
Architektur relevant, während der Rest des Codes für alle
Plattformen, auf die &os; portiert werden kann, gleich ist.
Beachten Sie die Verzeichnisstruktur, die jedem unterstützten
Gerät, jedem Dateisystem und jeder Option ein eigenes
Verzeichnis zuordnet. Ab &os; 5.X wird die
sparc64-Architektur unterstützt
und es existieren Verzeichnisse für weitere Architekturen,
an denen allerdings noch gearbeitet wird.Falls Sie kein /usr/src/sys Verzeichnis
vorfinden, so sind die Kernelquellen nicht installiert. Der
einfachste Weg dies nachzuholen, ist
/stand/sysinstall als root
auszuführen. Dort wählen Sie
Configure, dann
Distributions, dann
src und schließlich
sys. Wenn Sie eine
Aversion gegen sysinstall haben und eine
offizielle &os; CD-ROM besitzen, können Sie
die Kernelquellen auch von der Kommandozeile installieren:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -Als nächstes wechseln sie in das Verzeichnis, in dem die
GENERIC Konfigurationsdatei liegt und kopieren
diese in eine Datei mit dem Namen, den Sie Ihrem Kernel geben
wollen:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNELTraditionell ist der Name des Kernels immer in Großbuchstaben.
Wenn Sie mehrere &os; mit unterschiedlicher Hardware warten, ist
es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der
Maschinen benennen. Im Beispiel verwenden wir den Namen
MYKERNEL.Es ist nicht zu empfehlen die Konfigurationsdatei direkt
unterhalb von /usr/src abzuspeichern. Wenn
Sie Probleme haben, könnten Sie der Versuchung erliegen,
/usr/src einfach zu löschen und wieder
von vorne anzufangen. Fünf Sekunden später werden Sie
dann feststellen, dass Sie soeben Ihre
Kernelkonfigurationsdatei gelöscht haben.Editieren Sie immer eine Kopie von GENERIC.
Änderungen an GENERIC können
verloren gehen, wenn der
Quellbaum aktualisiert
wird.Sie sollten die Konfigurationsdatei an anderer Stelle aufheben
und in i386 einen Link auf die Datei
erstellen.Beispiel:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNELDiese und die folgenden Kommandos müssen Sie als
root ausführen, da Sie sonst
permission denied Fehler erhalten.Jetzt editieren Sie MYKERNEL mit einem
Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen
vielleicht nur der vi Editor bekannt,
der allerdings zu komplex ist, um hier erklärt zu werden.
Er wird aber in vielen Büchern aus der
Bibliographie gut erklärt. &os; bietet aber auch
einen leichter zu benutzenden Editor, den ee
an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie
können die Kommentare am Anfang der Konfigurationsdatei
ändern, um die Änderungen gegenüber
GENERIC zu dokumentieren.SunOSFalls Sie schon einmal einen Kernel unter &sunos; oder einem
anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei
bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS
vertraut sind, könnte die GENERIC
Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie
den Beschreibungen im Abschnitt über die
Konfigurationsdatei
langsam und vorsichtig folgen.Wenn Sie die &os; Quellen
synchronisieren, sollten Sie immer, bevor Sie etwas
verändern, /usr/src/UPDATING
durchlesen. Diese Datei enthält alle wichtigen Informationen,
die Sie beim Aktualisieren beachten müssen.
Da /usr/src/UPDATING immer zu Ihrer Version
der &os; Quellen passt, sind die Informationen dort genauer,
als in diesem Handbuch.Nun müssen Sie die Kernelquellen kompilieren. Dazu gibt es
zwei Verfahren. Welches Verfahren Sie nehmen, hängt davon ab,
warum Sie den Kernel neu bauen und welche Version von &os; Sie
verwenden.Wenn Sie nur die Kernelquellen
installiert haben, benutzen Sie das Verfahren 1.Wenn Sie eine &os; Version vor 4.0 benutzen und
nicht auf &os; 4.0 oder höher mit
make world migrieren, benutzen Sie
Verfahren 1.Wenn Sie einen neuen Kernel bauen wollen, ohne dabei den
Quellcode zu aktualisieren, weil Sie vielleicht nur eine neue
Option wie IPFIREWALL hinzugefügt haben,
können Sie jedes der Verfahren einsetzen.Wenn Sie als Teil eines make world den
Kernel aktualisieren, benutzen Sie das Verfahren 2.Verfahren 1. Bau eines Kernels mit der
herkömmlichen MethodeGenerieren Sie die Kernel Quellen mit &man.config.8;.&prompt.root; /usr/sbin/config MYKERNELDas vorige Kommando gibt das Bauverzeichnis aus.
Wechseln Sie jetzt in das Bauverzeichnis:&prompt.root; cd ../compile/MYKERNELWenn Sie eine &os;-Version vor 5.0 verwenden,
wechseln Sie wie folgt in das Bauverzeichnis:&prompt.root; cd ../../compile/MYKERNELKompilieren Sie den Kernel.&prompt.root; make depend
&prompt.root; makeInstallieren Sie den neuen Kernel.&prompt.root; make installVerfahren 2. Bau eines Kernels mit der neuen
MethodeWechseln Sie in das usr/src
Verzeichnis.&prompt.root; cd /usr/srcKompilieren Sie den Kernel.&prompt.root; make buildkernel KERNCONF=MYKERNELInstallieren Sie den neuen Kernel.&prompt.root; make installkernel KERNCONF=MYKERNELMit &os; 4.2 und älteren Versionen müssen Sie
KERNCONF durch KERNEL
ersetzen. 4.2-STABLE nach dem 2. Februar 2001 erkennt die
Option KERNCONF.cvsupanonymous CVSCTMCVSanonymousWenn Sie die Quellen nicht auf irgendeine
Weise aktualisiert haben, das heißt, Sie haben nicht
CVSup, CTM oder
anoncvs benutzt, dann können Sie
die Sequenz config,
make depend, make,
make install benutzen.kernel.oldDer neue Kernel wird nach /kernel kopiert,
während der alte Kernel nach /kernel.old
verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie die
Maschine jetzt rebooten. Falls etwas schief geht, sehen Sie bitte
in dem Abschnitt zur
Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie
auch unbedingt den Abschnitt lesen, der erklärt, was zu tun
ist, wenn der neue Kernel nicht
bootet.Ab &os; 5.0 werden der neue Kernel und die Module
in das Verzeichnis /boot/kernel installiert.
Der alte Kernel und die dazugehörenden Module werden in das
Verzeichnis /boot/kernel.old gesichert.
Im Verzeichnis /boot werden auch andere
Dateien, die zum Systemstart benötigt werden, wie der
Boot-Loader (&man.loader.8;) und dessen Konfiguration, abgelegt.
Module von Fremdherstellern oder angepasste Module
werden in /boot/modules abgelegt. Beachten
Sie bitte, dass diese Module immer zu dem verwendeten Kernel passen
müssen, da Module, die nicht zu dem verwendeten Kernel passen,
die Stabilität des Systems gefährden.Wenn Sie neue Geräte, wie Soundkarten, hinzugefügt haben
und &os; 4.X oder eine frühere Version benutzen,
müssen Sie unter Umständen Gerätedateien in
/dev erstellen, bevor Sie die Geräte benutzen
können. Weitere Informationen finden Sie in Erstellen von Gerätedateien
später in diesem Kapitel.Die KernelkonfigurationsdateiKernelLINTLINTKernelKonfigurationsdateiDas Format der Konfigurationsdatei ist recht einfach. Jede Zeile
enthält ein Schlüsselwort und ein oder mehrere Argumente.
Eine Zeile, die von einen # eingeleitet wird, gilt
als Kommentar und wird ignoriert. Die folgenden Abschnitte
beschreiben jedes Schlüsselwort in der Reihenfolge, in der es
in GENERIC auftaucht. Manche zusammengehörende
Schlüsselwörter werden in einem Abschnitt beschrieben,
obwohl Sie über GENERIC verstreut sind.
Eine ausführliche Liste aller
Optionen mit detaillierten Erklärungen finden Sie in der
Konfigurationsdatei LINT, die sich in demselben
Verzeichnis wie GENERIC befindet. Wenn Sie sich
über den Zweck oder die Notwendigkeit einer Zeile im Unklaren
sind, überprüfen Sie bitte diese bitte zuerst in
LINT.Ab &os; 5.X ist die Datei LINT
durch die Datei NOTES ersetzt worden.
Hauptsächlich architekturunabhängige Optionen
werden zudem in /usr/src/sys/conf/NOTES
gespeichert. Schauen Sie sich bitte auch diese
Optionen an.KernelBeispiel KonfigurationsdateiDas folgende Beispiel zeigt eine GENERIC
Konfigurationsdatei, die, wo notwendig, zusätzliche Kommentare
enthält. Sie sollte der Datei
/usr/src/sys/i386/conf/GENERIC auf Ihrem System
sehr ähnlich sein. Für detaillierte Informationen über
alle möglichen Optionen sehen Sie sich bitte
/usr/src/sys/i386/conf/LINT an.#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# &os; World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $Die folgenden Schlüsselwörter sind für
jeden Kernel, den Sie bauen, zwingend
erforderlich:Kerneloptionmachinemachine i386Gibt die Architektur der Maschine an und muss entweder
i386, pc98,
sparc64, alpha,
ia64, amd64
oder powerpc sein.Kerneloptioncpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUDie vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie
können mehrere CPU Typen angeben, wenn Sie sich zum Beispiel
nicht sicher sind, ob Sie I586_CPU oder
I686_CPU benutzen sollen. Für einen
angepassten Kernel ist es aber am besten, wenn Sie nur die CPU
angeben, die sich in der Maschine befindet. Der CPU-Typ wird
in den Boot-Meldungen ausgegeben, die in der Datei
/var/run/dmesg.boot gespeichert sind.KerneloptionCPU-TypIn den Quellen von &os; ist die Option
I386_CPU noch enthalten, doch ist die
Option sowohl in -STABLE wie auch in -CURRENT deaktiviert.
Das heißt Sie haben die folgenden Möglichkeiten,
&os; auf einem 386-System zu installieren:Installieren Sie ein älteres &os;-Release
und aktualisieren Sie das System mit den Quellen
wie in beschrieben.Bauen Sie das Userland und den Kernel auf einer
neueren Maschine und installieren Sie die übersetzten
Dateien aus /usr/obj. Weitere
Details entnehmen Sie bitte .Bauen Sie Ihr eigenes FreeBSD-Release, dessen
Installations-CD einen Kernel enthält der
die Option I386_CPU unterstützt.Die einfachste Möglichkeit ist sicher die erste.
Sie benötigen dazu allerdings sehr viel Plattenplatz,
der auf 386-Systemen vielleicht nicht vorhanden ist.Kerneloptionidentident GENERICGibt den Namen Ihres Kernels an. Hier sollten Sie den Namen
einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In
unserem Beispiel ist das MYKERNEL. Der Wert, den
Sie ident zuweisen, wird beim Booten des neuen
Kernels ausgegeben. Wenn Sie den Kernel von Ihrem normal verwendeten
Kernel unterscheiden wollen, weil Sie zum Beispiel einen Kernel zum
Testen bauen, ist es nützlich, hier einen anderen Namen
anzugeben.Kerneloptionmaxusersmaxusers nDie Größe wichtiger Systemtabellen wird von
maxusers bestimmt. Der Wert dieser Variablen
sollte ungefähr der Anzahl der Benutzer des Systems
entsprechen.Ab &os; 4.5 kann das System diesen Wert selbst setzen, wenn
Sie in der Konfigurationsdatei den Wert 0Der verwendete Algorithmus setzt maxuser
auf die Speichergröße des Systems. Der minimale Wert
beträgt dabei 32, das Maximum ist
384.
angeben. Ab &os; 5.X wird maxusers
auf 0 gesetzt, wenn die Option nicht angegeben
wird. Wenn Sie eine frühere Version als &os; 4.5
einsetzen, oder den Wert selbst bestimmen wollen, sollten Sie
maxusers mindestens auf 4
setzen, insbesondere wenn Sie beabsichtigen, das X Window System
zu benutzen oder Software zu kompilieren. Der Grund dafür ist,
dass der wichtigste Wert, der von maxusers
bestimmt wird, die maximale Anzahl an Prozessen ist, die auf
20 + 16 * maxusers gesetzt wird. Wenn Sie also
maxusers auf 1 setzen, können gleichzeitig
nur 36 Prozesse laufen, von denen ungefähr 18 schon beim Booten
des Systems gestartet werden und nochmal etwa 15 Prozesse dazukommen,
wenn Sie das X Window System starten. Selbst eine einfache Aufgabe,
wie das Lesen einer Manualpage, braucht neun Prozesse zum Filtern,
Dekomprimieren und Anschauen. Für die meisten Benutzer sollte
es ausreichen, maxusers auf 64 zu setzen, womit
1044 gleichzeitige Prozesse zur Verfügung stehen.Wenn Sie
allerdings den gefürchteten proc table full
Fehler, beim Versuch ein Programm zu starten oder auf einem Server
mit einer großen Benutzerzahl (wie
ftp.FreeBSD.org) sehen, dann
sollten Sie den Wert erhöhen und den Kernel neu bauen.Die Anzahl der Benutzer, die sich auf einer Maschine anmelden
können, wird nicht durch
- maxusers begrenzt. Der Wert dieser Variablen
+ maxusers begrenzt. Der Wert dieser Variablen,
zusammen mit einer angenommenen Anzahl Prozesse pro
- Benutzer legt sinnvolle Größen für bestimmte
+ Benutzer, legt sinnvolle Größen für bestimmte
Systemtabellen fest. Die Option pseudo-device pty 16
legt die Anzahl der erlaubten Anmeldungen von
- entfernten Systemen und X-Terminals fest.
+ entfernten Systemen und X-Terminals fest. Unter
+ &os; 5.X brauchen Sie sich um die Anzahl der
+ Geräte nicht mehr zu kümmern. Der
+ &man.pty.4;-Treiber erstellt automatisch neue
+ Geräte. In der Konfigurationsdatei müssen Sie
+ die Anweisung device pty verwenden.
# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13npx0 ist die Schnittstelle zur
Fließkomma-Einheit in &os;. Dies kann entweder ein
Coprozessor oder eine mathematische Software-Emulation sein. Die
Angabe dieser Option ist verpflichtend.# Pseudo devices - the number indicates how many units to allocate.
-pseudo-device loop # Network loopback
+device loop # Network loopback
Das TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP
Verbindung zu localhost (a.k.a., 127.0.0.1) aufbauen, erstellen Sie eine
- Verbindung zu sich selbst durch dieses Pseudo-Device. Die Angabe
- dieser Option ist verpflichtend.
+ Verbindung zu sich selbst durch dieses Device. Die Angabe
+ dieser Option ist verpflichtend.
+ Unter &os; 4.X müssen Sie die Zeile
+ pseudo-device loop verwenden.
Das Folgende ist mehr oder weniger optional. Mehr Informationen
enthalten die Anmerkungen unter oder neben den diskutierten
Optionen.#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" #Default places to look for devices.Ab &os; 5.X werden Geräte mit &man.device.hints.5;
konfiguriert. In der Voreinstellung überprüft
&man.loader.8; beim Systemstart die Datei
/boot/device.hints. Die Option
hints erlaubt es, die Gerätekonfiguration
statisch in den Kernel einzubinden, sodass die Datei
device.hints in /boot
nicht benötigt wird.#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbolsDer normale Bauprozess von FreeBSD erstellt einen Kernel,
der keine Debugging-Informationen enthält. Nachdem der
Kernel gebunden ist, werden die meisten Symbole entfernt,
um bei der Installation Platz zu sparen. Wenn Sie Kernel
auf dem -CURRENT-Zweig testen oder eigene Änderungen
im Kernel vornehmen, sollten Sie vielleicht diese Zeile
aktivieren. &man.gcc.1; wird dann mit der Option
aufgerufen und erzeugt die
Debugging-Informationen. Erstellen Sie den Kernel mit der
herkömmlichen Methode (siehe
), erreichen Sie
dasselbe, wenn Sie &man.config.8; mit der Option
aufrufen.options MATH_EMULATE #Support for x87 emulationDiese Zeile schaltet die Software-Emulation eines mathematischen
Coprozessors für den Fall, das Ihre Maschine keinen besitzt (386
oder 486SX), ein. Wenn Sie einen 386 oder 486SX mit dem
dazugehörigen Coprozessor (387 oder 487), einen 486DX oder
besser (wie &pentium;, &pentium; II) besitzen, können
Sie diese Zeile auskommentieren.Die normalen Emulationsroutinen für den Coprozessor in
&os; sind nicht sehr genau. Wenn Sie
keinen Coprozessor besitzen, sollten Sie hier
GPL_MATH_EMULATE einsetzen, um die
Unterstützung der GNU Routinen zu aktivieren. Wegen der damit
verbundenen Lizenz, ist diese Option in der Voreinstellung nicht
aktiviert.Ab &os; 5.0 ist die Emulation eines mathematischen
Coprozessors in der Voreinstellung ausgeschaltet, da heute nicht
mehr so viele alte CPUs ohne Coprozessor eingesetzt werden.
Damit der GENERIC-Kernel mit diesen
CPUs zusammenarbeitet, müssen oft noch weitere Optionen
aktiviert werden.options INET #InterNETworkingNetzwerkunterstützung. Auch wenn Sie nicht planen, den
Rechner mit einem Netzwerk zu verbinden, sollten Sie diese Option
aktiviert lassen. Die meisten Programme sind mindestens auf die
Loopback Unterstützung (Verbindungen mit sich selbst)
angewiesen. Damit ist diese Option im Endeffekt
notwendig.options INET6 #IPv6 communications protocolsAktiviert die Unterstützung für das IPv6
Protokoll.options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]Das Dateisystem für Festplatten. Wenn Sie von einer
Festplatte booten wollen, lassen Sie diese Option aktiviert.Ab &os; 5.0 wird FFS_ROOT nicht mehr
benötigt.options UFS_ACL #Support for access control listsDiese Option, die es erst ab &os; 5.0 gibt, aktiviert
Zugriffskontrolllisten (ACL). Die
ACLs hängen von
erweiterten Attributen und UFS2 ab,
eine genaue Beschreibung finden
Sie in . Die Zugriffskontrolllisten sind in
der Voreinstellung aktiviert und sollten auch nicht deaktiviert
werden, wenn Sie schon einmal auf einem Dateisystem verwendet wurden,
da dies die Zugriffsrechte auf Dateien in unvorhersehbarer Art und
Weise ändern kann.options UFS_DIRHASH #Improve performance on big directoriesDiese Option steigert die Geschwindigkeit von Plattenzugriffen
auf großen Verzeichnissen. Dadurch verbraucht das System etwas
mehr Speicher als vorher. Für stark beschäftigte Server
oder Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen.
Auf kleineren Systemen, bei denen Speicher eine kostbare Ressource
darstellt oder Systemen, auf denen die Geschwindigkeit der
Plattenzugriffe nicht wichtig ist, wie Firewalls, können Sie
diese Option abstellen.options SOFTUPDATES #Enable FFS Soft Updates supportMit dieser Option wird die Unterstützung für Soft
Updates, die Schreibzugriffe beschleunigen, in den Kernel
eingebunden. Auch wenn die Funktion im Kernel ist, muss
sie für einzelne Dateisysteme explizit aktiviert werden.
Überprüfen Sie mit &man.mount.8;, ob die Dateisysteme
Soft Updates benutzen. Wenn die Option
soft-updates nicht aktiviert ist, können
Sie die Option nachträglich mit &man.tunefs.8; aktivieren.
Für neue Dateisysteme können Sie Option beim Anlegen mit
&man.newfs.8; aktivieren.options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root deviceDas speicherbasierte Dateisystem. Dies ist eine RAM-Disk, die
zum schnellen Zugriff auf temporäre Dateien dient und
nützlich ist, wenn Sie über viel Speicher verfügen.
Eine MFS-Partition eignet sich sehr gut für das
/tmp Verzeichnis, da dort sehr viele Programme
temporäre Daten speichern. Um eine MFS RAM-Disk auf
/tmp einzurichten, fügen Sie die folgende
Zeile in /etc/fstab hinzu:/dev/ad1s2b /tmp mfs rw 0 0Um das Dateisystem einzuhängen, können Sie nun booten
oder rufen das Kommando mount /tmp auf.Ab &os; 5.0 werden RAM-disks mit &man.md.4; erstellt,
daher wird die Option MFS nicht mehr
unterstützt. Wie RAM-disks eingerichtet werden,
beschreiben die Hilfeseiten &man.mdconfig.8; und
&man.mdmfs.8; sowie .KerneloptionNFSKerneloptionNFS_ROOToptions NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, NFS requiredDas Network Filesystem. Wenn Sie keine Partitionen von einem
UNIX File-Server über TCP/IP einhängen wollen, können
Sie diese Zeile auskommentieren.KerneloptionMSDOSFSoptions MSDOSFS #MSDOS FilesystemDas &ms-dos; Dateisystem. Sie können diese Zeile
auskommentieren, wenn Sie nicht vorhaben, eine DOS-Partition beim
Booten einzuhängen. Das nötige Modul wird ansonsten
automatisch geladen, wenn Sie das erste mal eine DOS-Partition
einhängen. Außerdem können Sie mit den
ausgezeichneten mtools aus der
Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese an- und
abhängen zu müssen (MSDOSFS wird in
diesem Fall nicht benötigt).options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 requiredDas ISO 9660 Dateisystem für CD-ROMs. Sie können diese
Zeile auskommentieren, wenn Sie kein CD-ROM-Laufwerk besitzen oder
nur ab und an CDs einhängen. Das Modul wird automatisch
geladen, sobald Sie das erste Mal eine CD einhängen. Für
Audio-CDs benötigen Sie dieses Dateisystem nicht.options PROCFS #Process filesystemDas Prozeß-Dateisystem. Dies ist ein Pseudo-Dateisystem,
das auf /proc eingehangen wird und es Programmen
wie &man.ps.1; erlaubt, mehr Informationen über laufende Prozesse
auszugeben. Ab &os; 5.0 sollte PROCFS
nicht mehr benötigt werden, da die meisten Debug- und
Überwachungs-Werkzeuge nicht mehr darauf angewiesen sind. Wenn
PROCFS mit &os; 5.0 benutzt werden soll,
wird zusätzlich noch die Option PSEUDOFS
benötigt:options PSEUDOFS #Pseudo-filesystem frameworkPSEUDOFS steht unter &os; 4.X nicht
zur Verfügung. Im Gegensatz zu &os; 4.X wird ab
&os; 5.0 das Prozeß-Dateisystem nicht mehr per
Voreinstellung eingehangen.options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]Stellt die Kompatibilität zu 4.3BSD sicher. Belassen Sie
diese Option, da sich manche Programme recht sonderbar verhalten
werden, wenn Sie diese auskommentieren.options COMPAT_FREEBSD4 #Compatible with FreeBSD4Mit &os; 5.X stellt diese Option auf &i386;- und
Alpha-Systemen sicher, dass Anwendungen, die auf älteren &os;
Versionen übersetzt wurden und alte Systemaufrufe verwenden,
noch lauffähig sind. Wir empfehlen, diese Option auf allen
&i386;- und Alpha-Systemen zu verwenden, auf denen vielleicht noch
ältere Anwendungen laufen sollen. Auf Plattformen, die erst ab
&os; 5.0 unterstützt werden (wie ia64 und &sparc;),
wird diese Option nicht benötigt.options SCSI_DELAY=15000 #Delay (in ms) before probing SCSIDies weist den Kernel an, 15 Sekunden zu warten, bevor er
anfängt nach SCSI-Geräten auf dem System zu suchen. Wenn
Sie nur IDE-Geräte besitzen, können Sie die Anweisung
ignorieren. Sie können versuchen, den Wert auf 5 Sekunden
senken, um den Startvorgang zu beschleunigen. Wenn
&os; dann Schwierigkeiten hat, Ihre SCSI-Geräte zu erkennen,
sollten Sie den Wert natürlich wieder erhöhen.options UCONSOLE #Allow users to grab the consoleErlaubt es Benutzern, die Konsolenausgabe umzulenken. Starten
Sie einen xterm mit
xterm -C, um Ausgaben von &man.write.1;,
&man.talk.1; oder Kernelmeldungen auf der Konsole darin zu
sehen.Ab &os; 5.0 wird UCONSOLE nicht mehr
benötigt.options USERCONFIG #boot -c editorDiese Option erlaubt es Ihnen, den Konfigurationseditor aus dem
Bootmenü zu starten.options VISUAL_USERCONFIG #visual boot -c editorDiese Option erlaubt es Ihnen, den Visual-Konfigurationseditor
aus dem Bootmenü zu starten.Ab &os; 5.0 werden Geräte mit
&man.device.hints.5; anstelle des Konfigurationseditors konfiguriert,
dies wird in erklärt.options KTRACE #ktrace(1) supportDies schaltet die Kernel-Prozessverfolgung
(engl. kernel process tracing) ein,
die sehr nützlich bei der Fehlersuche ist.options SYSVSHM #SYSV-style shared memoryDiese Option aktiviert die Unterstützung für System V
Shared-Memory. Die XSHM-Erweiterung von X benötigt diese Option
und viele Graphik-Programme werden die
Erweiterung automatisch benutzen und schneller laufen. Wenn Sie X
benutzen, sollten Sie diese Option auf jeden Fall aktivieren.options SYSVSEM #SYSV-style semaphoresUnterstützung für System V Semaphoren. Dies wird
selten gebraucht, vergrößert aber den Kernel nur um einige
hundert Bytes.options SYSVMSG #SYSV-style message queuesUnterstützung für System V Messages.
Vergrößert den Kernel wiederum nur um einige hundert
Bytes.Programme, die diese System V Erweiterungen benutzen,
können Sie sich mit &man.ipcs.1; anzeigen lassen.options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULINGEchtzeit-Erweiterungen, die 1993 zu &posix;
hinzugefügt wurden. Bestimmte Programme wie
&staroffice; benutzen
diese Erweiterungen.Ab &os; 5.0 werden diese Funktionen von
_KPOSIX_PRIORITY_SCHEDULING alleine zur
Verfügung gestellt. P1003_1B wird nicht
mehr benötigt.KerneloptionICMP_BANDLIMDenial of Service (DoS)options ICMP_BANDLIM #Rate limit bad repliesDiese Option aktiviert die ICMP Bandbreitenbegrenzung für
Antworten. Diese Option sollten Sie aktiviert lassen, da sie Ihre
Maschine vor Denial of Service Angriffen schützt.In der Voreinstellung von &os; 5.X ist diese Funktion
aktiviert. ICMP_BANDLIM muss daher nicht extra
angegeben werden.KerneloptionSMP# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/OBeide Option werden für SMP Unterstützung
benötigt.device isaAlle von &os; unterstützten PCs benötigen diese
Zeile. &os; unterstützt den IBM PS/2 (Microchannel
Architektur) nur eingeschränkt. Weitere Informationen über
die Microchannel Unterstützung entnehmen Sie bitte
/usr/src/sys/i386/conf/LINT.device eisaFügen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard
besitzen. Dies aktiviert die Erkennung und Konfiguration von allen
Geräten auf dem EISA Bus.device pciWenn Sie ein PCI-Motherboard besitzen, fügen Sie diese Zeile
ein. Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA
bridge.device agpFügen Sie diese Zeile ein, wenn Sie eine AGP-Karte
besitzen. Damit werden Motherboards mit AGP und AGP GART
unterstützt.# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1Der Floppy-Controller. fd0 ist das
A: Laufwerk und fd1 ist
das B: Laufwerk.device ataDieser Treiber unterstützt alle ATA und ATAPI Geräte.
Eine device ata Zeile reicht aus und der
Kernel wird auf modernen Maschinen alle PCI ATA/ATAPI Geräte
entdecken.device atadisk # ATA disk drivesFür ATA Plattenlaufwerke brauchen Sie diese Zeile zusammen
mit device ata.
device atapicd # ATAPI CDROM drivesZusammen mit device ata wird dies für
ATAPI CD-ROM Laufwerke benötigt.device atapifd # ATAPI floppy drivesZusammen mit device ata wird dies für
ATAPI Floppy Laufwerke benötigt.device atapist # ATAPI tape drivesZusammen mit device ata wird dies für
ATAPI Bandlaufwerke benötigt.options ATA_STATIC_ID #Static device numberingErzwingt wie der alte Treiber eine statische Gerätenummer
für den Controller. Ist diese Option nicht aktiviert, werden
die Gerätenummern dynamisch zugeordnet.# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15Benutzen Sie die obigen Zeilen für ältere Systeme ohne
einen PCI Bus.# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device dpt # DPT Smartcache - See LINT for options!
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?SCSI Controller. Kommentieren Sie alle Controller aus, die sich
nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen,
können Sie alle Einträge entfernen.# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI
access)SCSI Peripheriegeräte. Kommentieren Sie wieder alle
Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen
können alle Einträge entfernen.# RAID controllers
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 familyUnterstützte RAID Controller. Wenn Sie keinen der
aufgeführten Controller besitzen, kommentieren Sie die
Einträge aus oder entfernen sie.# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBDDer Tastatur-Controller (atkbdc) ist für
die Ein- und Ausgabe von AT-Tastaturen und PS/2 Zeigegeräten (z.B.
einer Maus) verantwortlich. Dieser Controller wird vom
Tastaturtreiber (atkbd) und dem PS/2
Gerätetreiber (psm) benötigt.device atkbd0 at atkbdc? irq 1Zusammen mit dem atkbdc Controller bietet der
atkbd Treiber Zugriff auf AT-Tastaturen.device psm0 at atkbdc? irq 12Benutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2
Anschluss besitzen.device vga0 at isa?Der Grafikkartentreiber.# splash screen/screen saver
-pseudo-device splash
+device splash
Zeigt einen Splash Screen beim Booten. Diese
- Zeile wird auch von den Bildschirmschonern benötigt.
+ Zeile wird auch von den Bildschirmschonern benötigt.
+ Unter &os; 4.X verwenden Sie bitte
+ pseudo-device splash.
# syscons is the default console driver, resembling an SCO console
device sc0 at isa?sc0 ist in der Voreinstellung der Treiber
für die Konsole, die der SCO-Konsole ähnelt. Da die
meisten bildschirmorientierten Programme auf die Konsole mit Hilfe
einer Datenbank wie termcap zugreifen, sollte es
keine Rolle spielen, ob Sie diesen Treiber oder
vt0, den VT220 kompatiblen
Konsolentreiber einsetzen. Wenn Sie Probleme mit
bildschirmorientierten Anwendungen unter dieser Konsole haben, setzen
Sie beim Anmelden die Variable TERM auf den Wert
VT220.# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa?
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-stdDer VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102.
Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum
sc0 Treiber sind, funktioniert dieser Treiber gut.
Beim Anmelden sollten Sie die Variable TERM auf den
Wert vt100 setzen. Dieser Treiber kann sich als
nützlich erweisen, wenn Sie sich über das Netzwerk auf
vielen verschiedenen Maschinen anmelden, da dort oft Einträge in
termcap oder terminfo
für das sc0 Gerät fehlen. Dagegen
sollte vt100 auf jeder Plattform unterstützt
werden.# Power management support (see LINT for more options)
device apm0 at nexus? disable flags 0x20 # Advanced Power ManagementUnterstützung zur Energieverwaltung. Nützlich für
Laptops.# PCCARD (PCMCIA) support
device card
device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disablePCMCIA Unterstützung. Wenn Sie einen Laptop benutzen,
brauchen Sie diese Zeile.# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9Es gibt vier serielle Schnittstellen, die in der &ms-dos;
und &windows; Welt COM1 bis COM4 genannt werden.Wenn Sie ein internes Modem, das COM4 benutzt, besitzen und
eine serielle Schnittstelle haben, die auf COM2 liegt, müssen
Sie den IRQ des Modems auf 2 setzen (wegen undurchsichtigen
technischen Gründen ist IRQ2 =IRQ9). Wenn Sie eine serielle
Multiport-Karte besitzen, sehen Sie die korrekten Werte für
diese Zeilen in &man.sio.4; nach. Einige Graphikkarten, besonders
die auf S3-Chips basierten, benutzen IO-Adressen der Form
0x*2e8 und manche billige serielle Karten
dekodieren den 16-Bit IO-Adressraum nicht sauber. Dies führt
zu Konflikten und blockiert dann die COM4 Schnittstelle.Jeder seriellen Schnittstelle muss ein eigener IRQ zugewiesen
werden (wenn Sie eine Multiport-Karte verwenden, bei der das Teilen
von Interrupts unterstützt wird, muss das nicht der Fall
sein), daher können in der Voreinstellung COM3 und COM4 nicht
benutzt werden.# Parallel port
device ppc0 at isa? irq 7Die parallele Schnittstelle auf dem ISA Bus.device ppbus # Parallel port bus (required)Unterstützung für den Bus auf der parallelen
Schnittstelle.device lpt # PrinterUnterstützung für Drucker über die parallele
Schnittstelle.Sie brauchen jede der drei Zeilen, um die Unterstützung
für einen Drucker an der parallelen Schnittstelle zu
aktivieren.device plip # TCP/IP over parallelDer Treiber für das Netzwerkinterface über die
parallele Schnittstelle.device ppi # Parallel port interface deviceAllgemeine I/O (geek port) und IEEE1284 I/O
Unterstützung.#device vpo # Requires scbus and daZip LaufwerkDies aktiviert den Treiber für ein Iomega Zip Laufwerk.
Zusätzlich benötigen Sie noch die Unterstützung
für scbus und da. Die
beste Performance erzielen Sie, wenn Sie die Schnittstelle im EPP 1.9
Modus betreiben.# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip)
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device tx # SMC 9432TX (83c170 EPIC)
device vx # 3Com 3c590, 3c595 (Vortex)
device wx # Intel Gigabit Ethernet Card (Wiseman)Verschiedene Treiber für PCI-Netzwerkkarten. Geräte,
die sich nicht in Ihrem System befinden, können Sie entfernen oder
auskommentieren.# PCI Ethernet NICs that use the common MII bus controller code.
device miibus # MII bus supportEinige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die
MII-fähige Transceiver verwenden oder Transceiver-Steuerungen
implementieren, die ähnlich wie MII funktionieren,
benötigen die Unterstützung für den MII-Bus. Die
Zeile device miibus fügt dem Kernel die
Unterstützung für das allgemeine miibus API und allen
PHY-Treibern hinzu.device dc # DEC/Intel 21143 and various workalikes
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Treiber, die den MII Bus Controller Code benutzen.# ISA Ethernet NICs.
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
device fe0 at isa? port 0x300
device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device xe0 at isa?Treiber für ISA Ethernet Karten. Schauen Sie in
/usr/src/sys/i386/conf/LINT nach, um zu sehen,
welche Karte von welchem Treiber unterstützt wird.
- pseudo-device ether # Ethernet support
+ device ether # Ethernet supportether brauchen Sie nur, wenn Sie eine
Ethernet-Karte besitzen. Der Treiber unterstützt das
- Ethernet-Protokoll.
+ Ethernet-Protokoll. Unter &os; 4.X verwenden
+ Sie die Zeile pseudo-device ether.
- pseudo-device sl 1 # Kernel SLIP
+ device sl 1 # Kernel SLIPsl aktiviert die SLIP Unterstützung.
SLIP ist fast vollständig von PPP verdrängt worden, da
letzteres leichter zu konfigurieren, besser geeignet für Modem
zu Modem Kommunikation und mächtiger ist. Die
Zahl hinter sl gibt der
Anzahl der gleichzeitigen SLIP-Verbindungen an, die unterstützt
- werden.
+ werden. Unter &os; 4.X verwenden Sie die Zeile
+ pseudo-device sl.
- pseudo-device ppp 1 # Kernel PPP
+ device ppp 1 # Kernel PPPDies ist Kernel Unterstützung für PPP
Wählverbindungen. Es existiert auch eine PPP Version im
Userland, die den tun Treiber benutzt. Die
Userland Version ist flexibler und bietet mehr Option wie die Auswahl
auf Anforderung. Die Zahl hinter
ppp gibt die Anzahl gleichzeitiger PPP
- Verbindungen an, die unterstützt werden.
+ Verbindungen an, die unterstützt werden. Unter
+ &os; 4.X müssen Sie die Zeile
+ pseudo-device ppp verwenden.
- pseudo-device tun # Packet tunnel.
+ device tun # Packet tunnel.Dies wird vom der Userland PPP benutzt. Die
Zahl hinter tun gibt
die Anzahl der unterstützten gleichzeitigen Verbindungen an.
Weitere Informationen erhalten Sie im Abschnitt
PPP
- dieses Handbuchs.
+ dieses Handbuchs. Unter &os; 4.X verwenden Sie
+ die Zeile pseudo-device tun.
-pseudo-device pty # Pseudo-ttys (telnet etc)
+device pty # Pseudo-ttys (telnet etc)
Dies ist ein Pseudo-Terminal oder simulierter
Login-Terminal. Er wird von einkommenden telnet
und rlogin Verbindungen,
xterm und anderen Anwendungen wie
- Emacs benutzt. Eine
- Zahl hinter pty gibt
- die Anzahl der zu erstellenden ptys an. Wenn Sie
+ Emacs benutzt. Unter &os; 4.X
+ müssen Sie die Zeile
+ pseudo-device pty number
+ verwenden. Die Zahl
+ hinter pty gibt die Anzahl der zu
+ erstellenden ptys an. Wenn Sie
mehr Verbindungen als die 16 erlaubten in der Voreinstellung brauchen,
erhöhen Sie diesen Wert bis zu einem Maximum von 256.
- pseudo-device md # Memory disks
-
- Pseudo-Gerät für Speicher-Laufwerke.
-
- pseudo-device gif
+ device md # Memory disks
- oder
+ Pseudo-Gerät für Speicher-Laufwerke.
+ Unter &os; 4.X verwenden Sie die Zeile
+ pseudo-device md.
- pseudo-device gif 4 # IPv6 and IPv4 tunneling
+ device gifDieses Gerät tunnelt IPv6 über IPv4, IPv4 über
- IPv6, IPv4 über IPv4 oder IPv6 über IPv6. Ab &os; 4.4
- kann die Anzahl der benötigten Geräte vom System bestimmt
- werden, so dass Sie die erste Zeile (ohne eine Zahl hinter
- gif) verwenden sollten. Auf früheren
- Systemen ist die Angabe der Anzahl der Geräte verpflichtend.
+ IPv6, IPv4 über IPv4 oder IPv6 über IPv6.
+ Die Anzahl der benötigten Geräte wird automatisch
+ vom System bestimmt. Auf Systemen des 4.X-Zweiges ab
+ &os; 4.4 verwenden Sie die Zeile
+ pseudo-device gif. Vor &os; 4.4
+ müssen Sie die Anzahl der benötigten Geräte
+ angeben, zum Beispiel:
+ pseudo-device gif 4.
- pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
+ device faith # IPv6-to-IPv4 relaying (translation)Dieses Pseudo-Gerät fängt zu ihm gesendete Pakete ab
und leitet Sie zu einem Dæmon weiter, der Verkehr zwischen IPv4
- und IPv6 vermittelt.
+ und IPv6 vermittelt. Unter &os; 4.X verwenden Sie die Zeile
+ pseudo-device faith 1.
- # The `bpf' pseudo-device enables the Berkeley Packet Filter.
+ # The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
-pseudo-device bpf # Berkeley packet filter
+device bpf # Berkeley packet filterDas ist der Berkeley Paketfilter. Dieses Pseudo-Gerät kann
Netzwerkkarten in den promiscuous Modus setzen und
erlaubt es damit, Pakete auf einem Broadcast Netzwerk (z.B. einem
Ethernet) einzufangen. Die Pakete können auf der Festplatte
- gespeichert und mit &man.tcpdump.1; untersucht werden.
+ gespeichert und mit &man.tcpdump.1; untersucht werden.
+ Unter &os; 4.X müssen Sie die Zeile
+ pseudo-device bpf verwenden.
- Das bpf-Pseudo-Gerät wird von
+ Das &man.bpf.4;-Gerät wird von
&man.dhclient.8; genutzt, um die IP-Adresse des Default-Routers
zu bekommen. Wenn Sie DHCP benutzen, lassen Sie diese Option bitte
aktiviert.# USB support
#device uhci # UHCI PCI->USB interface
#device ohci # OHCI PCI->USB interface
#device usb # USB Bus (required)
#device ugen # Generic
#device uhid # Human Interface Devices
#device ukbd # Keyboard
#device ulpt # Printer
#device umass # Disks/Mass storage - Requires scbus and da
#device ums # Mouse
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernetUnterstützung für verschiedene USB Geräte.Mehr Informationen und weitere von &os; unterstützte
Geräte entnehmen Sie bitte
/usr/src/sys/i386/conf/LINT.Hohe Speicheranforderungen (PAE)Physical Address Extensions (PAE)hohe SpeicheranforderungenSysteme mit hohen Speicheranforderungen benötigen
mehr Speicher als den auf 4 Gigabyte beschränkten
User- und Kernel-Adressraum (KVA).
Mit dem &pentium; Pro und neueren CPUs hat
Intel den Adressraum auf 36-Bit erweitert.Die Physical-Address-Extension (PAE)
von &intel;s &pentium; Pro und neueren Prozessoren
unterstützt bis zu 64 Gigabyte Speicher.
&os; kann diesen Speicher mit der Option
in der Kernelkonfiguration nutzen. Die Option gibt es
in &os; 4.X seit 4.9-RELEASE und in &os; 5.X seit
5.1-RELEASE. Wegen Beschräkungen der
Intel-Speicherarchitektur wird keine Unterscheidung
zwischen Speicher oberhalb oder unterhalb von 4 Gigabyte
getroffen. Speicher über 4 Gigabyte wird
einfach dem zur Verfügung stehenden Speicher
zugeschlagen.Sie aktivieren PAE im Kernel, indem
Sie die folgende Zeile in die Kernelkonfigurationsdatei
einfügen:options PAE&os; unterstützt PAE nur
auf IA-32 Prozessoren. Die
PAE-Unterstützung wurde
zudem noch nicht hinreichend getestet und befindet
sich im Vergleich zu anderen Komponenten von &os; noch
im Beta-Stadium.Die PAE-Unterstützung in &os;
ist mit den nachstehenden Einschränkungen verbunden:Ein Prozess kann nicht mehr als 4 Gigabyte
virtuellen Speicher benutzen.KLD-Module können nicht in
einen PAE-Kernel geladen werden,
da sich das Bausystem der Module vom Bausystem des
Kernels unterscheidet.Gerätetreiber, die nicht die
&man.bus.dma.9;-Schnittstelle benutzen, führen
zusammen mit einem PAE-Kernel zu
Datenverlusten. Diese Treiber sollen nicht mit
einem PAE-Kernel verwendet werden.
Daher wird die PAE-Kernelkonfigurationsdatei
von &os; 5.X nur mit Treibern ausgeliefert,
die mit einem PAE-Kernel
funktionieren.Einige Systemvariablen werden abhängig von
der Speichergröße eingestellt. In einem
PAE-System mit viel Speicher
können die Werte daher zu hoch eingestellt sein.
Ein Beispiel ist die sysctl-Variable
, die die maximale
Anzahl von vnodes im Kernel bestimmt. Solche
Variablen sollten auf einen angemessenen Wert
eingestellt werden.Es kann erforderlich sein, den virtuellen Adressraum
des Kernels (KVA) zu vergrößern
oder, wie oben beschrieben, den Wert einer häufig
gebrauchten Kernelvariablen zu verringern. Dies
verhindert einen Überlauf des KVAs.
Der Adressraum des Kernels kann mit der Kerneloption
vergrößert
werden.Hinweise zur Leistungssteigerung und Stabilität
entnehmen Sie bitte der Hilfeseite &man.tuning.7;.
Die PAE-Unterstützung von &os;
wird in der Hilfeseite &man.pae.4; beschrieben.Gerätedateien erstellenGerätedateiMAKEDEVAb &os; 5.0 werden die Gerätedateien automatisch
von &man.devfs.5; erzeugt. Überspringen Sie diesen Abschnitt,
wenn Sie &os; 5.0 oder eine neuere Version benutzen.Zu fast jedem Gerät gehört eine Datei in
/dev, die zwar wie eine reguläre Datei
aussieht, tatsächlich aber eine Schnittstelle zum Kernel ist, die
Programme benutzen, um Zugriff auf das Gerät zu erlangen.
Das Shellskript /dev/MAKEDEV, das auch bei der
Installation des Systems ausgeführt wird, erstellt fast alle
unterstützten Gerätedateien. Es legt aber nicht
alle Gerätedateien an, das heißt, wenn
Sie im Kernel Unterstützung für ein neues Gerät
hinzugefügt haben, sollten Sie überprüfen, ob die
entsprechenden Einträge in dev vorhanden
sind. Wenn nicht, dann legen Sie sie, wie im folgenden Beispiel
einfach an.Angenommen, Sie wollen den Kernel um Unterstützung für
IDE-CD-ROMs erweitern. Dann müssen Sie folgende Zeile in der
Konfigurationsdatei einfügen:device acd0Nun suchen Sie in /dev nach Dateien, die
mit acd0 beginnen, möglicherweise mit
c enden oder ein r vorgestellt
haben (der Eintrag für das rohe Gerät).
Wenn Sie die Einträge nicht finden, wechseln Sie in
/dev und führen dort das folgende Kommando
aus:MAKEDEV&prompt.root; sh MAKEDEV acd0Nun sollten die Einträge acd0c und
racd0c in /dev vorhanden
sein.Das folgende Kommando legt die passenden Einträge für
Soundkarten an:&prompt.root; sh MAKEDEV snd0Wenn Sie Gerätedateien für Geräte wie
Soundkarten erstellen und andere Leute Zugriff auf Ihren Rechner
haben, wollen Sie vielleicht diese Geräte vor Zugriffen von
außen schützen. Sie erreichen dies, in dem Sie das
Gerät in /etc/fbtab aufnehmen. Weitere
Informationen stellt &man.fbtab.5; zur Verfügung.Folgen Sie dieser Prozedur für alle Geräte, die nicht
in GENERIC eingetragen sind.Da alle SCSI Controller die gleichen Einträge in
/dev benutzen, brauchen Sie diese nicht erstellen.
Weiterhin haben Netzwerkkarten sowie SLIP/PPP-Pseudo-Geräte keine
Einträge in /dev.
Wenn etwas schiefgehtEs gibt fünf Hauptfehlerquellen beim Erstellen eines
angepassten Kernels:config verursacht Fehler:Wenn &man.config.8; misslingt, liegen
Fehler in der Kernelkonfigurationsdatei vor. Zum Glück
gibt &man.config.8; die die Zeilennummer der
Fehlerstelle an, so dass Sie diese schnell in
vi finden können. Beispielsweise
könnten Sie folgende Fehlermeldung sehen:config: line 17: syntax errorIm Befehlsmodus von vi können
Sie sofort zur fraglichen Stelle springen, in dem Sie
17G eingeben. Überprüfen Sie
dort durch Vergleichen mit GENERIC,
ob das Schlüsselwort richtig geschrieben ist.make verursacht Fehler:Wenn make misslingt, liegen meistens
ebenfalls Fehler in der Konfigurationsdatei vor, die aber so
speziell sind, dass &man.config.8; sie nicht
findet. Überprüfen Sie wiederum Ihre Konfiguration
und wenn Sie keinen Fehler entdecken können, schicken Sie
eine Mail mit Ihrer Kernelkonfiguration an die Mailingliste
&a.de.questions;. Sie sollten dann schnell Hilfe erhalten.Der neue Kernel lässt sich nicht
installieren:Wenn das Übersetzen des Kernels geklappt hat aber die
Installation nicht, weil make install oder
make installkernel fehlgeschlagen ist,
sollten Sie zuerst überprüfen, ob Ihr System in der
Sicherheitsstufe 1 (engl.
secure level) läuft (siehe
&man.init.8;). Ihr alter Kernel ist durch die
Option
vor Veränderungen geschützt und die
Installationsprozedur versucht, diese Option vom alten Kernel
zu entfernen und auf den neuen Kernel zu setzen. Da in der
Sicherheitsstufe 1 die Option nicht
gesetzt werden kann, muss die Installation des Kernels in der
Sicherheitsstufe 0 oder einer niedrigeren stattfinden.Der Kernel bootet nicht:Wenn der Kernel nicht booten will, ist das noch lange kein
Grund zur Panik. Denn &os; besitzt exzellente Mechanismen zur
Wiederherstellung nach dem Einsatz inkompatibler Kernel.
Den Kernel, mit dem Sie booten wollen, können Sie sich
im &os; Boot Loader aussuchen. In den Loader gelangen Sie,
in dem Sie einfach eine Taste außer
Enter drücken, wenn das System von 10
herunterzählt. Geben Sie dann unload
ein und mit boot kernel.old booten Sie den alten Kernel. Sie können hier
natürlich auch den Dateinamen eines anderen Kernels, der
sauber bootet angeben. Für alle Fälle sollten Sie
immer einen Kernel, der garantiert bootet, bereit
halten.Nun können Sie die Konfiguration noch einmal
überprüfen und den Kernel neu kompilieren. Dazu
ist /var/log/messages sehr nützlich,
da hier sämtliche Kernelmeldungen von jedem erfolgreichen
Bootvorgang gespeichert werden. &man.dmesg.8; gibt Ihnen die
Kernelmeldungen vom letzten Bootvorgang aus.Heben Sie sich immer einen GENERIC
oder einen anderen Kernel, der garantiert bootet, für
den Fall, dass Sie Probleme bei dem Bau des Kernels
bekommen, auf. Der Name dieses Kernels sollte so
gewählt sein, dass er beim nächsten Bau nicht
überschrieben wird. Sie können sich nicht auf
kernel.old verlassen, da dieser Kernel
durch den zuletzt installierten Kernel, der vielleicht schon
kaputt war, ersetzt wird, wenn Sie installieren. Kopieren
Sie einen laufenden Kernel so schnell wie möglich an die
richtige Stelle (/kernel), oder Kommandos
wie &man.ps.1; werden nicht richtig funktionieren. Um einen
anderen Kernel an die richtige Stelle zu schieben,
müssen Sie zuerst die Option
von dem Kernel entfernen, den make installiert
hat:&prompt.root; chflags noschg /kernelWenn Sie den Befehl nicht ausführen können,
befinden Sie sich in einer höheren Sicherheitsstufe als 0.
Setzen Sie in /etc/rc.conf die Variable
kern_securelevel auf -1
und booten Sie danach. Wenn der neue Kernel funktioniert,
können Sie die Variable wieder auf Ihren alten Wert
zurücksetzen.Wenn Sie den neuen Kernel, oder allgemein eine Datei,
mit der Option versehen wollen,
um sie vor Veränderungen zu schützen, führen Sie
folgenden Befehl aus:&prompt.root; chflags schg /kernelAb &os; 5.0 werden die Kernel nicht mehr mit der
Option installiert. Probleme an
dieser Stelle werden also nicht mehr von der fehlenden
Schreibberechtigung verursacht.Der Kernel ist in Ordnung, aber ps geht
nicht mehr:Wenn Sie eine andere Version des Kernels installiert haben
als die, mit der Ihre Systemwerkzeuge gebaut wurden
(beispielsweise einen 4.X Kernel auf einem 3.X System), werden
Programme wie &man.ps.1; und &man.vmstat.8; nicht mehr
funktionieren. Sie müssen nun die
libkvm und die entsprechenden Programme
neu kompilieren. Das ist ein Grund dafür, warum man nie
einen Kernel, der nicht zur Systemversion passt, benutzten
sollte.
diff --git a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
index 10f3120565..b4a2172efe 100644
--- a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -1,1067 +1,1067 @@
Andrey A.ChernovBeigesteuert von Michael C.WuÜberarbeitet von AlexanderLangerÜbersetzt von MartinHeinen
- Lokalisierung – I18N/L10N-Einrichtung und -Benutzung
+ Lokalisierung – I18N/L10N einrichten und benutzenÜbersichtFreeBSD ist ein über die ganze Welt verteiltes Projekt.
Dieses Kapitel behandelt die Internationalisierung und
Lokalisierung von FreeBSD, mit denen nicht englisch sprechende
Benutzer FreeBSD an ihre Bedürfnisse anpassen können.
Die Internationalisierung betrifft sowohl die
System- als auch die Anwendungsebene, daher wird im Laufe des
Texts auf genauere Anwendungsdokumentationen verwiesen.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
wissenwie verschiedene Sprachen und Lokalisierungen in
modernen Betriebssystemen codiert werden,wie Sie die Locale Ihrer Login-Shell setzen,wie Sie die Konsole für nicht-englische Sprachen
konfigurieren,wie Sie das X Window System mit verschiedenen
Sprachen benutzen,wo Sie mehr Informationen über das Erstellen von
I18N-konformen Anwendungen erhalten.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie Sie zusätzliche Anwendungen
installieren ().GrundlagenWas ist I18N/L10N?InternationalisierungLokalisierungEntwickler kürzen das Wort
internationalization
(englisch für Internationalisierung) mit I18N ab,
weil sich zwischen dem ersten und letzten Buchstaben des Worts
18 Buchstaben befinden. L10N benutzt die gleiche
Namensgebung und ist eine Abkürzung des Worts
localization (englisch für
Lokalisierung). Mit I18N/L10N-Methoden, -Protokollen und -Anwendungen
können Benutzer eine Sprache ihrer Wahl verwenden.I18N-Anwendungen werden mit Hilfe von I18N-Bibliotheken
programmiert. Diese erlauben es Entwicklern, eine einfache
Sprachdatei zu schreiben und Menüs und Texte an jede
Sprache anzupassen. Wir möchten Programmierern empfehlen,
für ihre eigenen Anwendungen auf diese Techniken
zurückzugreifen.Wieso soll ich I18N/L10N benutzen?I18N/L10N wird immer dann benutzt, wenn Sie Daten in anderen
Sprachen als Englisch anzeigen, eingeben oder verarbeiten
möchten.Welche Sprachen werden von I18N unterstützt?I18N und L10N sind nichts FreeBSD spezifisches.
Momentan können Sie unter den meisten der verbreitetsten
Sprachen der Welt wählen, unter anderen Chinesisch,
Japanisch, Koreanisch, Französisch, Russisch und
Deutsch.Lokale Anpassungen benutzenIn seiner ganzen Schönheit ist L10N nichts, was auf
FreeBSD alleine beschränkt ist, im Gegenteil, es ist eine
Konvention, an die sich viele Programme für verschiedene
Betriebssysteme halten. Wir möchten Sie anregen, FreeBSD
bei der Unterstützung dieser Konvention zu helfen.LocaleLokale Anpassungen werden durch die Angabe von drei Werten
erreicht: dem Sprachcode, dem Ländercode und der Codierung.
Die Zusammenfassung dieser Werte wird Locale genannt
und sieht wie folgt aus:Sprachcode_Ländercode.CodierungSprach- und LändercodesSprachcodesLändercodesUm FreeBSD (oder ein anderes &unix; System, das I18N unterstützt)
an lokale Gegebenheiten und Sprachen anzupassen, muss der
Benutzer herausfinden, welche Codes für sein Land
und seine Sprache benutzt werden. Ländercodes geben den
Anwendungen dabei vor, welche Variation einer bestimmten Sprache
zu benutzen ist. Eine Variation von Deutsch wäre zum Beispiel
de_CH, das eine lokale Anpassung an das in der Schweiz gesprochene
Deutsch meint. Außerdem benutzen Webbrowser, SMTP/POP Server,
Webserver usw. diese, um Entscheidungen über die Sprache zu
fällen. Im Folgenden sind einige Beispiele für
Sprach- und Ländercodes aufgelistet:Sprachcode/LändercodeBeschreibungen_USEnglisch - USAru_RURussisch für Russlandzh_TWTraditionelles Chinesisch für TaiwanCodierungenCodierungenASCIIEinige Sprachen benutzen Codierungen, die nicht dem 7-Bit
breitem ASCII-Standard entsprechen, wie 8-Bit Codierungen,
Wide- oder Multibyte Zeichen (&man.multibyte.3;
geht darauf näher ein). Ältere Anwendungen erkennen
diese Zeichen nicht und halten sie fälschlicherweise
für Steuerzeichen. Neuere Anwendungen erkennen für
gewöhnlich 8-Bit Zeichen. Es hängt allerdings
von der Implementierung ab, ob man eine Anwendung neu
kompilieren muss, um in den Genuss von lokalen
Zeichensätzen zu kommen, oder ob man es sie nur
nachträglich konfigurieren muss.
Um es möglich zu machen, Wide- oder Multibyte-Zeichen
einzugeben und zu verarbeiten, unterstützt die FreeBSD-Ports-Sammlung
verschiedene Sprachen für diverse Programme. Bitte
konsultieren Sie die I18N-Dokumentation des entsprechenden
FreeBSD-Ports.In den meisten Fällen muss der Benutzer in die
Dokumentation des Programms schauen, um herauszufinden, wie
man es entsprechend für die eigene Sprache und den eigenen
Zeichensatz konfiguriert, oder welche Optionen beim
Übersetzen anzugeben sind.Einige Dinge, die man im Hinterkopf behalten sollte, sind:Sprachbezogene C-char ZeichensätzeMit C-char Zeichensätzen werden Zeichensätze
bezeichnet, die zur Codierung den C-Datentyp
char verwenden.
(siehe &man.multibyte.3;), zum Beispiel ISO-8859-1, ISO-8859-15,
KOI8-R, CP437.Wide- oder Multibyte-Codierungen, zum Beispiel
EUC, Big5.Eine aktuelle Liste der Zeichensätze ist in der IANA Registry.
verfügbar.Ab FreeBSD 4.5 werden X11-kompatible Codierungen
verwendet.I18N-AnwendungenIm FreeBSD-Ports- und Paket-System werden I18N-Anwendungen
mit einem I18N im Namen gekennzeichnet,
damit man sie leicht identifizieren kann. Trotzdem kann es
vorkommen, dass die benötigte Sprache nicht immer
unterstützt wird.Einstellen der LocaleZum Aktivieren der Lokalisierung reicht es, die Umgebungsvariable
LANG in Ihrer Login-Shell auf den Wert der Locale zu
setzen und die Variable zu exportieren. Dies geschieht normalerweise
in Ihrer ~/.login_conf oder der Startdatei
Ihrer Shell (~/.profile,
~/.bashrc, ~/.cshrc).
Wenn LANG gesetzt ist, brauchen die speziellen
Variablen wie LC_CTYPE oder LC_CTIME
in der Regel nicht gesetzt zu werden. Sie sollten sprachbezogene
FreeBSD-Dokumentation zu Rate ziehen, wenn Sie mehr Informationen
wünschen.Setzen Sie die zwei folgenden Umgebungsvariablen in Ihren
Konfigurationsdateien:POSIXLANG für Funktionen der
&posix; &man.setlocale.3; FamilieMIMEMM_CHARSET gibt den den MIME
Zeichensatz von Anwendungen anDamit ist die Locale für die Shell, jede Anwendung und X11
eingestellt.Verfahren zum Einstellen der LocaleLocaleLogin-KlasseEs gibt zwei Wege, die Locale zu setzen, die im Folgenden
beschrieben werden. Die erste und empfohlene Methode ist,
die Umgebungsvariablen in der
Login-Klasse
zu setzen, die zweite ist, sie in den
Startdateien
der Shell zu setzen.Lokalisierung in der Login-KlasseWenn Sie diese Methode verwenden, werden die
Umgebungsvariablen für die Locale und den MIME Zeichensatz
einmal für alle Shells, anstatt einzeln für jede
Shell, gesetzt. Die Lokalisierung kann von einem Benutzer
selbst oder von einem
Administrator mit Superuser-Rechten für alle
eingestellt werden.Einrichten als Benutzer.login_conf im Heimatverzeichnis
eines Benutzers sollte mindestens die folgenden Einträge
enthalten, damit beide Variablen für den Gebrauch der
Latin-1 Codierung gesetzt werden:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:traditionelles ChinesischBIG-5 CodierungDamit traditionelles Chinesisch (BIG-5 Codierung)
verwendet werden kann, sind in .login_conf
die nachstehenden Ergänzungen vorzunehmen. Einige
Programme behandeln die Lokalisierung für Chinesisch,
Japanisch und Koreanisch falsch, daher müssen mehr
Variablen als üblich gesetzt werden:#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
- lang=zh_TW.Big5:\
- lc_all=zh_TW.Big:\
- lc_collate=zh_TW.Big5:\
- lc_ctype=zh_TW.Big5:\
- lc_messages=zh_TW.Big5:\
- lc_monetary=zh_TW.Big5:\
- lc_numeric=zh_TW.Big5:\
- lc_time=zh_TW.Big5:\
- charset=big5:\
- xmodifiers="@im=xcin": #Setting the XIM Input Server
+ :lang=zh_TW.Big5:\
+ :lc_all=zh_TW.Big:\
+ :lc_collate=zh_TW.Big5:\
+ :lc_ctype=zh_TW.Big5:\
+ :lc_messages=zh_TW.Big5:\
+ :lc_monetary=zh_TW.Big5:\
+ :lc_numeric=zh_TW.Big5:\
+ :lc_time=zh_TW.Big5:\
+ :charset=big5:\
+ :xmodifiers="@im=xcin": #Setting the XIM Input Server
Weitere Informationen entnehmen Sie bitte
&man.login.conf.5;.Einrichten als AdministratorStellen Sie sicher, dass in der Login-Klasse der
Benutzer in /etc/login.conf die richtige
Sprache eingestellt ist. Die folgenden Einstellungen
müssen in /etc/login.conf
vorgenommen werden:Sprache:Beschreibung:\
:charset=MIME_Zeichensatz:\
:lang=Locale:\
:tc=default:Die für Latin-1 erforderlichen Einträge
sehen wie folgt aus:german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Ändern der Login-Klasse
mit &man.vipw.8;vipwWenn Sie neue Accounts mit vipw
anlegen, erstellen Sie Einträge in folgender Art:user:password:1111:11:Sprache:0:0:Benutzername:/home/user:/bin/shÄndern der Login-Klasse
mit &man.adduser.8;adduserLogin-KlasseWenn Sie neue Accounts mit adduser
anlegen, stehen Ihnen die folgenden Möglichkeiten zur
Verfügung:Geben Sie in /etc/adduser.conf
mit defaultclass =
Sprache eine Sprache
vor. In diesem Fall müssen Sie für Benutzer
anderer Sprachen eine andere Login-Klasse angeben.Geben Sie die Sprache jedes Mal ein, wenn Sie dazu von
&man.adduser.8; aufgefordert werden:Enter login class: default []: Sie können die Login-Klasse auch auf der
Kommandozeile von &man.adduser.8; übergeben:&prompt.root; adduser -class SpracheÄndern der Login-Klasse
mit &man.pw.8;pwWenn Sie neue Accounts mit &man.pw.8; anlegen, benutzen
Sie die folgende Kommandozeile:&prompt.root; pw useradd Account -L SpracheLokalisierung in den Startdateien der ShellsDa Sie jede Shell unterschiedlich einrichten
müssen, sollten Sie diese Methode nicht verwenden.
Benutzen Sie stattdessen bitte Login-Klassen.MIMELocaleUm die Locale und den MIME Zeichensatz anzugeben, setzen
Sie die unten aufgeführten Variablen in den Startdateien
der Shells (/etc/profile und
/etc/csh.login). In den folgenden
Beispielen verwenden wir die deutsche Sprache.Einstellungen in /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETEinstellungen in /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Alternativ können Sie die Einstellungen in den
Vorgabedateien der Shells vornehmen. Die oben gezeigten
Einstellungen aus /etc/profile tragen Sie
dann in /usr/share/skel/dot.profile und
die Einstellungen aus /etc/csh.login in
/usr/share/skel/dot.login ein.Die Einstellungen für X11 in
$HOME/.xinitrc sind von der verwendeten
Login-Shell abhängig. Mit Bourne Shells
verwenden Sie den folgenden Eintrag:LANG=de_DE.ISO8859-1; export LANGMit C-Shells verwenden Sie den nachstehenden
Eintrag:setenv LANG de_DE.ISO8859-1Einrichten der KonsoleWenn Sie C-char Zeichensätze
verwenden, müssen Sie die richtigen Zeichensätze für die
gewählte Sprache in /etc/rc.conf
angeben:font8x16=Zeichensatz
font8x14=Zeichensatz
font8x8=ZeichensatzDabei ist Zeichensatz der Name der
passenden Datei aus /usr/share/syscons/fonts
ohne die Endung .fnt.sysinstallkeymapscreenmapStellen Sie sicher, dass Sie die richtige Tasten- und
Bildschirmzuordnung (keymap und screenmap) verwenden. Dies
können Sie in sysinstall
einstellen, indem Sie Configure und dann
Console wählen. Sie können
die Zuordnungen aber auch direkt in /etc/rc.conf
angeben:scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"screenmap_name ist der Name einer
Datei aus /usr/share/syscons/scrnmaps ohne die
Endung .scm. Eine Bildschirmzuordnung und der
zugehörige Zeichensatz verbreitert die Zeichenmatrix von
VGA Karten im Pseudographik Modus von 8 Bit auf 9 Bit.
Sie wird benötigt, wenn der Zeichensatz des Bildschirms
8 Bit verwendet.Lesen Sie den nächsten Absatz, wenn Sie in
/etc/rc.conf den
moused Dæmon mit der nachstehenden
Anweisung aktiviert haben:moused_enable="YES"mousedDer Mauszeiger des &man.syscons.4; Treibers belegt in
der Voreinstellung den Bereich von 0xd0 bis 0xd3 des Zeichensatzes.
Wenn dieser Bereich ebenfalls von der eingestellten Sprache
benötigt wird, müssen Sie den Mauszeiger verschieben.
Wenn Sie eine frühere FreeBSD-Version als 5.0 verwenden,
fügen Sie dazu in Ihrer Kernelkonfiguration die folgende Zeile
ein:options SC_MOUSE_CHAR=0x03Ab FreeBSD 4.4 ergänzen Sie
/etc/rc.conf um die folgende Zeile:mousechar_start=3keymap_name ist der Name einer Datei
aus /usr/share/syscons/keymaps ohne die Endung
.kbd. Welche Tastenzuordnung Sie benutzen
müssen, können Sie ohne einen Neustart mit &man.kbdmap.1;
ausprobieren.Mit keychange können die
Funktionstasten so programmiert werden, dass Sie zu dem
ausgesuchten Terminal passen. Die Sequenzen der Funktionstasten
können nicht in Tastenzuordnungen definiert werden.Stellen Sie sicher, dass der richtige Terminaltyp für
die ttyv* Konsolen in
/etc/ttys angegeben ist. Momentan sind die
folgenden Terminaltypen definiert:ZeichensatzTerminaltypISO-8859-1 oder ISO-8859-15cons25l1ISO-8859-2cons25l2ISO-8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (VGA default)cons25US-ASCIIcons25wMit Wide- oder Multibyte-Zeichensätzen müssen Sie den
richtigen Port aus dem Verzeichnis
/usr/ports/Sprache
verwenden. Einige Ports erscheinen als Konsolen werden aber vom
System als serielle vtty's betrachtet. Achten Sie daher darauf,
dass Sie genügend vtty's für X11 und die
Pseudo-seriellen Konsolen definiert haben. Nachstehend finden Sie
eine unvollständige Liste der Ports, die eine andere Sprache
als Englisch auf der Konsole verwenden:SprachePorttraditionelles Chinesisch (BIG-5)chinese/big5conJapanischjapanese/ja-kon2-* oder
japanese/Mule_WnnKoreanischkorean/ko-hanEinrichten von X11Obwohl X11 nicht Teil des FreeBSD-Projekts ist, stellen wir
hier einige Hinweise für FreeBSD-Benutzer zusammen. Weitere
Details entnehmen Sie bitte der &xfree86; Webseite oder der
Dokumentation Ihres X11 Servers.Anwendungsspezifische I18N-Einstellungen (Zeichensätze,
Menüs, usw.) können Sie in ~/.Xresources
vornehmen.ZeichensätzeX11 True Type Font-ServerInstallieren Sie den X11 &truetype; Common Server
(x11-servers/XttXF86srv-common)
und die &truetype; Zeichensätze für die gewählten
Sprachen. Wenn Sie die Locale gesetzt haben, sollten die
Menüs dann in der entsprechenden Sprache erscheinen.Eingabe von nicht-englischen ZeichenX11 Input Method (XIM)Das X11 Input Method (XIM) Protokoll ist ein neuer Standard
für alle X11-Clients. Jede X11-Anwendung sollte als
XIM-Client, der Eingaben von einem XIM-Server entgegen nimmt,
implementiert sein. XIM-Server sind für verschiedene
Sprachen erhältlich.Einrichten eines DruckersDrucker verfügen normalerweise schon über einige
C-char Zeichensätze. Wide- oder
Multibyte-Zeichensätze müssen gesondert eingerichtet werden.
Wir empfehlen Ihnen, dazu apsfilter zu
benutzen. Weiterhin können Sie mit sprachspezifischen Konvertern
Ihre Dokumente auch in &postscript; oder PDF umwandeln.Kernel und DateisystemeDas FreeBSD-Dateisystem (FFS) unterstützt 8-Bit, so
dass es mit C-char Zeichensätzen (siehe &man.multibyte.3;) verwendet werden
kann. Der Zeichensatz wird allerdings nicht im Dateisystem
gespeichert, das heißt es werden nur die 8-Bit Werte
gespeichert und die Codierung wird nicht berücksichtigt.
Offiziell werden Wide- oder Multibyte-Zeichensätze noch nicht
unterstützt, für einige Zeichensätze existieren
Patche, die eine solche Unterstützung aktivieren.
Sie sind allerdings nicht im Quelltext enthalten, da sie nur
schwer pflegbare Übergangslösungen sind. Die Patche
und weitere Informationen erhalten Sie auf den Webseiten der
betreffenden Sprache.DOSUnicodeDas &ms-dos; Dateisystem von FreeBSD kann von &ms-dos;- und
Unicode-Zeichensätzen nach frei wählbaren FreeBSD
Zeichensätzen konvertieren. Weitere Details entnehmen Sie
bitte &man.mount.msdos.8;.I18N-Programme übersetzenViele FreeBSD-Ports besitzen I18N-Unterstützung, einige
davon enthalten -I18N im Namen. Für diese
und viele andere Programme ist keine spezielle Konfiguration
notwendig.MySQLEinige Anwendungen wie MySQL
müssen allerdings speziell für einen Zeichensatz
konfiguriert werden. Normalerweise wird dazu das
Makefile angepasst oder
configure mit einem speziellen Parameter
aufgerufen.Lokalisierung für einzelne SprachenAndrey A.ChernovBeigetragen von Russisch (KOI8-R Codierung)LokalisierungrussischWeitere Informationen über die KOI8-R Codierung erhalten
Sie auf der Webseite KOI8-R References
(Russian Net Character Set).Einrichten der LocaleFügen Sie die folgenden Zeilen in
~/.login_conf ein:me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Weitere Erklärungen finden Sie in Einstellen der Locale.Einrichten der KonsoleVor FreeBSD 5.0 müssen Sie die folgende Zeile
in Ihre Kernelkonfiguration aufnehmen:options SC_MOUSE_CHAR=0x03Ab FreeBSD 4.4 fügen Sie bitte die nachstehende
Zeile in /etc/rc.conf ein:mousechar_start=3Nehmen Sie die folgenden Einstellungen in
/etc/rc.conf: vorkeymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Benutzen Sie cons25r als Terminaltyp
für jeden ttyv* Eintrag in
/etc/ttys.Weitere Beispiele finden Sie in Einrichten der Konsole.Einrichten eines DruckersDruckerDie meisten Drucker mit russischen Zeichen besitzen die
Codetabelle CP866, so dass ein spezielles Programm zur
Übersetzung von KOI8-R nach CP866 benötigt wird. Zu
diesem Zweck ist /usr/libexec/lpr/ru/koi2alt
im Basissystem enthalten. Der Eintrag für einen Drucker mit
russischer Sprachunterstützung in
/etc/printcap sieht wie folgt aus:lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:Näheres erfahren Sie in &man.printcap.5;.&ms-dos; Dateisystem und russische DateinamenRussische Dateinamen auf &ms-dos; Dateisystemen werden mit dem
folgenden Eintrag in /etc/fstab
erkannt:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0Die Option legt die Locale fest.
Die Option legt die Zeichenumwandlung
fest. Stellen Sie sicher, dass /usr
eingehangen ist, bevor Sie die &ms-dos;-Partition einhängen,
da die Tabellen zur Zeichenumwandlung in
/usr/libdata/msdosfs liegen. Weitere
Informationen erhalten Sie in der Hilfeseite
&man.mount.msdos.8;.Einrichten von X11Richten Sie zunächst die
normale Lokalisierung
ein.Die Locale KOI8-R wird von
alten &xfree86;-Versionen (vor
3.3) nicht unterstützt. FreeBSD verwendet
&xfree86; 4.X, daher sollte es
mit neuen FreeBSD-Versionen keine Probleme geben.Wechseln Sie in das Verzeichnis russian/X.language
und setzen Sie das folgende Kommando ab:&prompt.root; make installDer Port installiert die neusten Versionen der KOI8-R
Zeichensätze. &xfree86; 3.3
besitzt zwar schon einige KOI8-R Zeichensätze, allerdings
sind die des Ports besser skaliert.Im "Files" Abschnitt von
/etc/XF86Config fügen Sie die
folgenden Einträge vor allen
anderen FontPath Einträgen
ein:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"Wenn Sie eine hohe Auflösung benutzen, vertauschen
Sie bitte die Einträge für 75 dpi und
100 dpi.Die Unterstützung für eine russische Tastatur
aktivieren Sie im "Keyboard" Abschnitt von
XF86Config.Mit &xfree86; 3.X:XkbLayout "ru"
XkbOptions "grp:caps_toggle"Mit &xfree86; 4.X:Option "XkbLayout" "ru"
Option "XkbOptions" "grp:caps_toggle"Stellen Sie zudem sicher, dass
XkbDisable nicht aktiviert (auskommentiert)
ist.Mit CapsLock können Sie zwischen
dem RUS- und LAT-Modus wechseln. Die alte Funktion von
CapsLock steht nur im LAT-Modus mit der
Tastenkombination
ShiftCapsLock zur Verfügung.Wenn Ihre Tastatur &windows;-Tasten
besitzt und nicht alphanumerische Tasten im RUS-Modus nicht
funktionieren, fügen Sie die folgende Zeile in
XF86Config ein:Mit &xfree86; 3.X:XkbVariant "winkeys"Mit &xfree86; 4.X:Option "XkbVariant" "winkeys"Die russische XKB-Tastatur funktioniert vielleicht
nicht mit alten &xfree86;-Versionen
(vgl. obige Anmerkung).
Vielleicht funktioniert sie auch nicht mit
nicht-lokalisierten Anwendungen. Lokalisierte Anwendungen
sollten mindestens die Funktion
XtSetLanguageProc (NULL, NULL,NULL);
frühzeitig aufrufen. Weitere Informationen über
die Lokalisierung von X11-Anwendungen erhalten Sie auf der
Webseite KOI8-R
for X Window.Traditionell chinesische Lokalisierung für TaiwanLokalisierungtraditionell chinesischDas taiwanesische FreeBSD-Projekt stellt ein Tutorium unter
zur Verfügung, das viele chinesische Anwendungen benutzt.
Der Editor von zh-L10N-tut ist Clive Lin
Clive@CirX.org. Von freebsd.sinica.edu.tw können Sie mit
CVSup auch die folgenden Sammlungen
beziehen:SammlungBeschreibungoutta-port tag=.Chinesische Ports Sammlung (Beta-Test)zh-L10N-tut tag=.Tutorium Lokalisation von FreeBSD mit traditionellem
Chinesisch (BIG-5)zh-doc tag=.Übersetzung der FreeBSD-Dokumentation nach
traditionellem Chinesisch (BIG-5)Chuan-Hsing Shen s874070@mail.yzu.edu.tw hat mit
Hilfe von zh-L10N-tut die Chinese FreeBSD Collection
(CFC) zusammengestellt. Die Pakete und Skripten sind unter
erhältlich.Deutsche Lokalisierung (für alle ISO 8859-1
Sprachen)LokalisierungdeutschVon Slaven Rezic eserte@cs.tu-berlin.de stammt
ein Tutorium, das die Benutzung von Umlauten mit FreeBSD
beschreibt. Das Tutorium ist in Deutsch verfasst und unter
erhältlich.Japanische und koreanische LokalisierungLokalisierungjapanischLokalisierungkoreanischInformationen über die japanische Lokalisierung entnehmen
Sie bitte ,
Informationen über die koreanische Lokalisierung erhalten Sie
unter .Nicht-englische FreeBSD-DokumentationTeile von FreeBSD wurden in andere Sprachen übersetzt.
Folgen Sie bitte den Links auf der FreeBSD-Webseite oder
+ url="http://www.FreeBSD.org">FreeBSD-Webseite oder
schauen Sie in /usr/share/doc nach.
diff --git a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 724d15c43b..e4d29d4cb9 100644
--- a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -1,3727 +1,3722 @@
JimMockRestrukturiert und teilweise aktualisiert von Brian N.HandyBeigetragen von RichMurpheyJohannKoisÜbersetzt von Linux-BinärkompatibilitätÜbersichtLinux-BinärkompatibilitätBinärkompatibilitätLinuxFreeBSD bietet Binärkompatibilität zu verschiedenen
anderen &unix; Betriebssystemen, darunter auch Linux. Nun
könnten Sie sich fragen, warum FreeBSD in der Lage sein
muss, Linux-Binärprogramme auszuführen? Die Antwort
auf diese Frage ist sehr einfach. Viele Unternehmen und Entwickler
programmieren bzw. entwickeln nur für Linux, da es
das Neueste und Beste in der Computerwelt ist.
Für uns FreeBSD-Anwender heißt dies, genau diese Unternehmen
und Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
herauszubringen. Das Problem dabei ist nur, dass die meisten dieser
Firmen trotzdem nicht erkennen, wie viele zusätzliche
Anwender ihre Produkte benutzen würden, wenn es auch
FreeBSD-Versionen gäbe, und daher weiterhin
ausschließlich für Linux entwickeln. Was also kann ein
FreeBSD-Anwender tun? Genau an diesem Punkt kommt die Linux-
Binärkompatibilität ins Spiel.Um es auf den Punkt zu bringen, genau diese Kompatibilität
erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
ohne Code-Änderungen zu verwenden. Dies schließt
solche Anwendungen wie &staroffice;,
Open Office, die Linux-Versionen von
&netscape;,
&adobe; &acrobat;,
RealPlayer 5 und 7,
VMWare, &oracle;,
WordPerfect, Doom,
Quake und viele andere ein. Es wird
sogar berichtet, dass diese Linux-Anwendungen in manchen
Fällen unter FreeBSD eine bessere Leistung als unter
Linux aufweisen.Linux/proc DateisystemAllerdings gibt es nach wie vor einige Linux-spezifische
Betriebssystem-Eigenschaften, die unter FreeBSD nicht
unterstützt werden. Linux-Anwendungen, die in großem
Stil das Linux-/proc-Dateisystem verwenden,
werden unter FreeBSD nicht funktionieren, da sich dieses vom
FreeBSD-/proc-Dateisystem unterscheidet.
Auch &i386;-spezifische Aufrufe dieser Linux-Anwendungen (wie
z.B. die Aktivierung des virtuellen 8086-Modus) funktionieren
unter FreeBSD leider nicht.Nach dem Lesen dieses Kapitels werden Siewissen, wie Sie die Linux-Binärkompatibilität
installieren bzw. aktivieren.Wissen, wie man zusätzliche Linux-Systembibliotheken
unter FreeBSD installiert.Linux-Anwendungen unter FreeBSD installieren können.Wissen, wie die Linux-Binärkompatibilität
unter FreeBSD verwirklicht wurde.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie man Software Dritter installiert
().InstallationKLD (kernel loadable object)Die Linux-Binärkompatibilität ist per Voreinstellung
nicht aktiviert. Der einfachste Weg, dies zu tun, ist das
Linux KLD (Kernel LoaDable object)
zu laden. Dies geschieht durch die Eingabe von
linux an der Eingabeaufforderung.Wollen Sie die Linux-Binärkompatibilität dauerhaft
aktivieren, sollten Sie die folgende Zeile in
/etc/rc.conf einfügen:linux_enable="YES"Der &man.kldstat.8;-Befehl kann benutzt werden, um
festzustellen, ob KLD geladen wurde:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koKerneloptionLINUXWenn Sie das KLD nicht laden können oder wollen, besteht
auch die Möglichkeit, die Linux-Binärkompatibiltät
statisch in den Kernel einzubinden. Dazu fügen Sie Ihrer
- Kernelkonfigurationsdatei den Eintrag options LINUX
+ Kernelkonfigurationsdatei den Eintrag
+ options COMPAT_LINUX
hinzu. Anschließend installieren Sie Ihren neuen Kernel
wie in beschrieben.Linux-Laufzeitbibliotheken installierenLinuxLinux-Laufzeitbibliotheken installierenDies kann auf zwei Arten geschehen, entweder über den
linux_base-Port,
oder durch manuelle Installation der Bibliotheken
.Installation unter Verwendung des linux_base-PortsPorts CollectionDies ist die einfachste Methode, um die Laufzeitbibliotheken
zu installieren. Sie funktioniert genauso wie die
Installation eines beliebigen anderen Ports aus der
Ports-Sammlung.
Dazu machen Sie einfach folgendes:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanSie sollten nun über eine funktionierende
Linux-Binärkompatibilität verfügen. Einige
Programme könnten sich zwar über falsche
Unterversionsnummern der Systembibliotheken beschweren, dies ist
im Allgemeinen aber kein Problem.Unter Umständen gibt es mehrere Versionen des
Ports emulators/linux_base.
Die Ports entsprechen unterschiedlichen Versionen
verschiedener Linux-Distributionen Sie sollten den
Port installieren, der am besten die Anforderungen
der Linux-Anwendung erfüllt.Manuelle Installation der BibliothekenWenn Sie die Ports-Sammlung nicht installiert
haben, können Sie die Bibliotheken auch manuell
installieren. Dazu brauchen Sie die jeweiligen
Linux-Systembibliotheken, die das zu installierende Programm
verwendet sowie den Laufzeit-Linker. Zusätzlich müssen
Sie auf Ihrem FreeBSD-System einen
virtuellen Verzeichnisbaum für die
Linux-Bibliotheken einrichten. Alle unter FreeBSD gestarteten
Linux-Programme suchen zuerst in diesem Verzeichnisbaum
nach Systembibliotheken. Wenn also ein Linuxprogramm beispielsweise
/lib/libc.so lädt, versucht FreeBSD
zuerst, /compat/linux/lib/libc.so laden.
Ist diese Datei nicht vorhanden, wird
/lib/libc.so geladen. Systembibliotheken
sollten daher besser in den virtuellen Verzeichnisbaum
/compat/linux/lib als in den vom
Linux-ld.so vorgeschlagenen installiert
werden.Im Allgemeinen müssen Sie nur zu Beginn nach den
Systembibliotheken suchen, die von Linuxprogrammen
benötigt werden. Nach den ersten Installationen von
Linuxprogrammen auf Ihrem FreeBSD-System verfügen Sie
über eine Sammlung von Linux-Systembibliotheken,
die es Ihnen ermöglichen wird, neue Linuxprogramme
ohne Zusatzarbeit zu installieren.Installation zusätzlicher SystembibliothekenShared-LibrariesWas passiert, wenn Sie den linux_base-Port
installieren, und Ihr Programm beschwert sich trotzdem
über fehlende Systembibliotheken? Woher wissen Sie,
welche Systembibliotheken von Linux-Binärprogrammen
benötigt werden, und wo Sie diese finden? Grundsätzlich
gibt es dafür zwei Möglichkeiten (um dieser
Anleitung zu folgen, müssen Sie unter
FreeBSD als Benutzer root angemeldet
sein):Wenn Sie Zugriff auf ein Linux-System haben, können
Sie dort nachsehen, welche Systembibliotheken eine Anwendung
benötigt, und diese auf Ihr FreeBSD-System kopieren.
Dazu folgendes Beispiel:Nehmen wir an, Sie haben FTP verwendet, um die
Linux-Binärversion von Doom
zu bekommen und haben sie auf Ihrem Linux-System installiert.
Nun können Sie überprüfen, welche
Systembibliotheken das Programm benötigt, indem Sie
ldd linuxdoom eingeben. Das Resultat
sieht dann so aus:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29symbolische LinksSie müssten nun alle Dateien aus der
letzten Spalte kopieren und sie unter
/compat/linux speichern, wobei
die Namen der ersten Spalte als symbolische Links auf
diese Dateien zeigen. Damit haben Sie schließlich
folgende Dateien auf Ihrem FreeBSD-System:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Beachten Sie, dass wenn Sie bereits eine
Linux-Systembibliothek einer zur ersten Spalte
passenden Hauptversionsnummer (laut
ldd-Ausgabe) besitzen, Sie die Datei
aus der zweiten Spalte nicht mehr kopieren müssen,
da die bereits vorhandene Version funktionieren sollte.
Hat die Systembibliothek jedoch eine neuere
Versionsnummer, sollten Sie sie dennoch kopieren.
Sie können die alte Version löschen, solange
Sie einen symbolischen Link auf die neue
Version anlegen. Wenn Sie also folgende Bibliotheken
auf Ihrem System installiert haben:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27und Sie haben eine neue Binärdatei, die
laut ldd
eine neuere Bibliothek benötigt:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Wenn diese sich nur um ein oder zwei Stellen
in der Unterversionsnummer unterscheiden, müssen
Sie /lib/libc.so.4.6.29
nicht auf Ihr System kopieren, da das Programm auch
mit der etwas älteren Version ohne Probleme
funktionieren sollte. Wenn Sie wollen,
können Sie libc.so aber
dennoch ersetzen (das heißt aktualisieren), was dann zu
folgender Ausgabe führt:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Der Mechanismus der symbolischen Links wird
nur für Linux-Binärdateien
benötigt. Der FreeBSD-Laufzeitlinker sucht
sich die passenden Hauptversionsnummern selbst,
das heißt Sie müssen sich nicht darum
kümmern.
Linux ELF-Binärdateien installierenLinuxELF-BinärdateiELF-Binärdateien benötigen manchmal eine zusätzliche
Kennzeichnung. Wenn Sie versuchen, eine nicht
gekennzeichnete ELF-Binärdatei auszuführen,
werden Sie eine Fehlermeldung ähnlich der folgenden
erhalten:&prompt.user; ./my-linux-elf-binary
ELF binary type not known
AbortDamit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
&man.brandelf.1;:&prompt.user; brandelf -t Linux my-linux-elf-binaryGNU WerkzeugeDie GNU Werkzeuge schreiben nun automatisch die
passende Kennzeichnungsinformation in die ELF-Binärdateien,
so dass Sie diesen Schritt in Zukunft nur noch selten benötigen
werden.Namensauflösung konfigurierenWenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
erhalten:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordmüssen sie /compat/linux/etc/host.conf
wie folgt anlegen:order hosts, bind
multi onDiese Reihenfolge legt fest, dass zuerst
/etc/hosts und anschließend DNS
durchsucht werden. Wenn
/compat/linux/etc/host.conf nicht vorhanden
ist, finden Linux-Anwendungen FreeBSD's
/etc/host.conf und
beschweren sich über die inkompatible FreeBSD-Syntax. Wenn Sie
keinen Nameserver (in /etc/resolv.conf)
konfiguriert haben, sollten Sie den Eintrag
bind entfernen.MurrayStokelyFür Mathematica 4.x aktualisiert von BojanBistrovicMit der Unterstützung von &mathematica; installierenLinux-AnwendungenMathematicaDieses Dokument beschreibt die Installation der Linux-Version von
&mathematica; 4.x auf einem
FreeBSD-System.Die Linux-Version von &mathematica;
läuft perfekt unter FreeBSD, allerdings müssen die
von Wolfram verschickten Binärdateien gekennzeichnet werden,
damit FreeBSD weiß, dass es die Linux-ABI verwenden muss,
um sie auszuführen.Die Linux-Version von &mathematica;
oder &mathematica; für Studenten kann
direkt von Wolfram unter
bestellt werden.Linux-Binärdateien kennzeichnenDie Linuxbinärdateien befinden sich im
Unix-Verzeichnis der von Wolfram
vertriebenen &mathematica;-CD-ROM.
Sie müssen diesen Verzeichnisbaum auf Ihre Festplatte kopieren,
damit Sie die Linux-Binärdateien kennzeichnen können,
bevor Sie das Installationsprogramm aufrufen:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstallerAlternativ können Sie mit folgendem Befehl auch die
Standard-ELF-Kennzeichnung für alle ungekennzeichneten
Binärdateien festlegen:&prompt.root; sysctl kern.fallback_elf_brand=3Danach wird FreeBSD annehmen, dass alle ungekennzeichneten
ELF-Binärdateien die Linux-ABI verwenden. Dadurch sollte es Ihnen
nun möglich sein, das Installationsprogramm direkt von der CD-ROM
zu starten.Ihr &mathematica;-Passwort anfordernBevor Sie &mathematica;
ausführen können, müssen Sie von Wolfram
ein zu Ihrer Rechner-ID passendes
Passwort anfordern.EthernetMAC-AdresseNachdem Sie die Linux-Kompatibilitätsbibliotheken
installiert und &mathematica; entpackt
haben, können Sie Ihre
Rechner-ID durch das Ausführen von
mathinfo (im Installationsverzeichnis) ermitteln.
Diese Rechner-ID basiert ausschließlich auf der MAC-Adresse
Ihrer ersten Ethernet-Karte.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412Wenn Sie sich bei Wolfram registrieren (durch E-Mail,
Telefon oder Fax), teilen Sie
Ihre Rechner-ID mit und erhalten dafür
ein aus Zahlengruppen
bestehendes Passwort. Diese Information geben Sie ein, wenn Sie
&mathematica; das erste Mal starten,
genauso wie Sie es auch auf jeder anderen
&mathematica;-Plattform machen
würden.Das &mathematica;-Frontend über ein Netzwerk
ausführen&mathematica; verwendet einige
spezielle Schriftarten, um Zeichen anzuzeigen, die in den
Standardzeichensätzen nicht vorhanden
sind (z.B. Integrale, Summen, griechische Buchstaben). Das
X-Protokoll verlangt allerdings, dass diese Schriftarten
lokal installiert sind.
Das bedeutet, dass Sie diese Schriftarten von der CD-ROM oder
von einem Rechner, auf dem &mathematica;
installiert ist, auf Ihren Rechner kopieren müssen.
Diese Schriftarten befinden sich normalerweise in
/cdrom/Unix/Files/SystemFiles/Fonts
(&mathematica;-CD) oder in
/usr/local/mathematica/SystemFiles/Fonts
(Festplatte). Die aktuellen Schriftarten befinden sich dabei
in den Unterverzeichnissen Type1 und
X. Um diese Schriftarten zu verwenden,
gibt es mehrere Möglichkeiten, die nun beschrieben werden:Die erste Möglichkeit besteht darin, die Schriftarten
in eins der bereits existierenden Schriftartenverzeichnisse unter
/usr/X11R6/lib/X11/fonts zu kopieren.
Dies bedeutet, dass Sie fonts.dir editieren
müssen, indem Sie die Schriftnamen hinzufügen und
die Anzahl der Schriftarten in der ersten Zeile ändern.
Alternativ ist es auch möglich, im Verzeichnis, in das
Sie die Schriftarten kopiert haben, das Kommando
&man.mkfontdir.1; auszuführen.Die zweite Möglichkeit, besteht darin,
die Verzeichnisse nach
/usr/X11R6/lib/X11/fonts zu kopieren:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirNun fügen Sie die neuen Schriftartenverzeichnisse in
Ihren Pfad ein:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashWenn Sie den &xfree86;-Server verwenden, können Sie die
Schriftarten-Verzeichnisse automatisch laden lassen, indem Sie sie
Ihrer XF86Config-Datei hinzufügen.SchriftartenWenn Sie noch kein/usr/X11R6/lib/X11/fonts/Type1-Verzeichnis
haben, können Sie das
MathType1-Verzeichnis im vorherigen
Beispiel in Type1 umbenennen.AaronKaplanBeigetragen von RobertGetschmannMit Unterstützung durch &maple; installierenLinux-AnwendungenMaple&maple; ist ein mit
&mathematica; vergleichbares kommerzielles
Mathematikprogramm. Sie können dieses Programm unter
kaufen und sich
anschließend registrieren, um eine Lizenz zu erhalten. Um
dieses Programm unter FreeBSD zu installieren, gehen Sie wie
folgt vor:Führen Sie das
INSTALL-Shell-Skript
der Softwaredistribution aus. Wählen Sie die
RedHat-Option aus, wenn Sie das
Installationsprogramm danach fragt. Ein typisches
Installationsverzeichnis wäre z.B.
/usr/local/maple.Wenn Sie dies noch nicht gemacht haben, besorgen Sie
sich nun eine &maple;-Lizenz von
Maple Waterloo Software
()
und kopieren Sie diese nach
/usr/local/maple/license/license.dat.Installieren Sie den
FLEXlm-Lizenz-Manager, indem Sie
das INSTALL_LIC-Installations-Shellskript
ausführen, das mit &maple;
ausgeliefert wird. Geben Sie Ihren primären
Rechnernamen für den Lizenz-Server an.Verändern Sie
/usr/local/maple/bin/maple.system.type
wie folgt: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Bitte beachten Sie, dass nach
"FreeBSD"|\ kein anderes
Zeichen eingefügt werden darf.Dieser Patch weist &maple; an,
FreeBSD als eine Art von Linux-System zu erkennen.
Das Shell-Skript bin/maple ruft das
Shell-Skript bin/maple.system.type auf,
welches wiederum uname -a verwendet,
um den Namen des Betriebssystems herauszufinden.
Abhängig vom Betriebssystem weiß das System nun,
welche Binärdateien verwendet werden sollen.Starten Sie den Lizenz-Server.Das folgende, als
/usr/local/etc/rc.d/lmgrd.sh
installierte Shell-Skript ist ein komfortabler Weg,
um lmgrd zu starten: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Versuchen Sie, &maple;
zu starten:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleNun sollte das Programm laufen und alles funktionieren.
Falls ja, vergessen Sie nicht, an Maplesoft zu schreiben
und sie wissen zu lassen, dass Sie gerne eine native
FreeBSD-Version hätten.Häufige FehlerquellenDer
FLEXlm-Lizenzmanager kann schwierig
zu bedienen sein. Zusätzliche Dokumentation
zu diesem Thema finden Sie unter .Es ist bekannt, dass lmgrd
sehr pingelig ist, wenn es um die Lizenzdatei geht. Gibt
es Probleme, führt dies zu einem Speicherauszug
(core dump). Ein
korrekte Lizenzdatei sollte ähnlich der
folgenden aussehen:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXSeriennummer und Schlüssel wurden durch mehrere
X unkenntlich gemacht. chillig ist ein
Rechnername.Veränderungen an der Lizenzdatei sind möglich,
solange Sie die FEATURE-Zeile nicht
verändern (diese ist durch den Lizenzschlüssel
geschützt).DanPellegBeigesteuert von &matlab; installierenLinux-AnwendungenMATLABIm Folgenden wird die Installation der Linux-Anwendung
&matlab; Version 6.5 auf
&os; beschrieben. Mit Ausnahme der
&java.virtual.machine; (siehe
) läuft die Anwendung
auch ganz gut.Die Linux-Version von &matlab;
können Sie direkt bei The MathWorks bestellen.
Vergewissern Sie sich, dass Sie die Lizenz-Datei
oder eine Anleitung zum Erstellen der Lizenz-Datei erhalten
haben. Wenn Sie mit MathWorks in Kontakt stehen, weisen
Sie bitte auf die fehlende &os;-Version der Software hin.Das &matlab;-InstallationsskriptUm &matlab; zu installieren,
gehen Sie wie folgt vor:Hängen Sie die Installations-CD ein und
wechseln Sie zu root, wie im
Installations-Skript gefordert. Starten Sie die
Installation mit dem folgenden Kommando:&prompt.root; /compat/linux/bin/sh /cdrom/installDie Installation erfordert eine graphische
Benutzeroberfläche. Wenn Sie die Fehlermeldung
erhalten, dass das Display nicht geöffnet werden
konnte, führen Sie das folgende Kommando aus:&prompt.root; setenv HOME ~USERFür USER setzen Sie
den Benutzer ein, von dem aus Sie root
geworden sind.Beantworten Sie die Frage nach dem
&matlab;-Root-Verzeichnis mit:
/compat/linux/usr/local/matlab.Den langen Pfad werden Sie noch öfter brauchen.
Die Tipparbeit können Sie sich mit dem folgenden
Befehl erleichtern:&prompt.root; set MATLAB=/compat/linux/usr/local/matlabEditieren Sie die Lizenz-Datei entsprechend der
Anweisung, die Sie beim Erwerb der Lizenz
erhalten haben.Sie können die Datei schon vorher mit Ihrem
Lieblingseditor bearbeiten. Kopieren Sie die Lizenz-Datei
nach $MATLAB/license.dat
bevor das Installationsprogramm Sie auffordert, die
Datei zu editieren.Schließen Sie die Installation ab.Die &matlab;-Installation
ist jetzt abgeschlossen. Die folgenden Schritte passen
&matlab; an &os; an.Den Lizenzmanager startenErstellen Sie symbolische Links zu den Startskripten
des Lizenzmanagers:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWErstellen Sie das Startskript
/usr/local/etc/rc.d/flexlm.sh. Das
folgende Beispiel ist eine geänderte Version des
mitgelieferten Skripts
$MATLAB/etc/rc.lm.glnx86.
Angepasst wurden die Pfade zu den Dateien und der
Start des Lizenzmanagers unter der Linux-Emulation.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Machen Sie Datei ausführbar:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shErsetzen Sie im Skript username
durch einen existierenden Benutzer Ihres Systems
(bitte keinesfalls root).Starten Sie den Lizenzmanager:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startEinrichten der &java;-LaufzeitumgebungErstellen Sie einen symbolischen Link auf eine
unter &os; laufende &java;-Laufzeitumgebung (JRE):&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreEin &matlab;-Startskript erstellenKopieren Sie das folgende Skript nach
/usr/local/bin/matlab:#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Machen Sie das Skript ausführbar:&prompt.root; chmod +x /usr/local/bin/matlabAbhängig von der Version des Ports
emulators/linux_base
kann das Skript auf Fehler laufen. Die Fehler können
Sie vermeiden, indem Sie die Datei
/compat/linux/usr/local/matlab/bin/matlab
editieren. Ändern Sie die nachstehende Zeileif [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(mit Version 13.0.1 in der Zeile 410) in
die folgende um:if test -L $newbase; thenStopp-Skript für &matlab; erstellenDas nachstehende Skript beendet &matlab;
ordnungsgemäß.Erstellen Sie die Datei
$MATLAB/toolbox/local/finish.m mit
dem nachstehenden Inhalt:! $MATLAB/bin/finish.shÜbernehmen Sie die Zeichenkette
$MATLAB unverändert.Im selben Verzeichnis befinden sich die
Dateien finishsav.m und
finishdlg.m. Die Dateien
sichern die Einstellungen der Arbeitsfläche
bevor &matlab; beendet wird. Wenn Sie eine
der beiden Dateien benutzen, fügen Sie
die obige Zeile unmittelbar nach dem
save-Kommando ein.Erstellen Sie die Datei
$MATLAB/bin/finish.sh mit
nachstehendem Inhalt:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Machen Sie die Datei ausführbar:&prompt.root; chmod +x $MATLAB/bin/finish.sh&matlab; benutzenJetzt können Sie &matlab;
mit dem matlab starten.MarcelMoolenaarBeigetragen von &oracle; installierenLinux-AnwendungenOracleÜbersichtDieses Dokument beschreibt die Installation von
&oracle; 8.0.5
und &oracle; 8.0.5.1 Enterprise Edition
für Linux auf einem FreeBSD-Rechner.Installation der Linux-UmgebungStellen Sie sicher, dass Sie sowohl
emulators/linux_base und
devel/linux_devtools
aus der Ports-Collection installiert haben. Wenn Sie mit
diesen Ports Schwierigkeiten haben, müssen Sie
vielleicht ältere Versionen der Linux-Umgebung aus
der Ports-Collection installieren.Wenn Sie den Intelligent-Agent verwenden wollen,
müssen Sie zusätzlich das RedHat Tcl-Paket
installieren: tcl-8.0.3-20.i386.rpm.
Zur Installation von RPM-Paketen wir der Port
archivers/rpm benötigt.
Ist der Port installiert, lassen sich RPM-Pakete
anschließend mit dem nachstehenden Befehl
installieren:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageDie Installation der RPM-Pakete sollte ohne
Fehlermeldung ablaufen.Die &oracle;-Umgebung erzeugenBevor Sie &oracle; installieren
können, müssen Sie eine entsprechende Umgebung erzeugen.
Dieses Dokument beschreibt nur, was Sie
im Speziellen tun müssen, um die
Linux-Version von &oracle; unter FreeBSD
zu installieren, nicht aber, was bereits in der Installationsanleitung
von &oracle; beschrieben wird.Kernel-TuningKernel TuningWie in der Installationsanleitung von
&oracle; beschrieben,
müssen Sie die maximale Shared-Memory Größe
festlegen. Verwenden Sie
SHMMAX nicht unter FreeBSD.
SHMMAX wird lediglich aus
SHMMAXPGS und PGSIZE
berechnet. Definieren Sie stattdessen
SHMMAXPGS. Alle anderen Optionen
können wie in der Anleitung beschrieben verwendet werden.
Zum Beispiel:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Passen Sie diese Optionen entsprechend dem von Ihnen
gewünschten Einsatzzweck von
&oracle; an.Stellen Sie außerdem sicher, dass Sie folgende
Optionen in Ihren Kernel kompilieren:options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication&oracle;-Benutzer anlegenLegen Sie den Account oracle an.
Der Account unterschiedet sich von normalen Accounts
dadurch, dass er eine Linux-Shell zugeordnet bekommen muss.
Fügen Sie /compat/linux/bin/bash in die
Datei /etc/shells ein und setzen Sie die
Shell für den oracle-Account auf
/compat/linux/bin/bash.UmgebungNeben den normalen
&oracle;-Variablen, wie z.B.
ORACLE_HOME und ORACLE_SID
müssen Sie die folgenden Variablen setzen:VariableWertLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binEs ist empfehlenswert, alle Variablen in der Datei
.profile zu setzen. Ein komplettes
Beispiel sieht folgendermaßen aus:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATH&oracle; installierenAuf Grund einer kleinen Unregelmäßigkeit
im Linux-Emulator müssen Sie das Verzeichnis
.oracle unter /var/tmp
erzeugen, bevor Sie das Installationsprogramm starten.
Das Verzeichnis muss entwerder für alle Benutzer
beschreibbar sein oder dem Account oracle
gehören. Sie sollten &oracle; nun
ohne Probleme installieren können. Treten dennoch Probleme
auf, überprüfen Sie zuerst Ihre
&oracle;-Distribution und Ihre
Konfiguration. Nachdem Sie &oracle;
erfolgreich installiert haben, installieren Sie die Patches
wie in den zwei folgenden Abschnitten beschrieben:Ein häufiges Problem ist, dass der
TCP Protokoll-Adapter nicht korrekt installiert wird.
Daraus folgt, dass Sie keine TCP-Listener starten können.
Dieses Problem kann durch folgende Schritte behoben werden:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installVergessen Sie nicht, root.sh
nochmals auszuführen!root.sh patchenWährend der
&oracle;-Installation werden einige
Aktionen, die als root
ausgeführt werden müssen, in ein Shell-Skript
mit dem Namen root.sh gespeichert.
Dieses Skript befindet sich im Verzeichnis
orainst. Verwenden Sie folgenden
Patch für root.sh, damit es
das richtige chown Kommando
verwendet, oder lassen Sie das
Skript alternativ unter einer Linux-Shell ablaufen:*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptWenn Sie &oracle; nicht
von CD-ROM installieren, können
Sie Quelldatei für root.sh
verändern. Sie heißt rthd.sh
und befindet sich im orainst-Verzeichnis
des Quellcodebaums.genclntsh patchenDas Skript genclntsh wird verwendet,
um eine Shared-Library für Clients zu erzeugen.
Diese wird bei der Erzeugung der Demos verwendet. Verwenden
Sie folgenden Patch, um die Definition von PATH
auszukommentieren:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst&oracle; startenWenn Sie den Anweisungen gefolgt sind, sollten Sie nun
in der Lage sein, &oracle; zu starten,
genau so, wie Sie dies auch unter Linux tun würden.HolgerKippBeigetragen von ValentinoVaschettoOriginalversion nach SGML konvertiert durch: &sap.r3; installierenLinux-AnwendungenSAP R/3Installationen von &sap;
unter FreeBSD werden vom &sap; Support-Team
nicht unterstützt – und &sap; bietet Support nur
für zertifizierte Plattformen an! ÜbersichtDieses Dokument beschreibt einen möglichen Weg, um ein
&sap.r3;-System mit
&oracle; Datenbank
für Linux auf einem FreeBSD-Rechner zu installieren,
einschließlich der Installation von FreeBSD und
&oracle;. Zwei verschiedene Konfigurationen
werden beschrieben:&sap.r3; 4.6B (IDES) mit
&oracle; 8.0.5 unter
FreeBSD 4.3-STABLE&sap.r3; 4.6C mit
&oracle; 8.1.7 unter
FreeBSD 4.5-STABLEObwohl dieses Dokument versucht, alle wichtigen Schritte
ausführlich zu beschreiben, besteht nicht die Absicht,
die originalen Installationsanleitungen von
&oracle; und
&sap.r3; zu ersetzen.Benutzen Sie die mit
&sap.r3; Linux Edition
gelieferte Dokumentation für &sap;-
und &oracle;-spezifische Fragen,
sowie die Ressourcen von &oracle; und
&sap;-OSS.Software/ProgrammeFolgende CD-ROMs wurden für die Installation von
&sap; verwendet:&sap.r3; 4.6B, &oracle; 8.0.5BezeichnungNummerBeschreibungKERNEL51009113&sap; Kernel &oracle; / Installation / AIX, Linux,
&solaris;RDBMS51007558&oracle; / RDBMS 8.0.5.X / LinuxEXPORT151010208IDES / DB-Export / Disc 1 of 6EXPORT251010209IDES / DB-Export / Disc 2 of 6EXPORT351010210IDES / DB-Export / Disc 3 of 6EXPORT451010211IDES / DB-Export / Disc 4 of 6EXPORT551010212IDES / DB-Export / Disc 5 of 6EXPORT651010213IDES / DB-Export / Disc 6 of 6Zusätzlich wurde die
&oracle; 8 Server CD-ROM
(Pre-production Version 8.0.5 für Linux, Kernel Version 2.0.33)
verwendet, die allerdings nicht unbedingt nötig ist
und FreeBSD 4.3-STABLE (die Installation wurde kurz
nach dem Erscheinen von 4.3-RELEASE durchgeführt).&sap.r3; 4.6C SR2, &oracle; 8.1.7BezeichnungNummerBeschreibungKERNEL51014004&sap; Kernel &oracle; / &sap; Kernel Version 4.6D / DEC,
LinuxRDBMS51012930&oracle; 8.1.7/ RDBMS / LinuxEXPORT151013953Release 4.6C SR2 / Export / Disc 1 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 2 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 3 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 4 of 4LANG151013954Release 4.6C SR2 / Language / DE, EN, FR /
Disc 1 of 3Abhängig von den zu installierenden Sprachen kann
es sein, dass zusätzliche Sprach-CDs nötig sind.
Da hier nur Deutsch und Englisch verwendet wurden, ist die
erste Sprachen-CD ausreichend. Nebenbei bemerkt sind
die Nummern aller vier Export-CDs identisch. Das heißt alle
drei Sprachen-CDs haben diesselbe Nummer (das unterscheidet
sie von der Nummerierung der 4.6B IDES-Version).
Zum Zeitpunkt der Erstellung dieses Dokuments lief das
System unter FreeBSD 4.5-STABLE (20.03.2002).&sap;-NotesDie folgenden Anmerkungen sollten vor der Installation
von &sap.r3; gelesen werden, da sie
sich während der Installation als nützlich
erwiesen haben.&sap.r3; 4.6B, &oracle; 8.0.5NummerBezeichnung0171356&sap; Software on Linux: Essential Comments0201147INST: 4.6C R/3 Inst. on UNIX - &oracle;0373203Update / Migration &oracle; 8.0.5 --> 8.0.6/8.1.6
LINUX0072984Release of Digital UNIX 4.0B for &oracle;0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed correctly0162266Questions and tips for R3SETUP on
Windows NT/W2K&sap.r3; 4.6C, &oracle; 8.1.7NummerBezeichnung0015023Initializing table TCPDB (RSXP0004) (EBCDIC)0045619R/3 with several languages or typefaces0171356&sap; Software on Linux: Essential Comments0195603RedHat 6.1 Enterprise version: Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX - &oracle;0387078&sap; Software on UNIX: OS Dependencies 4.6C SR2Hardware-AnforderungenDie folgende Ausstattung reicht für die Installation eines
&sap.r3; Systems aus. Für
Produktionszwecke benötigt man natürlich eine
exakte Bestimmung dieser Größen:Komponente4.6B4.6CProzessor2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIHauptspeicher1GB ECC2GB ECCFestplattenplatz50-60GB (IDES)50-60GB (IDES)Für Produktionszwecke sind &xeon; Prozessoren mit
großem Cache, Hochgeschwindigkeitsspeicher (SCSI,
RAID Hardware Controller), USV (unterbrechungsfreie
Stromversorgung) und ECC-RAM empfehlenswert. Der große
Bedarf an Festplattenplatz ergibt sich durch das vorkonfigurierte
IDES System, welches während der Installation
27 GB Datenbankdateien erzeugt. Dieser Speicher ist
auch für neue Produktionssysteme und Anwendungsdaten
ausreichend.&sap.r3; 4.6B, &oracle; 8.0.5Folgende Standard-Hardware wurde verwendet: Ein
Doppelprozessorboard mit zwei 800 MHz &pentium; III
Prozessoren, Adaptec 29160 Ultra160 SCSI Adaptern
(zum Anschluß eines 40/80 GB DLT Bandlaufwerks und eines
CD-ROM-Laufwerks), &mylex; &acceleraid; (2 Kanäle,
Firmware 6.00-1-00 mit 32 MB RAM). An den
&mylex; RAID-Controller wurden 2 (gespiegelte) 17 GB
Festplatten sowie vier 36 GB Festplatten (RAID level 5)
angeschlossen.&sap.r3; 4.6C, &oracle; 8.1.7Für diese Installation wurde ein DELL PowerEdge 2500
verwendet: Ein Doppelprozessorboard mit zwei
1000 MHz &pentium; III Prozessoren
(256 kB Cache), 2 GB PC133 ECC SDRAM, PERC/3 DC PCI
RAID-Controller mit 128 MB, und einem EIDE DVD-ROM Laufwerk.
An den RAID-Controller sind zwei (gespiegelte) 18 GB Festplatten
sowie vier 36 GB Festplatten (RAID level 5) angeschlossen.Installation von FreeBSDAls erstes müssen Sie FreeBSD installieren.
Dazu gibt es mehrere Möglichkeiten: In den Beispielen
wurde FreeBSD 4.3 via FTP, FreeBSD 4.5 hingegen direkt
von CD installiert. Weitere Hinweise zur Installation
von &os; finden Sie in
.Aufteilung der FestplatteUm das Ganze zu vereinfachen, wurde sowohl für die
&sap.r3; 46B- als auch die
&sap.r3; 46C SR2-Installation die
gleiche Platteneinteilung verwendet. Nur die Gerätenamen
änderten sich, da die Installationen auf verschiedenen
Hardwareplattformen durchgeführt wurden.(insbesondere
/dev/da sowie
/dev/amr; wenn also jemand z.B.
ein AMI &megaraid; verwendet, so wird er
/dev/amr0s1a anstelle von
/dev/da0s1a vorfinden):DateisystemGröße (1k-blocks)HDD-Größe (GB)Gemountet nach/dev/da0s1a1.016.3031//dev/da0s1b6Swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapKonfigurieren und initialisieren Sie die zwei
logischen Platten mit der &mylex;- oder PERC/3 RAID Software,
bevor Sie beginnen. Diese kann während der BIOS-Bootphase
gestartet werden.Beachten Sie bitte, dass sich diese Platteneinteilung
etwas von den &sap;-Empfehlungen unterscheidet, da &sap;
vorschlägt, die &oracle;-Unterverzeichnisse
(und einige andere) separat einzuhängen – es
ist jedoch einfacher, diese als reale Unterverzeichnisse
zu erzeugen.make world und ein neuer KernelLaden Sie die neuesten STABLE-Quellen herunter.
Aktualisieren Sie das System und erzeugen Sie einen
neuen Kernel, nachdem Sie die Kernelkonfigurationsdatei
angepasst haben. Zusätzlich sollten Sie
die Kernel Parameter
einfügen, die sowohl von &sap.r3;
als auch von &oracle;
benötigt werden.Installation der Linux-UmgebungDas Linux-Basissystem installierenZuerst muss der Port
linux_base
als root installiert werden:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make packageDie Linux-Entwicklungsumgebung installierenDie Linux-Entwicklungsumgebung wird benötigt, wenn Sie
&oracle; auf Ihrem FreeBSD-System
installieren wollen (siehe ):&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanDie Linux-Entwicklungsumgebung wurde hier jedoch nur für
die &sap.r3; 46B IDES-Installation
verwendet. Sie wird nicht benötigt, wenn die
&oracle;-Datenbank auf dem FreeBSD
System nicht neu gebunden wird. Dies ist dann der Fall,
wenn Sie den &oracle;
Tarball eines Linux-Systems verwenden.Notwendige RPMs installierenRPMsUm das R3SETUP-Programm
zu starten, wird PAM-Unterstützung benötigt.
Während der ersten Installation von
&sap; unter
FreeBSD 4.3-STABLE wurde versucht, zuerst alle von PAM
benötigten Pakete zu installieren. Anschließend
wurde die Installation von PAM erzwungen, was auch ohne
Probleme funktionierte. Für die folgende Installation
von &sap.r3; 4.6C SR2
wurde die Installation von PAM ohne die abhängigen
Pakete direkt erzwungen und es funktionierte ebenfalls.
Es sieht so aus, als würden die abhängigen Pakete
nicht benötigt.&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmUm den Intelligent-Agent von
&oracle; 8.0.5 auszuführen,
musste das RedHat Tcl-Paket
tcl-8.0.5-30.i386.rpm installiert werden,
da sonst das Binden (link)
während der &oracle;-Installation
nicht funktionierte. Es gibt noch weitere Punkte beim
Binden von &oracle;, die aber die Kombination
&oracle;-Linux
betreffen und nicht FreeBSD spezifisch sind.Zusätzliche HinweiseEine gute Idee ist es, linprocfs
in /etc/fstab einzufügen;
weitere Informationen dazu erhalten Sie in der Hilfeseite
&man.linprocfs.5;. Weiterhin sollten Sie in
der Datei /etc/sysctl.conf
die Zeile kern.fallback_elf_brand=3
einfügen.Die &sap.r3;-Umgebung erzeugenDie nötigen Dateisysteme erzeugenFür eine einfache Installation reicht es aus,
folgende Dateisysteme zu erzeugen:DateisystemeGröße in GB/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBAußerdem müssen einige Links angelegt werden.
Ansonsten beschwert sich der
&sap;-Installer, wenn er die
erzeugten Links überprüft:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapEine Fehlermeldung während der Installation (hier unter dem
PRD-System und
&sap.r3; 4.6C SR2 könnte
beispielsweise so aussehen:INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Benutzer und Verzeichnisse anlegen&sap.r3; benötigt zwei
Benutzer und drei Benutzergruppen. Die Benutzernamen
hängen von der (aus drei Buchstaben bestehenden)
SAP-System-ID (SID) ab. Einige
dieser SIDs sind von &sap;
reserviert (z.B. SAP und
NIX. Für eine komplette
Übersicht schlagen Sie bitte in der
&sap;-Dokumentation
nach. Für die IDES-Installation wurde IDS
verwendet, für die 4.6C-SR2-Installation
PRD, da das System für
Produktionszwecke eingesetzt werden sollte. Daraus ergaben
sich folgende Gruppen (die Gruppen-IDs können variieren,
es handelt sich nur um Werte, die für diese spezielle
Installation verwendet wurden):Gruppen-IDGruppen-NameBeschreibung100dbaDatenbank-Administrator101sapsysSAP System102operDatenbank-OperatorBei einer
Standard-&oracle;-Installation
wird nur die Gruppe dba verwendet.
Für die Gruppe oper wird
ebenfalls die Gruppe dba verwendet
(weitere Informationen finden sich in der
&oracle;- und
&sap;-Dokumentation).Zusätzlich werden auch folgende Benutzer
benötigt:Benutzer-IDBenutzernameGenerischer NameGruppeZusätzliche GruppenBeschreibung1000idsadm/prdadmsidadmsapsysoperSAP Administrator1002oraids/oraprdorasiddbaoper&oracle; AdministratorFür das Anlegen des &sap;-Administrators mittels
&man.adduser.8; werden folgende Einträge
(beachten Sie bitte die Shell und das Heimatverzeichnis)
benötigt:Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)und für den Datenbank-Administrator:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Wenn Sie beide Gruppen (dba und
oper) verwenden, sollte auch die Gruppe
oper hinzugefügt werden.Verzeichnisse erzeugenDiese Verzeichnisse werden gewöhnlich als eigene
Dateisysteme erzeugt und gemountet. Letztlich liegt dies
aber an Ihren Anforderungen an das System. Hier wurden
sie als einfache Verzeichnisse angelegt, die sich alle im
gleichen RAID5 befinden:Zuerst werden die Eigentümer und Rechte für
einige Verzeichnisse (als Benutzer root)
gesetzt:&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapDanach werden (als Benutzer
orasid) einige
Verzeichnisse erzeugt, die alle Unterverzeichnisse von
/oracle/SID sind:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitFür die &oracle; 8.1.7-Installation
werden ebenfalls zusätzliche Verzeichnisse benötigt:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Das Verzeichnis client/80x_32
muss genau so genannt werden. Versuchen Sie nicht,
das x durch eine Zahl oder
einen Buchstaben zu ersetzen.Im dritten Schritt werden wiederum Verzeichnisse (als Benutzer
sidadm) erzeugt:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitEinträge in /etc/services&sap.r3; benötigt
einige Einträge in /etc/services,
die während der Installation unter FreeBSD nicht
richtig gesetzt werden. Sie benötigen mindestens
die zur Instanzennummer, in diesem Fall 00,
passenden Einträge. Es ist auch möglich,
direkt alle Einträge für
dp, gw,
sp und ms
von 00 bis 99
einzufügen. Wenn Sie einen
SAP-Router verwenden, oder
den Zugang zu &sap;-OSS benötigen,
müssen Sie auch 99 einfügen,
da der Port 3299 normalerweise für den
SAP-Router-Prozess auf
dem Zielsystem benötigt wird:
-
-sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
+ sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberNotwendige LokalisierungenLocale&sap; benötigt
mindestens zwei Lokalisierungen, die nicht Teil der
RedHat-Standardinstallation sind. &sap; bietet
diese als RPMs auf ihrem FTP-Server als Downloads
an (diese sind aber nur dann zugänglich, wenn Sie
ein Kunde mit OSS-Zugang sind). Für eine
Übersicht der notwendigen RPMs lesen Sie bitte den
&sap;-Hinweis 0171356.Es ist auch möglich, nur die passenden Links
(z.B. von de_DE und en_US)
zu erzeugen, diese Vorgehensweise wird aber nicht nicht
empfohlen (obwohl es bisher beim IDES-System ohne Probleme
funktioniert hat). Folgende Lokalisationen werden
benötigt:
-
-de_DE.ISO-8859-1
-en_US.ISO-8859-1
-
+ de_DE.ISO-8859-1
+en_US.ISO-8859-1Erzeugen Sie die Links wie folgt:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Sind diese nicht vorhanden, wird es während
der Installation zu einigen Problemen kommen. Wenn diese
konsequent ignoriert werden (indem der fehlgeschlagene
Schritt in CENTRDB.R3S auf
OK gesetzt wird), ist es ohne
größeren Aufwand nicht mehr möglich, sich am
&sap;-System anzumelden.Kernel-TuningKernel Tuning&sap.r3;-Systeme verbrauchen
sehr viele Ressourcen. Deshalb wurden folgende Parameter
in die Kernelkonfigurationsdatei eingefügt:# Set these for memory pigs (SAP and Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# System V options needed.
options SYSVSHM #SYSV-style shared memory
options SHMMAXPGS=262144 #max amount of shared mem. pages
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #max number of shared memory ident if.
options SHMSEG=100 #max shared mem.segs per process
options SYSVMSG #SYSV-style message queues
options MSGSEG=32767 #max num. of mes.segments in system
options MSGSSZ=32 #size of msg-seg. MUST be power of 2
options MSGMNB=65535 #max char. per message queue
options MSGTQL=2046 #max amount of msgs in system
options SYSVSEM #SYSV-style semaphores
options SEMMNU=256 #number of semaphore UNDO structures
options SEMMNS=1024 #number of semaphores in system
options SEMMNI=520 #number of semaphore indentifiers
options SEMUME=100 #number of UNDO keysDie minimalen Werte sind in der von &sap; kommenden
Dokumentation festgelegt. Da es keine Beschreibung für
Linux (und daher auch nicht für FreeBSD) gibt,
entnehmen Sie weitere Informationen dem HP-UX-Abschnitt (32-Bit).
Da das System für die 4.6C SR2-Installation über
mehr Hauptspeicher verfügte, können die
Shared-Segments für &sap; und
&oracle; größer sein.
Wählen Sie daher eine größere Anzahl von
Shared-Memory-Pages.Bei einer Standard-Installation von
FreeBSD 4.5 auf &i386;-Systemen belassen Sie
MAXDSIZ und DFLDSIZ
auf dem Maximum von 1 GB. Ansonsten könnten
seltsame Fehlermeldungen, wie
ORA-27102: out of memory oder
Linux Error: 12: Cannot allocate memory
auftreten.&sap.r3; installierenDie &sap; CD-ROMs vorbereitenFür eine Installation werden viele CD-ROMs benötigt,
die gemountet und ungemountet werden müssen. Wenn
Sie genügend CD-ROM-Laufwerke haben, können Sie
alle gleichzeitig gemountet werden. Ansonsten kopiert man die
CD-ROM-Inhalte einfach in die entsprechenden Verzeichnisse,/oracle/SID/sapreorg/cd-namewobei cd-nameKERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 und
EXPORT6 bei einer 4.6B/IDES-Installation und
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 und
LANG bei einer 4.6C SR2-Installation
entspricht. Die Dateinamen auf den gemounteten CDs sollten
aus Großbuchstaben bestehen. Ist dies nicht der Fall,
verwenden Sie zum Mounten die Option . Für das
Kopieren der CD-Inhalte verwenden Sie folgenden Befehle:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-name
&prompt.root; umount /mntDas Installations-Skript ausführenAls erstes müssen Sie ein Installationsverzeichnis
anlegen:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installAnschließend wird das Installations-Skript gestartet,
das nahezu alle relevanten Daten in das Installationsverzeichnis
kopiert:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHDie IDES-Installation (4.6B) wird mit einem vollständig
angepassten &sap.r3; Demo-System geliefert, das heißt
es gibt sechs statt drei Export-CDs. Da
CENTRDB.R3S
für eine Standard-Zentralinstanz
(&r3; plus Datenbank)
ausgelegt ist, aber nicht für eine IDES-Zentralinstanz,
muss die passende CENTRDB.R3S-Datei
manuell aus dem Verzeichnis
EXPORT1 in das
Installationsverzeichnis kopiert werden, da
R3SETUP ansonsten nur nach drei
EXPORT-CDs verlangt.Die aktuellere Version &sap; 4.6C SR2
wird mit vier EXPORT-CDs geliefert. Die die Installation
überwachende Parameter-Datei heißt hier
CENTRAL.R3S. Im Gegensatz zu früheren
Versionen gibt es nun keine separaten Vorlagen für
die Installation von Zentralinstanzen mit und ohne Datenbank mehr.
&sap; verwendet eine
eigene Vorlage für die
Datenbankinstallation. Um die Installation später
erneut starten, ist es jedoch ausreichend,
die Installation mit der ursprünglichen Datei zu starten.Während und nach der Installation benötigt
&sap;hostname,
um den Rechnernamen, aber nicht den vollständigen
Domain-Namen zu erhalten. Setzen Sie also entweder den
Rechnernamen entsprechend, oder setzen Sie einen Alias mit
alias hostname='hostname -s'
für die Benutzer
orasid und
sidadm
(Und zusätzlich für root.
Dies zumindest für die Installationsschritte, die als
root ausgeführt werden müssen.).
Außerdem ist es möglich, nur die während
der &sap;-Installation erstellten
Dateien .profile und
.login beider Benutzer anzupassen.R3SETUP 4.6B startenStellen Sie sicher, dass LD_LIBRARY_PATH korrekt
gesetzt wurde:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libGehen Sie in das Installationsverzeichnis und starten Sie
R3SETUP als root:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben stehen dabei in Klammern, gefolgt von den
aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5,
(2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterWenn Sie die CD-Inhalte nicht in verschiedene
Verzeichnisse kopiert haben, findet das
&sap;-Installationsprogramm
die benötigten CDs nicht (diese sind durch die Datei
LABEL.ASC gekennzeichnet) und
würde von Ihnen verlangen, entweder die CD einzulegen
und zu mounten oder den entsprechenden mount-Pfad
einzugeben.CENTRDB.R3S ist möglicherweise
nicht fehlerfrei. Im vorliegenden Fall wurde die CD EXPORT4
zwar erneut verlangt, dennoch wurde der richtige Schlüssel
(6_LOCATION, danach 7_LOCATION) vorgeschlagen.
Daher ist es problemlos möglich, durch Eingabe der
korrekten Werte fortzufahren.Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
&oracle;-Datenbank alles ohne Probleme
ablaufen.R3SETUP 4.6C SR2 startenStellen Sie sicher, dass LD_LIBRARY_PATH
korrekt gesetzt ist. Dieser Wert unterscheidet sich von dem der
4.6B-&oracle; 8.0.5-Installation:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libGehen Sie in das Installationsverzeichnis und führen
Sie R3SETUP als
root aus:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben in Klammern, gefolgt von den aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterBisher verursacht das Anlegen von Benutzern eine
Fehlermeldung während der Installation, und zwar
in den Stadien OSUSERDBSID_IND_ORA (beim Anlegen
des Benutzers orasid),
sowie in OSUSERSIDADM_IND_ORA (beim Anlegen des Benutzers
sidadm).Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
&oracle;-Datenbank alles ohne
Probleme ablaufen.&oracle; 8.0.5 installierenLesen Sie bitte die entsprechenden
&sap;-Hinweise und
&oracle;-Readmes für Probleme,
die Linux
und die &oracle;-Datenbank betreffen.
Die meisten (wenn nicht alle) Probleme
werden durch inkompatible Bibliotheken verursacht.Weiteres zur
&oracle;-Installation
finden Sie im Kapitel Installation
von &oracle;.&oracle; 8.0.5 mit orainst installierenWenn &oracle; 8.0.5 verwendet
wird, werden einige zusätzliche Bibliotheken benötigt,
da &oracle; 8.0.5 mit einer
alten Version von glibc verlinkt wurde, RedHat 6.1 aber
bereits eine aktuellere Version verwendet. Daher müssen
Sie folgende zusätzliche Pakte installieren, um sicherzustellen,
dass die Verlinkung ordnungsgemäß erfolgt:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmLesen Sie bitte die entsprechenden &sap;-Hinweise
und die &oracle;-Readmes.
Ist dies nicht möglich (z.B. aus Zeitmangel, oder bei
Nichtvorhandensein dieser Unterlagen), besteht auch die
Möglichkeit, die originalen Binärdateien oder die
verlinkten Binärdateien eines RedHat-Systems zu
verwenden.Um den Intelligent-Agent zu kompilieren, muss
das RedHat Tcl-Paket installiert sein. Wenn Sie
tcl-8.0.3-20.i386.rpm nicht bekommen
können, sollte es auch problemlos möglich sein,
eine neuere Version, z.B.
tcl-8.0.5-30.i386.rpm für
RedHat 6.1, zu verwenden.Vom Binden abgesehen, läuft die Installation
wie folgt ab:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd /ORACLE_HOME/orainst_sap
&prompt.root; ./orainstBestätigen Sie alle Meldungen mit Enter,
bis die Software installiert ist. Einzige Ausnahme ist die
Frage nach der Installation des &oracle; On-Line
Text Viewers. Dieser ist unter Linux (noch)
nicht verfügbar. Daher muss diese Option deaktiviert werden.
Anschließend will sich &oracle;
unter Verwendung von i386-glibc20-linux-gcc
anstelle der verfügbaren gcc,
egcs oder
i386-redhat-linux-gcc verlinken.Auf Grund zeitlicher Einschränkungen wurden
für die Installation die Binärdateien der
&oracle; 8.0.5 PreProduction-Version
verwendet, nachdem sich der erste Versuch, die Version
von der RDBMS-CD zum Laufen zu bringen, sowie die
richtigen RPMs zu finden und zu installieren,
zum Alptraum entwickelt hatte.&oracle; 8.0.5 Pre-Production für
Linux (Kernel 2.0.33) installierenDiese Installation ist relativ einfach. Mounten Sie die
CD und starten Sie den Installer. Danach wählen Sie
das &oracle;-Heimatverzeichnis und kopieren Sie die
Binärdateien dorthin. Die Überreste der
vorherigen RDBMS-Installationsversuche werden dabei nicht
entfernt.Danach konnte die
&oracle;-Datenbank
ohne Probleme gestartet werden.Das &oracle; 8.1.7-Linux-Archiv entpackenNehmen Sie das aus dem Installationsverzeichnis eines
Linux-Systems erstellte Archiv oracle81732.tgz
und entpacken Sie es nach
/oracle/SID/817_32/.Mit der &sap.r3;-Installation fortfahren
- Überprüfen Sie als erstes die
+ Überprüfen Sie als Erstes die
Umgebungseinstellungen der Benutzer
idsamd(sidadm) und
oraids (orasid).
Beide sollten nun die Dateien .profile,
.login und .cshrc
enthalten, die alle hostname benutzen.
Falls der Rechnername Ihres Systems der vollständige Rechnername
ist, müssen Sie in allen drei Dateien
hostname in hostname -s
ändern.Datenbanken ladenDanach kann R3SETUP entweder erneut
gestartet oder fortgesetzt werden (je nachdem, ob Sie das
Programm zuvor beendet hatten oder nicht).
R3SETUP erzeugt nun die Tablespaces und
lädt die Daten (für 46B IDES von EXPORT1 bis
EXPORT6, für 46C von DISK1 bis DISK4) mittels
R3load in die Datenbank.Wenn das Laden der Datenbank abgeschlossen ist
(dieser Vorgang kann einige Stunden dauern!), werden
einige Passwörter angefordert. Für
Testinstallationen können auch
Standard-Passwörter verwendet werden. Liegt
Ihnen allerdings etwas an der Sicherheit Ihres Systems,
so verwenden Sie andere Passwörter.FrageEingabeEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterAn diesem Punkt gab es während der 4.6B-Installation
einige Probleme mit dipgntab.ListenerStarten Sie den &oracle;-Listener als Benutzer
orasid
wie folgt:&prompt.user; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung
ORA-12546 erhalten,
da die Sockets nicht über die korrekten Berechtigungen
verfügen werden. Lesen Sie dazu auch den
&sap;-Hinweis 072984.MNLS-Tabellen aktualisierenWenn Sie Nicht-Latin-1-Sprachen in das
&sap;-System
einbauen wollen, müssen Sie die MNLS
(Multi National Language Support)-Tabellen aktualisieren.
Dies wird in den SAP-OSS-Hinweisen 15023 und 45619 beschrieben.
Ansonsten können Sie diese Frage während der
&sap;-Installation
überspringen.Wenn Sie MNLS nicht benötigen, ist es
trotzdem nötig, die Tabelle TCPDB zu überprüfen
und zu initialisieren, falls dies nicht bereits geschehen ist.
Lesen Sie die &sap;-Hinweise 0015023 und 0045619, falls Sie
weitere Informationen benötigen.Abschließende Aufgaben&sap.r3;-Lizenzschlüssel anfordernSie müssen Ihren
&sap.r3;-Lizenzschlüssel anfordern,
da die zur Installation verwendete Lizenz nur für
vier Wochen gültig ist. Dazu ermitteln Sie zuerst Ihren
Hardwareschlüssel. Melden Sie sich als
idsadm an und rufen
Sie saplicense auf:&prompt.root; /sapmnt/IDS/exe/saplicense -getWird saplicense ohne Optionen aufgerufen,
so erhalten Sie eine Übersicht der möglichen Optionen.
Nach Erhalt des Lizenzschlüssels kann dieser
installiert werden:&prompt.root; /sapmnt/IDS/exe/saplicense -installNun müssen Sie folgende Daten eingeben:
-
-SAP SYSTEM ID = SID, 3 Zeichen
+ SAP SYSTEM ID = SID, 3 Zeichen
CUSTOMER KEY = Hardware-Schlüssel, 11 Zeichen
INSTALLATION NO = Installation, 10 Ziffern
EXPIRATION DATE = JJJJMMTT, normalerweise "99991231"
-LICENSE KEY = Lizenzschlüssel, 24 Zeichen
-
+LICENSE KEY = Lizenzschlüssel, 24 ZeichenBenutzer anlegenErzeugen Sie einen Benutzer innerhalb von client 000
(für einige Aufgaben muss dies innerhalb von
client 000 erfolgen, aber nicht als Benutzer
sap* und ddic).
Als Benutzername empfiehlt sich beispielsweise
wartung (oder auf Englisch
service). Benötigte
Profile sind sap_new und
sap_all. Aus Sicherheitsgründen
sollten die Passwörter der Standardbenutzer in allen
Clients geändert werden (dies gilt auch für die Benutzer
sap* und ddic).Transportsystem, Profile, Betriebsarten usw.
konfigurierenInnerhalb von client 000 führen andere Benutzer als
ddic und sap*
normalerweise folgende Aufgaben durch:AufgabeTransaktionKonfiguration des Transportsystems, beispielsweise als
Stand-Alone Transport Domain EntitySTMSErstellen und Editieren von ProfilenRZ10Pflege von Betriebsarten und InstanzenRZ04Diese sowie alle anderen Post-Installationsschritte
sind ausführlich in den &sap;-Installationsanleitungen
beschrieben.initsid.sap (initIDS.sap) anpassenDie Datei /oracle/IDS/dbs/initIDS.sap
enthält das &sap;-Sicherungsprofil. Hier sind die
Größe des verwendeten Band(laufwerks),
die Kompressionsart und so weiter festgelegt. Um dieses
Profil mit sapdba oder brbackup
auszuführen, wurden folgende Werte geändert:
-
-compress = hardware
+ compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Erklärungen:compress: Das verwendete Bandlaufwerk
war ein HP DLT1. Dieses unterstützt Hardware-Kompression.archive_function: Hier wird das
Standardverhalten beim Sichern von &oracle;-Archivprotokollen
festgelegt. Neue Protokolldateien werden auf Band
gespeichert, bereits gespeicherte erneut gespeichert und
anschließend gelöscht. Dies verhindert eine Vielzahl
von Problemen, falls Sie Ihre Datenbank wiederherstellen
müssen und dabei feststellen, dass eins Ihrer
Archivbänder defekt ist.cpio_flags: Standardmäßig
wird verwendet. Dies setzt die Blockgröße
auf 5120 Bytes. Für DLT-Bänder
werden von HP mindestens 32 K Blockgröße
empfohlen, daher wurde hier
verwendet, um 64 KB-blöcke zu erzeugen.
wurde benötigt, da das
Installationssystem über mehr als 65535 Inodes
verfügt. Die letzte Option ist notwendig, weil
brbackup sich sonst beschwert, wenn
die cpio die Anzahl der gespeicherten
Blöcke ausgibt.cpio_in_flags: Flags, die zum Laden
der Daten vom Band benötigt werden. Das Format wird
dabei automatisch erkannt.tape_size: Damit wird die maximale
Speicherkapazität des Bandes angegeben. Aus
Sicherheitsgründen (das Bandlaufwerk unterstützt
Hardware-Kompression) ist dieser Wert geringfügig kleiner
als der aktuelle Wert.tape_address: Nicht zurückspulendes
Gerät für cpio.tape_address_rew: Zurückspulendes
Gerät für cpio.Konfiguration nach InstallationsendeDie folgenden &sap;-Parameter sollten nach der
Installation optimiert werden (die Beispiele gelten
für IDES 46B, 1 GB Hauptspeicher):NameWertztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap;-Hinweis 0013026:NameWertztta/dynpro_area2500000&sap;-Hinweis 0157246:NameWertrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Mit obigen Parametern und einem System mit 1 Gigabyte
Hauptspeicher, könnte der Speicherverbrauch in etwa
so aussehen:Mem: 547M Active, 305M Inactive, 109M Wired, 40M Cache, 112M Buf, 3492K FreeWährend der Installation auftretende ProblemeNeustarten von R3SETUP nach Behebung eines ProblemsR3SETUP bricht ab, wenn ein Fehler auftritt. Wenn Sie
(nach Durchsicht der jeweiligen Protokolldateien) den Fehler
behoben haben, müssen Sie R3SETUP erneut aufrufen,
indem Sie für den fehlerhaften Schritt als Option
REPEAT eingeben.Um R3SETUP erneut zu starten, rufen Sie die Datei
einfach mit der entsprechenden R3S-Datei
auf:&prompt.root; ./R3SETUP -f CENTRDB.R3Sfür 4.6B, oder mit&prompt.root; ./R3SETUP -f CENTRAL.R3Sfür 4.6C, unabhängig davon, ob der Fehler mit
CENTRAL.R3S oder mit
DATABASE.R3S auftrat.Zu bestimmten Zeitpunkten nimmt R3SETUP an, dass
sowohl der Datenbank- als auch die &sap;-Prozesse vorhanden
sind und laufen (da dies Schritte sind, die es bereits
ausgeführt hat). Sollten Fehler auftreten (z.B.
wenn sich die Datenbank nicht starten lässt),
müssen Sie sowohl die Datenbank als auch &sap; manuell
neu starten, nachdem Sie die Fehler behoben haben. Erst danach
darf R3SETUP erneut gestartet werden.Achten Sie auch darauf, den &oracle;-Listener erneut
zu starten (als Benutzer orasid
mittels umask 0; lsnrctl start), wenn
dieser beendet wurde (z.B. durch einen notwendigen
Neustart des Systems).Fehler im Stadium OSUSERSIDADM_IND_ORA bei der Ausführung von R3SETUPWenn sich R3SETUP in diesem Stadium beschwert, editieren
Sie die bei der Installation verwendete Version der
Vorlage (CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERSIDADM_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie die folgenden Werte:HOME=/home/sidadm (war voher leer)
STATUS=OK (hatte den Status ERROR)
Danach können Sie R3SETUP erneut aufrufen.Fehler im Stadium OSUSERDBSID_IND_ORA bei der
Ausführung von R3SETUPWahrscheinlich beschwert sich R3SETUP auch in diesem Stadium.
Der hier auftretende Fehler ähnelt dem im Abschnitt
OSUSERSIDADM_IND_ORA. Editieren Sie einfach die bei
der Installation verwendete Version der Vorlage
(das heißt CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERDBSID_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie folgenden Eintrag:STATUS=OKDanach können Sie R3SETUP erneut aufrufen.Fehler oraview.vrf FILE NOT FOUND bei der
&oracle;-InstallationSie haben die Option
&oracle; On-Line Text Viewer nicht deaktiviert,
bevor Sie die Installation gestartet haben. Per Voreinstellung
ist diese Option aktiviert, obwohl sie unter Linux gar nicht
verfügbar ist. Deaktivieren Sie daher diese Option im
&oracle;-Installationsmenü und starten Sie die Installation
erneut.Fehler TEXTENV_INVALID bei der Ausführung von R3SETUP,
RFC oder beim Start von SAPGUITritt dieser Fehler auf, so fehlt die korrekte Lokalisierung.
&sap;-Hinweis 0171356 führt die notwendigen RPMs auf,
die installiert sein müssen (zum Beispiel
saplocales-1.0-3,
saposcheck-1.0-1 für
RedHat 6.1). Falls Sie alle damit verbundenen Fehler
ignoriert haben, und bei der Ausführung von R3SETUP
den STATUS jeweils von ERROR auf OK (in CENTRDB.R3S)
gesetzt haben, um R3SETUP anschließend neu zu starten,
wurde das &sap;-System nicht ordnungsgemäß
konfiguriert. Das bedeutet, dass Sie nicht via
SAPgui am System anmelden können,
obwohl das System trotzdem gestartet werden kann. Ein Versuch,
sich über die alte Linux-SAPgui
anzumelden, führte zu folgenden Fehlermeldungen:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerDieses Verhalten kommt daher, weil &sap.r3; nun nicht
in der Lage ist, eine korrekte Lokalisierung zuzuweisen, und
sich daher nicht ordnungsgemäß konfigurieren kann
(durch fehlende Einträge in einigen Datenbank-Tabellen).
Um sich in &sap; anmelden zu können, müssen Sie
folgende Einträge zur Datei DEFAULT.PFL
(lesen Sie dazu auch Hinweis 0043288) hinzufügen:abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BStarten Sie nun das &sap;-System neu. Sie sind nun in der Lage,
sich anzumelden, obwohl einige länderspezifische
Spracheinstellungen fehlerhaft sein könnten. Nachdem Sie diese
Ländereinstellungen korrigiert (und die korrekten
Lokalisierungen installiert) haben, können
Sie diese Einträge wieder aus
DEFAULT.PFL löschen und das
&sap;-System anschließend neu starten.ORA-00001Dieser Fehler trat nur bei einer Installation von
&oracle; 8.1.7 unter FreeBSD 4.5
auf. Dies geschah deshalb, weil sich die &oracle;-Datenbank nicht
initialisieren konnte und daher abstürzte. Dadurch
verblieben Semaphore und Shared-Memory
im System. Der nächste Startversuch führte dann
zur Meldung ORA-00001.Suchen Sie diese Semaphore mittels ipcs -a
und entfernen Sie sie mit ipcrm.ORA-00445 (Hintergrundprozess PMON wurde nicht gestartet)Dieser Fehler trat bei &oracle; 8.1.7
auf. Die Meldung erscheint, wenn die Datenbank mit dem
normalen startsap-Skript (zum Beispiel
startsap_majestix_00) aber als Benutzer
prdadm gestartet wird.Dies kann vermieden werden, indem die Datenbank als Benutzer
oraprd über svrmgrl
gestartet wird:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (den Listener mit den richtigen
Berechtigungen starten)Starten Sie den &oracle;-Listener als Benutzer
oraids mit folgendem Befehl:&prompt.root; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung ORA-12546 erhalten,
da die Sockets nun nicht die richtigen Berechtigungen aufweisen.
Lesen Sie dazu auch den &sap;-Hinweis 0072984.ORA-27102 (kein freier Speicher mehr)Dieser Fehler trat auf, wenn versucht wurde, für
MAXDSIZ und DFLDSIZ
Werte über 1 GB (1024x1024x1024) festzulegen.
Zusätzlich führte dies zur Fehlermeldung
Linux Error 12: Cannot allocate memory.Fehler im Stadium [DIPGNTAB_IND_IND] bei der
Ausführung von R3SETUPFür allgemeine Informationen lesen Sie bitte den
&sap;-Hinweis 0130581 # (R3SETUP - Abbruch im Stadium
DIPGNTAB). Bei der IDES-spezifischen
Installation verwendete der Installationsprozess aus
irgendwelchen Gründen nicht den
korrekten &sap;-Systemnamen IDS, sondern den leeren
String "". Dies führte zu einigen kleineren Problemen
beim Zugriff auf bestimmte Verzeichnisse, da die Pfade durch
SID (in diesem Fall IDS) dynamisch
generiert werden. Das heißt anstatt auf/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00zuzugreifen, wurden folgende Pfade verwendet:/usr/sap//SYS/...
/usr/sap/D00Um dennoch mit der Installation fortfahren zu können,
wurden ein Link sowie ein zusätzliches Verzeichnis
erzeugt:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transDieses Verhalten wird auch in den &sap;-Hinweisen 0029227
und 0008401 beschrieben. Bei der Installtion von
&sap; 4.6C trat allerdings keines dieser
Probleme auf.Fehler im Stadium [RFCRSWBOINI_IND_IND] bei der
Ausführung von R3SETUPBei der Installation von &sap; 4.6C
trat dieser Fehler als Folge eines anderen, bereits vorher
aufgetretenen Fehlers auf. Daher müssen Sie sich
die entsprechenden Protokolldateien durchsehen, und danach das
wirkliche (bereits vorher aufgetretene) Problem beheben.Wenn Sie nach dem Durchsehen der Protokolldateien feststellen,
dass dieser Fehler wirklich der eigentliche Fehler ist
(lesen Sie dazu wiederum die &sap;-Hinweise), können
Sie den STATUS des betreffenden Schritts von ERROR auf OK
setzen (und zwar in der Datei CENTRDB.R3S).
Anschließend starten Sie R3SETUP erneut. Nach
der Installation müssen Sie den Report
RSWBOINS der Transaktion
SE38 ausführen. Lesen Sie den &sap;-Hinweis 0162266,
um weitere Informationen zu den Stadien
RFCRSWBOINI und RFCRADDBDIF
zu erhalten.Fehler im Stadium [RFCRADDBDIF_IND_IND] bei der
Ausführung von R3SETUPHier gilt das Gleiche wie für den letzten Fehler.
Stellen Sie durch Überprüfen der Protokolldateien
sicher, dass dieser Fehler nicht durch ein früheres
Problem verursacht wird.Wenn Sie sicher sind, dass &sap;-Hinweis 0162266 auf
Ihr System zutrifft, setzen Sie den STATUS des betreffenden
Stadiums von ERROR auf OK (und zwar in der Datei
CENTRDB.R3S). Anschließend starten
Sie R3SETUP erneut. Nach der Installation müssen Sie den
Report RADDBDIF der Transaktion SE38
ausführen.sigaction sig31: File size limit exceededDieser Fehler trat beim Start des &sap;-Prozesses
disp+work auf. Wird &sap; mit
startsap-Skript gestartet, werden Subprozesse gestartet,
deren Aufgabe es ist, alle anderen &sap;-Prozesse zu starten.
Als Folge davon erkennt startsap dabei auftretende
Fehler nicht.Um zu überprüfen, ob die &sap;-Prozesse korrekt
gestartet wurden, überprüfen Sie den Prozessstatus
mit ps ax | grep SID.
Sie erhalten dadurch eine Liste aller &oracle;- und &sap;-Prozesse.
Wenn einige Prozesse fehlen, oder Sie sich nicht mit dem
&sap;-System verbinden können, überprüfen Sie
wiederum die entsprechenden Protokolldateien, die sich unter
/usr/sap/SID/DVEBMGSnr/work/
befinden. Die zu durchsuchenden Dateien heißen
dev_ms und dev_disp.Wenn &oracle; und &sap; mehr Speicher anfordern als in der
Kernelkonfigurationsdatei festgelegt wurde, wird das
Signal 31 ausgeliefert. Der Fehler
kann behoben werden, indem im Kernel
ein größerer Wert verwendet wird.# larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144Der Start von saposcol schlug fehlDas Programm saposcol (Version 4.6D) kann
einige Probleme verursachen. Das
&sap;-System verwendet
saposcol,
um Daten über die Systemleistung zu sammeln.
Für die Benutzung des &sap;-Systems hingegen ist es es
nicht erforderlich. Daher handelt es sich hier auch
nur um ein kleineres Problem. Ältere Versionen
von saposcol (z.B. 4.6B) funktionieren, sammeln
allerdings nicht alle Daten (viele Aufrufe geben,
zum Beispiel die CPU-Nutzung, einfach
0 (Null) zurück.Weiterführende ThemenWenn Sie sich fragen, wie die Linux-Binärkompatibilität
unter FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen.
Der Großteil der folgenden Informationen stammt aus einer
E-Mail, die von Terry Lambert (tlambert@primenet.com)
an die FreeBSD-Chat-Mailingliste
(freebsd-chat@FreeBSD.org) geschrieben wurde
(Message ID: <199906020108.SAA07001@usr09.primenet.com>).Wie funktioniert es?execution class loaderFreeBSD verfügt über eine execution class
loader genannte Abstraktion. Dabei handelt es sich um einen
Eingriff in den &man.execve.2; Systemaufruf.FreeBSD verfügt über eine Liste von Ladern, anstelle
eines einzigen, auf #!
zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
auszuführen.Historisch gesehen untersuchte der einzige, auf
UNIX-Plattformen vorhandene Lader die "magische Zahl"
(in der Regel die ersten 4 oder 8 Bytes der Datei), um
festzustellen, ob der Binärtyp dem System bekannt war.
War dies der Fall, wurde der Binärlader aufgerufen.Wenn es sich nicht um den zum System gehörigen Binärtyp
handelte, gab &man.execve.2; einen Fehler zurück,
und die Shell versuchte stattdessen, die Datei als Shell-Befehl
auszuführen.Dabei wurde als Standardeinstellung was auch immer die
aktuelle Shell ist festgelegt.Später wurde ein Hack in &man.sh.1; eingefügt,
der die zwei ersten Zeichen untersuchte. Wenn diese
:\n entsprachen,
wurde stattdessen die &man.csh.1;-Shell aufgerufen
(wir glauben, dass dies zuerst von SCO umgesetzt wurde).FreeBSD versucht heute eine Liste von Ladern, unter denen
sich ein allgemeiner Lader für Interpreter befindet. Der
auszuführende Interpreter wird im ersten, durch
Leerzeichen getrennten Feld, der #!-Zeile
angegeben. Läßt sich der Interpreter nicht ermitteln,
wird auf /bin/sh zurückgegriffen.ELFFür die Linux ABI-Unterstützung erkennt FreeBSD
die magische Zahl als ELF-Binärdatei (Zu diesem Zeitpunkt wird
nicht zwischen FreeBSD, &solaris;, Linux oder anderen Systemen
unterschieden, die über ELF-Binärdateien
verfügen.).SolarisDer ELF-Lader sucht nach einer speziellen
Kennzeichnung, die aus einem Kommentarabschnitt
in der ELF-Datei besteht, und die in SVR4/&solaris; ELF
Binärdateien nicht vorhanden ist.Damit Linux-Binärdateien (unter FreeBSD) funktionieren,
müssen sie als Linuxgekennzeichnet werden, und zwar durch
&man.brandelf.1;:&prompt.root; brandelf -t Linux fileNachdem dies geschehen ist, erkennt der ELF-Lader die
Linux-Kennzeichnung der Datei.ELFbrandelfWenn der ELF-Lader die Linux-Kennzeichnung
sieht, wird ein Zeiger in der proc-Struktur
ersetzt. Alle Systemaufrufe werden durch diesen Zeiger indiziert
(in einem traditionellen &unix; System wäre das ein
sysent[]-Strukturfeld, das die Systemaufrufe
enthält). Der Prozess wird weiterhin speziell gekennzeichnet,
so dass der Trap-vector im Signal-trampoline-code eine spezielle
Behandlung erfährt und das Linux-Kernelmodul verschiedene
kleinere Korrekturen vornehmen kann.Der Linux-Systemaufrufvektor enthält neben anderen
Dingen eine Liste der sysent[]-Einträge,
deren Adressen sich im Kernelmodul befinden.Wenn ein Linux-Programm einen Systemaufruf ausführt,
dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
Eintrittspunkte für die Systemaufrufe und erhält damit die
Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.Zusätzlich verändert der
Linuxmodus die Systempfade dynamisch; genauso, wie dies die
Option beim Einbinden von Dateisystemen
macht (Achtung: nicht das Dateisystem unionfs!).
Zuerst wird die Datei im Verzeichnis /compat/linux/Originalpfad
gesucht, danach, wenn sie dort nicht gefunden
wurde, wird sie im FreeBSD-Verzeichnis
/Originalpfad
gesucht. Dadurch wird sichergestellt, dass
Binärdateien, die zur Ausführung andere
Binärdateien benötigen, ausgeführt
werden können (so dass alle Linux-Werkzeuge unter der
ABI laufen). Dies bedeutet auch,
dass Linux-Binärdateien FreeBSD-Binärdateien
laden und ausführen können, wenn keine passenden
Linux-Binärdateien vorhanden sind. Ein in
/compat/linux plaziertes &man.uname.1; kann
damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
laufen.Im Endeffekt gibt es einen Linux-Kernel innerhalb des
FreeBSD-Kernels. Die Sprungtabellen für Linux-
beziehungsweise FreeBSD-Systemaufrufe verweisen allerdings auf
dieselben Funktionen, die Kerneldienste wie Dateisystemoperationen,
Operationen für den virtuellen Speicher,
Signalübermittlung und System V IPC bereitstellen,
Der einzige Unterschied ist, dass Binärdateien unter FreeBSD
FreeBSD-glue-Funktionen verwenden.
Linux-Binärdateien hingegen verwenden die
Linux-glue-Funktionen. Die meisten
älteren Betriebssysteme hatten ihre eigenen
glue-Funktionen: Funktionsadressen
in einem globalen, statischen sysent[]
Strukturfeld an Stelle von Funktionsadressen, die durch
einen dynamisch initialisierten Zeiger aus der
proc Struktur, die den Aufruf gemacht hatte,
dereferenziert wurden.Welche ist die echte FreeBSD-ABI? Das spielt keine Rolle.
Grundsätzlich ist der einzige Unterschied (zurzeit
ist das so; dies könnte sich in zukünftigen
Versionen leicht ändern und wird sich wahrscheinlich
auch ändern), dass die
FreeBSD-glue-Funktionen statisch in
den Kernel gelinkt sind, und dass die
Linux-glue-Funktionen statisch gelinkt
oder über ein Modul eingebunden werden können.Ja, aber ist das wirkliche eine Emulation? Nein. Es ist eine
Implementierung eines ABIs, keine Emulation. Es ist kein Emulator
(oder Simulator, um der nächsten Frage zuvorzukommen)
beteiligt.Warum wird es manchmal Linux-Emulation genannt?
Um es schwerer zu machen, FreeBSD zu verkaufen. Wirklich, das kommt
daher, weil dies zu einer Zeit implemtiert wurde,
in der es kein anderes Wort
(als Emulation) gab, das beschrieb, was vor sich ging.
Wenn der Kernel nicht entsprechend konfiguriert wurde oder das
Modul geladen wurde, war es falsch zu behaupten, FreeBSD würde
Linux-Binärprogramme ausführen. Man benötigte
ein Wort, das beschrieb, was da geladen
wurde – daher Der Linux-Emulator.
diff --git a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
index 5f25de67fa..7bb3ea0b67 100644
--- a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
@@ -1,1653 +1,2522 @@
BillLloydUrsprüglicher Text von JimMockNeugeschrieben von RobertDrehmelÜbersetzt von Elektronische Post (E-Mail)TerminologieE-MailTerminologieDas Akronym MTA steht für
Mail Transfer Agent was übersetzt
Mailübertragungs-Agent bedeutet.Während die Bezeichnung Server-Dämon
die Komponente eines MTA benennt, die für eingehende Verbindungen
zuständig ist, wird mit dem Begriff Mailer
öfters die Komponente des MTA bezeichnet, die E-Mails versendet.
ÜbersichtE-Mailelektronische PostElektronische Post, besser bekannt als E-Mail, ist
eine der am weit verbreitetsten Formen der Kommunikation heutzutage.
- Dieses Kapitel bietet eine grundlegende Einführung in das Betreiben
- eines E-Mail-Servers unter FreeBSD. Es ist jedoch keine komplette
+ Dieses Kapitel bietet eine grundlegende Einführung in das
+ Betreiben eines E-Mail-Servers unter &os;. Ebenfalls wird der
+ Versand und Empfang von E-Mails unter &os; behandelt. Das
+ Kapitel ist jedoch keine komplette
Referenz und es werden viele wichtige Überlegungen außer
Acht gelassen. Wenn Sie das Thema detaillierter betrachten
möchten, werden Sie bei einem der exzellenten Bücher
fündig, die in aufgelistet sind.
- Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:
+ Dieses Kapitel behandelt die folgenden Punkte:
+
Welche Software-Komponenten beim Senden und
Empfangen von elektronischer Post involviert sind.
+
Wo sich grundlegende sendmail
Konfigurationsdateien in FreeBSD befinden.
+
+
+ Den Unterschied zwischen entfernten und lokalen
+ Postfächern.
+
+
Wie man Versender von Massennachrichten daran hindern kann,
Ihren E-Mail-Server illegalerweise als Weiterleitung zu verwenden.
+
Wie man den Standard-Mailer des Systems,
sendmail, ersetzt.
+
Wie man oft auftretende E-Mail-Server Probleme behebt.
+
Wie E-Mails mit UUCP verschickt werden.
+
+
+ Wie E-Mails über einen Relay verschickt werden.
+
+
Wie E-Mails über eine Einwahlverbindung gehandhabt
werden.
+
Wie Sie die SMTP-Authentifizierung einrichten.
+
+
+ Den Empfang und den Versand von E-Mails mithilfe
+ von Programmen wie mutt.
+
+
+
+ Wie E-Mails von einem entfernten Server mit
+ POP oder IMAP
+ abgeholt werden.
+
+
+
+ Wie eingehende E-Mail automatisch gefiltert wird.
+ Bevor Sie dieses Kapitel lesen, sollten Sie:Ihre Netzwerk-Verbindung richtig einrichten.
().
+
Die DNS-Information für Ihren E-Mail-Server einstellen
().
+
Wissen, wie man zusätzliche Dritthersteller-Software
installiert ().Elektronische Post benutzenPOPIMAPDNSFünf größere Teile sind am E-Mail-Austausch beteiligt:
Das Benutzerprogramm,
der Server-Dämon,
DNS,
- ein POP- oder IMAP-Dämon
- und natürlich
+ ein entferntes oder lokales
+ Postfach und natürlich
der E-Mail-Server selbst.Das BenutzerprogrammDas beinhaltet Kommandozeilenprogramme wie
mutt, pine,
elm, mail
und Programme mit grafischer Benutzeroberfläche, wie
balsa und xfmail
um einige zu nennen, und aufwändigere, wie WWW-Browser.
Diese Programme geben die E-Mail-Transaktionen an den lokalen
E-Mail-Server,
weiter, entweder über einen der verfügbaren
Server-Dämonen oder eine
- TCP-Verbindung.
+ TCP-Verbindung.
E-Mail-Server DämonE-Mail-Server DämonensendmailE-Mail-Server DämonenpostfixE-Mail-Server DämonenqmailE-Mail-Server Dämonenexim
- Normalerweise ist das sendmail
- (standardmäßig bei FreeBSD) oder einer der anderen E-Mail-Server
- Dämonen wie qmail,
- postfix oder
- exim. Es gibt andere, aber die eben
- genannten werden am häufigsten verwendet.
+ &os; enthält standardmäßig
+ sendmail; es lassen
+ sich aber auch andere E-Mail-Server Dämonen
+ betreiben, beispielsweise
+
+
+
+ exim,
+
+
+
+ postfix oder
+
+
+
+ qmail.
+
+ Der Server-Dämon hat üblicherweise zwei
- Funktionen – er kümmert sich um das Empfangen von
- eingehenden E-Mails und stellt ausgehende E-Mails zu. Er erlaubt
- Ihnen nicht, ihn per POP oder IMAP zu kontaktieren um Ihre E-Mails
- zu lesen. Sie benötigen einen zusätzlichen
- Dämon dafür.
-
- Bedenken Sie, dass ältere Versionen von
- sendmail schwerwiegende Sicherheitsprobleme
- haben. Solange Sie jedoch eine aktuelle Version benutzen, sollten
- Sie keine Probleme haben. Wie immer ist es eine gute Idee, aktuelle
- Programmversionen zu benutzen.
+ Funktionen: Er kümmert sich um das Empfangen von
+ eingehenden E-Mails und stellt ausgehende E-Mails zu. Es
+ ist nicht Aufgabe des Dämons,
+ E-Mails über POP oder
+ IMAP bereit zu stellen, noch Zugriffe
+ auf das lokale Postfach mbox
+ oder Verzeichnisse mit Postfächern zu gewähren.
+ Dafür benötigen Sie einen zusätzlichen
+ Dämon.
+
+
+ Alte Versionen von sendmail
+ enthalten schwerwiegende Sicherheitslöcher, die
+ einem Angreifer Zugriff auf Ihren Rechner verschaffen
+ können. Um Sicherheitsprobleme zu umgehen,
+ sollten Sie eine aktuelle
+ sendmail-Version benutzen.
+ Sie können auch einen anderen MTA
+ aus der &os; Ports-Collection
+ benutzen.
+ E-Mail und DNSDas Domain Name System (DNS) und sein Dämon
named spielen eine große Rolle in der
- Auslieferung von E-Mails. Um E-Mails von Ihrer Stelle zu einer
- anderen zu transportieren, sucht der Server-Dämon im DNS nach
- der Gegenstelle um den Rechner zu ermitteln, der die E-Mails für
- das Ziel empfangen wird.
-
- Genauso funktioniert es, wenn Ihnen E-Mails geschickt werden.
- Das DNS enthält einen Datenbankeintrag mit dem Rechnernamen und
- dazugehöriger IP-Adresse sowie einen Eintrag mit Rechnername und
- dazugehörigem E-Mail-Server. Die IP-Adresse wird in einem
- A-Eintrag angegeben. Der MX
- (Mail eXchanger)-Eintrag beschreibt den
- E-Mail-Server, der Ihre E-Mails empfängt. Wenn Sie keinen
- MX-Eintrag für Ihren Rechnernamen haben, wird die E-Mail direkt
- an Ihren Rechner geliefert.
+ Auslieferung von E-Mails. Um E-Mails auszuliefern,
+ fragt der Mail-Server-Dämon im DNS den Rechner ab,
+ der E-Mails für das Zielsystem entgegennimmt.
+ Der gleiche Vorgang läuft ab, wenn eine E-Mail
+ von einem entfernten Server auf Ihrem Mail-Server
+ zugestellt wird.
+
+
+ MX-Eintrag
+
+
+ Im DNS werden Rechnernamen auf
+ IP-Adressen abgebildet. Daneben werden spezielle
+ Informationen für das Mail-System gespeichert,
+ die MX-Einträge
+ (MX record) genannt werden.
+ Der MX-Eintrag (von Mail eXchanger)
+ gibt an, welcher Rechner oder welche Rechner E-Mails
+ für eine Domain annehmen. Existiert kein MX-Record
+ für einen Rechner oder dessen Domain, werden
+ E-Mails direkt an den Rechner zugestellt, vorausgesetzt
+ der Rechner besitzt einen A-Eintrag, der den Rechnernamen
+ auf seine IP-Adresse abbildet.
+
+ Mit dem Kommando &man.host.1; können Sie die
+ MX-Einträge für eine Domain abfragen:
+
+ &prompt.user; host -t mx FreeBSD.org
+FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgE-Mails empfangenE-Mailempfangen
- Das Empfangen von E-Mails für Ihre Domäne wird von dem
- E-Mail-Server übernommen. Er sammelt die an Sie gesendeten
- E-Mails und lagert diese zum Lesen oder Abholen. Damit Sie die
- gelagerten E-Mails abholen können, müssen Sie mit POP oder
- IMAP eine Verbindung zum E-Mail-Server herstellen. Wenn Sie die
- E-Mails direkt auf dem E-Mail-Server lesen möchten, wird kein
- POP- oder IMAP-Server gebraucht.
-
- POP
- IMAP
- Wollen Sie einen POP- oder IMAP-Server laufen lassen, gibt es zwei
- Dinge, die Sie tun müssen:
-
-
-
- Besorgen Sie sich einen POP- oder IMAP-Dämon aus der
- Ports-Sammlung
- und installieren Sie diesen auf Ihrem System.
-
-
- Verändern Sie /etc/inetd.conf
- um den POP- oder IMAP-Server zu starten.
-
-
+ Der E-Mail-Server empfängt alle E-Mails für Ihre
+ Domäne. Er speichert die E-Mails entweder im
+ mbox-Format (die Vorgabe) oder im
+ Maildir-Format. Die E-Mails können lokal mit
+ Programmen wie &man.mail.1; oder mutt
+ gelesen werden. Mithilfe von Protokollen wie
+ POP oder IMAP können
+ die E-Mails auch von entfernten Rechnern gelesen werden. Wenn
+ Sie die E-Mails direkt auf dem E-Mail-Server lesen möchten,
+ wird kein POP- oder
+ IMAP-Server gebraucht.
+
+
+ Auf entfernte Postfächer mit POP
+ und IMAP zugreifen
+
+
+ POP
+
+
+
+ IMAP
+
+
+ Wenn Sie auf entfernte Postfächer zugreifen
+ wollen, benötigen Sie den Zugang zu einem
+ POP- oder IMAP-Server.
+ Beide Protokolle bieten einen einfachen Zugriff auf entfernte
+ Postfächer. IMAP besitzt allerdings
+ einige Vorteile, unter anderem:
+
+
+
+ IMAP kann sowohl Nachrichten
+ auf einem entfernten Server speichern als auch von
+ dort abholen.
+
+
+
+ IMAP unterstützt
+ gleichzeitig ablaufende Aktualisierungen.
+
+
+
+ Da es nicht gleich die komplette Nachricht
+ herunterlädt, ist IMAP
+ über langsame Verbindungen sehr nützlich.
+ Weiterhin können E-Mails auf dem Server
+ durchsucht werden, was den Datenverkehr zwischen
+ Clients und dem Server minimiert.
+
+
+
+ Wenn Sie einen POP- oder
+ IMAP-Server installieren wollen,
+ gehen Sie nach den folgenden Schritten vor:
+
+
+
+ Wählen Sie einen IMAP-
+ oder POP-Server aus, der
+ Ihre Anforderungen erfüllt. Die nachstehenden
+ Server sind sehr bekannt:
+
+
+
+ qpopper
+
+
+
+ teapop
+
+
+
+ imap-uw
+
+
+
+ courier-imap
+
+
+
+
+
+ Installieren Sie den ausgewählten
+ POP- oder IMAP-Daemon
+ aus der Ports-Collection.
+
+
+
+ Wenn erforderlich, passen Sie die Datei
+ /etc/inetd.conf an, um
+ den POP- oder
+ IMAP-Server zu starten.
+
+
+
+
+ Beachten Sie, dass sowohl POP
+ als auch IMAP Daten, wie den
+ Benutzernamen und das Passwort, im Klartext
+ übertragen. Wenn Sie die mit diesen Protokollen
+ übertragenen Daten schützen wollen, können
+ Sie SSH-Tunnel (siehe )
+ verwenden.
+
+
+
+
+ Auf lokale Postfächer zugreifen
+
+ Auf Postfächer können Sie lokal mithilfe
+ spezieller Benutzerprogramme, die
+ Mail-User-Agents
+ (MUA) genannt werden, zugreifen.
+ Beispiele für solche Programme sind
+ mutt oder &man.mail.1;.
+ Der E-Mail-ServerE-Mail-ServerE-Mail-Server wird der Rechner genannt, welcher
für die Zustellung und das Empfangen von E-Mails auf Ihrem
Rechner oder vielleicht Ihrem Netzwerk zuständig ist.ChristopherShumwayBeigesteuert von sendmail-Konfigurationsendmail&man.sendmail.8; ist das standardmäßig in
FreeBSD installierte Mailübertragungsprogramm (MTA).
- Die Aufgabe von sendmail ist es, E-Mails von
- E-Mail-Benutzerprogrammen anzunehmen und diese zu den
+ Die Aufgabe von sendmail ist es,
+ E-Mails von E-Mail-Benutzerprogrammen (MUA)
+ anzunehmen und diese zu den
entsprechenden Mailern zu liefern, die in der Konfigurationsdatei
definiert sind. sendmail kann auch
Netzwerkverbindungen annehmen und E-Mails zu lokalen
MailboxenMailbox = Post- beziehungsweise Briefkasten
oder anderen Programmen liefern.sendmail benutzt folgende
Konfigurationsdateien:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableDateinameFunktion/etc/mail/accessDatenbank, in der Zugriffsrechte auf
sendmail verwaltet werden/etc/mail/aliasesMailbox Aliase/etc/mail/local-host-namesListe der Rechner für die
sendmail E-Mails akzeptiert/etc/mail/mailer.confMailer Programmkonfiguration/etc/mail/mailertableMailer Versand-Zuordnungstabelle/etc/mail/sendmail.cfHauptkonfigurationsdatei für
sendmail/etc/mail/virtusertableVirtuelle Benutzer und Domänen-Tabellen/etc/mail/accessDie Zugriffsdatenbank bestimmt, welche(r) Rechner oder IP-Adresse(n)
Zugriff auf den lokalen E-Mail-Server haben und welche Art von Zugriff
ihnen gestattet wird.
Rechner können als ,
oder eingetragen oder einfach an
sendmails Fehlerbehandlungsroutine mit einem
angegebenen Mailer-Fehler übergeben werden.
Rechner, die als eingetragen sind, was die
Grundeinstellung ist, sind berechtigt E-Mails zu diesem Rechner zu
schicken, solange die endgültige Zieladresse der lokale Rechner ist.
Verbindungen von Rechnern, die als
aufgelistet sind, werden abgelehnt.
Rechnern mit gesetzter -Option für
ihren Rechnernamen wird erlaubt Post für jede Zieladresse
durch diesen Mail-Server zu senden.Konfigurieren der sendmail
Zugriffsdatenbankcyberspammer.com 550 We don't accept mail from spammers
FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYIn diesem Beispiel haben wir fünf Einträge.
E-Mail-Versender, die mit der linken Spalte der Tabelle
übereinstimmen, sind betroffen von der Aktion in der rechten
Spalte. Die ersten beiden Beispiele übergeben einen Fehlercode an
sendmails Fehlerbehandlungsroutine.
Die Nachricht wird an den entfernten Rechner gesendet, wenn eine
Nachricht mit der linken Spalte der Tabelle übereinstimmt.
Der nächste Eintrag lehnt Post von einem bestimmten Rechner
des Internets ab (another.source.of.spam).
Der nächste Eintrag akzeptiert E-Mail-Verbindungen des Rechners
okay.cyberspammer.com, der exakter angegeben
wurde als cyberspammer.com in der Zeile
darüber.
Genauere Übereinstimmungen haben den Vorrang vor weniger genauen.
Der letzte Eintrag erlaubt die Weiterleitung von elektronischer Post
von Rechnern mit einer IP-Adresse die mit 128.32
beginnt. Diese Rechner würden E-Mails durch diesen
E-Mail-Server senden können, die für andere E-Mail-Server
bestimmt sind.Wenn diese Datei geändert wird, müssen Sie
- make in /etc/mail/
+ make in /etc/mail
ausführen um die Datenbank zu aktualisieren./etc/mail/aliasesDie Alias-Datenbank enthält eine Liste der virtuellen
Mailboxen, die in andere Benutzer, Dateien, Programme oder
andere Aliase expandiert werden. Hier sind ein paar Beispiele,
die in /etc/mail/aliases benutzt werden
können:E-Mail Aliasesroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Das Dateiformat ist simpel; Der Name der Mailbox auf der linken
Seite des Doppelpunkts wird mit den Zielen auf der rechten Seite
ersetzt.
Das erste Beispiel ersetzt die Mailbox root
mit der Mailbox localuser, die dann wieder in der
Alias-Datenbank gesucht wird. Wird kein passender Eintrag
gefunden, wird die Nachricht zum lokalen Benutzer
localuser geliefert. Das nächste Beispiel
zeigt eine E-Mail-Verteilerliste. E-Mails an die Mailbox
ftp-bugs werden zu den drei lokalen Mailboxen
joe, eric und
paul gesendet. Eine lokale Mailbox kann auch
als user@example.com angegeben werden. Das
nächste Beispiel zeigt das Schreiben von E-Mails in eine Datei,
in diesem Fall /dev/null. Das letzte Beispiel
verdeutlicht das Senden von E-Mails an ein Programm, in diesem Fall
wird die Nachricht in die Standardeingabe von
/usr/local/bin/procmail mittels einer UNIX Pipe
geschrieben.Wenn diese Datei geändert wird, müssen Sie
- make in /etc/mail/
+ make in /etc/mail
ausführen um die Änderungen in die Datenbank zu
übernehmen./etc/mail/local-host-namesDas ist die Liste der Rechnernamen, die &man.sendmail.8; als
lokalen Rechnernamen akzeptiert. Setzen Sie alle Domänen oder
Rechner, für die sendmail
Mail empfangen soll, in diese Datei.
Wenn dieser Mail-Server zum Beispiel E-Mails für die
Domäne example.com und den Rechner
mail.example.com annehmen soll,
könnte seine local-host-names Datei so
aussehen:example.com
mail.example.comWird diese Datei geändert, muss &man.sendmail.8; neu
gestartet werden, damit es die Neuerungen einliest./etc/mail/sendmail.cfDie Hauptkonfigurations-Datei von
sendmail (sendmail.cf)
kontrolliert das allgemeine Verhalten von
sendmail, einschließlich allem vom
Umschreiben von E-Mail Adressen bis hin zum Übertragen von
Ablehnungsnachrichten an entfernte E-Mail-Server.
Mit solch einer mannigfaltigen Rolle ist die Konfigurationsdatei
natürlich ziemlich komplex und ihre Einzelheiten können
in diesem Kapitel nicht besprochen werden.
Glücklicherweise muss diese Datei selten für
Standard E-Mail-Server geändert werden.Die sendmail Hauptkonfigurationsdatei
kann mit &man.m4.1; Makros erstellt werden, die Eigenschaften
und Verhalten von sendmail definieren.
Einige der Details finden Sie in
/usr/src/contrib/sendmail/cf/README.Wenn Änderungen an dieser Datei vorgenommen werden, muss
sendmail neu gestartet werden, damit die
Änderungen Wirkung zeigen./etc/mail/virtusertableDie Datei virtusertable ordnet
Adressen für virtuelle Domänen und Mailboxen reellen
Mailboxen zu. Diese Mailboxen können lokal, auf entfernten
Systemen, Aliase in /etc/mail/aliases oder
eine Datei sein.Beispiel einer virtuellen Domänen Zuordnungroot@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joeIn dem obigen Beispiel haben wir einen Eintrag für die
Domäne example.com. Diese
Datei wird nach dem ersten übereinstimmenden Eintrag durchsucht.
Die erste Zeile ordnet root@example.com der
lokalen Mailbox root zu. Der nächste Eintrag ordnet
postmaster@example.com der Mailbox
postmaster auf dem Rechner
noc.example.net zu. Zuletzt, wenn keine
Übereinstimmung von example.com
gefunden wurde, wird der letzte Eintrag verglichen, der mit jeder
Mail-Nachricht übereinstimmt, die an jemanden bei
example.com adressiert wurde.
Diese werden der lokalen Mailbox joe zugeordnet.AndrewBoothmanGeschrieben von GregoryNeil ShapiroInformationen entnommen aus E-Mails geschrieben von
Wechseln des Mailübertragungs-AgentenE-MailMTA, wechselnWie bereits erwähnt, ist bei FreeBSD
sendmail schon als Ihr
Mailübertragungs-Agent installiert.
Deswegen ist es standardmäßig für Ihre aus- und
eingehenden E-Mails verantwortlich.Jedoch wollen einige Systemadministratoren den MTA ihres Systems
wechseln, was eine Reihe von Gründen haben kann. Diese Gründe
reichen von einfach einen anderen MTA ausprobieren wollen bis hin dazu
eine bestimmte Besonderheit zu benötigen oder ein Paket, welches
auf einen anderen Mailer angewiesen ist. Glücklicherweise macht
FreeBSD das Wechseln einfach, egal aus welchem Grund.Installieren eines neuen MTASie haben eine große Auswahl an verfügbaren
MTA-Programmen. Ein guter Startpunkt ist die
FreeBSD-Ports-Sammlung, wo Sie viele
finden werden. Selbstverständlich steht es Ihnen frei, jeden
MTA von überall her zu verwenden, solange Sie ihn unter
FreeBSD zum Laufen bekommen.Fangen Sie an, indem Sie Ihren neuen MTA installieren. Sobald
er installiert ist, gibt er Ihnen die Chance zu entscheiden ob er
wirklich Ihren Bedürfnissen genügt. Zusätzlich gibt
er Ihnen die Möglichkeit die neue Software zu konfigurieren,
bevor sie den Job von sendmail
übernimmt. Dabei sollten Sie sicherstellen, dass beim
Installieren der neuen Software keine Versuche unternommen werden,
System-Programme wie /usr/bin/sendmail zu
überschreiben. Ansonsten wurde Ihre neue E-Mail-Software in
den Dienst gestellt, bevor Sie sie konfiguriert haben.Für Informationen über die Konfiguration des von
Ihnen gewählten MTAs sehen Sie bitte in der dazugehörigen
Dokumentation nach.Ausschalten von sendmailDie Prozedur des Startens von sendmail
hat sich zwischen 4.5-RELEASE und 4.6-RELEASE signifikant
verändert. Daher beinhaltet auch die Prozedur des Abschaltens
subtile Unterschiede.FreeBSD 4.5-STABLE vor dem 4.4.2002 (inklusive 4.5-RELEASE und
frühere Versionen)Schreiben Siesendmail_enable="NO"in /etc/rc.conf. Das schaltet die
Verarbeitung eingehender E-Mails durch
sendmail ab. Aber bis
/etc/mail/mailer.conf nicht geändert
ist, wird sendmail weiterhin zum
Senden von E-Mails verwendet.FreeBSD 4.5-STABLE nach dem 4.4.2002 (inklusive 4.6-RELEASE
und spätere Versionen)Um sendmail komplett abzuschalten,
müssen Siesendmail_enable="NONE"in Ihre /etc/rc.conf schreiben.Wenn Sie sendmails Dienst für
ausgehende E-Mails auf diesem Weg abschalten, ist es wichtig,
dass Sie es mit einem voll funktionsfähigen alternativen
E-Mail-Zustellungssystem ersetzen. Wenn Sie wählen das nicht
zu tun, werden System-Funktionen wie &man.periodic.8; nicht
fähig sein, Ihre Ergebnisse per E-Mail zuzustellen, wie sie
es normalerweise erwarten. Viele Teile Ihres Systems können
erwarten, ein funktionierendes
sendmail-kompatibles System zu haben.
Wenn Anwendungen weiterhin versuchen mit
sendmails Programmdateien E-Mails zu
verschicken, nachdem Sie sie abgeschaltet haben, könnten
E-Mails in einer inaktiven
sendmail-Warteschlange landen, und
niemals geliefert werden.Wenn Sie nur sendmails Dienst
für eingehende E-Mail abschalten möchten, sollten Sie
sendmail_enable="NO"in /etc/rc.conf setzen. Mehr
Informationen zu sendmails Start-Optionen
sind vorhanden auf der &man.rc.sendmail.8; Manual Page.Starten Ihres neuen MTA beim Hochfahren des SystemsAbhängig davon, welche FreeBSD-Version Sie verwenden,
haben Sie die Wahl zwischen zwei Methoden, um Ihren
neuen MTA beim Hochfahren des System zu starten.FreeBSD 4.5-STABLE vor dem 11.4.2002 (inklusive 4.5-RELEASE
und frühere VersionenFügen Sie ein Skript zu
/usr/local/etc/rc.d, dessen Dateiname mit
.sh endet und von root
ausführbar ist. Das Skript sollte start
und stop Parameter annehmen. Beim Hochfahren
des Systems werden die System-Skripte den Befehl/usr/local/etc/rc.d/supermailer.sh startausführen, den Sie auch manuell zum Starten des Dienstes
verwenden können. Beim Herunterfahren des Systems werden die
System-Skripte die stop Option einsetzen, also
den Befehl/usr/local/etc/rc.d/supermailer.sh stopausführen, der ebenso manuell von Ihnen zum Stoppen des
Dienstes während das System läuft, verwendet werden kann.
FreeBSD 4.5-STABLE nach dem 11.4.2000 (inklusive 4.6-RELEASE
und spätere Versionen)Für neuere FreeBSD-Versionen, können Sie die oben
dargestellte Möglichkeit verwenden, oder Sie setzenmta_start_script="filename"in /etc/rc.conf, wobei
filename den Namen des Skripts darstellt,
das beim Hochfahren des Systems ausgeführt wird, um Ihren MTA
zu starten.Ersetzen von sendmail als
Standard-Mailer des SystemsDas Programm sendmail ist so
allgegenwärtig als Standard-Software auf &unix; Systemen, dass
einige Programme einfach annehmen es sei bereits installiert und
konfiguriert.
Aus diesem Grund stellen viele alternative MTAs ihre eigenen
kompatiblen Implementierung der sendmail
Kommandozeilen-Schnittstelle zur Verfügung. Das vereinfacht
ihre Verwendung als drop-in Ersatz für
sendmail.Folglich werden Sie, wenn Sie einen alternativen Mailer benutzen,
sicherstellen müssen, dass ein Programm, das versucht
sendmails Standard-Dateien wie
/usr/bin/sendmail auszuführen,
stattdessen Ihr gewähltes Mailübertragungsprogramm
ausführt.
Zum Glück stellt FreeBSD das &man.mailwrapper.8;-System
zur Verfügung, das diese Arbeit für Sie erledigt.Wenn sendmail arbeitet wie es
installiert wurde, werden Sie in
/etc/mail/mailer.conf etwas wie das Folgende
vorfinden:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailDas bedeutet, dass wenn eines der gewöhnlichen Kommandos
(wie zum Beispiel /usr/bin/sendmail selbst)
ausgeführt wird, das System tatsächlich eine Kopie des
mailwrapper mit dem Namen sendmail startet, die
mailer.conf überprüft und
/usr/libexec/sendmail/sendmail ausführt.
Mit diesem System lassen sich die Programme, die für die
sendmail-Funktionen gestartet werden,
leicht ändern.Daher könnten Sie, wenn Sie wollten, dass
/usr/local/supermailer/bin/sendmail-compat
anstelle von sendmail ausgeführt
wird, /etc/mailer.conf wie folgt abändern:
sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatFertigstellenSobald Sie alles Ihren Wünschen entsprechend
konfiguriert haben, sollten Sie entweder die
sendmail Prozesse beenden, die Sie
nicht mehr benötigen, und die zu Ihrer neuen Software
zugehörigen Prozesse starten, oder einfach das System
neustarten. Das Neustarten des Systems gibt Ihnen auch die
Gelegenheit sicherzustellen, dass Sie Ihr System korrekt
konfiguriert haben, um Ihren neuen MTA automatisch beim
Hochfahren zu starten.FehlerbehebungHier finden sich ein paar häufig gestellte Fragen und ihre
Antworten, die von der FAQ übernommen
wurden.Warum muss ich einen FQDN (fully-qualified domain name/
voll ausgeschriebenen Domänennamen) für meine Rechner
verwenden?Vielleicht liegen die Rechner in einer unterschiedlichen
Domäne; zum Beispiel, wenn Sie sich in
foo.bar.edu befinden, und einen Rechner
namens mumble in der
bar.edu Domäne erreichen
wollen, müssen Sie ihn mit dem voll ausgeschriebenen
Domänennamen mumble.bar.edu
kontaktieren, anstatt bloß mit mumble.Traditionell wurde das von dem BSD BIND
Resolver erlaubt. Wie auch immer,
die aktuelle Version von BIND, die mit
FreeBSD ausgeliefert wird, bietet keine Standardabkürzungen
für nicht komplett angegebene Domänennamen außerhalb der
Domäne, in der Sie sich befinden. Daher muss ein
nicht-qualifizierter Rechner mumble entweder als
mumble.foo.bar.edu gefunden werden,
oder er wird in der root Domäne gesucht.Damit unterscheidet es sich von vorherigem Verhalten, bei dem
die Suche über mumble.bar.edu
und mumble.edu lief. Schauen Sie
sich RFC 1535 an, wenn Sie wissen möchten, warum das als
schlecht und sogar als Sicherheitsloch angesehen wurde.Um das zu umgehen, können Sie die Linie
-
-search foo.bar.edu bar.edu
+ search foo.bar.edu bar.edu
anstatt der vorherigen
-
-domain foo.bar.edu
+ domain foo.bar.edu
in Ihre /etc/resolv.conf einsetzen. Aber
stellen Sie sicher, dass die Suchordnung nicht die Begrenzung von
lokaler und öffentlicher Administration, wie
RFC 1535 sie nennt, überschreitet.
+
+ MX-Eintrag
+
+
- Warum meldet Sendmail mail loops back to myself?
+ Warum meldet Sendmail
+ mail loops back to myself?Dies wird in der Sendmail-FAQ wie folgt beantwortet:
- Ich erhalte "Local configuration error" Meldungen, wie:
+ Ich erhalte folgende Fehlermeldungen:
- 553 relay.domain.net config error: mail loops back to myself
+ 553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung eines MX-Eintrags eingestellt, dass
Mail für die Domäne (z.B. domain.net) an einen speziellen
Host (in diesem Fall relay.domain.net) weitergeleitet wird,
aber der Relay-Host erkennt sich selbst nicht als
domain.net. Fügen Sie domain.net in /etc/mail/local-host-names
+ [die Datei hieß vor der Version 8.10 /etc/sendmail.cw]
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.Die aktuelle Version der Sendmail-FAQ
wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
wird jedoch regelmäßig nach comp.mail.sendmail,
comp.mail.misc,
comp.mail.smail,
comp.answers und
news.answers
gepostet. Sie können auch eine Kopie per E-Mail
bekommen, indem Sie eine Mail mit dem Inhalt send
usenet/news.answers/mail/sendmail-faq an
- mail-server@rtfm.mit.edu schicken.
+ mail-server@rtfm.mit.edu schicken.
PPPWie kann ich einen E-Mail-Server auf einem
Anwahl-PPP Rechner betreiben?Sie wollen einen FreeBSD-Rechner in einem LAN an das
Internet anbinden. Der FreeBSD-Rechner wird ein E-Mail
Gateway für das LAN.
Die PPP-Verbindung ist keine Standleitung.
+
+ MX-Eintrag
+
+
Es gibt mindestens zwei Wege um dies zu tun. Einer davon ist
UUCP zu verwenden.Ein anderer Weg ist, von einem immer mit dem Internet
verbundenen Server einen sekundären MX-Dienst für Ihre
Domäne zur Verfügung gestellt zu bekommen. Wenn die
Domäne Ihrer Firma
example.com ist, und Ihr
Internet-Dienstanbieter
example.net so eingestellt hat,
dass er Ihrer Domäne einen sekundären MX-Dienst zur
Verfügung stellt:example.com. MX 10 bigco.com.
MX 20 example.net.Nur ein Rechner sollte als Endempfänger angegeben sein
(fügen Sie Cw example.com zu
/etc/sendmail.cf auf example.com).Wenn das sendmail des Versenders versucht,
die E-Mail zuzustellen, wird es versuchen, Sie über die
Modem-Verbindung (example.com)
zu erreichen. Wahrscheinlich wird es keine Verbindung zustande
bringen können, da Sie nicht eingewählt sind.
sendmail wird die E-Mail automatisch zu der
sekundären MX-Stelle geliefert, zu Ihrem Internet-Provider
(example.net).
Die sekundäre MX-Stelle wird periodisch versuchen
versuchen eine Verbindung zu Ihnen aufzubauen, um die E-Mail zu
der primären MX-Stelle
(example.com zu liefern.Eventuell wollen Sie etwas wie dies als Login-Skript:#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispWenn Sie ein separates Login-Skript für einen Benutzer
erstellen wollen, könnten Sie stattdessen
sendmail -qRexample.com in dem oben gezeigten
Skript verwenden. Das erzwingt die sofortige Verarbeitung der
E-Mails in Ihrer Warteschlange für
example.comEine weitere Verfeinerung der Situation ist wie folgt:Die Nachricht wurde der &a.isp; entnommen.> wir stellen einem Kunden den sekundären MX zur Verfügung.
> Der Kunde verbindet sich mit unseren Diensten mehrmals am Tag
> automatisch um die E-Mails zu seinem primären MX zu holen
> (wir wählen uns nicht bei ihm ein, wenn E-Mails für seine
> Domäne eintreffen). Unser sendmail sendet den Inhalt der
> E-Mail-Warteschlange alle 30 Minuten. Momentan muss er 30 Minuten
> eingewählt bleiben um sicher zu sein, dass alle seine E-Mails
> beim primären MX eingetroffen sind.
>
> Gibt es einen Befehl, der sendmail dazu bringt, alle E-Mails sofort
> zu senden? Der Benutzer hat natürlich keine root-Rechte auf
> unserer Maschine.
In der privacy flags Sektion von sendmail.cf befindet sich die
Definition Opgoaway,restrictqrun
Entferne restrictqrun um nicht-root Benutzern zu erlauben, die Verarbeitung
der Nachrichten-Warteschlangen zu starten. Möglicherweise willst du
auch die MX neu sortieren. Wir sind der primäre MX für unsere
Kunden mit diesen Wünschen und haben definiert:
# Wenn wir der beste MX für einen Rechner sind, versuche es direkt
# anstatt einen lokalen Konfigurationsfehler zu generieren.
OwTrue
Auf diesem Weg liefern Gegenstellen direkt zu dir, ohne die Kundenverbindung
zu versuchen. Dann sendest du zu deinem Kunden. Das funktioniert nur
für Rechner, du musst also deinen Kunden dazu bringen,
ihre E-Mail Maschine customer.com zu nennen, sowie
hostname.customer.com im DNS. Setze einfach einen A-Eintrag
in den DNS für customer.com.Warum bekomme ich die Fehlermeldung Relaying
Denied, wenn ich E-Mails von anderen Rechnern
verschicke?In der standardmäßigen FreeBSD-Installation wird
sendmail nur dazu konfiguriert,
- E-Mails von dem Rechner auf dem es läuft zu senden. Wenn zum
- Beispiel ein POP3-Server installiert ist, werden die Benutzer
- in der Lage sein, Ihre E-Mails von der Schule, Arbeit oder anderen
- entfernten Orten zu überprüfen, jedoch werden sie keine
- E-Mails von außerhalb verschicken können.
- Typischerweise wird ein paar Sekunden nach dem Versuch eine E-Mail
+ E-Mails von dem Rechner, auf dem es läuft, zu senden.
+ Wenn zum Beispiel ein POP-Server
+ installiert ist, können Benutzer ihre E-Mails von der
+ Schule, von der Arbeit oder von anderen Orten
+ überprüfen. Sie werden jedoch keine E-Mails von
+ außen verschicken können. Typischerweise
+ wird ein paar Sekunden nach dem Versuch eine E-Mail
von MAILER-DAEMON mit einer
5.7 Relaying Denied Fehlermeldung
versendet werden.
- Es sind mehrere Wege möglich, dies zu umgehen. Die
- geradlinigste Lösung ist die Adresse Ihres
- Internet-Dienstanbieters in die Datei für die
- Weiterleitungs-Domänen zu platzieren. Das lässt sich
- schnell erreichen mit:
-
- &prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domains
-
- Nach Erstellen oder Editieren dieser Datei müssen Sie
- sendmail neu starten. Das funktioniert
- großartig wenn Sie ein Server-Administrator sind und E-Mails
- nicht lokal versenden, oder gerne ein Client/System mit grafischer
- Oberfläche auf einer anderen Maschine oder sogar über
- einen anderen Internet-Dienstanbieter verwenden wollen. Es ist auch
- sehr nützlich, wenn Sie nur ein oder zwei E-Mail Accounts
- eingerichtet haben. Soll eine größere Anzahl Adressen
- hinzugefügt werden, können Sie die Datei einfach in Ihrem
- favorisierten Editor öffnen und die Domänen anfügen,
- je eine pro Zeile:
-
- your.isp.example.com
+ Es sind mehrere Wege möglich, dies zu umgehen. Die
+ geradlinigste Lösung ist die Adresse Ihres
+ Internet-Dienstanbieters in die Datei für die
+ Weiterleitungs-Domänen zu platzieren. Das lässt sich
+ schnell erreichen mit:
+
+ &prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domains
+
+ Nach Erstellen oder Editieren dieser Datei müssen
+ Sie sendmail neu starten.
+ Das funktioniert großartig wenn Sie ein
+ Server-Administrator sind und E-Mails nicht lokal
+ versenden, oder gerne ein Client/System mit grafischer
+ Oberfläche auf einer anderen Maschine oder sogar
+ über einen anderen Internet-Dienstanbieter verwenden
+ wollen. Es ist auch sehr nützlich, wenn Sie nur ein
+ oder zwei E-Mail Accounts eingerichtet haben. Soll eine
+ größere Anzahl Adressen hinzugefügt werden,
+ können Sie die Datei einfach in Ihrem favorisierten
+ Editor öffnen und die Domänen anfügen,
+ je eine pro Zeile:
+
+ your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.org
- Jetzt wird jede E-Mail, die durch Ihr System von einem der
- in diese Liste eingetragenen Rechner geschickt wurde, ihr Ziel
- erreichen (vorausgesetzt, der Benutzer hat einen Account auf Ihrem
- System). Dies ist ein sehr schöner Weg, um Benutzern das
- entfernte E-Mail Versenden von Ihrem System zu erlauben, ohne
- dem Massenversand (SPAM) die Tür zu
- öffnen.
+ Jetzt wird jede E-Mail, die durch Ihr System von
+ einem der in diese Liste eingetragenen Rechner geschickt
+ wurde, ihr Ziel erreichen (vorausgesetzt, der Benutzer
+ hat einen Account auf Ihrem System). Dies ist ein sehr
+ schöner Weg, um Benutzern das entfernte E-Mail Versenden
+ von Ihrem System zu erlauben, ohne dem Massenversand
+ (SPAM) die Tür zu öffnen.Weiterführende ThemenDie folgenden Abschnitte behandeln kompliziertere Themen wie
E-Mail-Konfiguration und das Einrichten von E-Mail für Ihre
ganze Domäne.Grundlegende KonfigurationMit der Software im Auslieferungszustand sollten Sie fähig
sein, E-Mails an externe Rechner zu senden, solange Sie
/etc/resolv.conf eingerichtet haben oder Ihren
eigenen Name Server laufen lassen. Wenn Sie die E-Mails für
Ihren Rechner zu einem anderen Rechner geliefert haben wollen, gibt
es zwei Methoden:Betreiben Sie Ihren eigenen Name Server und haben Sie Ihre
eigene Domäne, zum Beispiel
FreeBSD.org.Lassen Sie sich E-Mails direkt zu Ihrem Rechner liefern.
Dies geschieht indem E-Mails direkt zu dem aktuellen DNS Namen
Ihrer Maschine geliefert werden. Zum Beispiel
example.FreeBSD.org.Ungeachtet welche Methode Sie auswählen, um E-Mails direkt
zu Ihrem Rechner geliefert zu bekommen, benötigen Sie eine
permanente (statische) IP-Adresse (keine dynamische PPP-Anwahl).
Wenn Sie sich hinter einer Firewall befinden, muss diese den
SMTP-Verkehr an Sie weiterleiten. Wollen Sie E-Mails an Ihrem
Rechner selbst empfangen, müssen Sie eines der folgenden
Dinge sicherstellen:Vergewissern Sie sich, dass der MX-Eintrag in Ihrem DNS zu
der IP-Adresse Ihres Rechners zeigt.Stellen Sie sicher, dass sich für Ihren Rechner kein
MX-Eintrag im DNS befindet.Jede der erwähnten Konfigurationsmöglichkeiten erlaubt
Ihnen, E-Mails direkt auf Ihrem Rechner zu empfangen.Versuchen Sie das:&prompt.root; hostname
example.FreeBSD.org
&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XXWenn Sie diese Ausgabe erhalten, sollten direkt an
- yourlogin@example.FreeBSD.org geschickte E-Mails
+ yourlogin@example.FreeBSD.org geschickte E-Mails
ohne Probleme funktionieren.Sehen Sie stattdessen etwas wie dies:&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgSo wird jede an Ihren Rechner
(example.FreeBSD.org) gesandte E-Mail
auf hub unter dem gleichen Benutzernamen gesammelt
anstatt direkt zu Ihrem Rechner geschickt zu werden.Die obige Information wird von Ihrem DNS-Server verwaltet.
Der DNS-Eintrag, der die E-Mail Routen-Information enthält, ist der
Mail
eXchange Eintrag. Existiert kein
MX-Eintrag, werden E-Mails direkt anhand der IP-Adresse geliefert.
Der MX-Eintrag für
freefall.FreeBSD.org sah einmal so aus:
freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comWie Sie sehen können, hatte freefall
viele MX-Einträge. Die kleinste MX-Nummer ist der Rechner, der
die E-Mails letztendlich bekommt, wobei die anderen temporär
E-Mails in Warteschlangen einreihen während
freefall beschäftigt oder unerreichbar ist.
Um besonders nützlich zu sein, sollten stellvertretende
MX-Seiten nicht dieselben Internet-Verbindungen wie Ihre eigene
verwenden. Für Ihren Internet-Dienstleister oder andere
sollte es kein Problem darstellen, Ihnen diesen Dienst zur
Verfügung zu stellen.E-Mails für Ihre DomäneUm einen E-Mail-Server (auch bekannt als
Mail-Server) einzurichten, benötigen Sie eine Umlenkung
jeglicher E-Mails zu Ihm, die an die verschiedenen Workstations
gesendet werden. Im Grunde wollen Sie jede an Ihre Domäne
gesendete E-Mail abfangen (in diesem Fall
*.FreeBSD.org), damit Ihre Benutzer
E-Mails mittels POP oder direkt auf dem Server
überprüfen können.Am einfachsten ist es, wenn Accounts mit gleichen
Benutzernamen auf beiden
Maschinen existieren. Verwenden Sie &man.adduser.8;, um
dies zu erreichen.Der E-Mail-Server, den Sie verwenden wollen, muss als
für den E-Mail-Austausch zuständiger Rechner
auf jeder Workstation im Netzwerk gekennzeichnet werden. Dies wird
in der DNS-Konfiguration so ausgeführt:example.FreeBSD.org A 204.216.27.XX ; Workstation
MX 10 hub.FreeBSD.org ; MailhostDiese Einstellung wird E-Mail für die Workstations zu dem
E-Mail-Server leiten, wo auch immer der A-Eintrag hinzeigt.
Die E-Mails werden zum MX-Rechner gesandt.Sofern Sie nicht einen DNS-Server laufen haben, können
Sie diese Einstellung nicht selbst vornehmen. Ist es Ihnen nicht
möglich einen eigenen DNS-Server laufen zu lassen, reden Sie
mit Ihren Internet-Dienstleister oder wer auch immer Ihre
DNS-Verwaltung übernimmt.
Wenn Sie ein virtuelles E-Mail System anbieten, werden
die folgenden Informationen nützlich sein. Für ein Beispiel
nehmen wir an, Sie haben einen Kunden mit einer eigenen Domäne,
in diesem Fall customer1.org und
Sie wollen jegliche E-Mails für
customer1.org zu Ihrem
E-Mail-Server gesendet haben, der
mail.myhost.com heißt.
Der Eintrag in Ihrem DNS sollte wie folgender aussehen:customer1.org MX 10 mail.myhost.com
Sie benötigen keinen A-Eintrag, wenn
Sie für die Domain nur E-Mails verwalten wollen.Bedenken Sie, dass das Pingen von
customer1.org nicht möglich
ist, solange kein A-Eintrag für diese Domäne existiert.
Jetzt müssen Sie nur noch
sendmail auf Ihrem Mailrechner mitteilen,
für welche Domänen und/oder Rechnernamen es Mails akzeptieren
soll. Es gibt einige Wege wie dies geschehen kann. Die Folgenden
funktionieren alle gleichermaßen:Fügen Sie die Rechnernamen zu Ihrer
/etc/sendmail.cw Datei hinzu, wenn Sie
FEATURE(use_cw_file) verwenden. Ab
sendmail 8.10 heißt diese Datei
/etc/mail/local-host-names.Tragen Sie eine Zeile mit dem Inhalt
Cwyour.host.com in Ihre
/etc/sendmail.cf Datei (beziehungsweise
/etc/mail/sendmail.cf ab
sendmail 8.10) ein.SMTP über UUCPDie sendmail-Konfigurationsdatei,
die mit FreeBSD ausgeliefert wird, ist für Systeme geeignet,
die direkt ans Internet angeschlossen sind. Systeme, die
ihre E-Mails per UUCP austauschen wollen, müssen eine andere
Konfigurationsdatei installieren.Die manuelle Bearbeitung von
/etc/mail/sendmail.cf ist nur etwas
für Puristen. Sendmail Version 8 bietet die neue
Möglichkeit der Generierung von Konfigurationsdateien
über eine Vorverarbeitung mit &man.m4.1;, wobei die
tatsächliche, händische Konfiguration auf einer
höheren Abstraktionsstufe stattfindet. Sie sollten
die Konfigurationsdateien unter
/usr/src/usr.sbin/sendmail/cf
benutzen.Für den Fall, dass Sie Ihr System nicht mit
dem kompletten Quellcode installiert haben, wurden die
nötigen Dateien zur Konfiguration von
sendmail in
einer separaten Quelldistribution für Sie extrahiert.
Wenn Sie Ihre CD-ROM gemountet haben, müssen Sie die
folgenden Schritte ausführen:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmailKeine Panik, das sind nur ein paar hundert Kilobyte.
Die Datei README im Verzeichnis
cf kann zur grundlegenden
Einführung in die &man.m4.1;-Konfiguration dienen.Zur Zustellung über UUCP sind Sie am besten damit
beraten, die mailertable-Datenbank
zu benutzen. Mit dieser Datenbank ermittelt
sendmail mit welchem
Protokoll und wohin eine E-Mail zugestellt werden soll.Zunächst müssen Sie Ihre
.mc-Datei erstellen. Das Verzeichnis
/usr/src/usr.sbin/sendmail/cf/cf ist
die Basis für diese Dateien. Sehen Sie sich um, es
gibt bereits einige Beispiele. Wenn Sie Ihre Datei
foo.mc genannt haben, müssen Sie
die folgenden Befehle ausführen, um sie in eine
gültige sendmail.cf umzuwandeln:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfEine typische .mc-Datei
könnte so aussehen:VERSIONID(`Your version number')
OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCPDie Einstellungen accept_unresolvable_domains,
nocanonify und
confDONT_PROBE_INTERFACES werden die
Benutzung von DNS bei der Zustellung von Mails verhindern.
Die Klausel UUCP_RELAY wird aus
seltsamen Gründen benötigt – fragen Sie nicht,
warum. Setzen Sie dort einfach den Namen eines Hosts ein,
der in der Lage ist, Adressen mit der Pseudodomäne
.UUCP zu behandeln; wahrscheinlich werden Sie dort den
Relayhost Ihres ISP eintragen.Wenn Sie soweit sind, müssen Sie die Datei
/etc/mail/mailertable erzeugen. Hierzu
wieder ein typisches Beispiel:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
. uucp-dom:your.uucp.relayEin komplexeres Beispiel könnte wie folgt
aussehen:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:Die ersten drei Zeilen behandeln
spezielle Fälle, in denen an Domänen adressierte
E-Mails nicht über die Standard-Route versendet werden
sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg
abzukürzen. Die nächsten Zeilen
behandeln E-Mails an Rechner in der lokalen Domain.
Diese Mails können direkt
per SMTP zugestellt werden. Schließlich werden die
UUCP-Nachbarn in der Notation mit der Pseudodomäne
.UUCP aufgeführt, um die Standardregeln mit
uucp-neighbour!recipient
zu überschreiben. Die letzte Zeile besteht stets aus
einem einzelnen Punkt, der als Ihr Universalgateway in die
Welt dient. Alle Knoten hinter dem Schlüsselwort
uucp-dom: müssen gültige
UUCP-Nachbarn sein, was Sie mit dem Befehl
uuname überprüfen
können.Als Erinnerung daran, dass diese Datei in eine
DBM-Datenbankdatei konvertiert werden muss, bevor sie
benutzt werden kann, sollte der Befehl hierzu als
Kommentar am Anfang der mailertable
plaziert werden. Sie müssen den Befehl jedes Mal
ausführen, wenn Sie die mailertable
geändert haben.Abschließender Hinweis: Wenn Sie unsicher sind,
ob bestimmte Zustellwege funktionieren, erinnern Sie sich
an die Option von
sendmail. Sie startet
sendmail im
Adress-Testmodus; geben Sie
einfach 3,0, gefolgt von der Adresse,
für die Sie den Zustellweg testen möchten, ein.
Die letzte Zeile nennt Ihnen den benutzten Mailagenten,
den Zielhost, mit dem dieser Agent aufgerufen wird und die
(möglicherweise übersetzte) Adresse. Verlassen Sie diesen
Modus, indem Sie
CtrlD eingeben.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^D
+
+
+
+
+ Bill
+ Moran
+ Beigetragen von
+
+
+
+
+ Ausgehende E-Mail über einen Relay versenden
+
+ In vielen Fällen wollen Sie E-Mail nur über
+ einen Relay verschicken. Zum Beispiel:
+
+
+
+ Sie wollen von Ihrem Arbeitsplatz Programme wie
+ &man.send-pr.1; benutzen. Dazu soll der Relay
+ Ihres ISPs verwendet werden.
+
+
+
+ Ein Server, der E-Mails nicht selbst verarbeitet,
+ soll alle E-Mails zu einem Relay schicken.
+
+
+
+ So ziemlich jeder MTA kann diese
+ Aufgaben erfüllen. Leider ist es oft schwierig, einen
+ vollwertigen MTA so zu konfigurieren,
+ dass er lediglich ausgehende E-Mails weiterleitet.
+ Es ist übertrieben, Programme wie
+ sendmail und
+ postfix nur für diesen
+ Zweck einzusetzen.
+
+ Weiterhin kann es sein, dass die Bestimmungen Ihres
+ Internetzugangs es verbieten, einen eigenen Mail-Server
+ zu betreiben.
+
+ Um die hier beschriebenen Anforderungen zu erfüllen,
+ installieren Sie einfach den Port
+ mail/ssmtp. Führen
+ Sie dazu als root die nachstehenden
+ Befehle aus:
+
+ &prompt.root; cd /usr/ports/mail/ssmtp
+&prompt.root; make install replace clean
+
+ Nach der Installation konfigurieren Sie
+ mail/ssmtp mit den
+ folgenden vier Zeilen in
+ /usr/local/etc/ssmtp/ssmtp.conf:
+
+ root=yourrealemail@example.com
+mailhub=mail.example.com
+rewriteDomain=example.com
+hostname=_HOSTNAME_
+
+ Stellen Sie sicher, dass Sie eine gültige E-Mail-Adresse
+ für root verwenden. Geben Sie
+ für mail.example.com
+ den Mail-Relay Ihres ISPs an (einige ISPs nennen den
+ Relay Postausgangsserver oder
+ SMTP-Server).
+
+ Deaktivieren Sie sendmail
+ indem Sie in /etc/rc.conf
+ sendmail_enable="NONE" angeben.
+
+ mail/ssmtp verfügt
+ über weitere Optionen. Die Musterkonfiguration in
+ /usr/local/etc/ssmtp oder die Hilfeseite
+ von ssmtp enthalten weitere
+ Beispiele.
+
+ Wenn Sie ssmtp wie hier
+ beschrieben eingerichtet haben, funktionieren Anwendungen,
+ die E-Mails von Ihrem Rechner verschicken. Sie verstoßen
+ damit auch nicht gegen Bestimmungen Ihres ISPs und laufen
+ nicht in Gefahr, dass Ihr Rechner zum Versenden von
+ Spams missbraucht wird.
+
+
E-Mail über Einwahl-VerbindungenWenn Sie eine feste IP-Adresse haben, müssen Sie
die Standardeinstellungen wahrscheinlich gar nicht
ändern. Stellen Sie Ihren Hostnamen entsprechend
Ihrem zugeordneten Internetnamen ein und
sendmail übernimmt
das Übrige.Wenn Sie eine dynamische IP-Adresse haben und eine
PPP-Wählverbindung zum
Internet benutzen, besitzen Sie wahrscheinlich eine
Mailbox auf dem Mailserver Ihres ISPs. Lassen
Sie uns annehmen, die Domäne ihres ISPs sei example.net und Ihr Benutzername
user; außerdem nehmen wir an,
dass Sie Ihre Maschine bsd.home
genannt haben und, dass Ihr ISP ihnen gesagt hat, dass Sie
relay.example.net als Mail-Relayhost
benutzen können.Um Mails aus Ihrer Mailbox abzuholen, müssen Sie
ein gesondertes Programm installieren;
fetchmail ist eine gute Wahl,
weil es viele verschiedene Protokolle unterstützt.
Das Programm können Sie als Paket oder von der
Ports-Collection (mail/fetchmail)
- installieren. Für gewöhnlich wird von Ihrem ISP POP3 zur
+ installieren. Für gewöhnlich wird von Ihrem
+ ISP POP zur
Verfügung gestellt. Falls Sie sich dafür
- entschieden haben, user-PPP zu benutzen, können Sie
- durch folgenden Eintrag in der Datei
+ entschieden haben, User-PPP zu benutzen,
+ können Sie durch folgenden Eintrag in der Datei
/etc/ppp/ppp.linkup Ihre Mails
automatisch abholen lassen, wenn eine Verbindung zum Netz
aufgebaut wird:MYADDR:
!bg su user -c fetchmailFalls Sie (wie unten gezeigt)
sendmail benutzen, um Mails an
nicht-lokale Benutzer zu versenden, fügen Sie den
Befehl!bg su user -c "sendmail -q"nach dem oben gezeigten Eintrag ein. Das
veranlasst sendmail, Ihre
ausgehenden Mails zu verarbeiten, sobald eine Verbindung
zum Internet aufgebaut wird.Nehmen wir an, dass auf bsd.home
ein Benutzer user existiert.
Erstellen Sie auf bsd.home
im Heimatverzeichnis von user die Datei
.fetchmailrc:poll example.net protocol pop3 fetchall pass MySecret;Diese Datei sollte für niemandem außer
user lesbar sein, weil sie das
Passwort MySecret enthält.Um Mails mit dem richtigen from:-Header
zu versenden, müssen Sie sendmail
mitteilen, dass es user@example.net und nicht
user@bsd.home benutzen soll. Eventuell
möchten Sie auch, dass sendmail
alle Mails über relay.example.net
versendet, um eine schnellere Übertragung von Mails zu
gewährleisten.Die folgende .mc-Datei sollte
ausreichen:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlIm vorherigen Abschnitt finden Sie Details dazu, wie
Sie aus dieser .mc-Datei eine Datei
sendmail.cf erstellen können.
Vergessen Sie auch nicht,
sendmail neu zu starten,
nachdem Sie sendmail.cf
verändert haben.
+
+
+
+ James
+ Gorham
+ Geschrieben von
+
+
+ SMTP-AuthentifizierungEin Mail-Server, der SMTP-Authentifizierung
verwendet, bietet einige Vorteile. Die erforderliche
Authentifizierung erhöht die Sicherheit von
sendmail und Benutzer, die auf wechselnden
entfernten Rechnern arbeiten, können denselben Mail-Server
verwenden ohne Ihr Benutzerprogramm jedes Mal neu zu
konfigurieren.Installieren Sie den Port security/cyrus-sasl. Der Port
verfügt über einige Optionen, die während
der Übersetzung festgelegt werden. Das in diesem Abschnitt
diskutierte Beispiel verwendet die Option
.Editieren Sie nach der Installation von security/cyrus-sasl die Datei
/usr/local/lib/sasl/Sendmail.conf (erstellen
Sie die Datei, wenn sie nicht existiert) und fügen Sie die
folgende Zeile hinzu:pwcheck_method: passwdZur Authentifizierung eines Benutzers verwendet
sendmail dann die
passwd-Datenbank von FreeBSD. Damit
müssen zum Versenden von E-Mails keine zusätzlichen
Accounts und Passwörter angelegt werden. Die Benutzer
verwenden dasselbe Passwort zum Anmelden wie zum Verschicken von
E-Mails.Fügen Sie jetzt in /etc/make.conf
die nachstehenden Zeilen hinzu:SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsaslBeim Übersetzen von sendmail
werden damit die cyrus-sasl-Bibliotheken benutzt.
Stellen Sie daher vor dem Übersetzen von
sendmail sicher, dass der Port
cyrus-sasl installiert
ist.Übersetzen Sie sendmail mit
den nachstehenden Kommandos:&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir
&prompt.root; make obj
&prompt.root; make
&prompt.root; make installsendmail sollte sich ohne Probleme
übersetzen lassen, wenn die Dateien in
/usr/src nicht verändert wurden und die
benötigten Bibliotheken installiert sind.Nachdem Sie sendmail installiert
haben, editieren Sie /etc/mail/freebsd.mc
beziehungsweise die verwendete .mc-Datei.
Viele Administratoren verwenden die Ausgabe von &man.hostname.1;,
um der .mc-Datei einen eindeutigen Namen
zu geben. Fügen Sie die folgenden Zeilen in die
.mc-Datei ein:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnlDiese Anweisungen konfigurieren die Methoden, die
sendmail zur Authentifizierung
verwendet. Lesen Sie die mitgelieferte Dokumentation, wenn
Sie eine andere Methode als verwenden
wollen.Abschließend rufen Sie &man.make.1; im Verzeichnis
/etc/mail auf. Damit wird aus der
.mc-Datei eine neue
.cf-Datei (zum Beispiel
freebsd.cf) erzeugt. Das Kommando
make install restart installiert die Datei
nach /etc/mail/sendmail.cf und startet
sendmail neu. Weitere Informationen
entnehmen Sie bitte
/etc/mail/Makefile.Wenn alles funktioniert hat, tragen Sie in Ihrem
Mail-Benutzerprogramm das Passwort für die Authentifizierung ein
und versenden Sie zum Testen eine E-Mail. Wenn Sie Probleme haben,
setzen Sie den von
sendmail auf 13 und
untersuchen die Fehlermeldungen in
/var/log/maillog.Damit die SMTP-Authentifizerung beim Systemstart aktiviert
wird, fügen Sie die nachstehenden Zeilen in
/etc/rc.conf ein:sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"Weitere Information erhalten Sie im WWW auf der
Webseite von
sendmail.
+
+
+
+
+
+ Marc
+ Silver
+ Beigetragen von
+
+
+
+ E-Mail-Programme
+
+
+ Mail-User-Agents
+
+
+
+ E-Mail-Programme
+
+
+ Anwendungen, die E-Mails versenden und empfangen, werden
+ als E-Mail-Programme oder Mail-User-Agents (MUA)
+ bezeichnet. Mit der Entwicklung und Ausbreitung von E-Mail
+ wachsen auch die E-Mail-Programme und bieten Benutzern
+ mehr Funktionen und höhere Flexibilität. Unter
+ &os; laufen zahlreiche E-Mail-Programme, die Sie alle
+ mit der &os; Ports Collection
+ installieren können. Sie können wählen zwischen
+ Programmen mit grafischer Benutzeroberfläche,
+ wie evolution oder
+ balsa, konsolenorientierten
+ Programmen wie mutt,
+ pine oder mail,
+ oder auch Programmen mit Web-Schnittstellen, die von einigen
+ großen Institutionen benutzt werden.
+
+
+ mail
+
+ Das standardmäßig unter &os; installierte
+ E-Mail-Programm ist &man.mail.1;. Das Programm ist
+ konsolenorientiert und enthält alle Funktionen,
+ die zum Versand und Empfang textbasierter
+ E-Mails erforderlich sind. Allerdings lassen sich
+ Anhänge mit mail nur schwer
+ bearbeiten und kann mail kann nur auf
+ lokale Postfächer zugreifen.
+
+ mail kann nicht direkt auf
+ POP- oder IMAP-Server
+ zugreifen. Entfernte Postfächer können aber
+ mit einer Anwendung wie fetchmail
+ in die lokale Datei mbox geladen
+ werden. fetchmail wird später
+ in diesem Kapitel besprochen ().
+
+ Um E-Mails zu versenden oder zu empfangen, starten
+ Sie einfach mail wie im nachstehenden
+ Beispiel:
+
+ &prompt.user; mail
+
+ Das Werkzeug mail liest automatisch
+ den Inhalt des Benutzer-Postfachs im Verzeichnis
+ /var/mail. Sollte
+ das Postfach leer sein, beendet sich mail
+ mit der Nachricht, dass keine E-Mails vorhanden sind.
+ Wenn das Postfach gelesen wurde, wird die Benutzeroberfläche
+ gestartet und eine Liste der E-Mails angezeigt.
+ Die E-Mails werden automatisch nummeriert wie
+ im folgenden Beispiel gezeigt:
+
+ Mail version 8.1 6/6/93. Type ? for help.
+"/var/mail/marcs": 3 messages 3 new
+>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
+ N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
+ N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"
+
+ Einzelne Nachrichten können Sie jetzt mit dem
+ mail-Kommando t
+ gefolgt von der Nummer der Nachricht lesen. Im nachstehenden
+ Beispiel lesen wir die erste E-Mail:
+
+ & t 1
+Message 1:
+From root@localhost Mon Mar 8 14:05:52 2004
+X-Original-To: marcs@localhost
+Delivered-To: marcs@localhost
+To: marcs@localhost
+Subject: test
+Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
+From: root@localhost (Charlie Root)
+
+Das ist eine Test-Nachricht. Antworte bitte!
+
+ Die Taste t zeigt die Nachricht zusammen
+ mit dem vollständigen Nachrichtenkopf an. Wenn Sie
+ die Liste der E-Mails erneut sehen wollen, drücken
+ Sie die Taste h.
+
+ Um auf eine E-Mail zu antworten, benutzen Sie
+ im Programm mail entweder die
+ Taste R oder die Taste r.
+ Mit der Taste R weisen Sie
+ mail an, dem Versender der
+ Nachricht zu antworten. Mit der Taste r
+ antworten Sie nicht nur dem Versender sondern auch
+ allen Empfängern der Nachricht. Sie können
+ zusammen mit diesen Kommandos eine Zahl angeben,
+ um die E-Mail, auf die Sie antworten wollen, auszusuchen.
+ Wenn Sie den Befehl abgesetzt haben, schreiben Sie
+ Ihre Antwort und beenden die Eingabe mit einem
+ einzelnen Punkt (.) auf einer
+ neuen Zeile. Den Vorgang zeigt das nachstehende Beispiel:
+
+ & R 1
+To: root@localhost
+Subject: Re: test
+
+Danke, ich habe deine E-Mail erhalten.
+.
+EOT
+
+ Neue E-Mails können Sie mit der Taste
+ m verschicken. Geben Sie dabei die
+ E-Mail-Adresse des Empfängers an. Sie können
+ auch mehrere durch Kommata (,) getrennte
+ Empfänger angeben. Geben Sie dann den Betreff
+ (subject) der Nachricht
+ gefolgt von der Nachricht selbst ein. Schließen
+ Sie die Nachricht mit einem einzelnen Punkt (.)
+ auf einer neuen Zeile ab.
+
+ & mail root@localhost
+Subject: Ich habe die E-Mails im Griff!
+
+Jetzt kann ich E-Mails versenden und empfangen ... :)
+.
+EOT
+
+ Die Taste ? zeigt zu jeder Zeit
+ einen Hilfetext an. Wenn Sie weitere Hilfe benötigen,
+ lesen Sie bitte die Hilfeseite &man.mail.1;.
+
+
+ Wie vorhin gesagt, wurde das Programm &man.mail.1;
+ nicht für den Umgang mit Anhängen entworfen
+ und kann daher sehr schlecht mit Anhängen umgehen.
+ Neuere MUAs wie
+ mutt gehen wesentlich besser
+ mit Anhängen um. Sollten Sie dennoch das
+ mail-Kommando benutzen wollen,
+ werden Sie den Port
+ converters/mpack
+ sehr zu schätzen wissen.
+
+
+
+
+ mutt
+
+ mutt ist ein schlankes aber
+ sehr leistungsfähiges E-Mail-Programm mit hervorrangenden
+ Funktionen, unter anderem:
+
+
+
+ mutt kann den Verlauf
+ einer Diskussion (threading)
+ darstellen.
+
+
+
+ Durch die Integration von PGP können
+ E-Mails signiert und verschlüsselt werden.
+
+
+
+ MIME wird unterstützt.
+
+
+
+ Postfächer können im Maildir-Format
+ gespeichert werden.
+
+
+
+ mutt lässt sich
+ im höchsten Maße an lokale Bedürfnisse
+ anpassen.
+
+
+
+ Wegen des Funktionsumfangs ist mutt
+ eins der ausgefeiltesten E-Mail-Programme. Mehr über
+ mutt erfahren Sie auf der Seite
+ .
+
+ Der Port mail/mutt
+ enthält die Produktionsversion von
+ mutt, die aktuelle
+ Entwicklerversion befindet sich im Port
+ mail/mutt-devel.
+ Wenn mutt installiert ist,
+ wird das Programm mit dem nachstehenden Kommando gestartet:
+
+ &prompt.user; mutt
+
+ mutt liest automatisch den
+ Inhalt des Benutzer-Postfachs im Verzeichnis
+ /var/mail. Wenn
+ E-Mails vorhanden sind, werden diese dargestellt. Sind
+ keine E-Mails vorhanden, wartet mutt
+ auf Benutzereingaben. Das folgende Beispiel zeigt, wie
+ mutt eine Nachrichten-Liste
+ darstellt:
+
+
+
+
+
+
+
+ Wenn Sie eine Nachricht lesen wollen, wählen Sie
+ die Nachricht einfach mit den Pfeiltasten aus und drücken
+ Enter. mutt
+ zeigt E-Mails wie folgt an:
+
+
+
+
+
+
+
+ Wenn Sie auf eine E-Mail antworten, können Sie,
+ wie in &man.mail.1;, aussuchen, ob Sie nur dem Versender
+ oder auch allen Empfängern antworten wollen. Wenn
+ Sie nur dem Versender antworten wollen, drücken Sie
+ die Taste r. Wenn sie dem Versender und
+ allen Empfängern antworten wollen, drücken Sie
+ die Taste g.
+
+
+ Zum Erstellen oder zum Beantworten von E-Mails
+ ruft mutt den Editor
+ &man.vi.1; auf. Wenn Sie den von
+ mutt verwendeten Editor
+ ändern möchten, erstellen oder editieren
+ Sie in Ihrem Heimatverzeichnis die Datei
+ .muttrc. Den Editor können
+ Sie in .muttrc mit der Variablen
+ editor festlegen.
+
+
+ Drücken Sie die Taste m, wenn
+ Sie eine neue Nachricht verfassen wollen. Nachdem
+ Sie einen Betreff (subject)
+ eingegeben haben, startet mutt
+ den Editor &man.vi.1; und Sie können die Nachricht
+ eingeben. Wenn Sie fertig sind, speichern Sie die
+ Nachricht und verlassen den Editor.
+ mutt wird dann wieder aktiv
+ und zeigt eine Zusammenfassung der zu sendenden Nachricht
+ an. Drücken Sie y, um die E-Mail
+ zu versenden. Der nachstehende Bildschirmabzug zeigt die
+ Zusammenfassung der E-Mail:
+
+
+
+
+
+
+
+ mutt verfügt über
+ eine umfangreiche Hilfestellung. Aus fast jedem Menü
+ können Sie Hilfeseiten mit der Taste ?
+ aufrufen. In der oberen Statuszeile werden zudem die
+ verfügbaren Tastenkombinationen angezeigt.
+
+
+
+ pine
+
+ pine wendet sich an
+ Anfänger bietet aber ebenfalls einige Funktionen
+ für Profis.
+
+
+ In der Vergangenheit wurden in
+ pine mehrere Schwachstellen
+ gefunden. Die Schwachstellen gestatteten entfernten
+ Benutzern, durch das Versenden einer besonders verfassten
+ E-Mail, Programme auf dem lokalen System laufen
+ zu lassen. Alle bekannten
+ Schwachstellen sind beseitigt worden, doch wird im
+ Quellcode von pine ein
+ sehr riskanter Programmierstil verwendet, sodass der
+ &os;-Security-Officer von weiteren unbekannten
+ Schwachstellen ausgeht. Sie installieren
+ pine auf eigene Verantwortung!
+
+
+ Der Port mail/pine4
+ enthält die aktuelle Version von
+ pine. Nach der Installation
+ können Sie pine mit dem
+ nachstehenden Kommando starten:
+
+ &prompt.user; pine
+
+ Wenn Sie pine das erste Mal
+ starten, zeigt das Programm eine Seite mit einer kurzen
+ Einführung an. Um die
+ pine-Benutzer zu zählen,
+ bitten die Entwickler auf dieser Seite um eine anonyme E-Mail.
+ Sie können diese anonyme E-Mail senden, indem Sie
+ Enter drücken oder den
+ Begrüßungsbildschirm mit der Taste
+ E verlassen, ohne die anonyme E-Mail
+ zu senden. Der Begrüßungsbildschirm
+ sieht wie folgt aus:
+
+
+
+
+
+
+
+ Nach dem Begrüßungsbildschirm wird das
+ Hauptmenü dargestellt, das sich leicht mit den
+ Pfeiltasten bedienen lässt. Mit Tastenkombinationen
+ können Sie aus dem Hauptmenü neue E-Mails
+ erstellen, Postfächer anzeigen und auch das
+ Adressbuch verwalten. Unterhalb des Menüs werden
+ die Tastenkombinationen für die verfügbaren
+ Aktionen angezeigt.
+
+ In der Voreinstellung öffnet
+ pine das Verzeichnis
+ inbox.
+ Die Taste I oder der Menüpunkt
+ MESSAGE INDEX führt
+ zu einer Nachrichten-Liste:
+
+
+
+
+
+
+
+ Die Liste zeigt die Nachrichten im Arbeitsverzeichnis.
+ Sie können Nachrichten mit den Pfeiltasten markieren.
+ Wenn Sie eine Nachricht lesen wollen, drücken Sie
+ Enter.
+
+
+
+
+
+
+
+ Im nächsten Bildschirmabzug sehen Sie, wie
+ pine eine Nachricht darstellt.
+ Die unteren Bildschirmzeilen zeigen die verfügbaren
+ Tastenkombinationen. Mit der Taste r
+ können Sie zum Beispiel auf die gerade angezeigte
+ Nachricht antworten.
+
+
+
+
+
+
+
+ Zum Antworten auf eine E-Mail wird in
+ pine der Editor
+ pico, der mit installiert wird,
+ benutzt. pico ist leicht
+ zu bedienen und gerade für Anfänger besser
+ geeignet als &man.vi.1; oder &man.mail.1;. Die Antwort
+ wird mit der Tastenkombination
+
+ Ctrl
+ X
+
+ versendet. Vor dem Versand bittet pine
+ noch um eine Bestätigung.
+
+
+
+
+
+
+
+ Über den Menüpunkt SETUP
+ des Hauptmenüs können Sie pine
+ an Ihre Bedürfnisse anpassen. Erläuterungen
+ dazu finden Sie auf der Seite
+ .
+
+
+
+
+
+
+
+ Marc
+ Silver
+ Beigetragen von
+
+
+
+ E-Mails mit fetchmail abholen
+
+
+ fetchmail
+
+
+ fetchmail ist ein vollwertiger
+ IMAP- und POP-Client.
+ Mit fetchmail können Benutzer
+ E-Mails von entfernten IMAP- und
+ POP-Servern in leichter zugängliche
+ lokale Postfächer laden. fetchmail
+ wird aus dem Port mail/fetchmail
+ installiert. Das Programm bietet unter anderem folgende
+ Funktionen:
+
+
+
+ fetchmail beherrscht die
+ Protokolle POP3,
+ APOP, KPOP,
+ IMAP, ETRN und
+ ODMR.
+
+
+
+ E-Mails können mit SMTP
+ weiterverarbeitet werden. Dadurch ist garantiert, dass
+ Filter, Weiterleitungen und Aliase weiterhin
+ funktionieren.
+
+
+
+ Das Programm kann als Dienst laufen und periodisch
+ neue Nachrichten abrufen.
+
+
+
+ fetchmail kann mehrere
+ Postfächer abfragen und je nach Konfiguration
+ die E-Mails an verschiedene lokale Benutzer
+ zustellen.
+
+
+
+ Wegen des Funktionsumfangs von
+ fetchmail können hier
+ nur grundlegende Funktionen beschrieben werden.
+ fetchmail benötigt die
+ Konfigurationsdatei .fetchmailrc.
+ In dieser Datei werden Informationen über Server
+ wie auch Benutzerdaten und Passwörter hinterlegt.
+ Wegen des kritischen Inhalts von .fetchmailrc
+ sollte die Datei nur lesbar für den Benutzer sein:
+
+ &prompt.user; chmod 600 .fetchmailrc
+
+ Die folgende .fetchmailrc zeigt,
+ wie das Postfach eines einzelnen Benutzers mit
+ POP heruntergeladen wird.
+ fetchmail wird angewiesen,
+ eine Verbindung zu example.com
+ herzustellen und sich dort als Benutzer joesoap
+ mit dem Passwort XXX anzumelden. Das Beispiel
+ setzt voraus, dass es der Benutzer joesoap
+ auch auf dem lokalen System existiert.
+
+ poll example.com protocol pop3 username "joesoap" password "XXX"
+
+ Im folgenden Beispiel werden mehrere POP-
+ und IMAP-Server benutzt. Wo notwendig,
+ werden E-Mails auf andere lokale Konten umgeleitet:
+
+ poll example.com proto pop3:
+user "joesoap", with password "XXX", is "jsoap" here;
+user "andrea", with password "XXXX";
+poll example2.net proto imap:
+user "john", with password "XXXXX", is "myth" here;
+
+ Sie können fetchmail
+ als Dienst starten. Verwenden Sie dazu die Kommandozeilenoption
+ gefolgt von einer Zeitspanne in Sekunden,
+ die angibt, wie oft die Server aus der Datei
+ .fetchmailrc abgefragt werden sollen.
+ Mit dem nachstehenden Befehl fragt
+ fetchmail die Server alle
+ 60 Sekunden ab:
+
+ &prompt.user; fetchmail -d 60
+
+ Mehr über fetchmail
+ erfahren Sie auf der Seite
+ .
+
+
+
+
+
+
+ Marc
+ Silver
+ Beigetragen von
+
+
+
+ E-Mails mit procmail filtern
+
+
+ procmail
+
+
+ Mit procmail lässt sich
+ eingehende E-Mail sehr gut filtern. Benutzer können
+ Regeln für eingehende E-Mails definieren, die
+ E-Mails zu anderen Postfächern oder anderen E-Mail-Adressen
+ umleiten. procmail befindet
+ sich im Port mail/procmail.
+ procmail kann leicht in die
+ meisten MTAs integriert werden. Lesen
+ Sie dazu bitte die Dokumentation des verwendeten
+ MTAs. Alternativ kann
+ procmail in das E-Mail-System
+ eingebunden werden, indem die nachstehende Zeile in
+ die Datei .forward im Heimatverzeichnis
+ eines Benutzers eingefügt wird:
+
+ "|exec /usr/local/bin/procmail || exit 75"
+
+ Im Folgenden zeigen wir einige einfache
+ procmail-Regeln und beschreiben
+ kurz den Zweck der Zweck der Regeln. Die Regeln müssen
+ in die Datei .procmailrc im Heimatverzeichnis
+ des Benutzers eingefügt werden.
+
+ Den Großteil dieser Regeln finden Sie auch
+ in der Hilfeseite &man.procmailex.5;.
+
+ Alle E-Mail von user@example.com
+ an die externe Adresse goodmail@example2.com
+ weiterleiten:
+
+ :0
+* ^From.*user@example.com
+! goodmail@example2.com
+
+ Alle Nachrichten, die kürzer als 1000 Bytes
+ sind, an goodmail@example2.com weiterleiten:
+
+ :0
+* < 1000
+! goodmail@example2.com
+
+ Jede E-Mail, die an alternate@example.com
+ geschickt wurde, im Postfach alternate
+ speichern:
+
+ :0
+* ^TOalternate@example.com
+alternate
+
+ Jede E-Mail, die im Betreff Spam
+ enthält, nach /dev/null
+ schieben:
+
+ :0
+^Subject:.*Spam
+/dev/null
+
+ Zuletzt ein nützliches Rezept, das eingehende E-Mails
+ von den &os;.org-Mailinglisten
+ in ein separates Postfach für jede Liste einsortiert:
+
+ :0
+* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
+{
+ LISTNAME=${MATCH}
+ :0
+ * LISTNAME??^\/[^@]+
+ FreeBSD-${MATCH}
+}
+
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 2872a5e754..991b2cffd2 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,2785 +1,2828 @@
Bezugsquellen für FreeBSDCD-ROM und DVD VerlegerFreeBSD PaketeFreeBSD-Pakete (FreeBSD-CDs, zusätzliche Software und
gedruckte Dokumentation) erhalten Sie von mehreren
Händlern:CompUSA
WWW: Frys Electronics
WWW: FreeBSD-CDs und -DVDsDie FreeBSD-CDs und -DVDs werden von vielen Online-Händlern
angeboten:Daemon News Mall560 South State Street, Suite A2Orem, UT84058USA
Telefon: +1 800 407-5170
Fax: +1 1 801 765-0877
E-Mail: sales@daemonnews.org
WWW: FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405USA
Telefon: +1 925 674-0783
Fax: +1 925 674-0821
E-Mail: info@freebsdmall.com
WWW: FreeBSD Services Ltd.11 Lapwing CloseBicesterOX26 6XRUnited Kingdom
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenGermany
Telefon: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreFrance
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926USA
Telefon: 1 (800) 456-8000
WWW: JMC SoftwareIreland
Telefon: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAUnited Kingdom
Telefon: +44 1491 837010
Fax: +44 1491 837016
- WWW:
+ WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Australia
Telefon: +61 3 9857 5918
Fax: +61 3 9857 8974
WWW: UNIXDVD.COM LTD57 Primrose AvenueSheffieldS5 6FSUnited Kingdom
WWW: LieferantenWenn Sie FreeBSD-CD-ROM-Produkte weiterverkaufen möchten,
kontaktieren Sie einen der folgenden Lieferanten:Cylogistics2672 Bayshore Parkway, Suite 610Mountain View, CA94043USA
Telefon: +1 650 694-4949
Fax: +1 650 694-4953
E-Mail: sales@cylogistics.com
WWW: FreeBSD Services Ltd.11 Lapwing CloseBicesterOX26 6XRUnited Kingdom
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439USA
Telefon: +1 952 947-0822
Fax: +1 952 947-0876
E-Mail: sales@kudzuenterprises.comNavarre Corp7400 49th Ave SouthNew Hope, MN55428USA
Telefon: +1 763 535-8333
Fax: +1 763 535-0341
WWW: FTP-ServerDie offiziellen Quellen von FreeBSD sind mit anonymous FTP
über ein weltweites Netz von FTP-Spiegeln erhältlich.
Obwohl
über eine gute Anbindung verfügt, sollten Sie einen
Spiegel in Ihrer Nähe verwenden (insbesondere, wenn Sie
selber einen Spiegel einrichten wollen).Die Datenbank
der FreeBSD-Spiegel ist aktueller als die folgende Liste, da
sie im Gegensatz zu einer statischen Liste die Informationen aus
dem DNS erhält.Sie können FreeBSD auch über anonymous FTP von den
folgenden Spiegeln beziehen. Wenn Sie FreeBSD über anonymous
FTP beziehen wollen, wählen Sie bitte einen Spiegel in Ihrer
Nähe. Die unter Haupt-Spiegel aufgeführten
Spiegel stellen normalerweise das komplette FreeBSD-Archiv
(alle momentan erhältlichen Versionen für jede
unterstützte Architektur) zur Verfügung. Wahrscheinlich
geht es aber schneller, wenn Sie einen Spiegel in Ihrem
Land benutzen. Die Länder-Spiegel stellen die neusten
Versionen für die beliebtesten Architekturen bereit,
sie stellen aber unter Umständen nicht das komplette
FreeBSD-Archiv bereit. Auf alle Server kann mit
anonymous FTP zugegriffen werden, einige Server bieten
auch andere Zugriffsmethoden an. Die bereitgestellten
Zugriffsmethoden sind bei jedem Server eines Landes
vermerkt.
&chap.mirrors.ftp.inc;
Anonymous CVSEinführungAnonymous CVS (oder anoncvs) dient zum
Synchronisieren mit entfernten Repositories und steht mit
den CVS Werkzeugen, die im FreeBSD
Basissystem enthalten sind, zur Verfügung. Benutzer von
FreeBSD können damit unter anderem lesende Operationen
auf den Anoncvs Servern des
FreeBSD-Projekts durchführen,
ohne über besondere Berechtigungen zu verfügen. Um es
zu benutzen, setzen Sie einfach die CVSROOT
Umgebungsvariable auf einen Anoncvs Server
und geben beim Login mit cvs login das
Passwort anoncvs an. Danach können
Sie mit &man.cvs.1; wie auf jedes lokale Repository (allerdings nur
lesend) zugreifen.cvs login speichert Passwörter
zur Authentifizierung an einem CVS Server in der Datei
.cvspass in Ihrem
HOME-Verzeichnis. Wenn diese Datei beim ersten
Benutzen von cvs login nicht existiert,
erhalten Sie vielleicht eine Fehlermeldung. In diesem Fall
legen Sie einfach eine leere .cvspass
Datei an und melden sich erneut an.CVSup und
Anoncvs bieten dieselbe
Funktionalität, die folgenden Kriterien helfen Ihnen zu
entscheiden, welche Methode Sie benutzen sollen.
CVSup
geht wesentlich effizienter mit Netzwerk-Ressourcen um und ist
auch technisch ausgereifter. Allerdings müssen Sie zuerst
einen speziellen Client installieren und konfigurieren, bevor Sie
CVSup benutzen können. Weiterhin
können Sie mit CVSup nur relativ
große Teile der Quellen, die Sammlungen
genannt werden, synchronisieren.Im Gegensatz dazu können Sie mit
Anoncvs jede beliebige Datei oder
indem Sie einfach den CVS Namen des
Moduls angeben, ein beliebiges Programm, wie ls
oder grep, bearbeiten. Natürlich
können Sie mit Anoncvs nur lesend
auf ein CVS Repository zugreifen.
Wenn Sie lokal mit dem FreeBSD-Repository entwickeln wollen, dann
ist CVSup die einzige Wahl.Benutzen von Anonymous CVSSetzen Sie einfach die CVSROOT
Umgebungsvariable, um &man.cvs.1; das
CVS Repository eines FreeBSD
Anoncvs Servers bekannt zu geben.
Zurzeit stehen folgende Server zur Verfügung:USA:
:pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Deutschland:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Deutschland:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
Japan:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Österreich:
:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und ein
beliebiges Passwort.
+
+
+ Frankreich:
+ :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
+ (Das Passwort für pserver ist
+ anoncvs, ssh)
+ Mit CVS können Sie praktisch
jede Version von FreeBSD, die schon einmal existiert hat (oder in
manchen Fällen existieren wird) auschecken. Sie sollten
daher damit vertraut sein, wie Sie mit Tags unter &man.cvs.1;
arbeiten (die Option). Zudem müssen Sie
die Namen der Tags im FreeBSD-Repository kennen.Es gibt zwei verschiedene TagsTags sind
symbolische Namen, die im Repository vergeben werden.
: Tags, die Revisionen bezeichnen und Tags, die
Zweige bezeichnen. Die Ersten sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die
aktuellste Revision. Da ein Tag eines Zweiges nicht an eine
bestimmte Revision gebunden ist, kann sich dessen Bedeutung von
heute auf morgen ändern.In finden Sie eine Liste der
gültigen Tags. Beachten Sie bitte, dass keines der
Tags auf die Ports-Sammlung anwendbar ist, da diese nicht
über Zweige verfügt.Wenn Sie ein Tag eines Zweiges verwenden, erhalten Sie die
aktuellsten Dateien dieses Entwicklungszweiges. Wenn Sie eine
frühere Revision erhalten möchten, können Sie zum
Beispiel einen Zeitpunkt mit der Option
angeben. Weitere Informationen dazu entnehmen Sie bitte
&man.cvs.1;.BeispieleIm Folgenden finden Sie einige Beispiele für den Umgang
mit Anonymous CVS. Sie sollten sich
aber die Manualpage von &man.cvs.1; sorgfältig durchlesen,
bevor Sie anfangen.&man.ls.1; von -CURRENT auschecken und wieder
löschen:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logout&man.ls.1; aus dem 3.X-STABLE Zweig auschecken:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co -rRELENG_3 ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutÄnderungen in &man.ls.1; zwischen 3.0 RELEASE und
3.4 RELEASE (als unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls
&prompt.user; cvs logoutGültige Modulnamen herausfinden:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modules
&prompt.user; cvs release -d modules
&prompt.user; cvs logoutWeitere RessourcenDie folgenden Ressourcen sind nützlich, um den Umgang
mit CVS zu lernen:CVS Tutorial von Cal Poly.CVS Home,
die Homepage des CVS
Projekts.CVSweb das
Web Interface zu CVS des FreeBSD
Projekts.CTMMit CTM
Abkürzung für CVS Through eMail
können Sie einen
entfernten Verzeichnisbaum mit einem zentralen Baum
synchronisieren. Es wurde extra zum Synchronisieren der FreeBSD
Quellen entwickelt, obwohl es mit der Zeit vielleicht auch andere
Anwendungen geben wird. Zurzeit existiert leider so gut wie keine
- Dokumentation zum Erstellen der Deltas. Wenn Sie
- CTM für andere Zwecke einsetzen
- wollen, wenden Sie sich bitte &a.phk;.
+ Dokumentation zum Erstellen der Deltas. Wenn Sie Hilfe
+ benötigen oder CTM für
+ andere Zwecke einsetzen wollen, wenden Sie sich bitte an
+ die Mailingliste &a.ctm-users.name;.
Warum soll ich CTM benutzen?Mit CTM erhalten Sie eine lokale
Kopie des FreeBSD-Quellbaums, den es in mehreren
Varianten gibt. Sie können das ganze
Repository oder nur einen Zweig spiegeln. Wenn Sie ein aktiver
FreeBSD-Entwickler mit einer schlechten oder gar keiner TCP/IP
Verbindung sind, oder die Änderungen einfach automatisch
zugesandt bekommen wollen, dann ist CTM
das Richtige für Sie. Für die Zweige mit der
meisten Aktivität müssen Sie sich täglich bis zu drei
Deltas beschaffen, Sie sollten allerdings erwägen, die
Deltas automatisch über E-Mail zu beziehen. Die
Größe der Updates wird so klein wie möglich
gehalten. Normalerweise sind sie kleiner als 5 kB, manchmal
sind sie 10-50 kB groß (etwa jedes 10. Update) und ab
und an werden Sie auch einmal ein Update mit 100 kB oder
mehr erhalten.Sie sollten sich über die Vorbehalte gegen die
Verwendung der Quellen anstelle eines offiziellen Releases
bewusst sein. Das trifft besonders auf &os.current; zu, lesen
Sie dazu bitte den Abschnitt
&os.current;.Was brauche ich, um CTM zu
benutzen?Zwei Sachen: Das CTM Programm und
die initialen Deltas, von denen aus Sie auf die
aktuellen Stände kommen.CTM ist schon seit der
Version 2.0 Teil des FreeBSD-Basissystems. Sie finden es in
/usr/src/usr.sbin/ctm, wenn Sie eine Kopie
der Quellen besitzen.Wenn Sie eine frühere Version als FreeBSD 2.0
besitzen, können Sie die aktuellen CTM
Quellen von der folgenden URL beziehen:Die Deltas, die CTM verarbeitet,
können Sie über FTP oder E-Mail beziehen. Wenn Sie
über einen FTP Zugang zum Internet verfügen, erhalten
Sie die Deltas unter der folgenden URL:Die Deltas werden auch von
CTM Spiegeln
bereitgehalten.Wechseln Sie in das passende Verzeichnisse zum Beispiel
src-cur für &os.current; und laden Sie
sich von dort die Deltas herunter.Sie können die Deltas auch über E-Mail
beziehen.Abonnieren Sie dazu eine der
CTM-Verteilerlisten.
Über &a.ctm-cvs-cur.name; erhalten Sie den kompletten
CVS-Baum, über
&a.ctm-src-cur.name; erhalten Sie &os.current; und über
&a.ctm-src-4.name; erhalten Sie den FreeBSD
4.X-Zweig. Wenn Sie nicht wissen, wie Sie eine der
Mailinglisten abonnieren, folgen Sie einem der Verweise
von oben oder besuchen Sie die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken.Benutzen Sie ctm_rmail, um die
CTM Updates, die Sie per
E-Mail empfangen, auszupacken und anzuwenden. Wenn Sie diesen
Prozess automatisiert ablaufen lassen möchten,
können Sie dazu einen Eintrag in
/etc/aliases verwenden. Genauere
Informationen finden Sie in der Manualpage von
ctm_rmail.Sie sollten die Mailingliste &a.ctm-announce.name;
abonnieren, egal wie Sie die
CTM-Deltas erhalten.
Ankündigungen, die den Betrieb des
CTM-Systems betreffen, werden
nur auf dieser Liste bekannt gegeben. Klicken Sie
auf den Namen der Liste oder besuchen Sie die Seite
&a.mailman.lists.link;, um diese Liste zu abonnieren.Initialisieren von CTMBevor Sie die CTM Deltas benutzen
können, brauchen Sie einen Startpunkt, auf den die
nachfolgenden Deltas angewendet werden.Sie können natürlich mit einem leeren Verzeichnis
beginnen. In diesem Fall benötigen Sie ein
XEmpty-Delta, mit dem Sie den
CTM-Verzeichnisbaum initialisieren.
Wenn Sie Glück haben, finden Sie ein
XEmpty-Delta, mit dem sie beginnen können,
auf einer der CDs Ihrer Distribution.Da die Verzeichnisbäume mehrere Megabyte groß
sind, sollten Sie nach Möglichkeit etwas schon vorhandenes
benutzen. Wenn Sie eine -RELEASE CD besitzen, können Sie
die Quellen von dieser CD benutzen. Sie ersparen sich damit das
Übertragen großer Datenmengen.Die Deltas, mit denen Sie beginnen können, enthalten ein
X in ihrem Namen, wie in
src-cur.3210XEmpty.gz. Hinter dem
X wird der Startpunkt der Deltas
angegeben, in diesem Fall steht Empty
für ein leeres Verzeichnis. Nach etwa 100 Deltas wird ein
neues XEmpty-Delta erstellt.
Mit ungefähr 75 Megabyte komprimierter Daten sind diese
XEmpty-Deltas übrigens sehr
groß.Nachdem Sie Ihren Startpunkt festgelegt haben, benötigen
Sie alle Deltas mit einer höheren Nummer.Benutzen von CTMUm ein Delta einzuspielen, benutzen Sie das folgende
Kommando:&prompt.root; cd /Pfad/zu/den/Quellen
&prompt.root; ctm -v -v /Pfad/zu/den/Deltas/src-xxx.*CTM kann mit Deltas arbeiten, die
mit gzip komprimiert wurden. Sie brauchen die
Deltas vorher nicht mit gunzip zu
dekomprimieren und sparen damit Plattenplatz.Ihr Quellbaum wird erst dann verändert, wenn
CTM die Deltas sauber verarbeiten
kann. Die Integrität der Deltas und ihre Anwendbarkeit auf
den Quellbaum lassen sich durch die Angabe des Schalters
-c überprüfen,
CTM ändert in diesem Fall Ihren
Quellbaum nicht.CTM verfügt über weitere
Kommandozeilenoptionen, Informationen dazu finden Sie in der
Manualpage oder dem Quellcode.Das war schon alles. Um Ihre Quellen aktuell zu halten,
verwenden Sie CTM jedes Mal, wenn Sie
neue Deltas bekommen.Löschen Sie die Deltas nicht, wenn Sie diese nur schwer
wieder beschaffen können. Behalten Sie sie für den
Fall, das etwas passiert. Auch wenn Sie nur Disketten besitzen,
sollten Sie erwägen, die Deltas mit
fdwrite zu sichern.Umgang mit lokalen ÄnderungenEntwickler wollen mit den Dateien im Quellbaum
experimentieren und diese verändern. In beschränkter
Weise werden lokale Änderungen von
CTM unterstützt. Wenn
CTM die Datei foo
bearbeiten will, überprüft es zuerst ob die Datei
foo.ctm existiert. Wenn diese Datei
existiert, werden Änderungen in ihr anstatt in
foo vorgenommen.Mit diesem Verfahren ist eine leichte Handhabung lokaler
Änderungen möglich. Kopieren Sie die Dateien, die Sie
ändern möchten, in Dateien, die das Suffix
.ctm tragen. Sie können dann
ungestört mit dem Quellcode arbeiten, während
CTM die
.ctm Dateien aktualisiert.Weitere CTM-OptionenWas wird aktualisiert?Eine Liste der Änderungen, die
CTM an Ihrem Quellbaum vornehmen
wird, erhalten Sie, wenn Sie die Option
angeben.Das ist nützlich, wenn Sie Logs über die
Änderungen führen wollen, geänderte Dateien vor-
oder nachbearbeiten wollen, oder einfach ein bisschen
paranoid sind.Sicherungen vor einer Aktualisierung erstellenSie wollen vielleicht die Dateien, die durch eine
CTM Aktualisierung verändert
werden, sichern.Mit weisen Sie
CTM an, alle Dateien, die durch ein
CTM Delta verändert
würden, nach backup-file zu
sichern.Dateien ausschließenManchmal wollen Sie nur bestimmte Teile aktualisieren
oder nur bestimmte Dateien aus einer Folge
von Deltas extrahieren.Sie können die Liste der Dateien, mit denen
CTM arbeitet, einschränken,
indem Sie reguläre Ausdrücke mit den Optionen
und angeben.Wenn Sie eine aktuelle Kopie von
lib/libc/Makefile aus den gesicherten
CTM Deltas erhalten wollen, setzen
Sie das folgende Kommando ab:&prompt.root; cd /wo/Sie/es/auspacken/wollen/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Die Optionen und
werden in der Reihenfolge angewandt, in der sie auf der
Kommandozeile angegeben wurden. Eine Datei wird nur dann von
CTM verarbeitet, wenn dies nach der
Anwendung der Optionen und
noch erlaubt ist.Pläne für CTMMehrere:Hinzufügen eines Authentifizierungsmechanismus,
damit gefälschte CTM-Deltas
erkannt werden können.Aufräumen der
CTM-Optionen, die mit der Zeit
unübersichtlich und irreführend wurden.VerschiedenesEs gibt Deltas für die Ports-Sammlung, die
aber nicht intensiv genutzt werden.CTM-SpiegelDie CTM-Deltas können Sie mit anonymous FTP von den folgenden
Spiegeln beziehen. Versuchen Sie bitte einen Spiegel in Ihrer
Nähe zu benutzen.
- Bei Problemen wenden Sie sich bitte an &a.phk;.
+ Bei Problemen wenden Sie sich bitte an die
+ Mailingliste &a.ctm-users.name;.Kalifornien, Bay Area, Offizieller ServerSüdafrika, Backup-Server für alte DeltasTaiwan/R.O.C.Wenn die Liste keinen Spiegel in Ihrer Nähe enthält
oder Sie Probleme mit dem ausgewählten Spiegel haben, versuchen
Sie einen Spiegel mit einer Suchmaschine, wie
alltheweb, zu
finden.Benutzen von CVSupEinführungCVSup ist eine Anwendung, die
Verzeichnisbäume von einem entfernten
CVS-Server bereitstellt und
aktualisiert. Die Quellen von FreeBSD werden in einem
CVS-Repository auf einer
Entwicklungsmaschine in Kalifornien gepflegt. Mit
CVSup können sich FreeBSD-Benutzer
den eigenen Quellbaum auf aktuellem Stand halten.Zum Aktualisieren benutzt CVSup die
Pull-Methode, bei der die Aktualisierungen vom Client angefragt
werden. Der Server wartet dabei passiv auf Anfragen von Clients,
das heißt er verschickt nicht unaufgefordert
Aktualisierungen. Somit gehen alle Anfragen vom Client aus und die
Benutzer müssen CVSup entweder
manuell starten oder einen cron Job einrichten, um
regelmäßig Aktualisierungen zu erhalten.CVSup in genau dieser Schreibweise
bezeichnet die Anwendung, die aus dem Client cvsup
und dem Server cvsupd besteht.
cvsup läuft auf den Maschinen der Benutzer,
cvsupd läuft auf jedem der
FreeBSD-Spiegel.Wenn Sie die FreeBSD-Dokumentation und die Mailinglisten lesen,
werden Sie oft auf Sup, dem
Vorgänger von CVSup stoßen.
CVSup wird in gleicher Weise wie
Sup benutzt und verfügt sogar
über Konfigurationsdateien, die kompatibel zu denen von
Sup sind. Da
CVSup schneller und flexibler als
Sup ist, wird
Sup vom FreeBSD-Projekt nicht mehr
benutzt.Installation von CVSupCVSup können Sie leicht
installieren, wenn Sie das vorkompilierte Paket
net/cvsup aus der
Ports-Sammlung benutzen.
Alternativ können Sie
net/cvsup auch ausgehend von
den Quellen bauen, doch seien Sie gewarnt:
net/cvsup hängt vom
Modula-3 System ab, das viel Zeit und
Platz zum Herunterladen und Bauen braucht.Wenn Sie CVSup auf einer
Maschine ohne &xfree86;,
beispielsweise einem Server, benutzen, stellen Sie sicher,
dass Sie den Port ohne das
CVSup-GUI,
net/cvsup-without-gui
verwenden.Konfiguration von CVSupDas Verhalten von CVSup wird mit
einer Konfigurationsdatei gesteuert, die
supfile genannt wird. Beispiele für
Konfigurationsdateien finden Sie in dem Verzeichnis
.Ein supfile enthält die folgenden
Informationen:Welche Dateien Sie
erhalten wollen.Welche Versionen der
Dateien Sie benötigen.Woher Sie die Dateien
beziehen wollen.Wo Sie die erhaltenen
Dateien speichern.Wo Sie die
Status-Dateien aufbewahren wollen.In den folgenden Abschnitten erstellen wir ein typisches
supfile indem wir nach und nach diese Punkte
klären. Zuerst beschreiben wir aber den Aufbau dieser
Konfigurationsdatei.Ein supfile ist eine Textdatei.
Kommentare beginnen mit einem # und gelten bis zum
Zeilenende. Leerzeilen und Zeilen, die nur Kommentare enthalten,
werden ignoriert.Die anderen Zeilen legen die Dateien fest, die ein Benutzer
erhalten will. Der Server organisiert verschiedene Dateien in
einer Sammlung, deren Name auf einer Zeile angegeben
wird. Nach dem Namen der Sammlung können mehrere durch
Leerzeichen getrennte Felder folgen, die die oben angesprochenen
Informationen festlegen. Es gibt zwei Arten von Feldern: Felder,
die Optionen festlegen und Felder mit Parametern.
Optionen bestehen aus einem Schlüsselwort, wie
oder und
stehen alleine. Ein Parameterfeld beginnt mit einem
Schlüsselwort, dem = und ein Parameter,
wie in ,
folgt. Dieses Feld darf keine Leerzeichen enthalten.In einem supfile werden normalerweise
mehrere Sammlungen angefordert. Die erforderlichen Felder
können explizit für jede Sammlung angegeben werden,
dann werden jedoch die Zeilen ziemlich lang. Außerdem ist
dieses Vorgehen sehr unhandlich, da die meisten Felder für
alle Sammlungen gleich sind. CVSup
bietet die Möglichkeit, Vorgaben für die Felder der
Sammlungen festzulegen. Zeilen, die mit der Pseudo-Sammlung
*default beginnen, legen Optionen und Parameter
für nachfolgende Sammlungen im supfile
fest. Der Vorgabewert kann in der Zeile einer bestimmten Sammlung
überschrieben werden. Durch Hinzufügen weiterer
*default Zeilen können die Vorgaben auch
mitten im supfile überschrieben oder
erweitert werden.Mit diesem Wissen können wir nun ein
supfile erstellen, das den Quellbaum von
FreeBSD-CURRENT anfordert und
aktualisiert.Welche Dateien wollen Sie
empfangen?Dateien werden von CVSup in
Sammlungen organisiert. Die erhältlichen
Sammlungen werden später
beschrieben. Wir wollen den Quellbaum von FreeBSD empfangen,
der in der Sammlung src-all enthalten ist.
Das supfile enthält pro Zeile eine
Sammlung, in diesem Fall also nur eine einzige Zeile:src-allWelche Versionen der Dateien
werden benötigt?Mit CVSup können Sie jede
Version der Quellen bekommen, da der
cvsupd-Server seine Daten direkt aus
dem CVS-Repository bezieht. Sie
können die benötigten Versionen in den
Parameterfeldern tag= und
angeben.Achten Sie darauf, dass Sie das richtige
tag=-Feld angeben. Einige Tags sind nur
für spezielle Sammlungen gültig. Wenn Sie ein
falsches Tag angeben oder sich verschreiben, wird
CVSup Dateien löschen, die
Sie wahrscheinlich gar nicht löschen wollten.
Achten Sie insbesondere bei den
ports-*-Sammlungen darauf,
ausschließlichtag=. zu verwenden.Mit tag= wird ein symbolischer Name aus
dem Repository angegeben. Es gibt zwei verschiedene Tags:
Tags, die Revisionen bezeichnen und Tags, die Zweige
bezeichnen. Die ersteren sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf
die aktuellste Revision. Da ein Tag eines Zweiges nicht an
eine bestimmte Revision gebunden ist, kann sich dessen
Bedeutung von heute auf morgen ändern. zählt für Benutzer
relevante Tags auf. Wenn Sie in der Konfigurationsdatei ein
Tag, wie RELENG_4, angeben, müssen Sie
diesem tag= vorstellen:
tag=RELENG_4. Denken Sie daran, dass
es für die Ports-Sammlung nur tag=.
gibt.Achten Sie darauf, dass Sie den Namen eines Tags
richtig angeben. CVSup kann nicht
zwischen richtigen und falschen Tags unterscheiden. Wenn Sie
sich bei der Angabe eines Tags vertippen, nimmt
CVSup an, Sie hätten ein
gültiges Tag angegeben, dem nur keine Dateien zugeordnet
sind. Die Folge davon ist, dass Ihre vorhandenen Quellen
gelöscht werden.Wenn Sie ein Tag angeben, das sich auf einen Zweig bezieht,
erhalten Sie die aktuellsten Revisionen der Dateien auf diesem
Zweig. Wenn Sie eine frühere Revision erhalten
möchten, können Sie diese im
Feld angeben. Einzelheiten dazu finden Sie in der Manualpage
von cvsup.Wir möchten gerne FreeBSD-CURRENT beziehen und
fügen die folgende Zeile am Anfang
der Konfigurationsdatei ein:*default tag=.Eine wichtige Ausnahme ist wenn Sie weder ein
tag=-Feld noch ein date=-Feld
angeben. In diesem Fall erhalten Sie anstelle einer speziellen
Revision die wirklichen RCS-Dateien aus dem CVS-Repository
des Servers. Diese Vorgehensweise wird von Entwicklern
bevorzugt, da sie mit einem eigenen Repository leicht die
Entwicklungsgeschichte und Veränderungen von Dateien
verfolgen können. Dieser Vorteil muss allerdings mit
sehr viel Plattenplatz bezahlt werden.Woher sollen die Dateien
bezogen werden?Im host=-Feld wird angegeben, woher
cvsup die Dateien holen soll. Sie
können hier jeden der CVSup-Spiegel angeben, doch
sollten Sie einen Server in Ihrer Nähe auswählen.
Für dieses Beispiel wollen wir den erfundenen Server
cvsup666.FreeBSD.org
verwenden:*default host=cvsup666.FreeBSD.orgBevor Sie CVSup laufen
lassen, sollten Sie hier einen existierenden Server
einsetzen. Den zu verwendenden Server können Sie auf der
Kommandozeile mit
überschreiben.Wo sollen die Dateien
gespeichert werden?Im prefix=-Feld teilen Sie
cvsup mit, wo die Dateien gespeichert werden
sollen. In diesem Beispiel werden wir die Quelldateien direkt
im Verzeichnisbaum für Quellen
/usr/src ablegen. Das Verzeichnis
src ist schon in der Sammlung, die wir
beziehen enthalten, so dass wir die folgende Zeile
angeben:*default prefix=/usrWo sollen die
Statusinformationen von cvsup gespeichert
werden?cvsup legt in einem Verzeichnis
Statusinformationen ab, die festhalten, welche Versionen schon
empfangen wurden. Wir verwenden das Standardverzeichnis
/usr/local/etc/cvsup:*default base=/usr/local/etc/cvsupDer Vorgabewert für base= ist genau
dieses Verzeichnis, so dass wir diese Zeile nicht angeben
müssen.Wenn das Verzeichnis für die Statusinformationen nicht
existiert, sollten Sie es jetzt anlegen, da
cvsup ohne dieses Verzeichnis nicht
startet.Verschiedene Einstellungen:Eine weitere Zeile sollte normalerweise in jedem
supfile sein:*default release=cvs delete use-rel-suffix compressMit release=cvs wird angegeben,
dass der Server das FreeBSD-Haupt-Repository abfragen soll,
was praktisch immer der Fall ist (die Ausnahmen werden in
diesem Text nicht diskutiert).delete erlaubt es
CVSup, Dateien zu löschen.
Diese Option sollten Sie immer angeben, damit
CVSup Ihren Quellbaum auch wirklich
aktuell halten kann. CVSup
löscht nur Dateien für die es auch verantwortlich
ist. Andere Dateien, die sich in einem Baum unter Kontrolle
von CVSup befinden, werden nicht
verändert.Wenn Sie wirklich etwas über das obskure
use-rel-suffix erfahren wollen, lesen Sie
bitte in der Manualpage nach, ansonsten geben Sie es einfach an
und vergessen es.Wenn Sie compress angeben, werden Daten
auf dem Kommunikationskanal komprimiert. Wenn Sie über
eine T1-Leitung oder eine schnellere Netzanbindung
verfügen, brauchen Sie diese Option vielleicht nicht. In
allen anderen Fällen beschleunigt sie aber den
Ablauf.Zusammenfassung:Das vollständige supfile unseres
Beispiels sieht nun so aus:*default tag=.
*default host=cvsup666.FreeBSD.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup
*default release=cvs delete use-rel-suffix compress
src-allDie refuse DateiCVSup benutzt die Pull-Methode, das
heißt wenn sich ein Client mit einem Server verbindet,
erhält er eine Liste der verfügbaren Sammlungen und
wählt aus diesen die herunterzuladenden Dateien aus. In der
Voreinstellung wählt der Client alle Dateien aus, die zu
einer gegebenen Sammlung und zu einem gegebenen Tag passen.
Dieses Verhalten ist aber nicht immer erwünscht, besonders
wenn Sie die doc, ports
oder www Verzeichnisbäume
synchronisieren. Die wenigsten Leute beherrschen vier oder fünf
Sprachen und benötigen Dateien mit speziellen Anpassungen
für eine Sprache. Wenn Sie die Ports-Sammlung
synchronisieren, können Sie anstelle von
ports-all einzelne Ports, wie
ports-astrology oder
ports-biology angeben. Die
doc und www
Verzeichnisbäume verfügen aber nicht über
Sammlungen für spezielle Sprachen. In diesem Fall
müssen Sie eines der vielen eleganten Merkmale von
CVSup benutzen: Die
refuse Datei.Mit einer refuse Datei können Sie
bestimmte Dateien einer Sammlung von der Übertragung
ausschließen. Der Ort der refuse ist
base/sup/refuse,
wobei base in Ihrem
supfile festgelegt wurde. In der
Voreinstellung ist base das Verzeichnis
/usr/local/etc/cvsup, der Ort der
refuse Datei ist daher
/usr/local/etc/cvsup/sup/refuse.Das Format der refuse Datei ist einfach:
Sie enthält eine Liste der Dateien und Verzeichnisse, die Sie
nicht herunterladen wollen. Wenn Sie zum Beispiel keinen Bedarf
an Anwendungen mit Anpassungen für Sprachen außer
Englisch haben, könnte ein Teil Ihrer
refuse Datei wie folgt aussehen:ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*Die Aufzählung setzt sich für andere Sprachen fort.
Eine vollständige Liste finden Sie im
FreeBSD
CVS Repository.Die refuse Datei spart Anwendern von
CVSup, die über eine langsame
Internetanbindung verfügen oder deren Internetverbindung
zeitlich abgerechnet wird, wertvolle Zeit, da sie Dateien, die sie
nicht benötigen, nicht mehr herunterladen müssen.
Weitere Informationen zu refuse Dateien und
anderen Eigenschaften von CVSup
entnehmen Sie bitte der Manualpage.Ausführen von CVSupWir können nun eine Aktualisierung mit der folgenden
Kommandozeile starten:&prompt.root; cvsup supfilesupfile gibt
dabei das eben erstelle supfile an. Wenn Sie
X11 benutzen, wird
cvsup ein GUI starten.
Drücken Sie go und schauen Sie
zu.Das Beispiel aktualisiert die Dateien im Verzeichnisbaum
/usr/src. Sie müssen
cvsup als root starten,
damit Sie die nötigen Rechte haben, die Dateien zu
aktualisieren. Sie sind vielleicht ein bisschen nervös
weil Sie das Programm zum ersten Mal anwenden und möchten
zuerst einmal einen Testlauf durchführen. Legen Sie dazu ein
temporäres Verzeichnis an und übergeben es auf der
Kommandozeile von cvsup:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destAktualisierungen werden dann nur in dem angegebenen Verzeichnis
vorgenommen. CVSup untersucht die
Dateien in /usr/src, wird aber keine dieser
Dateien verändern. Die veränderten Dateien finden Sie
stattdessen in /var/tmp/dest/usr/src. Die
Statusdateien von CVSup werden ebenfalls
nicht geändert, sondern in dem angegebenen Verzeichnis
abgelegt. Wenn Sie Leseberechtigung in
/usr/src haben, brauchen Sie das Programm
noch nicht einmal unter root laufen zu
lassen.Wenn Sie X11 nicht benutzen wollen
oder keine GUIs mögen, sollten Sie
cvsup wie folgt aufrufen:&prompt.root; cvsup -g -L 2 supfile verhindert den Start des
GUIs. Wenn Sie kein
X11 laufen haben, passiert das
automatisch, ansonsten müssen Sie diesen Schalter
angeben.Mit gibt CVSup
Einzelheiten zu jeder Aktualisierung aus. Die Wortfülle der
Meldungen können Sie von bis
einstellen. In der Voreinstellung
werden nur Fehlermeldungen ausgegeben.Eine Zusammenfassung der Optionen von
CVSup erhalten Sie mit
cvsup -H. Genauere Informationen finden Sie in
der Manualpage von CVSup.Wenn Sie mit dem Ablauf der Aktualisierung zufrieden sind,
können Sie CVSup
regelmäßig aus &man.cron.8; ausführen. In diesem
Fall sollten Sie natürlich nicht das GUI
benutzen.CVSup SammlungenDie CVSup Sammlungen sind
hierarchisch organisiert. Es gibt wenige große Sammlungen,
die in kleinere Teilsammlungen unterteilt sind. Wenn Sie eine
große Sammlung beziehen, entspricht das dem Beziehen aller
Teilsammlungen. Der Hierarchie der Sammlung wird in der folgenden
Aufzählung durch Einrückungen dargestellt.Die am häufigsten benutzen Sammlungen sind
src-all und ports-all. Die
anderen Sammlungen werden von wenigen Leuten zu speziellen Zwecken
benutzt und es kann sein, dass diese nicht auf allen Spiegeln
zur Verfügung stehen.cvs-all release=cvsDas FreeBSD-Haupt-Repository einschließlich der
Kryptographie-Module.distrib release=cvsDateien, die zum Verteilen und Spiegeln von FreeBSD
benötigt werden.doc-all release=cvsQuellen des FreeBSD-Handbuchs und weiterer
Dokumentation. Diese Sammlung enthält nicht die
FreeBSD-Webseite.ports-all release=cvsDie FreeBSD-Ports-Sammlung.Wenn Sie nicht die gesamte Ports-Sammlung
(ports-all) aktualieren wollen,
sondern nur eine der nachstehend aufgeführten
Teilsammlungen, aktualisieren Sie
immer die Teilsammlung
ports-base. Diese Teilsammlung
enthält das Bausystem der Ports. Immer wenn
ports-base geändert wird,
ist es so gut wie sicher, dass diese Änderung
auch tatsächlich von einem Port benutzt wird.
Der Bau eines Ports, der auf Änderungen
im Bausystem angewiesen wird, wird fehlschlagen,
wenn das Bausystem noch auf einem alten Stand ist.
Aktualisieren Sie vor allen Dingen
ports-base, wenn Sie bei
einem Bau merkwürdige Fehlermeldungen
erhalten und kein aktuelles Bausystem benutzen.ports-archivers
release=cvsWerkzeuge zum Archivieren.ports-astro
release=cvsAstronomie-Programme.ports-audio
release=cvsAudio-Programme.ports-base
release=cvsDas Bausystem der Ports-Sammlung.
Dazu gehören verschiedene Dateien in den
Unterverzeichnissen Mk/
und Tools/ von
/usr/ports.Aktualisieren Sie diese Teilsammlung
jedes Mal, wenn Sie
einen Teil der Ports-Sammlung aktualisieren.
Lesen Sie dazu auch den obigen
Hinweis zur Ports-Sammlung.ports-benchmarks
release=cvsBenchmarks.ports-biology
release=cvsBiologie.ports-cad
release=cvsComputer Aided Design Werkzeuge.ports-chinese
release=cvsChinesische Sprachunterstützung.ports-comms
release=cvsProgramme zur Datenkommunikation.ports-converters
release=cvsZeichensatz Konvertierer.ports-databases
release=cvsDatenbanken.ports-deskutils
release=cvsSachen, die sich vor dem Computer-Zeitalter
auf dem Schreibtisch befanden.ports-devel
release=cvsWerkzeuge für Entwickler.ports-dns
release=cvsSoftware für DNS.ports-editors
release=cvsEditoren.ports-emulators
release=cvsProgramme, die andere Betriebssysteme
emulieren.ports-finance
release=cvsFinanz-Anwendungen.ports-ftp
release=cvsWerkzeuge für FTP Clients und Server.ports-games
release=cvsSpiele.ports-german
release=cvsDeutsche Sprachunterstützung.ports-graphics
release=cvsGraphik-Programme.ports-hungarian
release=cvsUngarische Sprachunterstützung.ports-irc
release=cvsInternet Relay Chat Werkzeuge.ports-japanese
release=cvsJapanische Sprachunterstützung.ports-java
release=cvs&java; Werkzeuge.ports-korean
release=cvsKoreanische Sprachunterstützung.ports-lang
release=cvsProgrammiersprachen.ports-mail
release=cvsE-Mail Programme.ports-math
release=cvsProgramme zur numerischen Mathematik.ports-mbone
release=cvsMBone Anwendungen.ports-misc
release=cvsVerschiedene Werkzeuge.ports-multimedia
release=cvsMultimedia-Anwendungen.ports-net
release=cvsNetzwerk-Programme.ports-news
release=cvsUSENET News Werkzeuge.ports-palm
release=cvsProgramme für den
Palm.ports-polish
release=cvsPolnische Sprachunterstützung.ports-portuguese
release=cvsPortugiesische Sprachunterstützung.ports-print
release=cvsDruckprogramme.ports-russian
release=cvsRussische Sprachunterstützung.ports-security
release=cvsWerkzeuge zum Thema Sicherheit.ports-shells
release=cvsKommandozeilen-Shells.ports-sysutils
release=cvsSystem-Werkzeuge.ports-textproc
release=cvsProgramme zur Textverarbeitung (ohne Desktop
Publishing).ports-vietnamese
release=cvsVietnamesische
Sprachunterstützung.ports-www
release=cvsSoftware rund um das World Wide Web.ports-x11
release=cvsX-Window Programme.ports-x11-clocks
release=cvsX11-Uhren.ports-x11-fm
release=cvsX11-Dateiverwalter.ports-x11-fonts
release=cvsX11-Zeichensätze und Werkzeuge dazu.ports-x11-toolkits
release=cvsX11-Werkzeuge.ports-x11-serversX11-Server.ports-x11-wmX11-Fensterverwalter.src-all release=cvsDie FreeBSD-Quellen einschließlich der
Kryptographie-Module.src-base
release=cvsVerschiedene Dateien unter
/usr/src.src-bin
release=cvsBenutzer-Werkzeuge die im Einzelbenutzermodus
gebraucht werden
(/usr/src/bin).src-contrib
release=cvsWerkzeuge und Bibliotheken, die nicht aus dem
FreeBSD-Projekt stammen und wenig verändert
übernommen werden.
(/usr/src/contrib).src-crypto release=cvsKryptographische Werkzeuge und Bibliotheken,
die nicht aus dem FreeBSD-Projekt stammen und
wenig verändert übernommen werden.
(/usr/src/crypto).src-eBones release=cvsKerberos und DES
(/usr/src/eBones). Wird
in aktuellen Releases von FreeBSD nicht
benutzt.src-etc
release=cvsKonfigurationsdateien des Systems
(/usr/src/etc).src-games
release=cvsSpiele
(/usr/src/games).src-gnu
release=cvsWerkzeuge, die unter der GNU Public License
stehen (/usr/src/gnu).src-include
release=cvsHeader Dateien
(/usr/src/include).src-kerberos5
release=cvsKerberos5
(/usr/src/kerberos5).src-kerberosIV
release=cvsKerberosIV
(/usr/src/kerberosIV).src-lib
release=cvsBibliotheken
(/usr/src/lib).src-libexec
release=cvsSystemprogramme, die von anderen Programmen
ausgeführt werden
(/usr/src/libexec).src-release
release=cvsDateien, die zum Erstellen eines FreeBSD
Releases notwendig sind
(/usr/src/release).src-sbin release=cvsWerkzeuge für den Einzelbenutzermodus
(/usr/src/sbin).src-secure
release=cvsKryptographische Bibliotheken und Befehle
(/usr/src/secure).src-share
release=cvsDateien, die von mehreren Systemen
gemeinsam benutzt werden können
(/usr/src/share).src-sys
release=cvsDer Kernel
(/usr/src/sys).src-sys-crypto
release=cvsKryptographie Quellen des Kernels
(/usr/src/sys/crypto).src-tools
release=cvsVerschiedene Werkzeuge zur Pflege von FreeBSD
(/usr/src/tools).src-usrbin
release=cvsBenutzer-Werkzeuge
(/usr/src/usr.bin).src-usrsbin
release=cvsSystem-Werkzeuge
(/usr/src/usr.sbin).www release=cvsDie Quellen der FreeBSD-WWW-Seite.distrib release=selfDie Konfigurationsdateien des
CVSup Servers. Diese werden von
den CVSup benutzt.gnats release=currentDie GNATS Datenbank, in der Problemberichte verwaltet
werden.mail-archive release=currentDas Archiv der FreeBSD-Mailinglisten.www release=currentDie formatierten Dateien der FreeBSD-WWW-Seite (nicht die
Quellen). Diese werden von den WWW-Spiegeln benutzt.Weiterführende InformationenDie CVSup FAQ und weitere
Informationen über CVSup finden Sie
auf The
CVSup Home Page.FreeBSD spezifische Diskussionen über
CVSup finden auf der Mailingliste
&a.hackers; statt. Dort und auf der Liste &a.announce; werden neue
Versionen von CVSup
angekündigt.Fragen und Problemberichte sollten an den Autor des Programms
cvsup-bugs@polstra.com weitergeleitet werden.CVSup-ServerDie folgende Aufzählung enthält
CVSup Server für FreeBSD:
&chap.mirrors.cvsup.inc;
CVS-TagsWenn Sie Quellen mit CVS oder
CVSup erhalten oder aktualisieren wollen,
müssen Sie dazu ein Tag (das ist ein bestimmter Zeitpunkt)
angeben.Es gibt zwei verschiedene Tags: Tags, die Revisionen bezeichnen
und Tags, die Zweige bezeichnen. Die Ersten sind statisch und fest
an eine Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die
aktuellste Revision.Tags für ZweigeMit Ausnahme von HEAD (das immer
ein gültiges Tag ist), können die folgenden
Tags nur im src/-Quellbaum verwendet
werden. Die Quellbäume ports/,
doc/ und www/
sind nicht verzweigt.HEADSymbolischer Name für den Hauptzweig, auch
&os.current; genannt. Dies ist die Vorgabe, wenn keine
Revision angegeben wird.In CVSup wird dieses Tag mit
einem . (Punkt) bezeichnet.In CVS ist das die Vorgabe,
wenn Sie kein Tag oder eine Revision angeben. Außer
Sie wollen einen -STABLE Rechner auf -CURRENT aktualisieren,
ist es nicht ratsam, die -CURRENT
Quellen auf einem -STABLE Rechner einzuspielen.RELENG_5_2Der Zweig, auf dem sicherheitsrelevante oder kritische
- Fehlerbehebungen für FreeBSD 5.2 durchgeführt
- werden.
+ Fehlerbehebungen für FreeBSD 5.2 und
+ &os; 5.2.1 durchgeführt werden.
RELENG_5_1Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.1 durchgeführt
werden.RELENG_5_0Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.0 durchgeführt
werden.RELENG_4Der FreeBSD 4.X Entwicklungszweig, der auch &os.stable;
genannt wird.
+
+ RELENG_4_10
+
+
+ Der Zweig, auf dem sicherheitsrelevante oder kritische
+ Fehlerbehebungen für FreeBSD 4.10 durchgeführt
+ werden.
+
+
+
RELENG_4_9Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.9 durchgeführt
werden.RELENG_4_8Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.8 durchgeführt
werden.RELENG_4_7Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.7 durchgeführt
werden.RELENG_4_6Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.6 und
FreeBSD 4.6.2 durchgeführt werden.RELENG_4_5Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.5 durchgeführt
werden.RELENG_4_4Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.4 durchgeführt
werden.RELENG_4_3Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.3 durchgeführt
werden.RELENG_3Der FreeBSD-3.X Entwicklungszweig, der auch 3.X-STABLE
genannt wird.RELENG_2_2Der FreeBSD-2.2.X Entwicklungszweig, der auch 2.2-STABLE
genannt wird.Tags für ReleasesDiese Tags geben den Zeitpunkt an, an dem eine bestimme
FreeBSD-Version veröffentlicht wurde. Sie gelten
für die Quellbäume src/,
ports/, doc/
und www/.
+
+ RELENG_4_10_0_RELEASE
+
+
+ FreeBSD 4.10
+
+
+
+
+ RELENG_5_2_1_RELEASE
+
+
+ FreeBSD 5.2.1
+
+
+
+
+ RELENG_5_2_0_RELEASE
+
+
+ FreeBSD 5.2
+
+
+
RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS-ServerDie folgende Aufzählung enthält AFS Server für
FreeBSD:SchwedenDie Dateien sind unter dem Pfad
/afs/stacken.kth.se/ftp/pub/FreeBSD/
erreichbar.stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seBetreuer ftp@stacken.kth.sersync-Serverrsync wird ähnlich wie
&man.rcp.1; verwendet, besitzt aber mehr Optionen und
verwendet das rsync remote-update Protokoll, das nur
geänderte Dateien überträgt und damit viel schneller
als ein normaler Kopiervorgang ist. rsync
ist sehr nützlich, wenn Sie einen FreeBSD-FTP-Spiegel oder einen
CVS-Spiegel betreiben. Das Programm ist für viele
Betriebssysteme erhältlich, mit FreeBSD können Sie den
Port net/rsync oder das fertige
Paket benutzen. Die folgenden Server stellen FreeBSD über das
rsync Protokoll zur Verfügung:Deutschlandrsync://grappa.unix-ag.uni-kl.de/Verfügbare Sammlungen:freebsd-cvs: Das vollständige
CVS-Repository von &os;.Neben anderen Repositories spiegelt diese Maschine auch die
Repositories der NetBSD- und OpenBSD-Projekte.Großbritannienrsync://rsync.mirror.ac.uk/Verfügbare Sammlungen:ftp.FreeBSD.org: Kompletter Spiegel des
FreeBSD-FTP-Servers.Niederlandersync://ftp.nl.FreeBSD.org/Verfügbare Sammlungen:vol/3/freebsd-core: Kompletter Spiegel des
FreeBSD-FTP-Servers.Tschechische Republikrsync://ftp.cz.FreeBSD.org/Verfügbare Sammlungen:ftp: Unvollständiger Spiegel des
FreeBSD-FTP-Servers.FreeBSD: Vollständiger Spiegel des
FreeBSD-FTP-Servers.USArsync://ftp-master.FreeBSD.org/Dieser Server darf nur von primären Spiegeln benutzt
werden.Verfügbare Sammlungen:FreeBSD: Das Hauptarchiv des FreeBSD
FTP Servers.acl: Die primäre ACL-Liste.rsync://ftp13.FreeBSD.org/Verfügbare Sammlungen:FreeBSD: Kompletter Spiegel des
FreeBSD-FTP-Servers.
diff --git a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
index b5428c2d17..5b414ef633 100644
--- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -1,661 +1,1757 @@
-
+
- Moses
- Moore
- Von
-
-
-
-
-
- Benedikt
- Köhler
- Übersetzt von
-
-
- Uwe
- Pierau
+ Ross
+ Lippert
+ Überarbeitet von
- Sound
+ Multimedia
-
- Zusammenfassung
+
+ ÜbersichtFreeBSD unterstützt viele unterschiedliche Soundkarten,
die Ihnen den Genuss von Highfidelity-Klängen auf Ihrem
Computer ermöglichen. Dazu gehört unter anderem die
Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3
(MP3), WAV, Ogg Vorbis und vielen weiteren Formaten aufzunehmen
und wiederzugeben. Darüber hinaus enthält die FreeBSD
Ports-Sammlung Anwendungen, die Ihnen das Bearbeiten Ihrer
aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten
und die Kontrolle der angeschlossenen MIDI-Geräte
erlauben.
- Nach dem Lesen dieses Kapitels werden Sie wissen:
-
- Wie Sie Ihre Soundkarte
- bestimmen.
- Wie Sie Ihr System so einstellen, dass die
- Soundkarte richtig erkannt wird.
- Einige Methoden und Beispielanwendungen, mit
- denen Sie das korrekte Funktionieren Ihrer Soundkarte
- überprüfen können.
- Wie Sie Fehler in Ihren
- Soundkarten-Einstellungen finden.
- Wie Sie MP3s wiedergeben und
- erzeugen.
- Wie Sie CD-Tonspuren in Dateien
- rippen.
-
-
- Bevor Sie dieses Kapitel leben, sollten Sie:
-
-
- Wissen, wie Sie einen neuen Kernel
- konfigurieren und installieren ().
-
-
-
-
- Bestimmen des korrekten Geräts
-
- PCI
- ISA
- Soundkarten
- Zunächst sollten Sie in Erfahrung bringen, welches
- Modell Ihrer Soundkarte Sie haben, welchen Chip sie benutzt und
- ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD
- unterstützt eine ganze Reihe sowohl von PCI- als auch von
- ISA-Karten. Wenn Ihre Soundkarte in der folgenden Liste nicht
- auftaucht, konsultieren Sie die &man.pcm.4; Manualpage. Diese
- Liste ist zwar nicht vollständig, deckt jedoch einige der
- verbreitetsten Karten ab.
+ Wenn Sie etwas Zeit investieren, können Sie
+ mit &os; auch Videos und DVDs abspielen. Im Vergleich
+ zu Audio-Anwendungen gibt es weniger Anwendungen zum
+ Kodieren, Konvertieren und Abspielen von Video-Formaten.
+ Es gab, als dieses Kapitel geschrieben wurde, keine
+ Anwendung, die einzelne Video-Formate ähnlich wie
+ audio/sox konvertieren
+ konnte. Allerdings ändert sich die Software in
+ diesem Umfeld sehr schnell.
+
+ In diesem Kapitel wird das Einrichten von Soundkarten
+ besprochen. Die Installation und Konfiguration von
+ &xfree86; ()
+ behandelt das Einrichten von Videokarten. Hinweise, um
+ die Wiedergabe zu verbessern, finden sich aber in diesem
+ Kapitel.
+
+ Dieses Kapitel behandelt die folgenden Punkte:
- Crystal 4237, 4236, 4232, 4231
-
-
-
- Yamaha OPL-SAx
+ Die Konfiguration des Systems damit Ihre
+ Soundkarte erkannt wird.
- OPTi931
+ Wie Sie mit Beispielanwendungen die
+ Funktion einer Soundkarte prüfen.
- Ensoniq AudioPCI 1370/1371
+ Wie Sie Fehler in den Einstellungen von
+ Soundkarten finden.
- ESS Solo-1/1E
+ Wie Sie MP3s und andere Audio-Formate wiedergeben
+ und erzeugen.
- NeoMagic 256AV/ZX
+ Die Video-Unterstützung von
+ &xfree86;.
- Sound Blaster Pro, 16, 32, AWE64, AWE128, Live
+ Gute Anwendungen, die Videos abspielen und
+ kodieren.
- Creative ViBRA16
+ Die Wiedergabe von DVDs, .mpg-
+ und .avi-Dateien.
- Advanced Asound 100, 110, and Logic ALS120
+ Wie Sie CDs und DVDs in Dateien rippen.
- ES 1868, 1869, 1879, 1888
+ Die Konfiguration von TV-Karten.
+
-
- Gravis UltraSound
-
+ Bevor Sie dieses Kapitel lesen, sollten Sie:
+
- Aureal Vortex 1 or 2
+ Wissen, wie Sie einen neuen Kernel konfigurieren
+ und installieren ().
-
- Kernel
- Konfiguration
-
+ In den Video-Abschnitten dieses Kapitels wird ein
+ installiertes &xfree86; 4.X
+ (x11/XFree86-4) vorausgesetzt.
+ Die Beispiele mögen mit &xfree86; 3.X
+ funktionieren, sind aber nicht mit
+ &xfree86; 3.X getestet worden.
+ Wenn Sie etwas finden, dass nicht unter
+ &xfree86; 3.X läuft, lassen
+ Sie uns das wissen.
+
+
+ Der Versuch eine Audio-CD mit &man.mount.8;
+ einzuhängen erzeugt mindestens einen Fehler;
+ schlimmstenfalls kann es zu einer Kernel-Panic
+ kommen. Die Medien besitzen eine andere Kodierung
+ als normale ISO-Dateisysteme.
+
+
- Um Ihre Soundkarte benutzen zu können, müssen Sie
- den richtigen Gerätetreiber laden. Dafür gibt es mehrere
- Möglichkeiten: Am einfachsten ist es, mit &man.kldload.8; das
- entsprechende Kernel-Modul für Ihre Soundkarte zu laden. Sie
- können aber auch die Unterstützung Ihrer Soundkarte
- statisch in den Kernel hineinkompilieren. Der folgende Abschnitt
- erklärt diese Methode. Weitere Informationen über das
- Kompilieren eines Kernels erhalten sie in dem Kapitel Kernelkonfiguration.
+
+
+
+
+ Moses
+ Moore
+ Von
+
+
+
+
+
+ Benedikt
+ Köhler
+ Übersetzt von
+
+
+ Uwe
+ Pierau
+
+
+
-
- Creative, Advance und ESS Soundkarten
+ Soundkarten einrichten
+
+
+ Bestimmen des korrekten Geräts
+
+ PCI
+ ISA
+ Soundkarten
+ Zunächst sollten Sie in Erfahrung bringen, welches
+ Soundkartenmodell Sie besitzen, welchen Chip die Karte benutzt und
+ ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD
+ unterstützt eine ganze Reihe sowohl von PCI- als auch von
+ ISA-Karten. Wenn Ihre Soundkarte in der folgenden Liste nicht
+ auftaucht, konsultieren Sie die Hilfeseite &man.pcm.4;. Die
+ folgende Liste ist zwar nicht vollständig, deckt jedoch
+ einige der verbreitetsten Karten ab:
+
+
+
+ Crystal 4237, 4236, 4232, 4231
+
+
+
+ Yamaha OPL-SAx
+
+
+
+ OPTi931
+
+
+
+ Ensoniq AudioPCI 1370/1371
+
+
+
+ ESS Solo-1/1E
+
+
+
+ NeoMagic 256AV/ZX
+
- Für jede dieser Karten fügen Sie die folgende Zeile
- zu Ihrer Kernelkonfiguration hinzu:
+
+ &soundblaster; Pro, 16, 32, AWE64, AWE128, Live
+
- device pcm
+
+ Creative ViBRA16
+
- ISA-Karten benötigen zusätzlich noch die
- Zeile:
+
+ Advanced Asound 100, 110, and Logic ALS120
+
- device sbc
+
+ ES 1868, 1869, 1879, 1888
+
- Nicht-PnP fähige ISA-Karten benötigen die Zeilen:
+
+ Gravis UltraSound
+
- device pcm
+
+ Aureal Vortex 1 or 2
+
+
+
+
+ Kernel
+ Konfiguration
+
+
+ Um Ihre Soundkarte benutzen zu können, müssen Sie
+ den richtigen Gerätetreiber laden. Sie haben zwei
+ Möglichkeiten, den Treiber zu laden: Am einfachsten
+ ist es, das Modul mit &man.kldload.8; zu laden. Sie
+ können dazu die Kommandozeile verwenden:
+
+ &prompt.root; kldload snd_emu10k1.ko
+
+ Alternativ können Sie auch einen Eintrag
+ in der Datei /boot/loader.conf
+ erstellen:
+
+ snd_emu10k1_load="YES"
+
+ Beide Beispiele gelten für eine Creative &soundblaster;
+ Live! Soundkarte. Weitere ladbare Soundmodule sind in
+ der Datei /boot/defaults/loader.conf
+ aufgeführt.
+
+ Alternativ können Sie die Unterstützung für
+ die Soundkarte direkt in den Kernel einkompilieren. Diese
+ Methode wird weiter unten beschrieben. Weiteres über das
+ Kompilieren eines Kernels erfahren Sie in dem Kapitel Kernelkonfiguration.
+
+
+ Creative, Advance und ESS Soundkarten
+
+ Für jede dieser Karten fügen Sie die folgende Zeile
+ zu Ihrer Kernelkonfiguration hinzu:
+
+ device pcm
+
+ ISA-Karten benötigen zusätzlich noch die
+ Zeile:
+
+ device sbc
+
+ Nicht-PnP fähige ISA-Karten benötigen die Zeilen:
+
+ device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15
- Dies sind die
- Voreinstellungen. Sie werden unter Umständen den IRQ oder
- andere Einstellungen anpassen müssen. In der &man.sbc.4;
- Manualpage finden Sie weitere Informationen dazu.
+ Dies sind die
+ Voreinstellungen. Sie werden unter Umständen den IRQ oder
+ andere Einstellungen anpassen müssen. In der
+ &man.sbc.4;-Hilfeseite finden Sie weitere Informationen dazu.
-
- Die Karte Sound Blaster Live wird unter FreeBSD 4.0
- nicht unterstützt. Dazu benötigen Sie einen Patch,
- der in diesem Dokument nicht behandelt wird. Es ist deshalb
- empfehlenswert, dass Sie in diesem Fall Ihr System auf den
- neuesten -STABLE Stand aktualisieren, bevor Sie diese Karte
- benutzen können.
-
-
+
+ Die Karte Sound Blaster Live wird unter FreeBSD 4.0
+ nicht unterstützt. Dazu benötigen Sie einen Patch,
+ der in diesem Dokument nicht behandelt wird. Es ist deshalb
+ empfehlenswert, dass Sie in diesem Fall Ihr System auf den
+ neuesten -STABLE Stand aktualisieren, bevor Sie diese Karte
+ benutzen können.
+
+
-
- Gravis UltraSound Karten
+
+ Gravis UltraSound Karten
- Eine PnP ISA-Karte benötigt die folgenden Zeilen in der
- Kernelkonfiguration:
+ Eine PnP ISA-Karte benötigt die folgenden Zeilen in der
+ Kernelkonfiguration:
- device pcm
+ device pcm
device gusc
- Wenn Sie eine nicht-PnP fähige ISA-Karte besitzen,
- fügen Sie die folgenden Zeilen ein:
+ Wenn Sie eine nicht-PnP fähige ISA-Karte besitzen,
+ fügen Sie die folgenden Zeilen ein:
- device pcm
+ device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
- Es kann sein, dass Sie den
- IRQ oder andere Einstellungen Ihrer Karte anpassen
- müssen. Mehr Informationen erhalten Sie in
- der Hilfeseite &man.gusc.4;.
-
+ Es kann sein, dass Sie den
+ IRQ oder andere Einstellungen Ihrer Karte anpassen
+ müssen. Mehr Informationen erhalten Sie in
+ der Hilfeseite &man.gusc.4;.
+
-
- Crystal Soundkarten
+
+ Crystal Soundkarten
- In der Kernelkonfiguration geben Sie für Crystal Karten
- die beiden folgenden Zeilen an:
+ In der Kernelkonfiguration geben Sie für Crystal Karten
+ die beiden folgenden Zeilen an:
- device pcm
+ device pcm
device csa
-
+
-
- Allgemeine Unterstützung
+
+ Allgemeine Unterstützung
- Für PnP ISA- oder PCI-Karten fügen Sie die folgende
- Zeile zu Ihrer Kernelkonfiguration hinzu:
+ Für PnP ISA- oder PCI-Karten fügen Sie die folgende
+ Zeile zu Ihrer Kernelkonfiguration hinzu:
- device pcm
+ device pcm
- Wenn Sie eine nicht-PnP ISA-Karte besitzen, die keinen
- Bridge-Treiber hat, geben Sie zusätzlich die folgende Zeile
- an:
+ Wenn Sie eine nicht-PnP ISA-Karte besitzen, die keinen
+ Bridge-Treiber hat, geben Sie zusätzlich die folgende Zeile
+ an:
- device pcm0 at isa? irq 10 drq 1 flags 0x0
+ device pcm0 at isa? irq 10 drq 1 flags 0x0
- Ändern Sie den IRQ oder
- andere Einstellungen so, dass sie Ihrer Soundkarte
- entsprechen.
-
+ Ändern Sie den IRQ oder
+ andere Einstellungen so, dass sie Ihrer Soundkarte
+ entsprechen.
+
-
- Onboard Sound
+
+ Onboard Sound
+
+ Einige Systeme besitzen direkt auf dem Motherboard
+ eingebaute Soundgeräte. Diese benötigen die folgende
+ Angabe in Ihrer Kernelkonfiguration:
- Einige Systeme besitzen direkt auf dem Motherboard
- eingebaute Soundgeräte. Diese benötigen die folgende
- Angabe in Ihrer Kernelkonfiguration:
+ options PNPBIOS
- options PNPBIOS
+
+ Ab &os; 5.0 benötigen Sie die Option
+ nicht mehr. Die Option
+ wurde entfernt; ihre Funktion ist voreingestellt.
+
+
-
-
- Erstellen und Testen der Device Nodes
+
+ Erstellen und Testen der Device Nodes
- Device Node
- Gerätedatei
- Nach einem Neustart loggen Sie sich ein und geben
- dmesg | grep pcm ein. Sie sollten etwas wie das
- folgende sehen:
+ Device Node
+ Gerätedatei
- &prompt.root; dmesg | grep pcm
+ Nach einem Neustart loggen Sie sich ein und prüfen
+ in der Datei /var/run/dmesg.boot ob
+ das Gerät gefunden wurde:
+
+ &prompt.root; grep pcm /var/run/dmesg.boot
pcm0: <SB16 DSP 4.11> on sbc0
- Die Ausgabe Ihres Systems kann anders aussehen. Erscheinen
- keine pcm Geräte, dann ist zuvor
- ein Fehler aufgetreten. Wenn das passiert, schauen Sie sich Ihre
- Kernelkonfiguration noch einmal an und vergewissern Sie sich,
- dass Sie den richtigen Treiber gewählt haben. Weitere
- Hinweise zur Fehlersuche gibt .
+ Die Ausgabe Ihres Systems kann anders aussehen. Erscheinen
+ keine pcm Geräte, dann ist zuvor
+ ein Fehler aufgetreten. Wenn das passiert, schauen Sie sich Ihre
+ Kernelkonfiguration noch einmal an und vergewissern Sie sich,
+ dass Sie den richtigen Treiber gewählt haben. Weitere
+ Hinweise zur Fehlersuche gibt .
- Ergab der vorige Befehl pcm0 als
- Ausgabe, dann müssen Sie folgendes als root
- ausführen:
+
+ Ab &os; 5.0 können Sie den Rest dieses
+ Abschnitts überspringen. &man.devfs.5; legt in
+ neueren Versionen von &os; die Gerätedateien
+ automatisch an.
+
- &prompt.root; cd /dev
+ Ergab der vorige Befehl pcm0 als
+ Ausgabe, dann müssen Sie folgendes als root
+ ausführen:
+
+ &prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0
- Wenn auf den vorigen Befehl pcm1
- als Ausgabe erschienen ist, dann müssen Sie dieselben
- Befehle ausführen, nur dass Sie
- snd0 durch
- snd1 ersetzen.
+ Wenn auf den vorigen Befehl pcm1
+ als Ausgabe erschienen ist, dann müssen Sie dieselben
+ Befehle ausführen, nur dass Sie
+ snd0 durch
+ snd1 ersetzen.
-
- Die obigen Kommandos legen kein
- /dev/snd Device an.
-
+
+ Die obigen Kommandos legen kein
+ /dev/snd Device an.
+
- Der Befehl MAKEDEV erzeugt eine Gruppe
- von Device Nodes, darunter:
-
-
-
-
-
- Device
- Beschreibung
-
-
-
-
-
- /dev/audio
- SPARC-compatible audio device
-
-
-
- /dev/dsp
- Digitized voice device
-
-
-
- /dev/dspW
- /dev/dsp-ähnliches
- Device mit 16 bits pro Sample
-
-
-
- /dev/midi
- Raw midi access device
-
-
-
- /dev/mixer
- Control port mixer device
-
-
-
- /dev/music
- Level 2 sequencer interface
-
-
-
- /dev/sequencer
- Sequencer device
-
-
-
- /dev/pss
- Programmable device interface
-
-
-
-
-
- Wenn alles geklappt hat, haben Sie jetzt eine
- funktionierende Soundkarte. Nun können Sie eine Anwendung
- wie audio/mpg123 installieren,
- um Audiodateien anhören zu können.
-
-
- Häufige Probleme
-
-
+ Der Befehl MAKEDEV erzeugt eine Gruppe
+ von Device Nodes, darunter:
+
+
- Fehler
- Lösung
+ Device
+ Beschreibung
-
- Device Node
- Gerätedatei
+
- unsupported subdevice XX
- Ein oder mehrere Device Nodes wurden nicht
- korrekt angelegt. Wiederholen Sie die oben angegebenen
- Schritte.
-
-
- I/O port
-
- sb_dspwr(XX) timed out
- Der I/O Port ist nicht korrekt angegeben.
-
-
- IRQ
-
- bad irq XX
- Der IRQ ist falsch angegeben. Stellen Sie
- sicher, dass der angegebene IRQ mit dem Sound IRQ
- übereinstimmt.
-
-
-
- xxx: gus pcm not attached, out of
- memory
- Es ist nicht genug Speicher verfügbar,
- um das Gerät betreiben zu können.
-
-
- DSP
-
- xxx: can't open /dev/dsp!
- Überprüfen Sie mit fstat |
- grep dsp ob eine andere Anwendung das
- Gerät geöffnet hat. Häufige
- Störenfriede sind esound
- oder die Sound-Unterstützung von
- KDE.
-
-
+ /dev/audio
+ &sparc; compatible audio device
+
+
+
+ /dev/dsp
+ Digitized voice device
+
+
+
+ /dev/dspW
+ /dev/dsp-ähnliches
+ Device mit 16 Bits pro Sample
+
+
+
+ /dev/midi
+ Raw midi access device
+
+
+
+ /dev/mixer
+ Control port mixer device
+
+
+
+ /dev/music
+ Level 2 sequencer interface
+
+
+
+ /dev/sequencer
+ Sequencer device
+
+
+
+ /dev/pss
+ Programmable device interface
+
+
+
+ Wenn alles geklappt hat, haben Sie jetzt eine
+ funktionierende Soundkarte. Wenn Ihr CD-ROM- oder
+ DVD-ROM-Laufwerk korrekt mit der Soundkarte verbunden
+ ist, können Sie eine CD im Laufwerk mit dem
+ Befehl &man.cdcontrol.1; abspielen:
+
+ &prompt.user; cdcontrol -f /dev/acd0c play 1
+
+ Es gibt viele Anwendungen, wie
+ audio/workman, die
+ eine bessere Benutzerschnittstelle besitzen. Um sich
+ MP3-Audiodateien anzuhören, können Sie
+ eine Anwendung wie
+ audio/mpg123 installieren.
+
+
+ Häufige Probleme
+
+ Device Node
+ Gerätedatei
+ I/O port
+ IRQ
+ DSP
+
+
+
+
+
+ Fehler
+ Lösung
+
+
+
+
+
+ unsupported subdevice XX
+ Ein oder mehrere Device Nodes wurden nicht
+ korrekt angelegt. Wiederholen Sie die oben angegebenen
+ Schritte.
+
+
+
+ sb_dspwr(XX) timed out
+ Der I/O Port ist nicht korrekt angegeben.
+
+
+
+ bad irq XX
+ Der IRQ ist falsch angegeben. Stellen Sie
+ sicher, dass der angegebene IRQ mit dem Sound IRQ
+ übereinstimmt.
+
+
+
+ xxx: gus pcm not attached, out of memory
+ Es ist nicht genug Speicher verfügbar,
+ um das Gerät zu betreiben.
+
+
+
+ xxx: can't open /dev/dsp!
+ Überprüfen Sie mit fstat |
+ grep dsp ob eine andere Anwendung das
+ Gerät geöffnet hat. Häufige
+ Störenfriede sind esound
+ oder die Sound-Unterstützung von
+ KDE.
+
+
+
+
+
+
+
+
+
+
+ Munish
+ Chopra
+ Beigetragen von
+
+
+
+ Mehrere Tonquellen abspielen
+
+ Oft sollen mehrere Tonquellen gleichzeitig
+ abgespielt werden, auch wenn
+ beispielsweise esound oder
+ artsd das Audiogerät
+ nicht mit einer anderen Anwendung teilen können.
+
+ Unter FreeBSD können mit &man.sysctl.8;
+ virtuelle Tonkanäle
+ eingerichtet werden. Virtuelle Kanäle mischen
+ die Tonquellen im Kernel (so können mehr
+ Kanäle als von der Hardware unterstützt
+ benutzt werden).
+
+ Die Anzahl der virtuellen Kanäle können
+ Sie als Benutzer root wie folgt
+ einstellen:
+
+ &prompt.root; sysctl hw.snd.pcm0.vchans=4
+&prompt.root; sysctl hw.snd.maxautovchans=4
+
+ Im Beispiel werden vier virtuelle Kanäle
+ eingerichtet, eine im Normalfall ausreichende Anzahl.
+ hw.snd.pcm0.vchans ist die Anzahl
+ der virtuellen Kanäle des Geräts
+ pcm0. Die Anzahl kann konfiguriert
+ werden, sobald das Gerät existiert.
+ hw.snd.maxautovchans ist die Anzahl der
+ virtuellen Kanäle, die einem Gerät zugewiesen
+ werden, wenn es durch &man.kldload.8; eingerichtet
+ wird. Da das Modul pcm
+ unabhängig von den Hardware-Treibern geladen werden kann,
+ gibt hw.snd.maxautovchans die Anzahl
+ der virtuellen Kanäle an, die später eingerichtete
+ Geräte erhalten.
+
+ Wenn Sie ein System ohne &man.devfs.5; einsetzen,
+ müssen Anwendungen die Geräte
+ /dev/dsp0.x
+ verwenden. Wenn hw.snd.pcm.0.vchans wie
+ oben auf 4 gesetzt wurde, läuft
+ x von 0
+ bis 4. Auf Systemen mit
+ &man.devfs.5; werden die Geräte automatisch
+ zugeteilt.
+ ChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von
- MP3 Audio
+ MP3-AudioMP3 (MPEG Layer 3 Audio) ermöglicht eine
Klangwiedergabe in CD-ähnlicher Qualität, was Sie sich
auf Ihrem FreeBSD-Rechner nicht entgehen lassen sollten.MP3-PlayerXMMS (X Multimedia System) ist
- bei weitem der beliebteste XFree86 MP3-Player.
+ bei weitem der beliebteste MP3-Player für
+ &xfree86;.
WinAmp-Skins können auch mit
XMMS genutzt werden, da die
Benutzerschnittstelle fast identisch mit der von Nullsofts
WinAmp ist. Daneben
unterstützt XMMS auch eigene
Plugins.XMMS kann als
- audio/xmms Port oder Package installiert
+ multimedia/xmms Port oder Package installiert
werden.Die Benutzerschnittstelle von
XMMS ist leicht zu erlernen und
- beinhaltet eine Playlist, einen graphischen Equalizer und
+ enthält eine Playlist, einen graphischen Equalizer und
vieles mehr. Diejenigen, die mit WinAmp vertraut sind, werden
XMMS sehr leicht zu benutzen
finden.Der Port audio/mpg123 ist
ein alternativer, kommandozeilenorientierter MP3-Player.mpg123 kann ausgeführt
- werden, in dem man das zu benutzende Sound Device und die
- abzuspielende MP3-Datei in der Kommandozeile wie unten
+ werden, indem man das zu benutzende Sound Device und die
+ abzuspielende MP3-Datei auf der Kommandozeile wie unten
angibt:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
-Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
+Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 sollten Sie dabei mit dem
dsp-Device Ihres Systems ersetzen.CD-Audio Tracks rippenBevor man eine ganze CD oder einen CD-Track in das
MP3-Format umwandeln kann, müssen die Audiodaten von der
CD auf die Festplatte gerippt werden. Dabei werden die CDDA
(CD Digital Audio) Rohdaten in WAV-Dateien kopiert.
- Die Anwendung cdda2wav die in dem
+ Die Anwendung cdda2wav die im
sysutils/cdrtools Paket enthalten
ist, kann zum Rippen der Audiodaten und anderen Informationen von CDs
genutzt werden.Wenn die Audio CD in dem Laufwerk liegt, können Sie
mit folgendem Befehl (als root) eine
ganze CD in einzelne WAV-Dateien (eine Datei für jeden
Track) rippen:&prompt.root; cdda2wav -D 0,1,0 -B
+ cdda2wav unterstützt
+ auch ATAPI (IDE) CD-ROM-Laufwerke. Um von einem IDE-Laufwerk
+ zu rippen, übergeben Sie auf der Kommandozeile
+ statt der SCSI-IDs den Gerätenamen. Das folgende
+ Kommando rippt den 7. Track:
+
+ &prompt.root; cdda2wav -D /dev/acd0a -t 7
+
Der Schalter bezieht sich auf
- das SCSI Device 0,1,0, dass sich aus
+ das SCSI Device 0,1,0, das sich aus
dem Ergebnis des Befehls cdrecord -scanbus
ergibt.Um einzelne Tracks zu rippen, benutzen Sie den
Schalter wie folgt:&prompt.root; cdda2wav -D 0,1,0 -t 7Dieses Beispiel rippt den siebten Track der Audio
CD-ROM. Um mehrere Tracks zu rippen, zum Beispiel die Tracks
eins bis sieben, können Sie wie folgt einen Bereich
angeben:&prompt.root; cdda2wav -D 0,1,0 -t 1+7
- cdda2wav unterstützt auch ATAPI
- (IDE) CD-ROM Laufwerke. Wenn Sie ein IDE Laufwerk benutzen, geben
- Sie beim Aufruf von cdda2wav den
- Gerätenamen anstelle der SCSI Gerätenummern an. Um den
- siebten Track eines IDE Laufwerkes zu rippen, benutzen Sie das
- folgende Kommando:
-
- &prompt.root; cdda2wav -D /dev/acd0a -t 7
+ Mit &man.dd.1; können Sie ebenfalls Audio-Stücke
+ von ATAPI-Laufwerken kopieren. Dies wird in
+ erläutert.MP3-Dateien kodierenGegenwärtig ist Lame der
meistbenutzte MP3-Encoder. Lame
finden Sie unter audio/lame im
Ports-Verzeichnis.Benutzen Sie die WAV-Dateien, die sie von CD gerippt
haben, und wandeln sie mit dem folgenden Befehl die Datei
audio01.wav in
audio01.mp3 um:&prompt.root; lame -h -b 128 \
--tt "Foo Liedtitel" \
--ta "FooBar Künstler" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Geripped und kodiert von Foo" \
--tg "Musikrichtung" \
audio01.wav audio01.mp3
- 128 kbits ist die gewöhnliche MP3 Bitrate. Viele
- bevorzugen mit 160 oder 192 kbits eine höhere Qualität. Je
- höher die Bitrate ist, desto mehr Speicherplatz
+ 128 kbits ist die gewöhnliche MP3-Bitrate. Viele
+ bevorzugen mit 160 oder 192 kbits eine höhere Qualität.
+ Je höher die Bitrate ist, desto mehr Speicherplatz
benötigt die resultierende MP3-Datei, allerdings wird die
Qualität dadurch auch besser. Der Schalter
verwendet den higher quality but a
little slower (höhere Qualität, aber etwas
langsamer) Modus. Die Schalter, die mit
beginnen, sind ID3-Tags, die in der Regel
Informationen über das Lied enthalten und in die
MP3-Datei eingebettet sind. Weitere Optionen können in
der Manualpage von Lame nachgelesen
werden.MP3-Dateien dekodierenUm aus MP3-Dateien eine Audio CD zu erstellen, müssen
diese in ein nicht komprimiertes WAV-Format umgewandelt
werden. Sowohl XMMS als auch
mpg123 unterstützen die Ausgabe
der MP3-Dateien in unkomprimierte Dateiformate.Dekodieren mit XMMS:Starten Sie XMMS.Klicken Sie mit der rechten Maustaste, um das
XMMS-Menu zu öffnen.Wählen Sie Preference im
Untermenü Options.Ändern Sie das Output-Plugin in Disk
Writer Plugin.Drücken Sie Configure.Geben Sie ein Verzeichnis ein (oder wählen Sie
browse), in das Sie die unkomprimierte Datei schreiben
wollen.Laden Sie die MP3-Datei wie gewohnt in
XMMS mit einer Lautstärke
von 100% und einem abgeschalteten EQ.Drücken Sie Play und es wird
so aussehen, als spiele XMMS
die MP3-Datei ab, aber keine Musik ist zu hören. Der
Player überspielt die MP3-Datei in eine Datei.
- Vergessen Sie nicht, das Output Plugin wieder in den
+ Vergessen Sie nicht, das Output-Plugin wieder in den
Ausgangszustand zurückzusetzen um wieder MP3-Dateien
anhören zu können.Mit mpg123 nach stdout schreiben:
- Geben Sie mpg123 -s
- audio01.mp3 > audio01.pcm
- ein
+ Geben Sie mpg123 -s
+ audio01.mp3 > audio01.pcm
+ ein.
- XMMS schreibt die Datei in dem
- WAV-Formal während mpg123 die
- MP3-Datei in rohe PCM Audiodaten umwandelt. Beide Formate
- können von cdrecord oder
- burncd verwendet werden, um Audio
- CDs zu schreiben.
+ XMMS schreibt die Datei im
+ WAV-Format aus während mpg123 die
+ MP3-Datei in rohe PCM-Audiodaten umwandelt.
+ cdrecord kann mit beiden Formaten
+ Audio-CDs erstellen, &man.burncd.8; kann nur rohe
+ PCM-Audiodaten verarbeiten. Der Dateikopf von WAV-Dateien
+ erzeugt am Anfang des Stücks ein Knacken. Sie können
+ den Dateikopf mit dem Werkzeug SoX,
+ das sich als Paket oder aus dem Port
+ audio/sox installieren
+ lässt, entfernen:
+
+ &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawLesen Sie in diesem Handbuch,
um mehr Informationen zur Benutzung von CD-Brennern mit FreeBSD zu
erhalten.
+
+
+
+
+
+ Ross
+ Lippert
+ Beigetragen von
+
+
+
+
+
+ Videos wiedergeben
+
+ Die Wiedergabe von Videos ist ein neues, sich schnell
+ entwickelndes, Anwendungsgebiet. Seien Sie geduldig, es
+ wird nicht alles so glatt laufen, wie bei den
+ Audio-Anwendungen.
+
+ Bevor Sie beginnen, sollten Sie das Modell Ihrer
+ Videokarte und den benutzten Chip kennen. Obwohl
+ &xfree86; viele Vidiokarten
+ unterstützt, können nur einige Karten Videos
+ schnell genug wiedergeben. Eine Liste der Erweiterungen,
+ die der X-Server für eine Videokarte unterstützt,
+ erhalten Sie unter laufendem X11 mit dem Befehl
+ &man.xdpyinfo.1;.
+
+ Halten Sie eine kurze MPEG-Datei bereit, mit der
+ Sie Wiedergabeprogramme und deren Optionen testen
+ können. Da einige DVD-Spieler in der Voreinstellung
+ das DVD-Gerät mit /dev/dvd ansprechen
+ oder diesen Namen fest einkodiert haben, wollen Sie
+ vielleicht symbolische Links auf die richtigen
+ Geräte anlegen:
+
+ &prompt.root; ln -sf /dev/acd0c /dev/dvd
+&prompt.root; ln -sf /dev/racd0c /dev/rdvd
+
+ Auf FreeBSD 5.X mit &man.devfs.5; werden
+ andere symbolische Links benötigt:
+
+ &prompt.root; ln -sf /dev/acd0 /dev/dvd
+&prompt.root; ln -sf /dev/acd0 /dev/rdvd
+
+ Wegen &man.devfs.5; gehen gesondert angelegte Links
+ wie diese bei einem Neustart des Systems verloren.
+ Damit die symbolischen Links automatisch beim Neustart
+ des Systems angelegt werden, fügen Sie die
+ folgenden Zeilen in /etc/devfs.conf
+ ein:
+
+ link acd0 dvd
+link acd0 rdvd
+
+ Zum Entschlüsseln von DVDs müssen bestimmte
+ DVD-ROM-Funktionen aufgerufen werden und schreibender
+ Zugriff auf das DVD-Gerät erlaubt sein.
+
+
+ Kerneloption
+ options CPU_ENABLE_SSE
+
+
+ Kerneloption
+ options USER_LDT
+
+
+ Einige Ports sind auf die nachstehenden Kerneloptionen
+ angewiesen. Bevor Sie einen dieser Ports bauen, fügen
+ Sie die Kerneloptionen zu Ihrer Kernelkonfiguration hinzu.
+ Bauen und installieren Sie dann einen neuen Kernel und
+ starten Sie das System neu.
+
+ option CPU_ENABLE_SSE
+option USER_LDT
+
+
+ Unter &os; 5.X existiert
+ option USER_LDT nicht.
+
+
+ X11 benutzt Shared-Memory und Sie sollten die
+ nachstehenden &man.sysctl.8;-Variablen auf die
+ gezeigten Werte erhöhen:
+
+ kern.ipc.shmmax=67108864
+kern.ipc.shmall=32768
+
+
+ Video-Schnittstellen
+
+ XVideo
+ SDL
+ DGA
+
+ Es gibt einige Möglichkeiten, Videos unter
+ X11 abzuspielen. Welche Möglichkeit funktioniert,
+ hängt stark von der verwendeten Hardware ab.
+ Ebenso hängt die erzielte Qualität von der
+ Hardware ab. Die Videowiedergabe unter X11 ist ein
+ aktuelles Thema, sodass jede neue Version von
+ &xfree86; wahrscheinlich
+ erhebliche Verbesserung enthält.
+
+ Gebräuchliche Video-Schnittstellen sind:
+
+
+
+ X11: normale X11-Ausgabe über Shared-Memory.
+
+
+ XVideo: Eine Erweiterung der X11-Schnittstelle,
+ die Videos in jedem X11-Drawable anzeigen kann.
+
+
+ SDL: Simple Directmedia Layer.
+
+
+ DGA: Direct Graphics Access.
+
+
+ SVGAlib: Eine Schnittstelle zur Grafikausgabe auf
+ der Konsole.
+
+
+
+
+ XVideo
+
+ Die Erweiterung XVideo (auch Xvideo,
+ Xv oder xv) von &xfree86; 4.X,
+ erlaubt die beschleunigte Wiedergabe von Videos in
+ jedem Drawable. Diese Erweiterung liefert auch auf
+ weniger leistungsfähigen Systemen
+ (beispielsweise einem PIII 400 MHz Laptop)
+ eine gute Wiedergabe. Leider ist die Anzahl der
+ Karten, mit denen die Erweiterung auf Anhieb zusammenarbeitet,
+ zurzeit recht kurz:
+
+
+
+ 3DFX Voodoo 3
+
+
+ &intel; i810 und i815
+
+
+ einige S3-Chips (wie Savage/IX und Savage/MX)
+
+
+
+ Geben Sie nicht gleich auf, wenn Ihre Karte nicht
+ aufgeführt ist: Mit jeder neuen Version von
+ &xfree86; 4.X wird die Liste
+ der Karten, die XVideo unterstützen, erweitert
+
+ Das &xfree86;-Team
+ wartet noch auf die Veröffentlichung einer
+ Spezifikation, die beschreibt, wie die gebräuchlichen
+ nVidia-Karten XVideo unterstützen. Daher wird
+ es noch einige Zeit dauern, bis die XVideo-Erweiterung
+ auf diesen Karten läuft.
+ .
+ Ob die Erweiterung läuft, entnehmen Sie der
+ Ausgabe von xvinfo:
+
+ &prompt.user; xvinfo
+
+ XVideo wird untertsützt, wenn die Ausgabe wie
+ folgt aussieht:
+
+ X-Video Extension version 2.2
+screen #0
+ Adaptor #0: "Savage Streams Engine"
+ number of ports: 1
+ port base: 43
+ operations supported: PutImage
+ supported visuals:
+ depth 16, visualID 0x22
+ depth 16, visualID 0x23
+ number of attributes: 5
+ "XV_COLORKEY" (range 0 to 16777215)
+ client settable attribute
+ client gettable attribute (current value is 2110)
+ "XV_BRIGHTNESS" (range -128 to 127)
+ client settable attribute
+ client gettable attribute (current value is 0)
+ "XV_CONTRAST" (range 0 to 255)
+ client settable attribute
+ client gettable attribute (current value is 128)
+ "XV_SATURATION" (range 0 to 255)
+ client settable attribute
+ client gettable attribute (current value is 128)
+ "XV_HUE" (range -180 to 180)
+ client settable attribute
+ client gettable attribute (current value is 0)
+ maximum XvImage size: 1024 x 1024
+ Number of image formats: 7
+ id: 0x32595559 (YUY2)
+ guid: 59555932-0000-0010-8000-00aa00389b71
+ bits per pixel: 16
+ number of planes: 1
+ type: YUV (packed)
+ id: 0x32315659 (YV12)
+ guid: 59563132-0000-0010-8000-00aa00389b71
+ bits per pixel: 12
+ number of planes: 3
+ type: YUV (planar)
+ id: 0x30323449 (I420)
+ guid: 49343230-0000-0010-8000-00aa00389b71
+ bits per pixel: 12
+ number of planes: 3
+ type: YUV (planar)
+ id: 0x36315652 (RV16)
+ guid: 52563135-0000-0000-0000-000000000000
+ bits per pixel: 16
+ number of planes: 1
+ type: RGB (packed)
+ depth: 0
+ red, green, blue masks: 0x1f, 0x3e0, 0x7c00
+ id: 0x35315652 (RV15)
+ guid: 52563136-0000-0000-0000-000000000000
+ bits per pixel: 16
+ number of planes: 1
+ type: RGB (packed)
+ depth: 0
+ red, green, blue masks: 0x1f, 0x7e0, 0xf800
+ id: 0x31313259 (Y211)
+ guid: 59323131-0000-0010-8000-00aa00389b71
+ bits per pixel: 6
+ number of planes: 3
+ type: YUV (packed)
+ id: 0x0
+ guid: 00000000-0000-0000-0000-000000000000
+ bits per pixel: 0
+ number of planes: 0
+ type: RGB (packed)
+ depth: 1
+ red, green, blue masks: 0x0, 0x0, 0x0
+
+ Einige der aufgeführten Formate (wie YUV2 oder YUV12)
+ existieren in machen XVideo-Implementierungen nicht.
+ Dies kann zu Problemen mit einigen Spielern führen.
+
+ XVideo wird wahrscheinlich von Ihrer Karte
+ nicht unterstützt, wenn die die Ausgabe wie
+ folgt aussieht:
+
+ X-Video Extension version 2.2
+screen #0
+no adaptors present
+
+ Wenn die XVideo-Erweiterung auf Ihrer Karte nicht
+ läuft, wird es nur etwas schwieriger, die
+ Anforderungen für die Wiedergabe von Videos zu
+ erfüllen. Abhängig von Ihrer Videokarte
+ und Ihrem Prozessor können Sie dennoch zufriedenstellende
+ Ergebnisse erzielen. Sie sollten vielleicht die
+ weiterführenden Quellen in zu Rate ziehen,
+ um die Geschwindigkeit Ihres Systems zu steigern.
+
+
+
+ Simple Directmedia Layer
+
+ Die Simple Directmedia Layer, SDL,
+ ist eine zwischen µsoft.windows;, BeOS und &unix;
+ portable Schnittstelle. Mit dieser Schnittstelle
+ können Anwendungen plattformunabhängig und
+ effizient Ton und Grafik benutzen. SDL
+ bietet eine hardwarenahe Schnittstelle, die manchmal
+ schneller als die X11-Schnittstelle sein kann.
+
+ SDL finden Sie in den Ports
+ im Verzeichnis devel/sdl12.
+
+
+
+ Direct Graphics Access
+
+ Die &xfree86;-Erweiterung
+ Direct Graphics Access (DGA) erlaubt es
+ Anwendungen, am X-Server vorbei direkt in den Framebuffer
+ zu schreiben. Da die Anwendung und der X-Server auf gemeinsame
+ Speicherbereiche zugreifen, müssen die Anwendungen
+ unter dem Benutzer root laufen.
+
+ Die DGA-Erweiterung kann mit &man.dga.1; getestet
+ werden. Das Kommando dga wechselt,
+ jedes Mal wenn eine Taste gedrückt wird, die Farben
+ der Anzeige. Sie können das Programm mit der
+ Taste q verlassen.
+
+
+
+
+ Video-Anwendungen
+
+
+ Video-Anwendungen
+
+
+ Dieser Abschnitt behandelt Anwendungen aus der
+ &os;-Ports-Collection, die Videos abspielen. An der
+ Videowiedergabe wird derzeit aktiv gearbeitet, sodass
+ der Funktionsumfang der Anwendungen von dem hier beschriebenen
+ abweichen kann.
+
+ Viele unter &os; laufende Videoanwendungen wurden
+ unter Linux entwickelt und befinden
+ sich noch im Beta-Status. Der Betrieb dieser Anwendungen
+ unter &os; stößt vielleicht auf einige der
+ nachstehenden Probleme:
+
+
+
+ Eine Anwendung kann eine Datei einer anderen
+ Anwendung nicht abspielen.
+
+
+
+ Eine Anwendung kann eine selbst produzierte
+ Datei nicht abspielen.
+
+
+
+ Wenn dieselbe Anwendung auf unterschiedlichen
+ Maschinen gebaut wird, wird ein Video unterschiedlich
+ wiedergegeben.
+
+
+
+ Ein vergleichsweise einfacher Filter, wie die
+ Skalierung eines Bildes, führt zu deutlichen
+ Artefakten in der Darstellung.
+
+
+
+ Eine Anwendung stürzt häufig ab.
+
+
+
+ Die Dokumentation wird bei der Installation des Ports
+ nicht installiert. Sie befindet sich entweder auf
+ dem Internet oder im Verzeichnis
+ work des Ports.
+
+
+
+ Viele Anwendungen sind zudem sehr Linux-lastig.
+ Probleme entstehen durch die Implementierung von
+ Standard-Bibliotheken in Linux-Distributionen oder
+ dadurch, dass die Anwendung bestimmte Linux-Kernelfunktionen
+ voraussetzt. Diese Probleme werden nicht immer
+ vom Betreuer eines Ports bemerkt und umgangen.
+ In der Praxis entstehen dadurch folgende Probleme:
+
+
+
+ Eigenschaften des Prozessors werden über
+ /proc/cpuinfo ermittelt.
+
+
+
+ Die falsche Anwendung von Threads führt dazu,
+ dass sich ein Programm aufhängt statt sich
+ zu beenden.
+
+
+
+ Die Anwendung hängt von anderen Anwendungen
+ ab, die sich noch nicht in der &os;-Ports-Collection
+ befinden.
+
+
+
+ Allerdings arbeiten die Anwendungsentwickler bislang mit
+ den Betreuern der Ports zusammen, sodass zusätzlicher
+ Portierungsaufwand minimiert wird.
+
+
+ MPlayer
+
+ MPlayer ist ein kürzlich
+ entstandener und sich stark weiterentwickelnder Video-Spieler.
+ Das Hauptaugenmerk des MPlayer-Teams
+ liegt auf Geschwindigkeit und Flexibilität auf
+ Linux und anderen &unix; Systemen. Das Projekt entstand
+ weil der Gründer des Teams unzufrieden mit der
+ Geschwindigkeit bestehender Video-Spieler war. Kritiker
+ behaupten, dass die Benutzeroberfläche der einfachen
+ Gestaltung zum Opfer fiel. Wenn Sie sich allerdings erstmal
+ an die Kommandozeilenoptionen und die Tastensteuerung
+ gewöhnt haben, funktioniert die Anwendung sehr gut.
+
+
+ MPlayer bauen
+
+ MPlayer
+ bauen
+
+
+ MPlayer finden Sie in der
+ Ports-Collection unter
+ multimedia/mplayer.
+ Der Bau von MPlayer
+ berücksichtigt die vorhandene Harware und erzeugt
+ ein Programm, das nicht auf ein anderes System übertragbar
+ ist. Es ist daher wichtig, dass Sie das Programm aus
+ den Ports bauen und nicht das fertige Paket installieren.
+ Zusätzlich können Sie auf der Kommandozeile
+ von make noch einige Optionen angeben,
+ die am Anfang des Baus ausgegeben werden:
+
+ &prompt.root; cd /usr/ports/multimedia/mplayer
+&prompt.root; make
+You can enable additional compilation optimizations
+by defining WITH_OPTIMIZED_CFLAGS
+You can enable GTK GUI by defining WITH_GUI.
+You can enable DVD support by defining WITH_DVD.
+You can enable SVGALIB support by defining WITH_SVGALIB.
+You can enable VORBIS sound support by defining WITH_VORBIS.
+You can enable XAnim DLL support by defining WITH_XANIM.
+
+ Wenn der Port
+ x11-toolkits/gtk12
+ installiert ist, können Sie auch das GUI bauen.
+ Ansonsten lohnt sich der Aufwand nicht. Wenn Sie mit
+ MPlayer DVDs (unter
+ Umständen CSS-kodierte) abspielen möchten,
+ müssen Sie die Option angeben
+
+ In einigen Ländern ist die unberechtigte
+ Wiedergabe von DVDs strafbar. Prüfen Sie
+ das geltende Recht, bevor Sie diese Option
+ aktivieren.
+ .
+ Der Bau könnte beispielsweise mit den folgenden
+ Optionen gestartet werden:
+
+ &prompt.root; make WITH_DVD=yes WITH_SVGALIB=yes
+
+ Als dieser Abschnitt verfasst wurde, baute der
+ MPlayer-Port die HTML-Dokumentation
+ und das Programm mplayer. Sie
+ können auch mencoder bauen;
+ ein Werkzeug, mit dem Sie Videodateien umwandeln
+ können. Dazu ist eine Änderung im
+ Makefile des Ports nötig.
+ Spätere Versionen des Ports bauen das Werkzeug
+ vielleicht automatisch mit.
+
+ Die HTML-Dokumentation von
+ MPlayer ist sehr lehrreich.
+ Wenn Sie in diesem Kapitel Informationen über
+ Video-Hardware oder Schnittstellen vermissen, ist
+ die MPlayer-Dokumentation
+ eine ausgezeichnete Quelle. Wenn Sie Informationen
+ über die Video-Unterstützung unter &unix;
+ benötigen, sollten Sie die
+ MPlayer-Dokumentation
+ auf jeden Fall lesen.
+
+
+
+ MPlayer benutzen
+
+ MPlayer
+ benutzen
+
+
+ Jeder Benutzer von MPlayer
+ muss in seinem Heimatverzeichnis das Verzeichnis
+ .mplayer
+ anlegen. Dieses Verzeichnis können Sie
+ wie folgt anlegen:
+
+ &prompt.user; cd /usr/ports/multimedia/mplayer
+&prompt.user; make install-user
+
+ Die Kommandozeilenoptionen von mplayer
+ sind in der Hilfeseite aufgeführt. Eine genaue
+ Beschreibung befindet sich in der HTML-Dokumentation.
+ In diesem Abschnitt wird nur der normale Gebrauch
+ von mplayer beschrieben.
+
+ Um eine Datei, wie
+ testfile.avi,
+ unter verschiedenen Video-Schnittstellen abzuspielen,
+ benutzen Sie die Option :
+
+ &prompt.user; mplayer -vo xv testfile.avi
+ &prompt.user; mplayer -vo sdl testfile.avi
+ &prompt.user; mplayer -vo x11 testfile.avi
+ &prompt.root; mplayer -vo dga testfile.avi
+ &prompt.root; mplayer -vo 'sdl:dga' testfile.avi
+
+ Es lohnt sich, alle Option zu testen. Die
+ erzielte Geschwindigkeit hängt von vielen
+ Faktoren ab und variiert beträchtlich je nach
+ eingesetzter Hardware.
+
+ Wenn Sie eine DVD abspielen wollen, ersetzen Sie
+ testfile.avi durch
+ .
+ N ist die Nummer des
+ Stücks, das Sie abspielen wollen und
+ Gerät gibt den
+ Gerätenamen des DVD-ROMs an. Das nachstehende
+ Kommando spielt das dritte Stück von
+ /dev/dvd:
+
+ &prompt.root; mplayer -vo dga -dvd 3 /dev/dvd
+
+ Die Tastenkombinationen zum Abbrechen, Anhalten
+ und Weiterführen der Wiedergabe entnehmen Sie
+ bitte der Ausgabe von mplayer -h
+ oder der Hilfeseite.
+
+ Weitere nützliche Optionen für die
+ Wiedergabe sind zur Wiedergabe
+ im Vollbild-Modus und
+ zur Steigerung der Geschwindigkeit.
+
+ Damit die Kommandozeile von mplayer
+ kurz bleibt, kann ein Benutzer Vorgaben in der Datei
+ .mplayer/config hinterlegen:
+
+ vo=xv
+fs=yes
+zoom=yes
+
+ Schließlich kann mplayer
+ noch DVD-Stücke in .vob-Dateien
+ rippen. Das zweite Stück einer DVD wandeln Sie
+ wie folgt in eine Datei um:
+
+ &prompt.root; mplayer -dumpstream -dumpfile out.vob -dvd 2 /dev/dvd
+
+ Die Ausgabedatei out.vob
+ wird im MPEG-Format abgespeichert und kann mit
+ anderen Werkzeugen aus diesem Abschnitt bearbeitet
+ werden.
+
+
+
+ mencoder
+
+ mencoder
+
+
+ Wenn Sie mencoder zusammen
+ mit MPlayer installieren,
+ denken Sie bitte daran, dass sich mencoder
+ noch in einem experimentellen Status befindet. Sie
+ sollten sich die HTML-Dokumentation durchlesen, bevor
+ Sie mencoder benutzen. Es gibt
+ zwar eine Hilfeseite, die aber ohne die HTML-Dokumentation
+ nur eingeschräkt nützlich ist. Es gibt
+ viele Möglichkeiten die Qualität zu verbessern,
+ die Bitrate zu verringern und Formate zu konvertieren.
+ Einige davon haben erhebliche Auswirkungen auf die
+ Geschwindigkeit der Wiedergabe. Zum Start finden
+ Sie im Folgenden einige Kommandozeilen. Die erste
+ kopiert einfach eine Datei:
+
+ &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi
+
+ Falsche Kombinationen von Kommandozeilenparametern
+ ergeben eventuell Dateien, die selbst
+ mplayer nicht mehr abspielen kann.
+ Wenn Sie in eine Datei rippen, sollten Sie daher auf
+ jeden Fall die Option von
+ mplayer verwenden.
+
+ Die nachstehende Kommandozeile wandelt die Datei
+ input.avi nach MPEG4 mit MPEG3
+ für den Ton um (hierfür wird der Ports
+ audio/lame
+ benötigt):
+
+ &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
+ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
+
+ Die Ausgabedatei lässt sowohl mit
+ mplayer als auch
+ xine abspielen.
+
+ Wenn Sie input.avi durch
+ ersetzen und das
+ Kommando unter root laufen lassen,
+ können Sie ein DVD-Stück direkt konvertieren.
+ Da Sie wahrscheinlich beim ersten Mal unzufrieden mit
+ den Ergebnissen sind, sollten Sie das Stück zuerst
+ in eine Datei schreiben und anschließend
+ die Datei weiterverarbeiten.
+
+
+
+
+ Der Video-Spieler xine
+
+ Der Video-Spieler xine
+ ist ein Projekt mit großem Umfang. Das Projekt
+ will nicht nur ein Programm für alle Video-Anwendungen
+ bieten, sondern auch eine wiederverwendbare Bibliothek
+ und ein Programm, das durch Plugins erweiterbar ist.
+ Das Programm steht als fertiges Paket oder als Port
+ unter multimedia/xine
+ zur Verfügung.
+
+ Der multimedia/xine-Spieler
+ hat noch ein paar Ecken und Kanten, macht aber insgesamt
+ einen guten Eindruck. Für einen reibungslosen
+ Betrieb benötigt xine
+ entweder eine schnelle CPU oder
+ die XVideo-Erweiterung. Das GUI
+ ist etwas schwerfällig.
+
+ Zurzeit gibt es kein xine-Modul,
+ das CSS-kodierte DVDs abspielen kann und sich in
+ der &os; Ports-Collection befindet.
+
+ xine ist benutzerfreundlicher
+ als MPlayer, bietet allerdings
+ nicht soviele Möglichkeiten. Am schnellsten läuft
+ xine mit der
+ XVideo-Erweiterung.
+
+ In der Voreinstellung startet xine
+ eine grafische Benutzeroberfläche. Über
+ Menüs können Sie Dateien öffnen:
+
+ &prompt.user; xine
+
+ Alternativ können Sie das Programm auch ohne
+ GUI aufrufen und Dateien direkt abspielen:
+
+ &prompt.user; xine -g -p mymovie.avi
+
+
+
+ Die transcode-Werkzeuge
+
+ transcode ist kein Spieler
+ sondern eine Sammlung von Werkzeugen, die
+ .avi- und
+ .mpg-Dateien umwandeln.
+ transcode mischt Video-Dateien
+ und kann kaputte Video-Dateien reparieren. Die
+ Werkzeuge werden als Filter verwendet, das heißt
+ die Ein- und Ausgaben verwenden
+ stdin/stdout.
+
+ Wie MPlayer befindet sich
+ transcode in einem experimentellen
+ Stadium und sollte aus dem Port
+ multimedia/transcode
+ gebaut werden. Der Bau besitzt viele Optionen, wir
+ empfehlen die nachstehende Kommandozeile:
+
+ &prompt.root; make WITH_LIBMPEG2=yes
+
+ Wenn Sie den Port
+ multimedia/avifile
+ installieren wollen, sollten Sie die Kommandozeile
+ um die Option erweitern:
+
+ &prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yes
+
+ Die beiden folgenden Kommandozeilen wandeln
+ Videoformate um und skalieren dabei das Video.
+ Das erste Kommando wandelt das Video in eine
+ openDIVX-AVI-Datei um, das zweite wandelt das
+ Video in das portablere MPEG-Format um.
+
+ &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
+-y opendivx -N 0x55 -o output.avi
+
+ &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
+-y mpeg -N 0x55 -o output.tmp
+&prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1
+
+ Es gibt eine Hilfeseite für
+ transcode, allerdings existiert
+ kaum Dokumentation zu den verschiedenen
+ tc*-Werkzeugen (wie
+ tcmplex), die ebenfalls
+ installiert werden. Zu jedem Kommando gibt
+ aber die Option eine knappe
+ Beschreibung aus.
+
+ transcode läuft erheblich
+ langsamer als mencoder, produziert
+ aber Dateien, die sich mit mehr Programmen abspielen
+ lassen. Beispielsweise lassen sich mit
+ transcode erzeugte MPEGs mit
+ &windows.media; Player und
+ Apples &quicktime; abspielen.
+
+
+
+
+ Weiterführende Quellen
+
+ Die Video-Software für &os; entwickelt sich
+ sehr schnell. Es ist wahrscheinlich, dass die hier
+ angesprochenen Probleme bald gelöst sind. Bis dahin
+ müssen Anwender, die das meiste aus den Audio- und
+ Video-Fähigkeiten von &os; machen wollen, Informationen
+ aus mehreren FAQs und Tutorien zusammensuchen und
+ verschiedene Anwendungen nebeneinander betreiben. Dieser
+ Abschnitt weist auf weitere Informationsquellen hin.
+
+ Die
+ MPlayer-Dokumentation
+ ist sehr aufschlussreich. Die Dokumente sollten wahrscheinlich
+ von jedem gelesen werden, der hohe Fachkenntnisse über
+ Video auf &unix; Systemen erlangen will. Die
+ MPlayer-Mailinglisten reagiert
+ feindselig auf Personen, die es nicht für nötig
+ halten, die Dokumentation zu lesen. Wenn Sie Fehlerberichte
+ an die Liste schicken wollen, lesen Sie bitte vorher die
+ ausgezeichnete Dokumentation (RTFM).
+
+ Das
+ xine HOWTO
+ enthält allgemein gültige Hinweise zur
+ Verbesserung der Wiedergabegeschwindigkeit.
+
+ Schließlich gibt es noch weitere vielversprechende
+ Anwendungen, die Sie vielleicht ausprobieren wollen:
+
+
+
+ Avifile
+ gibt es schon als Port
+ multimedia/avifile.
+
+
+
+ Ogle
+ wurde ebenfalls schon portiert:
+ multimedia/ogle.
+
+
+
+ Xtheater.
+
+
+
+ multimedia/dvdauthor,
+ ist ein Open-Source-Paket, mit dem Sie DVDs erstellen
+ können.
+
+
+
+
+
+
+
+
+
+ Josef
+ El-Rayes
+ Beigetragen von
+
+
+
+
+ Marc
+ Fonvieille
+ Überarbeitet von
+
+
+
+
+
+ TV-Karten einrichten
+
+ TV-Karten
+
+
+
+ Einführung
+
+ Mit TV-Karten können Sie mit Ihrem Rechner
+ über Kabel oder Antenne fernsehen. Die meisten
+ Karten besitzen einen RCA- oder S-Video-Eingang.
+ Einige Karten haben auch einen FM-Radio-Empfänger.
+
+ Der &man.bktr.4;-Treiber von &os; unterstützt
+ PCI-TV-Karten mit einem Brooktree Bt848/849/878/879 oder
+ einem Conexant CN-878/Fusion 878a Chip. Die Karte sollte
+ einen der unterstützten Empfänger besitzen, die in
+ der Hilfeseite &man.bktr.4; aufgeführt sind.
+
+
+
+ Den Treiber einrichten
+
+ Um Ihre Karte zu benutzen, müssen Sie den
+ &man.bktr.4;-Treiber laden. Fügen Sie die
+ nachstehende Zeile in die Datei
+ /boot/loader.conf ein:
+
+ bktr_load="YES"
+
+ Sie können den Treiber für die TV-Karte
+ auch fest in den Kernel compilieren. Erweitern Sie
+ dazu Ihre Kernelkonfiguration um die folgenden Zeilen:
+
+ device bktr
+device iicbus
+device iicbb
+device smbus
+
+ Die zusätzlichen Treiber werden benötigt,
+ da die Komponenten der Karte über einen I2C-Bus
+ verbunden sind. Bauen und installieren Sie dann den
+ neuen Kernel.
+
+ Anschließend müssen Sie Ihr System
+ neu starten. Während des Neustarts sollte
+ Ihre TV-Karte erkannt werden:
+
+ bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
+iicbb0: <I2C bit-banging driver> on bti2c0
+iicbus0: <Philips I2C bus> on iicbb0 master-only
+iicbus1: <Philips I2C bus> on iicbb0 master-only
+smbus0: <System Management Bus> on bti2c0
+bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
+
+ Abhängig von Ihrer Hardware können die
+ Meldungen natürlich anders aussehen. Sie sollten
+ aber prüfen, dass der Empfänger richtig erkannt wird.
+ Die entdeckten Geräte lassen sich mit &man.sysctl.8;
+ oder in der Kernelkonfigurationsdatei überschreiben.
+ Wenn Sie beispielsweise einen Philips-SECAM-Empfänger
+ erzwingen wollen, fügen Sie die folgende Zeile
+ zur Kernelkonfigurationsdatei hinzu:
+
+ options OVERRIDE_TUNER=6
+
+ Alternativ können Sie direkt &man.sysctl.8; benutzen:
+
+ &prompt.root; sysctl hw.bt848.tuner=6
+
+ Weiteres zu den Optionen entnehmen Sie bitte der
+ Hilfeseite &man.bktr.4; und der Datei
+ /usr/src/sys/conf/NOTES.
+ Unter &os; 4.X schauen Sie bitte in der Datei
+ /usr/src/sys/i386/conf/LINT nach.
+
+
+
+ Nützliche Anwendungen
+
+ Um die TV-Karte zu benutzen, müssen Sie eine
+ der nachstehenden Anwendungen installieren:
+
+
+
+ multimedia/fxtv
+ lässt das Fernsehprogramm in einem Fenster laufen
+ und kann Bilder, Audio und Video aufzeichnen.
+
+
+ multimedia/xawtv
+ eine weitere TV-Anwendung, mit den gleichen Funktionen
+ wie fxtv.
+
+
+ misc/alevt dekodiert
+ und zeigt Videotext/Teletext an.
+
+
+ Mit audio/xmradio
+ lässt sich der FM-Radio-Empfänger, der sich
+ auf einigen TV-Karten befindet, benutzen.
+
+
+ audio/wmtune
+ ein leicht zu bedienender Radio-Empfänger.
+
+
+
+ Weitere Anwendungen finden Sie in der &os;
+ Ports-Collection.
+
+
+
+ Fehlersuche
+
+ Wenn Sie Probleme mit Ihrer TV-Karte haben, prüfen
+ Sie zuerst, ob der Video-Capture-Chip und der Empfänger
+ auch wirklich vom &man.bktr.4;-Treiber unterstützt
+ werden. Prüfen Sie dann, ob Sie die richtigen
+ Optionen verwenden. Weitere Hilfe erhalten Sie auf
+ der Mailingliste &a.multimedia.name; und in deren
+ Archiven.
+
+
-
diff --git a/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
index 7f634c5467..331846133a 100644
--- a/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
@@ -1,713 +1,793 @@
PGP SchlüsselPGP-SchlüsselVerwenden Sie die nachstehenden Schlüssel, wenn Sie
eine Signatur überprüfen oder eine verschlüsselte
E-Mail an einen Ansprechpartner oder einen Entwickler schicken wollen.
Den vollständigen Schlüsselring der Benutzer von
FreeBSD.org finden Sie unter
http://www.FreeBSD.org/doc/pgpkeyring.txt.Ansprechpartner&a.security-officer;
&pgpkey.security-officer;
&a.core-secretary;
&pgpkey.core-secretary;
Mitglieder des Core Teams&a.imp;
&pgpkey.imp;
+
+ &a.jhb;
+ &pgpkey.jhb;
+
+
&a.kuriyama;
&pgpkey.kuriyama;
&a.murray;
&pgpkey.murray;
&a.peter;
&pgpkey.peter;
&a.wes;
&pgpkey.wes;
Entwickler&a.will;
&pgpkey.will;
&a.mat;
&pgpkey.mat;
&a.asami;
&pgpkey.asami;
&a.dougb;
&pgpkey.dougb;
&a.tobez;
&pgpkey.tobez;
&a.mbr;
&pgpkey.mbr;
&a.harti;
&pgpkey.harti;
&a.obraun;
&pgpkey.obraun;
&a.jmb;
&pgpkey.jmb;
&a.brueffer;
&pgpkey.brueffer;
+
+ &a.markus;
+ &pgpkey.markus;
+
+
&a.wilko;
&pgpkey.wilko;
&a.jon;
&pgpkey.jon;
&a.luoqi;
&pgpkey.luoqi;
&a.ache;
&pgpkey.ache;
&a.seanc;
&pgpkey.seanc;
&a.cjh;
&pgpkey.cjh;
&a.cjc;
&pgpkey.cjc;
&a.marcus;
&pgpkey.marcus;
&a.nik;
&pgpkey.nik;
&a.ceri;
&pgpkey.ceri;
&a.brooks;
&pgpkey.brooks;
+
+ &a.pjd;
+ &pgpkey.pjd;
+
+
&a.bsd;
&pgpkey.bsd;
&a.dd;
&pgpkey.dd;
&a.ale;
&pgpkey.ale;
+
+ &a.peadar;
+ &pgpkey.peadar;
+
+
+
+ &a.josef;
+ &pgpkey.josef;
+
+
&a.ue;
&pgpkey.ue;
&a.ru;
&pgpkey.ru;
+
+ &a.le;
+ &pgpkey.le;
+
+
&a.jedgar;
&pgpkey.jedgar;
&a.green;
&pgpkey.green;
&a.lioux;
&pgpkey.lioux;
&a.fanf;
&pgpkey.fanf;
&a.blackend;
&pgpkey.blackend;
&a.petef;
&pgpkey.petef;
&a.billf;
&pgpkey.billf;
&a.patrick;
&pgpkey.patrick;
&a.gioria;
&pgpkey.gioria;
&a.jmg;
&pgpkey.jmg;
&a.dannyboy;
&pgpkey.dannyboy;
+
+ &a.dhartmei;
+ &pgpkey.dhartmei;
+
+
&a.jhay;
&pgpkey.jhay;
&a.sheldonh;
&pgpkey.sheldonh;
&a.mikeh;
&pgpkey.mikeh;
&a.ghelmer;
&pgpkey.ghelmer;
&a.mux;
&pgpkey.mux;
&a.mich;
&pgpkey.mich;
&a.foxfair;
&pgpkey.foxfair;
&a.jkh;
&pgpkey.jkh;
&a.trevor;
&pgpkey.trevor;
&a.phk;
&pgpkey.phk;
&a.joe;
&pgpkey.joe;
+
+ &a.vkashyap;
+ &pgpkey.vkashyap;
+
+
&a.kris;
&pgpkey.kris;
&a.keramida;
&pgpkey.keramida;
&a.fjoe;
&pgpkey.fjoe;
&a.andreas;
&pgpkey.andreas;
&a.sergei;
&pgpkey.sergei;
&a.maxim;
&pgpkey.maxim;
&a.jkoshy;
&pgpkey.jkoshy;
+
+ &a.rik;
+ &pgpkey.rik;
+
+
&a.rushani;
&pgpkey.rushani;
&a.clement;
&pgpkey.clement;
+
+ &a.mlaier;
+ &pgpkey.mlaier;
+
+
&a.alex;
&pgpkey.alex;
&a.erwin;
&pgpkey.erwin;
&a.leeym;
&pgpkey.leeym;
&a.netchild;
&pgpkey.netchild;
&a.ijliao;
&pgpkey.ijliao;
&a.clive;
&pgpkey.clive;
&a.arved;
&pgpkey.arved;
&a.scottl;
&pgpkey.scottl;
&a.pav;
&pgpkey.pav;
&a.bmah;
&pgpkey.bmah;
&a.mtm;
&pgpkey.mtm;
&a.dwmalone;
&pgpkey.dwmalone;
&a.matusita;
&pgpkey.matusita;
&a.ken;
&pgpkey.ken;
&a.dinoex;
&pgpkey.dinoex;
&a.sanpei;
&pgpkey.sanpei;
&a.jim;
&pgpkey.jim;
&a.marcel;
&pgpkey.marcel;
&a.tmm;
&pgpkey.tmm;
&a.rich;
&pgpkey.rich;
&a.knu;
&pgpkey.knu;
&a.max;
&pgpkey.max;
&a.yoichi;
&pgpkey.yoichi;
&a.bland;
&pgpkey.bland;
&a.simon;
&pgpkey.simon;
&a.anders;
&pgpkey.anders;
&a.obrien;
&pgpkey.obrien;
+
+ &a.philip;
+ &pgpkey.philip;
+
+
+
+ &a.hmp;
+ &pgpkey.hmp;
+
+
&a.mp;
&pgpkey.mp;
&a.roam;
&pgpkey.roam;
&a.den;
&pgpkey.den;
&a.pirzyk;
&pgpkey.pirzyk;
&a.jdp;
&pgpkey.jdp;
&a.krion;
&pgpkey.krion;
&a.markp;
&pgpkey.markp;
&a.thomas;
&pgpkey.thomas;
&a.dfr;
&pgpkey.dfr;
&a.trhodes;
&pgpkey.trhodes;
&a.benno;
&pgpkey.benno;
&a.paul;
&pgpkey.paul;
&a.roberto;
&pgpkey.roberto;
&a.guido;
&pgpkey.guido;
+
+ &a.niklas;
+ &pgpkey.niklas;
+
+
+
+ &a.marks;
+ &pgpkey.marks;
+
+
&a.hrs;
&pgpkey.hrs;
&a.wosch;
&pgpkey.wosch;
&a.das;
&pgpkey.das;
&a.schweikh;
&pgpkey.schweikh;
&a.gshapiro;
&pgpkey.gshapiro;
&a.arun;
&pgpkey.arun;
&a.vanilla;
&pgpkey.vanilla;
&a.cshumway;
&pgpkey.cshumway;
&a.demon;
&pgpkey.demon;
&a.jesper;
&pgpkey.jesper;
&a.scop;
&pgpkey.scop;
&a.kensmith;
&pgpkey.kensmith;
&a.ben;
&pgpkey.ben;
&a.des;
&pgpkey.des;
&a.sobomax;
&pgpkey.sobomax;
&a.dcs;
&pgpkey.dcs;
&a.brian;
&pgpkey.brian;
&a.nsouch;
&pgpkey.nsouch;
+
+ &a.vs;
+ &pgpkey.vs;
+
+
&a.gsutter;
&pgpkey.gsutter;
&a.nyan;
&pgpkey.nyan;
&a.mi;
&pgpkey.mi;
&a.gordon;
&pgpkey.gordon;
+
+ &a.thierry;
+ &pgpkey.thierry;
+
+
&a.viny;
&pgpkey.viny;
&a.nectar;
&pgpkey.nectar;
&a.adamw;
&pgpkey.adamw;
&a.nate;
&pgpkey.nate;
&a.wollman;
&pgpkey.wollman;
&a.joerg;
&pgpkey.joerg;
&a.phantom;
&pgpkey.phantom;
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
index ac2682b518..0ee742b451 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1266 +1,1350 @@
UwePierauÜbersetzt von Installieren von Anwendungen: Pakete und PortsÜbersichtPortsPaketeFreeBSD enthält sehr viele Systemwerkzeuge, die Teil des
Basissystems sind. Allerdings sind Sie früher oder später
auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten
durchführen können. Um diese Software zu installieren,
stellt FreeBSD zwei, sich ergänzende, Methoden zur
Verfügung: Die Ports-Sammlung und binäre Softwarepakete.
Sie können beide Methoden benutzen, um Ihre Lieblingsanwendungen
von lokalen Medien oder über das Netzwerk zu
installieren.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
wissen:wie Sie binäre Softwarepakete installieren,wie Sie Software Dritter mit der Ports-Sammlung bauen,wie Sie zuvor installierte Pakete oder Ports von einem
System entfernen undwie Sie die Voreinstellungen der Ports-Sammlung
überschreiben.Installation von SoftwareWenn Sie schon einmal ein &unix; System benutzt haben, werden Sie
wissen, dass zusätzliche Software meist wie folgt
installiert wird:Download der Software, die als Quelltext oder im
Binärformat vorliegen kann.Auspacken der Software, die typischerweise ein mit
&man.compress.1;, &man.gzip.1; oder &man.bzip2.1;
komprimiertes Tar-Archiv enthält.Durchsuchen der Dokumentation, die sich meist in Dateien wie
INSTALL, README oder
mehreren Dateien im Verzeichnis doc/
befindet, nach Anweisungen, wie die Software
zu installieren ist.Kompilieren der Software wenn sie als Quelltext vorliegt.
Dazu müssen Sie vielleicht das Makefile
anpassen, oder configure laufen lassen, oder
andere Arbeiten durchführen.Testen und installieren der Software.Das beschreibt aber nur den optimalen Fall. Wenn Sie
Software installieren, die nicht speziell für FreeBSD
geschrieben wurde, müssen Sie vielleicht sogar den Quelltext
anpassen, damit die Software funktioniert.Wenn Sie unbedingt wollen, können Sie mit FreeBSD-Software
nach der althergebrachten Methode installieren. Mit
Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an,
die Ihnen sehr viel Zeit sparen können. Zurzeit werden über
&os.numports; Anwendungen Dritter über diese Methoden zur
Verfügung gestellt.Das FreeBSD-Paket einer Anwendung besteht aus einer einzigen
Datei, die Sie sich herunterladen müssen. Das Paket
enthält schon übersetzte Kommandos der Anwendung, sowie
zusätzliche Konfigurationsdateien oder Dokumentation. Zur
Handhabung der Pakete stellt FreeBSD-Kommandos wie &man.pkg.add.1;,
&man.pkg.delete.1; oder &man.pkg.info.1; zur Verfügung.
Mit diesem System können neue Anwendungen mit einem
Kommando, pkg_add, installiert werden.Der FreeBSD-Port einer Anwendung ist eine Sammlung von Dateien,
die das Kompilieren der Quelltexte einer Anwendung
automatisieren.Die Dateien eines Ports führen für Sie alle oben
aufgeführten Schritte zum Installieren einer Anwendung durch.
Mit einigen wenigen Kommandos wird der Quellcode der Anwendung
automatisch heruntergeladen, ausgepackt, gepatcht, übersetzt und
installiert.Tatsächlich kann das Portsystem auch dazu benutzt werden,
Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos,
wie pkg_add, manipulieren können.Pakete und Ports beachten Abhängigkeiten zwischen
Anwendungen. Angenommen, Sie wollen eine Anwendung installieren,
die von einer Bibliothek abhängt und die Anwendung wie die
Bibliothek sind als Paket oder Port für FreeBSD verfügbar.
Wenn Sie pkg_add oder das Portsystem benutzen,
um die Anwendung zu installieren, werden Sie bemerken, dass
die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher
installiert war.Sie werden sich fragen, warum FreeBSD-Pakete und -Ports
unterstützt, wo doch beide Methoden fast gleiches leisten.
Beide Methoden haben ihre Stärken und welche Sie einsetzen,
hängt letztlich von Ihren Vorlieben ab.Vorteile von PaketenDas komprimierte Paket einer Anwendung ist normalerweise
kleiner als das komprimierte Archiv der Quelltexte.Pakete müssen nicht mehr kompiliert werden. Dies ist
ein Vorteil, wenn Sie große Pakete, wie
Mozilla, KDE
oder GNOME auf langsamen Maschinen
installieren.Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
wie Sie Software unter FreeBSD kompilieren.Vorteile von PortsDa die Pakete auf möglichst vielen System laufen sollen,
werden Optionen beim Übersetzen zurückhaltend gesetzt.
Wenn Sie eine Anwendung über die Ports installieren,
können Sie die Angabe der Optionen optimieren. Zum Beispiel
können Sie spezifischen Code für Pentium IV oder
Athlon Prozessoren erzeugen.Die Eigenschaften einiger Anwendungen werden über
Optionen zum Zeitpunkt des Übersetzens festgelegt.
Apache kann zum Beispiel über
viele eingebaute Optionen konfiguriert werden. Wenn Sie das
Portsystem benutzen, können Sie die Vorgaben für die
Optionen überschreiben.Für einige Fälle existieren verschiedene
Pakete einer Anwendung, die beim Übersetzen
unterschiedlich konfiguriert wurden. Für
Ghostscript gibt es ein
ghostscript-Paket und ein
ghostscript-nox11-Paket, die sich durch die
X11 Unterstützung unterscheiden. Diese grobe Unterscheidung
ist mit dem Paketsystem möglich, wird aber schnell
unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen
zum Zeitpunkt des Übersetzens besitzt.Die Lizenzbestimmungen mancher Software verbietet ein
Verbreiten in binärer Form. Diese Software muss als
Quelltext ausgeliefert werden.Einige Leute trauen binären Distributionen nicht. Wenn
Sie den Quelltext besitzen, können Sie sich diesen
(zumindest theoretisch) durchlesen und nach möglichen Problemen
durchsuchen.Wenn Sie eigene Anpassungen besitzen, benötigen Sie den
Quelltext, um diese anzuwenden.Manch einer besitzt gerne den Quelltext, um ihn zu lesen,
wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach
ein paar Sachen abzugucken (natürlich nur, wenn es die
Lizenzbestimmungen erlauben).Wenn Sie über aktualisierte Ports informiert sein wollen,
lesen Sie bitte die Mailinglisten &a.ports; und &a.ports-bugs;.
+
+ Bevor Sie eine Anwendung installieren, sollten Sie
+ auf der Seite
+ über mögliche Sicherheitsprobleme mit der
+ Anwendung informieren.
+
+ Die Anwendung
+ security/portaudit
+ prüft automatisch alle installierten Anwendungen
+ auf bekannte Sicherheitslöcher. Vor dem Bau eines
+ Ports findet ebenfalls eine Prüfung statt.
+ Installierte Pakete prüfen Sie mit dem
+ Kommando portaudit -F -a.
+
+
Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
Paketen oder Ports auf einem FreeBSD-System installieren und
verwalten.Suchen einer AnwendungBevor Sie eine Anwendung installieren, müssen Sie deren
Art und Namen kennen.Die Anzahl der nach FreeBSD portierten Anwendungen steigt
ständig. Zum Glück gibt es einige Wege, die richtige zu
finden.Eine aktuelle Liste verfügbarer Anwendungen, die sich
auch durchsuchen lässt, finden Sie unter http://www.FreeBSD.org/ports/.
Die Anwendungen sind in Kategorien unterteilt und Sie
können sich alle Anwendungen einer Kategorie anzeigen
lassen. Wenn Sie den Namen der Anwendung kennen, können
Sie natürlich auch direkt nach dem Namen suchen.FreshPortsFreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
unter .
FreshPorts verfolgt
Änderungen an Anwendungen aus den Ports. Mit FreshPorts
können Sie ein oder mehrere Ports beobachten und sich eine
E-Mail schicken lassen, wenn ein Port aktualisiert wird.FreshMeatWenn Sie den Namen einer Anwendung nicht kennen, versuchen
Sie eine Webseite wie FreshMeat
(),
um eine passende Anwendung zu finden. Schauen Sie dann auf der
FreeBSD-Webseite nach, ob die Anwendung schon portiert
wurde.ChernLeeBeigesteuert von Benutzen des PaketsystemsInstallieren eines PaketsPaketeinstallierenpkg_addMit &man.pkg.add.1; können Sie ein FreeBSD-Paket von einer
lokalen Datei oder über das Netzwerk installieren.Download vor Installation eines Pakets&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.tgzWenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel
auf den FreeBSD-CD-ROMs), ist es wahrscheinlich einfacher den
Schalter von &man.pkg.add.1; zu verwenden. Das
Werkzeug bestimmt dann automatisch das nötige Objektformat und
die richtige Version des Pakets, lädt dieses dann von einem
FTP-Server und installiert das Paket.pkg_add&prompt.root; pkg_add -r lsofDas obige Beispiel würde ohne weitere Interaktion das
- richtige Paket herunterladen und installieren. Die Dateien werden
+ richtige Paket herunterladen und installieren. Pakete
+ werden vom &os;-Hauptserver heruntergeladen. Wenn Sie
+ anderen Server verwenden möchten, geben Sie den
+ Server in der Umgebungsvariablen PACKAGESITE
+ an. Die Dateien werden
mit &man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt, heruntergeladen.
Wenn Sie durch eine Firewall geschützt werden, müssen Sie
vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder
einen FTP oder HTTP Proxy verwenden. Eine Liste der
unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;.
Beachten Sie, dass im obigen Beispiel lsof
anstelle von lsof-4.56.4 verwendet wird. Wenn
Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf
die Versionsnummer des Pakets nicht angegeben werden, da
automatisch die neuste Version der Anwendung geholt wird.Pakete werden im .tgz- und
.tbz-Format ausgeliefert. Sie finden Sie unter
oder auf der FreeBSD-CD-ROM-Distribution. Jede CD der FreeBSD
Distribution (oder des PowerPaks) enthält Pakete im
Verzeichnis /packages. Die Struktur des
Paketbaums entspricht dem /usr/ports Baum.
Jede Kategorie besitzt ein eigenes Verzeichnis und alle
Pakete befinden sich im Verzeichnis
All.Die Verzeichnisstruktur des Paketbaums ist ein Abbild der
Ports, da beide Systeme eng zusammenarbeiten.Verwalten von PaketenPaketeverwalten&man.pkg.info.1; zeigt alle installierten Pakete und deren
Beschreibung an.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; vergleicht die Version installierter Pakete
mit der Version aus der Ports-Sammlung.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Die Symbole in der zweiten Spalte zeigen das Alter des Pakets
im Vergleich zu der lokalen Version aus der Ports-Sammlung an.
SymbolBedeutung=Die Version des installierten Paketes stimmt mit der
Version aus der lokalen Ports-Sammlung überein.<Die installierte Version ist älter als die der
verfügbaren Version aus der Ports-Sammlung.>Die installierte Version ist neuer als die aus der
Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung
veraltet).?Das installierte Paket konnte in der Ports-Sammlung
nicht gefunden werden. Das kann dadurch hervorgerufen
werden, dass ein installierter Port aus der
Ports-Sammlung entfernt wurde oder einen neuen
Namen erhalten hat.*In der Ports-Sammlung befinden sich mehrere Versionen
der Anwendung.Entfernen eines Paketspkg_deletePaketeentfernenUm ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1VerschiedenesInformationen über alle installierte Pakete werden in
/var/db/pkg abgelegt. Das Verzeichnis
enthält Dateien, in denen sich die Beschreibungen der Pakete
und Listen von Dateien, die zu einem Paket gehören,
befinden.Benutzen der Ports-SammlungDie folgenden Abschnitte stellen die grundlegenden Anweisungen
vor, um Anwendungen aus der Ports-Sammlung auf
Ihren Rechner zu installieren oder zu löschen.Installation der Ports-SammlungBevor Sie einen Port installieren können, müssen Sie
zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches
und Beschreibungen besteht. Die Ports-Sammlung wird
für gewöhnlich unter /usr/ports
installiert.Bei der FreeBSD-Installation hatten Sie in
- Sysinstall die Möglichkeit, die
+ sysinstall die Möglichkeit, die
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, können Sie das mit den folgenden
Anweisungen nachholen:
- Installieren mit Sysinstall
+ Installieren mit sysinstallSie können die Ports-Sammlung nachträglich mit
sysinstall installieren.Führen Sie als root/stand/sysinstall aus:&prompt.root; /stand/sysinstallWählen Sie den Punkt Configure
aus und drücken Sie Enter.Wählen Sie dann Distributions
aus und drücken Sie Enter.In diesem Menü wählen Sie
ports aus und drücken die
Leertaste.Danach wählen Sie Exit aus und
drücken Enter.Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM
oder FTP, fest.Wählen Sie nun Exit aus und
drücken Enter.Verlassen Sie sysinstall mit
X.Alternativ können Sie die Ports-Sammlung auch mit
CVSup installieren und aktualisieren.
Ein Beispiel für die Konfiguration von
CVSup finden Sie in
/usr/share/examples/cvsup/ports-supfile.
Weitere Informationen über CVSup
und dessen Konfiguration finden Sie in Benutzen
von CVSup ().Installieren mit CVSupDies ist eine schnelle Methode um die Ports-Sammlung zu
aktualisieren.Installieren Sie den net/cvsup Port. Weitere
Informationen finden Sie in
Installation von CVSup
().Kopieren Sie als root/usr/share/examples/cvsup/ports-supfile an
einen neuen Ort, beispielsweise nach /root
oder in Ihr Heimatverzeichnis.Editieren Sie die Kopie von
ports-supfile.Ersetzen Sie
CHANGE_THIS.FreeBSD.org durch einen
CVSup-Server in Ihrer Nähe.
Eine vollständige Liste der
CVSup-Spiegel finden Sie in
CVSup Spiegel
().Führen Sie cvsup aus:&prompt.root; cvsup -g -L 2 /root/ports-supfileMit diesem Kommando können Sie später die
Ports-Sammlung aktualisieren. Die installierten Ports werden
mit diesem Kommando nicht aktualisiert.Ports installierenPortsinstallierenWas ist mit einem Gerüst im Zusammenhang
mit der Ports-Sammlung gemeint? In aller Kürze: ein
Gerüst eines Ports ist ein minimaler Satz von Dateien, mit
denen das FreeBSD-System eine Anwendung sauber übersetzen und
installieren kann. Ein jeder Port beinhaltet:Eine Datei Makefile. Das
Makefile enthält verschiedene
Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
wird und wo sie auf Ihrem System installiert werden
sollte.Eine Datei distinfo. Diese
enthält Informationen, welche Dateien heruntergeladen
werden müssen, sowie MD5-Prüfsummen, um sicher zu gehen,
dass diese Dateien während des Herunterladens nicht
beschädigt wurden.Ein files Verzeichnis. Hierin
liegen Patches, welche das Übersetzen und Installieren
der Anwendung ermöglichen. Patches sind im Wesentlichen
kleine Dateien, die Änderungen an speziellen Dateien
spezifizieren. Sie liegen als reiner Text vor und sagen
ungefähr:
Lösche Zeile 10 oder
Ändere Zeile 26 zu .... Patches sind
auch bekannt unter dem Namen diffs, weil
Sie mit dem Programm &man.diff.1;
erstellt werden.Dieses Verzeichnis kann auch noch andere Dateien enthalten,
welche zum Bauen des Ports benutzt werden.Eine Datei pkg-descr. Eine
ausführlichere, oft mehrzeilige Beschreibung der
Anwendung.Eine Datei pkg-plist. Das ist eine
Liste aller Dateien, die durch diesen Port installiert werden.
Außerdem sind hier Informationen enthalten, die zum
Entfernen des Ports benötigt werden.Einige Ports besitzen noch andere Dateien, wie
pkg-message, die vom Portsystem benutzt
werden, um spezielle Situationen zu handhaben. Wenn Sie mehr
über diese Dateien oder das Port-System erfahren sollen, lesen
Sie bitte im FreeBSD
FreeBSD Porter's Handbook weiter.Nun haben Sie genug Hintergrund Informationen über
die Ports-Sammlung und Sie können Ihren ersten Port
installieren. Es gibt dazu zwei Möglichkeiten, die
im Folgenden erläutert werden.Bevor Sie damit beginnen, müssen Sie sich natürlich
einen Port zum Installieren aussuchen. Sie können
dazu mehrere Wege gehen, als einfachste Methode gibt es die
Liste aller Ports auf
dem FreeBSD-Web-Server. Sie können dort suchen
oder in der Liste schmökern. Jeder Port enthält
außerdem eine Beschreibung, so dass Sie sich vor der
Entscheidung, welchen Port Sie installieren wollen, über den Port
informieren können.Sie können einen Port auch mit &man.whereis.1; suchen.
Geben Sie einfach
whereis Datei ein,
wobei Datei der Name des
Programms ist, das Sie suchen:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofDamit haben wir herausgefunden, dass sich
lsof, ein Systemwerkzeug, in
/usr/ports/sysutils/lsof befindet.Ein weiterer Weg, einen bestimmten Port zu finden, ist es,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Dazu müssen Sie im Verzeichnis /usr/ports
sein. Darin geben Sie
make search name=Anwendungsname ein, worin Anwendungsname
der Name der von Ihnen gesuchten Anwendung ist. Wenn Sie
zum Beispiel nach lsof suchen:&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: Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
mit Path: beginnt, weil sie Ihnen sagt, wo der Port
zu finden ist. Die anderen Informationen werden zum Installieren
des Ports nicht direkt benötigt, Sie brauchen sich darum
jetzt nicht weiter zu kümmern.Mit make search key=Text können Sie erweiterte Suchen durchführen.
Damit werden Portnamen, Kommentare, Beschreibungen und
Abhängigkeiten nach Text
durchsucht. Dies kann sehr nützlich sein, wenn Sie den Namen
des Programms, nach dem Sie suchen, nicht kennen.In beiden Fällen wird Groß- und Kleinschreibung bei
der Suche ignoriert. Die Suche nach LSOF wird
dieselben Ergebnisse wie die Suche nach lsof
liefern.Zum Installieren von Ports müssen Sie als Benutzer
root angemeldet sein.Jetzt, wo Sie den gewünschten Port gefunden haben, kann es
mit der eigentlichen Installation losgehen. Der Port enthält
Anweisungen, wie der Quelltext zu bauen ist, enthält aber
nicht den Quelltext selbst. Den Quelltext erhalten Sie von einer
CD-ROM oder aus dem Internet. Quelltexte werden in einem Format
nach Wahl des jeweiligen Software-Autors ausgeliefert. Häufig
ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem
anderen Tool komprimiert oder gar nicht komprimiert sein. Der
Quelltext, in welcher Form er auch immer vorliegen mag, wird
Distfile genannt.
+
+ Stellen Sie sicher, dass die Ports-Collection
+ aktuell ist, bevor Sie einen Port installieren.
+ Informieren Sie sich ebenfalls auf der Seite
+
+ über mögliche Sicherheitsprobleme
+ des Ports.
+
+ Vor der Installation kann
+ portaudit eine neue Anwendung
+ automatisch auf Sicherheitslöcher prüfen.
+ Das Werkzeug befindet sich in der Ports-Collection
+ (security/portaudit).
+ Vor der Installation einer neuen Anwendung sollten
+ Sie mit portaudit -F die
+ Sicherheitsdatenbank aktualisieren. Die täglich
+ laufende Sicherheitsprüfung des Systems
+ aktualisiert die Datenbank und prüft installierte
+ Anwendungen auf vorhandene Sicherheitslöcher.
+ Weiteres erfahren Sie in den Hilfeseiten &man.portaudit.1;
+ und &man.periodic.8;.
+
+
Installation von einer CD-ROMPortsvon CD-ROM installierenDie offiziellen FreeBSD-CD-ROMs enthalten keine Distfiles
mehr, da diese sehr viel Platz beanspruchen, der besser von
vorkompilierten Paketen genutzt werden kann. Andere FreeBSD-CD-ROMs,
wie der FreeBSD-PowerPak, enthalten Distfiles.
Diese CD-ROMs können Sie über einen Händler wie
FreeBSD Mall
beziehen. Dieser Abschnitt geht davon aus, dass Sie eine
solche CD-ROM Distribution besitzen.&prompt.root; cd /usr/ports/sysutils/lsofIm Verzeichnis lsof kann man das
Gerüst erkennen. Der
nächste Schritt ist das Übersetzen (auch Bauen genannt)
des Ports. Dies wird durch Eingabe von make
getan. Haben Sie das eingegeben, so werden Sie etwas lesen
wie:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> 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-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
&prompt.root;Ist die Übersetzungsprozedur beendet, sind Sie wieder
in der Kommandozeile und der nächste Schritt ist die
Installation. Erweitern Sie dazu einfach die
make-Kommandozeile um das Wort
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> 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;Wenn Sie wieder den Prompt haben, sollten Sie in der Lage
sein, die gerade installierte Anwendung laufen zu lassen. Da
lsof eine Anwendung ist, die mit erhöhten
Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie
sollten alle Warnungen während des Baus und der Installation
eines Ports beachten.Sie können einen Schritt sparen, wenn Sie gleich
make install anstelle von
make und dem anschließenden
make install eingeben.Um die Suche nach Kommandos zu beschleunigen, speichern
einige Shells eine Liste der verfügbaren Kommandos in den
durch die Umgebungsvariable PATH gegebenen
Verzeichnissen. Nach der Installation eines Ports müssen
Sie in einer solchen Shell vielleicht das Kommando
rehash absetzen, um die neu installierten
Kommandos benutzen zu können. Dies betrifft sowohl die
beiden Shells des Basissystems, wie die
tcsh, und Shells aus den Ports, zum
Beispiel die shells/zsh.Beachten Sie bitte, dass die Lizenzen einiger Ports
die Einbeziehung auf der CD-ROM verbieten. Das kann
verschiedene Gründe haben. Beispielsweise eine
Registrierung vor dem Herunterladen erforderlich oder die
Weiterverteilung ist verboten. Wenn Sie einen Port
installieren wollen, der nicht auf
der CD-ROM enthalten ist, müssen Sie Online sein. Folgen
Sie bitte den Anweisungen des
nächsten Abschnitts.Ports vom Internet installierenDieser Abschnitt setzt voraus, dass Sie eine Verbindung
mit dem Internet haben. Haben Sie dies nicht, müssen Sie
eine CD-ROM Installation
durchführen oder das Distfile selber nach
/usr/ports/distfiles stellen.Das Installieren eines Ports vom Internet wird genauso
durchgeführt wie das Installieren von CD-ROM. Der einzige
Unterschied zwischen beiden ist, dass das Distfile des
Ports vom Internet heruntergeladen und nicht von der CD-ROM
gelesen wird.Die durchgeführten Schritte sind identisch:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> 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-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> 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;Wie Sie sehen können, besteht der einzige Unterschied in
der Zeile, die Ihnen sagt, woher das System den Quellcode
holt.Die Ports-Sammlung benutzt zum Herunterladen von Dateien
&man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt. Wenn Sie durch
eine Firewall geschützt werden, müssen Sie vielleicht
eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP
oder HTTP Proxy verwenden. Eine Liste der unterstützten
Umgebungsvariablen finden Sie in &man.fetch.3;.Benutzer ohne eine ständige Internet-Verbindung
werden das Kommando make fetch zu
schätzen wissen. Das Kommando lädt alle
benötigten Dateien eines Ports herunter. Sie
können das Kommando im Verzeichnis
/usr/ports laufen lassen. In diesem
Fall werden alle Dateien
heruntergeladen. Es ist auch möglich,
make fetch nur in einem Teil
des Baums, wie /usr/ports/net,
aufzurufen. Die Dateien von allen abhängigen
Ports werden mit diesem Kommando allerdings nicht
heruntergeladen. Wenn Sie diese Dateien ebenfalls
herunterladen wollen, ersetzen Sie im Kommando
fetch durch
fetch-recursive.Abhängig davon, in welchem Verzeichnis
Sie make aufrufen, können
Sie analog zu make fetch die
Ports einer Kategorie oder alle Ports bauen. Beachten
Sie allerdings, dass manche Ports nicht zusammen
installiert werden können. Weiterhin gibt es
Fälle, in denen zwei Ports unterschiedliche
Inhalte in derselben Datei speichern wollen.Manchmal ist es erforderlich, die benötigten
Dateien von einem anderen Ort als den im Port vorgesehenen
herunterzuladen. Der Ort wird durch die Variable
MASTER_SITES vorgegeben, die Sie
wie folgt überschreiben können:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIm Beispiel wurde MASTER_SITES
mit dem Wert
ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
überschrieben.Einige Ports besitzen Optionen, mit denen Sie
zusätzliche Funktionen oder Sicherheitsoptionen
einstellen können (oder manchmal auch müssen).
Zusätzliche Optionen können beispielsweise für
www/mozilla,
security/gpgme und
mail/sylpheed-claws
angegeben werden. Wenn ein Port über zusätzliche
Optionen verfügt, werden diese beim Bau des
Ports auf der Konsole ausgegeben.Vorgabe-Verzeichnisse ändernManchmal ist es nützlich (oder erforderlich),
in anderen Verzeichnissen zu arbeiten. Die Verzeichnisse
können Sie mit den Variablen PORTSDIR
und PREFIX einstellen. Die Variable
PORTSDIR gibt das Bauverzeichnis an:&prompt.root; make PORTSDIR=/usr/home/example/ports installDieses Kommando baut den Port in
/usr/home/example/ports und installiert
ihn unter /usr/local.Die Variable PREFIX legt das
Installations-Verzeichnis fest:&prompt.root; make PREFIX=/usr/home/example/local installIn diesem Beispiel wird der Port unter
/usr/ports gebaut und nach
/usr/home/example/local installiert.Sie können beide Variablen auch zusammen
benutzen:&prompt.root; make PORTSDIR=../ports PREFIX=../local installDie Kommandozeile ist zu lang, um sie hier komplett
wiederzugeben, aber Sie sollten die zugrunde liegende
Idee erkennen.Probleme mit imakeimakeEinige Ports, welche &man.imake.1; (Teil des
X-Window-Systems) benutzen, funktionieren nicht gut
mit PREFIX und bestehen darauf,
unter /usr/X11R6 installiert
zu werden. In ähnlicher Weise verhalten sich
einige Perl-Ports, die PREFIX
ignorieren und sich in den Perl-Verzeichnisbaum
installieren. Zu erreichen, dass solche Ports
PREFIX beachten, ist
schwierig oder sogar unmöglich.Entfernen installierter PortsPortsentfernenDa Sie nun wissen, wie man einen Port installiert, wollen Sie
sicher auch wissen, wie man einen Port entfernt, für den
Fall, dass Sie versehentlich einen falschen installiert haben.
Nun wollen wir mal unser vorheriges Beispiel wieder
löschen (für alle die nicht aufgepasst haben, das
war lsof).
Wie beim Installieren wechseln Sie zuerst in das Verzeichnis des
Ports /usr/ports/sysutils/lsof. Nachdem Sie
das Verzeichnis gewechselt haben, können Sie
lsof mit make deinstall
entfernen:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57Das war leicht, Sie haben lsof
von Ihrem System entfernt. Möchten Sie den Port doch
wieder neu installieren, geben Sie
make reinstall im Verzeichnis
/usr/ports/sysutils/lsof ein.make deinstall und make
reinstall funktionieren nicht mehr, wenn Sie einmal
make clean ausgeführt haben. Wenn Sie
dennoch einen Port nach einem make clean
entfernen möchten, benutzen Sie &man.pkg.delete.1;
wie im Abschnitt Benutzen des
Paketsystems beschrieben.Platzbedarf von PortsPortsPlattenplatzDie Ports-Sammlung kann sehr viel Plattenplatz
verschlingen. Führen Sie nach dem Bau und der
Installation eines Ports make clean
aus, um die Arbeitsverzeichnisse zu löschen.
Die Quelldateien im Verzeichnis distfiles
können Sie ebenfalls löschen. Entfernen Sie
nicht mehr benötigte Ports, um weiteren Plattenplatz
freizugeben.Wenn Sie die Ports-Sammlung mit
CVSup synchronisieren,
können Sie in der Datei refuse
Kategorien angeben, die nicht heruntergeladen werden sollen.Ports aktualisierenportupgradePortsaktualisieren
+ Nachdem Sie die Ports-Collection auf den neusten
+ Stand gebracht haben, lesen Sie bitte
+ /usr/ports/UPDATING bevor
+ Sie einen Port aktualisieren. In dieser Datei werden
+ Probleme und zusätzlich durchzuführende
+ Schritte bei der Aktualisierung einzelner Ports
+ beschrieben.
+
Es kann sehr mühsam sein, einen Port zu
aktualisieren: Sie müssen den Port im Port-Verzeichnis
bauen, den alten Port entfernen, den neuen Port
installieren und anschließend aufräumen. Stellen
Sie sich vor, Sie müssten fünf Ports auf
diese Weise aktualisieren! Viele Systemadministratoren
haben sich über dieses aufwändige Verfahren
beklagt. Mittlerweile gibt es aber den Port
- sysutils/portupgrade,
+ sysutils/portupgrade,
der diese Aufgabe automatisiert. Installieren Sie
diesen Port, wie jeden anderen, mit dem Kommando
make install clean.Das Werkzeug portupgrade
benötigt eine Datenbank, die installierte Ports
enthält. Das Kommando pkgdb -F
erstellt diese Datenbank im Verzeichnis
/var/db/pkg. Das Kommando
portupgrade -a aktualisiert alle
Ports des Systems. Dazu wird die Datenbank und die
Datei INDEX der Ports-Sammlung
gelesen. Anschließend werden die benötigten
Quelldateien heruntergeladen, die Ports gebaut, gesichert
und installiert. Zum Abschluß räumt
portupgrade die Arbeitsverzeichnisse
- auf. Im Verzeichnis ports/sysutils
+ auf. Das Programm portupgrade
+ ist sehr vielseitig. Die wichtigsten Anwendungen
+ sind im folgenden Absatz zusammengefasst.
+
+ Wenn Sie nur eine einzelne Anwendung anstelle
+ aller Anwendungen aktualisieren wollen, verwenden
+ Sie das Kommando
+ portupgrade pkgname.
+ Geben Sie den Schalter an, wenn
+ portupgrade auch alle
+ Pakete aktualisieren soll, die von dem gegebenen
+ Paket abhängen. Der Schalter
+ aktualisiert alle Pakete, die das angegebene Paket
+ voraussetzen. Der Schalter
+ baut und installiert ein Paket, anstatt die Anwendung
+ direkt aus dem Port zu installieren. Wenn Sie
+ nur die Quelldateien des Ports herunterladen möchten,
+ ohne die Anwendung zu bauen oder zu installieren,
+ geben Sie die Option an.
+ Weitere Möglichkeiten lesen Sie bitte in
+ der Hilfeseite &man.portupgrade.1; nach.
+
+
+ Es ist wichtig, regelmäßig
+ Unstimmigkeiten in der Paketdatenbank mit
+ dem Kommando pkgdb -F zu
+ bereinigen. Besonders wichtig ist dies, wenn
+ portupgrade explizit
+ zur Bereinigung der Datenbank auffordert.
+ Unterbrechen Sie portupgrade
+ keinesfalls während die Paketdatenbank bereinigt
+ wird, da sonst die Datenbank korrumpiert wird.
+
+
+ Im Verzeichnis ports/sysutils
finden Sie weitere Werkzeuge, mit denen Sie die
Ports-Sammlung aktualisieren können.Nach der InstallationNach der Installation einer neuen Anwendung wollen Sie
wahrscheinlich die mitgelieferte Dokumentation lesen und die
Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
ein Dæmon ist, sollten Sie sicherstellen, dass die
Anwendung beim Booten startet.Die einzelnen Schritte sind natürlich von Anwendung zu
Anwendung verschieden. Wenn Sie sich allerdings nach der Installation
einer Anwendung die Frage Was nun? stellen, helfen die
folgenden Hinweise vielleicht weiter.Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die
Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen
das folgende Kommando alle installierten Dateien des
Pakets:&prompt.root; pkg_info -L foopackage-1.0.0 | lessAchten Sie besonders auf die Manualpages, die Sie in
man/ Verzeichnissen finden und auf
Konfigurationsdateien, die in etc/ abgelegt
werden. Manche Pakete enthalten in doc/
zusätzliche Dokumentation.Wenn Sie sich nicht sicher sind, welche Version einer
Anwendung Sie gerade installiert haben, können Sie mit dem
folgenden Kommando nach der Anwendung suchen:&prompt.root; pkg_info | grep -i foopackageDas Kommando zeigt alle installierten Pakete, deren
Paketname foopackage enthält.
Ersetzen Sie foopackage durch den
Namen der Anwendung, die Sie suchen.Nachdem Sie die Manualpages der Anwendung gefunden haben,
lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die
Beispiele für Konfigurationsdateien und die zusätzliche
Dokumentation, wenn es welche gibt, an.Wenn es für die Anwendung eine Webseite gibt, suchen
Sie dort nach zusätzlicher Dokumentation wie FAQs
(häufig gestellte Fragen). Wenn Sie die Adresse der Webseite
nicht kennen, versuchen Sie das folgende Kommando:&prompt.root; pkg_info foopackage-1.0.0Die Ausgabe enthält oft eine Zeile, die mit
WWW: beginnt und die URL der Webseite
enthält.Ports, die während des Systemstarts gestartet
werden sollen, installieren meist ein Beispielskript im
Verzeichnis /usr/local/etc/rc.d.
Überprüfen Sie dieses Skript. Wenn nötig,
passen Sie das Skript an und benennen Sie es um. Weitere
Informationen finden Sie in
.Kaputte PortsStolpern Sie mal über einen Port, der bei Ihnen nicht
funktioniert, könnten Sie zum Beispiel Folgendes tun:Reparieren Sie ihn! Das FreeBSD
Porter's Handbook enthält eine detaillierte
Beschreibung des Portsystems. Damit sind Sie in der Lage,
einen gelegentlich kaputten Port zu reparieren oder einen
eigenen Port zu erstellen.Rummeckern – nur mittels E-Mail!
Senden Sie zuerst eine E-Mail an den Betreuer des Ports. Geben
Sie dazu make maintainer ein oder lesen Sie das
Makefile im Verzeichnis des Ports, um an
die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und
die Version des Ports (schicken Sie die Zeile mit
$FreeBSD: aus dem
Makefile)
und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
Sie vom Betreuer keine Resonanz, können mit
&man.send-pr.1; einen Fehler-Report senden.Holen Sie sich das Paket von einem FTP-Server in Ihrer
Nähe. Die Basis Sammlung aller Pakete
liegt auf ftp.de.FreeBSD.org im
Verzeichnis packages.
Aber versuchen Sie zuerst einen Spiegel in
Ihrer Nähe! Benutzen Sie das Programm &man.pkg.add.1;, um
Pakete auf Ihrem Rechner zu installieren. Dies hat zudem den
Vorteil, dass es schneller geht.
diff --git a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
index 6cfc58b5a8..aec822f2a0 100644
--- a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
@@ -1,3566 +1,3563 @@
JimMockRestrukturiert, neu organisiert und aktualisiert von ThomasSchwarzkopfÜbersetzt von PPP und SLIPÜbersichtPPPSLIPUnter FreeBSD stehen verschiedene Möglichkeiten zur
Verfügung, um Computer miteinander zu verbinden. Der Aufbau
einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems
– für den eigenen oder für andere Rechner –
erfordert den Einsatz von PPP oder SLIP.Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:Wie Sie User-PPP einrichten.Wie Sie Kernel-PPP einrichten.Was zu tun ist, um PPPoE (PPP over
Ethernet) einzurichten.Wie Sie PPPoA (PPP over
ATM) einrichten.Wie Sie einen SLIP-Client und -Server einrichten und
konfigurierenPPPUser-PPPPPPKernel-PPPPPPover EthernetBevor Sie dieses Kapitel lesen, sollten Sie:mit den grundlegenden Begriffen der Netzwerktechnik
vertraut sein.die Grundlagen und den Zweck einer Einwahlverbindung sowie
PPP und/oder SLIP kennen.Sie fragen sich vielleicht, worin denn der Hauptunterschied
zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf
die Daten, die dadurch zwischen Kernel und Userland hin und her
kopiert werden müssen, doch es ermöglicht auch eine
PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet
das Gerät tun, um mit anderen Rechnern
zu kommunizieren, während Kernel-PPP hierfür das
Gerät ppp benutzt.In diesem Kapitel wird durchgängig vom Programm
ppp gesprochen, wenn damit User-PPP
gemeint ist. Ausnahmen werden gemacht, wenn eine
Unterscheidung gegenüber anderer PPP-Software, wie
pppd, notwendig wird. Soweit nichts
anderes angegeben ist, sollten alle Befehle, die in diesem
Kapitel erklärt werden, als root
ausgeführt werden.TomRhodesAktualisiert und erweitert von BrianSomersUrsprünglich geschrieben von NikClaytonMit Beiträgen von DirkFrömbergPeterChildsUser-PPPUser-PPPVoraussetzungenDieses Dokument geht davon aus, dass Sie Folgendes zur
Verfügung haben:ISPPPPEinen Account bei einem Internet Service Provider (ISP),
zu dem Sie mit PPP eine Verbindung aufbauen können.Ein Modem oder ein anderes Gerät, das, richtig
konfiguriert und mit Ihrem Rechner verbunden, Ihnen die
Herstellung einer Verbindung zu Ihrem ISP erlaubt.Die Einwahlnummer(n) Ihres ISP.PAPCHAPUNIXLogin NamePasswortIhren Login-Namen und Ihr Passwort (entweder ein
reguläres Login/Passwort-Paar im UNIX-Stil oder
ein PAP bzw. CHAP Login/Passwort-Paar).NameserverDie IP-Adresse von einem oder mehreren Nameservern.
Üblicherweise werden Ihnen von Ihrem ISP zwei
IP-Adressen für diesen Zweck zur Verfügung gestellt.
Wenn Sie keine solche IP-Adresse von Ihrem
Provider bekommen haben, können Sie das Kommando
enable dns in der Datei
ppp.conf verwenden, um
ppp anzuweisen, den Nameserver
für Sie einzutragen. Diese Funktion setzt allerdings
voraus, dass Ihr ISP eine PPP-Implementierung verwendet,
die das Aushandeln eines Nameservers unterstützt.Die folgenden Informationen werden Ihnen möglicherweise
von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht
zwingend erforderlich:Die Gateway IP-Adresse Ihres ISP. Als Gateway wird
der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen.
Die IP-Adresse dieses Rechners wird als
default route eingetragen. Wenn Sie
diese Information nicht zur Verfügung haben, kann PPP so
konfiguriert werden, dass der PPP-Server Ihres ISP während
des Verbindungsaufbaus eine gültige Adresse
übermittelt.ppp bezieht sich mit
HISADDR auf diese IP-Adresse.Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr
ISP keine Netzmaske vorgegeben hat, können Sie
255.255.255.255 verwenden.feste IP-AdresseWenn Ihnen Ihr ISP eine statische IP-Adresse zur
Verfügung stellt, können Sie diese eintragen.
Andernfalls lassen wir uns einfach von der Gegenstelle
eine IP-Adresse zuweisen.Falls Ihnen die erforderlichen Informationen fehlen
sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf.Die Beispieldateien, die in diesem Kapitel dargestellt werden,
enthalten Zeilennummern. Die Nummerierung dient lediglich einer
leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien
übernommen werden. Richtiges Einrücken, durch
Tabulatoren und Leerzeichen, ist ebenfalls wichtig.PPP-Gerätedateien erstellenPPPGerätedateienUnter normalen Umständen werden die meisten Anwender
nur ein tun-Gerät benötigen:
(/dev/tun0). Weiter unten werden wir
uns statt auf tun0 auch auf
tunN beziehen, wobei N
jedem möglichen weiteren Tunnel-Gerät Ihres Rechners
entspricht.Bei FreeBSD-Installationen, die &man.devfs.5; nicht aktiviert
haben (FreeBSD 4.X und frühere Versionen),
sollte überprüft werden, ob
tun0 vorhanden ist. Dies ist nicht
erforderlich, wenn &man.devfs.5; aktiviert ist, da in diesem Fall
Gerätedateien bei Bedarf erzeugt werden.Der einfachste Weg, um sicherzustellen, dass das
tun0-Gerät richtig konfiguriert
ist, besteht darin, die Gerätedatei neu zu erzeugen.
Dazu geben Sie bitte Folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun0Wenn Sie 16 Tunnel-Geräte im Kernel benötigen,
können Sie die Gerätedateien mit
folgenden Befehlen erstellen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun15Automatische Konfiguration von
PPPPPPKonfigurationSowohl ppp als auch pppd
(die PPP-Implementierung auf Kernelebene) verwenden die
Konfigurationsdateien im Verzeichnis /etc/ppp.
Beispiele für User-PPP sind in
/usr/share/examples/ppp/ zu finden.Die Konfiguration von ppp erfordert,
je nach Ihren besonderen Bedingungen, die Bearbeitung
einiger Dateien. Was Sie in diese Dateien eintragen, hängt
unter anderem davon ab, ob Ihnen Ihr ISP eine statische
IP-Adresse (Sie verwenden immer dieselbe IP-Adresse,
die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse
(Ihre IP-Adresse ändert sich bei jeder Verbindung
mit dem ISP) zugewiesen hat.PPP und statische IP-AdressenPPPmit fester IP-AdresseSie müssen die Konfigurationsdatei
/etc/ppp/ppp.conf bearbeiten. Sie sollte
so aussehen, wie in dem unten angegebenen Beispiel.Zeilen die mit einem : enden,
beginnen in der ersten Spalte (am Beginn der Zeile). Alle
anderen Zeilen sollten wie dargestellt durch Leerzeichen
oder Tabulatoren eingerückt werden.1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuaa0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.xy.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDRZeile 1:Gibt den Standardeintrag an. Befehle dieses
Eintrags werden automatisch ausgeführt, wenn
ppp läuft.Zeile 2:Schaltet die Loggingparameter ein. Wenn die
Verbindung zufriedenstellend funktioniert, können
Sie diese Zeile verkürzen:set log phase tunDies verhindert ein übermäßiges
Anwachsen der Logdateien.Zeile 3:Gibt PPP an, wie es sich gegenüber der
Gegenstelle identifizieren soll. PPP identifiziert
sich gegenüber der Gegenstelle, wenn es Schwierigkeiten
bei der Aushandlung und beim Aufbau der Verbindung gibt.
Dabei werden Informationen bereitgestellt, die dem
Administrator der Gegenstelle helfen
können, die Ursache der Probleme zu finden.Zeile 4:Gibt das Device an, an dem das Modem
angeschlossen ist.
COM1 entspricht
/dev/cuaa0 und
COM2 entspricht
/dev/cuaa1.Zeile 5:Legt die Geschwindigkeit fest, mit der Sie
die Verbindung betreiben möchten. Falls ein Wert
von 115200 nicht funktioniert (was aber bei jedem
einigermaßen neuen Modem
funktionieren sollte), versuchen Sie es stattdessen
mit 38400.Zeilen 6 & 7:PPPUser-PPPDie Zeichenfolge für die Einwahl. User-PPP
verwendet eine expect-send Syntax, ähnlich dem
&man.chat.8;-Programm. Weitere Informationen zu den
Eigenschaften dieser Sprache bietet die Manual-Seite.Beachten Sie, dass dieser Befehl aufgrund der
besseren Lesbarkeit auf der nächsten Zeile weitergeht.
Das kann für jeden Befehl in
ppp.conf gelten, wenn ``\''
das letzte Zeichen in einer Zeile ist.Zeile 8:Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so
dass diese Zeile lediglich einen kosmetischen Charakter
hat.Zeile 9:Weist PPP an, bei der Gegenstelle eine Bestätigung
der lokalen Resolvereinstellungen anzufordern. Wenn Sie
einen lokalen Nameserver betreiben, sollte diese Zeile
auskommentiert oder gelöscht werden.Zeile 10:Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
werden von PPP ignoriert.Zeile 11:Bestimmt einen Provider, namens
provider. Wenn Sie hier den Namen Ihres
ISP einsetzen, können Sie später die Verbindung
mit aufbauen.Zeile 12: Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem Doppelpunkte
(:) oder Pipe-Zeichen
(|) als Trennzeichen verwendet werden.
Der Unterschied zwischen diesen beiden Trennzeichen ist in
&man.ppp.8; beschrieben.
Zusammenfassend: Wenn Sie die verschiedenen Nummern
abwechselnd verwenden möchten, sollten Sie die
Nummern durch einen Doppelpunkt trennen.
Wenn Sie immer die erste Nummer verwenden möchten und
die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl
mit der ersten Telefonnummer nicht möglich ist, sollten
Sie das Pipe-Zeichen zur Trennung verwenden.
Wie im Beispiel, sollten Sie die gesamte Reihe der
Telefonnummern in Anführungszeichen setzen.Sie müssen die Telefonnummer in
Anführungszeichen (") setzen,
wenn Sie Leerzeichen in der Telefonnummer verwenden,
ansonsten rufen Sie einen Fehler hervor, der vielleicht
schwer zu finden ist.Zeilen 13 & 14:Gibt den Benutzernamen und das Passwort an. Wenn Sie
zur Verbindung einen Login-Prompt im UNIX-Stil verwenden,
bezieht sich der Befehl set login
mit den \U und \P Variablen auf diese Werte. Wenn Sie
zum Verbindungsaufbau PAP oder CHAP verwenden, werden
diese Werte zum Zeitpunkt der
Authentifizierung verwendet.Zeile 15:PAPCHAPWenn Sie PAP oder CHAP einsetzen, gibt es an
dieser Stelle keinen Login-Prompt, weshalb Sie diese
Zeile auskommentieren oder löschen sollten. Der
Abschnitt Authentifizierung
mit PAP und CHAP enthält hierzu weitere
Einzelheiten.Der Login-String hat die gleiche chat-ähnliche
Syntax, wie der Einwahlstring. Der String in diesem
Beispiel funktioniert mit einem ISP, dessen
Login-Session folgendermaßen aussieht:J. Random Provider
login: foo
password: bar
protocol: pppSie müssen dieses Skript noch an Ihre
eigenen Erfordernisse anpassen. Wenn Sie dieses Skript
zum ersten Mal schreiben, sollten Sie sicherstellen,
dass Sie chat-logging aktiviert haben,
damit Sie überprüfen zu können, ob
die Konversation zwischen Ihrem Rechner und dem Rechner
des Providers wie erwartet abläuft.Zeile 16:ZeitbeschränkungSetzt einen Zeitrahmen (in Sekunden), innerhalb
dessen eine Reaktion erfolgen muss. In diesem Fall,
wird die Verbindung nach 300 Sekunden automatisch
geschlossen, wenn keine Aktivität zu
verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen
wollen, nach dessen Überschreiten die Verbindung
geschlossen wird, können Sie diesen Wert auf 0
setzen oder die Kommandozeilen-Option
verwenden.Zeile 17:ISPGibt die IP-Adresse für das Interface an.
Der String x.x.x.x sollte
durch die IP-Adresse ersetzt werden, die Ihnen Ihr
Provider zugeteilt hat. Der String
y.y.y.y sollte durch die
IP-Adresse ersetzt werden, die Ihr ISP als Gateway
angegeben hat (das ist der Rechner, mit dem Ihr Rechner
eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine
Gateway Adresse zur Verfügung gestellt hat,
verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie
eine erratene IP-Adresse verwenden
müssen, sollten Sie in der Datei
/etc/ppp/ppp.linkup einen
entsprechenden Eintrag machen. Folgen Sie dazu den
Anweisungen im Abschnitt PPP und dynamische
IP-Adressen. Wenn diese Zeile ausgelassen
wird, kann ppp nicht im
Modus betrieben werden.Zeile 18:Fügt eine Defaultroute für das Gateway Ihres
Providers hinzu. Das Wort HISADDR wird
dabei durch die in Zeile 9 angegebene Gateway
Adresse ersetzt. Wichtig ist, dass diese Zeile nach Zeile 9
erscheint, da andernfalls HISADDR
noch nicht initialisiert ist.Wenn Sie ppp nicht im
Modus betreiben, sollte diese Zeile in die Datei
ppp.linkup
verschoben werden.Wenn Sie eine statische IP-Adresse verwenden und ppp im
Modus läuft, ist es nicht notwendig,
einen Eintrag in die Datei ppp.linkup
hinzuzufügen. In diesem Fall hat ihre Routingtabelle
bereits die richtigen Einträge, bevor Sie die Verbindung
aufbauen. Sie möchten aber vielleicht einen Eintrag
hinzufügen, um ein Programm aufzurufen, nachdem die
Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel
von Sendmail erklärt.Beispiele für Konfigurationsdateien finden Sie
im Verzeichnis /usr/share/examples/ppp/.PPP und dynamische IP-AdressenPPPmit dynamischen IP-AdressenIPCPWenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt,
kann ppp so konfiguriert werden, dass die
lokale und die entfernte IP-Adresse beim Verbindungsaufbau
ausgehandelt werden. Dies geschieht, indem zunächst eine
IP-Adresse erraten wird, die von
ppp, unter Verwendung des IP
Configuration Protocol (IPCP) durch eine richtige ersetzt wird,
wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei
ppp.conf entspricht derjenigen, die im
Abschnitt PPP und statische IP-
Adressen dargestellt wurde, jedoch mit folgender
Änderung:17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255Auch hier dient die Zeilennummerierung lediglich der
besseren Übersichtlichkeit. Einrückungen, von
mindestens einem Leerzeichen, sind allerdings erforderlich.Zeile 17:Die Zahl nach dem / Zeichen,
gibt die Anzahl der Bits der Adresse an, auf die ppp
besteht. Sie möchten vielleicht andere IP-Adressen
verwenden, die oben angegebenen werden aber immer
funktionieren.Das letzte Argument (0.0.0.0) weist
PPP an, den Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen, statt 10.0.0.1 zu verwenden. Dies ist bei
einigen ISPs notwendig. Verwenden Sie nicht
0.0.0.0
als erstes Argument für set ifaddr,
da so verhindert wird, dass
PPP im Modus eine initiale Route
setzt.Wenn PPP nicht im Modus läuft,
müssen Sie die Datei/etc/ppp/ppp.linkup
editieren. ppp.linkup kommt zum Einsatz, wenn
eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
ppp die Interface Adressen vergeben und es ist
möglich, die Einträge in der Routingtabelle
hinzuzufügen:1 provider:
2 add default HISADDRZeile 1:Beim Aufbau einer Verbindung sucht ppp
in der Datei ppp.linkup nach einem
Eintrag. PPP geht dabei nach folgenden Regeln vor:
Suche zunächst nach der gleichen Bezeichnung,
die wir auch in der Datei ppp.conf
verwendet haben. Falls das nicht
funktioniert, suche nach einem Eintrag der IP-Adresse unseres
Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von
IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls
immer noch kein passender Eintrag gefunden wurde, suche nach
dem Eintrag MYADDR.Zeile 2:Diese Zeile weist ppp an, eine
Defaultroute zu verwenden, die auf HISADDR
zeigt. HISADDR wird nach der
Aushandlung mit IPCP durch die IP-Adresse des
Gateways ersetzt.Die Dateien
/usr/share/examples/ppp/ppp.conf.sample
und /usr/share/examples/ppp/ppp.linkup.sample
bieten detaillierte Beispiele für pmdemand
Einträge.Annahme eingehender AnrufePPPeingehende Anrufe annehmenWenn Sie ppp auf einem Rechner,
der in ein LAN eingebunden ist, so konfigurieren, dass eingehende
Anrufe angenommen werden, müssen Sie entscheiden,
ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das
möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus
Ihrem lokalen Subnetz vergeben und den Befehl
enable proxy
in die Datei /etc/ppp/ppp.conf einfügen.
Außerdem sollte die Datei /etc/rc.conf
Folgendes enthalten:gateway_enable="YES"Welches getty?Der Abschnitt Einwählverbindungen
bietet eine gute Beschreibung, wie Einwählverbindungen unter
Verwendung von &man.getty.8; genutzt werden können.Eine Alternative zu getty ist mgetty,
eine raffiniertere Version von getty, die mit
Blick auf Einwählverbindungen entworfen wurde.Der Vorteil von mgetty ist,
dass es auf aktive Weise mit Modems spricht,
das heißt wenn ein Port in /etc/ttys
ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe
reagieren.Spätere Versionen von mgetty (von
0.99beta aufwärts) unterstützen auch die automatische
Erkennung von PPP-Streams, was Ihren Clients den skriptlosen
Zugang zu Ihren Servern erlaubt.Der Abschnitt Mgetty und
AutoPPP bietet weitere Informationen zu
mgetty.PPP und RechteDer Befehl ppp muss normalerweise als
root ausgeführt werden. Wenn Sie
jedoch möchten, dass ppp im Server-Modus
auch von einem normalen Benutzer, wie unten beschrieben,
durch Aufruf von ppp
ausgeführt werden kann, müssen Sie
diesem Benutzer die Rechte erteilen, ppp
auszuführen, indem Sie ihn in der Datei
/etc/group der Gruppe
network hinzufügen.Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
Abschnitte der Konfigurationsdatei geben müssen, indem Sie
den allow Befehl verwenden:allow users fred maryWenn dieser Befehl im default
Abschnitt verwendet wird, erhalten die angegebenen Benutzer
vollständigen Zugriff.PPP-Shells für dynamische IP-AdressenPPP ShellsErzeugen Sie eine Datei mit dem Namen
/etc/ppp/ppp-shell, die Folgendes
enthält:#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENTDieses Skript sollte ausführbar sein. Nun
erzeugen Sie einen symbolischen Link
ppp-dialup auf dieses Skript
mit folgendem Befehl:&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialupSie sollten dieses Skript als
Shell für alle Benutzer von
Einwählverbindungen verwenden. Dies ist ein Beispiel
aus der Datei /etc/password
für einen Benutzer namens pchilds,
der PPP für Einwählverbindungen verwenden kann
(Denken Sie daran, die Passwortdatei nicht direkt zu
editieren, sondern dafür den Befehl
vipw zu verwenden).pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialupErstellen Sie ein Verzeichnis /home/ppp,
das von allen Benutzern gelesen werden kann und die folgenden leeren
Dateien enthält:-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhostsDies verhindert, dass /etc/motd
angezeigt wird.PPP-Shells für statische IP-AdressenPPP ShellsErstellen Sie die Datei ppp-shell
wie oben oben dargestellt. Erzeugen Sie nun für
jeden Account mit statischer IP-Adresse einen symbolischen
Link auf ppp-shell.Wenn Sie beispielsweise die drei Kunden,
fred, sam, und
mary haben, für die Sie Netzwerke
der Klasse C routen, schreiben Sie Folgendes:&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-maryJeder Einwählzugang dieser Kunden sollte den
oben erzeugten symbolischen Link als Shell haben
(mary's Shell
sollte also /etc/ppp/ppp-mary sein).Einrichten von ppp.conf für
dynamische IP-AdressenDie Datei /etc/ppp/ppp.conf sollte in
etwa wie folgt aussehen:default:
set debug phase lcp chat
set timeout 0
ttyd0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyd1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxyDie Einrückungen sind wichtig.Der Abschnitt default: wird für
jede Sitzung geladen. Erstellen Sie für jede
Einwählverbindung, die Sie in der Datei
/etc/ttys ermöglicht haben, einen
Eintrag, wie oben für ttyd0: gezeigt.
Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool
der Adressen bekommen, die sie für diese Benutzergruppe
reserviert haben.Einrichten von ppp.conf für
statische IP-AdressenZu dem bisher dargestellten Inhalt der Beispieldatei
/usr/share/examples/ppp/ppp.conf sollten
Sie einen Abschnitt für jeden Benutzer mit statisch
zugewiesener IP-Adresse hinzufügen. Wir werden nun
unser Beispiel mit den
Accounts fred, sam und
mary weiterführen.fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255Die Datei /etc/ppp/ppp.linkup sollte,
falls erforderlich, ebenfalls Routinginformationen für
jeden Benutzer mit statischer IP-Adresse enthalten. Die unten
dargestellte Zeile würde dem Klasse C Netzwerk 203.14.101.0 eine Route über die
PPP-Verbindung des Client hinzufügen.fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDRmgetty und AutoPPPmgettyAutoPPPLCPWird mgetty mit der Option
AUTO_PPP konfiguriert und kompiliert,
kann mgetty die LCP Phase von PPP-Verbindungen
erkennen und automatisch eine ppp-Shell starten.
Da hierbei jedoch die Login/Passwort-Sequenz nicht
durchlaufen wird, ist es notwendig, Benutzer durch PAP
oder CHAP zu authentifizieren.In diesem Abschnitt wird davon ausgegangen, dass der
Benutzer eine Version von mgetty mit
der Option AUTO_PPP (v0.99beta oder
neuer) erfolgreich konfiguriert, kompiliert und
installiert hat.Stellen Sie sicher, dass die Datei
/usr/local/etc/mgetty+sendfax/login.config
Folgendes enthält:/AutoPPP/ - - /etc/ppp/ppp-pap-dialupHierdurch wird mgetty angewiesen,
das Skript ppp-pap-dialup für
die erkannten PPP-Verbindungen auszuführen.Erstellen Sie nun die Datei
/etc/ppp/ppp-pap-dialup mit folgendem
Inhalt (die Datei sollte ausführbar sein):#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENTErstellen Sie bitte für jede Einwählverbindung,
die Sie in /etc/ttys ermöglicht haben,
einen korrespondierenden Eintrag in der Datei
/etc/ppp/ppp.conf. Diese
Einträge können problemlos, mit den Definitionen
die wir weiter oben gemacht haben, koexistieren.pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxyJeder Benutzer, der sich auf diese Weise anmeldet,
benötigt einen Benutzernamen und ein Passwort in der Datei
/etc/ppp/ppp.secret. Sie haben auch die
Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren,
indem Sie der Datei /etc/password folgende
Option hinzufügen:enable passwdauthWenn Sie bestimmten Benutzern eine statische IP-Adresse
zuweisen möchten, können Sie diese als drittes
Argument in der Datei
/etc/ppp/ppp.secret angeben. In
/usr/share/examples/ppp/ppp.secret.sample
finden Sie hierfür Beispiele.MS-ErweiterungenDNSNetBIOSPPPErweiterungen von MicrosoftEs ist möglich PPP so zu konfigurieren, dass bei Bedarf
DNS und NetBIOS Nameserveradressen bereitgestellt werden.Um diese Erweiterungen für die PPP Version 1.x
zu aktivieren, sollte der entsprechende Abschnitt der Datei
/etc/ppp/ppp.conf um folgende Zeilen
ergänzt werden:enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Für PPP Version 2 und höher:accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Damit werden den Clients die primären und sekundären
Nameserveradressen sowie ein NetBIOS Nameserver-Host
mitgeteilt.In Version 2 und höher verwendet PPP die Werte, die
in /etc/resolv.conf zu finden sind, wenn
die Zeile set dns weggelassen wird.Authentifizierung durch PAP und CHAPPAPCHAPEinige ISPs haben ihr System so eingerichtet, dass der
Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von
PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei
Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung
keinen login:-Prompt präsentieren,
sondern sofort mit der Aushandlung der PPP-Verbindung
beginnen.PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist
hierbei normalerweise kein Problem, da Passwörter, obgleich
von PAP im Klartext versandt, lediglich über die
serielle Verbindung verschickt werden. Es gibt für Cracker
wenig Möglichkeiten zu lauschen.Zurückkommend auf die Abschnitte
PPP und statische
IP-Adressen oder PPP und dynamische IP-Adressen
müssen folgende Veränderungen vorgenommen werden:7 set login
…
12 set authname MyUserName
13 set authkey MyPasswordZeile 7:Ihr ISP wird normalerweise nicht von Ihnen verlangen,
dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP
verwenden. Sie müssen deshalb den String
set login deaktivieren.Zeile 12:Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest. Sie
müssen den richtigen Wert für
MyUserName eingeben.Zeile 13:PasswortDiese Zeile legt Ihr PAP/CHAP Passwort fest. Sie
müssen den richtigen Wert für
MyPassword eingeben.
Sie können eine zusätzliche Zeile, wie etwa:15 accept PAPoder15 accept CHAPverwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.Veränderung Ihrer ppp
Konfiguration im laufenden BetriebEs ist möglich, dem Programm ppp
Befehle zu erteilen, während es im Hintergrund läuft.
Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports
erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei
um folgende Zeile:set server /var/run/ppp-tun%d DiagnosticPassword 0177Damit wird PPP angewiesen, auf den angegebenen
UNIX-Domainsocket zu hören und Clients nach dem angegebenen
Passwort zu fragen, bevor der Zugang Gewährt wird. Das
%d wird durch die Nummer des benutzten
tun-Devices ersetzt.Wenn ein Socket eingerichtet ist, kann das Programm
&man.pppctl.8; in Skripten verwendet werden, mit denen in das
laufende Programm eingegriffen wird.Interne NAT von PPP benutzenPPPNATPPP kann Network Address Translation (NAT) ohne Hilfe des
Kernels durchführen. Wenn Sie diese Funktion benutzen
wollen, fügen Sie die folgende Zeile in
/etc/ppp/ppp.conf ein:
- PPP has ability to use internal NAT without kernel diverting
- capabilities. This functionality may be enabled by the following
- line in /etc/ppp/ppp.conf:nat enable yesSie können NAT mit der Option
auf der Kommandozeile von PPP aktivieren. Weiterhin kann
NAT in /etc/rc.conf mit der Variablen
ppp_nat aktiviert werden. Dies ist auch die
Voreinstellung.Die nachstehende /etc/ppp/ppp.conf
benutzt NAT für bestimmte eingehende Verbindungen:nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http httpWenn Sie Verbindungen von außen überhaupt nicht
trauen, benutzen Sie die folgende Zeile:nat deny_incoming yesAbschließende SystemkonfigurationPPPKonfigurationSie haben ppp nun konfiguriert,
aber bevor PPP eingesetzt werden kann, gibt noch einige
weitere Dinge zu erledigen, die alle die Bearbeitung der
Datei /etc/rc.conf erfordern.Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
- als erstes sicher, dass die Zeile hostname=
+ als Erstes sicher, dass die Zeile hostname=
vorhanden ist:hostname="foo.example.com"Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
Namen als Hostnamen verwenden.Schauen Sie nach der Variable
network_interfaces. Wenn Sie Ihr System
so konfigurieren möchten, dass bei Bedarf
eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device
tun0 zu der Liste hinzufügen oder es
andernfalls entfernen.network_interfaces="lo0 tun0"
ifconfig_tun0=Die Variable ifconfig_tun0 sollte leer sein
und eine Datei namens /etc/start_if.tun0 sollte
erstellt werden. Diese Datei sollte die nachfolgende Zeile
enthalten:ppp -auto mysystemDieses Skript startet Ihren ppp-Dæmon im Automatik-Modus.
Es wird bei der Netzwerkkonfiguration ausgeführt.
Wenn Ihr Rechner als Gateway für ein LAN fungiert,
möchten Sie vielleicht auch die Option
verwenden. In der Manual-Seite sind
weitere Einzelheiten hierzu zu finden.Mit folgender Zeile in der Datei
/etc/rc.conf verhindern Sie den Start
eines Routerprogramms:router_enable="NO"routedEs ist wichtig, dass der routed Dæmon nicht
gestartet wird (was standardmäßig geschehen würde), da
routed dazu tendiert, die von
ppp erstellten Einträge der Standardroute
zu überschreiben.Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile
sendmail_flags nicht die Option
enthält, da sendmail sonst ab und zu
die Netzwerkverbindung prüfen wird, was möglicherweise dazu
führt, dass sich Ihr Rechner einwählt. Sie können
hier Folgendes angeben:sendmail_flags="-bd"sendmailDer Nachteil dieser Lösung ist, dass Sie
sendmail nach jedem Aufbau einer
ppp-Verbindung auffordern müssen, die Mailwarteschlange
zu überprüfen, indem Sie Folgendes eingeben:&prompt.root; /usr/sbin/sendmail -qVielleicht möchten Sie den Befehl !bg
in der Datei ppp.linkup verwenden, um dies
zu automatisieren:1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30mSMTPWenn Sie dies nicht möchten, ist es möglich,
einen dfilter einzusetzen, um SMTP-Verkehr
zu blockieren. Weitere Einzelheiten hierzu finden Sie in den
Beispieldateien.Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu
zu starten.Nach dem Neustart können Sie entweder:&prompt.root; pppund danach dial provider eingeben,
um eine PPP-Sitzung zu starten, oder Sie geben:&prompt.root; ppp -auto providerein, um ppp bei Datenverkehr aus Ihrem
Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
start_if.tun0 Skript erstellt).ZusammenfassungDie folgenden Schritte sind nötig, wenn ppp zum ersten Mal
eingerichtet werden soll:Clientseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunN
im Verzeichnis /dev vorhanden ist.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
pmdemand sollte für die meisten
ISP ausreichen.Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie
einen Eintrag in der Datei
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Erstellen Sie das Skript start_if.tun0,
wenn Sie einen bedarfgesteuerten Einwahlprozess
(demand dialing)
benötigen.Serverseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunN
im Verzeichnis /dev vorhanden istErstellen Sie einen Eintrag in der Datei
/etc/passwd
(verwenden Sie dazu das Programm &man.vipw.8;).Erstellen Sie ein Profil im Heimatverzeichnis des
Benutzers, das
ppp -direct direct-server o.Ä.
ausführt.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
direct-server sollte ausreichen.Erzeugen Sie einen Eintrag in
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Gennady B.SorokopudTeile wurden ursprünglich beigetragen von RobertHuffKernel-PPPEinrichtung von Kernel-PPPPPPKernel-PPPBevor Sie PPP auf Ihrem Computer einrichten, sollten Sie
dafür sorgen, dass pppd im Verzeichnis
/usr/sbin vorhanden ist und
/etc/ppp existiert.pppd kann auf zweierlei Weise arbeiten:Als Client – Sie möchten
Ihren Rechner mit einem Netz verbinden, indem Sie eine
serielle PPP-Verbindung aufbauen.PPPServerAls Server – Ihr Rechner ist in
ein Netzwerk eingebunden und stellt die PPP-Verbindung
für andere Rechner im Netzwerk her.In beiden Fällen werden Sie eine Datei mit den
benötigten Optionen erstellen müssen
(/etc/ppp/options oder,
wenn mehr als ein Benutzer PPP verwendet,
~/.ppprc).Sie benötigen außerdem eine Software
(vorzugsweise comms/kermit), mit der
Sie seriell per Modem wählen und eine Verbindung zu dem
entfernten Host aufbauen können.TrevRoydhouseBasierend auf Informationen von Verwendung von pppd als ClientPPPClientCiscoDie folgende Datei /etc/ppp/options
kann für einen Verbindungsaufbau mit PPP zu einem Cisco
Terminalserver verwendet werden.crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:<remote_ip> # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be your
# default routerUm eine Verbindung herzustellen, sollten Sie:kermitModemMit kermit (oder einem
anderen Modemprogramm) den entfernten Host anwählen
und Ihren Benutzernamen sowie Ihr Passwort (oder was
sonst nötig ist, um PPP auf dem entfernten Host
zu aktivieren) eingeben.kermit beenden
(ohne die Verbindung abzubrechen).Folgendes eingeben:&prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty0119200Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
wählen und das richtige Device verwenden.Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn
die Verbindung nicht funktionieren sollte, können Sie
die Option in die Datei
/etc/ppp/options eintragen und die Ausgaben
auf der Konsole beobachten, um die Fehler zu finden.Das folgende Skript /etc/ppp/pppup
führt alle 3 Schritte automatisch aus:#!/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 'killing 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 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200kermit/etc/ppp/kermit.dial ist
ein kermit-Skript
das den Einwählvorgang und alle notwendigen Autorisationen auf
dem entfernten Host durchführt (ein Beispiel für ein
solches Skript ist im Anhang zu diesem Dokument zu finden).Verwenden Sie das folgende Skript
/etc/ppp/pppdown, um die PPP-Verbindung
abzubrechen:#!/bin/sh
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'killing 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 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptestPrüfen Sie, ob pppd immer
noch läuft, indem Sie
/usr/etc/ppp/ppptest ausführen.
Dieses Skript sollte folgendermaßen aussehen:#!/bin/sh
pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0Um die Modemverbindung abzubrechen, können Sie das Skript
/etc/ppp/kermit.hup verwenden, das Folgendes
enthalten sollte:set line /dev/tty01 ; put your modem device here
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
exitHier ist eine alternative Methode, bei der chat
an Stelle von kermit eingesetzt wird:Die folgenden beiden Dateien reichen aus, um eine
Verbindung über pppd herzustellen./etc/ppp/options:/dev/cuaa1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain <your.domain> # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be
# your default router/etc/ppp/login.chat.script:Die folgenden Angaben sollten in einer Zeile stehen.ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number>
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id>
TIMEOUT 5 sword: <password>Wenn diese Dateien richtig installiert und modifiziert sind,
müssen Sie pppd, nur noch wie folgt
starten:&prompt.root; pppdVerwendung von pppd als Server/etc/ppp/options sollte etwa Folgendes
enthalten:crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem lineDas folgende Skript /etc/ppp/pppserv
lässt pppd als Server zu arbeiten:#!/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 'killing 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 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200Verwenden Sie das Skript/etc/ppp/pppservdown,
um den Server zu beenden:#!/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 'killing 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 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noansMit dem kermit-Skript
(/etc/ppp/kermit.ans) lässt sich
die Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
ausschalten. Es sollte folgendermaßen aussehen: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 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exitEin Skript namens /etc/ppp/kermit.dial wird
für die Einwahl und Authentifizierung am entfernten Host verwendet.
Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen.
Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein.
In Abhängigkeit von der Reaktion Ihres Modems und des
entfernten Hosts, werden Sie auch noch die input
Anweisungen verändern müssen.;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
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 ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
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 ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
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 ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:TomRhodesBeigetragen von Probleme bei PPP-VerbindungenPPPFehlersucheDieser Abschnitt behandelt Probleme, die auftauchen
können, wenn PPP über ein Modem verwendet wird.
Sie müssen beispielsweise genau die Eingabeaufforderung
des Systems kennen, in das Sie sich einwählen.
Einige ISPs verwenden ssword
andere verwenden password; wenn
das Einwahlskript falsch ist, scheitert die Anmeldung.
Üblicherweise suchen Sie nach Fehlern der PPP-Verbindung
indem Sie sich manuell verbinden. Wie das genau geht,
wird im Folgenden gezeigt.Gerätedateien überprüfenWenn Sie den Kernel neu konfiguriert haben, werden
Sie such an das sio-Gerät
erinnern. Falls Sie keinen Kernel konfiguriert haben,
machen Sie sich keine Sorgen. Die seriellen Geräte
finden Sie in der Ausgabe von dmesg:&prompt.root;dmesg | grep sioIn der Ausgabe sollten die entsprechenden
sio-Geräte, beispielsweise
sio1 (COM2), angezeigt werden.
Wird ein passendes Gerät angezeigt, brauchen Sie
keinen neuen Kernel zu erstellen, sondern lediglich
die Gerätedatei anzulegen. Wechseln Sie dazu
in das Verzeichnis /dev und rufen
MAKEDEV wie folgt auf:&prompt.root; sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3Wenn Ihr Modem an sio1
angeschlossen ist (in DOS ist dieser Anschluss als
COM2 bekannt), ist
/dev/cuaa1 die
dazugehörende Gerätedatei.Manuelle VerbindungenEin Verbindungsaufbau zum Internet durch manuelle Steuerung
von ppp geht schnell, ist einfach und
stellt einen guten Weg dar, eine Verbindung auf Fehler hin
zu überprüfen oder einfach Informationen darüber
zu sammeln, wie Ihr ISP Verbindungen handhabt.
Lassen Sie uns PPP von der
Kommandozeile aus starten. Beachten Sie, dass in allen
Beispielen example
der Hostname der Maschine ist, auf der
PPP läuft. Sie starten
ppp, indem Sie einfach ppp
eingeben:&prompt.root; pppWir haben ppp nun gestartet.ppp ON example> set device /dev/cuaa1Wir geben das Device an, an das unser Modem angeschlossen ist.
In diesem Fall ist es cuaa1.ppp ON example> set speed 115200Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel
verwenden wir 115200 kbpsppp ON example> enable dnsWir weisen ppp an, unseren
Resolver zu konfigurieren und in der Datei
/etc/resolv.conf Einträge für
den Nameserver hinzuzufügen. Falls ppp
unseren Hostnamen nicht bestimmen kann, geben wir diesen
später manuell an.ppp ON example> termWir wechseln in den Terminal-Modus, um
das Modem manuell kontrollieren zu können.deflink: Entering terminal mode on /dev/cuaa1
type '~h' for helpat
OK
atdt123456789Sie verwenden at zur Initialisierung
Ihres Modems und dann atdt sowie die Nummer Ihres
ISP, um den Einwählprozess zu starten.CONNECTDies ist die Bestätigung, dass eine Verbindung aufgebaut
wurde. Falls wir Verbindungsprobleme bekommen, die nicht
mit der Hardware zusammenhängen, werden wir an dieser
Stelle ansetzen müssen, um eine Lösung zu finden.ISP Login:myusernameHier werden Sie nach einem Benutzernamen gefragt. Geben Sie
am Prompt den Namen ein, den Ihnen Ihr ISP
zur Verfügung gestellt hat.ISP Pass:mypasswordAn dieser Stelle müssen Sie das Passwort angeben, das
Ihnen von Ihrem ISP vorgegeben wurde. Das
Passwort wird, analog dem normalen Anmeldevorgang,
nicht angezeigt.Shell or PPP:pppAbhängig von Ihrem ISP, kann es sein,
dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden
hier gefragt, ob wir eine Shell beim Provider verwenden oder
ppp starten wollen. Weil wir eine
Internetverbindung aufbauen wollen, haben wir uns in diesem
Beispiel für ppp entschieden.Ppp ON example>Beachten Sie, dass sich in diesem Beispiel das erste
in einen Großbuchstaben verwandelt hat.
Dies zeigt, dass wir erfolgreich eine Verbindung
zu unserem ISP hergestellt haben.PPp ON example>An dieser Stelle haben wir uns erfolgreich bei unserem
ISP authentifiziert und warten darauf, dass
uns eine IP-Adresse zugewiesen wird.PPP ON example>Wir haben uns mit der Gegenstelle auf eine
IP-Adresse geeinigt und den Verbindungsaufbau
erfolgreich abgeschlossenPPP ON example> add default HISADDRHier geben wir unsere Standardroute an. Weil zu diesem
Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht,
müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt
aufnehmen können. Falls dies aufgrund bestehender Routen
nicht funktionieren sollte, können Sie ein Ausrufungszeichen
! vor setzen.
Sie können diese Standardroute aber auch vor dem
eigentlichen Verbindungsaufbau angeben und
PPP wird entsprechend eine neue Route
aushandeln.Wenn alles gut ging, sollten wir nun eine aktive
Internetverbindung haben, die wir mit
- CTRL
+ Ctrlz
in den Hintergrund schicken können
Wenn sie feststellen, dass PPP wieder zu
ppp wird, ist die Verbindung abgebrochen.
Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus
angezeigt wird. Große Ps zeigen an,
dass wir eine Verbindung zum ISP haben und
kleine ps zeigen an, dass
wir aus irgendeinem Grund die Verbindung verloren haben.
ppp hat nur diese beiden Zustände.FehlersucheWenn sie einen Direktanschluss haben und keine Verbindung
aufbauen können, schalten Sie die Hardware-Flusssteuerung
CTS/RTS aus, indem Sie die Option
verwenden. Dies ist
zumeist dann der Fall, wenn Sie mit einem
PPP-fähigen Terminalserver
verbunden sind. Hier bleibt PPP
bei dem Versuch hängen, Daten über Ihre
Nachrichtenverbindung zu schicken, weil auf ein
CTS-Signal (Clear-to-Send) gewartet
wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen,
sollten Sie auch die Option
verwenden, die erforderlich sein kann, um bestimmte Hardware
zu kontrollieren, die auf die Übertragung bestimmter
Zeichen zwischen den Kommunikations-Endpunkten (zumeist
XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8;
bietet mehr Informationen zu dieser Option und ihrer
Verwendung.Wenn Sie ein älteres Modem haben, benötigen Sie
vielleicht die Option .
Standardmäßig wird keine Parität vorausgesetzt,
sie ist aber für die Fehlerprüfung bei älteren
Modems und bei bestimmten ISPs erforderlich.
Sie könnten diese Option für den
ISP Compuserve benötigen.PPP kehrt möglicherweise
nicht in den Befehlsmodus zurück, was normalerweise
auf einen Fehler bei der Aushandlung hinweist, wobei der
ISP wartet, dass Ihre Seite den
Aushandlungsprozess beginnt. Die Option ~p
erzwingt in diesem Fall den Beginn des
Aushandlungsprozesses.Wenn Sie nie einen Login-Prompt erhalten, müssen
Sie statt des im Beispiel gezeigten UNIX-Stils höchst
wahrscheinlich PAP oder
CHAP für die Authentifizierung
verwenden. Um PAP oder
CHAP zu verwenden, ergänzen Sie
PPP einfach um folgende Optionen,
bevor Sie in den Terminalmodus wechseln:ppp ON example> set authname myusernameHierbei sollte myusername
durch den Benutzernamen ersetzt werden, den Sie von Ihrem
ISP bekommen haben.ppp ON example> set authkey mypasswordmypassword sollten Sie
durch das Passwort ersetzen, das Ihnen Ihr ISP
gegeben hat.Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner
unter ihrem Domänen-Namen erreichen können, versuchen
Sie, einen Rechner mit &man.ping.8; und seiner
IP-Adresse zu erreichen. Wenn 100% der Pakete
verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
keine Standardroute zugewiesen wurde. Überprüfen Sie,
ob während des Verbindungsaufbaus die Option
gesetzt war. Wenn Sie zu
einer entfernten IP-Adresse eine Verbindung
aufbauen können, ist es möglich, dass die
Adresse eines Nameservers nicht in die Datei
/etc/resolv.conf eingetragen
wurde. Diese Datei sollte folgendermaßen aussehen:domain example.com
nameserver x.x.x.x
nameserver y.y.y.y Dabei sollten x.x.x.x und
y.y.y.y durch die
IP-Adressen der DNS-Server Ihres
ISPs ersetzt werden. Diese Information
ist Ihnen bei Vertragsabschluss mitgeteilt worden. Wenn
nicht, sollte ein Anruf bei Ihrem ISP
Abhilfe schaffen.Mit &man.syslog.3; können Sie Ihre
PPP-Verbindung protokollieren.
Fügen Sie einfach die folgende Zeile in
/etc/syslog.conf ein:!ppp
*.* /var/log/ppp.logIn den meisten Fällen existiert diese
Funktionalität bereits.JimMockBeigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von PPP over Ethernet (PPPoE)PPPover EthernetPPPoEPPP, over EthernetDieser Abschnitt beschreibt, wie Sie PPP over Ethernet
(PPPoE) einrichten.Konfiguration des KernelsEine besondere Kernelkonfiguration ist für PPPoE nicht
mehr erforderlich. Sofern die notwendige NetGraph-Unterstützung
nicht in den Kernel eingebaut wurde, wird diese von
ppp dynamisch geladen.Einrichtung von ppp.confDies hier ist ein Beispiel einer funktionierenden
ppp.conf:default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDRppp ausführenAls root, geben Sie ein:&prompt.root; ppp -ddial name_of_service_providerppp beim Systemstart
ausführenFügen Sie Folgendes in Ihre Datei
/etc/rc.conf ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"Verwendung einer PPPoE-Dienstbezeichnung (service tag)Manchmal kann es notwendig sein, eine Dienstbezeichnung
(service tag) zu verwenden, um
eine Verbindung aufzubauen.
Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
PPPoE-Servern unterscheiden zu können, die einem
bestehenden Netzwerk zugeteilt sind.Die erforderlichen Dienstbezeichnungen sollten in der
Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung
gestellt hat. Wenn Sie diese Informationen dort nicht finden,
fragen Sie beim technischen Kundendienst Ihres ISP danach.Als letzte Möglichkeit, bleibt die Methode, die von
dem Programm Roaring Penguin PPPoE
vorgeschlagen wird, das in der Ports-Sammlung zu finden ist. Bedenken
Sie aber, dass dadurch Daten Ihres Modems gelöscht werden
können, so dass es nicht mehr benutzt werden kann.
Überlegen Sie also genau, ob Sie dies machen wollen.
Installieren Sie einfach das Programm, das Ihnen Ihr Provider
zusammen mit dem Modem geliefert hat. Gehen Sie dann in das
Menü System dieses Programms. Der Name
Ihres Profils, sollte in der Liste aufgeführt sein.
Normalerweise ist dies ISP.Der Name des Profils (service tag)
wird im Eintrag für
die PPPoE-Konfiguration in der Datei ppp.conf
verwendet, als der Teil des Befehls
set device (die manpage &man.ppp.8;
enthält Einzelheiten hierzu), der den Provider angibt.
Dieser Eintrag sollte folgendermaßen aussehen:set device PPPoE:xl1:ISPVergessen Sie nicht, statt xl1
das richtige Device Ihrer Netzwerkkarte anzugeben.Denken sie auch daran, ISP
durch das Profil, das Sie oben gefunden haben zu ersetzen.Weitere Informationen bieten:Nutzung von T-DSL und T-Online mit
FreeBSD von Udo ErdelhoffCheaper Broadband with FreeBSD on
DSL von Renaud Waldura.PPPoE mit einem &tm.3com;
HomeConnect
ADSL Modem Dual LinkDieses Modem folgt nicht dem RFC 2516
(A Method for transmitting PPP over Ethernet
(PPPoE), verfasst von L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere
Pakettyp-Codes für die Ethernet Frames verwendet.
Bitte beschweren Sie sich unter 3Com, wenn Sie
der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten
sollte.Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu
kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
beim Systemstart automatisch geschehen, indem die Datei
/etc/sysctl.conf angepasst wird:net.graph.nonstandard_pppoe=1oder, wenn der Befehl unmittelbar wirksam werden soll, durch
sysctl net.graph.nonstandard_pppoe=1.Da hiermit eine systemweit gültige Einstellung vorgenommen
wird, ist es nicht möglich, gleichzeitig mit einem normalen
PPPoE-Client oder Server und einem &tm.3com;
HomeConnect ADSL Modem
zu kommunizieren.PPP over ATM (PPPoA)PPPover ATMPPPoAPPP, over ATMNachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
eingerichtet wird. PPPoA ist vor allem unter europäischen
DSL-Providern populär.Der Einsatz von PPPoA mit dem Alcatel &speedtouch; USBPPPoA-Unterstützung für dieses Gerät ist
unter FreeBSD als Port verfügbar, da die Firmware unter Alcatels
Lizenzvereinbarung vertrieben wird und deshalb nicht
mit dem FreeBSD-Basissystem frei verteilt werden kann.Um die Software zu installieren, verwenden Sie einfach die Ports-Sammlung. Installieren Sie den Port
net/pppoa und folgen Sie den dabei
angegebenen Instruktionen.Für den ordnungsgemäßen Betrieb muss
das Alcatel &speedtouch; USB, wie viele USB-Geräte,
Firmware auf den Gastrechner laden. FreeBSD kann die
Firmware automatisch laden, wenn das Gerät mit
dem USB-Anschluss verbunden wird. Dazu fügen Sie
als Benutzer root die nachstehenden
Zeilen in /etc/usbd.conf ein:device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"Den USB-Dæmon aktivieren Sie mit der folgenden
Zeile in /etc/rc.conf:usbd_enable="YES"Wenn die Verbindung beim Start von
ppp aufgebaut werden soll,
fügen Sie die nachstehenden Zeilen als Benutzer
root in /etc/rc.conf
ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"Verwenden Sie bitte diese Einstellungen zusammen mit
der Beispielkonfiguration in ppp.conf
des Ports net/pppoa.Die Verwendung von mpdSie können mpd verwenden,
um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine
Verbindung herzustellen. Sie finden
mpd in der Ports-Sammlung unter
net/mpd. Viele ADSL Modems,
wie das Alcatel &speedtouch; Home, sind auf einen PPTP-Tunnel
zwischen dem Modem und dem Rechner angewiesen.Zuerst müssen Sie den Port installieren, um danach
mpd entsprechend Ihren Anforderungen
und den Vorgaben Ihres Providers konfigurieren zu können. Der
Port installiert auch einige
gut dokumentierte Beispielkonfigurationsdateien in
PREFIX/etc/mpd/.
Beachten Sie, dass PREFIX hier das Verzeichnis
angibt, in das Ihre Ports installiert werden. Standardmäßig
ist dies das Verzeichnis /usr/local/.
Ein kompletter Leitfaden zur Konfiguration von
mpd ist im HTML-Format verfügbar,
sobald der Port installiert ist. Dieser ist in
PREFIX/share/mpd/
zu finden. Hier ist eine Beispielkonfiguration, um mit
mpd eine Verbindung zu einem
ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
verteilt. Zunächst die Datei
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
openDer Benutzername, den Sie zur Authentifizierung bei
Ihrem ISP verwenden.Das Passwort, das Sie zur Authentifizierung bei
Ihrem ISP verwenden.Die Datei mpd.links enthält
Informationen über die Verbindung(en), die Sie aufbauen
möchten. Eine Beispieldatei mpd.links,
die das vorige Beispiel ergänzt, wird unten
angegeben:adsl:
set link type pptp
set pptp mode active
set pptp enable originate incoming outcall
set pptp self 10.0.0.1
set pptp peer 10.0.0.138Die IP-Adresse des &os;-Rechners von dem aus Sie
mpd verwenden.Die IP-Adresse des ADSL-Modems.
Das Alcatel &speedtouch; Home hat die Adresse
10.0.0.138 voreingestellt.Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
Befehls als root gestartet werden:&prompt.root; mpd -b adslSie können sich den Status der Verbindung durch folgenden Befehl
anzeigen lassen:&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 0xffffffffDie Verwendung von mpd ist der
empfehlenswerteste Weg, um mit &os; eine Verbindung zu
einem ADSL-Dienst aufzubauen.Die Verwendung von pptpclientEs ist außerdem möglich, mit FreeBSD eine
Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird
net/pptpclient verwendet.Um mit net/pptpclient eine
eine Verbindung zu einem DSL-Dienst aufbauen zu können,
müssen Sie den entsprechenden Port bzw. das Paket installieren
und die Datei /etc/ppp/ppp.conf bearbeiten.
Sie müssen root sein, um diese Schritte
durchführen zu können. Eine Beispieldatei für
ppp.conf ist weiter unten angegeben.
Weitere Informationen zu den Optionen von ppp.conf
bietet die Manual-Seite 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 HISADDRDer Benutzername für den Zugang zu den Diensten
Ihres ISP.Das Passwort für Ihren Account.Weil Sie Ihr Passwort in der Datei
ppp.conf in Klartext angeben müssen,
sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei
lesen kann. Die folgende Reihe von Befehlen stellt sicher,
dass die Datei nur von root lesbar ist.
Zusätzliche Informationen bieten die Manual-Seiten
&man.chmod.1; und &man.chown.8;:&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.confDies wird einen Tunnel für eine PPP-Session zu Ihrem
DSL-Router öffnen. Ethernet-DSL-Modems haben eine
vorkonfigurierte LAN-IP-Adresse, mit der Sie eine Verbindung
aufbauen. Im Falle des Alcatel &speedtouch; Home handelt es sich
dabei um die Adresse 10.0.0.138.
In der Dokumentation Ihres Routers sollte angegeben sein, welche
Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen
und eine PPP-Session zu starten, führen
Sie bitte folgenden Befehl aus:&prompt.root; pptp addressadslVielleicht möchten Sie ein kaufmännisches Und
(&) an das Ende oben angegebenen Kommandos
anfügen, da pptp sonst den
Prompt nicht zurückgibt.Ein virtuelles Tunnel-Device tun
wird für das Zusammenspiel der Prozesse
pptp und ppp
geschaffen. Wenn Sie den Prompt zurückerhalten haben
oder der pptp-Prozess das Vorliegen
einer Verbindung bestätigt, können Sie den Tunnel
folgendermaßen überprüfen:&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 918Wenn Sie nicht in der Lage sein sollten, eine Verbindung
aufzubauen, überprüfen Sie die Konfiguration Ihres Routers,
den Sie normalerweise per telnet
oder mit einem Web-Browser erreichen können. Falls
dennoch keine Verbindung zustande kommt, sollten Sie die
Ausgabe des Befehls pptp und die
Logdatei /var/log/ppp.log von
ppp nach Hinweisen auf die Ursache
durchsuchen.SatoshiAsamiUrsprünglich beigetragen von GuyHelmerMit Beiträgen von PieroSeriniSLIPSLIPEinrichtung eines SLIP-ClientsSLIPClientIm Folgenden wird ein Weg beschrieben, SLIP auf einer
FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen
einzurichten. Bei einer dynamischen Zuweisung des Hostnamens
(das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert)
wird die Einrichtung wahrscheinlich etwas komplexer aussehen.Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa /dev/modem, der auf den
wirklichen Gerätenamen /dev/cuaaN
verweist. Damit ist es Ihnen möglich,
vom eigentlichen Gerätenamen zu abstrahieren, sollten Sie
das Modem einmal an eine andere Schnittstelle anschließen
müssen. Es kann ziemlich umständlich sein, wenn Sie
eine viele Dateien in /etc und
.kermrc-Dateien, die über
das ganze System verstreut sind, anpassen müssen!/dev/cuaa0 ist
COM1, cuaa1 ist
COM2, etc.Stellen Sie sicher, dass Folgendes in Ihrer
Kernelkonfigurationsdatei steht:pseudo-device sl 1Dieses pseudo-device ist im GENERIC Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.Dinge, die Sie nur einmal erledigen müssenTragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei /etc/hosts
ein. Diese Datei sieht bei mir so aus: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 ns2Vergewissern Sie sich, dass in der Datei
/etc/host.conf
vor steht, wenn
Sie ein System vor FreeBSD 5.0 verwenden. Ab
FreeBSD 5.0 wird die Datei
/etc/nsswitch.conf verwendet, in deren
-Zeile vor
stehen sollte. Ohne diese Reihenfolge
könnten lustige Dinge passieren.Editieren Sie die Datei
/etc/rc.conf.Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
bearbeiten:hostname="myname.my.domain"Hier sollte der vollständige Internethostname
Ihres Rechners angegeben werden.Fügen Sie sl0
zur Liste der Netzwerkinterfaces hinzu, indem Sie die
folgende Zeile abändern:network_interfaces="lo0"wird zu:network_interfaces="lo0 sl0"Legen Sie die Startwerte von sl0 fest, indem Sie
die Zeile ergänzen:ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"DefaultrouteDen Defaultrouter geben Sie durch die Modifikation
folgender Zeile an:defaultrouter="NO"wird zu:defaultrouter="slip-gateway"Erstellen Sie die Datei
/etc/resolv.conf, die Folgendes
enthält:domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12NameserverDomain NameWie Sie sehen, werden hiermit die Nameserver angegeben.
Natürlich hängen die tatsächlichen Domainnamen
und Adressen von Ihren Gegebenheiten ab.Legen Sie ein Passwort für root und
toor (sowie für alle anderen Accounts
die kein Passwort haben) fest.Starten Sie Ihren Rechner neu und überprüfen
Sie, ob er mir dem richtigen Hostnamen startet.Aufbau einer SLIP-VerbindungSLIPVerbindungsaufbauWählen Sie sich ein, geben Sie
slip und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
hängt von Ihren Gegebenheiten ab. Wenn Sie kermit
verwenden, können Sie ein Skript wie das
Folgende verwenden:# kermit setup
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\x0aNatürlich müssen Sie hier Ihren Hostnamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
können Sie am kermit-Propmt einfach slip
eingeben, um sich zu verbinden.Es ist generell eine schlechte
Idee, Ihr Passwort in einer unverschlüsselten
Textdatei irgendwo im Dateisystem zu speichern.
Tun Sie dies auf Ihr eigenes Risiko.Belassen Sie kermit so (Sie können es mit
Ctrlz unterbrechen) und geben Sie als
root ein:&prompt.root; slattach -h -c -s 115200 /dev/modemWenn Sie mit ping Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
statt als Argument
für slattach zu verwenden.Beenden der VerbindungUm slattach zu beenden, geben Sie
Folgendes ein:&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`Beachten Sie, dass Sie
root sein müssen, um dies
durchführen zu können. Kehren Sie zu kermit
zurück (mit Hilfe von fg, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(q).Die slattach Manual-Seite gibt an,
dass ifconfig sl0 down verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint in meinem Fall keinen Unterschied zu machen.
(ifconfig sl0 gibt dasselbe aus).Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden (mein Modem macht dies oft).
In diesem Fall starten Sie einfach kermit und beenden es wieder.
Beim zweiten Versuch geht es meist aus.Lösungen bei ProblemenWenn es nicht funktionieren sollte, können Sie
mich gerne fragen. Über diese Dinge sind Benutzer
bisher gestolpert:Nicht oder in
slattach verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).Verwendung von statt
(bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).Probieren Sie ifconfig sl0,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Wenn ping die Fehlermeldung
no route to host ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando netstat -r
ansehen:&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)Die Zahlen im Beispiel stammen von einer recht
ausgelasteten Maschine. Die Zahlen auf Ihrem System werden,
je nach Netzaktivität, von den gezeigten
abweichen.Einrichtung eines SLIP-ServersSLIPServerDieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als
SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu,
konfigurieren, dass beim Login automatisch eine Verbindung für
entfernte SLIP-Clients aufgebaut wird.VoraussetzungenTCP/IP NetzeDieser Abschnitt ist ausgesprochen technischer Natur, weshalb
Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
mit dem TCP/IP Protokoll, insbesondere mit
Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen,
Routing und Routingprotokollen, wie RIP, vertraut sind.
Die Konfiguration von SLIP-Diensten
auf einem Einwählserver erfordert die Kenntnis dieser Konzepte.
Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte
Craig Hunt's TCP/IP Network Administration
publiziert von O'Reilly & Associates, Inc. (ISBN Nummer
0-937175-82-X) oder die Bücher von Douglas Comer über
das TCP/IP Protokoll.ModemWir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
sehen Sie sich bitte das Tutorium zur Konfiguration von
Einwähldiensten an. Wenn Sie einen WWW-Browser zur
Verfügung haben, schauen Sie in der Liste der Tutorien unter
http://www.FreeBSD.org/
nach. Sie können auch die Manual-Seiten &man.sio.4;
für Informationen zum Gerätetreiber der seriellen
Schnittstelle &man.ttys.5;, &man.gettytab.5;, &man.getty.8;,
& &man.init.8; für Informationen zu Rate ziehen, die
benötigt werden, um das System so zu konfigurieren, dass Logins
über ein Modem akzeptiert werden. &man.stty.1; bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (wie beispielsweise clocal für
direkt angeschlossene serielle Geräte).Ein kurzer ÜberblickMit der normal verwendeten Konfiguration funktioniert der
FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer
speziellen SLIP-Login-ID ein, wobei
/usr/sbin/sliplogin als Shell dieses
besonderen Accounts dient. Das Programm
sliplogin durchsucht die Datei
/etc/sliphome/slip.hosts nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript /etc/sliphome/slip.login
aus, um das SLIP-Interface zu konfigurieren.Ein Beispiel für ein Login eines SLIP-ServersWenn beispielsweise die Kennung eines SLIP-Benutzers,
Shelmerg wäre, könnte der Eintrag des
Benutzers Shelmerg in der Datei
/etc/master.passwd etwa so aussehen:Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliploginWenn sich Shelmerg anmeldet,
wird sliplogin die Datei
/etc/sliphome/slip.hosts nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
/etc/sliphome/slip.hosts stehen:Shelmerg dc-slip sl-helmer 0xfffffc00 autocompsliplogin wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
/etc/sliphome/slip.login wie hier
dargestellt ausführen:/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocompWenn alles gut läuft, wird
/etc/sliphome/slip.login ein
ifconfig für das SLIP-Interface
durchführen, mit dem sich sliplogin
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an slip.login
übergeben wurde), um die lokale IP-Adresse
(dc-slip), die entfernte IP-Adresse
(sl-helmer), die Netzmaske
des SLIP-Interface (0xfffffc00) und
alle zusätzlichen Optionen (autocomp)
festzulegen. Wenn etwas schief laufen sollte, bietet,
sliplogin normalerweise informative
Meldungen durch den Syslog daemon, der
die Meldungen standardmäßig nach
/var/log/messages schreibt (sehen Sie
hierzu auch in den Manual-Seiten für &man.syslogd.8;
und &man.syslog.conf.5; nach). Überprüfen Sie
vielleicht auch /etc/syslog.conf,
um zu sehen was syslogd aufzeichnet und
wohin es aufgezeichnet wird.OK, genug der Beispiele – lassen Sie uns ein
System einrichten.KernelkonfigurationKernelKonfigurationDie FreeBSD Standardkernels haben normalerweise bereits
zwei SLIP-Interfaces definiert (sl0 und
sl1). Sie können netstat
-i verwenden, um zu überprüfen, ob diese
beiden Interfaces in Ihrem Kernel definiert sind.Ein Beispiel für die Ausgabe von
netstat -i:Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133
ed0 1500 138.247.224 ivory 291311 0 174209 0 133
lo0 65535 <Link> 79 0 79 0 0
lo0 65535 loop localhost 79 0 79 0 0
sl0* 296 <Link> 0 0 0 0 0
sl1* 296 <Link> 0 0 0 0 0Die sl0 und
sl1 Interfaces, die von
netstat -i angezeigt werden, weisen darauf hin,
dass zwei SLIP-Interfaces in den Kernel eingebaut sind. (Der
Asteriskus nach sl0 und sl1
zeigt an, dass diese Interfaces deaktiviert sind.)Der FreeBSD-Standardkernel ist jedoch nicht so konfiguriert,
dass Pakete weitergeleitet werden (standardmäßig wird
sich ihre FreeBSD-Maschine nicht als Router verhalten), aufgrund
von Internet RFC Maßgaben für Internet Hosts (vergleichen
Sie hierzu RFCs 1009 [Requirements for Internet Gateways], 1122
[Requirements for Internet Hosts – Communication Layers],
und vielleicht auch 1127 [A Perspective on the Host Requirements
RFCs]). Wenn Sie Ihren FreeBSD-SLIP-Server als Router einsetzen
möchten, müssen Sie die Datei editieren
/etc/rc.conf und und den Wert der
Variable gateway_enable auf
setzen.Danach sollten Sie Ihren Rechner neu starten, damit die neuen
Einstellungen wirksam werden.Sie werden im unteren Teil der Konfigurationsdatei des
Standardkernels (/sys/i386/conf/GENERIC)
die folgende Zeile finden:pseudo-device sl 2SLIPDies ist die Zeile, in der die Anzahl der SLIP-Devices
festgelegt wird, die im Kernel verfügbar sind. Die Zahl
am Ende der Zeile gibt die maximale Anzahl an SLIP-Verbindungen
an, die gleichzeitig betrieben werden können.Weitere Informationen zur Konfiguration Ihres Kernels,
finden Sie in dieses Handbuches.Konfiguration des SliploginWie bereits erwähnt, gibt es im Verzeichnis
/etc/sliphome drei Dateien, die Teil der
Konfiguration für /usr/sbin/sliplogin
sind (sliplogin ist in &man.sliplogin.8;
beschrieben): slip.hosts,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
slip.login, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
slip.logout, womit die Auswirkungen von
slip.login rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.Konfiguration der Datei
slip.hosts/etc/sliphome/slip.hosts enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:Login-Kennung des SLIP-BenutzersLokale Adresse (lokal für den SLIP-Server)
der SLIP-VerbindungEntfernte Adresse der SLIP-VerbindungNetzwerkmaskeDie lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei /etc/hosts oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt auf FreeBSD 5.X
von den Einstellungen in /etc/nsswitch.conf
und auf FreeBSD 4.X von den Einstellungen in
/etc/host.conf ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in /etc/networks aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
/etc/sliphome/slip.hosts
folgendermaßen aussehen:#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocompAm Ende der Zeile stehen eine oder mehrere der folgenden
Optionen. – keine
Header-Kompression – Header werden
komprimiert – Header werden
komprimiert, sofern die Gegenstelle es erlaubt – ICMP-Pakete werden
deaktiviert (ping Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)SLIPTCP/IP NetzeDie Auswahl von lokalen und entfernten Adressen für Ihre
SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz
reservieren oder ob Sie proxy ARP auf Ihrem
SLIP-Server verwenden (es handelt sich nicht um
echtes proxy ARP, aber dieser Begriff wird
in diesem Abschnitt verwendet, um diesen Sachverhalt zu
beschreiben). Wenn Sie nicht sicher sind, welche Methode
Sie wählen sollen oder wie IP-Adressen zugewiesen werden,
lesen Sie bitte in den Büchern
zum Thema TCP/IP nach, die als Voraussetzungen für SLIP
() angegeben worden sind
oder fragen Sie Ihren IP-Netzwerkadministrator.Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz
verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen
zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen
Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen.
Dann können Sie eine statische Route zu Ihrem
SLIP-Subnetz über Ihren SLIP-Server auf Ihren
nächsten IP-Router konfigurieren.EthernetWenn Sie aber andererseits die proxy ARP
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte /etc/sliphome/slip.login/etc/sliphome/slip.logout anpassen
müssen, damit diese &man.arp.8; zur Verwaltung der
proxy-ARP-Einträge in der ARP-Tabelle Ihres SLIP-Servers
verwendenKonfiguration von slip.loginEine typische Datei
/etc/sliphome/slip.login sieht
folgendermaßen aus:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6Diese slip.login Datei führt
lediglich ifconfig für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.Wenn Sie sich dafür entschieden haben, die
proxy ARP Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei /etc/sliphome/slip.login
etwa folgendermaßen aussehen:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pubDie zusätzliche Zeile arp -s
$5 00:11:22:33:44:55 pub in der Datei
slip.login erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.EthernetMAC AdresseWenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
proxy ARP sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von netstat -i
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems 00:02:c1:28:5f:4a lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
netstat -i ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von &man.arp.8; verlangt wird.
Die Manual-Seite von &man.arp.8; bietet hierzu eine
vollständige Übersicht.Wenn Sie die Dateien
/etc/sliphome/slip.login und
/etc/sliphome/slip.logout erstellen,
müssen diese ausführbar gemacht werden
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout),
da sliplogin auf deren Ausführbarkeit
angewiesen ist. Konfiguration von slip.logoutDie Datei/etc/sliphome/slip.logout ist
nicht zwingend erforderlich (außer Sie verwenden proxy
ARP), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
slip.logout Skript:#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 downWenn Sie proxy ARP einsetzen, muss
/etc/sliphome/slip.logout den
ARP-Eintrag für den SLIP-Client löschen:#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5arp -d $5 löscht den ARP-Eintrag,
den die proxy ARPslip.login
hinzufügte, als der SLIP-Client sich eingeloggt hatte.Es soll nochmals darauf hingewiesen werden, dass für die
Datei /etc/sliphome/slip.logout das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. chmod 755
/etc/sliphome/slip.logout).Überlegungen zum RoutingSLIPRoutingWenn Sie nicht die proxy ARP Methode benutzen,
um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres
Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie
wahrscheinlich statische Routen zu Ihrem nächsten
Standardrouter hinzufügen müssen, um Pakete aus dem
Subnetz Ihres SLIP-Clients über Ihren SLIP-Server
weiterzuleiten.Statische Routenstatische RoutenDas Hinzufügen von statischen Routen zu Ihrem
nächsten Standardrouter kann problematisch sein
(oder unmöglich, wenn Sie nicht die erforderliche
Berechtigung haben...). Wenn Sie in Ihrer Organisation ein
Netzwerk mit mehreren Routern haben, müssen einige Router,
wie etwa die von Cisco und Proteon hergestellten, nicht nur mit
der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern
es muss ihnen auch mitgeteilt werden, über welche statischen
Routen sie andere Router informieren sollen. Daher ist einiges
an Fachwissen und Problemlösungskompetenz erforderlich, um auf
statischen Routen basierendes Routing erfolgreich
einzurichten.Der Einsatz von &gated;gated&gated; ist inzwischen
proprietäre Software und steht der Öffentlichkeit
nicht mehr als Sourcecode zur Verfügung
(weitere Informationen hierzu sind auf der
&gated;
Webseite zu finden). Dieser Abschnitt existiert lediglich,
um die Rückwärtskompatibilität für
diejenigen sicherzustellen, die noch eine ältere Version
verwenden.Eine Alternative zu dem aufwändigen Einsatz von
statischen Routen ist die Installation von
&gated; auf Ihrem FreeBSD-SLIP-Server.
&gated; kann so konfiguriert
werden, dass er die passenden Routingprotokolle (RIP/OSPF/BGP/EGP)
verwendet, um die anderen Router über Ihr SLIP-Subnetz zu
informieren. Sie müssen die Datei
/etc/gated.conf erstellen,
um &gated; zu konfigurieren.
Hier ist eine Beispieldatei, ähnlich derjenigen,
die der Autor auf einem FreeBSD-SLIP-Server verwendet hat:#
# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
#
#
# tracing options
#
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 ;
} ;
#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
traceoptions remnants request routes info interface ;
} ;
#
# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#
export proto rip interface ed {
proto direct {
xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections
} ;
} ;
#
# Accept routes from RIP via ed Ethernet interfaces
import proto rip interface ed {
all ;
} ;RIPDie oben angegebene Beispieldatei
gated.conf sendet Routinginformationen,
die das SLIP-Subnetz xxx.xxx.yy
betreffen, mit Hilfe von RIP zum Ethernet. Wenn Sie einen
anderen Ethernet-Treiber als ed
verwenden, werden Sie die Einträge,
die sich auf ed beziehen, entsprechend
abändern müssen. Mit dieser Beispieldatei wird auch
die Aufzeichnung der Aktivitäten von
&gated; in der Datei
/var/tmp/gated.output
eingerichtet, was für eine eventuelle Fehlersuche
nützlich sein kann. Sie können diese Option
natürlich auch abschalten, wenn
&gated;
bei Ihnen ohne Probleme läuft. Sie müssen
xxx.xxx.yy noch durch die
Netzwerkadresse Ihres SLIP-Subnetzes ersetzen (ändern
Sie die Netzmaske im Abschnitt proto direct
ebenfalls).Wenn Sie &gated; auf Ihrem System
installiert und konfiguriert haben, müssen Sie die
FreeBSD-Startskripten noch anweisen,
&gated;
statt routed zu verwenden. Am
einfachsten können Sie dies erreichen, indem Sie
die Variablen router und
router_flags in der Datei
/etc/rc.conf entsprechend setzen.
Die Manual-Seite für &gated; bietet
weitere Informationen zu den Kommandozeilenparametern.
diff --git a/de_DE.ISO8859-1/books/handbook/preface/preface.sgml b/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
index 092cba54fb..6e0445070c 100644
--- a/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
+++ b/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
@@ -1,559 +1,558 @@
VorwortÜber dieses
BuchDer erste Teil dieses Buchs führt FreeBSD-Einsteiger durch den
Installationsprozess und stellt leicht verständlich Konzepte
und Konventionen vor, die &unix; zu Grunde liegen. Sie müssen nur
neugierig sein und bereitwillig neue Konzepte aufnehmen, wenn diese
vorgestellt werden, um diesen Teil durchzuarbeiten.Wenn Sie den ersten Teil bewältigt haben, bietet der
umfangreichere zweite Teil eine verständliche Darstellung vieler
Themen, die für FreeBSD-Administratoren relevant sind. Wenn
Kapitel auf anderen Kapiteln aufbauen, wird das in der Übersicht
am Anfang eines Kapitels erläutert.Weitere Informationsquellen entnehmen Sie bitte
.Änderungen seit der
ersten AuflageDie zweite Auflage ist das Ergebnis der engagierten Arbeit der
Mitglieder des FreeBSD Documentation Projects über zwei Jahre.
Die wichtigsten Änderungen gegenüber der ersten Auflage
sind:Ein Index wurde erstellt.Alle ASCII-Darstellungen wurden durch Grafiken ersetzt.Jedes Kapitel wird durch eine Übersicht eingeleitet, die
den Inhalt des Kapitels zusammenfasst und die Voraussetzungen
für ein erfolgreiches Durcharbeiten des Kapitels
darstellt.Der Inhalt wurde in die logischen Abschnitte Erste
Schritte, System Administration und
Anhänge unterteilt. (FreeBSD
Installation) wurde komplett neu geschrieben und mit
Abbildungen versehen, die Einsteigern das Verständnis des Texts
erleichtern. (Grundlagen des &unix; Betriebssystems)
wurde um den Abschnitt Dämonen, Signale und Stoppen von
Prozessen erweitert.Das (Installieren von
Anwendungen) behandelt nun auch Pakete. (Das X Window System)
wurde neu geschrieben. Der Schwerpunkt liegt auf modernen
Benutzeroberflächen unter &xfree86; 4.X wie
KDE und
GNOME.Das (FreeBSDs Bootvorgang)
wurde erweitert. (Speichermedien) ist
aus den beiden Kapiteln Laufwerke und
Sicherungen entstanden. Die in den beiden Kapiteln
diskutierten Themen sind so leichter zu verstehen. Hinzugekommen
ist ein Abschnitt über Software- und Hardware-RAID.Das (Serielle
Datenübertragung) wurde umorganisiert und auf
FreeBSD 4.X/5.X angepasst.Das (PPP und SLIP)
wurde aktualisiert. (Weiterführende
Netzwerkthemen) wurde um viele neue Abschnitte erweitert. (Electronic Mail) wurde
um einen Abschnitt über die Konfiguration von
sendmail erweitert. (Linux
Compatibility) behandelt zusätzlich die Installation
von &oracle; und
&sap.r3;.Neu hinzugekommen sind:Konfiguration und Tuning ()
und
- Multimedia ().
+ Multimedia ().GliederungDieses Buch ist in drei Abschnitte unterteilt. Der erste
Abschnitt, Erste Schritte, behandelt die
Installation und die Grundlagen von FreeBSD. Dieser Abschnitt sollte
in der vorgegebenen Reihenfolge durchgearbeitet werden, schon Bekanntes
darf aber übersprungen werden. Der zweite Abschnitt,
System Administration behandelt weiterführende
Themen für erfahrene Benutzer. Jeder Abschnitt beginnt mit einer
kurzen Übersicht, die das Thema des Abschnitts und das nötige
Vorwissen erläutert. Die Übersichten sollen dem Leser
helfen, interessante Kapitel zu finden und das Stöbern im Handbuch
erleichtern. Der dritte Abschnitt enthält Anhänge und
Verweise auf weitere Informationen.,
EinführungDieses Kapitel macht Einsteiger mit FreeBSD vertraut. Es
behandelt die Geschichte, die Ziele und das Entwicklungsmodell
des FreeBSD-Projekts., InstallationBeschreibt den Ablauf der Installation. Spezielle
Installationsmethoden, wie die Installation mit einer seriellen
Konsole, werden ebenfalls behandelt., Grundlagen des &unix; BetriebssystemsErläutert die elementaren Kommandos und Funktionen
von FreeBSD. Wenn Sie schon mit Linux oder einem anderen
&unix; System vertraut sind, können Sie dieses Kapitel
überspringen., Installieren von
AnwendungenZeigt wie mit der innovativen Ports-Sammlung oder mit Paketen
Software von Fremdherstellern installiert wird., Das X Window
SystemBeschreibt das X Window System und geht
speziell auf &xfree86; unter FreeBSD
ein. Weiterhin werden grafische Benutzeroberflächen wie
KDE und
GNOME behandelt., Konfiguration und
TuningBeschreibt die Einstellungen, die ein Systemadministrator
vornehmen kann, um die Leistungsfähigkeit eines FreeBSD
Systems zu verbessern. In diesem Kapitel werden auch
verschiedene Konfigurationsdateien besprochen., FreeBSDs
BootvorgangErklärt den Bootprozess von FreeBSD und beschreibt die
Optionen, mit denen sich der Bootprozess beeinflussen
lässt., Benutzer und grundlegende
Account-VerwaltungBeschreibt, wie Benutzer-Accounts angelegt, verändert
und verwaltet werden. Weiterhin wird beschrieben, wie dem
Benutzer zur Verfügung stehende Ressourcen beschränkt
werden können., Konfiguration des
FreeBSD-KernelsErklärt, warum Sie einen angepassten Kernel erzeugen
sollten und gibt ausführliche Anweisungen wie Sie einen
angepassten Kernel konfigurieren, bauen und installieren., SicherheitBeschreibt die Werkzeuge mit denen Sie Ihr FreeBSD-System
absichern. Unter Anderem werden Kerberos, IPsec, OpenSSH und
Firewalls besprochen., DruckenBeschreibt, wie Sie Drucker unter FreeBSD verwalten.
Diskutiert werden Deckblätter, das Einrichten eines Druckers
und ein Abrechnungssystem für ausgedruckte Seiten., SpeichermedienErläutert den Umgang mit Speichermedien und
Dateisystemen. Behandelt werden Plattenlaufwerke, RAID-Systeme,
optische Medien, Bandlaufwerke, RAM-Laufwerke und
verteilte Dateisysteme., VinumBeschreibt den Vinum Volume Manager, der virtuelle Laufwerke,
RAID-0, RAID-1 und RAID-5 auf Software-Ebene zur Verfügung
stellt., LokalisierungZeigt wie Sie FreeBSD mit anderen Sprachen als Englisch
einsetzen. Es wird sowohl die Lokalisierung auf der System-Ebene
wie auch auf der Anwendungs-Ebene betrachtet.,
Desktop-AnwendungenEnthält eine Aufstellung verbreiteter Anwendungen wie
Browser, Büroanwendungen und Office-Pakete und beschreibt
wie diese Anwendungen installiert werden.
- , Multimedia
+ , MultimediaErklärt, wie Sie auf Ihrem System Musik und Videos
abspielen können. Beispielhaft werden auch Anwendungen aus
dem Multimedia-Bereich beleuchtet., Serielle
DatenübertragungErläutert, wie Sie Terminals und Modems an Ihr FreeBSD
System anschließen und sich so ein- und auswählen
können., PPP und
SLIPErklärt wie Sie mit PPP, SLIP oder PPP über
Ethernet ein FreeBSD-System mit einem entfernten System
verbinden.,
Weiterführende NetzwerkthemenBehandelt viele Netz-Themen zum Beispiel wie eine
Internet-Verbindung anderen Rechnern im LAN zugänglich
gemacht wird, wie Dateisysteme über das Netz genutzt werden,
wie Account-Informationen mit NIS zugänglich gemacht werden
oder wie ein Nameserver eingerichtet wird., Electronic MailErläutert die verschiedenen Bestandteile eines E-Mail
Servers und zeigt einfache Konfigurationen für
sendmail, dem meist genutzten
E-Mail-Server., Das Neueste und
BesteErklärt die Unterschiede zwischen FreeBSD-STABLE,
FreeBSD-CURRENT und FreeBSD-Releases. Das Kapitel enthält
Kriterien anhand derer Sie entscheiden können, ob es sich
lohnt, ein Entwickler-System zu installieren und aktuell zu
halten. Die Vorgehensweise dazu wird ebenfalls
beschrieben.,
Linux-BinärkompatibilitätBeschreibt die binäre Kompatibilität zu Linux.
Weiterhin werden ausführliche Installationsanleitungen
für &oracle;,
&sap.r3; und
Mathematica gegeben., Bezugsquellen für
FreeBSDEnthält eine Aufstellung der Quellen von denen Sie
FreeBSD beziehen können: CD-ROM, DVD sowie
Internet-Sites.,
BibliografieDieses Buch behandelt viele Themen und kann nicht alle
Fragen erschöpfend beantworten. Die Bibliografie enthält
weiterführende Bücher, die im Text zitiert
werden., Ressourcen im
InternetEnthält eine Aufstellung der Foren, die FreeBSD
Benutzern für Fragen und Diskussionen zur Verfügung
stehen., PGP
SchlüsselEnthält PGP-Fingerabdrücke von etlichen FreeBSD
Entwicklern.Konventionen in diesem
BuchDamit der Text einheitlich erscheint und leicht zu lesen ist,
werden im ganzen Buch die nachstehenden Konventionen beachtet:
TypographieKursivFür Dateinamen, URLs, betonte Teile eines Satzes und
das erste Vorkommen eines Fachbegriffs wird ein
kursiver Zeichensatz benutzt.FixschriftFehlermeldungen, Kommandos, Umgebungsvariablen, Namen von
Ports, Hostnamen, Benutzernamen, Gruppennamen, Gerätenamen,
Variablen und Code-Ausschnitte werden in einer
Fixschrift dargestellt.FettFett kennzeichnet Anwendungen,
Kommandozeilen und Tastensymbole.BenutzereingabenTasten werden fett dargestellt, um sie von dem
umgebenden Text abzuheben. Tasten, die gleichzeitig gedrückt
werden müssen, werden durch ein + zwischen
den einzelnen Tasten dargestellt:CtrlAltDelTasten, die nacheinander gedrückt werden müssen, sind
durch Kommas getrennt:CtrlX,
CtrlSDas letzte Beispiel bedeutet, dass die Tasten
Ctrl und X gleichzeitig
betätigt werden und danach die Tasten Ctrl
und S gleichzeitig gedrückt werden
müssen.BeispieleBeispiele, die durch E:\> eingeleitet
werden, zeigen ein &ms-dos; Kommando. Wenn nichts Anderes angezeigt
wird, können diese Kommandos unter neuen Versionen von
µsoft.windows; auch in einem DOS-Fenster
ausgeführt werden.E:\>tools\fdimage floppies\kern.flp A:Beispiele, die mit &prompt.root; beginnen, müssen unter
FreeBSD mit Superuser-Rechten ausgeführt werden. Dazu melden Sie
sich entweder als root an oder Sie wechseln von
Ihrem normalen Account mit &man.su.1; zu dem Benutzer
root.&prompt.root; dd if=kern.flp of=/dev/fd0Beispiele, die mit &prompt.user; anfangen, werden unter einem
normalen Benutzer-Account ausgeführt. Sofern nichts Anderes
angezeigt wird, verwenden die Beispiele die Syntax der C-Shell.&prompt.user; topDanksagungDieses Buch ist aus Beiträgen von vielen Leuten aus allen
Teilen der Welt entstanden. Alle eingegangen Beiträge, zum Beispiel
Korrekturen oder vollständige Kapitel, waren wertvoll.Einige Firmen haben dieses Buch dadurch unterstützt, dass Sie
Autoren in Vollzeit beschäftigt und die Veröffentlichung
des Buchs finanziert haben. Besonders BSDi, das später von
Wind River Systems
übernommen wurde, beschäftigte Mitglieder des FreeBSD
Documentation Projects, mit dem Ziel dieses Buch zu verbessern.
Dadurch wurde die erste (englische) gedruckte Auflage im
März 2000 möglich (ISBN 1-57176-241-8).
Wind River Systems bezahlte dann weitere Autoren, die die zum Drucken
nötige Infrastruktur verbesserten und zusätzliche Kapitel
beisteuerten. Das Ergebnis dieser Arbeit ist die zweite (englische)
Auflage vom November 2001 (ISBN 1-57176-303-1).
diff --git a/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
index 2719dbf763..40ab905e66 100644
--- a/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
@@ -1,1889 +1,1889 @@
SeanKellyBeigetragen von JimMockRestrukturiert und aktualisiert durch StefanBethkeÜbersetzt von DruckenÜbersichtLPD spooling systemdruckenMit FreeBSD können Sie viele unterschiedliche Drucker
benutzen, von den ältesten Nadeldruckern bis zu den
neuesten Laserdruckern, und allen möglichen Geräten
dazwischen. Auf diese Weise können Sie hochwertige
Ausdrucke mit Ihren Programmen erzeugen.Sie können FreeBSD auch so konfigurieren, dass es
Druckaufträge von anderen Computern über Ihr lokales
Netzwerk entgegennimmt, seien es &windows;-, &macos;- oder andere
FreeBSD-Computer. FreeBSD stellt sicher, dass die
Druckaufträge in der richtigen Reihenfolge bearbeitet
werden und kann optional eine Titelseite mit dem Namen des
Auftraggebers eines Druckauftrags aufgeben. FreeBSD kann auch
Statistiken über die Computer und Benutzer führen, die
Ausdrucke in Auftrag geben.In diesem Kapitel erfahren Sie, wie Sie:FreeBSD-Druckerwarteschlangen einrichten.Druckfilter installieren, die Druckaufträge je nach
Bedarf besonders behandeln und z.B. Dokumente automatisch
in eine Form umwandeln, die Ihr Drucker versteht.Druckaufträge mit einer Titelseite versehen
können.Auf einem Drucker drucken können, der an einen
anderen Computer angeschlossen ist.Auf einem Drucker drucken können, der direkt an das
Netzwerk angeschlossen ist.die Größe von Druckaufträgen
beschränken können, oder bestimmte Benutzer von
den Benutzung des Drucksystems ausschließen
können.Statistiken aufzeichnen und die Benutzung des
Drucksystems nach Benutzern und Computern aufschlüsseln
können.Probleme beim Drucken diagnostizieren und beheben
können.Bevor Sie dieses Kapitel lesen:Machen Sie sich mit der Konfiguration und Installation
eines neuen Kernels vertraut ().EinführungUm einen Drucker mit FreeBSD zu benutzen, müssen Sie
das Berkeley Line Printer Spooling System, auch als
LPD-Drucksystem bekannt,
konfigurieren. Dieses System zur Verwaltung von
Druckaufträgen ist das Standardsystem in FreeBSD. Dieses
Kapitel führt Sie in das
LPD-Drucksystem ein, und zeigt Ihnen
die Konfiguration.Wenn Sie bereits mit LPD oder
einem anderen Drucksystem vertraut sind, können Sie direkt
im Abschnitt Einrichten des
Drucksystems weiterlesen.LPD steuert alle Aspekte rund um
die Drucker, die an den Computer angeschlossen sind. Es ist
verantwortlich für:Die Zugriffskontrolle für direkt und über das
Netzwerk angeschlossene Drucker.DruckaufträgeDie Entgegennahme von Dateien, die gedruckt werden
sollen; eine so an das Drucksystem übergebene Datei
wird als Druckauftrag
bezeichnet.Den gleichzeitigen Zugriff von mehreren Benutzern auf
einen Drucker. Alle Druckaufträge werden in einer
Druckerwarteschlange gesammelt, und
nacheinander abgearbeitet.Den Druck von Titelseiten (auch als
Banner- oder
Burst-Seiten bezeichnet), damit
Benutzer ihre Druckaufträge schnell innerhalb eines
Stapels von ausgedruckten Dokumenten finden
können.Das Einstellen der korrekten Kommunikations-Parameter
für Drucker, die seriell angeschlossen sind.Das Senden von Druckaufträgen an ein
LPD-System auf einem anderen
Computer.Das Ausführen von speziellen Filtern, um
Druckaufträge in die unterschiedlichen
Seitenbeschreibungssprachen umzusetzen oder an die
Fähigkeiten eines Druckers anzupassen.Die Erfassung von Abrechnungsdaten für
Druckaufträge.Sie können LPD alle diese
Funktionen, oder auch nur einen Teil davon, ausführen
lassen, indem Sie die Konfigurationsdatei
(/etc/printcap) anpassen, und indem Sie
spezielle Filterprogramme bereitstellen.Vorteile des DrucksystemsWenn Sie der einzige Benutzer sind, der mit Ihrem Computer
arbeitet, fragen Sie sich vielleicht, warum Sie die
Konfigurationsarbeit für das Drucksystem auf sich nehmen
sollten, wenn Sie Titelseiten, Abrechnunsdaten oder
Zugriffskontrolle nicht benötigen. Obwohl Sie direkt auf den
Drucker zugreifen können, bietet
LPD eine Reihe von Vorteilen:
LPD druckt im Hintergrund;
Sie müssen nicht erst darauf warten, dass Ihr
Druckauftrag an den Drucker übermittelt worden
ist.&tex;LPD kann Druckaufträge
mit Kopf- oder Fußzeilen versehen, oder ein
spezielles Dateiformat, wie &tex;-DVI, automatisch in ein
für den Drucker verständliches Format umwandeln;
Sie müssen diese Schritte nicht manuell
ausführen.Viele freie und kommerzielle Programme, mit denen Sie
drucken können, erwarten, mithilfe des
LPD-Drucksystems zu drucken.
Wenn Sie das Drucksystem konfiguriert haben, können
Sie einfacher mit neuer oder auch vorhandener Software
drucken.Grund-KonfigurationUm einen Drucker mit dem
LPD-Drucksystem benutzen zu
können, müssen Sie sowohl Ihren Drucker und die
Drucker-Schnittstelle als auch das
LPD-Drucksystem konfigurieren.
Dieser Abschnitt beschreibt zwei Konfigurationen:Abschnitt Einfache
Drucker-Konfiguration beschreibt, wie Sie einen
Drucker an Ihren Computer anschließen und
LPD so konfigurieren, dass
Sie Textdateien zum Drucker senden können.Abschnitt Erweiterte
Drucker-Konfiguration beschreibt, wie Sie mit
speziellen Dateiformaten umgehen können, wie Sie
Titelseiten drucken können, wie Sie den Zugriff auf
Drucker einschränken können, und wie Sie
Abrechnungsdaten aufzeichnen können.Einfache Drucker-KonfigurationDieser Abschnitt beschreibt, wie Sie die
LPD-Software konfigurieren, um
Ihren Drucker zu benutzen. Diese Grundlagen werden
erklärt:Abschnitt Hardware-Konfiguration
erläutert, wie Sie Ihren Drucker an Ihren Computer
anschließen können.Abschnitt Software-Konfiguration
erklärt, wie Sie die
LPD-Konfigurationsdatei
(/etc/printcap) anpassen.Wenn Sie einen Drucker einrichten möchten, der
über das Netzwerk angeschlossen ist (anstatt über
die serielle oder parallele Schnittstelle), lesen Sie bitte
Abschnitt Drucker mit
direkter TCP-Schnittstelle.Obwohl dieser Abschnitt Grund-Konfiguration
heißt, ist die Konfiguration relativ komplex. Es ist
vergleichsweise schwierig, einen Drucker mit Ihrem Computer
und dem LPD-Drucksystem zu
verbinden. Die weiteren Optionen, wie Kopfzeile oder Titelseiten,
sind einfach zu konfigurieren, sobald die
Grund-Konfiguration erfolgreich abgeschlossen ist.Hardware-KonfigurationDieser Abschnitt beschreibt, über welche
Schnittstellen Sie einen Drucker mit Ihrem Computer
verbinden können. Er behandelt sowohl die
Schnittstellen und Kabel, als auch die Kerneloptionen, die
Sie benötigen, um FreeBSD mit Ihrem Drucker
kommunizieren zu lassen.Wenn Sie Ihren Drucker bereits erfolgreich mit einem
anderen Betriebssystem auf Ihrem PC eingesetzt haben,
können Sie wahrscheinlich mit dem Abschnitt Software-Konfiguration
fortfahren.Schnittstellen und KabelPraktisch alle Drucker unterstützen eine dieser
Schnittstellen:DruckerserielleSeriell angeschlossene
Drucker werden über eine serielle Schnittstelle
mit Ihrem Computer verbunden. Diese Schnittstelle wird
von vielen unterschiedlichen Systemen verwendet.
Serielle Kabel sind leicht erhältlich und
können auch einfach selbst hergestellt werden.
Einige Drucker erfordern möglicherweise ein
spezielles Kabel oder besondere
Kommunikationseinstellungen.DruckerparalleleParallel angeschlossene
Drucker werden über eine parallele Schnittstelle
mit Ihrem Computer verbunden. Diese Schnittstelle wird
hauptsächlich von PCs und Workstations benutzt.
Kabel sind leicht erhältlich, sind aber
vergleichsweise schwer selbst herzustellen.
Üblicherweise brauchen keine
Kommunikationsparameter festgelegt zu werden; dies
macht die Einrichtung sehr einfach.CentronicsDrucker, paralleleDie parallele Schnittstelle wird auch als
Centronics-Schnittstelle bezeichnet,
nach dem Namen des Steckverbinders, der hier
häufig zum Einsatz kommt.Im Allgemeinen sind serielle Schnittstellen langsamer
als parallele. Parallele Schnittstellen bieten aber
häufig nur Kommunikation in einer Richtung, vom
Computer zum Drucker. Viele moderne Parallelschnittstellen
(EPP and ECP) können auch bi-direktional Daten nach
dem Standard IEEE 1284 übertragen.PostScriptDie bi-direktionale Kommunikation wird
üblicherweise nur für &postscript;-Drucker
benötigt. Da ein &postscript;-Druckauftrag ein
komplettes Programm ist, kann es auch Daten an den
Computer zurückliefern, ohne überhaupt eine
Seite Papier zu bedrucken. Auf diesem Wege werden auch
Probleme wie z.B. ein Papierstau vom Drucker an den
Computer übermittelt. Darüberhinaus ist dies
die effektivste Methode, um die tatsächlich gedruckte
Anzahl an Seiten vom Drucker abzufragen: ein
&postscript;-Programm ermittelt jeweils vor und direkt nach
einem Druckauftrag den Seitenzähler des Druckers, und
vergleicht die beiden Zählerwerte.Parallele SchnittstellenUm einen Drucker mit paralleler Schnittstelle an Ihren
Computer anzuschließen, verbinden Sie den Drucker
mit einer parallelen Schnittstelle Ihres Computers. Die
Dokumentation zu Ihrem Drucker oder Computer sollte Ihnen
hier weiterhelfen.Notieren Sie sich, mit welcher parallelen
Schnittstelle des Computers Sie den Drucker verbunden
haben. Die meisten Computer haben lediglich eine parallele
Schnittstelle. Der FreeBSD-Gerätename der ersten
Schnittstelle lautet /dev/ppc0, der
der zweiten /dev/ppc1, und so weiter.
Der Gerätename für den Drucker an der ersten
parallelen Schnittstelle folgt dem selben Schema und
lautet /dev/lpt0, usw.Serielle SchnittstellenUm einen Drucker mit serieller Schnittstelle an Ihren
Computer anzuschließen, verbinden Sie den Drucker
mit einer seriellen Schnittstelle Ihres Computers. Die
Dokumentation zu Ihrem Drucker oder Computer sollte Ihnen
hier weiterhelfen.Sollten Sie sich nicht sicher sein, welches das
richtige Kabel ist, können Sie eine
dieser Alternativen ausprobieren:Ein Modemkabel verbindet alle
Anschlüsse an einem Ende des Kabels eins-zu-eins
mit den Anschlüssen am anderen Ende des Kabels.
Ein solches Kabel wird auch als (engl.)
DTE-to-DCE- oder
DEE-zu-DÜE-Kabel
bezeichnet.NullmodemkabelEin Nullmodemkabel verbindet
einige Signale eins-zu-eins, andere über Kreuz
(z.B. Sende- und Empfangsleitung), und verbindet
einige weitere direkt im Stecker miteinander. Ein
solches Kabel wird auch als (engl.)
DTE-to-DTE- oder
DEE-zu-DEE-Kabel bezeichnet.Ein Serielles Druckerkabel
schließlich, das für einige spezielle
Drucker benötigt wird, verbindet zusätzliche
Signale miteinander, anstatt sie im Stecker
zurückzuführen.BaudrateParitätFlusssteuerungSie sollten auch die Kommunikationsparameter am
Drucker einstellen; üblicherweise gibt es dazu
DIP-Schalter, oder eine Option in der
Menüführung am Drucker. Wählen Sie die
höchste Bitrate (auch als
bps Bits pro Sekunde oder
Baudrate bezeichnet), die sowohl Ihr
Drucker als auch Ihr Computer unterstützen.
Wählen Sie 7 oder 8 Bits, gerade, ungerade oder keine
Parität, und ein oder zwei Stoppbits. Wählen
Sie die Art der Flusssteuerung: keine, XON/XOFF (auch
als in-band- oder
Software-Flusssteuerung bezeichnet),
oder Hardware. Notieren Sie sich diese Einstellungen,
damit Sie sie später bei der Software-Konfiguration
zur Verfügung haben.Software-KonfigurationDieser Abschnitt beschreibt die notwendigen
Konfigurationsschritte, damit Sie mit dem
FreeBSD-LPD-System drucken
können.Diese Schritte müssen Sie ausführen:Konfigurieren Sie Ihren Kernel, soweit notwendig, um
die Schnittstelle benutzen zu können, an die Ihr
Drucker angeschlossen ist. Abschnitt Kernel-Konfiguration
erklärt, welche Optionen Sie
benötigen.Konfigurieren Sie die Kommunikationseinstellungen
für die parallele Schnittstelle, sofern Sie sie
benutzen. Abschnitt Kommunikationseinstellungen
für die parallele Schnittstelle enthält
die Details.Prüfen Sie, ob Sie Daten an den Drucker senden
können. Abschnitt Prüfen der
Drucker-Kommunikation führt eine Reihe von
Möglichkeiten auf.Konfigurieren Sie LPD
für Ihren Drucker, indem Sie die
Konfigurationsdatei /etc/printcap
anpassen. Details dazu finden Sie im Abschnitt LPD
aktivieren: die
/etc/printcap-Datei.Kernel-KonfigurationDer Betriebssystem-Kernel ist für eine bestimmte
Kombination aus Geräten kompiliert. Dies
schließt Ihre seriellen oder parallelen
Schnittstellen mit ein. Dementsprechend kann es notwendig
sein, die Kernelkonfiguration um weitere Schnittstellen zu
erweitern.So können Sie prüfen, ob Ihr Kernel die
serielle Schnittstelle unterstützt, an die Sie den
Drucker angeschlossen haben:&prompt.root; grep sioN /var/run/dmesg.bootErsetzen Sie N durch die
Nummer der seriellen Schnittstelle, beginnend bei Null.
Wenn Sie eine Ausgabe ähnlich der folgenden erhalten,
unterstützt ihr Kernel diese Schnittstelle:sio2 at port 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A Erhalten Sie keine Ausgabe, oder eine Fehlermeldung,
wird die Schnittstelle nicht korrekt
unterstützt.So können Sie prüfen, ob Ihr Kernel die
parallele Schnittstelle unterstützt, an die Sie den
Drucker angeschlossen haben:&prompt.root; grep ppcN /var/run/dmesg.bootErsetzen Sie N durch die
Nummer der parallelen Schnittstelle, beginnend bei Null.
Wenn Sie eine Ausgabe ähnlich der folgenden erhalten,
unterstützt ihr Kernel diese Schnittstelle:ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold Erhalten Sie keine Ausgabe, oder eine Fehlermeldung,
wird die Schnittstelle nicht korrekt
unterstützt.Gegebenenfalls müssen Sie Ihren Kernel
umkonfigurieren und neu kompilieren, damit die von Ihnen
gewählte Schnittstelle unterstützt wird.Um Unterstützung für eine serielle
Schnittstelle hinzuzufügen, lesen Sie bitte Kapitel
Konfiguration des FreeBSD
Kernels. Um eine parallele Schnittstelle
hinzuzufügen, lesen Sie bitte ebenfalls jenes Kapitel
als auch den folgenden Abschnitt Kommunikationseinstellungen
für die parallele Schnittstelle.Hinzufügen der
/dev-Einträge für die
SchnittstelleFreeBSD 5.0 verfügt über das
devfs-Dateisystem, das die notwendigen
Gerätedateien automatisch anlegt. Wenn Sie FreeBSD
mit aktiviertem devfs benutzen,
können Sie diesen Abschnitt
überspringen.Damit Programme auf die Schnittstelle zugreifen
können, muss nicht nur der Kernel richtig
konfiguriert sein, sondern es muss auch eine
Gerätedatei im /dev-Verzeichnis
angelegt werden.So legen Sie eine Gerätedatei im
/dev-Verzeichnis an:Werden Sie root mithilfe des
&man.su.1;-Befehls. Geben Sie das Kennwort von
root ein, sobald Sie dazu
aufgefordert werden.Wechseln Sie in das
/dev-Verzeichnis:&prompt.root; cd /devGeben Sie ein:&prompt.root; ./MAKEDEV SchnittstelleSchnittstelle ist der
Gerätename für die Schnittstelle, die Sie
einrichten. Benutzen Sie lpt0
für einen Drucker an der ersten parallelen
Schnittstelle, lpt1 für einen
Drucker an der zweiten, usw. Benutzen Sie
ttyd0 für die erste serielle
Schnittstelle, ttyd1 für die
zweite, usw.Um zu prüfen, ob die Gerätedateien
angelegt wurden, geben Sie ein:&prompt.root; ls -l SchnittstelleKommunikationseinstellungen für die parallele
SchnittstelleWenn Sie die parallele Schnittstelle zur Kommunikation
mit Ihrem Drucker benutzen, haben Sie die Wahl zwischen
Interrupt-gesteuerter oder Polling-Datenübertragung.
Der generische Druckergerätetreiber &man.lpt.4; in
FreeBSD 4.X und 5.X benutzt das &man.ppbus.4;-System,
das die parallele Schnittstelle mithilfe des
&man.ppc.4;-Treibers steuert.Die Interrupt-gesteuerte
Datenübertragung ist die Voreinstellung im
GENERIC-Kernel. Der Treiber benutzt eine IRQ-Leitung,
um zu erfahren, wann der Drucker weitere Daten
empfangen kann.Bei der Polling-Methode
prüft der Treiber in regelmäßigen
Abständen, ob weitere Daten übertragen
werden können.Die Interrupt-gesteuerte Methode ist
überlicherweise schneller und verbraucht weniger
Rechenzeit als die Polling-Methode, es wird jedoch eine
eigene IRQ-Leitung für die Schnittstelle
benötigt. Darüberhinaus kann es mit einigen
Druckermodellen zu Problemen kommen, wenn die
Interrupt-gesteuerte Übertragung zum Einsatz
kommt.Die können die Kommunikationseinstellung entweder
in der Kernel-Konfiguration wählen, oder mittels des
&man.lptcontrol.8;-Programms zur Laufzeit
einstellen.So legen Sie die Kommunikationseinstellung
in der Kernel-Konfiguration fest:Ändern Sie Ihre Kernel-Konfigurationsdatei.
Finden Sie die Zeile, die mit device
ppc0 beginnt. Wenn Sie die zweite parallele
Schnittstelle konfigurieren möchten, suchen Sie
nach device ppc1, für die
dritte Schnittstelle ppc2,
usw.Um die Interrupt-Steuerung in FreeBSD 4.X
zu aktivieren, fügen Sie die
irq-Angabe hinzu:device ppc0 at isa? irq NErsetzen Sie N
durch die Nummer der IRQ-Leitung, die dieser
parallelen Schnittstelle zugewiesen ist.In FreeBSD 5.X ändern Sie in der
Datei /boot/device.hints die
Zeile:hint.ppc.0.irq="N"Ersetzen Sie N
durch die Nummer der IRQ-Leitung, die dieser
parallelen Schnittstelle zugewiesen ist. Stellen
Sie sicher, dass Ihre
Kernel-Konfigurationsdatei den &man.ppc.4;-Treiber
enthält:device ppcWenn Sie den Polling-Modus verwenden
möchten, lassen Sie die
irq-Angabe weg:Benutzen Sie folgende Zeile für
FreeBSD 4.X:device ppc0 at isa?In FreeBSD 5.X entfernen Sie diese Zeile
aus /boot/device.hints, oder
kommentieren Sie sie aus:hint.ppc.0.irq="N"Sollte der Treiber die Schnittstelle dennoch
im Interrupt-Modus betreiben, könnte dies an
der Aktivierung durch das &man.acpi.4;-System in
FreeBSD 5.X liegen. Bitte prüfen Sie die
ACPI- und die BIOS-Konfiguration.Wenn Sie Ihre Kernel-Konfigurationsdatei angepasst
haben, kompilieren und installieren Sie nun einen
neuen Kernel. Das Kapitel Konfiguration des
FreeBSD-Kernels enthält weitere Details
dazu.So können Sie die
Kommunikationseinstellung mit
&man.lptcontrol.8;
ändern:Um die Interrupt-Steuerung für die
Schnittstelle N zu
aktivieren, geben Sie ein:&prompt.root; lptcontrol -i -d /dev/lptNUm den Polling-Modus für die Schnittstelle
N zu aktivieren, geben Sie
ein:&prompt.root; lptcontrol -p -d /dev/lptNSie können diesen Befehl in
/etc/rc.local aufnehmen, damit er bei
jedem Systemstart automatisch ausgeführt wird.
&man.lptcontrol.8; enthält weitere
Informationen.Kommunikation mit den Drucker prüfenBevor Sie mit der Konfiguration des
LPD-Drucksystems fortfahren,
sollten Sie sicherstellen, das Sie erfolgreich Daten an
Ihren Drucker senden können. Es ist deutlich
einfacher, Kommunikations- und Konfigurationsprobleme
unabhängig voneinander zu lösen.Der Drucker kann mit einem Probeausdruck getestet
werden. Für alle Drucker, die normalen Text
unmittelbar drucken können, bietet sich das Programm
&man.lptest.1; an: es produziert alle 96 druckbaren
ASCII-Zeichen auf 96 Zeilen.PostScriptFür einen &postscript;-Drucker (oder andere
Drucker, die eine Seitenbeschreibungssprache verwenden)
muss ein passendes Programm an den Drucker gesendet
werden, z.B. dieses:%!PS
100 100 moveto 300 300 lineto stroke
310 310 moveto /Helvetica findfont 12 scalefont setfont
(Funktioniert dieser Drucker?) show
showpageSie können dieses ProstScript-Programm in einer
Datei speichern, und mit den Beispielen in den folgenden
Abschnitt verwenden.PCLNicht alle Drucker, die eine
Seitenbeschreibungssprache verwenden, benötigen ein
Test-Programm: z.B. HPs PCL (das auch in vielen
kompatiblen Druckern zum Einsatz zu kommt), versteht
normalen Text. Besondere Escape-Sequenzen werden
benutzt, um die erweiterten Möglichkeiten
aufzurufen. &postscript;-Drucker können in der Regel
keinen normalen Text direkt verarbeiten, weil sie ein
&postscript;-Programm erwarten, das eine Seite
produziert.Einen Paralleldrucker prüfenDruckerparalleleDieser Abschnitt führt vor, wie Sie die
Kommunikation mit Ihrem Drucker über die parallele
Schnittstelle prüfen können.So testen Sie einen Drucker an einer
parallelen Schnittstelle:Werden Sie root mithilfe
des &man.su.1;-Befehls.Senden Sie Testdaten an den Drucker.Wenn Ihr Drucker reinen Text direkt drucken
kann, verwenden Sie &man.lptest.1;:&prompt.root; lptest > /dev/lptNErsetzen Sie N
durch die Nummer der parallelen Schnittstelle,
an die der Drucker angeschlossen ist (angefangen
bei Null).Wenn Ihr Drucker &postscript; (oder eine
andere Seitenbeschreibungssprache) versteht,
senden Sie ein passendes Testprogramm an den
Drucker. Geben Sie folgenden Befehl ein:&prompt.root; cat > /dev/lptNErsetzen Sie N
durch die Nummer der parallelen Schnittstelle,
an die der Drucker angeschlossen ist (angefangen
bei Null). Geben Sie nun das Testprogramm ein,
Zeile für Zeile. Kontrollieren Sie jede
Zeile, bevor Sie die Eingabetaste drücken:
Sie können die Zeile später nicht mehr
ändern. Zum Schluss tippen Sie
CtrlD.
Wenn Sie ein anderes Zeichen nutzen, um das Ende
der Datei anzuzeigen, müssen Sie
natürlich die entsprechende
Tastenkombination für dieses Zeichen
betätigen.Sie können das Testprogramm auch in
einer Datei speichern, und dann diesen Befehl
aufrufen:&prompt.root; cat Testprogramm > /dev/lptNErsetzen Sie
Testprogramm durch
den Dateinamen, unter dem Sie das Testprogramm
gespeichert haben.Der Drucker sollte einige Zeilen oder eine Seite
drucken. Machen Sie sich keine Sorgen über falsche
Formatierungen: die Software-Konfiguration enthält
Informationen zum Umformatieren von
Druckaufträgen.Einen seriellen Drucker prüfenDruckerserielleDieser Abschnitt führt vor, wie Sie die
Kommunikation mit Ihrem Drucker über die parallele
Schnittstelle prüfen können.So testen Sie einen Drucker an einer
seriellen Schnittstelle:Werden Sie root mithilfe
des &man.su.1;-Befehls.Ändern Sie die Datei
/etc/remote. Fügen Sie
den folgenden Eintrag hinzu:printer:dv=/dev/Gerät:br#Baudrate:pa=ParitätBaudrateserieller AnschlussParitätErsetzen Sie
Gerät durch den
Gerätenamen der seriellen Schnittstelle
(ttyd0 für die erste,
ttyd1 für die zweite, usw.),
Baudrate ist die
Geschwindigkeit und
Parität die
Parität (even für
gerade, odd für ungerade
oder none für keine), die
Sie am Drucker eingestellt haben.Hier ein Beispieleintrag für einen Drucker,
der über die dritte serielle Schnittstelle
angeschlossen ist, mit 19.200 Baud kommuniziert und
keine Parität verwendet:printer:dv=/dev/ttyd2:br#19200:pa=noneVerbinden Sie sich mit dem Drucker über den
Befehl &man.tip.1;:&prompt.root; tip printerKommt es hierbei zu einer Fehlermeldung,
ändern Sie den Eintrag in
/etc/remote und verwenden Sie
/dev/cuaaN
statt
/dev/ttydN.Senden Sie Testdaten an den Drucker.Wenn Ihr Drucker reinen Text direkt drucken
kann, verwenden Sie &man.lptest.1;:&prompt.user; $lptestWenn Ihr Drucker &postscript; (oder eine
andere Seitenbeschreibungssprache) versteht,
senden Sie ein passendes Testprogramm an den
Drucker. Geben Sie das Testprogramm ein, Zeile
für Zeile. Kontrollieren Sie jede Zeile,
bevor Sie die Eingabetaste drücken: Sie
können die Zeile später nicht mehr
ändern. Zum Schluss tippen Sie
Control-D.Sie können das Testprogramm auch in
einer Datei speichern, und dann diesen Befehl
aufrufen:&prompt.user; >TestprogrammErsetzen Sie
Testprogramm durch
den Dateinamen, unter dem Sie das Testprogramm
gespeichert haben. Nachdem &man.tip.1; die Datei
gesendet hat, tippen Sie
Control-D.Der Drucker sollte einige Zeilen oder eine Seite
drucken. Machen Sie sich keine Sorgen über falsche
Formatierungen: die Software-Konfiguration enthält
Informationen zum Umformatieren von
Druckaufträgen.LPD aktivieren: die
/etc/printcap-DateiNachdem Sie Ihren Drucker angeschlossen haben, Ihren
Kernel richtig konfiguriert haben und erfolgreich einen
Testausdruck produziert haben, können Sie nun das
LPD-System konfigurieren.Sie konfigurieren LPD, indem
Sie die Datei /etc/printcap anpassen.
Da LPD die Datei jedes Mal liest,
wenn eine Aktion durchgeführt wird, werden
Änderungen an der Konfiguration sofort aktiv.DruckerEigenschaftenDie &man.printcap.5;-Datei ist einfach aufgebaut. Sie
können /etc/printcap mit Ihrem
bevorzugten Texteditor bearbeiten. Sie verwendet dasselbe
Format wie auch /usr/share/misc/termcap
oder /etc/remote. Informationen zum
Format finden Sie in &man.cgetent.3;.Die Grund-Konfiguration des
LPD-Systems beinhaltet diese
Schritte:Wählen Sie einen Namen (und einige praktische
Abkürzungen) für die Druckerwarteschlage, und
tragen Sie ihn in die
/etc/printcap-Datei ein. Abschnitt
Einen Namen
wählen enthält weitere
Informationen.TitelseiteSchalten Sie den Druck von Titelseiten aus (dies ist
standardmäßig eingeschaltet), indem Sie das
Attribut sh setzen. Abschnitt Den Druck von
Titelseiten ausschalten erklärt, wie Sie
dies tun können.Legen Sie ein Pufferverzeichnis für die
Warteschlange an, und geben Sie den Pfad mittels des
sd-Attributs an: siehe Abschnitt
Das Pufferverzeichnis
anlegen.Geben Sie den Gerätenamen für Ihren
Drucker mittels des lp-Attributs an:
siehe Abschnitt Festlegen der
Drucker-Gerätedatei. Ist Ihr Drucker
über eine serielle Schnittstelle angeschlossen,
benutzen Sie das Attribut ms#,
wie dies in Abschnitt Festlegen der
Kommunikationsparameter beschrieben ist.Installieren Sie einen Filter für reinen Text:
siehe Abschnitt Den
Textfilter installieren.Testen Sie die Konfiguration, indem Sie etwas mit
dem &man.lpr.1;-Befehl drucken. Die Abschnitte Die Konfiguration
testen und Fehlersuche und
Problembehebung enthalten weitere
Informationen.Drucker, die eine Seitenbeschreibungssprache wie
&postscript; verwenden, können keinen reinen Text
drucken. Es wird deshalb angenommen, dass Sie nur
solche Dateien drucken, die Ihr Drucker verarbeiten
kann.Viele Anwender erwarten, dass sie normalen Text auf
allen Druckern drucken können. Viele Programme, die mit
LPD zusammenarbeiten, gehen
ebenfalls von dieser Annahme aus. Wenn Sie einen
&postscript;-Drucker installieren, und Sie sowohl
&postscript;- als auch Textdateien drucken möchten,
sollten Sie einen weiteren Konfigurationsschritt
ausführen und einen Text-zu-&postscript;-Filter
installieren. Der Abschnitt Drucken von reinen
Textdateien auf einem &postscript;-Drucker
erklärt, wie Sie dies tun können.Einen Namen wählenDer erste einfache Schritt ist, einen Namen für
Ihren Drucker zu wählen. Sie können diesen Namen
frei wählen, Sie sollten allerdings keine
Sonderzeichen oder Umlaute verwenden. Sie können
mehrere Alias-Namen vergeben.Ein Drucker in /etc/printcap
sollte den Alias lp haben. Dieser Name
wird standardmäßig von allen Druckbefehlen
verwendet, wenn auf der Befehlszeile oder in der
PRINTER-Umgebungsvariablen kein anderer
Drucker angegeben ist.Ebenso ist es üblich, eine ausführliche
Beschreibung des Druckermodells als letzten Alias-Namen zu
verwenden.Sobald Sie einen Namen und einige einfache Alias-Namen
ausgewählt haben, tragen Sie sie in die Datei
/etc/printcap ein. Beginnen Sie die
Zeile mit dem Namen des Druckers und fügen Sie alle
Alias-Namen an. Trennen Sie die Namen durch den
senkrechten Strich |. Fügen Sie an
das Ende der Zeile einen Doppelpunkt :
an.Das folgende Beispiel definiert zwei Drucker, einen
Diablo 630 Zeilendrucker, und einen Panasonic KX-P4455
&postscript;-Laserdrucker:#
# /etc/printcap for host rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:Der erste Drucker hat den Namen
rattan, und hat die Alias-Namen
line, diablo,
lp und Diablo 630 Line
Printer. Da er den Alias-Namen
lp trägt, wird er
standardmäßig von den Druckprogrammen
verwendet. Der zweite Drucker heißt
bamboo, und hat die Alias-Namen
ps, PS,
S, panasonic und
Panasonic KX-P4455 PostScript
v51.4.Keine Titelseiten druckendruckenTitelseiteStandardmäßig druckt das
LPD-System eine
Titelseite vor jedem Druckauftrag,
die den Namen des Druckauftrags, den Benutzer und den
Computer angibt. Während der Einrichtung des Systems
und beim Testen stört die Titelseite allerdings,
weshalb Sie sie zunächst deaktivieren
sollten.Um den Druck der Titelseite zu deaktivieren,
fügen Sie das Attribut sh zur
Druckerdefinition in /etc/printcap
hinzu. Hier ein Beispiel:#
# /etc/printcap for host rose - no header pages anywhere
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:Beachten Sie die korrekte Formatierung: die beiden
Definitionen beginnen auf einer Zeile; weitere Zeilen der
Definition sind mit einem Tab-Zeichen
eingerückt, und alle Zeilen einer Definition, bis auf
die letzte, enden mit dem Backslash
\.Das Pufferverzeichnis anlegenPufferverzeichnisDruckaufträgeDer nächste Schritt ist, das
Pufferverzeichnis anzulegen. In
diesem Verzeichnis werden Druckaufträge
zwischengespeichert, während sie gedruckt werden.
Gleichzeitig werden hier auch einige Verwaltungsdateien
des Systems abgelegt.Da sich die Dateien in diesem Verzeichnis häufig
ändern, ist es üblich, das Verzeichnis unter
/var/spool anzulegen. Es ist
nicht notwendig, Sicherungskopien der Dateien
herzustellen; das Verzeichnis kann nötigenfalls
leicht mit &man.mkdir.1; wieder angelegt werden.Es ist auch üblich, dem Verzeichnis denselben
Namen wie dem Drucker zu geben:&prompt.root; mkdir /var/spool/DruckernameWenn Sie viele Drucker verwenden, ist es am besten,
wenn Sie für die Pufferverzeichnisse ein eigenes
Unterverzeichnis in /var/spool
anlegen, wie dies hier für die beiden Beispieldrucker
rattan und bamboo
gezeigt wird:&prompt.root; mkdir /var/spool/lpd
&prompt.root; mkdir /var/spool/lpd/rattan
&prompt.root; mkdir /var/spool/lpd/bambooUm zu verhindern, dass alle Benutzer den Inhalt
aller Druckaufträge einsehen können, sollten
Sie die Rechte auf den Pufferverzeichnissen
einschränken. Die Verzeichnisse sollten dem
Benutzer daemon und der Gruppe
daemon gehören, und auch nur
vom Benutzer und der Gruppe les-, schreib- und
durchsuchbar sein. Für unsere
Beispieldrucker:&prompt.root; chown daemon:daemon /var/spool/lpd/rattan
&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan
&prompt.root; chmod 770 /var/spool/lpd/bambooSchließlich müssen Sie dem
LPD-System noch mitteilen, wo
Sie die Pufferverzeichnisse angelegt haben. Dazu geben Sie
in der Definition das Attribut sd
an:#
# /etc/printcap for host rose - added spooling directories
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:Beachten Sie, dass der Druckername in der ersten
Spalte beginnt, und dass alle Folgezeilen mit einem
Tab eingerückt sind.Wenn Sie das sd-Attribut nicht
angeben, verwendet das System
/var/spool/lpd als
Verzeichnis.Festlegen der Drucker-GerätedateiIm Abschnitt Hinzufügen der
/dev-Einträge für die
Schnittstelle haben Sie die korrekten
Gerätedatei für die Schnittstelle identifiziert
und angelegt. Das LPD-System
muss nun erfahren, welche Gerätedatei es
für die Datenübertragung zum Drucker verwenden
soll.Geben Sie die Gerätedatei durch das Attribut
lp in
/etc/printcap an.Wenn rattan an die erste parallele
Schnittstelle angeschlossen ist, und
bamboo an die sechste serielle, dann
sieht /etc/printcap so aus:#
# /etc/printcap for host rose - identified what devices to use
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:Wenn Sie lp nicht angeben, versucht
LPD die Gerätedatei
/dev/lp zu verwenden.
/dev/lp ist zurzeit in FreeBSD nicht
definiert.Wenn Ihr Drucker über eine parallele
Schnittstelle angeschlossen ist, können Sie mit dem
Abschnitt Den
Textfilter installieren fortfahren. Verwenden Sie
eine serielle Schnittstelle, beachten Sie bitte den
folgenden Abschnitt.Kommunikationsparameter festlegenDruckerserielleFür seriell angeschlossene Drucker kann
LPD die Geschwindigkeit,
Parität und weitere Kommunikationsparameter
einstellen. Dies hat folgende Vorteile:Sie können die Parameter einfach in
/etc/printcap ändern, ohne
das Ausgabe-Filterprogramm anpassen zu
müssen.Dasselbe Ausgabe-Filterprogramm kann für
unterschiedliche Drucker verwendet werden, auch wenn
diese unterschiedliche Kommunikationseinstellungen
benötigen.Die folgenden Attribute legen die seriellen
Kommunikationsparameter fest:br#BaudrateSetzt die Übertragungsgeschwindigkeit auf
Baudrate.
Baudrate kann
üblicherweise 50, 75, 110, 134.5, 150, 300,
600, 1200, 1800, 2400, 4800, 9600, 19200, 38400,
57600, oder 115200 Bit pro Sekunde betragen.ms#stty-ModiSetzt die Eigenschaften für das Gerät,
nachdem es geöffnet wurde. Die verfügbaren
Eigenschaften sind in &man.stty.1;
aufgeführt.Wenn LPD das mit
lp angegebene Gerät öffnet,
setzt es die mit ms# angegebenen
Eigenschaften. Von besonderem Interesse sind hier die Modi
parenb, parodd,
cs5, cs6,
cs7, cs8,
cstopb, crtscts und
ixon, die in der
&man.stty.1;-Handbuchseite erläutert werden.Für den über die sechste serielle
Schnittstelle angeschlossenen Laserdrucker beträgt
die Geschwindigkeit 38.400 Baud, und es werden diese
Kommunikationseinstellungen verwendet: keine Parität
(-parenb), 8-Bit-Zeichen
(cs8), keine Modemsteuerung
(clocal) und
Hardware-Flusssteuerung
(crtscts):bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:Den Textfilter installierenDruckfilterEin Textfilter, auch als
Eingangsfilter bezeichnet, ist ein
Programm, das von LPD
aufgerufen wird, wenn ein Druckauftrag verarbeitet wird.
Dabei wird die Standardeingabe des Programms mit der zu
druckenden Datei verbunden, und die Standardausgabe mit
dem im lp-Attribut angegebenen
Gerät. Das Programm sollte nun die Datei einlesen,
alle Übersetzungen durchführen, die für den
Drucker notwendig sind, und das Ergebnis über die
Standardausgabe an den Drucker senden. Textfilter werden
im Abschnitt Filter genauer
erläutert.Um einen einfachen Test durchzuführen, reicht ein
kleines Filterprogramm, dass schlicht
/bin/cat aufruft, um die Daten
unverändert und den Drucker zu schicken. FreeBSD
verfügt über das Programm
lpf, das Unterstreichung und Fettdruck
für solche Drucker ermöglicht, die ansonsten
dazu nicht in der Lage wären. Darüberhinaus gibt
es viele andere Filter, die Sie einsetzen können.
lpf wird im Abschnitt lpf: ein Textfilter
ausführlich beschrieben.Legen Sie zunächst das folgende Shell-Skript als
/usr/local/libexec/if-simple mit
Ihrem bevorzugten Texteditor an:#!/bin/sh
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
/bin/cat && exit 0
exit 2Machen Sie die Datei ausführbar:&prompt.root; chmod 555 /usr/local/libexec/if-simpleKonfigurieren Sie nun den Textfilter für Ihren
Drucker in /etc/printcap, indem Sie
das if-Attribut hinzufügen. Hier
die Konfiguration unserer beiden Beispieldrucker:#
# /etc/printcap for host rose - added text filter
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\
:if=/usr/local/libexec/if-simple:LPD aktivieren&man.lpd.8; wird von /etc/rc
gestartet, wenn die &man.rc.conf.5;-Variable
lpd_enable auf YES
gesetzt ist. Fügen Sie dazu diese Zeile in
/etc/rc.conf hinzu:lpd_enable="YES"Starten Sie Ihren Computer neu, oder starten Sie
&man.lpd.8; von Hand:&prompt.root; lpdDie Konfiguration testenDamit ist die einfache Konfiguration abgeschlossen.
Noch muss die Konfiguration aber getestet werden und
etwaige Probleme müssen behoben werden. Um die
Konfiguration zu testen, sollten Sie einen Probeausdruck
mithilfe des Programms &man.lpr.1; produzieren.
&man.lpr.1; übergibt Druckaufträge an das
LPD-System.Sie können &man.lpr.1; mit &man.lptest.1;
kombinieren, um Testdaten zu drucken. &man.lptest.1; wurde
im Abschnitt Kommunikation mit den Drucker
prüfen vorgestellt.So testen Sie die einfache
LPD-Konfiguration:&prompt.root; lptest 20 5 | lpr -PDruckernameErsetzen Sie Druckername
durch den Namen des Druckers, den Sie testen möchten.
Wenn Sie den Standard-Drucker testen möchten, rufen
Sie &man.lpr.1; ohne die Option auf.
Wenn Sie einen Drucker testen möchten, der nur
&postscript; versteht, müssen Sie ein
&postscript;-Testprogramm an &man.lpr.1; übergeben.
Ein Testprogramm, das Sie in einer Datei gespeichert haben,
können Sie mit dem Befehl
lpr Dateiname
an das LPD-System
übergeben.Bei einem &postscript;-Drucker hängt das Ergebnis
naturgemäß vom Testprogramm ab. Wenn Sie
&man.lptest.1; verwenden, sollte das Ergebnis
ungefähr so aussehen:!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678Um sicherzustellen, dass alles richtig
funktioniert, sollten Sie jetzt ein größeres
&postscript;-Programm senden. Mit &man.lptest.1; können
Sie größere Datenmengen z.B. mit dem Befehl
lptest 80 60 erzeugen: &man.lptest.1;
produziert 60 Zeilen mit je 80 Zeichen.Wenn Sie nicht erfolgreich drucken können, finden
Sie im Abschnitt Fehlersuche und
Problembehebung weitere Informationen.* Erweiterte Drucker-KonfigurationDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-advanced.html">
das Original in englischer Sprache.* Filter* Funktionsweise der Filter* Drucken von reinen Textdateien auf einem
&postscript;-Drucker* Drucken von &postscript;-Dateien auf
nicht-&postscript;-Druckern* Konvertierungsfilter* Automatische Konvertierung: eine Alternative zu
Konvertierungsfiltern Filters* Ausgabefilter* lpf: Ein Textfilter* Titelseiten* Titelseiten aktivieren* Abrechnung von Titelseiten* Titelseiten auf &postscript;-Druckern* Drucken im Netzwerk* Drucker, die an einen anderen Computer angeschlossen
sind* Drucker mit direkter TCP-Schnittstelle* Einschränken der Druckerbenutzung* Mehrfache Kopien verbieten* Zugriff auf einzelne Drucker
einschränken* Die Größe der Druckaufträge
beschränken* Zugriff von Computern im Netzwerk
beschränken* Abrechnungsdaten aufzeichnen* Einfache Abrechnung* Anzahl der gedruckten Seiten bestimmen* DruckenDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-using.html">
das Original in englischer Sprache.* Druckaufträge erstellen* Druckaufträge anzeigen* Druckaufträge löschen* Optionen für Druckaufträge* Formatierungs- und Konvertierungs-Optionen* Druckauftrags-Optionen* Titelseiten-Optionen* Drucker verwalten* Alternativen zum
Standard-LPD-SystemDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-lpd-alternatives.html">
das Original in englischer Sprache.* Fehlersuche und ProblembehebungDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-troubleshooting.html">
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index e33e909cb1..db7dcb9b85 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,5956 +1,5952 @@
MatthewDillonViel von diesem Kapitel stammt aus der security(7)
Manualpage von MartinHeinenÜbersetzt von SicherheitSicherheitÜbersichtDieses Kapitel bietet eine Einführung in die Konzepte
der Systemsicherheit. Neben einigen Daumenregeln werden
weiterführende Themen wie S/Key, OpenSSL und Kerberos
diskutiert. Die meisten der hier besprochenen Punkte treffen
sowohl auf die Systemsicherheit sowie die Internetsicherheit zu.
Das Internet hat aufgehört ein friedlicher
Ort zu sein, an dem Sie nur nette Leute finden werden. Es ist
unumgänglich, dass Sie Ihre Daten, Ihr geistiges Eigentum,
Ihre Zeit und vieles mehr vor dem Zugriff von Hackern
schützen.&os; besitzt eine Reihe von Werkzeugen und Mechanismen, um die
Integrität und die Sicherheit Ihrer Systeme und Netzwerke
zu gewährleisten.Nach dem Sie dieses Kapitel durchgearbeitet haben, werden
Sie:Grundlegende auf &os; bezogene Sicherheitsaspekte
kennen.Die verschiedenen Verschlüsselungsmechanismen
von &os;, wie DES oder
MD5, kennen.Wissen, wie Sie ein Einmalpasswörter
zur Authentifizierung verwenden.Wissen, wie Sie KerberosIV
vor 5.0-Release einrichten.Wissen, wie Sie Kerberos5
ab 5.0-Release einrichten.Firewalls mit IPFW
erstellen können.Wissen, wie Sie IPsec konfigurieren und ein
VPN zwischen &os;/&windows;
Systemen einrichten,OpenSSH, &os;s
Implementierung von SSH, konfigurieren
und benutzen können.Wie sie mithilfe des TrustedBSD-MAC-Frameworks
Zugrifsskontrollen konfigurieren.Mit &os;-Sicherheitshinweisen umgehen können.Bevor Sie dieses Kapitel lesen, sollten SieGrundlegende Konzepte von &os; und dem Internet
verstehen.EinführungSicherheit ist ein Konzept, das beim Systemadministrator anfängt
und aufhört. Obwohl alle BSD &unix; Mehrbenutzersysteme über
Sicherheitsfunktionen verfügen, ist es wohl eine der
größten Aufgaben eines Systemadministrators zusätzliche
Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
stehen oft der Benutzerfreundlichkeit entgegen. Auf &unix; Systemen
können sehr viele Prozesse gleichzeitig laufen und viele dieser
Prozesse sind Server, das heißt von außen kann auf sie
zugegriffen werden. In einer Zeit, in der die Minicomputer und
Mainframes von gestern die Desktops von heute sind und Rechner
immer mehr vernetzt werden, kommt der Sicherheit eine große
Bedeutung zu.Sicherheit wird am besten in mehreren Schichten implementiert.
Kurz gesagt wollen Sie eine angemessene Anzahl Schichten einrichten,
und dann das System auf Einbrüche hin beobachten. Die
Sicherheitsmaßnahmen sollten nicht überzogen werden,
da sie sonst das Entdecken von Einbrüchen stören und die
Möglichkeit, Einbrüche zu entdecken, ist einer der wichtigsten
Aspekte einer Sicherheitsmaßnahme. Es macht zum Beispiel wenig
Sinn, jedes Programm mit der schg Option (siehe auch
&man.chflags.1;) zu schützen, weil dies verhindert, dass ein
Angreifer eine leicht zu entdeckende Veränderung vornimmt und
vielleicht dazu führt, dass Ihre Sicherheitsvorkehrungen den
Angreifer überhaupt nicht entdecken.Zur Systemsicherheit gehört auch die Beschäftigung mit
verschiedenen Arten von Angriffen, auch solchen, die versuchen,
ein System still zu legen, oder sonst unbrauchbar zu machen ohne
root zu kompromittieren. Sicherheitsaspekte
lassen sich in mehrere Kategorien unterteilen:Denial-of-Service Angriffe.Kompromittierte Accounts.Kompromittierter root-Account durch
zugreifbare Server.Kompromittierter root-Account durch
kompromittierte Accounts.Einrichten von Hintertüren.DoS AngriffeDenial-of-Service (DoS)SicherheitDoS AngriffeDenial-of-Service (DoS)Denial-of-Service (DoS)Ein Denial-of-Service (Verhinderung von Diensten, DoS) Angriff
entzieht einer Maschine Ressourcen, die sie zur Bereitstellung
von Diensten benötigt. Meist versuchen Denial-of-Service Angriffe
die Dienste oder den Netzwerkstack einer Maschine zu überlasten,
um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
Maschine mit einem einzigen Paket auszuschalten. Diese Art des
Angriffs kann nur verhindert werden, indem der entsprechende Fehler
im Kernel behoben wird. Oft können Angriffe auf Dienste durch
die Angabe von Optionen verhindert werden, die die Last, die ein
Dienst auf das System unter widrigen Umständen ausüben kann,
begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
Außer durch Trennen der Internetverbindung ist zum Beispiel
einem Angriff mit gefälschten Paketen nicht zu begegnen.
Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen,
kann aber die Internetverbindung sättigen.Sicherheitkompromittierte AccountsKompromittierte Accounts kommen noch häufiger als
DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren
Maschinen noch die Dienste telnetd,
rlogind, rshd
und ftpd laufen. Verbindungen zu diesen
Servern werden nicht verschlüsselt. Wenn Sie eine
größere Benutzerzahl auf Ihrem System haben, die sich von
einem entfernten System anmelden, ist die Folge davon, dass
das Passwort eines oder mehrerer Benutzer ausgespäht wurde.
Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen
von entfernten Systemen auf verdächtige Quelladressen, auch
für erfolgreiche Anmeldungen, untersuchen.Es ist immer davon auszugehen, dass ein Angreifer, der
Zugriff auf einen Account hat, Zugang zum
root-Account erlangt. Allerdings gibt der
Zugriff auf einen Account auf einem gut gesicherten und
gepflegten System nicht notwendig Zugriff auf den
root-Account. Diese Unterscheidung ist wichtig,
da ein Angreifer, der keinen Zugang zu root
besitzt, seine Spuren nicht verwischen kann. Er kann höchstens
die Dateien des betreffenden Benutzers verändern oder die
Maschine stilllegen. Kompromittierte Accounts sind sehr
häufig, da Benutzer meist nicht dieselben Vorsichtsmaßnahmen
wie Administratoren treffen.SicherheitHintertürenEs gibt viele Wege, Zugang zum root-Account
eines Systems zu bekommen: Ein Angreifer kann das Passwort von
root kennen, er kann einen Fehler in einem
Server entdecken, der unter root läuft und
dann über eine Netzwerkverbindung zu diesem Server einbrechen.
Oder er kennt einen
Fehler in einem SUID-root Programm, der es
ihm erlaubt, root zu werden, wenn er einmal
einen Account kompromittiert hat. Wenn ein Angreifer einen
Weg gefunden hat, root zu werden, braucht er
vielleicht keine Hintertür auf dem System installieren.
Viele der heute
bekannten und geschlossenen Sicherheitslöcher, die zu einem
root Zugriff führen, verlangen vom Angreifer
einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem
Grund wird er sich wahrscheinlich entschließen, eine Hintertür
(engl. Backdoor) zu installieren.
Eine Hintertür erlaubt es
dem Angreifer leicht auf den root-Account
zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings
auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren,
Hintertüren zu installieren, kann das schädlich für
Ihre Sicherheit sein, da es vielleicht verhindert, dass die
Lücke, die der Angreifer für den Einbruch ausgenutzt hat,
entdeckt wird.Sicherheitsmaßnahmen sollten immer in mehreren Schichten
angelegt werden. Die Schichten können wie folgt eingeteilt
werden:Absichern von root und
Accounts.Absichern von unter root laufenden
Servern und SUID/SGID Programmen.Absichern von Accounts.Absichern der Passwort-Datei.Absichern des Kernels, der Geräte und von
Dateisystemen.Schnelles Aufdecken von unbefugten Veränderungen des
Systems.Paranoia.Die einzelnen Punkte der obigen Liste werden im nächsten
Abschnitt genauer behandelt.Absichern von FreeBSDSicherheitFreeBSD absichernKommandos und ProtokolleIn diesem Abschnitt wird fett verwendet,
um Kommandos oder Anwendungen zu kennzeichnen. Zum Beispiel
wird SSH so gekennzeichnet, da es
sowohl ein Protokoll wie auch ein Kommando ist.Die folgenden Abschnitte behandeln die im
letzten Abschnitt erwähnten
Methoden Ihr FreeBSD-System zu sichern.Absichern von root und
AccountssuZuallererst, kümmern Sie sich nicht um die Absicherung
von Accounts, wenn Sie root
noch nicht abgesichert haben. Auf den meisten Systemen ist
root ein Passwort zugewiesen. Sie
sollten immer davon ausgehen, dass
dieses Passwort kompromittiert ist. Das heißt nicht,
dass Sie das Passwort entfernen sollten, da es meist
für den Konsolenzugriff notwendig ist. Vielmehr heißt
es, dass Sie das Passwort nicht außerhalb der
Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten.
Stellen Sie sicher, dass Ihre PTYs in ttys als
unsicher markiert sind und damit Anmeldungen von
root mit telnet oder
rlogin verboten sind. Wenn Sie andere
Anwendungen wie SSH zum Anmelden
benutzen, vergewissern Sie sich, dass dort ebenfalls
Anmeldungen als root verboten sind. Für
SSH editieren Sie
/etc/ssh/sshd_config und überprüfen,
dass PermitRootLogin auf NO
gesetzt ist. Beachten Sie jede Zugriffsmethode – Dienste
wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
ein direktes Anmelden als root möglich
sein.wheelNatürlich müssen Sie als Systemadministrator
root-Zugriff erlangen können. Dieser
sollte aber durch zusätzliche Passwörter
geschützt sein. Ein Weg, Zugang zu root
zu ermöglichen, ist es, berechtigte Mitarbeiter in
/etc/group in die Gruppe
wheel aufzunehmen. Die Personen, die
Mitglieder in der Gruppe wheel sind,
können mit su zu root
wechseln. Ihre Mitarbeiter sollten niemals die Gruppe
wheel als primäre Gruppe in
/etc/passwd besitzen. Mitarbeiter sollten
der Gruppe staff angehören und über
/etc/group in wheel
aufgenommen werden. Es sollten auch nur die Mitarbeiter, die
wirklich root Zugriff benötigen in
wheel aufgenommen werden. Mit anderen
Authentifizierungsmethoden müssen Sie niemanden in
wheel aufnehmen. Wenn Sie z.B.
Kerberos benutzen, wechseln Sie mit
&man.ksu.1; zu root und der Zugriff wird
mit der Datei .k5login geregelt. Dies ist
vielleicht eine bessere Lösung, da es der
wheel-Mechanismus einem Angreifer immer
noch möglich macht, den root-Account
zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat.
Obwohl der wheel-Mechanismus besser als
gar nichts ist, ist er nicht unbedingt die sicherste Lösung.Indirekt können Sie die Accounts von Mitarbeitern und
damit auch den Zugriff auf root schützen,
indem Sie eine alternative Zugangsmethode verwenden und die
Accounts der Mitarbeiter mit einem ungültigen verschlüsselten
Passwort versehen. Mit &man.vipw.8; können Sie jedes
verschlüsselte Passwort mit einem
* Zeichen ersetzen. Das Kommando
wird /etc/master.passwd und die
Benutzer/Passwort Datenbank aktualisieren und die Passwort
Authentifizierung abstellen.Ein Account wiefoobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshsollte wie folgt abgeändert werden:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDa ein verschlüsseltes Passwort niemals
ein * sein kann, verhindert dies
die normale Anmeldung. Damit müssen sich die Mitarbeiter
mit anderen Mechanismen wie &man.kerberos.1; oder &man.ssh.1;
authentifizieren. Wenn Sie etwas wie
Kerberos benutzen, müssen Sie
die Maschinen, die die Kerberos-Server
beheimaten und die Maschinen der Benutzer absichern. Wenn Sie
öffentliche/private Schlüssel mit
SSH benutzen, muss die Maschine
von der die Anmeldung gestartet wird, gesichert
werden. Als zusätzliche Sicherheitsschicht können Sie
das Schlüsselpaar beim Erstellen mit &man.ssh-keygen.1; durch
ein Passwort schützen. Dadurch, dass Sie die
Passwörter Ihrer Mitarbeiter als ungültig markiert
haben, stellen Sie sicher, dass sich die Mitarbeiter nur mit
den sicheren Methoden, die Sie aufgesetzt haben, anmelden können.
Dies zwingt alle Mitarbeiter, verschlüsselte Verbindungen
für ihre Sitzungen zu verwenden, und schließt ein
wichtiges Loch, dass gerne von Angreifern ausgenutzt wird:
Das Abhören des Netzwerks von einer anderen weniger gesicherten
Maschine.Die indirekten Sicherheitsmechanismen setzen voraus, dass
Sie sich von einer restriktiven Maschine auf einer weniger restriktiven
Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
möglichen Arten von Servern laufen, so sollten auf Ihrer
Workstation keine Server laufen. Um Ihre Workstation vernünftig
abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin
zu keinem Server laufen. Sie sollten zudem über einen
Bildschirmschoner verfügen, der mit einem Passwort
gesichert ist. Natürlich kann ein Angreifer, der physikalischen
Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen
umgehen. Dieses Problem sollten Sie daher auch in Ihren
Überlegungen berücksichtigen. Beachten Sie dabei aber,
dass der Großteil der Einbrüche über das
Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine
besitzen.KerberosIVMit Kerberos können Sie das
Passwort eines Mitarbeiters an einer Stelle ändern
und alle Maschinen, auf denen der Mitarbeiter einen Account hat,
beachten die Änderung sofort. Wird der Account eines
Mitarbeiters einmal kompromittiert, so sollte die Fähigkeit, das
Passwort mit einem Schlag auf allen Maschinen zu ändern,
nicht unterschätzt werden. Mit einzelnen Passwörtern
wird es schwierig, das Passwort auf N Maschinen zu ändern.
Mit Kerberos können Sie auch
Beschränkungen für Passwörter festlegen:
Nicht nur das Ticket kann nach einiger Zeit ungültig werden,
Sie können auch festlegen, dass ein Benutzer nach einer
bestimmten Zeit, z.B. nach einem Monat, das Passwort wechseln
muss.Absichern von unter root laufenden
Servern und SUID/SGID ProgrammenntalkcomsatfingerSandkästensshdtelnetdrshdrlogindEin kluger Systemadministrator lässt nur die
Dienste, die er wirklich braucht, laufen; nicht mehr und auch
nicht weniger. Beachten Sie, dass Server von Dritten die
fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von
imapd oder popper
laufen lassen, ist das so, als würden Sie der ganzen Welt
freien Zugang zu root geben. Lassen Sie keine
Server laufen, die Sie vorher nicht genau überprüft haben.
Viele Server müssen nicht unter root
laufen, zum Beispiel können ntalk,
comsat und finger
in speziellen Sandkästen unter
einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung,
wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren,
doch bewährt sich hier das Prinzip, die Sicherheit in Schichten
aufzubauen. Wenn es einem Angreifer gelingt, in einen Server,
der in einem Sandkasten läuft, einzubrechen, dann muss
er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten
der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten
auf Erfolg. In der Vergangenheit wurden praktisch in jedem
Server, der unter root läuft, Lücken
gefunden, die zu einem root Zugriff führten.
Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
Maschine betreiben, auf der man sich nur mit
SSH anmelden kann, dann stellen Sie die
Dienste telnetd,
rshd oder rlogind
ab!In der Voreinstellung laufen unter FreeBSD
ntalkd, comsat
und finger nun in einem Sandkasten. Ein
weiteres Programm, das in einem Sandkasten laufen sollte, ist
&man.named.8;. In /etc/defaults/rc.conf sind
die notwendigen Argumente, um named in
einem Sandkasten laufen zu lassen, in kommentierter Form schon
enthalten. Abhängig davon, ob Sie ein neues System installieren
oder ein altes System aktualisieren, sind die hierfür
benötigten Benutzer noch nicht installiert.
Ein kluger Systemadministrator sollte immer nach Möglichkeiten
suchen, Server in einem Sandkasten laufen zu lassen.sendmailEinige Server wie sendmail,
popper, imapd
und ftpd werden normalerweise nicht in
Sandkästen betrieben. Zu einigen Servern gibt es Alternativen,
aber diese wollen Sie vielleicht wegen der zusätzlich nötigen
Arbeit nicht installieren (ein weiteres Beispiel für den
Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit).
In diesem Fall müssen Sie die
Server unter root laufen lassen und auf die
eingebauten Mechanismen vertrauen, Einbrüche zu entdecken.Weitere potentielle Löcher, die zu einem
root-Zugriff führen können, sind
die auf dem System installierten SUID- und SGID-Programme. Die
meisten dieser Programme wie rlogin stehen
in /bin, /sbin,
/usr/bin, oder /usr/sbin.
Obwohl nichts 100% sicher ist, können Sie davon ausgehen,
dass die SUID- und SGID-Programme des Basissystems ausreichend
sicher sind. Allerdings werden ab und an in diesen Programmen
Löcher gefunden. 1998 wurde in Xlib ein
Loch gefunden, das xterm, der
normal mit SUID installiert wird, verwundbar machte. Es ist besser
auf der sicheren Seite zu sein, als sich später zu beklagen,
darum wird ein kluger Systemadministrator den Zugriff auf
SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen
können, beschränken. SUID-Programme, die niemand benutzt,
sollten mit chmod 000 deaktiviert werden. Zum
Beispiel braucht ein Server ohne Bildschirm kein
xterm Programm. SGID-Programme sind
vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf
SGID-kmem Programm erhält, kann er
vielleicht /dev/kmem und damit die
verschlüsselte Passwortdatei lesen. Dies kompromittiert
unter Umständen jeden Account, der mit einem Passwort
geschützt ist. Alternativ kann ein Einbrecher, der in die
Gruppe kmem eingebrochen ist, die
Tastendrücke auf PTYs verfolgen. Dies schließt
auch PTYs mit ein, auf denen sich ein Benutzer mit sicheren
Methoden anmeldet. Ein Einbrecher, der Zugriff auf die
tty Gruppe hat, kann auf fast jeden Terminal
anderer Benutzer schreiben. Wenn der Benutzer einen Terminal-Emulator
benutzt, der über eine Tastatur-Simulation verfügt,
könnte der Angreifer Daten generieren, die den Terminal
veranlassen, ein Kommando unter diesem Benutzer laufen zu lassen.Absichern von AccountsAccounts sind für gewöhnlich sehr schwierig
abzusichern. Während Sie drakonische Beschränkungen
für Ihre Mitarbeiter einrichten und deren Passwörter
als ungültig markieren können, werden Sie das
vielleicht bei den normalen Accounts nicht durchsetzen.
Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen
vielleicht doch, ansonsten müssen Sie diese Accounts
aufmerksam überwachen. Wegen der zusätzlichen
Administrationsarbeit und der nötigen technischen
Unterstützung ist die Verwendung von
SSH und Kerberos
mit normalen Accounts erschwert, obwohl das natürlich
sicherer als die Verwendung von verschlüsselten
Passwörtern ist.Absichern der Passwort-DateiDer einzig sichere Weg ist, so viele Accounts wie möglich als
ungültig zu markieren und SSH oder
Kerberos zu benutzen, um auf sie
zuzugreifen. Obwohl die Datei /etc/spwd.db,
die die verschlüsselten Passwörter enthält,
nur von root gelesen werden kann, mag ein
Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die
Fähigkeit sie auch zu beschreiben.Ihre Überwachungsskripten sollten Änderungen
an der Passwort-Datei melden (siehe Überprüfen der
Integrität von Dateien weiter unten).Absichern des Kernels, der Geräte und von
DateisystemenWenn ein Angreifer root-Zugriff erlangt,
kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie
es ihm nicht zu leicht machen. Die meisten modernen Kernel haben
zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete
abzuhören. Unter FreeBSD wird das Gerät
bpf genannt. Für gewöhnlich
wird ein Angreifer versuchen, dieses Gerät zu nutzen, um
Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht
geben und auf den meisten Systemen ist das Gerät
bpf nicht nötig.sysctlAuch wenn Sie bpf nicht verwenden,
müssen Sie sich immer noch um /dev/mem
und /dev/kmem sorgen. Außerdem
kann der Angreifer immer noch auf die rohen Geräte
(raw devices)
schreiben. Weiterhin gibt es ein Programm zum Nachladen von
Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
Angreifer kann dies benutzen, um sein eigenes
bpf oder ein anderes zum Abhören
geeignetes Gerät in den laufenden Kernel einzubringen. Um diese
Probleme zu vermeiden, müssen Sie den Kernel auf einer
höheren Sicherheitsstufe, mindestens 1,
laufen lassen. Die Sicherheitsstufe wird durch die Variable
kern.securelevel, die mit sysctl
gesetzt werden kann, angegeben. Nachdem Sie die Sicherheitsstufe
auf 1 gesetzt haben, sind schreibende Zugriffe
auf rohe Geräte verboten und die speziellen
chflags Optionen, wie schg
werden erzwungen. Sie müssen sicherstellen, dass die
schg Option auf allen kritischen Programmen,
Verzeichnissen und Skripten, die bis zum Setzen der Option laufen,
aktiviert ist. Das mag übertrieben sein da eine Migration
des Systems erschwert wird, wenn Sie auf einer höheren
Sicherheitsstufe arbeiten. Sie können einen Kompromiss
erreichen, indem Sie das System auf einer erhöhten
Sicherheitsstufe laufen lassen, aber die schg
Option nicht für jede Datei und jedes Verzeichnis auf der Welt
setzen. Eine andere Möglichkeit besteht darin,
/ und /usr einfach
schreibgeschützt einzuhängen. Bedenken Sie, dass
Sie das Aufdecken eines Einbruchs vielleicht verhindern, wenn
Sie zu drastische Maßnahmen zum Schutz Ihres Systems
verwenden.Überprüfen der Integrität von DateienSie können die Systemkonfiguration und die Dateien
nur so weit schützen, wie es die Benutzbarkeit des
Systems nicht einschränkt. Wenn Sie zum Beispiel
mit chflags die Option schg
auf die meisten Dateien in / und
/usr setzen, kann das Ihre Arbeit mehr behindern
als nützen. Die Maßnahme schützt zwar die
Dateien, schließt aber auch eine Möglichkeit,
Veränderungen zu entdecken, aus. Die letzte Schicht des
Sicherheitsmodells – das Aufdecken von Einbrüchen –
ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind
nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie
nicht in der Lage sind, einen möglichen Einbruch zu entdecken.
Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe,
einen Einbruch zu verlangsamen, um es zu ermöglichen, den
Einbrecher auf frischer Tat zu ertappen.Der beste Weg, einen Einbruch zu entdecken, ist es, nach
veränderten, fehlenden oder unerwarteten Dateien zu suchen.
Der wiederum beste Weg, nach veränderten Dateien zu suchen, ist
es, die Suche von einem anderen (oft zentralen) besonders
geschützten System durchzuführen. Es ist wichtig, dass
Ihre Sicherheitsüberprüfungen vor einem Angreifer
verborgen bleiben und daher sind sie auf einem besonders
geschützten System gut aufgehoben. Um dies optimal auszunutzen,
müssen Sie dem besonders geschützten System Zugriffsrechte
auf die zu schützenden Systeme geben. Sie können die
Dateisysteme der zu schützenden Systeme schreibgeschützt
für das besonders geschützte System exportieren, oder
Sie können der besonders geschützten Maschine
SSH auf die anderen Maschinen erlauben,
indem Sie SSH Schlüsselpaare
installieren. Mit Ausnahme des verursachten Netzwerkverkehrs
ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen,
nahezu unentdeckt die Dateisysteme der Clients zu beobachten. Wenn
Ihr besonders geschütztes System mit den Clients über
einen Switch verbunden ist, ist die NFS-Methode oft das Mittel der
Wahl. Wenn das besonders geschützte System allerdings
mit einem Hub verbunden ist, oder der Zugriff über mehrere
Router geschieht, ist die NFS-Methode aus der Netzwerksicht zu
unsicher. In einem solchen Fall ist SSH
besser geeignet, auch wenn es deutliche Spuren
hinterlässt.Wenn das besonders geschützte System lesenden Zugriff
auf die Clients hat, müssen Sie Skripten schreiben, die die
Überwachung durchführen. Wenn Sie die NFS-Methode
verwenden, können Sie dazu einfache Systemwerkzeuge wie
&man.find.1; und &man.md5.1; benutzen. Am besten berechnen
Sie einmal am Tag MD5-Prüfsummen der Dateien, Konfigurationsdateien
in /etc und /usr/local/etc
sollten öfter überprüft werden. Wenn Unstimmigkeiten
zwischen den auf der besonders geschützten Maschine gehaltenen
MD5-Prüfsummen und den ermittelten Prüfsummen festgestellt
werden, sollte Ihr System einen Systemadministrator benachrichtigen,
der den Unstimmigkeiten dann nachgehen sollte. Ein gutes Skript
überprüft das System auch auf verdächtige
SUID-Programme sowie gelöschte oder neue Dateien in
/ und /usr.Wenn Sie SSH anstelle von NFS
benutzen, wird das Erstellen der Skripten schwieriger. Sie müssen
die Skripten und die Programme wie find mit
scp auf den Client kopieren. Damit machen
Sie die Überprüfung für einen Angreifer sichtbar.
Außerdem kann der SSH-Client auf dem
Zielsystem schon kompromittiert sein. Zusammenfassend, kann der
Einsatz von SSH nötig sein,
wenn Sie über ungesicherte Verbindungen arbeiten, aber
der Umgang mit dieser Methode ist auch sehr viel schwieriger.Ein gutes Sicherheitsskript wird auch Dateien von Benutzern,
die den Zugriff auf ein System ermöglichen, wie
.rhosts, .shosts,
.ssh/authorized_keys usw., auf
Veränderungen untersuchen, die über die Möglichkeiten
einer Überprüfung mit MD5,
die ja nur Veränderungen feststellen kann, hinausgehen.Wenn Sie über große Partitionen verfügen, kann
es zu lange dauern, jede Datei zu überprüfen. In diesem
Fall sollten Sie beim Einhängen des Dateisystems Optionen
setzen, die das Ausführen von SUID-Programmen und den
Zugriff auf Geräte verbieten. &man.mount.8; stellt dazu
die Optionen und
zur Verfügung. Sie sollten diese Dateien aber trotzdem
mindestens einmal die Woche überprüfen, da das Ziel
dieser Schicht das Aufdecken eines Einbruchs, auch wenn er nicht
erfolgreich war, ist.Die Prozessüberwachung (siehe &man.accton.8;)
des Betriebssystems steht ein günstiges Werkzeug zur
Verfügung, dass sich bei der Analyse eines Einbruchs
als nützlich erweisen kann. Insbesondere können Sie
damit herausfinden, wie der Einbrecher in das System eingedrungen ist,
vorausgesetzt die Dateien der Prozessüberwachung sind
noch alle intakt.Schließlich sollten die Sicherheitsskripten die Logdateien
analysieren. Dies sollte so sicher wie möglich durchgeführt
werden, nützlich ist das Schreiben von Logdateien auf
entfernte Systeme mit syslog. Ein Einbrecher
wird versuchen, seine Spuren zu verwischen. Die Logdateien
sind wichtig für den Systemadministrator, da er aus ihnen
den Zeitpunkt und die Art des Einbruchs bestimmen kann. Eine
Möglichkeit, die Logdateien unverändert aufzuheben,
ist es, die Systemkonsole auf einen seriellen Port zu legen
und die Informationen dort von einer gesicherten Maschine
auszulesen.ParanoiaEs schadet nicht, ein bisschen paranoid zu sein.
Grundsätzlich darf ein Systemadministrator jede
Sicherheitsmaßnahme treffen, die die Bedienbarkeit des
Systems nicht einschränkt. Er kann auch Maßnahmen
treffen, die die Bedienbarkeit einschränken,
wenn er diese vorher genau durchdacht hat. Was noch wichtiger
ist: Halten Sie sich nicht sklavisch an dieses Dokument, sondern
führen Sie eigene Maßnahmen ein, um nicht einem
künftigen Angreifer, der auch Zugriff auf dieses Dokument
hat, alle Ihre Methoden zu verraten.Denial-of-Service AngriffeDenial-of-Service (DoS)Dieser Abschnitt behandelt Denial-of-Service Angriffe (DoS).
Ein DoS-Angriff findet typischerweise auf der Paketebene statt.
Während Sie nicht viel gegen moderne Angriffe mit falschen
Paketen, die das Netzwerk sättigen, ausrichten können,
können Sie allerdings den Schaden in der Hinsicht begrenzen,
dass Ihre Server von einem solchen Angriff nicht gestoppt
werden.Begrenzen von fork() Aufrufen.Begrenzen von Sprungbrett-Angriffen (ICMP response Angriffen,
ping zu Broadcast-Adressen usw.).Kernel-Cache für Routen.Ein häufiger DoS-Angriff gegen forkende Server versucht
den Server dazu zu bringen, möglichst viele Prozesse, viele
Dateideskriptoren und viel Speicher zu verbrauchen, bis hin zu
dem Punkt, an dem die Maschine ausfällt. &man.inetd.8;
besitzt einige Optionen, um diese Art von Angriffen zu begrenzen.
Beachten Sie bitte, dass es möglich ist, einen
Ausfall einer Maschine zu verhindern, doch ist es generell nicht
möglich, den Ausfall eines Dienstes bei dieser Art
von Angriffen zu verhindern. Lesen Sie sich bitte die Manualpages
von inetd gut durch und achten Sie speziell
auf die Optionen , und
. Angriffe mit gefälschten IP-Adressen
umgehen , so dass normalerweise eine
Kombination der Optionen benutzt werden muss. Manche Server,
die nicht von inetd gestartet werden,
besitzen Optionen, um den Start über fork()
einzuschränken.Sendmail besitzt die Option
, die besser als die
eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert.
Sie sollten beim Start von sendmailMaxDaemonChildren so hoch setzen, dass Sie
die erwartete Auslastung gut abfangen können. Allerdings
sollten Sie den Wert nicht so hoch setzen, dass der
Rechner über seine eigenen Füße fällt.
Es ist auch klug, sendmail im
Queue-Modus () laufen zu
lassen. Der Dæmon (sendmail -bd) sollte
getrennt von den Queue-Läufen (sendmail -q15m)
laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
wünschen, können Sie die Queue in einem geringeren
Intervall, etwa , abarbeiten. Geben Sie
für diesessendmail aber einen vernünftigen
Wert für MaxDaemonChildren an, um
Fehler zu verhindern.Syslogd kann direkt angegriffen
werden. Daher empfehlen wir Ihnen unbedingt die Option
zu benutzen. Sollte das nicht möglich
sein, benutzen Sie bitte .
Vorsicht ist auch mit Diensten geboten, die automatisch
eine Rückverbindung eröffnen, wie der
reverse-identd der tcpwrapper.
Diese Funktion der tcpwrapper
sollten Sie normalerweise nicht benutzen.Es empfiehlt sich sehr, interne Dienste vor externen Zugriffen
durch eine Firewall an der Grenze Ihres Netzwerks zu schützen.
Dahinter steckt mehr die Idee, das Netzwerk vor Überlastung
durch Angriffe von außen zu schützen, als interne
Dienste vor einem root-Zugriff aus dem Netz
zu schützen. Konfigurieren Sie immer eine Firewall, die
alle Zugriffe blockiert, das heißt blockieren Sie
alles außer den Ports A, B, C, D
und M-Z. Damit können Sie Zugriffe auf alle niedrigen
Ports blockieren und Zugriffe auf spezielle Dienste wie
named, wenn Sie den primären
Namensdienst für eine Zone anbieten,
ntalkd oder
sendmail erlauben. Wenn Sie die
Firewall so konfigurieren, das sie in der Voreinstellung alle
Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie
vergessen, eine Reihe von Diensten zu blockieren bzw. einen
internen Dienst einführen und dann vergessen die Firewall
zu aktualisieren. Sie können immer die höheren
Portnummern öffnen, ohne die niedrigen Portnummern,
die nur von root benutzt werden dürfen,
zu kompromittieren. Beachten Sie bitte auch, dass es
FreeBSD erlaubt, die Portnummern, die für dynamische
Verbindungen zur Verfügung stehen, zu konfigurieren.
Mit sysctl lassen sich verschiedene
Bereiche der net.inet.ip.portrange Variablen
setzen (eine Liste erhalten Sie mit sysctl -a | fgrep
portrange).
So können Sie zum Beispiel die Portnummern 4000 bis 5000
für den normalen Bereich und die Nummern 49152 bis 65535
für den hohen Bereich vorsehen. Dies erleichtert Ihnen
die Konfiguration der Firewall, da Sie nun Zugriffe auf Ports
unterhalb von 4000, mit Ausnahme der Dienste, die von außen
erreichbar sein sollen, blockieren können.ICMP_BANDLIMEine andere Form eines DoS-Angriffs nutzt einen Server
als Sprungbrett, der Server wird dabei so angegriffen, dass
seine Antworten ihn selber, das lokale Netzwerk oder einen
anderen Server überlasten. Der am häufigsten verwendete
Angriff dieser Art ist der ICMP ping broadcast
Angriff. Der Angreifer fälscht dazu
ping-Pakete, die zu der Broadcast-Adresse
Ihres LANs gesendet werden, indem er darin als Quelladresse
die Adresse des Opfers einsetzt. Wenn die Router an der Grenze
Ihres Netzwerks ping-Pakete auf
Broadcast-Adressen nicht abwehren, wird Ihr LAN genügend
Netzwerkverkehr generieren, um das Ziel des Angriffs zu
überlasten. Dies kann besonders effektiv sein, wenn der
Angreifer diese Methode mit mehreren Dutzend Broadcast-Adressen
über mehrere Netzwerke einsetzt. Es wurden schon
Broadcast-Angriffe mit über 120 Megabit pro Sekunde
gemessen. Ein zweiter Sprungbrett-Angriff wird gegen
das Fehlerbehandlungssystem von ICMP eingesetzt. Indem ein Angreifer
Pakete konstruiert, die eine ICMP-Fehlermeldung hervorrufen, kann
er das einkommende Netzwerk des Servers sättigen und diesen
wiederum veranlassen sein ausgehendes Netzwerk mit ICMP-Antworten
zu sättigen. Diese Art des Angriffs kann alle mbuf-Strukturen
auf dem Server aufbrauchen und damit den Server stilllegen,
insbesondere wenn der Server nicht in der Lage ist, die generierten
ICMP-Antworten schnell genug abzuführen. Der FreeBSD-Kernel
besitzt eine neue Option , die die
Auswirkungen von solchen Angriffen begrenzen kann. Die letzte
weit verbreitete Form von Sprungbrett-Angriffen verwendet
interne inetd-Dienste wie den
UDP echo-Dienst. Der Angreifer fälscht
dazu einfach ein UDP-Paket, indem er als Quellport den
echo-Port von Server A
und als Zielport den echo-Port von
Server B angibt, wobei beide
Server in Ihrem LAN stehen. Die beiden Server werden nun
dieses Paket zwischen sich hin und her schicken. Der Angreifer
kann die beiden Server und das LAN einfach damit überlasten,
dass er mehrere Pakete dieser Art generiert. Ähnliche
Probleme gibt es mit dem internen
chargen-Port, daher sollten Sie
die internen inetd-Testdienste
abstellen.Gefälschte IP-Pakete können dazu benutzt werden,
den Kernel-Cache für Routen zu überlasten. Schauen Sie
sich bitte die sysctl-Parameter
net.inet.ip.rtexpire, rtminexpire
und rtmaxcache an. Ein Angriff der gefälschte
Pakete mit zufälligen Quelladressen einsetzt, bewirkt, dass
der Kernel eine Route im Route-Cache anlegt, die Sie sich mit
netstat -rna | fgrep W3 ansehen können.
Diese Routen verfallen für gewöhnlich nach 1600 Sekunden.
Wenn der Kernel feststellt, dass die Routingtabelle im Cache
zu groß geworden ist, wird er dynamisch den Wert von
rtexpire verringern. Dieser Wert wird aber nie
kleiner werden als rtminexpire. Daraus
ergeben sich zwei Probleme:Der Kernel reagiert nicht schnell genug, wenn ein
Server mit einer niedrigen Grundlast plötzlich angegriffen
wird.rtminexpire ist nicht klein genug,
um einen anhaltenden Angriff zu überstehen.Wenn Ihre Server über eine T3 oder eine noch schnellere
Leitung mit dem Internet verbunden sind, ist es klug, mit
&man.sysctl.8; die Werte für rtexpire und
rtminexpire händisch zu setzen. Setzen
Sie bitte keinen der Werte auf Null, außer Sie wollen die
Maschine zum Erliegen bringen. Ein Wert von 2 Sekunden für
beide Parameter sollte ausreichen, um die Routingtabelle vor
einem Angriff zu schützen.Anmerkungen zum Zugriff mit Kerberos und SSHsshKerberosIVEs gibt ein paar Punkte, die Sie beachten sollten, wenn Sie
Kerberos oder SSH
einsetzen wollen. Kerberos V ist ein
ausgezeichnetes Authentifizierungsprotokoll. Leider gibt es
Fehler, in den für Kerberos
angepassten Versionen von telnet und
rlogin, die sie ungeeignet für den
Umgang mit binären Datenströmen machen. Weiterhin
verschlüsselt Kerberos Ihre Sitzung
nicht, wenn Sie nicht die Option verwenden,
mit SSH wird dagegen alles
verschlüsselt.Ein Problem mit SSH sind Weiterleitungen von Verbindungen.
Wenn Sie von einer sicheren Maschine, auf der sich Ihre
Schlüssel befinden, eine Verbindung zu einer
ungesicherten Maschine aufmachen, wird für die Dauer der
Sitzung ein Port für Weiterleitungen geöffnet.
Ein Angreifer, der auf der unsicheren Maschine Zugang zu
root hat, kann diesen Port
benutzen, um Zugriff auf andere Maschinen zu
erlangen, die mit Ihren Schlüsseln zugänglich
sind.Wir empfehlen Ihnen, für die Logins Ihrer Mitarbeiter immer
SSH zusammen mit
Kerberos einzusetzen. Damit reduzieren
Sie die Abhängigkeit von potentiell gefährdeten
Schlüsseln und schützen gleichzeitig die Passwörter
mit Kerberos.
SSH-Schlüsselpaare sollten nur
für automatisierte Aufgaben von einem besonders gesicherten
Server eingesetzt werden (Kerberos
kann für diese Art von Aufgaben nicht eingesetzt werden).
Weiterhin empfehlen wir Ihnen, das Weiterreichen von Schlüsseln
in der SSH-Konfiguration abzustellen bzw.
die from=IP/DOMAIN Option in
authorized_keys zu verwenden, die den
Schlüssel nur von bestimmten Maschinen aus nutzbar macht.BillSwingleTeile umgeschrieben und aktualisiert von DES, MD5, und crypt()Sicherheitcrypt()crypt()DESMD5Jedem Benutzer eines &unix; Systems ist ein Passwort zugeordnet.
Es scheint offensichtlich, dass das Passwort nur dem Benutzer
und dem System bekannt sein muss. Um die Passwörter
geheim zu halten, werden sie mit einer nicht umkehrbaren Hash-Funktion
verschlüsselt, das heißt sie können leicht
verschlüsselt aber nicht entschlüsselt werden. Was wir
gerade als offensichtlich dargestellt haben, ist also nicht wahr: Das
Betriebssystem kennt das Passwort wirklich
nicht, es kennt nur das verschlüsselte
Passwort. Die einzige Möglichkeit, das originale Passwort
herauszufinden, besteht darin, alle möglichen Passwörter
auszuprobieren (brute force Suche).Zu der Zeit als &unix; entstanden ist, war die einzig sichere
Möglichkeit Passwörter zu verschlüsseln, leider
DES (Data Encryption Standard). Für die Einwohner der USA
stellte das kein Problem dar, aber da der Quellcode von DES nicht aus
den USA exportiert werden durfte, musste ein Weg gefunden werden,
der die Gesetze der USA nicht verletzte und gleichzeitig die
Kompatibilität mit anderen &unix; Systemen, die immer noch DES
benutzten, wahrte.Die Lösung bestand darin, die Verschlüsselungsbibliotheken
aufzuspalten. Benutzer in den USA konnten die DES-Bibliotheken
installieren und nutzen. In der Grundeinstellung benutzt FreeBSD
MD5 als Verschlüsselungsmethode, das exportiert werden durfte
und damit von jedem genutzt werden konnte. Es wird davon ausgegangen,
dass MD5 sicherer als DES ist, so dass DES nur aus
Kompatibilitätsgründen installiert werden sollte.Erkennen der VerschlüsselungsmethodeVor FreeBSD 4.4 war libcrypt.a ein
symbolischer Link, der auf die Library zeigte, die die
Verschlüsselungsroutinen enthielt. Seit FreeBSD 4.4 enthält
libcrypt.a verschiedene Hash-Funktionen, deren
Anwendung sich konfigurieren lässt. Momentan werden
DES-, MD5- und Blowfish-Hash Funktionen unterstützt. In der
Voreinstellung benutzt FreeBSD die MD5-Hash Funktion.Sie können leicht herausfinden, welche
Verschlüsselungsmethode von FreeBSD verwendet wird. Ein Weg
besteht darin, die verschlüsselten Passwörter in
/etc/master.passwd zu untersuchen.
Passwörter, die mit MD5 verschlüsselt wurden,
sind länger als die mit DES verschlüsselten und
beginnen mit den Zeichen $1$.
Passwörter, die mit $2$
anfangen, wurden mit der Blowfish-Funktion verschlüsselt.
DES Passwörter besitzen keine offensichtlichen Merkmale,
an denen sie identifiziert werden könnten. Sie sind aber
kürzer als MD5-Passwörter und sind in einem
64 Zeichen umfassenden Alphabet kodiert, das das
$-Zeichen nicht enthält. Ein relativ
kurzes Passwort, das nicht mit einem
$-Zeichen anfängt, ist wahrscheinlich
ein DES-Passwort.Die Verschlüsselungsmethode für neue
Passwörter wird durch passwd_format in
/etc/login.conf bestimmt. Der Wert dieser
Variablen kann entweder des, md5
oder blf sein. Näheres schlagen Sie bitte
in &man.login.conf.5; nach.EinmalpasswörterEinmalpasswörterSicherheitEinmalpasswörterS/Key ist ein Einmalpasswort System, das auf einer nicht
umkehrbaren Hash-Funktion basiert. Aus Kompatibilitätsgründen
benutzt FreeBSD MD4-Hashes, andere Systeme benutzen MD5 und DES-MAC.
S/Key ist seit Version 1.1.5 Teil des FreeBSD-Basissystems und wird
auch auf einer wachsenden Anzahl anderer Systeme benutzt. S/Key
ist eine geschützte Warenmarke von
Bell Communications Research, Inc.Ab der FreeBSD-Version 5.0 wurde S/Key durch OPIE
(One-time Passwords In Everything), das die gleichen Funktionen
bietet, abgelöst. OPIE benutzt MD5 Hash-Funktionen.Im Folgenden werden drei verschiedene
Passwörter verwendet. Das Erste ist Ihr normales System- oder
Kerberos-Passwort und wird im Folgenden System-Passwort
genannt. Das Zweite ist das Einmalpasswort, das bei S/Key
von key oder bei OPIE von
opiekey generiert wird. Dieses Passwort wird von
den Programmen keyinit oder
opiepasswd und dem Login-Programm akzeptiert. Im
Folgenden wird es Einmalpasswort genannt. Das Dritte
Passwort ist das geheime Passwort, das Sie mit den Programmen
key/opiekey (manchmal auch mit
keyinit/opiepasswd) zum Erstellen
der Einmalpasswörter verwenden. Dieses Passwort
werden wir im Folgenden geheimes Passwort
oder schlicht Passwort nennen.Das geheime Passwort steht in keiner Beziehung zu Ihrem
System-Passwort, beide können gleich sein, obwohl das nicht
empfohlen wird. Die geheimen Passwörter von S/Key oder
OPIE sind nicht auf eine Länge von 8 Zeichen,
wie alte &unix; PasswörterUnter &os; darf das System-Passwort maximal
128 Zeichen lang sein., beschränkt.
Sie können so lang sein, wie Sie wollen. Gebräuchlich sind
Passwörter, die sich aus sechs bis sieben Wörtern
zusammensetzen. Das S/Key oder OPIE System arbeitet
größtenteils unabhängig von den
auf &unix; Systemen verwendeten Passwort-Mechanismen.Neben dem Passwort gibt es noch zwei Werte, die für
S/Key und OPIE wichtig sind. Der erste ist der
Initialwert (engl. seed
oder key), der aus zwei Buchstaben
und fünf Ziffern besteht. Der andere Wert ist der
Iterationszähler, der eine Zahl zwischen
1 und 100 ist. S/Key generiert das Einmalpasswort, indem
es den Initialwert und das geheime Passwort aneinander hängt
und dann die MD4/MD5 Hash-Funktion so oft, wie durch den
Iterationszähler gegeben, anwendet. Das Ergebnis wird in
sechs englische Wörter umgewandelt, die Ihr Einmalpasswort
sind. Das Authentifizierungssystem (meistens PAM) merkt sich das
zuletzt benutzte Einmalpasswort und Sie sind authentisiert,
wenn die Hash-Funktion des Passworts dem vorigen Passwort
entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden,
ist es unmöglich, aus einem bekannten Passwort weitere
gültige Einmalpasswörter zu berechnen. Der
Iterationszähler wird nach jeder erfolgreichen Anmeldung um
eins verringert und stellt so die Synchronisation zwischen Benutzer
und Login-Programm sicher. Wenn der Iterationszähler den
Wert 1 erreicht, müssen S/Key und OPIE neu initialisiert
werden.In jedem System werden drei Programme verwendet, die weiter unten
beschrieben werden. Die Programme key und
opiekey verlangen einen Iterationszähler,
einen Initialwert und ein geheimes Passwort. Daraus generieren
sie ein Einmalpasswort oder eine Liste von
Einmalpasswörtern. Die Programme keyinit
und opiepasswd werden benutzt, um S/Key bzw.
OPIE zu initialisieren. Mit ihnen können Passwörter,
Iterationszähler oder Initialwerte geändert werden.
Als Parameter verlangen sie entweder ein geheimes Passwort
oder einen Iterationszähler oder einen Initialwert und ein
Einmalpasswort. Die Programme keyinfo
und opieinfo geben den momentanen
Iterationszähler und Initialwert eines Benutzers aus. Diese
werden aus den Dateien /etc/skeykeys bzw.
/etc/opiekeys ermittelt.Im Folgenden werden vier verschiedene Tätigkeiten beschrieben.
Zuerst wird erläutert, wie keyinit oder
opiepasswd über eine gesicherte Verbindung
eingesetzt werden, um Einmalpasswörter das erste Mal
zu konfigurieren oder das Passwort oder den Initialwert
zu ändern. Als nächstes wird erklärt, wie
keyinit oder opiepasswd
über eine nicht gesicherte Verbindung, zusammen mit
key oder opiekey über eine
gesicherte Verbindung, eingesetzt werden, um dasselbe zu erreichen.
Als drittes wird beschrieben, wie
key/opiekey genutzt werden,
um sich über eine nicht gesicherte Verbindung anzumelden.
Die vierte Tätigkeit beschreibt, wie mit key
oder opiekey eine Reihe von Schlüsseln
generiert werden, die Sie sich aufschreiben oder ausdrucken können,
um sich von Orten anzumelden, die über keine gesicherten
Verbindungen verfügen.Einrichten über eine gesicherte VerbindungBenutzen Sie keyinit um S/Key das erste
Mal einzurichten, das Passwort oder den Initialwert
zu ändern, während Sie über eine gesicherte
Verbindung, das heißt an der Konsole oder über
SSH angemeldet, sind:&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 SOFTMit OPIE benutzen Sie stattdessen
opiepasswd:&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
Nach der Aufforderung Enter new secret pass phrase:
oder Enter secret password: geben Sie bitte Ihr
Passwort ein. Dies ist nicht das Passwort, mit dem Sie sich
anmelden, sondern es wird genutzt, um das Einmalpasswort
zu generieren. Die Zeile, die mit ID anfängt,
enthält Ihren Login-Namen, den Iterationszähler und den
Initialwert. Diese Werte müssen Sie sich nicht behalten, da
das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
Zeile steht das Einmalpasswort, das aus diesen Parametern
und Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt
wieder anmelden wollten, dann müssten Sie dieses
Passwort benutzen.Einrichten über eine nicht gesicherte VerbindungUm Einmalpasswörter über eine nicht gesicherte
Verbindung einzurichten, oder das geheime Passwort zu ändern,
müssen Sie über eine gesicherte Verbindung zu einer Stelle
verfügen, an der Sie die Kommandos key
oder opiekey ausführen. Dies kann
ein Desk Accessory auf einem &macintosh; oder
die Eingabeaufforderung auf einer Maschine, der Sie vertrauen, sein.
Zudem müssen Sie einen Iterationszähler vorgeben (100
ist ein guter Wert) und einen Initialwert wählen, wobei
Sie auch einen zufällig generierten benutzen können.
Benutzen Sie keyinit -s über die ungesicherte
Verbindung zu der Maschine, die Sie einrichten wollen:&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 GOREMit OPIE benutzen Sie 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
Drücken Sie Return, um die Vorgabe
für den Initialwert, der von keyinitkey genannt wird, zu akzeptieren. Bevor
Sie nun das Zugriffspasswort
(engl. access password)
eingeben, rufen Sie über die gesicherte Verbindung
key mit denselben Parametern auf:&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 GOREMit OPIE benutzen Sie opiekey:&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
Gehen Sie nun zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmalpasswort ein.Erzeugen eines einzelnen EinmalpasswortesNachdem Sie S/Key oder OPIE eingerichtet haben, werden Sie beim
nächsten Anmelden wie folgt begrüßt:&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: OPIE begrüßt Sie wie folgt:&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: Anmerkung: S/Key und OPIE besitzen eine nützliche Eigenschaft,
die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung
Return eingeben, wird die echo-Funktion eingeschaltet,
das heißt Sie sehen, was Sie tippen. Dies ist besonders
nützlich, wenn Sie ein generiertes Passwort von einem
Ausdruck abtippen müssen.MS-DOSWindowsMacOSJetzt müssen Sie Ihr Einmalpasswort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muss auf
einem gesicherten System geschehen, auf dem Sie key
oder opiekey ausführen können.
Diese Programme gibt es übrigens auch für DOS, &windows; und
&macos;. Beide Programme benötigen den Iterationszähler
sowie den Initialwert als Parameter, die Sie mittels
cut-and-paste direkt von der Login Aufforderung
nehmen können.Auf dem sicheren System:&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 HAAGMit 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 CHATMit dem jetzt generierten Einmalpasswort können
Sie die Anmeldeprozedur fortsetzen: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 ...Erzeugen von mehreren EinmalpasswörternManchmal müssen Sie sich an Orte begeben, an denen
Sie keinen Zugriff auf eine sichere Maschine oder eine
sichere Verbindung haben. In diesem Fall können Sie
vorher mit key oder opiekey
einige Einmalpasswörter generieren, die Sie sich
ausdrucken und mitnehmen können. Zum Beispiel:&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 BILKMit 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 PHIMit fordern Sie fünf
Passwörter der Reihe nach an. Der letzte
Iterationszähler wird durch gegeben.
Beachten Sie bitte, dass die Passwörter in der
umgekehrten Reihenfolge, in der sie
zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
sind, schreiben Sie sich jetzt die Passwörter auf,
ansonsten drucken Sie sie mit lpr aus.
Beachten Sie, dass jede Zeile den Iterationszähler
und das Einmalpasswort zeigt, trotzdem finden Sie es
vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen.Einschränken der Benutzung von
System-PasswörternMit S/Key können Sie die Verwendung von
System-Passwörtern, basierend auf dem Hostnamen,
Benutzernamen, Terminal oder IP-Adresse, einschränken.
Die Beschränkungen werden in
/etc/skey.access definiert. Die
Manualpage &man.skey.access.5; beschreibt das Format dieser
Datei sowie einige Vorsichtsmaßnahmen, die Sie treffen
sollten, bevor Sie diese Datei einsetzen.Wenn /etc/skey.access nicht existiert
(wie auf FreeBSD 4.X Systemen), dann dürfen sich
alle Benutzer mit ihren System-Passwörtern anmelden.
Wenn die Datei existiert, dann müssen alle Benutzer
S/Key zum Anmelden benutzen. Ausnahmen müssen explizit
in skey.access konfiguriert werden.
In allen Fällen werden System-Passwörter
beim Anmelden auf der Konsole erlaubt.Das folgende Beispiel für skey.access
zeigt die drei geläufigsten Konfigurationsoptionen:Das folgende Beispiel zeigt die drei häufigsten
Ausnahmen:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0Die erste Zeile (permit internet) erlaubt
es Benutzern, deren IP-Adresse, die immer noch gefälscht werden
kann, mit dem angegebenen Wert und der angegebenen Maske
übereinstimmt, System-Passwörter zu benutzen. Dies
sollte nicht als Sicherheitsmechanismus missverstanden werden,
sondern sollte autorisierte Benutzer daran erinnern, dass sie
ein ungesichertes Netzwerk benutzen und sich mit S/Key anmelden
müssen.Die zweite Zeile (permit user) erlaubt
es dem angegebenen Benutzer, hier fnord,
jederzeit System-Passwörter zu verwenden. Dies sollte
allerdings nur für Benutzer konfiguriert werden, die das
key Programm nicht benutzen können (Leute
mit dumb Terminals oder wirklich uneinsichtige).
Die dritte Zeile (permit port) erlaubt allen
Benutzern, die sich an dem angegebenen Terminal anmelden,
System-Passwörter zu benutzen. Sie sollte für
Einwählverbindungen genutzt werden.Wie S/Key kann OPIE die Verwendung von System-Passwörtern
abhängig von der Quell-IP-Adresse einschränken.
Die dazu nötigen Einstellungen werden in der Datei
/etc/opieaccess vorgenommen, die
auf Systemen ab FreeBSD 5.0 vorhanden ist. Weitere
Informationen über diese Datei und Sicherheitshinweise
zu ihrer Verwendung entnehmen Sie bitte der Hilfeseite
&man.opieaccess.5;.Die Datei opieaccess könnte
beispielsweise die folgende Zeile enthalten:permit 192.168.0.0 255.255.0.0Diese Zeile erlaubt es Benutzern, die sich von einer der
angegebenen Quell-IP-Adressen anmelden, ihr System-Passwort
zu verwenden. Beachten Sie bitte, dass eine Quell-IP-Adresse
leicht gefälscht werden kann.Findet sich in opieaccess kein
passender Eintrag, muss die Anmeldung mit OPIE erfolgen.MarkMurrayBeigesteuert von MarkDapozBasiert auf einem Beitrag von KerberosIVKerberosIVKerberos ist ein zusätzliches Netzwerkprotokoll, das es
Benutzern erlaubt, sich über einen sicheren Server zu
authentifizieren. Dienste wie rlogin,
rcp oder das sichere Kopieren von Dateien
zwischen Systemen und andere risikoreiche Tätigkeiten werden
durch Kerberos erheblich sicherer und kontrollierbarer.Die folgende Anleitung kann nur als Wegweiser dazu dienen, wie
- Sie Kerberos für FreeBSD konfigurieren. Für eine komplette
- Beschreibung des Systems, sollten Sie sich auf jeden Fall die
- entsprechenden Manualpage ansehen.
+ Sie Kerberos für FreeBSD konfigurieren. Eine komplette
+ Beschreibung des Systems finden Sie in den entsprechenden
+ Hilfeseiten.
Installation von KerberosIVMITKerberosIVInstallationKerberos ist eine optionale Komponente von &os;. Am
leichtesten installieren Sie die Software, wenn Sie bei
der ersten Installation von FreeBSD in
sysinstall die Distribution
krb4 oder krb5
auswählen. Damit installieren Sie entweder die
eBones (KerberosIV) oder Heimdal
(Kerberos5) Version von Kerberos. Beide Versionen werden
mit FreeBSD ausgeliefert, da sie außerhalb von den
USA oder Kanada entwickelt werden.
Sie unterliegen deshalb auch nicht den restriktiven
Exportbeschränkungen der USA und sind auch für
Bewohner anderer Länder zugänglich.Als Alternative steht die MIT Variante von Kerberos in der
Ports-Kollektion unter security/krb5 zur
Verfügung.Erstellen der initialen DatenbankDie folgenden Schritte werden nur auf dem Kerberos-Server
durchgeführt. Stellen Sie bitte vorher sicher, dass
keine alten Kerberos-Datenbanken mehr vorhanden sind. Im
Verzeichnis /etc/kerberosIV sollten sich nur
die folgenden Dateien befinden:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsWenn noch andere Dateien, wie principal.*
oder master_key, existieren, müssen
Sie die alte Kerberos-Datenbank mit kdb_destroy
löschen. Wenn Kerberos nicht läuft, können Sie
die Dateien auch einfach löschen.Sie sollten nun die Dateien krb.conf und
krb.realms editieren, um Ihr Kerberos-Realm zu
definieren. Das folgende Beispiel zeigt dies für das Realm
EXAMPLE.COM auf dem Server
grunt.example.com.
krb.conf sollte wie folgt aussehen:&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.govDie zusätzlich aufgeführten Realms brauchen Sie nicht
anzulegen. Sie zeigen hier nur, wie man Kerberos dazu bringt, andere
Realms zu erkennen. Sie können Sie also auch weglassen.Die erste Zeile benennt das Realm, in dem das System arbeitet.
Die anderen Zeilen enthalten Realm/Host Paare. Der erste Wert jeder
Zeile ist das Realm, der zweite Teil ein Host, der in diesem
Realm Key Distribution Center ist. Die
Schlüsselwörter admin server nach einem
Hostnamen bedeuten, dass dieser Host auch einen administrativen
Datenbankserver zur Verfügung stellt. Weitere Erklärungen zu
diesen Begriffen finden Sie in den Kerberos Manualpages.Als nächstes muss
grunt.example.com in das Realm
EXAMPLE.COM aufgenommen werden. Des Weiteren
erstellen wir einen Eintrag, der alle Rechner der Domäne
.example.com in das Realm
EXAMPLE.COM aufnimmt.
krb.realms sollte danach so aussehen:&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.EDUDie zusätzlichen Realms sind hier wieder als Beispiel
gedacht. Sie können sie der Einfachheit halber auch
weglassen.Die erste Zeile nimmt ein einzelnes System
in das Realm auf. Die anderen Zeilen zeigen, wie bestimmte
Subdomänen einem bestimmten Realm zugeordnet werden.Das folgende Kommando muss nur auf dem Kerberos-Server
(oder Key Distribution Center) laufen. Mit
kdb_init können wir die Datenbank
anlegen:&prompt.root; kdb_initRealm 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:Anschließend muss der Schlüssel gespeichert
werden, damit Server auf der lokalen Maschine darauf zugreifen
können. Dies geschieht mit kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Das verschlüsselte Master-Passwort wurde in
/etc/kerberosIV/master_key gesichert.Anlegen von PrinzipalsFür jedes System, das mit Kerberos
gesichert werden soll, müssen zwei Prinzipale in die
Datenbank eingetragen werden. Ihre Namen sind
kpasswd und rcmd. Beide
Prinzipale müssen für jedes System angelegt werden, wobei
die Instanz der Name des jeweiligen Systems ist.Die Dæmonen kpasswd und
rcmd erlauben es anderen Systemen,
Kerberos-Passwörter zu ändern und Kommandos wie
&man.rcp.1;, &man.rlogin.1; und &man.rsh.1;
laufen zu lassen.Beide Einträge werden im Folgenden angelegt:&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:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
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:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
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: <---- geben Sie nichts an, um das Programm zu verlassenErstellen der Server-DateiWir müssen nun für jede Maschine die Instanzen,
die Dienste definieren, aus der Datenbank mit
ext_srvtab extrahieren. Die erstelle Datei
muss auf einem sicheren Weg in das
/etc/kerberosIV Verzeichnis jedes Clients
kopiert werden. Die Datei muss auf jedem Server und auf
jedem Client vorhanden sein und ist unabdingbar für
Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Das Kommando erzeugt Dateien mit einem temporären Namen,
der es anderen Servern erlaubt, ihre Datei abzuholen. Die Datei
muss auf dem entsprechenden System in srvtab
umbenannt werden. Auf dem originalen System können Sie
&man.mv.1; benutzen, um die Datei umzubenennen:&prompt.root; mv grunt-new-srvtab srvtabWenn die Datei für ein Client-System bestimmt ist und das
Netzwerk nicht sicher ist, kopieren Sie die Datei auf ein bewegliches
Medium und transportieren sie physikalisch. Kopieren Sie die Datei
auf den Client in das Verzeichnis /etc/kerberosIV.
Benennen Sie die Datei in srvtab um und setzen Sie
schließlich noch die Berechtigungen auf 600:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabFüllen der DatenbankWir können nun Benutzer in der Datenbank anlegen. Mit
kdb_edit legen wir zuerst die Benutzerin
jane an:&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:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- wiederholen Sie die Eingabe
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: <---- geben Sie nichts an, um das Programm zu verlassenTestenZuerst müssen die Kerberos-Dæmonen gestartet sein.
Wenn Sie /etc/rc.conf richtig angepasst haben,
passiert das automatisch, wenn Sie booten. Dieser Schritt ist nur
auf dem Kerberos-Server notwendig, die Clients bekommen alles
was sie brauchen aus dem /etc/kerberosIV
Verzeichnis.&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!Jetzt können wir mit kinit versuchen,
ein Ticket für die ID jane, die wir
oben angelegt haben, zu erhalten:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Mit klist können Sie sich vergewissern,
dass Sie die Tickets auch erhalten haben:&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.COMVersuchen Sie nun das Passwort mit &man.passwd.1;
zu ändern, um zu überprüfen, dass der
kpasswd Dæmon auch auf der
Kerberos-Datenbank autorisiert ist:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.Anlegen von su PrivilegienMit Kerberos kann jedem Benutzer, der
root-Privilegien braucht, ein
eigenes Passwort für
&man.su.1; zugewiesen werden. Dies wird dadurch
erreicht, dass die Instanz eines Prinzipals
root ist. Mit kbd_edit
legen wir nun den Eintrag jane.root in der
Kerberos-Datenbank an:&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:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- geben Sie das Passwort erneut ein
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenVersuchen Sie nun, für diesen Prinzipal Tickets zu
bekommen:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Als nächstes fügen wir den Prinzipal in
.klogin von root ein:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMJetzt benutzen wir &man.su.1;:&prompt.user; su
Password:und kontrollieren, welche Tickets wir haben:&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.COMWeitere KommandosIn einem der Beispiele haben wir einen Prinzipal mit
dem Namen jane und der Instanz
root angelegt. Der Prinzipal entstand aus
einem Benutzer mit dem gleichen Namen. Unter Kerberos ist es
Standard, dass ein
principal.instance der Form
username.root es dem
Benutzer username erlaubt, mit
&man.su.1; root zu werden, wenn die
entsprechenden Einträge in .klogin von
root existieren:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMDas gilt auch für die .klogin-Datei
im Heimatverzeichnis eines Benutzers:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMDie Einträge erlauben jedem, der sich im Realm
EXAMPLE.COM als jane oder
jack mit kinit authentifiziert
hat, mittels &man.rlogin.1;, &man.rsh.1; oder &man.rcp.1;
auf den Account jane und dessen
Dateien zuzugreifen.Im folgenden Beispiel meldet sich jane
mit Kerberos auf grunt an:&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 1995Im folgenden Beispiel wurde der Prinzipal jack
mit einer Instanz null angelegt. Mit der obigen
.klogin-Datei kann er sich nun auf derselben
Maschine als jane anmelden:&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 1995TillmanHodgsonBeigetragen von MarkMurrayBeruht auf einem Beitrag von Kerberos5Das Basissystem enthält ab &os; 5.1
nur noch Kerberos5. Die
Konfiguration von Kerberos5
ist der Konfiguration von KerberosIV
sehr ähnlich. Wenn Sie KerberosIV
benötigen, installieren Sie den Port
security/krb4.
Der folgende Abschnitt beschreibt ausschließlich
Kerberos5 für &os;-Releases
ab 5.0.Kerberos ist ein Netzwerk-Protokoll,
das Benutzer mithilfe eines sicheren Servers authentifiziert.
Mit Risiken behaftete Dienste, wie das Anmelden an entfernten
Systemen oder das Kopieren von Daten auf entfernte Systeme,
werden durch Kerberos erheblich
sicherer und lassen sich leichter steuern.Kerberos hat eine Aufgabe:
Die sichere Prüfung der Identität eines Benutzers
(Authentifizierung) über das Netzwerk. Das System
überprüft weder die Berechtigungen der Benutzer
(Autorisierung), noch verfolgt es die durchgeführten
Aktionen (Audit). Daher sollte Kerberos
zusammen mit anderen Sicherheits-Systemen eingesetzt werden, die
diese Funktionen bereitstellen. Die Daten einer Kommunikation
können verschlüsselt werden, nachdem die
Kommunikationspartner mit Kerberos
ihre Identität geprüft haben.Die folgenden Anweisungen beschreiben, wie Sie das mit
&os; gelieferte Kerberos einrichten.
Eine vollständige Beschreibung des Systems entnehmen
Sie bitte den entsprechenden Hilfeseiten.Die Beschreibung der
Kerberos-Installation benutzt
folgende Namensräume:Die DNS-Domain (Zone) heißt
example.org.Das Kerberos-Realm
heißt EXAMPLE.ORG.Benutzen Sie echte Domain-Namen, wenn Sie
Kerberos einrichten. Damit
vermeiden Sie DNS-Probleme und stellen
die Zusammenarbeit mit anderen
Kerberos-Realms sicher.GeschichteKerberos5GeschichteDas MIT entwickelte
Kerberos, um Sicherheitsprobleme
auf dem Netzwerk zu lösen. Das
Kerberos-Protokoll verwendet
starke Kryptographie, sodass ein Server die Identität
eines Clients (der umgekehrte Vorgang ist auch möglich)
über ein unsicheres Netzwerk feststellen kann.Der Begriff Kerberos wird sowohl für das Protokoll
als auch für Programme verwendet, die
Kerberos benutzen (wie
Kerberos-Telnet). Die aktuelle
Protokollversion ist 5 und wird in
RFC 1510 beschrieben.Mehrere Implementierungen des Protokolls stehen frei
zur Verfügung und decken viele Betriebssysteme ab.
Das Massachusetts Institute of Technology
(MIT), an dem Kerberos
ursprünglich entwickelt wurde, entwickelt seine
Kerberos-Version weiter. In den
USA wird diese Version häufig
eingesetzt, unterlag aber Export-Beschränkungen,
da sie in den USA entwickelt wurde.
Die MIT-Version von
Kerberos befindet sich im Port
security/krb5.
Heimdal ist eine weitere Implementierung der Protokollversion 5.
Sie wurde außerhalb der USA entwickelt
und unterliegt daher keinen Export-Beschränkungen.
Heimdal-Kerberos befindet sich
im Port security/heimdal
und das Basissystem von &os; enthält eine minimale
Installation von Heimdal.Um möglichst viele Benutzer anzusprechen, verwenden
die folgenden Beispiele die in &os; enthaltene
Heimdal-Distribution.Das Heimdal KDC einrichtenKerberos5Key Distribution Center einrichtenKerberos authentifiziert
Benutzer an einer zentralen Stelle: dem Key Distribution
Center (KDC). Das KDC
verteilt Tickets, mit denen ein
Dienst die Identität eines Benutzers feststellen kann.
Alle Mitglieder eines Kerberos-Realms
vertrauen dem KDC, daher gelten für
das KDC erhöhte
Sicherheitsanforderungen.Obwohl das KDC wenig Ressourcen eines
Rechners benötigt, sollte es wegen der
Sicherheitsanforderungen auf einem separaten Rechner
installiert werden.Das KDC wird in
/etc/rc.conf wie folgt aktiviert:kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
kerberos_stash="YES"Die Option gibt es
nur in &os; 4.X.Danach wird die Konfigurationsdatei von
Kerberos,
/etc/krb5.conf, erstellt:[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORGDiese Einstellungen setzen voraus, dass der voll
qualifizierte Name des KDCs
kerberos.example.org ist.
Wenn Ihr KDC einen anderen Namen hat,
müssen Sie in der DNS-Zone einen Alias-Eintrag (CNAME-Record)
für das KDC hinzufügen.Auf großen Netzwerken mit einem ordentlich
konfigurierten BIND
DNS-Server kann die Datei verkürzt
werden:[libdefaults]
default_realm = EXAMPLE.ORGDie Zonendatei von example.org
muss dann die folgenden Zeilen enthalten:_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORG.Im nächsten Schritt wird die
Kerberos-Datenbank eingerichtet.
Die Datenbank enthält die Schlüssel aller Prinzipale
und ist mit einem Passwort geschützt. Dieses Passwort
brauchen Sie nicht zu behalten, da ein davon abgeleiteter
Schlüssel in der Datei /var/heimdal/m-key
gespeichert wird. Den Schlüssel erstellen Sie, indem
Sie das Programm kstash aufrufen und
ein Passwort eingeben.Nachdem Sie den Schlüssel in
/var/heimdal/m-key erstellt haben,
können Sie die Datenbank mit dem Kommando
kadmin initialisieren. Verwenden
Sie hierbei die Option (lokal). Mit
dieser Option wird die Datenbank lokal modifiziert. Normal
würde der kadmind-Dienst benutzt,
der aber zu diesem Zeitpunkt noch nicht läuft. An
der Eingabeaufforderung von kadmin
können Sie mit dem Kommando init
die Datenbank des Realms einrichten.Zuletzt erstellen Sie mit dem Kommando add
Ihren ersten Prinzipal. Benutzen Sie die voreingestellten
Optionen; Sie können die Einstellungen später
mit dem Kommando modify ändern.
An der Eingabeaufforderung zeigt das Kommando
? Hilfetexte an.Zusammengefasst wird die Datenbank wie folgt
eingerichtet:&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxxJetzt kann das KDC gestartet werden.
Führen Sie zum Start der Dienste die Kommandos
/etc/rc.d/kerberos start und
/etc/rc.d/kadmind start aus. Obwohl
zu diesem Zeitpunkt noch keine kerberisierten Dienste
laufen, können Sie die Funktion des KDCs
schon überprüfen. Für den eben angelegten
Benutzer können Sie sich vom KDC
Tickets holen und diese Tickets anzeigen:&prompt.user; k5init tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; k5list
Credentials cache: FILE: /tmp/krb5cc_500
-Principal: tillman@EXAMPLE.ORG
+ Principal: tillman@EXAMPLE.ORG
- Issued Expires Principal
- Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
- Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
-
-v4-ticket file: /tmp/tkt500
-k5list: No ticket file (tf_util)
+ Issued Expires Principal
+Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
Kerberos-Dienste
einrichtenKerberos5Dienste einrichtenAlle Rechner, die kerberisierte Dienste anbieten,
müssen eine Kopie der
Kerberos-Konfigurationsdatei
/etc/krb5.conf besitzen. Sie
können die Datei einfach vom KDC
kopieren.Anschließend müssen Sie die Datei
/etc/krb5.keytab erzeugen. Im
Gegensatz zu normalen Workstations benötigt jeder
Server eine keytab.
Diese Datei enthält den Schlüssel des
Servers, mit dem sich der Server und das
KDC gegenseitig authentifizieren
können. Die Datei muss sicher auf den Server
transportiert werden (beispielsweise mit &man.scp.1;
oder einer Diskette). Unter keinen Umständen
darf die Datei im Klartext, zum Beispiel mit
FTP, übertragen werden,
da sonst die Sicherheit des Servers gefährdet
ist.Sie können die keytab auch
mit dem Programm kadmin übertragen.
Da Sie mit kadmin sowieso einen Host-Prinzipal
für den Server einrichten müssen, ist das ganz
praktisch.Sie müssen allerdings schon ein Ticket
besitzen und berechtigt sein, kadmin
auszuführen. Die Berechtigung erhalten Sie durch
einen Eintrag in der Zugriffskontrollliste
kadmind.acl. Weitere Informationen
über Zugriffskontrolllisten erhalten Sie in den
Heimdal-Info-Seiten (info heimdal)
im Abschnitt Remote administration. Wenn
der Zugriff auf kadmin von entfernten
Maschinen verboten ist, müssen Sie sich sicher
auf dem KDC anmelden (lokale Konsole,
&man.ssh.1; oder kerberisiertes Telnet) und die
keytab lokal mit
kadmin -l erzeugen.Nachdem Sie die Datei /etc/krb5.conf
installiert haben, können Sie das Kommando
kadmin benutzen. An der Eingabeaufforderung
von kadmin erstellt das Kommando
add --random-key den Host-Prinzipal
und das Kommando ext extrahiert den
Schlüssel des Prinzipals in eine Datei:&prompt.root; kadmin
-kadmin> add --random-key host/myserver.EXAMPLE.ORG
+kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
-kadmin> ext host/myserver.EXAMPLE.ORG
+kadmin> ext host/myserver.example.org
kadmin> exitDas Kommando ext (von
extract) speichert den
extrahierten Schlüssel in der Datei
/etc/krb5.keytab.Wenn auf dem KDC, vielleicht aus
Sicherheitsgründen, kadmind
nicht läuft, können Sie das Kommando
kadmin von entfernten Rechnern nicht
benutzen. In diesem Fall legen Sie den Host-Prinzipal
host/myserver.EXAMPLE.ORG direkt
auf dem KDC an. Den Schlüssel
extrahieren Sie in eine temporäre Datei (damit
die Datei /etc/krb5.keytab nicht
überschrieben wird):&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exitAnschließend müssen Sie die erzeugte
example.keytab sicher auf den
Server kopieren (mit scp oder
mithilfe einer Diskette). Geben Sie auf jeden Fall
einen anderen Namen für die keytab
an, weil sonst die keytab des
KDCs überschrieben würde.Wegen der Datei krb5.conf kann
der Server nun mit dem KDC kommunizieren
und seine Identität mithilfe der Datei
krb5.keytab nachweisen. Jetzt
können wir kerberisierte Dienste aktivieren.
Für telnet muss die folgende
Zeile in /etc/inetd.conf eingefügt
werden:telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a userAusschlaggebend ist, dass die Authentifizierungs-Methode
mit auf user gesetzt
wird. Weitere Details entnehmen Sie bitte der Hilfeseite
&man.telnetd.8;.Nachdem sie die Zeile in /etc/inetd.conf
eingefügt haben, starten Sie &man.inetd.8; mit
dem Kommando /etc/rc.d/inetd restart
durch.Kerberos-Clients
einrichtenKerberos5Clients einrichtenEin Client lässt sich leicht einrichten.
Sie benötigen nur die
Kerberos-Konfigurationsdatei
/etc/krb5.conf. Kopieren Sie
die Konfigurationsdatei einfach vom KDC
auf den Client.Sie können jetzt mit kinit
Tickets anfordern, mit klist Tickets
anzeigen und mit kdestroy Tickets
löschen. Sie können mit
Kerberos-Anwendungen kerberisierte
Server ansprechen. Wenn das nicht funktioniert,
Sie aber Tickets anfordern können, hat wahrscheinlich
der kerberisierte Server ein Problem und nicht der
Client oder das KDC.Wenn Sie eine Anwendung wie telnet
testen, können Sie mit einem Paket-Sniffer
(beispielsweise &man.tcpdump.1;) überprüfen,
dass Passwörter verschlüsselt übertragen
werden. Probieren Sie auch die Option
von telnet, die den gesamten Datenverkehr
verschlüsselt (analog zu ssh).Die Kerberos-Basisanwendungen
kinit, klist,
kdestroy und kpasswd
gehören zum &os;-Basissystem. Beachten Sie, dass
die Programme vor &os; 5.0 in k5init,
k5list, k5destroy,
k5passwd und k5stash
umbenannt wurden.Zu Heimdal gehören noch weitere Anwendungen.
Allerdings enthält das &os;-Basissystem eine
minimale Heimdal-Installation und nur eine
kerberisierte Anwendung: telnet.Der Heimdal-Port enthält noch mehr kerberisierte
Anwendungen wie ftp, rsh,
rcp und rlogin.
Der MIT-Port enthält ebenfalls
weitere kerberisierte Anwendungen..k5login und
.k5usersKerberos5.k5loginKerberos5.k5usersNormalerweise wird ein
Kerberos-Prinzipal wie
tillman@EXAMPLE.ORG auf ein lokales
Benutzerkonto, beispielsweise tillman,
abgebildet. Daher benötigen Client-Anwendungen (zum
Beispiel telnet) keinen Benutzernamen.Manchmal wird aber Zugriff auf ein lokales Benutzerkonto
benötigt, zu dem es keinen passenden
Kerberos-Prinzipal gibt.
Der Prinzipal tillman@EXAMPLE.ORG
bräuchte beispielsweise Zugriff auf das Konto
webdevelopers. Ebenso könnten
andere Prinzipale auf dieses Konto zugreifen wollen.Die Dateien .k5login und
.k5users im Heimatverzeichnis eines
Benutzerkontos gewähren Zugriffe ähnlich wie
die Dateien .hosts und
.rhosts. Um den Prinzipalen
tillman@example.org und
jdoe@example.org auf das Konto
webdevelopers zu geben, wird im
Heimatverzeichnis von webdevelopers
die Datei .k5login mit folgendem
Inhalt angelegt:tillman@example.org
jdoe@example.orgDie angegebenen Prinzipale haben nun ohne ein gemeinsames
Passwort Zugriff auf das Konto.Einzelheiten entnehmen Sie bitte den Hilfeseiten
zu diesen Dateien. Die Datei .k5users
wird in der Hilfeseite des Kommandos ksu
beschrieben.Tipps und FehlersucheKerberos5FehlersucheWenn Sie den Heimdal-Port oder den
MIT-Port benutzen, muss in der
Umgebungsvariable PATH der Pfad zu
den Programmen des Ports vor dem Pfad zu den
Kerberos-Programmen des Systems
stehen.Sind die Uhrzeiten der Systeme synchronisiert?
Ist die Zeitdifferenz zu groß (normalerweise
größer 5 Minuten), dann schlägt
die Authentifizierung fehl.Die MIT- und Heimdal-Systeme
arbeiten bis auf kadmin gut zusammen.
Für kadmin wurde das Protokoll
nicht normiert.Wenn Sie den Namen eines Rechners ändern,
müssen Sie auch den host/-Prinzipal
ändern und die Datei keytab
aktualisieren. Dies betrifft auch spezielle Einträge
wie den Prinzipal für Apaches www/mod_auth_kerb.Die Rechnernamen müssen vor- und
rückwärts aufgelöst werden (im
DNS oder in
/etc/hosts).
CNAME-Einträge im
DNS funktionieren, aber die
entsprechenden A- und PTR-Einträge müssen
vorhanden und richtig sein. Wenn sich Namen nicht
auflösen lassen, ist die Fehlermeldung nicht
gerade selbstsprechend: Kerberos5 refuses
authentication because Read req
failed: Key table entry not found.Einige Betriebssysteme installieren
ksu mit falschen Zugriffsrechten;
es fehlt das Set-UID-Bit für root.
Das mag aus Sicherheitsgründen richtig sein,
doch funktioniert ksu dann nicht.
Dies ist kein Fehler des KDCs.Wenn Sie für einen Prinzipal unter
MIT-Kerberos
Tickets mit einer längeren Gültigkeit als
der vorgegebenen zehn Stunden einrichten wollen,
müssen Sie zwei Sachen ändern. Benutzen
Sie das modify_principal von
kadmin, um die maximale
Gültigkeitsdauer für den Prinzipal selbst
und den Prinzipal krbtgt
zu erhöhen.Mit einem Packet-Sniffer können Sie feststellen,
dass Sie sofort nach dem Aufruf von kinit
eine Antwort vom KDC
bekommen – noch bevor Sie überhaupt ein
Passwort eingegeben haben! Das ist in Ordnung:
Das KDC händigt
ein Ticket-Granting-Ticket (TGT)
auf Anfrage aus, da es durch einen vom Passwort
des Benutzers abgeleiteten Schlüssel
geschützt ist. Wenn das Passwort
eingegeben wird, wird es nicht zum KDC
gesendet, sondern zum Entschlüsseln der
Antwort des KDCs benutzt, die
kinit schon erhalten hat.
Wird die Antwort erfolgreich entschlüsselt,
erhält der Benutzer einen Sitzungs-Schlüssel
für die künftige verschlüsselte
Kommunikation mit dem KDC und das
Ticket-Granting-Ticket. Das Ticket-Granting-Ticket
wiederum ist mit dem Schlüssel des KDCs
verschlüsselt. Diese Verschlüsselung ist
für den Benutzer völlig transparent und
erlaubt dem KDC,
die Echtheit jedes einzelnen TGT
zu prüfen.Die Zeit innerhalb des Realms muss synchronisiert
sein. Für die Synchronisation setzen Sie am
besten NTP (siehe
) ein.Wenn Sie OpenSSH verwenden
und Tickets mir einer langen Gültigkeit
(beispielsweise einer Woche) benutzen, setzen Sie die Option
in der Datei
sshd_config auf no.
Ansonsten werden Ihre Tickets gelöscht, wenn Sie
sich abmelden.Host-Prinzipale können ebenfalls Tickets mit
längerer Gültigkeit besitzen. Wenn der
Prinzipal eines Benutzers über ein Ticket verfügt,
das eine Woche gültig ist, das Ticket des
Host-Prinzipals aber nur neun Stunden gültig ist,
funktioniert der Ticket-Cache nicht wie erwartet.
Im Cache befindet sich dann ein abgelaufenes Ticket
des Host-Prinzipals.Wenn Sie mit krb5.dict die
Verwendung schlechter Passwörter verhindern wollen,
geht das nur mit Prinzipalen, denen eine Passwort-Policy
zugewiesen wurde. Die Hilfeseite von
kadmind beschreibt kurz, wie
krb5.dict verwendet wird. Das
Format von krb5.dict ist
einfach: Die Datei enthält pro Zeile ein Wort.
Sie können daher einen symbolischen Link auf
/usr/share/dict/words erstellen.Unterschiede zum MIT-PortDer Hauptunterschied zwischen
MIT-Kerberos
und Heimdal-Kerberos
ist das Kommando kadmin.
Die Befehlssätze des Kommandos (obwohl funktional
gleichwertig) und das verwendete
Protokoll unterscheiden sich in beiden Varianten.
Das KDC lässt sich nur mit
dem kadmin Kommando der passenden
Kerberos-Variante verwalten.Für dieselbe Funktion können auch die
Client-Anwendungen leicht geänderte Kommandozeilenoptionen
besitzen. Folgen Sie bitte der Anleitung auf der
Kerberos-Seite
() des
MITs. Achten Sie besonders auf den
Suchpfad für Anwendungen. Der MIT-Port
wird standardmäßig in /usr/local/
installiert. Wenn die Umgebungsvariable PATH
zuerst die Systemverzeichnisse enthält, werden die
Systemprogramme anstelle der MIT-Programme
ausgeführt.Wenn Sie den MIT-Port
security/krb5 verwenden,
erscheint bei der Anmeldung mit telnetd
und klogind die Fehlermeldung
incorrect permissions on cache file.
Lesen Sie dazu bitte die im Port enthaltene Datei
/usr/local/share/doc/krb5/README.FreeBSD.
Wichtig ist, dass zur Authentifizierung die Binärdatei
login.krb5 verwendet wird, die
für durchgereichte Berechtigungen die Eigentümer
korrekt ändert.Beschränkungen von
KerberosKerberos5BeschränkungenKerberos muss ganzheitlich
verwendet werdenJeder über das Netzwerk angebotetene Dienst
muss mit Kerberos
zusammenarbeiten oder auf anderen Wegen gegen Angriffe
aus dem Netzwerk geschützt sein. Andernfalls
können Berechtigungen gestohlen und wiederverwendet
werden. Es ist beispielsweise nicht sinnvoll, für
Anmeldungen mit rsh und
telnetKerberos
zu benutzen, dagegen aber POP3-Zugriff
auf einen Mail-Server zu erlauben, da POP3
Passwörter im Klartext versendet.Kerberos ist für
Einbenutzer-Systeme gedachtIn Mehrbenutzer-Umgebungen ist
Kerberos unsicherer als in
Einbenutzer-Umgebungen, da die Tickets im für alle
lesbaren Verzeichnis /tmp
gespeichert werden. Wenn ein Rechner von mehreren
Benutzern verwendet wird, ist es möglich, dass
Tickets gestohlen werden.Dieses Problem können Sie lösen, indem Sie mit
der Kommandozeilenoption oder besser
mit der Umgebungsvariablen KRB5CCNAME einen
Ort für die Tickets vorgeben. Diese Vorgehensweise
wird leider selten benutzt. Es reicht, die Tickets
im Heimatverzeichnis eines Benutzers zu speichern und
mit Zugriffsrechten zu schützen.Das KDC ist verwundbarDas KDC muss genauso abgesichert
werden wie die auf ihm befindliche Passwort-Datenbank.
Auf dem KDC dürfen keine anderen
Dienste laufen und der Rechner sollte physikalisch
gesichert sein. Die Gefahr ist groß, da
Kerberos alle Passwörter
mit einem Schlüssel, dem Haupt-Schlüssel,
verschlüsselt. Der Haupt-Schlüssel wiederum
wird in einer Datei auf dem KDC
gespeichert.Ein kompromittierter Haupt-Schlüssel ist nicht
ganz so schlimm wie allgemein angenommen. Der
Haupt-Schlüssel wird nur zum Verschlüsseln
der Passwort-Datenbank und zum Initialisieren des
Zufallsgenerators verwendet. Solange der Zugriff
auf das KDC abgesichert ist, kann
ein Angreifer wenig mit dem Haupt-Schlüssel
anfangen.Wenn das KDC nicht zur Verfügung
steht, vielleicht wegen eines Denial-of-Service Angriffs
oder wegen eines Netzwerkproblems, ist eine Authentifizierung
unmöglich. Damit können die Netzwerk-Dienste
nicht benutzt werden; das KDC ist
also ein optimales Ziel für einen Denial-of-Service
Angriff. Sie können diesem Angriff ausweichen,
indem Sie mehrere KDCs (einen Master
und einen oder mehrere Slaves) verwenden. Der Rückfall
auf ein sekundäres KDC oder
eine andere Authentifizierungs-Methode (dazu ist
PAM bestens geeignet) muss sorgfältig
eingerichtet werden.Mängel von
KerberosMit Kerberos können
sich Benutzer, Rechner und Dienste gegenseitig
authentifizieren. Allerdings existiert kein Mechanismus,
der das KDC gegenüber Benutzern,
Rechnern oder Diensten authentifiziert. Ein verändertes
kinit könnte beispielsweise alle
Benutzernamen und Passwörter abfangen. Die von
veränderten Programmen ausgehende Gefahr können
Sie lindern, indem Sie die Integrität von Dateien
mit Werkzeugen wie
security/tripwire
prüfen.Weiterführende DokumentationKerberos5weiterführende DokumentationThe
Kerberos FAQDesigning
an Authentication System: a Dialogue in Four
ScenesRFC 1510,
The Kerberos Network
Authentication Service (V5)MIT
Kerberos-SeiteHeimdal
Kerberos-SeiteGaryPalmerBeigetragen von AlexNashFirewallsFirewallSicherheitFirewallsFirewalls sind sehr wichtig für Leute, die mit dem Internet
verbunden sind. Weiterhin halten sie Einzug in private Netzwerke, um
dort die Sicherheit zu verbessern. Dieser Abschnitt erklärt,
was Firewalls sind, wie sie benutzt werden und wie man die
Möglichkeiten von FreeBSD benutzen kann, um eine Firewall zu
implementieren.Es wird oft gedacht, dass eine Firewall zwischen dem internen
Netzwerk und dem weiten, schlechten Internet
alle Sicherheitsprobleme löst. Eine Firewall kann die Sicherheit
erhöhen, doch eine schlecht aufgesetzte Firewall ist ein
größeres Sicherheitsrisiko als gar keine Firewall. Eine
Firewall ist nur eine weitere Sicherheitsschicht, sie verhindert
aber nicht, dass ein wirklich entschlossener Cracker in
Ihr internes Netz eindringt. Wenn Sie Ihre interne Sicherheit
vernachlässigen, weil Sie Ihre Firewall für undurchdringlich
halten, machen Sie den Crackern die Arbeit leichter.Was ist eine Firewall?Auf dem Internet sind momentan zwei Arten von Firewalls
gebräuchlich. Die erste Art ist ein
Paketfilter, in dem ein Kernel auf einer
Maschine mit mehreren Netzwerkkarten auf Grund von Regeln
entscheidet, ob er ein Paket weiterleitet oder nicht. Der zweite
Typ sind Proxy-Server, die auf Dæmonen
angewiesen sind. Die Dæmonen authentifizieren Benutzer
und leiten Pakete weiter, das heißt sie können auf
Maschinen mit mehreren Netzwerkverbindungen laufen, auf denen
das Weiterleiten von Paketen durch den Kernel ausgeschaltet ist.Manchmal werden beide Arten einer Firewall kombiniert und es
ist nur einer besonderen Maschine, die
Bastion Host genannt wird, erlaubt, Pakete
in das interne Netzwerk über einen Paketfilter zu schicken.
Auf dem Bastion Host laufen Proxy-Dienste, die im Allgemeinen
sicherer als normale Authentifizierungsmechanismen sind.FreeBSD besitzt einen Kernel-Paketfilter (IPFW), der im Rest
dieses Abschnitts behandelt wird. Proxy-Server können
mithilfe Software Dritter auf FreeBSD eingerichtet werden.
Da es so viele unterschiedliche Proxy-Server gibt, können
wir sie nicht in diesem Abschnitt besprechen.PaketfilterEin Router ist eine Maschine, die Pakete zwischen zwei oder
mehr Netzwerken weiterleitet. Ein Paketfilter ist ein spezieller
Router, der mit einem Regelwerk entscheidet, ob er Pakete
weiterleitet. Um den Filter zu aktivieren, müssen
Sie zuerst die Regeln definieren, die festlegen, ob ein
Paket weitergeleitet wird oder nicht.Um zu entscheiden, ob ein Paket weitergeleitet wird, sucht
die Firewall eine Regel, die auf den Inhalt des Paketheaders
passt. Wenn eine passende Regel gefunden wurde, wird die Aktion
der Regel ausgeführt. Die Aktion kann das Paket blockieren,
weiterleiten oder auch dem Sender eine ICMP-Nachricht schicken.
Die Regeln werden der Reihenfolge nach durchsucht und nur die
erste passende Regel wird angewandt. Daher wird auch von einer
Regelkette gesprochen.Die Kriterien, nach denen Sie ein Paket spezifizieren
können, hängen von der eingesetzten Software ab.
Typischerweise können Sie Pakete nach der Quell IP-Adresse,
der Ziel IP-Adresse, dem Quellport, dem Zielport (bei Protokollen,
die diese unterscheiden) oder dem Pakettyp (UDP, TCP, ICMP)
unterscheiden.Proxy-ServerAuf Proxy-Servern werden die normalen Systemdienste,
wie telnetd
oder ftpd,
durch besondere Server ersetzt. Diese Server werden
Proxy-Server genannt, da sie normalerweise
nur weitergehende Verbindungen erlauben
(proxy engl. für
Stellvertreter). Zum Beispiel können Sie auf Ihrer
Firewall einen Proxy-Server für
telnet laufen lassen, der Verbindungen
aus dem Internet erlaubt. Ein Authentifizierungsmechanismus
auf dem Proxy-Server erlaubt dann den Zugriff auf Ihr
internes Netzwerk. Für den umgekehrten Weg können Sie
natürlich auch Proxy-Server einsetzen.Proxy-Server sind in aller Regel sicherer als normale Server
und bieten oft eine Reihe von Authentifizierungsmechanismen. Dazu
gehören Einmalpasswort Systeme, bei denen das zum
Anmelden verwendete Passwort sofort ungültig wird und
nicht zu einer weiteren Anmeldung benutzt werden kann, auch wenn
es abgehört wurde. Da Proxy-Server den Benutzern keinen
Zugang zu dem System geben, wird es für einen Angreifer
sehr schwer, Hintertüren zur Umgehung Ihres Sicherheitssystems
zu installieren.Mit Proxy-Servern lassen sich die Zugriffe meist noch weiter
beschränken. Der Zugriff kann auf bestimmte Rechner
eingeschränkt werden und oft ist es möglich,
festzulegen, welcher Benutzer mit welcher Zielmaschine kommunizieren
darf. Welche Möglichkeiten Sie haben, hängt stark
von der Proxy-Software ab, die Sie einsetzen.Was kann ich mit IPFW machen?ipfwIPFW, das von FreeBSD zur Verfügung gestellt wird,
ist ein Paketfilter und ein Accounting-System, das im Kernel
läuft und mit &man.ipfw.8; ein Werkzeug im Userland
zur Verfügung stellt. Beide Teile zusammen erlauben es Ihnen,
die Regeln für Routing Entscheidungen im Kernel zu definieren
oder abzufragen.In IPFW gibt es zwei zusammenhängende Teile: Die
Firewall filtert Pakete und das IP-Accounting-Modul
überwacht mit einem Regelwerk, ähnlich dem der
Firewall, die Nutzung Ihres Routers.
Damit können Sie zum Beispiel sehen, wie viel Verkehr auf
Ihrem Router von einer bestimmten Maschine kommt oder wie viel
WWW (World Wide Web) Verkehr durch Ihren Router geht.Durch das Design von IPFW können Sie IPFW auch auf
Maschinen, die keine Router sind, einsetzen und einen Paketfilter
für eingehende und ausgehende Verbindungen konfigurieren.
Dies ist ein Spezialfall der normalen Verwendung von IPFW
und daher werden dieselben Kommandos und Techniken benutzt.Aktivieren von IPFWipfwaktivierenDer größte Teil des IPFW-Systems befindet sich im
Kernel, daher müssen Sie die Konfigurationsdatei des Kernels
editieren und anschließend den Kernel neu übersetzen.
Das Kapitel Konfiguration des
FreeBSD-Kernels beschreibt, wie Sie dazu
vorzugehen haben.In der Voreinstellung verbietet IPFW
alle Verbindungen. Sie
haben sich ausgesperrt, wenn Sie den Kernel mit
Firewall-Unterstützung starten und keine eigenen Regeln,
die einen Zugriff erlauben, definiert haben. Zum ersten
Überprüfen der Firewall-Funktion können Sie die
Firewall öffnen, indem Sie
firewall_type=open in
/etc/rc.conf eintragen und danach, wenn
alles funktioniert hat, die Regeln in
/etc/rc.firewall anpassen. Um zu vermeiden,
dass Sie sich aus Versehen aussperren, konfigurieren Sie die
Firewall nicht über eine
SSH-Verbindung sondern an der Konsole.
Sie können auch in der Voreinstellung alle Verbindungen
zulassen, indem Sie die Option
IPFIREWALL_DEFAULT_TO_ACCEPT in die
Kernelkonfiguration aufnehmen.Momentan gibt es vier Optionen in der Kernelkonfiguration, die
IPFW betreffen:options IPFIREWALLFügt den Paketfilter-Code in den Kernel ein.options IPFIREWALL_VERBOSEAktiviert das Loggen von Paketen mit &man.syslogd.8;.
Ohne diese Option werden keine Pakete geloggt, auch wenn Sie
in den Filterregeln das Loggen angeben.options IPFIREWALL_VERBOSE_LIMIT=10Begrenzt die Anzahl der über &man.syslogd.8;
geschriebenen Einträge. Die Option ist in Umgebungen
mit hoher Aktivität nützlich, in denen Sie die
Firewall Aktivitäten loggen möchten, aber einem
Angreifer nicht die Möglichkeit eines Denial-of-Service
Angriffs durch das Überlasten von syslog geben
wollen.Erreicht eine Regel der Regelkette die angegebene Grenze,
so wird für diesen Eintrag das Loggen abgestellt. Um
das Loggen von Paketen wieder zu aktivieren, müssen Sie
den Zähler mit &man.ipfw.8; zurücksetzen:&prompt.root; ipfw zero 4500Hier ist 4500 die Nummer der Regel in
der Regelkette, für die Sie das Log weiterführen
möchten.options IPFIREWALL_DEFAULT_TO_ACCEPTÄndert die Voreinstellung der Firewall, sodass alle
Verbindungen erlaubt anstatt verboten sind. Diese
Einstellung vermeidet, dass Sie sich aussperren, wenn Sie
einen Kernel mit IPFIREWALL und ohne
eigene Regeln starten. Wenn Sie &man.ipfw.8; wie einen
Filter zum Lösen spezieller Probleme bei deren
Auftreten verwenden, kann diese Option sehr nützlich
sein. Diese Einstellung öffnet die Firewall und
verändert ihre Arbeitsweise. Gehen Sie daher sehr
vorsichtig mit ihr um.Frühere Versionen von FreeBSD stellten die Option
IPFIREWALL_ACCT zur Verfügung. Die Option
ist mittlerweile überholt, da der Firewall Code automatisch
Accounting Möglichkeiten bereitstellt.Konfiguration von IPFWipfwKonfigurationMit &man.ipfw.8; konfigurieren Sie die IPFW-Software. Die
Syntax dieses Kommandos sieht ziemlich kompliziert aus, doch wenn
Sie einmal den Aufbau der Kommandos verstanden haben, ist es sehr
einfach.Das Kommando unterstützt vier verschiedene Operationen:
Hinzufügen/Löschen, Anzeigen und Zurücksetzen von
Regeln, sowie das Zurücksetzen von Paketzählern. Die
Operationen Hinzufügen/Löschen werden genutzt, um die
Regeln, nach denen Pakete akzeptiert, blockiert oder geloggt
werden, zu erstellen. Die Operation Anzeigen zeigt die Regelkette
und die Paketzähler an. Die Operation Zurücksetzen
löscht alle Regeln der Regelkette. Mit der letzten Operation
können Sie ein oder mehrere Paketzähler auf den Wert Null
zurücksetzen.Ändern der IPFW-RegelnDie Syntax für diese Operation lautet:
ipfw-NKommandoindexAktionlogProtokollAdressenOptionenDieser Aufruf unterstützt eine Option:-NLöst Adressen und Namen von Diensten in der
Ausgabe auf.Kommando kann auf die kürzeste
eindeutige Länge reduziert werden. Gültig sind die
Werte:addFügt einen Eintrag in die Firewall/Accounting
Regelkette ein.deleteLöscht einen Eintrag in der Firewall/Accounting
Regelkette.Frühere Versionen von IPFW verfügten über
getrennte Firewall- und Accounting-Einträge in der Regelkette.
In der jetzigen Version steht das Accounting für jeden
Eintrag in der Firewall-Regelkette zur Verfügung.Wenn ein Wert für index angegeben
ist, so wird die Regel an entsprechender Stelle in die Regelkette
eingefügt. Ansonsten wird die Regel an das Ende der Kette
gestellt, wobei der Index um 100 größer ist als der
Index der letzten Regel (die voreingestellte letzte Regel mit der
Nummer 65535 wird in diesem Verfahren nicht
berücksichtigt).Wenn der Kernel mit IPFIREWALL_VERBOSE
erstellt wurde, gibt die Regel mit der Option
log Meldungen auf der Systemkonsole
aus.Gültige Werte für Aktion
sind:rejectBlockiert das Paket und schickt dem Sender die
ICMP-Nachricht host or port unreachable.allowLeitet das Paket normal weiter. Zulässige Aliase
sind pass, permit
und accept.denyBlockiert das Paket und benachrichtigt den Sender
nicht mit einer ICMP-Nachricht. Dem
Sender kommt es so vor, als hätte das Paket sein Ziel
nie erreicht.countErhöht den Paketzähler für diese Regel,
trifft aber keine Entscheidung wie mit dem Paket zu
verfahren ist, das heißt die nächste Regel der
Kette wird auf das Paket angewendet.Es ist möglich, die kürzeste eindeutige Form der
Aktion anzugeben.Für Protokoll können die
folgenden Werte angegeben werden:allTrifft auf jedes IP-Paket zu.icmpPasst auf jedes ICMP-Paket.tcpPasst auf jedes TCP-Paket.udpTrifft auf jedes UDP-Paket zu.Die Syntax für Adresse
lautet:fromAdresse/MaskePorttoAdresse/MaskePortvia InterfacePort können Sie nur angeben,
wenn das Protokoll auch Ports
unterstützt (UDP und TCP). ist optional und gibt die IP-Adresse,
den Domainnamen eines lokalen Interfaces oder den Namen des
Interfaces (z.B. ed0) an und trifft nur
auf Pakete zu, die durch dieses Interface gehen. Die Nummern der
Interfaces können mit einem Platzhalter angegeben werden,
ppp* trifft auf alle Kernel-PPP Interfaces
zu.Adresse/Maske können Sie wie
folgt angeben:
Adresse
oder
Adresse/Bitmaske
oder
Adresse:MaskenmusterAnstelle einer IP-Adresse können Sie einen gültigen
Hostnamen angeben.
ist eine
dezimale Zahl, die angibt, wie viele Bits in der Adressmaske
gesetzt werden sollen. Die Angabe
192.216.222.1/24 erstellt
eine Maske, die auf jede Adresse des Klasse C Subnetzes
192.216.222 zutrifft.
Das
wird mit der gegebenen IP-Adresse logisch UND verknüpft.
Das Schlüsselwort any trifft auf jede
IP-Adresse zu.Die Portnummern werden wie folgt angegeben:
Port,Port,Port…
Dies gibt entweder einen Port oder eine Liste von Ports an.
Port-Port
Gibt einen Portbereich an. Sie können einen einzelnen
Bereich mit einer Liste kombinieren, müssen aber den Bereich
immer zuerst angeben.Die verfügbaren Optionen
sind:fragTrifft auf Pakete zu, die nicht das erste Fragment
eines Datagrams sind.inTrifft auf eingehende Pakete zu.outTrifft auf ausgehende Pakete zu.ipoptions specTrifft auf alle IP-Pakete zu, deren Header die in
spec angegebenen, durch Kommata
separierte, Optionen enthalten. Die unterstützten
IP-Optionen sind: ssrr (strict source
route), lsrr (loose source route),
rr (record packet route), und
ts (time stamp). Ein führendes
! trifft auf alle Pakete zu, die diese
Option nicht gesetzt haben.establishedTrifft auf alle Pakete zu, die zu einer schon
bestehenden TCP-Verbindung gehören, das heißt
das RST- oder ACK-Bit ist gesetzt. Sie können den
Durchsatz der Firewall verbessern, wenn Sie die
established Regeln soweit wie
möglich an den Anfang der Regelkette stellen.setupPasst auf alle Pakete, die versuchen eine
TCP-Verbindung aufzubauen, das heißt das SYN-Bit ist
gesetzt und das ACK-Bit ist nicht gesetzt.tcpflags flagsTrifft auf alle Pakete zu, die im TCP-Header eine der
durch Kommata getrennten Option gesetzt haben. Die
gültigen Optionen sind: fin,
syn, rst,
psh, ack und
urg. Mit einem führenden
! kann die Abwesenheit einer Option
angegeben werden.icmptypes typesTrifft auf ICMP-Pakete vom Typ
types. Hier kann eine
Kommata separierte Aufzählung von Bereichen oder
einzelnen Typen angegeben werden. Gebräuchliche Typen
sind: 0 echo reply (ping reply),
3 destination unreachable,
5 redirect, 8 echo
request (ping request) und 11 time
exceeded, das die Überschreitung der TTL angibt und
zum Beispiel von &man.traceroute.8; genutzt wird.Anzeigen der IPFW-RegelnDie Syntax für dieses Kommando lautet:
ipfw-a-c-d-e-t-N-SlistSieben Optionen sind für diese Form gültig:-aZeigt die Paketzähler zu den Regeln an. Diese
Option ist die einzige Möglichkeit, die Zähler zu
sehen.-cZeigt die Regeln in einer kompakten
Darstellung an.-dZeigt zusätzlich zu den statischen Regeln
die dynamischen Regeln an.-eZeigt auch abgelaufene dynamische Regeln an, wenn
die Option zusammen mit angegeben
wird.-tZeigt die Zeit, zu der die Regel zuletzt aktiviert
wurde. Die Syntax dieser Ausgabe ist nicht kompatibel mit
der Eingabesyntax von &man.ipfw.8;.-NVersucht Adressen und Namen von Diensten
aufzulösen.-SZeigt den Regelsatz an, zu dem die Regel gehört.
Inaktive Regeln werden ohne diesen Schalter nicht
angezeigt.Zurücksetzen der IPFW-RegelnDie Regeln setzen Sie wie folgt zurück:
ipfwflushDamit werden alle Regeln der Regelkette, mit Ausnahme der
Vorgaberegel 65535 gelöscht. Seien Sie
vorsichtig, wenn Sie die Regeln zurücksetzen. Die Vorgabe
für die Regel 65535 ist es, alle Pakete
zu blockieren, das heißt, das System ist solange vom
Netzwerk abgeschnitten, bis wieder neue Regeln in die Kette
eingefügt werden.Zurücksetzen der PaketzählerUm einen oder mehrere Paketzähler zurückzusetzen,
verwenden Sie folgende Syntax:
ipfwzeroindexWenn Sie das Argument index nicht
angeben, werden alle Paketzähler zurückgesetzt. Wenn
Sie das Argument angeben, wird nur der Zähler der
angegebenen Regel zurückgesetzt.Beispiel für ipfw
KommandozeilenDas folgende Kommando blockiert alle Pakete, die von dem Host
evil.crackers.org auf den Telnet-Port
von nice.people.org gehen:&prompt.root; ipfw add deny tcp from evil.crackers.org to nice.people.org 23Das nächste Beispiel verbietet jeden IP-Verkehr von dem
ganzen crackers.org Klasse C
Netzwerk zu der Maschine nice.people.org:&prompt.root; ipfw add deny log tcp from evil.crackers.org/24 to nice.people.orgWenn Sie X-Sitzungen zu Ihrem internen Netzwerk, einem Subnetz
eines C Klasse Netzwerkes, verbieten wollen, wenden Sie das
folgende Kommando an:&prompt.root; ipfw add deny tcp from any to my.org/28 6000 setupUm die Accounting Einträge zu sehen:
&prompt.root; ipfw -a list
oder kürzer
&prompt.root; ipfw -a lDen Zeitpunkt, an dem eine Regel das letzte Mal aktiviert
wurde, sehen Sie mit:&prompt.root; ipfw -at lAufbau einer Firewall mit PaketfilternBeachten Sie bitte, dass die folgenden Vorschläge
wirklich nur Vorschläge sind. Die Anforderungen jeder
Firewall sind verschieden und wir können Ihnen wirklich
nicht sagen, wie Sie Ihre maßgeschneiderte Firewall einrichten
müssen.Wenn Sie Ihre Firewall außerhalb eines kontrollierten
Testumfelds aufbauen, empfehlen wir Ihnen dringend, das Loggen der
Regeln im Kernel zu aktivieren und Regeln zu verwenden, die loggen.
Das macht es Ihnen leichter, Fehler zu finden und diese ohne
große Unterbrechungen zu beheben. Auch nachdem Sie die
Firewall aufgesetzt haben, empfehlen wir Ihnen, die `deny'-Regeln
zu loggen. Dies macht es leichter, Angriffen nachzugehen und das
Regelwerk Ihrer Firewall zu ändern, wenn sich die Anforderungen
einmal ändern.Wenn Sie Pakete der accept-Regel loggen,
denken Sie bitte daran, dass Sie leicht sehr
große Datenmengen erzeugen können, da jedes
durchgelassene Paket einen Eintrag im Log generiert. Es kann
vorkommen, das große FTP oder HTTP Übertragungen das
System langsamer machen. Weiterhin wird für jedes der
betroffenen Pakete die Latenzzeit erhöht, da von Seiten des
Kernels mehr Arbeit zum Weiterleiten des Paketes erforderlich ist.
Da alle Daten auf die Platte ausgeschrieben werden wird
syslogd auch mehr Prozessorzeit
beanspruchen und es kann leicht passieren, dass die
Partition, die /var/log enthält voll
läuft.Sie sollten Ihre Firewall aus
/etc/rc.conf.local oder
/etc/rc.conf aktivieren. Die entsprechende
Manualpage zeigt Ihnen, welche Einstellungen Sie vornehmen
müssen und zeigt einige vorgegebene Firewall-Konfigurationen.
Wenn Sie keine der Vorgaben verwenden, können Sie Ihre
Regelkette mit ipfw list in eine Datei ausgeben
und diese Datei in /etc/rc.conf angeben. Wenn
sie weder /etc/rc.conf.local oder
/etc/rc.conf benutzen, um Ihre Firewall zu
aktivieren, stellen Sie bitte sicher, dass die Firewall
aktiviert ist, bevor die IP-Interfaces konfiguriert werden.Als nächstes müssen Sie festlegen, was Ihre Firewall
machen soll. Das wird sehr stark davon abhängen welche
Zugriffe Sie von außen auf Ihr Netzwerk erlauben wollen und
welche Zugriffe von innen nach außen erlaubt sein sollen.
Einige gebräuchliche Regeln sind:Blockieren Sie jeden einkommenden Zugriff auf Ports unter
1024 für TCP. Dort befinden sich die meisten der
sicherheitsrelevanten Dienste wie finger, SMTP (Post) und
telnet.Blockieren Sie jeden einkommenden
UDP-Verkehr. Es gibt wenige nützliche UDP-Dienste und
die, die nützlich sind, stellen meist eine Bedrohung der
Sicherheit dar (z.B. die RPC- und NFS-Protokolle von Sun).
Dies bringt allerdings auch Nachteile mit sich. Da UDP ein
verbindungsloses Protokoll ist, verbieten Sie auch die
Antworten auf ausgehende UDP-Pakete, wenn Sie eingehende
UDP-Verbindungen blockieren. Dies kann zum Beispiel Probleme
für Anwender des internen Netzwerks hervorrufen, wenn
diese einen externen Archie-Server (prospero) verwenden. Wenn
Sie den Zugriff auf Archie erlauben wollen, müssen Sie
Pakete von den Ports 191 und 1525 zu jedem internen UDP-Port
durch Ihre Firewall lassen. Ein anderer Dienst, den Sie
vielleicht erlauben wollen, ist ntp,
der vom Port 123 ausgeht.Verbieten Sie Verkehr von außen zum Port 6000. Der
Port 6000 wird für den Zugriff auf X-Server genutzt und
kann eine Bedrohung der Sicherheit darstellen, insbesondere
wenn die Anwender gewohnt sind xhost + zu
benutzen. Tatsächlich kann X einen Bereich von Ports
verwenden, der bei 6000 anfängt. Die Obergrenze ist durch
die Anzahl der Displays, die auf einer Maschine laufen, gegeben.
Laut RFC 1700 (Assigned Numbers) hat der höchst
mögliche Port die Nummer 6063.Überprüfen Sie, welche Ports von internen Servern
(z.B. SQL-Servern) benutzt werden. Da diese normalerweise aus
dem oben angesprochenen Bereich von 1-1024 fallen, ist es
wahrscheinlich gut, diese Ports ebenfalls zu blockieren.Eine Checkliste zum Aufbau einer Firewall ist vom CERT unter
erhältlich.Wie oben schon gesagt, können wir Ihnen nur
Richtlinien geben. Sie müssen selbst
entscheiden, welche Regeln Sie auf Ihrer Firewall einsetzen wollen.
Wir übernehmen keine Verantwortung
dafür, dass jemand in Ihr Netzwerk eindringt, auch wenn
Sie die obigen Ratschläge befolgt haben.IPFW Overhead und OptimierungenViele Leute wollen wissen, wie viel zusätzliche Last IPFW
auf einem System erzeugt. Hauptsächlich hängt dies von
der Art der Regelkette und der Geschwindigkeit des Prozessors ab.
Für die meisten Anwendungen mit einer kleinen Regelkette auf
einem Ethernet ist der Aufwand vernachlässigbar klein. Wenn
Sie genaue Zahlen brauchen, lesen Sie bitte weiter.Die folgenden Messungen wurden auf einem 486-66 mit
2.2.5-STABLE durchgeführt. Obwohl sich IPFW in
späteren FreeBSD-Versionen leicht geändert hat, läuft
es doch mit vergleichbarer Geschwindigkeit. Zur Durchführung
der Messungen wurde in IPFW die verbrauchte Zeit in der Routine
ip_fw_chk gemessen. Die Ergebnisse wurden alle
1000 Pakete auf der Konsole ausgegeben.Zwei Regelsätze mit je 1000 Regeln wurden getestet. Der
erste Regelsatz sollte den schlimmsten Fall durch wiederholte
Anwendung der folgenden Regel demonstrieren:&prompt.root; ipfw add deny tcp from any to any 55555Da ein Großteil der Routine, die die Pakete
überprüft, durchlaufen werden muss, bevor
entschieden werden kann, ob das Paket wegen der Portnummer nicht
auf die Regel passt, wird mit dieser Regel der schlimmste Fall gut
simuliert. Nach 999 Wiederholungen dieser Regel folgte die Regel
allow ip from any to any.Der zweite Regelsatz wurde so entworfen, dass die
Überprüfung der Regel schnell abgeschlossen werden
kann:&prompt.root; ipfw add deny ip from 1.2.3.4 to 1.2.3.4Die Regel kann aufgrund einer nicht passenden IP-Adresse sehr
schnell verlassen werden. Nach 999 Wiederholungen dieser Regel
folgte wie im ersten Fall die Regel allow ip from any to
any.Im ersten Fall betrug der zusätzliche Aufwand 2,703 ms pro
Paket also ungefähr 2,7 µs pro Regel. Damit könnten
maximal ungefähr 370 Pakete pro Sekunde verarbeitet werden.
Mit einem 10 Mbps Ethernet und Paketen, die ungefähr 1500
Bytes groß sind, entspricht dies einer Ausnutzung von 55% der zur
Verfügung stehenden Bandbreite.Im letzten Fall wurde jedes Paket in 1,172 ms abgearbeitet, was
ungefähr 1,2 µs pro Regel entspricht. In diesem Fall
könnten maximal 853 Pakete pro Sekunde verarbeitet werden, was
die Bandbreite eines 10 Mbps Ethernet vollständig
ausnutzt.Die große Anzahl und die Beschaffenheit der Regeln in den
Beispielen entsprechen nicht der Wirklichkeit. Die Regeln dienten
nur der Messung der Geschwindigkeit. Wenn Sie eine effiziente
Regelkette aufbauen wollen, sollten Sie die folgenden
Ratschläge berücksichtigen:Setzen Sie eine established Regel so
früh wie möglich in die Regelkette, um den
Großteil des TCP Verkehrs abzudecken. Vor dieser Regel
sollten Sie keine allow tcp Regeln stehen
haben.Plazieren Sie häufig benutzte Regeln vor selten
benutzten Regeln, ohne dabei den Sinn der Regelkette zu
ändern. Welche Regeln häufig durchlaufen werden,
können Sie den Paketzählern mit ipfw
-a l entnehmen.OpenSSLSicherheitOpenSSLOpenSSLDas OpenSSL-Toolkit ist seit FreeBSD 4.0 Teil des Basissystems.
OpenSSL stellt eine
universale Kryptographie Bibliothek sowie die Protokolle Secure
Sockets Layer v2/v3 (SSLv2/SSLv3) und Transport Layer Security v1
(TLSv1) zur Verfügung.Einer der Algorithmen, namentlich IDEA, in OpenSSL ist durch
Patente in den USA und anderswo geschützt und daher nicht frei
verfügbar. IDEA ist Teil des Quellcodes von OpenSSL wird aber
in der Voreinstellung nicht kompiliert. Wenn Sie den Algorithmus
benutzen wollen und die Lizenzbedingungen erfüllen, können
Sie MAKE_IDEA in
/etc/make.conf aktivieren und das System mit
make world neu bauen.Der RSA-Algorithmus ist heute in den USA und anderen Ländern
frei verfügbar. Früher wurde er ebenfalls durch ein Patent
geschützt.OpenSSLInstallationInstallation des QuellcodesOpenSSL ist Teil der src-crypto und
src-secureCVSup-Kollektionen. Mehr Informationen
über die Erhältlichkeit und das Aktualisieren des FreeBSD
Quellcodes erhalten Sie im Abschnitt
Bezugsquellen für FreeBSD.NikClaytonnik@FreeBSD.orgGeschrieben von VPNs mit IPsecDieser Abschnitt beschreibt, wie Sie mit FreeBSD-Gateways
ein Virtual-Private-Network
(VPN) einrichten. Als Beispiel wird ein
VPN zwischen zwei Netzen verwendet,
die über das Internet miteinander verbunden sind.Hiten M.Pandyahmp@FreeBSD.orgGeschrieben von IPsec GrundlagenDieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten
und damit FreeBSD-Systeme und µsoft.windows; 2000/XP Systeme
sicher miteinander verbinden. Um IPsec einzurichten,
sollten Sie einen neuen Kernel erzeugen können (siehe
).IPsec ist ein Protokoll, das auf dem Internet-Protokoll
(IP) aufbaut. Mit IPsec können mehrere Systeme
geschützt miteinander kommunizieren. Das in
FreeBSD realisierte IPsec-Protokoll baut auf der
KAME-Implementierung
auf und unterstützt sowohl IPv4 als auch IPv6.FreeBSD 5.X enthält eine von Hardware
beschleunigte Variante des IPsec-Protokolls. Diese
Variante wurde von OpenBSD übernommen und wird
Fast-IPsec genannt. Das
&man.crypto.4;-Subsystem arbeitet mit Kryptographie-Hardware
zusammen, die IPsec beschleunigt. Das Subsystem
ist neu und bietet noch nicht alle Funktionen, die
KAME-IPsec bietet. Wenn Sie die Hardware-Beschleunigung
nutzen wollen, fügen Sie folgende Zeile der
Kernelkonfiguration hinzu:options FAST_IPSEC # new IPsec (cannot define w/ IPSEC)Momentan können Sie Fast-IPsec
nicht zusammen mit KAME-IPsec benutzen. Weiteres zu
Fast-IPsec erfahren Sie in der
Hilfeseite &man.fast.ipsec.4;.IPsec besteht wiederum aus zwei Protokollen:Encapsulated Security Payload (ESP)
verschlüsselt IP-Pakete mit einem symmetrischen Verfahren
(beispielsweise Blowfish oder 3DES). Damit werden
die Pakete vor Manipulationen Dritter geschützt.Der Authentication Header (AH)
enthät eine kryptographische Prüsumme,
die sicher stellt, dass ein IP-Paket nicht verändert
wurde. Der Authentication-Header folgt nach dem
normalen IP-Header und erlaubt dem Empfänger
eines IP-Paketes, dessen Integrität zu
prüfen.ESP und AH
können, je nach Situation, zusammen oder einzeln
verwendet werden.IPsec kann in zwei Modi betrieben werden: Der
Transport-Modus verschlüsselt
die Daten zwischen zwei Systemen. Der
Tunnel-Modus verbindet zwei
Subnetze miteinander. Durch einen Tunnel können
dann beispielsweise verschlüsselte Daten übertragen
werden. Ein Tunnel wird auch als Virtual-Private-Network (VPN)
bezeichnet. Detaillierte Informationen über
das IPsec-Subsystem von FreeBSD enthält die
Hilfeseite &man.ipsec.4;.Die folgenden Optionen in der Kernelkonfiguration
aktivieren IPsec:options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)Wenn Sie zur Fehlersuche im IPsec-Subsystem
Unterstützung wünschen, sollten Sie die
folgende Option ebenfalls aktivieren:options IPSEC_DEBUG #debug for IP securityWas ist ein VPN?Es gibt keinen Standard, der festlegt, was ein
Virtual-Private-Network ist. VPNs können mit
verschiedenen Techniken, die jeweils eigene Vor- und
Nachteile besitzen, implementiert werden.
Dieser Abschnitt stellt eine Möglichkeit vor,
ein VPN aufzubauen.Szenario I: Zwei Netzwerke verbunden über
das InternetDieses Szenario hat die folgenden Vorausetzungen:Es müssen zwei Netzwerke vorhanden sein.Beide Netzwerke müssen intern IP benutzen.Beide Netzwerke sind über einen FreeBSD-Gateway
mit dem Internet verbunden.Der Gateway jedes Netzwerks besitzt mindestens
eine öffentliche IP-Adresse.Die intern verwendeten IP-Adressen können
private oder öffentliche Adressen sein.
Der Gateway kann, wenn nötig, IP-Adressen mit
NAT umschreiben.Die IP-Adressen der internen Netzwerke
dürfen nicht überlappen.
Mit NAT ließe sich diese Anforderung zwar umgehen, doch
wäre die Konfiguration und Pflege des resultierenden
Netzwerks zu aufwändig.Wenn die zu verbindenden Netzwerke intern dieselben
IP-Adressen benutzen (beispielsweise
192.168.1.x), müssen
einem der Netzwerke neue IP-Adressen zugewiesen werden.Die Netzwerktopologie sieht wie folgt aus:Netzwerk #1 [ Interne Rechner ] Privates Netz, 192.168.1.2-254
[ Win9x/NT/2K ]
[ UNIX ]
|
|
.---[fxp1]---. Private IP, 192.168.1.1
| FreeBSD |
`---[fxp0]---' Öffentliche IP, A.B.C.D
|
|
-=-=- Internet -=-=-
|
|
.---[fxp0]---. Öffentliche IP, W.X.Y.Z
| FreeBSD |
`---[fxp1]---' Private IP, 192.168.2.1
|
|
Netzwerk #2 [ Interne Rechner ]
[ Win9x/NT/2K ] Privates Netz, 192.168.2.2-254
[ UNIX ]Beachten Sie die beiden öffentlichen IP-Adressen.
Im Folgenden werden sie durch Buchstaben (als Platzhalter)
gekennzeichnet. Setzen Sie hierfür Ihre eigenen
öffentlichen IP-Adressen ein. Beide Gateways
besitzen die interne Adresse
x.x.x.1 und beide
Netzwerke besitzen unterschiedliche private IP-Adressen:
192.168.1.x und
192.168.2.x. Die Default-Route
aller internen Systeme ist jeweils die Gateway-Maschine
(x.x.x.1).Aus der Sicht der Systeme sollen jetzt beide
Netzwerke wie über einen Router, der in diesem
Fall etwas langsamer ist, verbunden werden.Auf dem Rechner 192.168.1.20
soll also beispielsweise der folgende Befehl funktionieren:ping 192.168.2.34&windows;-Systeme sollen die Systeme auf dem anderen
Netzwerk erkennen und Shares sollen funktionieren. Alles
soll genauso wie in lokalen Netzwerken funktionieren.Zusätzlich soll die Kommunikation zwischen beiden
Netzwerken noch verschlüsselt werden.Das VPN wird in mehreren Schritten aufgebaut:Zuerst wird eine virtuelle Verbindung zwischen
beiden Netzwerken über das Internet eingerichtet.
Die virtuelle Verbindung können Sie mit Werkzeugen
wie &man.ping.8; prüfen.Danach wird eine Sicherheitsrichtlinie
(Security-Policy) festgelegt,
die automatisch den Datenverkehr zwischen beiden
Netzwerken verschlüsselt und entschlüsselt.
Mit Werkzeugen wie &man.tcpdump.1; können Sie
überprüfen, dass die Daten tatsächlich
verschlüsselt werden.Wenn sich &windows;-Systeme im VPN gegenseitig
erkennen sollen, so sind noch weitere
Konfigurationsschritte notwendig, die aber nicht
in diesem Abschnitt beschrieben werden.Schritt 1: Die virtuelle Verbindung einrichtenNehmen wir an, sie wollten von der Gateway-Maschine
im Netzwerk #1 (öffentliche IP-Adresse
A.B.C.D, private IP-Adresse
192.168.1.1) das Kommando
ping 192.168.2.1 absetzen.
192.168.2.1 ist die private
IP-Adresse des Systems W.X.Y.Z
im Netzwerk #2. Welche Voraussetzungen müssen
erfüllt sein, damit der Befehl funktioniert?Die Gateway-Maschine muss das System
192.168.2.1 erreichen
können. Das heißt, eine Route zu diesem
System muss existieren.Private IP-Adressen, wie der Bereich
192.168.x, sollten im
Internet nicht verwendet werden. Jedes Paket zu
192.168.2.1 muss daher
in ein anderes Paket gepackt werden, das von
A.B.C.D kommt und
zu W.X.Y.Z geschickt
wird. Das erneute Verpacken der Pakete wird als
Kapselung bezeichnet.Wenn das Paket W.X.Y.Z
erreicht, muss es dort ausgepackt und an
192.168.2.1 ausgeliefert
werden.Sie können sich diese Prozedur so vorstellen,
dass ein Tunnel zwischen beiden Netzwerken existiert.
Die beiden Tunnel-Enden besitzen die IP-Adressen
A.B.C.D und
W.X.Y.Z. Der Tunnel
muss zudem Verkehr zwischen den privaten IP-Adressen
erlauben und transportiert so Daten zwischen privaten
IP-Adressen über das Internet.Unter FreeBSD wird der Tunnel mit
gif-Geräten (generic
interface) erstellt. Auf jedem Gateway
muss das gif-Gerät mit
vier IP-Adressen eingerichtet werden: Zwei öffentliche
IP-Adressen und zwei private IP-Adressen.Die gif-Geräte werden vom
Kernel bereitgestellt und müssen in der
Kernelkonfigurationsdatei auf beiden Maschinen angegeben
werden:pseudo-device gifWie gewöhnlich müssen Sie danach einen
neuen Kernel erstellen, installieren und das System
neu starten.Der Tunnel wird in zwei Schritten aufgebaut. Mit
&man.gifconfig.8; werden zuerst die öffentlichen
IP-Adressen konfiguriert. Anschließend werden
die privaten IP-Adressen mit &man.ifconfig.8; eingerichtet.Auf der Gateway-Maschine im Netzwerk #1 bauen
Sie den Tunnel mit den folgenden Kommandos auf:gifconfig gif0 A.B.C.D W.X.Y.Z
ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffffAuf dem anderen Gateway benutzen Sie dieselben Kommandos,
allerdings mit vertauschten IP-Adressen:gifconfig gif0 W.X.Y.Z A.B.C.D
ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffffDie Konfiguration können Sie anschließend mit
dem folgenden Kommando überprüfen:gifconfig gif0Auf dem Gateway in Netzwerk #1 sollten Sie
beispielsweise die nachstehende Ausgabe erhalten:&prompt.root; gifconfig gif0
gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280
inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff
physical address inet A.B.C.D --> W.X.Y.ZWie Sie sehen, ist ein Tunnel zwischen den IP-Adressen
A.B.C.D und
W.X.Y.Z aufgebaut worden,
der Verkehr zwischen den Adressen
192.168.1.1 und
192.168.2.1 zulässt.Gleichzeitig wurde ein Eintrag in der Routing-Tabelle
erstellt, den Sie sich mit netstat -rn
ansehen können. Auf der Gateway-Maschine in Netzwerk #1
sieht das so aus:&prompt.root; netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
...
192.168.2.1 192.168.1.1 UH 0 0 gif0
...Die Route ist eine Host-Route, wie in der Spalte
Flags angegeben. Das heißt
die beiden Gateways wissen wie sie einander erreichen,
sie kennen allerdings nicht das Netzwerk auf der
anderen Seite. Dieses Problem werden wir gleich
angehen.Wahrscheinlich ist auf beiden Gateways eine Firewall
eingerichtet. Für den VPN-Verkehr muss die Firewall
umgegangen werden. Sie können generell den Verkehr
zwischen beiden Netzwerken erlauben oder Regeln erstellen,
die beide Tunnel-Enden des VPNs voreinander schützen.Der Test des VPNs wird erheblich leichter, wenn Sie
jeden Verkehr zwischen den Tunnel-Enden in der Firewall
erlauben. Wenn Sie auf der Gateway-Maschine &man.ipfw.8;
einsetzen, erlaubt die folgende Regel jeden Verkehr
zwischen den Tunnel-Enden, ohne die anderen Regeln zu
beeinflussen:ipfw add 1 allow ip from any to any via gif0Diese Regel muss offensichtlich auf beiden Gateway-Maschinen
existieren.Damit sollten Sie das Kommando ping
jetzt absetzen können. Auf dem System
192.168.1.1 sollte der
nachstehende Befehl Antworten erhalten:ping 192.168.2.1Denselben Test können Sie auch auf der anderen
Gateway-Maschine ausführen.Allerdings können Sie noch nicht die anderen
internen Maschinen auf den Netzwerken erreichen. Die Ursache
ist das Routing – die Gateway kennen sich zwar
gegenseitig, wissen aber noch nichts von den Netzwerken
hinter dem anderen Gateway.Um die Netzwerke bekannt zu geben, muss auf jeder
Gateway-Maschine noch eine statische Route hinzugefügt
werden. Auf der ersten Gateway-Maschine setzen Sie dazu
das folgende Kommando ab:route add 192.168.2.0 192.168.2.1 netmask 0xffffff00Dies entspricht der Anweisung: Um Rechner
auf dem Netz 192.168.2.0
zu erreichen, schicke die Pakete zum System
192.168.2.1. Auf
dem anderen Gateway muss das analoge Kommando (mit den
IP-Adressen 192.168.1.x)
abgesetzt werden.Damit ist jetzt der IP-Verkehr zwischen beiden
Netzwerken möglich.Zwei Drittel des VPNs zwischen beiden Netzen
ist nun eingerichtet. Es ist virtuell und
es ist ein Netzwerk. Es ist allerdings
noch nicht privat. Dies können Sie
mit &man.ping.8; und &man.tcpdump.1; überprüfen.
Setzen Sie auf dem ersten Gateway den folgenden Befehl ab:tcpdump dst host 192.168.2.1Starten Sie dann, ebenfalls auf dem ersten Gateway, den
folgenden Befehl:ping 192.168.2.1Sie werden die nachstehende Ausgabe erhalten:16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo replyDie ICMP-Nachrichten werden unverschlüsselt
übertragen. Mit der Option
von &man.tcpdump.1; können Sie sich weitere Daten
der Pakete anzeigen lassen.Die Daten sollen aber automatisch verschlüsselt
werden. Wie das geht, wird im nächsten Abschnitt
erläutert.Zusammenfassung:Richten sie in beiden Kerneln das
gif-Gerät ein.Fügen Sie auf dem Gateway in Netzwerk #1
folgende Zeilen in /etc/rc.conf
ein:gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"Setzen Sie dabei die richtigen IP-Adressen für
die Platzhalter ein.Fügen Sie auf beiden Gateways die nachstehende
Regel in das Firewall-Skript (zum Beispiel
/etc/rc.firewall) ein:ipfw add 1 allow ip from any to any via gif0Nehmen Sie in /etc/rc.conf auf dem
Gateway #2 analoge Änderungen, die IP-Adressen
müssen vertauscht werden, vor.Schritt 2: Die Verbindung mit IPsec schützenUm die Verbindung zu schützen, verwenden wir IPsec.
IPsec bietet einen Mechanismus, mit dem sich zwei
Systeme auf einen Schlüssel einigen können.
Mit diesem Schlüssel wird dann der Datenverkehr zwischen
beiden Systemen verschlüsselt.Es gibt hierbei zwei Sachen die konfiguriert werden
müssen:Die Security-Association bestimmt,
mit welchen Methoden der Verkehr zwischen beiden Systemen
verschlüsselt wird.Die Security-Policy bestimmt,
was verschlüsselt wird. Es soll ja nicht der
gesamte Datenverkehr nach außen verschlüsselt
werden, sondern nur der Teil des Verkehrs, der zum
VPN gehört.Die Security-Association wie auch die Security-Policy
werden vom Kernel verwaltet und können von Anwendungen
verändert werden. Dazu müssen allerdings zuerst
IPsec und das Encapsulated-Security-Payload (ESP) Protokoll
in die Kernelkonfigurationsdatei eingetragen werden:options IPSEC
options IPSEC_ESPWie üblich, müssen Sie danach den Kernel
übersetzen, installieren und das System neu starten.
Die Kernel müssen auf beiden Gateway-Maschinen
neu erstellt werden.Sie können die Security-Association auf zwei
Arten konfigurieren: Manuell, dann müssen Sie
den Verschlüsselungsalgorithmus, die Schlüssel
und alles Weitere selbst konfigurieren. Oder automatisch,
mithilfe eines Dæmons, der das Internet-Key-Exchange
Protokoll (IKE) beherrscht.Im Allgemeinen wird die letzte Variante bevorzugt.
Sie ist auch wesentlich leichter einzurichten.Mit &man.setkey.8; können Sie Security-Policies
editieren und anzeigen. Die Beziehung von
setkey und der Tabelle der
Security-Policies im Kernel entspricht
dem Verhältnis von &man.route.8; und der Routing-Tabelle.
Die momentanen Security-Associations lassen sich ebenfalls
mit setkey anzeigen;
setkey verhält sich in diesem Fall
wie netstat -r, um die Analogie
fortzuführen.Sie haben die Wahl zwischen mehreren Programmen,
wenn Sie Security-Associations mit FreeBSD verwalten
wollen. Im Folgenden wird racoon
beschrieben. racoon lässt sich in gewohnter
Weise aus der Ports-Collection installieren. Sie finden
das Programm unter
security/racoon.Auf beiden Gateway-Maschinen muss racoon laufen.
Auf jedem System wird es mit der IP-Adresse der Gegenstelle
und einem geheimen Schlüssel konfiguriert. Auf beiden
Gateway-Maschinen muss der gleiche Schlüssel verwendet
werden.Die beiden raccon-Daemonen prüfen mithilfe des
geheimen Schlüssels gegenseitig ihre Identität.
Anschließend generieren Sie einen neuen geheimen
Schlüssel, mit dem dann der Datenverkehr im VPN
verschlüsselt wird. Dieser Schlüssel wird
von Zeit zu Zeit geändert. Ein Angreifer,
der einen der Schlüssel geknackt hat – das ist
schon ziemlich unwahrscheinlich – kann somit nicht
viel mit diesem Schlüssel anfangen, da schon wieder ein
anderer Schlüssel verwendet wird.Die Konfiguration von racoon befindet sich in
${PREFIX}/etc/racoon. In der
dort befindlichen Konfigurationsdatei sollten Sie nicht
allzu viele Änderungen vornehmen müssen.
Sie müssen allerdings den so genannten
Pre-Shared-Key (den vorher ausgetauschten
Schlüssel) ändern.In der Voreinstellung befindet sich dieser Schlüssel
in der Datei ${PREFIX}/etc/racoon/psk.txt.
Dieser Schlüssel wird nicht zum
Verschlüsseln des Datenverkehrs verwendet. Er dient
lediglich der Authentifizierung der beiden racoon-Daemonen.Für jeden entfernten Kommunikationspartner enthält
psk.txt eine Zeile. Damit besteht die
Datei psk.txt in unserem Beispiel
aus einer Zeile (wir verwenden einen entfernten
Kommunikationspartner).Auf dem Gateway #1 sieht diese Zeile wie
folgt aus:W.X.Y.Z geheimDie Zeile besteht aus der öffentlichen IP-Adresse
der Gegenstelle, Leerzeichen und dem geheimen Schlüssel.
Sie sollten natürlich nicht geheim
verwenden. Für den geheimen Schlüssel gelten
dieselben Regeln wie für Passwörter.Auf dem anderen Gateway sieht die Zeile
folgendermaßen aus:A.B.C.D geheimDie Zeile besteht aus der öffentlichen IP-Adresse
der Gegenstelle, Leerzeichen und dem geheimen Schlüssel.
Die Zugriffsrechte von psk.txt müssen
auf 0600 (Lese- und Schreibzugriff nur
für root) gesetzt sein, bevor
racoon gestartet wird.Auf beiden Gateway-Maschinen muss racoon laufen. Sie
brauchen ebenfalls Firewall-Regeln, die IKE-Verkehr
erlauben. IKE verwendet UDP, um Nachrichten zum
ISAKMP-Port (Internet Security Association Key Management Protocol)
zu schicken. Die Regeln sollten früh in der
Regelkette auftauchen:ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmpWenn racoon läuft, können Sie versuchen,
mit ping von einem Gateway-Rechner aus
den anderen Gateway zu erreichen. Die Verbindung wird zwar immer
noch nicht verschlüsselt, aber racoon wird die
Security-Association zwischen beiden Systemen einrichten.
Dies kann eine Weile dauern, und Sie bemerken vielleicht
eine kleine Verzögerung, bevor die Antworten von
der Gegenstelle kommen.Die Security-Association können Sie sich auf einem
der beiden Gateway-Systeme mit &man.setkey.8; ansehen:setkey -DDamit ist die erste Hälfte der Arbeit getan.
Jetzt muss noch die Security-Policy konfiguriert werden.Damit wir eine sinnvolle Security-Policy erstellen
können, fassen wir das bisher geleistete zusammen.
Die Diskussion gilt für beide Enden des Tunnels.Jedes gesendete IP-Paket enthält im Header
Informationen über das Paket selbst. Im Header
befinden sich die IP-Adressen des Senders und des
Empfängers. Wie wir bereits wissen, dürfen
private IP-Adressen, wie
192.168.x.y nicht auf
das Internet gelangen. Pakete zu privaten IP-Adressen
müssen zuerst in einem anderen Paket gekapselt
werden. In diesem Paket werden die privaten IP-Adressen
durch öffentliche IP-Adressen ersetzt.Das ausgehende Paket hat beispielsweise wie folgt
ausgesehen:
.----------------------.
| Src: 192.168.1.1 |
| Dst: 192.168.2.1 |
| <other header info> |
+----------------------+
| <packet data> |
`----------------------'Es wird in ein anderes Paket umgepackt (gekapselt)
und sieht danach wie folgt aus:
.--------------------------.
| Src: A.B.C.D |
| Dst: W.X.Y.Z |
| <other header info> |
+--------------------------+
| .----------------------. |
| | Src: 192.168.1.1 | |
| | Dst: 192.168.2.1 | |
| | <other header info> | |
| +----------------------+ |
| | <packet data> | |
| `----------------------' |
`--------------------------'Die Kapselung wird vom gif-Gerät
vorgenommen. Das neue Paket enthält im Header eine
öffentliche IP-Adresse und der Datenteil des Pakets
enthält das ursprüngliche Paket.Natürlich soll der gesamte Datenverkehr des VPNs
verschlüsselt werden. Dies kann man wie folgt
ausdrücken:Wenn ein Paket von A.B.C.D
zu W.X.Y.Z geschickt wird,
verschlüssele es entsprechend der
Security-Association.Wenn ein Paket von W.X.Y.Z
kommt und für A.B.C.D
bestimmt ist, entschlüssele es entsprechend der
Security-Association.Das ist fast richtig. Mit diesen Regeln würde
der ganze Verkehr von und zu W.X.Y.Z
verschlüsselt, auch wenn er nicht zum VPN gehört.
Die richtige Formulierung lautet:Wenn ein Paket, das ein gekapseltes Paket enthält,
von A.B.C.D zu
W.X.Y.Z geschickt wird,
verschlüssele es entsprechend der
Security-Association.Wenn ein Paket, das ein gekapseltes Paket enthält,
von W.X.Y.Z kommt und für
A.B.C.D bestimmt ist,
entschlüssele es entsprechend der
Security-Association.Dies ist eine zwar subtile aber eine
notwendige Änderung.Die Security-Policy können Sie mit &man.setkey.8;
erstellen. &man.setkey.8; besitzt eine Konfigurations-Syntax
zur Erstellung der Security-Policy. Sie können die
Konfiguration über die Standardeingabe oder in einer
Datei, die Sie mit der Option angeben,
erstellen.Gateway #1 (öffentliche IP-Adresse:
A.B.C.D) muss
folgendermaßen konfiguriert werden, um alle
ausgehenden Pakete an W.X.Y.Z
zu verschlüsseln:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Speichern Sie dieses Kommando in einer Datei, beispielsweise
/etc/ipsec.conf ab. Rufen Sie
anschließend das nachstehende Kommando auf:&prompt.root; setkey -f /etc/ipsec.conf weist &man.setkey.8; an,
der Security-Policy-Datenbank eine Regel hinzuzufügen.
Der Rest der Zeile gibt an, auf welche Pakete diese
Regel zutrifft. A.B.C.D/32
und W.X.Y.Z/32 sind
die IP-Adressen und Netzmasken, die Systeme angeben,
auf die diese Regel zutrifft. Im Beispiel gilt die
Regel für die beiden Gateway-Systeme.
zeigt an, dass die Regel nur
für Pakete gilt, die gekapselte Pakete enthalten.
legt fest, dass die Regel nur
für ausgehende Pakete gilt. gibt an, dass die Pakete
geschützt werden. Das benutzte Protokoll
wird durch angegeben.
kapselt das Paket in ein
IPsec-Paket. Die nochmalige Angabe von
A.B.C.D und
W.X.Y.Z gibt die
Security-Association an. Das abschließende
erzwingt die Verschlüsselung
der Pakete.Diese Regel gilt nur für ausgehende Pakete.
Sie brauchen eine analoge Regel für eingehende
Pakete:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;In dieser Regel wird anstelle
von benutzt und die IP-Adressen
sind notwendigerweise umgekehrt angegeben.Das zweite Gateway-System mit der IP-Adresse
W.X.Y.Z braucht
entsprechende Regeln:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Schließlich brauchen Sie auf beiden Gateway-Systemen
noch Firewall-Regeln, die ESP- und IPENCAP-Pakete in beide
Richtungen erlauben:ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DDa die Regeln symmetrisch sind, können sie auf
beiden Systemen verwendet werden.Damit sehen ausgehende Pakete wie folgt aus:
.------------------------------. --------------------------.
| Src: A.B.C.D | |
| Dst: W.X.Y.Z | |
| < weitere Header > | | Encrypted
+------------------------------+ | packet.
| .--------------------------. | -------------. | contents
| | Src: A.B.C.D | | | | are
| | Dst: W.X.Y.Z | | | | completely
| | < weitere Header > | | | |- secure
| +--------------------------+ | | Encap'd | from third
| | .----------------------. | | -. | packet | party
| | | Src: 192.168.1.1 | | | | Original |- with real | snooping
| | | Dst: 192.168.2.1 | | | | packet, | IP addr |
| | | < weitere Header > | | | |- private | |
| | +----------------------+ | | | IP addr | |
| | | <Paket-Daten> | | | | | |
| | `----------------------' | | -' | |
| `--------------------------' | -------------' |
`------------------------------' --------------------------'
Am anderen Ende des VPNs werden die Pakete zuerst
entsprechend der von racoon ausgehandelten Security-Association
entschlüsselt. Das gif-Interface
entfernt dann die zweite Schicht, damit das ursprüngliche
Paket zum Vorschein kommt. Dieses kann dann in das interne
Netzwerk transportiert werden.Dass die Pakete wirklich verschlüsselt werden,
können Sie wieder mit &man.ping.8; überprüfen.
Melden Sie sich auf dem Gateway
A.B.C.D an und rufen
das folgende Kommando auf:tcpdump dst host 192.168.2.1Auf demselben Rechner setzen Sie dann noch das
nachstehende Kommando ab:ping 192.168.2.1Dieses Mal wird die Ausgabe wie folgt aussehen:XXX tcpdump outputJetzt zeigt &man.tcpdump.1; ESP-Pakete an. Auch wenn
Sie diese mit der Option untersuchen,
werden Sie wegen der Verschlüsselung nur
unverständliche Zeichen sehen.Herzlichen Glückwunsch. Sie haben soeben ein
VPN zwischen zwei entfernten Netzen eingerichtet.ZusammenfassungIPsec muss in beiden Kernelkonfigurationsdateien
enthalten sein:options IPSEC
options IPSEC_ESPInstallieren Sie security/racoon. Tragen Sie
auf beiden Rechnern in
${PREFIX}/etc/racoon/psk.txt jeweils
die IP-Adresse des entfernten Gateways und den geheimen
Schlüssel ein. Setzen Sie die Zugriffsrechte der
Datei auf 0600.Fügen Sie auf jedem Rechner die folgenden
Zeilen zu /etc/rc.conf hinzu:ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"Erstellen Sie auf jedem Rechner die Datei
/etc/ipsec.conf mit den nötigen
-Zeilen. Auf dem Gateway #1
hat die Datei folgenden Inhalt:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;Auf dem Gateway #2 sieht die Datei so aus:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;Fügen Sie auf beiden Rechnern Firewall-Regeln
hinzu, die IKE-, ESP- und IPENCAP-Verkehr erlauben:ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DDas VPN wurde in zwei Schritten eingerichtet. Maschinen
auf beiden Netzen können miteinander kommunizieren
und der Datenverkehr zwischen beiden Netzen wird automatisch
verschlüsselt.ChernLeeBeigetragen von OpenSSHOpenSSHSicherheitOpenSSHOpenSSH stellt Werkzeuge bereit,
um sicher auf entfernte
Maschinen zuzugreifen. Die Kommandos rlogin,
rsh, rcp und
telnet können durch
OpenSSH ersetzt werden.
Zusätzlich können andere TCP/IP-Verbindungen sicher durch
SSH weitergeleitet (getunnelt) werden. Mit SSH werden alle
Verbindungen verschlüsselt, dadurch wird verhindert, dass
die Verbindung zum Beispiel abgehört oder übernommen
(Hijacking) werden kann.OpenSSH wird vom OpenBSD-Projekt
gepflegt und basiert auf SSH v1.2.12 mit allen aktuellen
Fixen und Aktualisierungen. OpenSSH
ist mit den SSH-Protokollen der Versionen 1 und 2 kompatibel. Seit
FreeBSD 4.0 ist die OpenSSH Teil
des Basissystems.Vorteile von OpenSSHMit &man.telnet.1; oder &man.rlogin.1; werden Daten in
einer unverschlüsselten Form über das Netzwerk
gesendet. Daher besteht die Gefahr, das Benutzer/Passwort
Kombinationen oder alle Daten an beliebiger Stelle zwischen
dem Client und dem Server abgehört werden. Mit
OpenSSH stehen eine Reihe von
Authentifizierungs- und Verschlüsselungsmethoden zur
Verfügung, um das zu verhindern.Aktivieren von sshdOpenSSHaktivierenStellen Sie sicher, dass /etc/rc.conf
die folgende Zeile enthält:sshd_enable="YES"Dadurch wird &man.sshd.8;, der Dæmon von
OpenSSH bei dem nächsten Neustart
geladen. Alternativ können Sie den Dæmon auch
direkt starten, indem Sie auf der Kommandozeile das Kommando
sshd absetzen.SSH ClientOpenSSHClient&man.ssh.1; arbeitet ähnlich wie &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: *******Der Anmeldevorgang wird danach, wie von
rlogin oder telnet gewohnt,
weiterlaufen. SSH speichert einen Fingerabdruck des
Serverschlüssels. Die Aufforderung, yes
einzugeben, erscheint nur bei der ersten Verbindung zu einem
Server. Weitere Verbindungen zu dem Server werden gegen den
gespeicherten Fingerabdruck des Schlüssels geprüft und
der Client gibt eine Warnung aus, wenn sich der empfangene
Fingerabdruck von dem gespeicherten unterscheidet. Die
Fingerabdrücke der Version 1 werden in
~/.ssh/known_hosts, die der Version 2 in
~/.ssh/known_hosts2 gespeichert.In der Voreinstellung akzeptieren
OpenSSH-Server Verbindungen
mit SSH v1 und SSH v2. Die Clients können sich aber das
Protokoll auswählen, dabei wird die Protokollversion 2
als robuster und sicherer als die Vorgängerversion
angesehen.Mit den Optionen oder
kann die Protokollversion, die ssh verwendet,
erzwungen werden.Secure CopyOpenSSHsecure copyscpMit &man.scp.1; lassen sich Dateien analog wie mit
&man.rcp.1; auf entfernte Maschinen kopieren. Mit
scp werden die Dateien allerdings in einer
sicheren Weise übertragen.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password:
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Da der Fingerabdruck schon im vorigen Beispiel abgespeichert
wurde, wird er bei der Verwendung von scp in
diesem Beispiel überprüft. Da die Fingerabdrücke
übereinstimmen, wird keine Warnung ausgegeben.Die Argumente, die scp übergeben
werden, gleichen denen von cp in der Beziehung,
dass die ersten Argumente die zu kopierenden Dateien sind und
das letzte Argument den Bestimmungsort angibt. Da die Dateien
über das Netzwerk kopiert werden, können ein oder mehrere
Argumente die Form
besitzen.KonfigurationOpenSSHKonfigurationDie für das ganze System gültigen
Konfigurationsdateien des
OpenSSH-Dæmons und des Clients
finden sich in dem Verzeichnis
/etc/ssh.Die Client-Konfiguration befindet sich in
ssh_config, die des Servers befindet sich in
sshd_config.Das SSH-System lässt sich weiterhin über die
Anweisungen (Vorgabe ist
/usr/sbin/sshd) und
in /etc/rc.conf
konfigurieren.ssh-keygenMit &man.ssh-keygen.1; können RSA-Schlüssel für
einen Benutzer erzeugt werden, die anstelle von
Passwörtern verwendet werden können:&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; erzeugt einen öffentlichen und einen
privaten Schlüssel für die Authentifizierung. Der private
Schlüssel wird in ~/.ssh/identity, der
öffentliche Schlüssel in
~/.ssh/identity.pub gespeichert. Damit die
RSA-Schlüssel zur Authentifizierung verwendet werden
können, muss der öffentliche Schlüssel in der
Datei ~/.ssh/authorized_keys auf der
entfernten Maschine abgelegt werden.Damit werden Verbindungen zu der entfernten Maschine über
den RSA-Mechanismus anstelle von Passwörtern
authentifiziert.Die erstellt RSA-Schlüssel
für die Version 1 des SSH-Protokolls.
RSA-Schlüssel für die Version 2 des
SSH-Protokolls erstellen Sie mit dem Kommando
ssh-keygen -t rsa.Wenn bei der Erstellung der Schlüssel mit
&man.ssh-keygen.1; ein Passwort angegeben wurde, wird der
Benutzer bei jeder Anmeldung zur Eingabe des Passworts
aufgefordert.Zum gleichen Zweck kann ein DSA-Schlüssel
für Version 2 des SSH-Protokolls mit dem Kommando
ssh-keygen -t dsa erstellt werden.
Dies erzeugt ein DSA-Schlüsselpaar, das nur in Sitzungen
der Protokollversion 2 verwendet wird.
Der öffentliche Schlüssel wird in
~/.ssh/id_dsa.pub, der private Schlüssel
in ~/.ssh/id_dsa gespeichert.Die öffentlichen DSA-Schlüssel werden auch in
~/.ssh/authorized_keys auf der entfernten
Maschine abgelegt.Mit &man.ssh-agent.1; und &man.ssh-add.1; können Sie
mehrere durch Passwörter geschützte private
Schlüssel verwalten.Die Kommandozeilemoptionen und Dateinamen sind
abhängig von der OpenSSH-Version.
Die für Ihr System gültigen Optionen finden Sie
in der Hilfeseite &man.ssh-keygen.1;.
-
+ SSH-TunnelOpenSSHTunnelMit OpenSSH ist es möglich,
einen Tunnel zu erstellen, in dem ein anderes Protokoll
verschlüsselt übertragen wird.Das folgende Kommando erzeugt einen Tunnel für
telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Dabei wurden die folgenden Optionen von ssh
verwendet:Erzwingt die Version 2 des Protokolls (Benutzen Sie die
Option nicht mit langsamen
SSH-Servern).Zeigt an, dass ein Tunnel erstellt werden soll.
Ohne diese Option würde ssh eine
normale Sitzung öffnen.Zwingt ssh im Hintergrund zu
laufen.Ein lokaler Tunnel wird in der Form
localport:remotehost:remoteport
angegeben. Die Verbindung wird dabei von dem lokalen Port
localport auf einen entfernten
Rechner weitergeleitet.Gibt den entfernten SSH server an.Ein SSH-Tunnel erzeugt ein Socket auf
localhost und dem angegebenen Port. Jede
Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird
dann auf den spezifizierten entfernten Rechner und Port
weitergeleitet.Im Beispiel wird der Port 5023 auf
die entfernte Maschine und dort auf localhost
Port 23 weitergeleitet. Da der Port
23 für
Telnet reserviert ist,
erzeugt das eine sichere
Telnet-Verbindung durch einen
SSH-Tunnel.Diese Vorgehensweise kann genutzt werden, um jedes unsichere
TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.Mit SSH einen sicheren Tunnel für SMTP erstellen&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 ESMTPZusammen mit &man.ssh-keygen.1; und zusätzlichen
Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel
aufbauen. Anstelle von Passwörtern können Sie
Schlüssel benutzen und jeder Tunnel kann unter einem eigenen
Benutzer laufen.Beispiel für SSH-TunnelSicherer Zugriff auf einen POP3-ServerNehmen wir an, an Ihrer Arbeitsstelle gibt es einen
SSH-Server, der Verbindungen von außen akzeptiert. Auf
dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein
Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die
Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher
und daher müssen Sie Ihre E-Mail über eine gesicherte
Verbindung abholen können. Die Lösung zu diesem
Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu
dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
weiter zum Mail-Server zu tunneln.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie
Ihren Mail-Client so, dass er POP3 Anfragen zu
localhost Port 2110 sendet. Die Verbindung
wird dann sicher zu mail.example.com
weitergeleitet.Umgehen einer strengen FirewallEinige Netzwerkadministratoren stellen sehr drakonische
Firewall-Regeln auf, die nicht nur einkommende Verbindungen
filtern, sondern auch ausgehende. Es kann sein, dass Sie
externe Maschinen nur über die Ports 22 und 80 (SSH und
Web) erreichen.Sie wollen auf einen Dienst, der vielleicht nichts mit
Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server,
zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22
oder 80 läuft, können Sie aber nicht auf ihn
zugreifen.Die Lösung hier ist es, eine SSH-Verbindung zu einer
Maschine außerhalb der Firewall aufzumachen und durch
diese zum Ogg Vorbis Server zu tunneln.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******Konfigurieren Sie Ihren Client so, dass er
localhost und Port 8888 benutzt. Die Verbindung
wird dann zu music.example.com Port 8000
weitergeleitet und Sie haben die Firewall erfolgreich
umgangen.Weiterführende Informationen: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;RobertWatsonGefördert von DARPA und Network Associates Laboratories.
Beigetragen von MACVorgeschriebene Zugriffskontrolle (MAC)In FreeBSD 5.0 wurde ein neues kernelbasiertes
Sicherheitssystem eingeführt: das TrustedBSD-MAC-Framework.
Das MAC-Framework erlaubt die Erweiterung der Zugriffskontrollen des
Kernels beim Übersetzen, beim Systemstart und zur Laufzeit.
Damit lassen sich Module laden, die vorgeschriebene Zugriffskontrollen
(Mandatory Access Control,
MAC) bereitstellen, oder angepasste Module laden,
die zur Systemhärtung eingesetzt werden können. Das
MAC-Framework befindet sich noch im Teststadium und sollte daher
erst nach sorgfältigen Überlegungen auf produktiven Systemen
eingesetzt werden. Voraussichtlich wird das MAC-Framework ab
FreeBSD 5.2 produktionsreif sein.Wenn das MAC-Framework im Kernel aktiviert ist, können
Sicherheitsmodule die Zugriffskontrollen des Kernels erweitern und
damit Zugriffe auf Systemdienste oder Systemobjekte
einschränken. Beispielsweise erweitert das
&man.mac.bsdextended.4;-Modul die Zugriffskontrollen
auf Dateisysteme und erlaubt es, Regelsätze, wie sie analog
in Firewalls verwendet werden, aufzustellen, die Zugriffe auf
Dateisystemobjekte anhand der Benutzer-ID und der Zugehörigkeit
zu Gruppen regeln. Einige Module, wie das
&man.mac.seeotheruids.4;-Modul, müssen gar nicht
oder nur minimal konfiguriert werden, andere Module, wie das
&man.mac.biba.4;-Modul oder das
&man.mac.mls.4;-Modul, sind aufwändig zu
konfigurieren, da sie Objekte systemweit kennzeichnen.Fügen Sie die nachstehende Zeile der Kernelkonfiguration
hinzu, um das MAC-Framework zu aktivieren:options MACDie Sicherheitsmodule des Basissystems können Sie mit
&man.kldload.8; oder während des Systemstarts mit &man.loader.8;
laden oder mit den nachstehenden Optionen fest in den Kernel
einbinden.Die Zugriffsrichtlinien (policy)
der Module werden unterschiedlich konfiguriert. Oft lässt sich
ein Modul über den Namensraum security.mac
der &man.sysctl.8;-MIB konfigurieren. Richtlinien,
die vom Dateisystem oder bestimmten Kennzeichen abhängen,
erfordern vielleicht eine initiale Konfiguration, in der
Systemobjekten Kennzeichen zugeordnet werden müssen oder eine
Konfigurationsdatei für die Richtlinie erstellt werden muss.
Die erforderlichen Schritte werden in den Hilfeseiten des
betreffenden Moduls beschrieben.Zur Konfiguration des MAC-Frameworks und der Kennzeichen, die von
verschiedenen Richtlinien verwendet werden, stehen eine Reihe von
Werkzeugen zur Verfügung. Das Anmeldeverfahren und die
Verwaltung von Berechtigungsnachweisen (&man.setusercontext.3;)
wurden erweitert, so dass Kennzeichen für Benutzerkonten mit
&man.login.conf.5; eingerichtet werden können. Um Kennzeichen
auf Prozessen, Dateien und Adaptern lesen und schreiben zu
können, wurden &man.su.1;, &man.ps.1;, &man.ls.1; und
&man.ifconfig.8; geändert. Zur Verwaltung der Kennzeichen
wurden neue Werkzeuge eingeführt, beispielsweise &man.getfmac.8;,
&man.setfmac.8; und &man.setfsmac.8; zur Verwaltung von
Dateikennzeichen oder &man.getpmac.8; und &man.setpmac.8;.Die folgende Aufstellung beschreibt alle mit FreeBSD 5.0
ausgelieferten Sicherheitsmodule.Biba-Richtlinie zur Sicherung der Integrität
(mac_biba)RichtlinieBiba-Richtlinie,
Biba Integrity PolicyHersteller: TrustedBSD ProjectModulname: mac_biba.koKerneloption: MAC_BIBADie Biba-Richtlinie (Biba Integrity
Policy, &man.mac.biba.4;) kennzeichnet die
Integrität aller Systemobjekte (die Kennzeichnung kann
hierarchisch oder nicht-hierarchisch erfolgen) und erzwingt
einen Informationsfluß, der verhindert, dass Objekte
mit hoher Integrität von Subjekten mit niedriger Integrität
verändert werden. Die Integrität der Objekte wird
dadurch sichergestellt, dass Subjekte mit hoher Integrität
(üblicherweise Prozesse) nicht lesend auf Objekte niedrigerer
Integrität (häufig Dateien) zugreifen dürfen
und Subjekte niedrigerer Integrität nicht schreibend auf
Objekte höherer Integrität zugreifen dürfen.
Diese Richtlinie dient häufig zum Schutz der
Trusted Code Base in
kommerziellen Sicherheitssystemen. Da die Biba-Richtlinie
systemweite Kennzeichen zur Verfügung stellt, muss Sie
fest in den Kernel integriert sein oder zum Zeitpunkt des
Systemstarts geladen werden.Dateisystem-Richtlinie (mac_bsdextended)RichtlinieDateisystem-Richtlinie,
File System Firewall PolicyHersteller: TrustedBSD ProjectModulname: mac_bsdextended.koKerneloption: MAC_BSDEXTENDEDDie Dateisystem-Richtlinie (File System Firewall
Policy, &man.mac.bsdextended.4;) erweitert
die Zugriffsrechte des BSD-Dateisystems. Ein Administrator kann
für Zugriffe auf Dateisystemobjekte anderer Benutzer
und Gruppen Regelsätze, analog den von Firewalls verwendeten,
definieren. Die Regelsätze, die mit &man.ugidfw.8; verwaltet
werden, beschränken den Zugriff auf Dateien und Verzeichnisse
aufgrund der UID und der GID des zugreifenden Prozesses sowie dem
Besitzer und der Gruppe des Objekts auf das zugegriffen werden
soll. Da alle Regeln die möglichen Zugriffe beschränken,
können sie in beliebiger Reihenfolge angelegt werden. Diese
Richtlinie erfordert keine gesonderte Konfiguration oder die
Vergabe von Kennzeichen und mag für Mehrbenutzer-Umgebungen
geeignet sein, in denen vorgeschriebene Zugriffskontrollen für
den Datenaustausch zwischen Benutzern erforderlich sind. Seien Sie
vorsichtig, wenn Sie die Zugriffe auf Dateien von
root oder anderen System-Accounts
einschränken. Viele nützliche Programme und
Verzeichnisse gehören diesen Benutzern und die falsche
Anwendung der Dateisystem-Richtlinie kann, wie ein falscher
Regelsatz einer Firewall, das System unbrauchbar machen. Mithilfe
der Bibliothek &man.libugidfw.3; können leicht neue Werkzeuge zur
Verwaltung der Regelsätze geschrieben werden.Interface-silencing-Richtlinie (mac_ifoff)RichtlinieInterface-silencing-Richtlinie,
Interface Silencing PolicyHersteller: TrustedBSD ProjectModulname: mac_ifoff.koKerneloption: MAC_IFOFFDie Interface-silencing-Richtlinie (&man.mac.ifoff.4;)
verhindert, das die Netzwerkkarte vom Systemstart an bis zu dem
Zeitpunkt, an dem sie explizit aktiviert wird, benutzt werden kann.
Damit verhindert die Richtlinie ungewollte Antworten auf
eingehende Pakete. Diese Richtlinie eignet sich für
Umgebungen, in denen der Netzverkehr passiv, das heißt ohne
eigene Pakete zu erzeugen, beobachtet werden soll.Low-Watermark Mandatory Access Control (mac_lomac)RichtlinieLow-WatermarkLOMACHersteller: Network Associates LaboratoriesModulname: mac_lomac.koKerneloption: MAC_LOMACWie die Biba-Richtlinie kennzeichnet die LOMAC-Richtlinie
(&man.mac.lomac.4;) systemweit die Integrität aller Objekte.
Im Gegensatz zur Biba-Richtlinie können allerdings Subjekte
hoher Integrität lesend auf Objekte niedrigerer
Integrität zugreifen. In diesem Fall wird aber die
Integrität des lesenden Subjekts heruntergesetzt, damit dieses
nicht mehr schreibend auf Objekte mit hoher Integrität
zugreifen kann. Diese Richtlinie ist leichter als die
Biba-Richtlinie zu benutzen und zu konfigurieren. Da sie
allerdings systemweit die Objekte kennzeichnet, muss sie, wie die
Biba-Richtlinie, fest in den Kernel eingebunden sein oder beim
Systemstart geladen werden.Multi-Level-Security Richtlinie (mac_mls)RichtlinieMulti-Level-SecurityMulti-Level-Security RichtlinieHersteller: TrustedBSD ProjectModulname: mac_mls.koKerneloption: MAC_MLSDie Multi-Level-Security Richtlinie (MLS,
&man.mac.mls.4;) stellt systemweit hierarchische und
nicht-hierarchische Kennzeichen zur Markierung der Vertraulichkeit
von Objekten zur Verfügung. Die Richtlinie stellt einen
Informationsfluß sicher, der garantiert, dass vertrauliche
Daten nicht unberechtigt weitergeleitet werden. Die MLS-Richtlinie
wird häufig zusammen mit der Biba-Richtlinie in sicheren
kommerziellen Mehrbenutzerumgebungen verwendet.
Mit hierarchischen Kennzeichen können Zugangsberechtigungen zu
Verschlusssachen (Einteilung in streng geheim,
geheim, usw.) abgebildet werden. Nicht-hierarchische
Kennzeichen dienen zur Verwirklichung des Prinzips Kenntnis
nur, wenn nötig (need to
know). Alle Systemobjekte müssen wie bei
der Biba-Richtlinie vorher gekennzeichnet werden, so dass die
Richtlinie fest in den Kernel eingebunden werden muss oder beim
Systemstart als Modul geladen werden muss. Der
Konfigurationsaufwand der MLS-Richtlinie kann analog zur
Biba-Richtlinie sehr hoch sein.Rumpf-Richtlinie (mac_none)RichtlinieRumpf-Richtlinie,
MAC Stub PolicyHersteller: TrustedBSD ProjectModulname: mac_none.koKerneloption: MAC_NONEDie Rumpf-Richtlinie (MAC Stub
Policy, &man.mac.none.4;) ist als Beispiel
für Entwickler gedacht. Sie stellt alle benötigten
Funktionen zur Verfügung, ohne die Zugriffsrechte im System zu
verändern. Auf einem Produktionssystem ist die Anwendung
dieser Richtlinie nicht sehr sinnvoll.Partitions-Richtlinie (mac_partition)RichtliniePartitions-Richtlinie,
Process Partition PolicyHersteller: TrustedBSD ProjectModulname: mac_partition.koKerneloption: MAC_PARTITIONDie Partitions-Richtlinie (Process Partition
Policy, &man.mac.partition.4;) schränkt
die Sichtbarkeit von Prozessen ein, indem Prozessen Partitionsnummern
zugewiesen werden. Besitzt ein Prozess keine Partitionsnummer,
so kann er alle Prozesse auf dem System sehen, besitzt er hingegen
eine Partitionsnummer, so kann er nur Prozesse in derselben
Partition sehen. Die Richtlinie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.See Other Uids (mac_seeotheruids)Richtlinie
See Other UidsHersteller: TrustedBSD ProjectModulname: mac_seeotheruids.koKerneloption: MAC_SEEOTHERUIDSDie Richtlinie See Other Uids
(&man.mac.seeotheruids.4;) schränkt wie &man.mac.partition.4;
die Sichtbarkeit von Prozessen ein. Allerdings wird die
Sichtbarkeit anderer Prozesse von den Berechtigungen eines
Prozesses anstelle einer Partitionsnummer bestimmt. Die Richtlinie
kann so konfiguriert werden, dass sie für bestimmte Accounts
oder Gruppen nicht gilt, so dass beispielsweise Systemverwalter
alle Prozesse sehen können. Die Richtlinie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.Test-Richtlinie (mac_test)RichtlinieTest-Richtlinie,
MAC Framework TestHersteller: TrustedBSD ProjectModulname: mac_test.koKerneloption: MAC_TESTDie Test-Richtlinie (MAC Framework Test
Policy, &man.mac.test.4;) stellt einen
Regressions-Test für das MAC-Framework bereit. Die Richtlinie
führt zu einem Systemstopp für den Fall, dass interne
Prüfungen auf korrekte Kennzeichen fehlschlagen. Sie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.TomRhodesBeigetragen von ACLZugriffskontrolllisten für DateisystemeZusammen mit anderen Verbesserungen des Dateisystems wie
Schnappschüsse gibt es ab FreeBSD 5.0
Zugriffskontrolllisten (access
control list, ACL).Zugriffskontrolllisten erweitern die normalen Zugriffsrechte
von &unix; Systemen auf eine kompatible (&posix;.1e) Weise
und bieten feiner granulierte Sicherheitsmechanismen.Zugriffskontrolllisten für Dateisysteme werden mit der
nachstehenden Zeile in der Kernelkonfiguration aktiviert:options UFS_ACLDiese Option ist in der GENERIC-Konfiguration
aktiviert. Das System gibt eine Warnung aus, wenn ein Dateisystem mit
ACLs eingehangen werden soll und die
Unterstützung für ACLs nicht im Kernel
aktiviert ist. Das Dateisystem muss weiterhin erweiterte Attribute
zur Verfügung stellen, damit ACLs verwendet
werden können. Das neue UNIX-Dateisystem
UFS2 stellt diese Attribute
standardmäßig zur Verfügung.Die Konfiguration erweiterter Attribute auf
UFS1 ist mit einem höheren Aufwand als die
Konfiguration erweiterter Attribute auf UFS2
verbunden. Zudem ist UFS2 mit erweiterten
Attributen leistungsfähiger als UFS1.
Zugriffskontrolllisten sollten daher mit UFS2
verwendet werden.Die Angabe der Option in
/etc/fstab aktiviert Zugriffskontrolllisten
für ein Dateisystem. Die bevorzugte Möglichkeit ist
die Verwendung von Zugriffskontrolllisten mit &man.tunefs.8; (Option
), im Superblock des Dateisystems festzuschreiben.
Diese Möglichkeit hat mehrere Vorteile:Nochmaliges Einhängen eines Dateisystems (Option
von &man.mount.8;) verändert den Status
der Zugriffskontrolllisten nicht. Die Verwendung von
Zugriffskontrolllisten kann nur durch Abhängen und erneutes
Einhängen eines Dateisystems verändert werden. Das
heißt auch, dass Zugriffskontrolllisten nicht
nachträglich auf dem Root-Dateisystem aktiviert werden
können.Die Zugriffskontrolllisten auf den Dateisystemen sind,
unabhängig von den Option in /etc/fstab
oder Namensänderungen der Geräte, immer aktiv. Dies
verhindert auch, dass Zugriffskontrolllisten aus Versehen
auf Dateisystem ohne Zugriffskontrolllisten aktiviert werden und
durch falsche Zugriffsrechte Sicherheitsprobleme entstehen.Es kann sein, dass sich der Status von Zugriffskontrolllisten
später durch nochmaliges Einhängen des Dateisystems
(Option von &man.mount.8;) ändern
lässt. Die momentane Variante ist aber sicherer, da der
Status der Zugriffskontrolllisten nicht versehentlich geändert
werden kann. Allgemein sollten Zugriffskontrolllisten auf einem
Dateisystem, auf dem sie einmal verwendet wurden, nicht deaktiviert
werden, da danach die Zugriffsrechte falsch sein können.
Werden Zugriffskontrolllisten auf einem solchen Dateisystem wieder
aktiviert, werden die Zugriffsrechte von Dateien, die sich
zwischenzeitlich geändert haben, überschrieben, was zu
erneuten Problemen führt.Die Zugriffsrechte einer Datei werden durch ein
+ (Plus) gekennzeichnet, wenn die Datei durch
Zugriffskontrolllisten geschützt ist: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_htmlDie Verzeichnisse directory1,
directory2 und directory3
sind durch Zugriffskontrolllisten geschützt, das Verzeichnis
public_html nicht.Zugriffskontrolllisten benutzenDas Werkzeug &man.getfacl.1; zeigt Zugriffskontrolllisten
an. Das folgende Kommando zeigt die ACLs
auf der Datei test:&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--Das Werkzeug &man.setfacl.1; ändert oder entfernt
ACLs auf Dateien. Zum Beispiel:&prompt.user; setfacl -k testDie Option entfernt alle
ACLs einer Datei oder eines Dateisystems.
Besser wäre es, die Option
zu verwenden, da sie die erforderlichen Felder
beibehält.&prompt.user; setfacl -m u:trhodes:rwx,g:web:r--,o::--- testMit dem vorstehenden Kommando werden die eben
entfernten Zugriffskontrolllisten wiederhergestellt.
Der Befehl gibt die Fehlermeldung
Invalid argument aus,
wenn Sie nicht existierende Benutzer oder Gruppen
als Parameter angeben.TomRhodesBeigesteuert von Sicherheitshinweise&os; SicherheitshinweiseWie für andere hochwertige Betriebssysteme auch
werden für &os; Sicherheitshinweise herausgegeben.
Die Hinweise werden gewöhnlich auf den Sicherheits-Mailinglisten
und in den Errata veröffentlicht, nachdem das
Sicherheitsproblem behoben ist. Dieser Abschnitt beschreibt
den Umgang mit den Sicherheitshinweisen.Wie sieht ein Sicherheitshinweis aus?Der nachstehende Sicherheitshinweis stammt von
der Mailingliste &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/.
+http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. ReferencesDas Feld Topic enthält eine
Beschreibung des Sicherheitsproblems und benennt das
betroffene Programm.Das Feld Category beschreibt den
betroffenen Systemteil. Mögliche Werte für dieses
Feld sind core, contrib
oder ports. Die Kategorie
core gilt für Kernkomponenten
des &os;-Betriebssystems, die Kategorie
contrib beschreibt zum Basissystem
gehörende Software Dritter beispielsweise
sendmail. Die Kategorie
ports beschreibt Software, die
Teil der Ports-Collection ist.Das Feld Module beschreibt die
betroffene Komponente. Im Beispiel ist
sys angegeben, das heißt
dieses Problem betrifft eine Komponente, die vom
Kernel benutzt wird.Das Feld Announced gibt den
Zeitpunkt der Bekanntgabe des Sicherheitshinweises
an. Damit existiert das Sicherheitsproblem,
ist vom Sicherheits-Team bestätigt worden
und eine entsprechende Korrektur wurde in das
Quellcode-Repository von &os; gestellt.Das Feld Credits gibt die Person
oder Organisation an, die das Sicherheitsproblem
bemerkte und gemeldet hat.Welche &os;-Releases betroffen sind, ist im Feld
Affects angegeben. Die Version einer
Datei, die zum Kernel gehört, können Sie
schnell mit ident ermitteln. Bei Ports
ist die Versionsnummer angegeben, die Sie im Verzeichnis
/var/db/pkg finden.
Wenn Sie Ihr System nicht täglich aktualisieren,
ist Ihr System wahrscheinlich betroffen.Wann das Problem in welchem Release behoben wurde,
steht im Feld Corrected.Im Feld &os; only wird angegeben,
ob das Sicherheitsproblem nur &os; oder auch andere
Betriebssysteme betrifft.Im Feld Background wird
das betroffene Werkzeug beschrieben. Meist finden Sie
hier warum das Werkzeug Bestandteil von &os; ist,
wofür es benutzt wird und eine kurze
Darstellung der Herkunft des Werkzeugs.Im Feld Problem Description befindet
sich eine genaue Darstellung des Sicherheitsproblems.
Hier wird fehlerhafter Code beschrieben oder geschildert,
wie ein Werkzeug ausgenutzt wird.Das Feld Impact beschreibt die
Auswirkungen des Sicherheitsproblems auf ein System,
beispielsweise erweiterte Rechte oder gar
Superuser-Rechte für normale Benutzer.Im Feld Workaround wird
eine Umgehung des Sicherheitsproblems beschrieben.
Die Umgehung ist für Administratoren gedacht,
die ihr System aus Zeitnot, Netzwerk-technischen oder
anderen Gründen nicht aktualisieren können.
Nehmen Sie Sicherheitsprobleme ernst: Auf einem
betroffenen System sollte das Problem entweder behoben
oder, wie hier beschrieben, umgangen werden.Im Feld Solution enthält eine
getestete Schritt-für-Schritt Anleitung, die das
Sicherheitsproblem behebt.Das Feld Correction Details
enthält die CVS-Tags der betroffenen Dateien
zusammen mit zugehörigen Revisionsnummern.Im Feld References finden sich
Verweise auf weitere Informationsquellen. Dies können
URLs zu Webseiten, Bücher, Mailinglisten und Newsgroups
sein.
diff --git a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
index b8a6908994..8a057fb7df 100644
--- a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
@@ -1,2789 +1,2789 @@
MartinHeinenÜbersetzt von Serielle DatenübertragungÜbersichtserielle Datenübertragung&unix; Systeme unterstützten schon immer die serielle
Datenübertragung. Tatsächlich wurden Ein- und Ausgaben auf
den ersten &unix; Maschinen über serielle Leitungen
durchgeführt. Seit der Zeit, in der ein durchschnittlicher
Terminal aus einem seriellen Drucker mit
10 Zeichen/Sekunde und einer Tastatur bestand, hat sich viel
verändert. Dieses Kapitel behandelt einige Möglichkeiten,
serielle Datenübertragung unter FreeBSD zu verwenden.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden
Sie Folgendes wissen:Wie Sie Terminals an Ihr FreeBSD anschließen.
Wie Sie sich mit einem Modem auf einem entfernten
Rechner einwählen.Wie Sie entfernten Benutzern erlauben, sich mit einem
Modem in Ihr System einzuwählen.Wie Sie Ihr System über eine serielle Konsole
booten.Bevor Sie dieses Kapitel lesen, sollten Sieeinen neuen Kernel konfigurieren und installieren
können ().Das Berechtigungskonzept von &unix; und Prozesse
verstehen ().Zudem sollten Sie Zugriff auf die Handbücher der
seriellen Komponenten (Modem oder Multiportkarte) haben, die Sie
mit FreeBSD verwenden wollen.EinführungBegriffebits-per-secondbpsBits pro Sekunde – Einheit für die
Übertragungsgeschwindigkeit.DEE (DTE)DEEDTEDatenendeinrichtung (Data Terminal Equipment) –
zum Beispiel Ihr Computer.DÜE (DCE)DÜEDCEDatenübertragungseinrichtung (Data Communications
Equipment) – Ein Modem.RS-232RS-232C KabelEIA (Electronic Industries Association) Norm für
die serielle Datenübertragung.In diesem Abschnitt wird der Begriff Baud nicht
für Übertragungsgeschwindigkeiten gebraucht. Baud
bezeichnet elektrische Zustandswechsel pro Zeiteinheit, die Taktfrequenz,
während bps (Bits pro Sekunde) der
richtige Begriff für die
Übertragungsgeschwindigkeit ist (die meisten Pedanten sollten
damit zufrieden sein).Kabel und SchnittstellenUm ein Modem oder einen Terminal an Ihr FreeBSD-System
anzuschließen, muss Ihr Computer über eine serielle
Schnittstelle verfügen. Zusätzlich brauchen Sie noch das
passende Kabel, um das Gerät mit der Schnittstelle zu
verbinden. Wenn Sie mit Ihren Geräten und den nötigen
Kabeln schon vertraut sind, können Sie diesen Abschnitt
überspringen.KabelEs gibt verschiedene serielle Kabel. Die zwei häufigsten
sind Nullmodemkabel und Standard-RS-232-Kabel. Die
Dokumentation Ihrer Hardware sollte beschreiben, welchen Kabeltyp
Sie benötigen.NullmodemkabelNullmodemkabelEin Nullmodemkabel verbindet einige Signale, wie die
Betriebserde, eins zu eins, andere Signale werden getauscht:
Die Sende- und Empfangsleitungen werden zum Beispiel
gekreuzt.Wenn Sie Ihre Kabel selber herstellen möchten,
zeigt die folgende Tabelle die Signalnamen von RS-232C und Pinbelegung
für einen Stecker vom Typ DB-25:SignalPin #Pin #SignalSG7verbunden mit7SGTxD2verbunden mit3RxDRxD3verbunden mit2TxDRTS4verbunden mit5CTSCTS5verbunden mit4RTSDTR20verbunden mit6DSRDCD86DSRDSR6verbunden mit20DTRDas Signal Data Terminal Ready (DTR) wird
mit den Signalen Data Set Ready (DSR) und
Data Carrier Detect (DCD) der Gegenstelle
verbunden.Standard RS-232C KabelRS-232C KabelEin Standard-RS-232C-Kabel verbindet alle Signale direkt,
das heißt das Signal Sendedaten wird mit
dem Signal Sendedaten der Gegenstelle verbunden.
Dieses Kabel wird benötigt, um ein Modem mit einem
FreeBSD-System zu verbinden. Manche Terminals benötigen dieses
Kabel ebenfalls.SchnittstellenÜber serielle Schnittstellen werden Daten zwischen dem
FreeBSD-System und dem Terminal übertragen. Dieser
Abschnitt beschreibt die verschiedenen Schnittstellen und wie sie
unter FreeBSD angesprochen werden.Arten von SchnittstellenDa es verschiedene Schnittstellen gibt, sollten Sie vor
dem Kauf oder Selbstbau eines Kabels sicherstellen, dass
dieses zu den Schnittstellen Ihres Terminals und
FreeBSD-Systems passt.Die meisten Terminals besitzen DB25-Stecker.
Personal Computer haben DB25- oder DB9-Stecker. Wenn
Sie eine serielle Multiportkarte für Ihren PC besitzen,
haben Sie vielleicht RJ-12- oder RJ-45-Anschlüsse.Die Dokumentation Ihrer Geräte sollte Aufschluss
über den Typ der benötigten Anschlüsse geben.
Oft hilft es, wenn Sie sich den Anschluss einfach
ansehen.SchnittstellenbezeichnungUnter FreeBSD sprechen Sie die serielle Schnittstelle
(Port) über einen Eintrag im /dev
Verzeichnis an. Es gibt dort zwei verschiedene
Einträge:Schnittstellen für eingehende Verbindungen werden
/dev/ttydN
genannt. Dabei ist N die Nummer
der Schnittstelle, deren Zählung bei Null beginnt.
Allgemein wird diese Schnittstelle für Terminals
benutzt. Diese Schnittstelle funktioniert nur, wenn ein
Data Carrier Detect Signal (DCD)
vorliegt.Für ausgehende Verbindungen wird
/dev/cuaaN
verwendet. Dieser Port wird normalerweise nur von
Modems genutzt. Sie können ihn allerdings für
Terminals benutzen, die das Data Carrier Detect
Signal nicht unterstützen.Wenn Sie einen Terminal an die erste serielle Schnittstelle
(COM1 in &ms-dos;), angeschlossen haben,
sprechen Sie ihn über /dev/ttyd0 an.
Wenn er an der zweiten seriellen Schnittstelle angeschlossen
ist, verwenden Sie /dev/ttyd1, usw.KernelkonfigurationIn der Voreinstellung benutzt FreeBSD vier serielle
Schnittstellen, die in &ms-dos;-Kreisen als
COM1, COM2,
COM3 und COM4
bekannt sind. Momentan unterstützt FreeBSD einfache
Multiportkarten (z.B. die BocaBoard 1008 und 2016) und bessere wie
die von Digiboard und Stallion Technologies. In der Voreinstellung
sucht der Kernel allerdings nur nach den
Standardanschlüssen.Um zu überprüfen, ob der Kernel eine Ihrer seriellen
Schnittstellen erkennt, achten Sie auf die Meldungen beim Booten,
oder schauen sich diese später mit
/sbin/dmesg an. Insbesondere sollten Sie auf
Meldungen achten, die mit den Zeichen sio
anfangen.Das folgende Kommando zeigt Ihnen nur die Meldungen an,
die die Folge sio enthalten:&prompt.root; /sbin/dmesg | grep 'sio'Auf einem System mit vier seriellen Schnittstellen sollte der
Kernel die folgenden Meldungen ausgeben:sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550AWenn Ihr Kernel nicht alle seriellen Schnittstellen erkennt,
müssen Sie unter Umständen einen angepassten Kernel
für Ihr System erstellen. Eine ausführliche Anleitung
dazu finden Sie in .Die Kernelkonfiguration für FreeBSD 4.X sieht
wie folgt aus:device sio0 at isa? port IO_COM1 tty irq 4
device sio1 at isa? port IO_COM2 tty irq 3
device sio2 at isa? port IO_COM3 tty irq 5
device sio3 at isa? port IO_COM4 tty irq 9FreeBSD 5.X verwendet die folgende Zeile:device sioMit FreeBSD 4.X können Sie nicht vorhandene
Schnittstellen entfernen oder auskommentieren. Unter
FreeBSD 5.X werden die Schnittstellen in
/boot/device.hints konfiguriert. Die
Hilfeseite &man.sio.4; enthält weitere Informationen über
serielle Schnittstellen und Multiportkarten.
Seien Sie vorsichtig, wenn Sie Konfigurationsdateien
von älteren FreeBSD-Versionen verwenden, da sich die Syntax
und die Bedeutung der Optionen zwischen verschiedenen
Versionen geändert hat.port IO_COM1 ist ein Ersatz für
port 0x3f8, IO_COM2
bedeutet port 0x2f8, IO_COM3
bedeutet port 0x3e8 und IO_COM4
steht für port 0x2e8. Die angegebenen
IO-Adressen sind genau wie die Interrupts 4, 3, 5 und 9
üblich für serielle Schnittstellen. Beachten Sie
bitte, dass sich normale serielle Schnittstellen auf ISA-Bussen
keine Interrupts teilen können.
Multiportkarten besitzen zusätzliche Schaltkreise, die es
allen 16550As auf der Karte erlauben, sich einen oder zwei
Interrupts zu teilen.GerätedateienDie meisten Geräte im Kernel werden durch
Gerätedateien in /dev angesprochen. Die
sio Geräte werden durch
/dev/ttydN
für eingehende Verbindungen und durch
/dev/cuaaN für
ausgehende Verbindungen angesprochen. Zum Initialisieren der
Geräte stellt FreeBSD die Dateien
/dev/ttyidN und
/dev/cuaiaN zur
Verfügung. Diese Dateien werden benutzt, um
Kommunikationsparameter beim Öffnen eines Ports vorzugeben.
Für Modems, die zur Flusskontrolle
RTS/CTS benutzen, kann damit
crtscts gesetzt werden. Die Geräte
/dev/ttyldN und
/dev/cualaN (locking
devices) werden genutzt, um bestimmte Parameter festzuschreiben und
vor Veränderungen zu schützen. Weitere Informationen
zu Terminals finden Sie in &man.termios.4;, &man.sio.4; erklärt
die Dateien zum Initialisieren und Sperren der Geräte,
&man.stty.1; beschreibt schließlich
Terminal-Einstellungen.Erstellen von GerätedateienUnter FreeBSD 5.0 werden Gerätedateien im Dateisystem
&man.devfs.5; bei Bedarf automatisch angelegt. Wenn
Sie eine FreeBSD-Version mit devfs benutzen,
können Sie diesen Abschnitt überspringen.MAKEDEVZum Anlegen der Gerätedateien in
/dev wird MAKEDEV
benutzt. Um die Geräte der ersten seriellen Schnittstelle
für eingehende Verbindungen zu erstellen, wechseln Sie nach
/dev und setzen dort den Befehl
MAKEDEV ttyd0 ab. Für die zweite
serielle Schnittstelle (COM2 bzw. die
Schnittstelle mit der Nummer 1 führen Sie
analog MAKEDEV ttyd1 aus.Dabei erstellt MAKEDEV nicht nur die
/dev/ttydN
Gerätedateien, sondern auch die folgenden Dateien:
/dev/cuaaN,
/dev/cuaiaN,
/dev/cualaN,
/dev/ttyldN
und
/dev/ttyidN.Nachdem Sie die Gerätedateien erstellt haben, sollten
Sie die Zugriffsrechte der neuen Dateien, besonders die der
/dev/cua* Dateien überprüfen, um
sicherzustellen, dass wirklich nur jene Benutzer, die auf
diese Geräte zugreifen sollen, Schreib- und Leseberechtigungen
haben. Die Vorgabe der Zugriffsrechte sollte ausreichend
sein:crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1Auf die Geräte für ausgehende Verbindungen
dürfen uucp und Mitglieder der Gruppe
dialer zugreifen.Konfiguration der seriellen SchnittstellettydcuaaAnwendungen benutzen normalerweise die Geräte
ttydN oder
cuaaN. Das
Gerät besitzt einige Voreinstellungen für Terminal-I/O,
wenn es von einem Prozess geöffnet wird. Mit dem folgenden
Kommando können Sie sich diese Einstellungen ansehen:&prompt.root; stty -a -f /dev/ttyd1Sie können diese Einstellungen verändern, sie bleiben
allerdings nur solange wirksam, bis das Gerät geschlossen wird.
Wenn das Gerät danach wieder geöffnet wird, sind die
Voreinstellungen wieder wirksam. Um die Voreinstellungen zu
ändern, öffnen Sie das Gerät, das zum Initialisieren
dient und verändern dessen Einstellungen. Um beispielsweise
für ttyd5 den
Modus, 8-Bit Kommunikation und
Flusssteuerung einzuschalten, setzen Sie das folgende
Kommando ab:&prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoffrc-Dateienrc.serialIn /etc/rc.serial werden die
Voreinstellungen für seriellen Geräte vorgenommen.Um zu verhindern, dass Einstellungen von Anwendungen
verändert werden, können Sie die Geräte zum
Festschreiben von Einstellungen (locking devices)
benutzen. Wenn sie beispielsweise die Geschwindigkeit von
ttyd5 auf 57600 bps festlegen wollen,
benutzen Sie das folgende Kommando:&prompt.root; stty -f /dev/ttyld5 57600Eine Anwendung, die ttyd5 öffnet,
kann nun nicht mehr die Geschwindigkeit ändern und muss
57600 bps benutzen.Die Geräte zum Initialisieren und Festschreiben von
Einstellungen sollten selbstverständlich nur von
root beschreibbar sein.SeanKellyBeigetragen von TerminalsTerminalsWenn Sie sich nicht an der Konsole oder über ein Netzwerk an
Ihrem FreeBSD-System anmelden können, sind Terminals ein
bequemer und billiger Weg auf Ihr System zuzugreifen. Dieser
Abschnitt beschreibt wie Sie Terminals mit FreeBSD benutzen.TerminaltypenDas ursprüngliche &unix; System besaß keine Konsolen.
Zum Anmelden und Starten von Programmen wurden stattdessen
Terminals benutzt, die an den seriellen Schnittstellen des Rechners
angeschlossen waren. Dies entspricht der Benutzung eines Modems
zum Anmelden auf einem entfernten System, um dort mit einem
Terminalemulator im Textmodus zu arbeiten.Die Konsolen heutiger PCs besitzen sehr gute
Grafikfähigkeiten, trotzdem gibt es in fast jedem &unix; System
die Möglichkeit, sich über die serielle Schnittstelle
anzumelden; FreeBSD ist da keine Ausnahme. Sie können sich an
einem Terminal anmelden und dort jedes Textprogramm, das Sie
normalerweise an der Konsole oder in einem xterm
Fenster im X Window System benutzen, laufen lassen.Im kommerziellen Umfeld können Sie viele Terminals an ein
FreeBSD-System anschließen und diese auf den
Arbeitsplätzen Ihrer Angestellten aufstellen. Im privaten
Umfeld kann ein älterer IBM PC oder &macintosh; als Terminal
dienen. Damit verwandeln Sie einen Einzelarbeitsplatz in ein
leistungsfähiges Mehrbenutzersystem.FreeBSD kennt drei verschiedene Terminals:Dumb terminals,PCs, die als Terminals
fungieren,X Terminals.Die folgenden Abschnitte beschreiben jeden dieser Terminals.Dumb-TerminalsDumb-Terminals (unintelligente Datenstationen) sind
Geräte, die über die serielle Schnittstelle mit einem
Rechner verbunden werden. Sie werden
unintelligent genannt, weil sie nur Text senden
und empfangen und keine Programme laufen lassen können.
Alle Programme, wie Texteditoren, Compiler oder Spiele befinden
sich auf dem Rechner, der mit dem Terminal verbunden ist.Es gibt viele Dumb-Terminals, die von verschiedenen
Herstellern produziert werden, wie zum Beispiel der VT-100 von
Digital Equipment Corporation oder der WY-75 von Wyse. So gut
wie jeder der verschiedenen Terminals sollte mit FreeBSD
zusammenarbeiten. Manche High-End Geräte verfügen
sogar über Grafikfähigkeiten, die allerdings nur von
spezieller Software genutzt werden kann.Dumb-Terminals sind in Umgebungen beliebt, in denen keine
Grafikanwendungen, wie zum Beispiel X-Programme, laufen
müssen.PCs, die als Terminal fungierenJeder PC kann die Funktion eines
Dumb-Terminals, der ja nur
Text senden und empfangen kann, übernehmen. Dazu brauchen
Sie nur das richtige Kabel und eine
Terminalemulation, die auf dem PC
läuft.Diese Konfiguration ist im privaten Umfeld sehr beliebt. Wenn
Ihr Ehepartner zum Beispiel gerade an der FreeBSD-Konsole arbeitet,
können Sie einen weniger leistungsstarken PC, der als
Terminal mit dem FreeBSD-System verbunden ist, benutzen, um dort
gleichzeitig im Textmodus zu arbeiten.X-TerminalsX-Terminals sind die ausgereiftesten der verfügbaren
Terminals. Sie werden nicht mit der seriellen Schnittstelle
sondern mit einem Netzwerk, wie dem Ethernet, verbunden. Diese
Terminals sind auch nicht auf den Textmodus beschränkt,
sondern können jede X-Anwendung darstellen.X-Terminals sind hier nur der Vollständigkeit halber
aufgezählt. Die Einrichtung von X-Terminals wird in diesem
Abschnitt nicht beschrieben.KonfigurationIm Folgenden wird beschrieben, wie Sie Ihr FreeBSD-System
konfigurieren müssen, um sich an einem Terminal anzumelden.
Dabei wird vorausgesetzt, dass der Kernel bereits die
serielle Schnittstelle, die mit dem Terminal verbunden ist,
unterstützt. Weiterhin sollte der Terminal schon
angeschlossen sein.Aus wissen Sie, dass
init für das Initialisieren des Systems und
den Start von Prozessen zum Zeitpunkt des Systemstarts
verantwortlich ist. Unter anderem liest init/etc/ttys ein und startet für jeden
verfügbaren Terminal einen getty
Prozess. getty wiederum fragt beim
Anmelden den Benutzernamen ab und startet
login.Um Terminals auf Ihrem FreeBSD-System einzurichten, führen
Sie folgenden Schritte als root durch:Wenn er noch nicht da ist, fügen Sie einen Eintrag in
/etc/ttys für die serielle
Schnittstelle aus /dev ein.Geben Sie /usr/libexec/getty als
auszuführendes Programm an. Als Parameter für
getty geben Sie den passenden Verbindungstyp
aus /etc/gettytab an.Geben Sie den Terminaltyp an.Aktivieren Sie den Anschluss.Geben Sie die Sicherheit des Anschlusses an.Veranlassen Sie init/etc/ttys erneut zu lesen.Optional können Sie in /etc/gettytab
auch einen auf Ihre Zwecke angepassten Terminaltyp erstellen.
Die genaue Vorgehensweise wird in diesem Abschnitt nicht
erklärt, aber die Manualpages von &man.gettytab.5; und
&man.getty.8; enthalten dazu weitere Informationen.Hinzufügen eines Eintrags in
/etc/ttysIn /etc/ttys werden alle Terminals
aufgeführt, an denen Sie sich auf dem FreeBSD-System
anmelden können. Hier findet sich zum Beispiel ein Eintrag
für die erste virtuelle Konsole
/dev/ttyv0, der es Ihnen ermöglicht,
sich dort anzumelden. Die Datei enthält des Weiteren
Einträge für andere virtuelle Konsolen, serielle
Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal
konfigurieren wollen, fügen sie einen Eintrag für den
Namen des Gerätes aus /dev ohne das
Präfix /dev hinzu. Zum Beispiel wird
/dev/ttyv0 als
ttyv0 aufgeführt.In der Voreinstellung enthält
/etc/ttys Einträge für die ersten
vier seriellen Schnittstellen. Wenn Sie an eine von diesen einen
Terminal anschließen, brauchen Sie keinen weiteren Eintrag
hinzuzufügen.Einträge in /etc/ttys
hinzufügenAngenommen, wir wollen an ein System zwei Terminals
anschließen: Einen Wyse-50 und einen alten 286 IBM PC,
der mit Procomm einen VT-100
Terminal emuliert. Den Wyse-Terminal verbinden wir mit der
zweiten seriellen Schnittstelle und den 286 mit der sechsten
seriellen Schnittstelle (einem Anschluss auf einer
Multiportkarte). Die entsprechenden Einträge in
/etc/ttys würden dann wie folgt
aussehen:ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Das erste Feld gibt normalerweise den Namen der
Gerätedatei aus /dev an.Im zweiten Feld wird das auszuführende Kommando,
normal ist das &man.getty.8;, angegeben.
getty initialisiert und öffnet die
Verbindung, setzt die Geschwindigkeit und fragt den
Benutzernamen ab. Danach führt es &man.login.1;
aus.getty akzeptiert einen optionalen
Parameter auf der Kommandozeile, den Verbindungstyp, der
die Eigenschaften der Verbindung, wie die Geschwindigkeit
und Parität, festlegt. Die Typen und die damit
verbundenen Eigenschaften liest getty
aus /etc/gettytab./etc/gettytab enthält viele
Einträge sowohl für neue wie auch alte
Terminalverbindungen. Die meisten Einträge, die mit
std beginnen, sollten mit einem
festverdrahteten Terminal funktionieren. Für jede
Geschwindigkeit zwischen 110 bps und 115200 bps
gibt es einen std Eintrag. Natürlich
können Sie auch eigene Einträge erstellen,
Informationen dazu finden Sie in &man.gettytab.5;.Wenn Sie den Verbindungstyp in
/etc/ttys eintragen, stellen Sie
bitte sicher, dass die Kommunikationseinstellungen
auch mit denen des Terminals übereinstimmen.In unserem Beispiel verwendet der Wyse-50 keine
Parität und 38400 bps, der 286 PC benutzt ebenfalls
keine Parität und arbeitet mit 19200 bps.Das dritte Feld gibt den Terminaltyp an, der
normalerweise mit diesem Anschluss verbunden ist.
Für Einwählverbindungen wird oft
unknown oder dialup
benutzt, da sich die Benutzer praktisch mit beliebigen
Terminals oder Emulatoren anmelden können. Bei
festverdrahteten Terminals ändert sich der Typ nicht,
so dass Sie in diesem Feld einen richtigen Typ aus der
&man.termcap.5; Datenbank angeben können.In unserem Beispiel benutzen wir für den Wyse-50
den entsprechenden Typ aus &man.termcap.5;, der 286 PC
wird als VT-100, den er ja emuliert, angegeben.Das vierte Feld gibt an, ob der Anschluss
aktiviert werden soll. Wenn Sie hier on
angeben, startet init das Programm, das
im zweiten Feld angegeben wurde (normal
getty). Wenn Sie off
angeben, wird das Kommando aus dem zweiten Feld nicht
ausgeführt und folglich können Sie sich dann an
dem betreffenden Terminal nicht anmelden.Im letzten Feld geben Sie die Sicherheit des
Anschlusses an. Wenn Sie hier secure
angeben, darf sich root (oder jeder
Account mit der UID 0) über diese
Verbindung anmelden. Wenn Sie insecure
angeben, dürfen sich nur unprivilegierte Benutzer
anmelden. Diese können später mit &man.su.1;
oder einem ähnlichen Mechanismus zu
root wechseln.Es wird dringend empfohlen, insecure
nur für Terminals hinter verschlossenen Türen
zu verwenden, da Sie mit su leicht zum
Superuser werden können.init zwingen,
/etc/ttys erneut zu lesenNachdem Sie die nötigen Änderungen in
/etc/ttys vorgenommen haben, schicken Sie
init ein SIGHUP-Signal (hangup), um es zu
veranlassen, seine Konfigurationsdatei neu zu lesen:&prompt.root; kill -HUP 1Da init immer der erste Prozess auf
einem System ist, besitzt es immer die PID
1.Wenn alles richtig eingerichtet ist, alle Kabel angeschlossen
und die Terminals eingeschaltet sind, sollte für jeden
Terminal ein getty Prozess laufen und auf
jedem Terminal sollten Sie eine Anmeldeaufforderung sehen.FehlersucheSelbst wenn Sie den Anweisungen akribisch gefolgt sind, kann es
immer noch zu Fehlern beim Einrichten eines Terminals kommen. Die
folgende Aufzählung von Symptomen beschreibt mögliche
Lösungen:Es erscheint kein AnmeldepromptStellen Sie sicher, dass der Terminal verbunden und
eingeschaltet ist. Wenn ein PC als Terminal fungiert,
überprüfen Sie, dass die Terminalemulation auf
den richtigen Schnittstellen läuft.Stellen Sie sicher, dass Sie das richtige Kabel
verwenden und dass das Kabel fest mit dem Terminal und
dem FreeBSD-Rechner verbunden ist.Stellen Sie sicher, dass die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
System und dem Terminal gleich sind. Wenn Ihr Terminal einen
Bildschirm besitzt, überprüfen Sie die richtige
Einstellung von Helligkeit und Kontrast. Wenn Ihr Terminal
druckt, stellen Sie die ausreichende Versorgung mit Papier
und Tinte sicher.Überprüfen Sie mit ps,
dass der getty Prozess für
den Terminal läuft:&prompt.root; ps -axww|grep gettyFür jeden Terminal sollten Sie einen Eintrag sehen.
Aus dem folgenden Beispiel erkennen Sie, dass
getty auf der zweiten seriellen
Schnittstelle läuft und den Verbindungstyp
std.38400 aus
/etc/gettytab benutzt:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1Wenn getty nicht läuft,
überprüfen Sie, ob der Anschluss in
/etc/ttys aktiviert ist. Haben Sie
kill -HUP 1 abgesetzt, nachdem Sie
/etc/ttys geändert hatten?Wenn getty läuft, aber der
Terminal immer noch kein Anmeldeprompt ausgibt, oder Sie am
Anmeldeprompt nichts eingeben können, kann es sein,
dass Ihr Terminal oder Kabel keinen Hardware-Handshake
unterstützt. Ändern Sie dann den Eintrag
std.38400 in /etc/ttys
zu 3wire.38400. Nachdem Sie
/etc/ttys geändert haben, setzen
Sie das Kommando kill -HUP 1 ab. Der
Eintrag 3wire besitzt ähnliche
Eigenschaften wie der Eintrag std,
ignoriert aber den Hardware-Handshake. Wenn Sie den Eintrag
3wire verwenden, müssen Sie
vielleicht die Geschwindigkeit verkleinern oder die
Software-Flusssteuerung aktivieren, um
Pufferüberläufe zu vermeiden.Es erscheinen nur unverständliche ZeichenStellen Sie sicher, dass die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
System und dem Terminal gleich sind. Kontrollieren Sie den
getty Prozess und stellen Sie sicher,
dass der richtige Verbindungstyp aus
/etc/gettytab benutzt wird. Wenn das
nicht der Fall ist, editieren Sie
/etc/ttys und setzen das Kommando
kill-HUP 1 ab.Zeichen erscheinen doppelt und eingegebene
Passwörter erscheinen im KlartextStellen Sie den Terminal oder die Terminalemulation von
half duplex oder local echo auf
full duplex. um.GuyHelmerBeigetragen von SeanKellyMit Anmerkungen von EinwählverbindungenEinwählverbindungenDas Einrichten von Einwählverbindungen ähnelt dem
Anschließen von Terminals, nur dass Sie anstelle eines
Terminals ein Modem verwenden.Externe und interne ModemsExterne Modems sind für Einwählverbindungen besser
geeignet, da sie die Konfiguration in nicht flüchtigem RAM
speichern können. Zudem verfügen Sie über
Leuchtanzeigen, die den Status wichtiger RS-232 Signale
anzeigen und unter Umständen Besucher beeindrucken
können.Interne Modems verfügen normalerweise nicht über
nicht flüchtiges RAM und lassen sich meist nur über
DIP-Schalter konfigurieren. Selbst wenn ein internes Modem
Leuchtanzeigen besitzt, sind diese meist schwer einzusehen, wenn
das Modem eingebaut ist.Modems und KabelModemMit einem externen Modem müssen Sie das richtige Kabel
benutzen: Ein Standard RS-232C Kabel, bei dem die folgenden
Signale miteinander verbunden sind, sollte ausreichen:Transmitted Data (SD)Received Data (RD)Request to Send (RTS)Clear to Send (CTS)Data Set Ready (DSR)Data Terminal Ready (DTR)Carrier Detect (CD)Signal Ground (SG)Ab Geschwindigkeiten von 2400 bps benötigt FreeBSD die
Signale RTS und CTS
für die Flusssteuerung. Das Signal
CD zeigt an, ob ein Träger vorliegt, das
heißt ob die Verbindung aufgebaut ist oder beendet wurde.
DTR zeigt an, dass das Gerät
betriebsbereit ist. Es gibt einige Kabel, bei denen nicht alle
nötigen Signale verbunden sind. Wenn Sie Probleme der Art
haben, dass zum Beispiel die Sitzung nicht beendet wird,
obwohl die Verbindung beendet wurde, kann das an einem solchen
Kabel liegen.Wie andere &unix; Betriebssysteme auch, benutzt FreeBSD
Hardwaresignale, um festzustellen, ob ein Anruf
beantwortet wurde, eine Verbindung beendet wurde, oder um die
Verbindung zu schließen und das Modem zurückzusetzen.
FreeBSD vermeidet es, dem Modem Kommandos zu senden, oder den
Statusreport des Modems abzufragen. Falls Sie ein Benutzer
von PC-basierenden Bulletin Board Systemen sind, mag Sie das
verwundern.SchnittstellenbausteineFreeBSD unterstützt EIA RS-232C (CCITT V.24) serielle
Schnittstellen, die auf den NS8250, NS16450, NS16550 oder NS16550A
Bausteinen basieren. Die Bausteine der Serie 16550 verfügen
über einen 16 Byte großen Puffer, der als FIFO angelegt
ist. Wegen Fehler in der FIFO-Logik kann der Puffer in einem 16550
Baustein allerdings nicht genutzt werden, das heißt der
Baustein muss als 16450 betrieben werden. Bei allen
Bausteinen ohne Puffer und dem 16550 Baustein muss jedes
Byte einzeln von dem Betriebssystem verarbeitet werden, was
Fehler bei hohen Geschwindigkeiten oder großer Systemlast
erzeugt. Es sollten daher nach Möglichkeit serielle
Schnittstellen, die auf 16550A Bausteinen basieren, eingesetzt
werden.ÜberblickgettyWie bei Terminals auch, startet init für
jede serielle Schnittstelle, die eine Einwählverbindung zur
Verfügung stellt, einen getty Prozess.
Wenn das Modem beispielsweise an /dev/ttyd0
angeschlossen ist, sollte in der Ausgabe von ps
ax eine Zeile wie die folgende erscheinen: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0Wenn sich ein Benutzer einwählt und die Verbindung
aufgebaut ist, zeigt das Modem dies durch das CD
Signal (Carrier Detect) an. Der Kernel merkt, dass ein Signal
anliegt und vollendet das Öffnen der Schnittstelle durch
getty. Dann sendet getty das
Anmeldeprompt mit der ersten für die Verbindung vereinbarten
Geschwindigkeit und wartet auf eine Antwort. Wenn die Antwort
unverständlich ist, weil zum Beispiel die Geschwindigkeit des
Modems von gettys Geschwindigkeit abweicht,
versucht getty die Geschwindigkeit solange
anzupassen, bis es eine verständliche Antwort
erhält./usr/bin/logingetty führt, nachdem der Benutzer seinen
Namen eingegeben hat, /usr/bin/login aus,
welches das Passwort abfragt und danach die Shell des
Benutzers startet.KonfigurationsdateienDrei Konfigurationsdateien in /etc
steuern, ob eine Einwahl in Ihr FreeBSD-System möglich ist.
Die erste, /etc/gettytab, konfiguriert den
/usr/libexec/getty Dæmon. In
/etc/ttys wird festgelegt, auf welchen
Schnittstellen /sbin/init einen
getty Prozess startet. Schließlich
haben Sie in /etc/rc.serial die
Möglichkeit, Schnittstellen zu initialisieren.Es gibt zwei Ansichten darüber, wie Modems für
Einwählverbindungen unter &unix; zu konfigurieren sind. Zum
einen kann die Geschwindigkeit zwischen dem Modem und dem Computer
fest eingestellt werden. Sie ist damit unabhängig von der
Geschwindigkeit, mit der sich der entfernte Benutzer einwählt.
Dies hat den Vorteil, dass der entfernte Benutzer das
Anmeldeprompt sofort bekommt. Der Nachteil bei diesem Verfahren
ist, dass das System die tatsächliche Geschwindigkeit
der Verbindung nicht kennt. Damit können bildschirmorientierte
Programme wie Emacs ihren
Bildschirmaufbau nicht an langsame Verbindungen anpassen,
um die Antwortzeiten zu verbessern.
Die andere Möglichkeit besteht darin, die Geschwindigkeit
der RS-232 Schnittstelle des lokalen Modems an die Geschwindigkeit
des entfernten Modems anzupassen. Bei einer V.32bis (14400 bps)
Verbindung kann das lokale Modem die RS-232 Schnittstelle mit
19200 bps betreiben, während bei einer Verbindung mit
2400 bps die RS-232 Schnittstelle mit 2400 bps
betrieben wird. Da getty die
Verbindungsgeschwindigkeit des Modems nicht kennt, startet es
den Anmeldevorgang mit der Ausgabe
von login: und wartet auf eine Antwort. Wenn der
Benutzer der Gegenstelle nun nur unverständliche Zeichen
erhält, muss er solange Enter
drücken, bis das Anmeldeprompt erscheint. Solange die
Geschwindigkeiten nicht übereinstimmen, sind die Antworten der
Gegenstelle für getty ebenfalls
unverständlich. In diesem Fall wechselt
getty zur nächsten Geschwindigkeit und gibt
wieder login: aus. In aller Regel erhält der
Benutzer der Gegenstelle nach ein bis zwei Tastendrücken
eine erkennbare Anmeldeaufforderung. Diese Anmeldeprozedur sieht
nicht so sauber wie die Methode mit einer festen Geschwindigkeit
aus, bietet dem Benutzer einer langsamen Verbindung allerdings den
Vorteil, dass sich bildschirmorientierte Programme an die
Geschwindigkeit anpassen können.Im Folgenden wird die Konfiguration für beide Methoden
besprochen, doch die Methode der angepassten Geschwindigkeit
wird bei der Diskussion bevorzugt./etc/gettytab/etc/gettytabMit /etc/gettytab wird &man.getty.8; im
Stil von &man.termcap.5; konfiguriert. Das Format dieser Datei und
die Bedeutung der Einträge wird in &man.gettytab.5;
beschrieben.Konfiguration für feste GeschwindigkeitWenn Sie die Modemgeschwindigkeit vorgeben, werden Sie in
/etc/gettytab nichts ändern
müssen.Konfiguration für angepasste GeschwindigkeitIn /etc/gettytab müssen
Einträge für die Geschwindigkeiten, die Sie benutzen
wollen, sein. Wenn Sie ein 2400 bps Modem besitzen,
können Sie wahrscheinlich den schon vorhandenen
D2400 Eintrag benutzen.#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:Wenn Sie ein Modem mit einer höheren Geschwindigkeit
besitzen, müssen Sie wahrscheinlich in
/etc/gettytab weitere Einträge
erstellen. Hier ist ein Beispiel, das Sie mit einem 14400 bps
Modem benutzen können:#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:Die damit erzeugten Verbindungen verwenden 8 Bit und keine
Parität.Im obigen Beispiel startet die Geschwindigkeit bei
19200 bps (eine V.32bis Verbindung) und geht dann
über 9600 bps (V.32), 400 bps, 1200 bps
und 300 bps wieder zurück zu 19200 bps.
Das Schlüsselwort nx=
(next table) sorgt für
das zyklische Durchlaufen der Geschwindigkeiten. Jede Zeile
zieht zudem noch mit tc=
(table continuation)
die Vorgabewerte für die jeweilige Geschwindigkeit an.Wenn Sie ein 28800 bps Modem besitzen und/oder Kompression
mit einem 14400 bps Modem benutzen wollen, brauchen Sie
höhere Geschwindigkeiten als 19200 bps. Das folgende
Beispiel startet mit 57600 bps:#
# Additions for a V.32bis or V.34 Modem
# Starting at 57600 bps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:Wenn Sie eine langsame CPU oder ein stark ausgelastetes
System besitzen und sich kein 16550A in Ihrem System befindet,
erhalten Sie bei 57600 bps vielleicht
sio Fehlermeldungen der Form silo
overflow./etc/ttys/etc/ttys/etc/ttys wurde bereits in besprochen. Die Konfiguration für
Modems ist ähnlich, allerdings braucht
getty ein anderes Argument und es muss
ein anderer Terminaltyp angegeben werden. Der Eintrag für
beide Methoden (feste und angepasste Geschwindigkeit) hat die
folgende Form:ttyd0 "/usr/libexec/getty xxx" dialup onDas erste Feld der obigen Zeile gibt die Gerätedatei
für diesen Eintrag an – ttyd0
bedeutet, dass getty mit
/dev/ttyd0 arbeitet. Das zweite Feld
"/usr/libexec/getty xxx"
gibt das Kommando an, das init für dieses
Gerät startet (xxx wird durch
einen passenden Eintrag aus /etc/gettytab
ersetzt). Die Vorgabe für den Terminaltyp, hier
dialup, wird im dritten Feld angegeben. Das
vierte Feld, on, zeigt
init an, dass die Schnittstelle aktiviert
ist. Im fünften Feld könnte noch
secure angegeben werden, um Anmeldungen von
root zu erlauben, doch sollte das wirklich
nur für physikalisch sichere Terminals, wie die
Systemkonsole, aktiviert werden.Die Vorgabe für den Terminaltyp,
dialup im obigen Beispiel, hängt von lokalen
Gegebenheiten ab. Traditionell wird dialup
für Einwählverbindungen verwendet, so dass die
Benutzer in ihren Anmeldeskripten den Terminaltyp auf ihren
Terminal abstimmen können, wenn der Typ auf
dialup gesetzt ist. Wenn Sie aber
beispielsweise nur VT102 Terminals oder Emulatoren einsetzen,
können Sie den Terminaltyp hier auch fest auf
vt102 setzen.Nachdem Sie /etc/ttys geändert
haben, müssen Sie init ein
HUP Signal schicken, damit es die Datei wieder
einliest. Sie können dazu das folgende Kommando
verwenden:&prompt.root; kill -HUP 1Wenn Sie das System zum ersten Mal konfigurieren, sollten Sie
dieses Kommando erst ausführen, wenn Sie Ihr Modem richtig
konfiguriert und angeschlossen haben.Konfiguration für feste GeschwindigkeitDas Argument von getty muss in
diesem Fall eine feste Geschwindigkeit vorgeben. Der Eintrag
für ein Modem, das fest auf 19200 bps eingestellt ist,
könnte wie folgt aussehen:ttyd0 "/usr/libexec/getty std.19200" dialup onWenn Ihr Modem auf eine andere Geschwindigkeit eingestellt
ist, setzen Sie anstelle von std.19200 einen
passenden Eintrag der Form
std.speed ein.
Stellen Sie sicher, dass dies auch ein gültiger
Verbindungstyp aus /etc/gettytab
ist.Konfiguration für angepasste GeschwindigkeitDas Argument von getty muss hier auf
einen der Einträge aus /etc/gettytab
zeigen, der zu einer Kette von Einträgen gehört, die
die zu probierenden Geschwindigkeiten beschreiben. Wenn Sie
dem obigen Beispiel gefolgt sind und zusätzliche
Einträge in /etc/gettytab erzeugt
haben, können Sie die folgende Zeile verwenden:ttyd0 "/usr/libexec/getty V19200" dialup on/etc/rc.serialrc-Dateienrc.serialModems, die höhere Geschwindigkeiten unterstützen,
zum Beispiel V.32, V.32bis und V.34 Modems, benutzen
Hardware-Flusssteuerung (RTS/CTS). Für die
entsprechenden Schnittstellen können Sie die
Flusssteuerung mit stty in
/etc/rc.serial einstellen.Um beispielsweise die Hardware-Flusssteuerung
für die Geräte zur Ein- und Auswahl der zweiten
seriellen Schnittstelle (COM2)
zu aktivieren, benutzen Sie die Dateien zur Initialisierung der
entsprechenden Geräte und fügen die folgenden Zeilen in
/etc/rc.serial hinzu:# Serial port initial configuration
stty -f /dev/ttyid1 crtscts
stty -f /dev/cuaia crtsctsModemkonfigurationWenn Sie ein Modem besitzen, das seine Konfiguration in nicht
flüchtigem RAM speichert, werden Sie ein Terminalprogramm wie
Telix unter &ms-dos; oder tip unter FreeBSD
benötigen, um die Parameter einzustellen. Verbinden Sie sich
mit derselben Geschwindigkeit, die getty
zuerst benutzen würde, mit dem Modem und treffen Sie folgende
Einstellungen:DCD ist eingeschaltet, wenn das
Trägersignal des entfernten Modems erkannt wird.Im Betrieb liegt DTR an. Bei einem Verlust
von DTR legt das Modem auf und setzt sich zurück.CTS Flusssteuerung ist für
ausgehende Daten aktiviert.XON/XOFF Flusssteuerung ist
ausgeschaltet.RTS Flusssteuerung ist für
eingehende Daten aktiviert.Keine Rückmeldungen ausgeben.Die Echo-Funktion ist deaktiviert.In der Dokumentation Ihres Modems finden Sie die nötigen
Befehle, die Sie absetzen müssen, und/oder nötigen
DIP-Schalterstellungen, um die obigen Einstellungen zu
treffen.Für ein externes 14400 &usrobotics; &sportster; gelten zum
Beispiel die folgenden Befehle:ATZ
AT&C1&D2&H1&I0&R2&WBei dieser Gelegenheit können Sie auch gleich andere
Einstellungen, zum Beispiel ob Sie V42.bis und/oder MNP5
Kompression benutzen wollen, an Ihrem Modem vornehmen.Bei einem externen 14400 &usrobotics; &sportster;
müssen Sie auch noch einige DIP-Schalter einstellen.
Die folgenden Einstellungen können Sie vielleicht
als Beispiel für andere Modems verwenden:Schalter 1: OBEN – DTR normalSchalter 2: N/A (Rückmeldungen als Text/numerische
Rückmeldungen)Schalter 3: OBEN – Keine Rückmeldungen
ausgebenSchalter 4: UNTEN – Echo-Funktion ausSchalter 5: OBEN – Rufannahme aktiviertSchalter 6: OBEN – Carrier Detect normalSchalter 7: OBEN – Einstellungen aus dem NVRAM ladenSchalter 8: N/A (Smart Mode/Dumb Mode)Für Einwählverbindungen sollten die
Rückmeldungen deaktiviert sein, da sonst
getty dem Modem das Anmeldeprompt
login: schickt und das Modem im Kommandomodus das
Prompt wieder ausgibt (Echo-Funktion) oder eine Rückmeldung gibt.
Das führt dann zu einer länglichen und fruchtlosen
Kommunikation zwischen dem Modem und
getty.Konfiguration für feste GeschwindigkeitDie Geschwindigkeit zwischen Modem und Computer muss auf
einen festen Wert eingestellt werden. Mit einem externen 14400
&usrobotics; &sportster; Modem setzen die folgenden Kommandos die
Geschwindigkeit auf den Wert der Datenendeinrichtung fest:ATZ
AT&B1&WKonfiguration für angepasste GeschwindigkeitIn diesem Fall muss die Geschwindigkeit der seriellen
Schnittstelle des Modems der eingehenden Geschwindigkeit
angepasst werden. Für ein externes
14400 &usrobotics; &sportster;
Modem erlauben die folgenden Befehle eine Anpassung der
Geschwindigkeit der seriellen Schnittstelle für
Verbindungen, die keine Fehlerkorrektur verwenden:ATZ
AT&B2&WVerbindungen mit Fehlerkorrektur (V.42, MNP) verwenden die
Geschwindigkeit der Datenendeinrichtung.Überprüfen der ModemkonfigurationDie meisten Modems verfügen über Kommandos, die die
Konfiguration des Modems in lesbarer Form ausgeben. Auf einem
externen 14400 &usrobotics; &sportster; zeigt
ATI5 die Einstellungen im nicht
flüchtigen RAM an. Um die wirklichen
Einstellungen unter Berücksichtigung der DIP-Schalter zu
sehen, benutzen Sie ATZ gefolgt von
ATI4.Wenn Sie ein anderes Modem benutzen, schauen Sie bitte in der
Dokumentation Ihres Modems nach, wie Sie die Konfiguration des
Modems überprüfen können.FehlersucheBei Problemen können Sie die Einwählverbindung anhand
der folgenden Punkte überprüfen:Überprüfen des FreeBSD-SystemsSchließen Sie das Modem an das FreeBSD-System an und
booten Sie das System. Wenn Ihr Modem über
Statusindikatoren verfügt, überprüfen Sie, ob der
DTR Indikator leuchtet, wenn das Anmeldeprompt
erscheint. Dies zeigt an, dass das FreeBSD-System einen
getty Prozess auf der entsprechenden
Schnittstelle gestartet hat und das Modem auf einkommende
Verbindungen wartet.Wenn der DTR-Indikator nicht leuchtet,
melden Sie sich an dem FreeBSD-System an und überprüfen mit
ps ax, ob FreeBSD einen
getty-Prozess auf der entsprechenden
Schnittstelle gestartet hat. Unter den angezeigten Prozessen
sollten Sie ähnliche wie die folgenden finden: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1Wenn das Modem noch keinen Anruf entgegengenommen hat und Sie
stattdessen die folgende Zeile sehen 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0bedeutet dies, dass getty die
Schnittstelle schon geöffnet hat und zeigt Kabelprobleme
oder eine falsche Modemkonfiguration an, da
getty die Schnittstelle erst dann öffnen
kann, wenn das CD Signal (Carrier Detect) vom
Modem anliegt.Wenn Sie keine getty-Prozesse auf den
gewünschten ttydN
Ports finden, untersuchen Sie bitte /etc/ttys
auf Fehler. Suchen Sie auch in /var/log/messages
nach Meldungen von init oder
getty. Wenn Sie dort Meldungen finden,
sollten Sie noch einmal die beiden Konfigurationsdateien
/etc/ttys und /etc/gettytab
nach Fehlern durchsehen. Überprüfen Sie auch, ob die
Gerätedateien
/dev/ttydN
vorhanden sind.EinwählversuchVersuchen Sie, sich in Ihr System einzuwählen. Auf dem
entfernten System stellen Sie bitte die folgenden
Kommunikationsparameter ein: 8 Bit, keine Parität, ein
Stop-Bit. Wenn Sie kein Anmeldeprompt erhalten oder nur
unleserliche Zeichen sehen, drücken Sie mehrmals, in
Abständen von ungefähr einer Sekunde,
Enter. Wenn Sie immer noch nicht die
login: Meldung sehen, schicken Sie ein
BREAK Kommando. Wenn Sie zur Einwahl ein
Highspeed-Modem benutzen, verwenden Sie eine feste
Geschwindigkeit auf der seriellen Schnittstelle des Modems
(AT&B1 für ein
&usrobotics; &sportster;).Wenn Sie jetzt immer noch kein Anmeldeprompt erhalten,
überprüfen Sie nochmals /etc/gettytab
und stellen sicher, dassder Verbindungstyp in /etc/ttys zu
einem gültigen Eintrag in /etc/gettytab
gehört,jeder der nx= Einträge in
gettytab gültig ist undjeder tc= Eintrag auf einen
gültigen Eintrag in gettytab
verweist.Wenn das Modem an Ihrem FreeBSD-System auf einen eingehenden Anruf
nicht antwortet, stellen Sie sicher, dass das Modem so
konfiguriert ist, dass es einen Anruf beantwortet, wenn
DTR anliegt. Wenn Ihr Modem Statusindikatoren
besitzt, können Sie das Anliegen von DTR
anhand der Leuchten überprüfen.Wenn Sie alles schon mehrfach überprüft haben und
es immer noch noch nicht funktioniert, machen Sie erst einmal
eine Pause, bevor Sie weitermachen. Wenn es immer noch nicht
funktioniert, können Sie eine Mail an die Mailingliste
&a.de.questions; schicken, in der Sie Ihr Modem und Ihr Problem
beschreiben und Ihnen sollte geholfen werden.Verbindungen nach AußenDie folgenden Ratschläge beschreiben, wie Sie mit einem
Modem eine Verbindung zu einem anderen Computer herstellen. Dies
können Sie nutzen, um sich auf einem entfernten Computer
anzumelden, oder um eine Verbindung zu einem BBS (Bulletin Board
System) herzustellen.Weiterhin ist diese Art von Verbindungen nützlich, wenn mal
Ihr PPP nicht funktioniert. Wenn Sie zum Beispiel eine Datei
mit FTP übertragen wollen und das über PPP gerade nicht
möglich ist, melden Sie sich auf dem entfernten Rechner an und
führen dort die FTP-Sitzung durch. Die Dateien können Sie
danach mit zmodem auf den lokalen Rechner übertragen.Mein Hayes Modem wird nicht unterstützt – was kann
ich tun?Eigentlich ist die Onlinehilfe für tip
nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen
Hayes Wähler. Verwenden Sie einfach at=hayes
in /etc/remote.Der Hayes-Treiber ist nicht schlau genug, um ein paar der
erweiterten Funktionen von neueren Modems zu erkennen –
Nachrichten wie BUSY,
NO DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von
ATX0&W abschalten, wenn Sie
tip benutzen.Der Anwahl-Timeout von tip beträgt 60
Sekunden. Ihr Modem sollte weniger verwenden, oder
tip denkt, dass ein Kommunikationsfehler
vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte Version
von tip Hayes Modems noch nicht
vollständig. Die Lösung ist,
tipconf.h in
/usr/src/usr.bin/tip/tip zu editieren.
Dafür benötigen Sie natürlich die Quellcode
Distribution.Ändern Sie die Zeile #define HAYES 0
zu #define HAYES 1. Dann führen Sie
make und make install aus.
Es sollte jetzt funktionieren.Wie soll ich die AT-Befehle eingeben?/etc/remoteErstellen Sie einen so genannten direct
Eintrag in /etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuaa0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:cuaa0:dv=/dev/cuaa0:br#19200:pa=noneVerwenden Sie die höchste bps Rate, die Ihr Modem in der
br Fähigkeit unterstützt. Geben Sie dann tip
cuaa0 ein und Sie sind mit Ihrem
Modem verbunden.Wenn auf Ihrem System keine /dev/cuaa0
Datei existiert, geben Sie Folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV cuaa0Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die serielle
Schnittstelle (/dev/cuaa0) und
speed für die Geschwindigkeit
(57600). Wenn Sie mit dem Eingeben der AT
Befehle fertig sind, beenden Sie mit ~..Wieso funktioniert das @ Zeichen für
die pn Fähigkeit nicht?Das @ Zeichen in der
Telefonnummerfähigkeit sagt tip, dass
es in der Datei /etc/phones nach einer Nummer
suchen soll. Aber @ ist auch ein spezielles
Zeichen in den Dateien, in denen Fähigkeiten beschrieben
werden, wie /etc/remote. Schreiben Sie es mit
einem Backslash:pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag in
/etc/remote. Zum Beispiel:tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:Mit dem folgenden Befehl können Sie dann
wählen:&prompt.root; tip -115200 5551234Sollten Sie cu gegenüber
tip bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:und benutzen zum Wählen das Kommando:&prompt.root; cu 5551234 -s 115200Muss ich dabei jedes Mal die bps-Rate angeben?Schreiben Sie einen tip1200- oder einen
cu1200-Eintrag, aber geben Sie auch die bps-Rate
an, die Ihr Modem wirklich unterstützt. Leider denkt
&man.tip.1;, dass 1200 bps ein guter Standardwert ist und
deswegen sucht es nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht 1200 bps
benutzen.Wie kann ich möglichst komfortabel über einen
Terminal-Server auf verschiedene Rechner zugreifen?Sie müssen nicht warten bis Sie verbunden sind, und
jedes Mal CONNECT Rechner
eingeben, benutzen Sie tips
cm-Fähigkeit. Sie können diese
Einträge in /etc/remote verwenden:pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:Mit den Befehlen tip pain oder tip
muffin können Sie eine Verbindungen zu den Rechnern
pain oder muffin herstellen; mit
tip deep13 verbinden Sie sich mit dem
Terminalserver.Kann tip mehr als eine Verbindung für
jede Seite ausprobieren?Das ist oft ein Problem, wenn eine Universität mehrere
Telefonleitungen hat und viele tausend Studenten diese benutzen
wollen.Erstellen Sie einen Eintrag für Ihre Universität in
/etc/remote und benutzen Sie
@ für die
pn-Fähigkeit:big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:Listen Sie die Telefonnummern der Universität in
/etc/phones auf:big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114tip probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie,
dass tip beim Versuchen eine Verbindung
herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife
laufen.Warum muss ich zweimal
CtrlP
tippen, um ein
CtrlP
zu senden?CtrlP
ist das voreingestellte Zeichen, mit dem eine Übertragung
erzwungen werden kann und wird benutzt, um tip
zu sagen, dass das nächste Zeichen direkt gesendet werden
soll und nicht als Fluchtzeichen interpretiert werden soll. Mit
Hilfe der Fluchtsequenz ~s, mit der man
Variablen setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=Zeichen
gefolgt von Enter ein. Für
Zeichen können Sie ein beliebiges
einzelnes Zeichen einsetzen. Wenn Sie
Zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2
oder
CtrlLeertaste eingeben können. Ein guter Wert für
Zeichen ist
ShiftCtrl6, welches nur auf wenigen Terminal Servern benutzt
wird.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc das
Folgende einstellen:force=<single-char>Warum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA, eingegeben haben, das raise-Zeichen von
tip, das speziell für Leute mit defekten
caps-lock Tasten eingerichtet wurde. Benutzen Sie
~s wie oben und setzen Sie die Variable
raisechar auf etwas, das Ihnen angemessen
erscheint. Tatsächlich kann die Variable auf das gleiche
Zeichen wie das force-Zeichen gesetzt werden, wenn
Sie diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc Datei,
perfekt für Emacs Benutzer, die oft
Ctrl2
und
CtrlA
tippen müssen:force=^^
raisechar=^^Geben Sie für ^^ShiftCtrl6 ein.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie mit ~p (put) und
~t (take) Dateien senden und empfangen. Diese
Befehle lassen cat und echo
auf dem entfernten System laufen, um Dateien zu empfangen und zu
senden. Die Syntax ist:~plocal-fileremote-file~tremote-filelocal-fileEs gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein
anderes Protokoll, wie zmodem, benutzen.Wie kann ich zmodem mit tip laufen
lassen?Um Dateien zu empfangen, starten Sie das Programm zum Senden
auf dem entfernten Computer. Geben Sie dann
~C rz ein, um die Dateien lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum Empfangen
auf dem entfernten Computer. Geben Sie dann
~C sz Dateien ein,
um Dateien auf das entfernte System zu senden.KazutakaYOKOTABeigesteuert von BillPaulAuf Grundlage eines Dokuments von Einrichten der seriellen Konsoleserielle KonsoleEinführungFreeBSD kann ein System mit einem Dumb-Terminal (unintelligente
Datenstation) an einer seriellen Schnittstelle als Konsole booten.
Diese Konfiguration ist besonders nützlich für
Systemadministratoren, die FreeBSD auf Systemen ohne Tastatur oder
Monitor installieren wollen, und Entwickler, die den Kernel oder
Gerätetreiber debuggen.Wie in beschrieben, besitzt FreeBSD drei
Bootphasen. Der Code für die ersten beiden Bootphasen befindet
sich im Bootsektor am
Anfang der FreeBSD-Slice der Bootplatte. Dieser Bootblock
lädt den Bootloader (/boot/loader) in
Phase drei.Um eine serielle Konsole einzurichten, müssen Sie den
Bootblock, den Bootloader und den Kernel konfigurieren.Konfiguration der KonsoleBereiten Sie ein serielles Kabel vor.NullmodemkabelSie benötigen entweder ein Nullmodemkabel oder ein
serielles Standard Kabel mit einem Nullmodemkabel-Adapter. In
wurden serielle Kabel
beschrieben.Trennen Sie die Tastatur vom Computer.Die meisten PC Systeme suchen beim Power On Self Test
(POST) nach einer Tastatur und geben eine Fehlermeldung aus,
wenn sie keine finden. Einige Maschinen werden sich sogar
weigern, ohne Tastatur zu booten.Wenn Ihr Rechner trotz einer Fehlermeldung normal
weiterbootet, brauchen Sie weiter nichts zu tun.
Beispielsweise geben einige Maschinen mit einem Phoenix BIOS
nur Keyboard failed aus und booten dann
normal weiter.Wenn Ihr System ohne Tastatur nicht booten will,
müssen Sie das BIOS so konfigurieren, das es diesen Fehler
ignoriert (wenn das möglich ist). Das Handbuch zu Ihrem
Motherboard sollte beschreiben, wie das zu bewerkstelligen
ist.Wenn Sie im BIOS Not installed für
die Tastatur einstellen, heißt das nicht, dass Sie
die Tastatur nicht benutzen können, sondern dies weist
das BIOS nur an, nicht nach einer Tastatur zu suchen. Trotz
dieser Einstellung können Sie die Tastatur angeschlossen
lassen und sie später verwenden.Wenn Ihr System über eine &ps2; Maus verfügt,
müssen Sie diese wahrscheinlich auch abziehen. Da sich
die &ps2; Maus und die Tastatur einige Hardwarekomponenten
teilen, kann das dazu führen, dass die
Hardwareerkennung fälschlicherweise eine Tastatur findet,
wenn eine &ps2; Maus angeschlossen ist. Gateway 2000
Pentium 90 MHz Systemen wird dieses Verhalten nachgesagt.
Normalerweise ist das kein Problem, da eine Maus ohne
Tastatur sowieso nicht sinnvoll einsetzbar ist.Schließen Sie einen Dumb-Terminal an
COM1 (sio0)
an.Wenn Sie keinen Dumb-Terminal besitzen, können Sie
einen alten PC/XT mit einem Terminalemulator oder die serielle
Schnittstelle eines anderen &unix; Rechners benutzen. Sie
benötigen auf jeden Fall eine freie erste serielle
Schnittstelle (COM1). Zurzeit ist es
nicht möglich, in den Bootblöcken eine andere
Schnittstelle zu konfigurieren, ohne diese neu zu kompilieren.
Wenn Sie COM1 bereits für ein
anderes Gerät benutzen, müssen Sie dieses Gerät
temporär entfernen und einen neuen Bootblock sowie Kernel
installieren, wenn Ihr FreeBSD erst einmal installiert ist.
Auf einem Server sollte COM1 ohnehin
verfügbar sein. Wenn Sie die Schnittstelle für ein
anderes Gerät benutzen und Sie dieses nicht auf
COM2 (sio1)
legen können, sollten Sie sich nicht an erster Stelle mit
dem Aufsetzen einer seriellen Konsole beschäftigen.Stellen Sie sicher, dass Ihre Kernelkonfiguration die
richtigen Optionen für COM1
(sio0) enthält.Relevante Optionen sind:0x10Aktiviert die Konsolenunterstützung für
dieses Gerät. Zurzeit kann nur ein Gerät die
Konsolenunterstützung aktiviert haben. Das erste,
in der Konfigurationsdatei aufgeführte Gerät,
mit dieser Option, verfügt über eine aktivierte
Konsolenunterstützung. Beachten Sie, dass
diese Option alleine nicht ausreicht, um die serielle
Konsole zu aktivieren. Setzen Sie entweder noch die
nachfolgend diskutierte Option oder verwenden Sie beim
Booten, wie unten beschrieben, den Schalter
.0x20Das erste Gerät in der Kernelkonfigurationsdatei
mit dieser Option wird, unabhängig von dem unten
diskutierten Schalter , zur Konsole.
Dies ersetzt COMCONSOLE der FreeBSD
Versionen 2.X. Die Option
muss zusammen mit
verwendet werden.0x40Reserviert dieses Gerät und sperrt es für
normale Zugriffe. Sie sollten diese Option nicht auf dem
Gerät setzen, das Sie als serielle Konsole verwenden
wollen. Der Zweck dieser Option ist es, dieses
Gerät für das Remote-Debuggen zu reservieren.
Das
FreeBSD Developers' Handbook enthält dazu weitere
Informationen.Unter FreeBSD 4.0 und späteren Versionen hat sich
die Bedeutung dieser Option leicht geändert und es
existiert eine weitere Option, um ein Gerät zum
Remote-Debuggen zu verwenden.Beispiel:device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4Weitere Einzelheiten entnehmen Sie bitte
&man.sio.4;.Wenn diese Optionen nicht gesetzt sind, müssen Sie auf
einer anderen Konsole beim Booten UserConfig starten oder den
Kernel neu kompilieren.Erstellen Sie boot.config im
Rootverzeichnis der a-Partition des
Bootlaufwerks.Der Code des Bootblocks entnimmt dieser Datei, wie Sie Ihr
System booten möchten. Um die serielle Konsole zu
aktivieren, müssen Sie hier eine oder mehrere Optionen
(alle in derselben Zeile) angeben. Die folgenden Optionen
stehen zur Auswahl der Konsole zur Verfügung:Schaltet zwischen der internen und der seriellen
Konsole um. Wenn Sie beispielsweise von der internen
Konsole (Bildschirm) booten, weist
den Bootloader und den Kernel an, die serielle
Schnittstelle als Konsole zu nehmen. Wenn die Konsole
normal auf der seriellen Schnittstelle liegt, wählen
Sie mit den Bildschirm aus.Schaltet zwischen Einzelkonsole und Dual-Konsole um.
Die Einzelkonsole ist entweder die interne Konsole
(der Bildschirm) oder die serielle Schnittstelle, je nach
dem Stand von . Im
Dual-Konsolen Betrieb ist die Konsole, unabhängig
von , gleichzeitig der Bildschirm und
die serielle Schnittstelle. Dies trifft aber nur zu,
wenn der Bootblock ausgeführt wird. Sobald der
Bootloader ausgeführt wird, wird die durch
gegebene Konsole die alleinige
Konsole.Veranlasst den Bootblock nach einer Tastatur zu
suchen. Wenn keine Tastatur gefunden wird, werden
und automatisch
gesetzt.Wegen Platzbeschränkungen in den
Bootblöcken kann nur
erweiterte Tastaturen erkennen. Tastaturen mit weniger
als 101 Tasten (und ohne F11 und F12 Tasten) werden
wahrscheinlich, wie vielleicht auch die Tastaturen
einiger Laptops, nicht erkannt. Wenn dies bei Ihrem
System der Fall ist, können Sie
nicht verwenden, da es leider noch keine Umgehung
für dieses Problem gibt.Benutzen Sie also entweder , um die
Konsole automatisch zu setzen, oder , um die
serielle Konsole zu verwenden.In boot.config können Sie auch
andere, in &man.boot.8; beschriebene Optionen,
aufnehmen.Mit Ausnahme von werden die Optionen an
den Bootloader (/boot/loader)
weitergegeben. Der Bootloader untersucht dann einzig
um festzustellen, welches Gerät die
Konsole wird. Wenn Sie also nur angegeben
haben, können Sie die serielle Schnittstelle nur als
Konsole verwenden während der Bootblock ausgeführt
wird. Danach wird der Bootloader, da ja
fehlt, den Bildschirm zur Konsole machen.Booten Sie die Maschine.Wenn Sie das FreeBSD-System starten, werden die
Bootblöcke den Inhalt von /boot.config
auf der Konsole ausgeben:/boot.config: -P
Keyboard: noDie zweite Zeile sehen Sie nur, wenn Sie in
/boot.config angegeben
haben. Sie zeigt an, ob eine Tastatur angeschlossen ist oder
nicht. Die Meldungen gehen je nach den Einstellungen in
/boot.config auf die interne Konsole, die
serielle Konsole, oder beide Konsolen.OptionenMeldungen erscheinen aufkeineder internen Konsoleder seriellen Konsoleder seriellen und der internen Konsoleder seriellen und der internen Konsole, mit Tastaturder internen Konsole, ohne Tastaturder seriellen KonsoleNach den oben gezeigten Meldungen gibt es eine kleine
Verzögerung bevor die Bootblöcke den Bootloader
laden und weitere Meldungen auf der Konsole erscheinen. Sie
können die Ausführung der Bootblöcke
unterbrechen, um zu überprüfen, ob auch alles richtig
aufgesetzt ist, brauchen das aber unter normalen Umständen
nicht zu tun.Drücken Sie eine Taste außer
Enter um den Bootvorgang zu unterbrechen. Sie
erhalten dann ein Prompt, an dem Sie weitere Eingaben
tätigen können:>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Je nach Inhalt von /boot.config
erscheint das Prompt auf der seriellen Konsole, der internen
Konsole oder beiden Konsolen. Wenn die Meldung auf der
richtigen Konsole erscheint, drücken Sie
Enter um fortzufahren.Wenn Sie das Prompt auf der seriellen Konsole erwartet
haben, dort aber nichts sehen, liegt ein Fehler in Ihren
Einstellungen vor. Als Umgehung geben Sie an der momentanen
Konsole ein, um den Bootblock und den
Bootloader auf die serielle Konsole umzustellen. Führen
Sie dann den Bootvorgang mit Enter weiter
und wenn das System gebootet hat, können Sie die
fehlerhaften Einstellungen korrigieren.Nachdem der Bootloader geladen wurde und Sie sich in der
dritten Bootphase befinden, können Sie immer noch zwischen der
internen und der seriellen Konsole auswählen. Setzen Sie dazu,
wie in beschrieben, die
entsprechenden Variablen des Bootloaders.ZusammenfassungDie folgende Übersicht zeigt, welche Konsole, abhängig
von den getroffenen Einstellungen, ausgewählt wird.Fall 1: Option 0x10 für
sio0device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneinterneserielleserielleserielleserielle und interneinterneinterneserielle und interneserielleserielle, mit Tastaturinterneinterneinterne, ohne Tastaturserielle und interneserielleserielleFall 2: Option 0x30 für
sio0device sio0 at isa? port IO_COM1 tty flags 0x30 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneserielleserielleserielleserielleserielle und interneinterneserielleserielle und interneserielleserielle, mit Tastaturinterneinterneserielle, ohne Tastaturserielle und interneserielleserielleHinweise zur seriellen KonsoleVerwenden einer höheren GeschwindigkeitDie Vorgabewerte für die Kommunikationsparameter der
seriellen Schnittstelle sind: 9600 baud, 8 Bit, keine
Parität und ein Stopp-Bit. Wenn Sie die Geschwindigkeit
ändern wollen, müssen Sie mindestens die
Bootblöcke neu kompilieren. Fügen Sie die folgende
Zeile in /etc/make.conf hinzu und
kompilieren Sie Bootblöcke neu:BOOT_COMCONSOLE_SPEED=19200Wenn die serielle Konsole auf einem anderen Weg als durch die
Verwendung von konfiguriert wird, oder die
serielle Konsole des Kernels eine andere als die der
Bootblöcke ist, müssen der Kernelkonfiguration zudem
noch die folgende Option hinzufügen und einen neuen Kernel
kompilieren:options CONSPEED=19200Eine andere Schnittstelle als sio0
benutzenWenn Sie, warum auch immer, ein anderes Gerät als
sio0 für die serielle Konsole
einsetzen wollen, kompilieren Sie bitte die Bootblöcke, den
Bootloader und den Kernel nach dem folgenden Verfahren
neu.Installieren Sie die Kernelquellen (siehe
).Setzen Sie in /etc/make.confBOOT_COMCONSOLE_PORT auf die Adresse der
Schnittstelle (0x3F8, 0x2F8, 0x3E8 oder 0x2E8), die Sie
benutzen möchten. Sie können nur
sio0 bis
sio3 (COM1
bis COM4) benutzen, Multiportkarten
können Sie nicht als Konsole benutzen. Interrupts
müssen Sie hier nicht angeben.Erstellen Sie eine angepasste Kernelkonfiguration
und geben Sie dort die richtigen Optionen für die
Schnittstelle, die Sie benutzen möchten, an. Wenn Sie
zum Beispiel sio1
(COM2) zur Konsole machen wollen,
geben Sie dort entwederdevice sio1 at isa? port IO_COM2 tty flags 0x10 irq 3oderdevice sio1 at isa? port IO_COM2 tty flags 0x30 irq 3an. Keine andere serielle Schnittstelle sollte als
Konsole definiert werden.Übersetzen und installieren Sie die
Bootblöcke und den Bootloader:&prompt.root; cd /sys/boot
&prompt.root; make
&prompt.root; make installBauen und installieren Sie einen neuen Kernel.Schreiben Sie die Bootblöcke mit &man.disklabel.8;
auf die Bootplatte und booten Sie den neuen Kernel.
-
+ DDB Debugger über die serielle SchnittstelleWenn Sie den Kerneldebugger über eine serielle
Verbindung bedienen möchten (nützlich, kann aber
gefährlich sein, wenn auf der Leitung falsche BREAK-Signale
generiert werden), sollten Sie einen Kernel mit
den folgenden Optionen erstellen:options BREAK_TO_DEBUGGER
options DDBBenutzung der seriellen Konsole zum AnmeldenDa Sie schon die Bootmeldungen auf der Konsole verfolgen
können und den Kerneldebugger über die Konsole bedienen
können, wollen Sie sich vielleicht auch an der Konsole
anmelden.Öffnen Sie /etc/ttys in einem
Editor und suchen Sie nach den folgenden Zeilen:ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off securettyd0 bis ttyd3
entsprechen COM1 bis
COM4. Ändern Sie für die
entsprechende Schnittstelle off zu
on. Wenn Sie auch die Geschwindigkeit der
seriellen Schnittstelle geändert haben, müssen Sie
std.9600 auf die momentane Geschwindigkeit, zum
Beispiel std.19200, anpassen.Sie sollten auch den Terminaltyp von
unknown auf den tatsächlich verwendeten
Terminal setzen.Damit die Änderungen an der Datei wirksam werden,
müssen Sie noch kill -HUP 1
absetzen.Die Konsole im Bootloader ändernIn den vorigen Abschnitten wurde beschrieben, wie Sie die
serielle Konsole durch Änderungen im Bootblock aktivieren.
Dieser Abschnitt zeigt Ihnen, wie Sie mit Kommandos und
Umgebungsvariablen die Konsole im Bootloader definieren. Da der
Bootloader die dritte Phase im Bootvorgang ist und nach den
Bootblöcken ausgeführt wird, überschreiben
seine Einstellungen die des Bootblocks.Festlegen der KonsoleMit einer einzigen Zeile in
/boot/loader.rc können Sie den
Bootloader und den Kernel anweisen, die serielle Schnittstelle
zur Konsole zu machen:set console=comconsoleUnabhängig von den Einstellungen im Bootblock legt dies
die Konsole fest.Die obige Zeile sollte die erste Zeile in
/boot/loader.rc sein, so dass Sie die
Bootmeldungen so früh wie möglich auf der Konsole
sehen.Analog können Sie die interne Konsole verwenden:set console=vidconsoleWenn Sie console nicht setzen, bestimmt der
Bootloader (und damit auch der Kernel) die Konsole über
die Option des Bootblocks.Ab FreeBSD 3.2 können Sie die Bootkonsole in
/boot/loader.conf.local oder
/boot/loader.conf anstatt in
/boot/loader.rc angeben. In
/boot/loader.rc finden Sie bei dieser Methode
den folgenden Inhalt:include /boot/loader.4th
startErstellen Sie /boot/loader.conf.local
und fügen die Zeileconsole=comconsoleoderconsole=vidconsoleein. Weitere Informationen erhalten Sie in
&man.loader.conf.5;.Momentan gibt es im Bootloader nichts vergleichbares zu
im Bootblock. Damit kann die Konsole nicht
automatisch über das Vorhandensein einer Tastatur
festgelegt werden.Eine andere Schnittstelle als sio0
benutzenSie müssen den Bootloader neu kompilieren, wenn Sie eine
andere Schnittstelle als sio0 benutzen
wollen. Folgen Sie der Anleitung aus
.VorbehalteHinter dem ganzen steckt die Idee, Server ohne Hardware
für Grafik und ohne Tastatur zu betreiben. Obwohl es die
meisten Systeme erlauben, ohne Tastatur zu booten, gibt es leider
nur wenige Systeme, die ohne eine Grafikkarte booten. Maschinen
mit einem AMI BIOS können ohne Grafik booten, indem Sie den
Grafikadapter im CMOS-Setup auf Not installed
setzen.Viele Maschinen unterstützen diese Option allerdings nicht.
Damit diese Maschinen booten, müssen sie über eine
Grafikkarte, auch wenn es nur eine alte Monochromkarte ist,
verfügen. Allerdings brauchen Sie keinen Monitor an die Karte
anzuschließen. Sie können natürlich auch
versuchen, auf diesen Maschinen ein AMI BIOS zu
installieren.
diff --git a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
index 2184cba4b8..416f2a490d 100644
--- a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
@@ -1,1174 +1,1182 @@
NeilBlakey-MilnerBeigetragen von RobertDrehmelÜbersetzt von Benutzer und grundlegende Account-VerwaltungÜbersichtEinen FreeBSD-Computer können mehrere Benutzer zur selben
Zeit benutzen, allerdings kann immer nur einer vor der Konsole sitzen
Außer Sie verwenden, wie in besprochen, zusätzliche Terminals, über das Netzwerk können beliebig viele
Benutzer angemeldet sein. Jeder Benutzer muss einen Account
haben, um das System benutzen zu können.Nachdem Sie dieses Kapitel gelesen haben, werden Siedie verschiedenen Account-Typen von FreeBSD kennen,wissen, wie Accounts angelegt werden,wissen, wie Sie Accounts löschen,wie Sie Attribute eines Accounts, wie den Loginnamen oder
die Login-Shell ändern,wissen, wie Sie Limits für einen Account setzen, um
beispielsweise Ressourcen, wie Speicher oder CPU-Zeit,
einzuschränken,wie Sie mit Gruppen die Verwaltung der Accounts
vereinfachen.Vor dem Lesen dieses Kapitels sollten Siedie Grundlagen von &unix; und FreeBSD ()
verstanden haben.EinführungJeder Zugriff auf das System geschieht über Accounts und alle
Prozesse werden von Benutzern gestartet, also sind Benutzer- und
Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.Mit jedem Account eines FreeBSD-Systems sind bestimmte Informationen
verknüpft, die diesen Account identifizieren.LoginnamenDen Loginnamen geben Sie bei der Anmeldung ein, wenn Sie
dazu mit login: aufgefordert werden.
Loginnamen müssen auf dem System eindeutig sein, das
heißt auf einem System kann es nicht zwei Accounts mit
demselben Loginnamen geben. In &man.passwd.5; wird
beschrieben, wie ein gültiger Loginname gebildet wird.
Normalerweise sollten Sie Namen verwenden, die aus
Kleinbuchstaben bestehen und bis zu acht Zeichen lang sind.PasswortMit jedem Account ist ein Passwort verknüpft. Wenn
das Passwort leer ist, wird es bei der Anmeldung nicht
abgefragt. Das ist allerdings nicht zu empfehlen, daher sollte
jeder Account ein Passwort besitzen.User ID (UID)
- Die UID ist eine Zahl zwischen 0 und 65536, die einen
+ Die UID ist üblicherweise eine Zahl zwischen
+ 0 und 65535
+ Für UIDs und GIDs können Zahlen bis
+ einschließlich 4294967295 verwendet werden.
+ Allerdings können solche IDs erhebliche
+ Probleme mit Anwendungen verursachen, die
+ Annahmen über den Wertebereich der IDs
+ treffen.
+ , die einen
Account eindeutig identifiziert. Intern verwendet FreeBSD nur
die UID, Loginnamen werden zuerst in eine UID umgewandelt,
mit der das System dann weiter arbeitet. Das bedeutet, dass
Sie Accounts mit unterschiedlichen Loginnamen aber gleicher
UID einrichten können. Vom Standpunkt des Systems handelt
es sich dabei um denselben Account. In der Praxis werden Sie
diese Eigenschaft des Systems wahrscheinlich nicht
benutzen.Group ID (GID)
- Die GID ist eine Zahl zwischen 0 und 65536, die eine Gruppe
+ Die GID ist üblicherweise eine Zahl zwischen 0 und
+ 65536, die eine Gruppe
eindeutig identifiziert. Mit Gruppen kann der Zugriff auf
Ressourcen über die GID anstelle der UID geregelt werden.
Einige Konfigurationsdateien werden durch diesen Mechanismus
deutlich kleiner. Ein Account kann mehreren Gruppen
zugehören.Login-KlasseLogin-Klassen erweitern das Gruppenkonzept. Sie
erhöhen die Flexibilität des Systems in der Handhabung
der verschiedenen Accounts.Gültigkeit von PasswörternEin regelmäßiges Ändern des Passworts wird in
der Voreinstellung von FreeBSD nicht erzwungen. Sie
können allerdings einen Passwortwechsel nach einer
gewissen Zeit auf Basis einzelner Accounts erzwingen.Verfallszeit eines AccountsIn der Voreinstellung verfallen unter FreeBSD keine
Accounts. Wenn Sie Accounts einrichten, die nur für eine
bestimmte Zeit gültig sein sollen, beispielsweise Accounts
für Teilnehmer eines Praktikums, können Sie angeben,
wie lange der Account gültig sein soll. Nachdem die
angegebene Zeitspanne verstrichen ist, kann dieser Account
nicht mehr zum Anmelden verwendet werden, obwohl alle
Verzeichnisse und Dateien, die diesem Account gehören,
noch vorhanden sind.vollständiger BenutzernameFreeBSD identifiziert einen Account eindeutig über
den Loginnamen, der aber keine Ähnlichkeit mit dem
richtigen Namen des Benutzers haben muss. Der
vollständige Benutzername kann daher beim Einrichten eines
Accounts angegeben werden.HeimatverzeichnisDas Heimatverzeichnis gibt den vollständigen Pfad zu
dem Verzeichnis an, in dem sich der Benutzer nach erfolgreicher
Anmeldung befindet. Es ist üblich, alle
Heimatverzeichnisse unter
/home/Loginname
oder
/usr/home/Loginname
anzulegen. Im Heimatverzeichnis oder in dort angelegten
Verzeichnissen werden die Dateien eines Benutzers
gespeichert.Login-ShellGrundsätzlich ist die Schnittstelle zum System eine
Shell, von denen es viele unterschiedliche gibt. Die
bevorzugte Shell eines Benutzers kann seinem Account zugeordnet
werden.Es gibt drei Haupttypen von Accounts: Der
Superuser,
Systembenutzer und
Benutzer-Accounts. Der
Superuser-Account, normalerweise root genannt, wird
benutzt, um das System ohne Beschränkungen auf Privilegien zu
verwalten. Systembenutzer starten Dienste. Abschließend werden
Benutzer-Accounts von echten Menschen genutzt, die sich einloggen, Mails
lesen und so weiter.Der Superuser-AccountAccountsSuperuser (root)Der Superuser-Account, normalerweise root
genannt, ist vorkonfiguriert und erleichtert die Systemverwaltung, sollte
aber nicht für alltägliche Aufgaben wie das Verschicken und
Empfangen von Mails, Entdecken des Systems oder Programmierung benutzt
werden.Das ist so, da der Superuser im Gegensatz zu normalen
Benutzer-Accounts ohne Beschränkungen operiert und falsche
Anwendung des Superuser-Accounts in spektakulären Katastrophen
resultieren kann. Benutzer-Accounts sind nicht in der Lage, das System
versehentlich zu zerstören, deswegen ist es generell am besten
normale Benutzer-Accounts zu verwenden, solange man nicht
hauptsächlich die extra Privilegien benötigt.Kommandos, die Sie als Superuser eingeben, sollten Sie immer
doppelt und dreifach überprüfen, da ein
zusätzliches Leerzeichen oder ein fehlender Buchstabe irreparablen
Datenverlust bedeuten kann.Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
haben, ist einen unprivilegierten Benutzer für Ihre eigene normale
Benutzung zu erstellen, wenn Sie das nicht bereits getan haben. Das
trifft immer zu, egal ob Sie ein Mehrbenutzersystem oder ein System
laufen haben, welches Sie alleine benutzen. Später in diesem
Kapitel besprechen wir, wie man zusätzliche Accounts erstellt und
wie man zwischen dem normalen Benutzer und dem Superuser wechselt.System-AccountsAccountsSystem-AccountsSystembenutzer starten Dienste wie DNS, Mail-Server, Web-Server und so
weiter. Der Grund dafür ist die Sicherheit; wenn die Programme
von dem Superuser gestartet werden, können Sie ohne
Einschränkungen handeln.AccountsdaemonAccountsoperatorBeispiele von Systembenutzern sind daemon,
operator, bind (für den
Domain Name Service) und news. Oft erstellen
Systemadministratoren den Benutzer httpd, um
Web-Server laufen zu lassen, die sie installieren.Accountsnobodynobody ist der generische unprivilegierte
Systembenutzer. Bedenken Sie aber, dass je mehr Dienste
nobody benutzen, desto mehr Dateien und Prozesse
diesem Benutzer gehören und dieser Benutzer damit umso
privilegierter wird.Benutzer-AccountsAccountsBenutzer-AccountsBenutzer-Accounts sind das primäre Mittel des Zugriffs für
Menschen auf das System und isolieren Benutzer und Umgebung,
schützen die Benutzer davor, das System oder Daten anderer Benutzer
zu beschädigen und erlauben Benutzern ihre Umgebung selbst
einzurichten, ohne das sich dies auf andere auswirkt.Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
und hält Leute davon ab, die Einstellungen der anderen zu
verändern oder Mails zu lesen, die nicht für sie bestimmt
waren.Jeder Benutzer kann sich eine eigene Umgebung mit alternativen
Shells, Editoren, Tastaturbelegungen und Sprachen einrichten.Accounts verändernAccountsverändernUnter &unix; gibt es verschiedene Kommandos, um Accounts zu
verändern. Die gebräuchlichsten Kommandos sind unten,
gefolgt von einer detaillierten Beschreibung, zusammengefasst.KommandoZusammenfassung&man.adduser.8;Das empfohlene Werkzeug, um neue Accounts zu
erstellen.&man.rmuser.8;Das empfohlene Werkzeug, um Accounts zu
löschen.&man.chpass.1;Ein flexibles Werkzeug, um Informationen in der
Account-Datenbank zu verändern.&man.passwd.1;Ein einfaches Werkzeug, um Passwörter von Accounts
zu ändern.&man.pw.8;Ein mächtiges und flexibles Werkzeug um alle
Informationen über Accounts zu ändern.adduserAccountserstellenadduser/usr/share/skel&man.adduser.8; ist ein einfaches Programm
um neue Benutzer hinzuzufügen. Es erstellt
passwd und group
Einträge für den
Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
vorgegebene Dotfiles aus /usr/share/skel und kann
optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.Für &os; 5.0 wurde &man.adduser.8; in Perl
neugeschrieben und fungiert jetzt als Stellvertreter für
das Shell-Skript &man.pw.8;. Daher unterscheidet sich die
Benutzung von &man.adduser.8; unter &os; 5.X leicht von
der unter &os; 4.X.Um die anfängliche Konfigurationsdatei zu erstellen,
benutzen Sie: adduser -s -config_create.
Das bringt &man.adduser.8;
dazu, weniger Fragen und Fehlermeldungen auszugeben.
Wir benutzen später, wenn wir die
Voreinstellungen ändern wollen.
Zunächst konfigurieren wir Voreinstellungen von
&man.adduser.8; und erstellen unseren ersten
Benutzer-Account, da es böse und unangenehm ist,
root für normale Aufgaben zu
verwenden.adduser konfigurieren und Benutzer
unter &os; 4.X hinzufügen&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;Zusammengefasst haben wir die vorgegebene Shell in
zsh (eine zusätzliche Shell aus
der Ports-Sammlung) geändert und das Senden einer
,,Willkommen``-Nachricht an neue Benutzer abgeschaltet.
Danach haben wir die Konfiguration abgespeichert und anschließend
einen Account für jru eingerichtet
und sichergestellt, dass jru in der
Gruppe wheel ist, so dass Sie mit
&man.su.1; zu root wechseln
kann.Wenn Sie das Passwort eingeben, werden weder Passwort noch
Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort nicht
zweimal falsch eingeben.Benutzen Sie ab jetzt &man.adduser.8; ohne Argumente,
dann müssen Sie nicht jedes mal die Vorgaben neu einstellen.
Wenn das Programm Sie fragt, ob Sie die Vorgaben ändern wollen,
verlassen und starten Sie es erneut mit der
Option.Benutzer unter &os; 5.X hinzufügen&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;rmuserrmuserAccountslöschenBenutzen Sie &man.rmuser.8;, um einen Account
vollständig aus dem System zu entfernen.
&man.rmuser.8; führt die folgenden Schritte
durch:Entfernt den &man.crontab.1; Eintrag des Benutzers
(wenn dieser existiert).Entfernt alle &man.at.1; jobs, die dem Benutzer gehören.
Schließt alle Prozesse des Benutzers.Entfernt den Benutzer aus der lokalen Passwort-Datei des
Systems.Entfernt das Heimatverzeichnis des Benutzers (falls es dem
Benutzer gehört).Entfernt eingegange E-Mails des Benutzers
aus /var/mail.Entfernt alle Dateien des Benutzers aus temporären
Dateispeicherbereichen wie /tmp.Entfernt den Loginnamen von allen Gruppen, zu denen er
gehört, aus /etc/group.
Wenn eine Gruppe leer wird und der Gruppenname mit dem
Loginnamen identisch ist, wird die Gruppe entfernt; das
ergänzt sich mit den einzelnen Benutzer-Gruppen, die von
&man.adduser.8; für jeden neuen Benutzer erstellt werden.
Der Superuser-Account kann nicht mit &man.rmuser.8; entfernt
werden, da dies in den meisten Fällen das System unbrauchbar
macht.Als Vorgabe wird ein interaktiver Modus benutzt, der
sicherzustellen versucht, dass Sie wissen, was Sie tun.Interaktives Löschen von Account mit
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; ändert Informationen der
Benutzerdatenbank wie Passwörter, Shells und persönliche
Informationen.Nur Systemadministratoren, mit Superuser-Rechten, können die
Informationen und Passwörter der anderen Benutzer mit
&man.chpass.1; verändern.Werden keine Optionen neben dem optionalen Loginnamen
angegeben, zeigt &man.chpass.1; einen Editor
mit Account-Informationen an und aktualisiert die
Account-Datenbank, wenn dieser verlassen wird.Unter &os; 5.X wird nach dem Verlassen des Editors
nach dem Passwort gefragt, es sei denn, man ist als Superuser
angemeldet.Interaktives chpass des Superusers#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Der normale Benutzer kann nur einen kleinen Teil dieser
Informationen verändern und natürlich nur die Daten des
eigenen Accounts.Interaktives chpass eines normalen
Benutzers#Changing user database information for jru.
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; und &man.chsh.1; sind
nur Verweise auf &man.chpass.1; genauso wie
&man.ypchpass.1;, &man.ypchfn.1; und
&man.ypchsh.1;. NIS wird automatisch unterstützt,
deswegen ist es nicht notwendig das yp vor dem
Kommando einzugeben. NIS wird später
in besprochen.passwdpasswdAccountsPasswort wechseln&man.passwd.1; ist der übliche Weg, Ihr
eigenes Passwort als Benutzer zu ändern oder das Passwort eines
anderen Benutzers als Superuser.
- Benutzer müssen ihr ursprüngliches Passwort eingeben,
- bevor sie es wechseln, um eine nicht autorisierte Person davon
- abzuhalten ihr Passwort zu ändern, wenn der Benutzer gerade
- nicht an seinem Gerät ist.
+ Um unberechtigte Änderungen zu verhindern,
+ muss bei einem Passwortwechsel zuerst das ursprüngliche
+ Passwort eingegeben werden.Wechseln des Passworts&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneAls Superuser das Passwort eines anderen Accounts
verändern&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneWie bei &man.chpass.1; ist &man.yppasswd.1;
nur ein Verweis auf &man.passwd.1;. NIS wird von
jedem dieser Kommandos unterstützt.pwpw&man.pw.8; ist ein Kommandozeilenprogramm, mit
dem man Accounts und Gruppen erstellen, entfernen, verändern
und anzeigen kann. Dieses Kommando dient als Schnittstelle zu den
Benutzer- und Gruppendateien des Systems. &man.pw.8;
besitzt eine Reihe mächtiger Kommandozeilenschalter, die es
für die Benutzung in Shell-Skripten geeignet machen, doch
finden neue Benutzer die Bedienung des Kommandos komplizierter, als
die der anderen hier vorgestellten Kommandos.Benutzer einschränkenBenutzer einschränkenAccountseinschränkenWenn ein System von mehreren Benutzern verwendet wird, ist es
vielleicht notwendig, den Gebrauch des Systems zu beschränken.
FreeBSD bietet dem Systemadministrator mehrere Möglichkeiten
die System-Ressourcen, die ein einzelner Benutzer verwenden kann,
einzuschränken. Diese Limitierungen sind in zwei Kategorien
eingeteilt: Festplattenkontingente und andere
Ressourcenbeschränkungen.QuotasBenutzer einschränkenQuotasFestplatten QuotasFestplatten-Kontingente schränken den Plattenplatz, der
einem Benutzer zur Verfügung steht, ein. Sie bieten zudem,
ohne aufwändige Berechnung, einen schnellen Überblick
über den verbrauchten Plattenplatz.
Kontingente werden in diskutiert./etc/login.confDie Login-Klassen werden in /etc/login.conf
definiert. Auf die präzisen Semantiken gehen wir hier nicht
weiter ein, sie können jedoch in &man.login.conf.5;
nachgelesen werden. Es ist ausreichend zu sagen, dass jeder
Benutzer einer Login-Klasse zugewiesen wird (standardmäßig
default) und dass jede Login-Klasse mit einem Satz
von Login-Fähigkeiten verbunden ist. Eine Login-Fähigkeit
ist ein Name=Wert
Paar, in dem Name
die Fähigkeit bezeichnet und Wert
ein willkürlicher Text ist, der je nach Name
entsprechend verarbeitet wird. Login-Klassen und
-Fähigkeiten zu definieren ist fast schon selbsterklärend
und wird auch in &man.login.conf.5; beschrieben.Ressourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer
gestarteten Prozess, nicht für den Benutzer selbst.
Beachten Sie jedoch, dass diese Unterschiede durch das spezifische
Einlesen der Limits und nicht durch das System der
Login-Fähigkeiten entstehen (das heißt,
Ressourcenbeschränkungen sind keine
Login-Fähigkeiten).Hier befinden sich die am häufigsten benutzten
Ressourcenbeschränkungen (der Rest kann zusammen mit den
anderen Login-Fähigkeiten in &man.login.conf.5; gefunden
werden):coredumpsizecoredumpsizeBenutzer einschränkencoredumpsizeDas Limit der Größe einer core-Datei, die
von einem Programm generiert wird, unterliegt aus
offensichtlichen Gründen anderen Limits der
Festplattenbenutzung (zum Beispiel filesize
oder Festplattenkontingenten). Es wird aber trotzdem
oft als weniger harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
core-Dateien nicht selbst erstellen, und sie oft nicht
löschen, kann sie diese Option davor retten, dass
ihnen kein Festplattenspeicher mehr zur Verfügung
steht, sollte ein großes Programm, wie
emacs, abstürzen.cputimecputimeBenutzer einschränkencputimeDie maximale Rechenzeit, die ein Prozess eines Benutzers
verbrauchen darf. Überschreitet der Prozess diesen Wert,
wird er vom Kernel beendet.
Die Rechenzeit wird limitiert,
nicht die prozentuale Prozessorenbenutzung, wie es in
einigen Feldern in &man.top.1; und &man.ps.1; dargestellt
wird. Letzteres war zu der Zeit, als dies hier geschrieben
wurde nicht möglich und würde eher nutzlos sein:
Ein Compiler – ein wahrscheinlich legitimer
Vorgang – kann leicht fast 100% des Prozessors in
Anspruch nehmen.filesizefilesizeBenutzer einschränkenfilesizeHiermit lässt sich die maximale Größe einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz zu
Festplattenkontingenten ist diese
Beschränkung nur für jede einzelne Datei gültig
und nicht für den Platz, den alle Dateien eines Benutzers
verwenden.maxprocmaxprocBenutzer einschränkenmaxprocDas ist die maximale Anzahl von Prozessen, die ein
Benutzer starten darf, und beinhaltet sowohl Vordergrund-
als auch Hintergrundprozesse. Natürlich darf dieser
Wert nicht höher sein als das System-Limit, das in
kern.maxproc angegeben ist. Vergessen
Sie auch nicht, dass ein zu kleiner Wert den Benutzer in
seiner Produktivität einschränken könnte;
es ist oft nützlich, mehrfach eingeloggt zu sein, oder
PipelinesPipeline =
Leitung.
Mit Pipes sind Verbindungen
zwischen zwei Sockets in meistens zwei verschiedenen
Prozessen gemeint.
zu verwenden. Ein paar Aufgaben, wie die Kompilierung eines
großen Programms, starten mehrere Prozesse (zum Beispiel
&man.make.1;, &man.cc.1; und andere).memorylockedmemorylockedBenutzer einschränkenmemorylockedDieses Limit gibt an, wie viel virtueller Speicher von einem
Prozess maximal im Arbeitsspeicher festgesetzt werden kann.
(siehe auch &man.mlock.2;). Ein paar systemkritische Programme,
wie &man.amd.8;, verhindern damit einen Systemzusammenbruch, der
auftreten könnte, wenn sie aus dem Speicher genommen werden.
memoryusememoryuseBenutzer einschränkenmemoryuseBezeichnet den maximalen Speicher, den ein Prozess benutzen
darf und beinhaltet sowohl Arbeitsspeicher-, als auch Swap-
Benutzung. Es ist kein allübergreifendes Limit für
den Speicherverbrauch, aber ein guter Anfang.openfilesopenfilesBenutzer einschränkenopenfilesMit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In FreeBSD werden Dateien auch verwendet, um Sockets
und IPC-Kanäle
IPC steht für
Interprocess Communication.
darzustellen. Setzen Sie es deshalb nicht zu niedrig. Das
System-Limit ist im kern.maxfiles
&man.sysctl.8; definiert.sbsizesbsizeBenutzer einschränkensbsizeDieses Limit beschränkt den Netzwerk-Speicher, und damit
die mbufs, die ein Benutzer verbrauchen darf. Es stammt aus einer
Antwort auf einen DoS-Angriff, bei dem viele Netzwerk-Sockets
geöffnet wurden, kann aber generell dazu benutzt werden
Netzwerk-Verbindungen zu beschränken.stacksizeDas ist die maximale Größe, auf die der Stack
eines Prozesses heranwachsen darf. Das allein ist natürlich
nicht genug, um den Speicher zu beschränken, den ein Programm
verwenden darf. Es sollte deshalb in Verbindung mit anderen
Limits gesetzt werden.Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten. Nachfolgend ein paar generelle Tipps, Empfehlungen
und verschiedene Kommentare.Von /etc/rc beim Hochfahren des Systems
gestartete Prozesse werden der daemon
Login-Klasse zugewiesen.Obwohl das mitgelieferte /etc/login.conf
eine Quelle von vernünftigen Limits darstellt, können nur
Sie, der Administrator, wissen, was für Ihr System angebracht
ist. Ein Limit zu hoch anzusetzen könnte Ihr System für
Missbrauch öffnen, und ein zu niedriges Limit der
Produktivität einen Riegel vorschieben.Benutzer des X-Window Systems (X11) sollten wahrscheinlich
mehr Ressourcen zugeteilt bekommen als andere Benutzer. X11
beansprucht selbst schon eine Menge Ressourcen, verleitet die
Benutzer aber auch, mehrere Programme gleichzeitig laufen zu
lassen.Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man
zum Beispiel openfiles auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem Benutzer
geöffnet werden können, openfiles
mal maxproc. Das gilt auch für den
Speicherverbrauch.Weitere Informationen über
Ressourcenbeschränkungen, Login-Klassen und -Fähigkeiten
enthalten die Hilfeseiten
&man.cap.mkdb.1;, &man.getrlimit.2; und &man.login.conf.5;.Benutzer personalisierenDie Lokalisierung ist eine Umgebung, die vom Systemadministrator
oder Benutzer eingerichtet wird, um verschiedene Sprachen,
Zeichensätze, Datum- und Zeitstandards und so weiter
unterzubringen. Dies wird im Kapitel über die
Lokalisierung
besprochen.GruppenGruppen/etc/groupsAccountsGruppenEine Gruppe ist einfach eine Zusammenfassung von Accounts.
Gruppen werden durch den Gruppennamen und die GID (group ID)
identifiziert. Der Kernel von FreeBSD (und den meisten anderen &unix;
Systemen) entscheidet anhand der UID und der Gruppenmitgliedschaft
eines Prozesses, ob er dem Prozess etwas erlaubt oder nicht. Im
Unterschied zur UID kann ein Prozess zu einer Reihe von Gruppen
gehören. Wenn jemand von der GID eines
Benutzers oder Prozesses spricht, meint er damit meistens die erste
Gruppe der Gruppenliste.Die Zuordnung von Gruppennamen zur GID steht in
/etc/group, einer Textdatei mit vier durch
Doppelpunkte getrennten Feldern. Im ersten Feld steht der
Gruppenname, das zweite enthält ein verschlüsseltes
Passwort, das dritte gibt die GID an und das vierte besteht aus einer
Komma separierten Liste der Mitglieder der Gruppe. Diese Datei kann
einfach editiert werden (natürlich nur, wenn Sie dabei keine
Syntaxfehler machen). Eine ausführliche Beschreibung der Syntax
dieser Datei finden Sie in &man.group.5;.Wenn Sie /etc/group nicht händisch
editieren möchten, können Sie &man.pw.8; zum Editieren
benutzen. Das folgende Beispiel zeigt das Hinzufügen einer
Gruppe mit dem Namen teamtwo:Hinzufügen einer Gruppe mit pw&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Die Zahl 1100 ist die GID der Gruppe
teamtwo. Momentan hat
teamtwo noch keine Mitglieder und ist daher
ziemlich nutzlos. Um das zu ändern, nehmen wir nun
jru in teamtwo
auf.Ein Gruppenmitglied mit pw
hinzufügen&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruAls Argument von geben Sie eine Komma
separierte Liste von Mitgliedern an, die Sie in die Gruppe aufnehmen
möchten. Aus den vorherigen Abschnitten ist bekannt, dass die
Passwort-Datei ebenfalls eine Gruppe für jeden Benutzer
enthält. Das System teilt dem Benutzer automatisch eine Gruppe
zu, die aber vom Kommando von &man.pw.8;
nicht angezeigt wird. Diese Information wird allerdings von
&man.id.1; und ähnlichen Werkzeugen angezeigt. Das heißt,
dass &man.pw.8; nur /etc/group manipuliert,
es wird nicht versuchen, zusätzliche Informationen aus
/etc/passwd zu lesen.Mit id die Gruppenzugehörigkeit
bestimmen&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Wie Sie sehen, ist jru Mitglied von
jru und teamtwo.Weitere Informationen entnehmen Sie bitte &man.pw.8;.
diff --git a/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml b/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml
index c2f1c6bb27..37e77408f0 100644
--- a/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml
@@ -1,30 +1,30 @@
Vinum (noch nicht übersetzt)Dieses Kapitel ist noch nicht übersetzt.
Lesen Sie bitte
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/vinum-vinum.html">
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
index f0ff8b7eb7..3de66949c1 100644
--- a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
@@ -1,1739 +1,1736 @@
MartinHeinenÜbersetzt von Das X-Window-SystemÜbersichtMit &xfree86; steht unter FreeBSD eine
leistungsfähige grafische Benutzeroberfläche zur
Verfügung. &xfree86; ist eine
Open-Source Realisierung des X-Window-Systems. Dieses Kapitel
behandelt die Installation und Konfiguration von
&xfree86; auf einem FreeBSD-System. Weitere
Informationen über &xfree86; und
unterstützte Video-Hardware finden Sie auf der &xfree86; Website.Nachdem Sie dieses Kapitel gelesen haben, werden Siedie Komponenten des X-Window-Systems und ihr
Zusammenspiel kennen.Wissen, wie &xfree86; installiert
und konfiguriert wird.Wissen, wie Sie verschiedene Window-Manager installieren und
benutzen.Wissen, wie &truetype;-Schriftarten mit
&xfree86; benutzt werden.Wissen, wie Sie die grafische Anmeldung
(XDM) einrichten.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie Sie Software Dritter installieren
().X-GrundlagenAnwendern anderer grafischer Benutzeroberflächen, wie
µsoft.windows; oder &macos;, kommt X beim ersten Mal oft
befremdlich vor.Man braucht kein weitreichendes Verständnis der
X-Komponenten und Ihres Zusammenspiels, um X anzuwenden. Um die
Stärken von X auszunutzen, sollten Sie allerdings die Grundlagen
verstehen.Warum heißt es X?X ist nicht die erste grafische Benutzeroberfläche, die
für &unix; geschrieben wurde. Die Entwickler von X arbeiteten
vorher an einem anderen System, das W (von engl.
window: Fenster) hieß.
X ist schlicht der nächste Buchstabe im Alphabet.X wird X, X-Window-System
oder X11 genannt. Sagen Sie bitte nicht
X-Windows: das kommt bei einigen Leuten schlecht an
(die Hilfeseite &man.X.7; führt dies näher aus).Das Client/Server-Modell von XX wurde von Anfang an netzwerktransparent entworfen und
verwendet ein Client-Server-Modell. In diesem Modell läuft
der Server auf dem Rechner, an dem die Tastatur, der Bildschirm
und die Maus angeschlossen ist. Der Server ist für Dinge
wie die Verwaltung des Bildschirms und die Verarbeitung von
Tastatur- und Maus-Eingaben verantwortlich. Jede X-Anwendung,
beispielsweise ein XTerm oder
&netscape; ist ein Client. Der Client
sendet dem Server Nachrichten wie Zeichne an diesen
Koordinaten ein Fenster und der Server sendet dem Client
Nachrichten der Art Der Benutzer hat gerade den Ok-Knopf
gedrückt.Wenn, wie oft in kleinen Umgebungen, nur ein Rechner zur
Verfügung steht, laufen der X-Server und die X-Clients auf
demselben Rechner. Es ist aber durchaus möglich, den X-Server
auf einem weniger leistungsfähigen Arbeitsplatzrechner laufen
zu lassen und die X-Anwendungen (die Clients) auf dem
leistungsfähigen und teuren Server der Arbeitsgruppe
zu betreiben. In diesem Fall kommunizieren der X-Server und die
X-Clients über das Netz.Dieses Modell verwirrt viele Leute, die erwarten, dass der
X-Server der dicke Rechner im Maschinenraum und der X-Client ihr
Arbeitsplatzrechner ist.Merken Sie sich einfach, dass der X-Server der Rechner mit dem
Bildschirm und der Maus ist und die X-Clients Programme sind, die
in den Fenstern laufen.Das X-Protokoll ist unabhängig vom verwendeten
Betriebssystem und Rechnertyp. Ein X-Server kann durchaus auch
unter µsoft.windows; oder Apples &macos; betrieben werden,
wie viele kostenlose und kommerzielle Anwendungen zeigen.Der X-Server von FreeBSD heißt
&xfree86; und steht kostenlos unter einer
Lizenz, die ähnlich der FreeBSD-Lizenz ist, zur
Verfügung. Kommerzielle X-Server sind ebenfalls
erhältlich.Der Window-ManagerDie X-Philosophie Werkzeuge statt Richtlinien
ist wie die UNIX-Philosophie. Es wird nicht vorgeschrieben, wie
eine Aufgabe zu lösen ist, stattdessen erhält der
Benutzer Werkzeuge, über die er frei verfügen
kann.Dies geht so weit, dass X nicht bestimmt, wie Fenster auf dem
Bildschirm auszusehen haben, wie sie mit der Maus zu verschieben
sind, welche Tastenkombination benutzt werden muss, um zwischen
den Fenstern zu wechseln (z.B.
AltTab unter µsoft.windows;), oder ob die
Fensterrahmen Schaltflächen zum Schließen haben.X gibt die Verantwortung für all diese Sachen an eine
Anwendung ab, die Window-Manager genannt
wird. Unter X gibt es zahlreiche Window-Manager:
AfterStep,
Blackbox, ctwm,
Enlightenment,
fvwm, Sawfish,
twm,
Window Maker um nur einige zu nennen.
Jeder dieser Window-Manager sieht anders aus: manche stellen
virtuelle Bildschirme zur Verfügung, in anderen lassen sich
die Tastenkombinationen zur Verwaltung des Bildschirms anpassen,
einige besitzen eine Startleiste
- oder etwas Ähnliches und in manchen läßt sich das
+ oder etwas Ähnliches und in manchen lässt sich das
Aussehen und Verhalten über die Anwendung von
Themes beliebig einstellen. Die
eben genannten Window-Manager und viele weitere finden Sie in der
Kategorie x11-wm der Ports-Sammlung.Die grafischen Benutzeroberflächen
KDE und
GNOME besitzen eigene Window-Manager,
die in den grafischen Arbeitsplatz integriert sind.Die Window-Manager werden unterschiedlich konfiguriert. Einige
erwarten eine manuell erstellte Konfigurationsdatei, andere bieten
grafische Werkzeuge für die meisten Konfigurations-Arbeiten
an. Die Konfigurationsdatei von sawfish
ist sogar in einem Lisp-Dialekt geschrieben.FokusWeiterhin ist der Window-Manager für die Methode, mit
der ein Fenster den Fokus bekommt, verantwortlich. Jedes System,
das Fenster verwendet, muss entscheiden, wie ein Fenster
aktiviert wird, damit es Eingaben empfangen kann. Das aktive
Fenster sollte zudem sichtbar gekennzeichnet werden.Eine geläufige Methode, den Fokus zu wechseln,
wird click-to-focus genannt. Die Methode wird
in µsoft.windows; benutzt: Ein Fenster wird aktiv, wenn
es mit der Maus angeklickt wird.X legt nicht fest, wie der Fokus einzustellen ist,
stattdessen bestimmt der Window-Manager welches Fenster den Fokus
zu einem gegebenen Zeitpunkt erhält. Alle Window-Manager
stellen die Methode click-to-focus bereit, die
meisten stellen auch noch andere Methoden bereit.Verbreitete Methoden, den Fokus einzustellen, sind:focus-follows-mouseDen Fokus hat das Fenster, unter dem sich der
Mauszeiger befindet. Das muss nicht unbedingt das Fenster,
sein, das sich vorne befindet. Wird der Mauszeiger in ein
anderes Fenster bewegt, so erhält dieses Fenster den
Fokus, ohne das es angeklickt werden muss.sloppy-focusDiese Methode erweitert die Methode
focus-follows-mouse. Wenn die Maus mit
focus-follows-mouse aus dem Fenster auf die
Oberfläche bewegt wird, verliert das aktive Fenster
den Fokus. Da dann kein Fenster mehr den Fokus hat,
gehen alle Eingaben verloren. Die Methode
sloppy-focus wechselt
den Fokus nur, wenn sich der Mauszeiger in ein neues
Fenster bewegt und nicht, wenn er das aktive Fenster
- verläßt.
+ verlässt.
click-to-focusDas aktive Fenster wird durch einen Mausklick
festgelegt (dabei kann das Fenster vor alle anderen
Fenster gesetzt werden).
Alle Eingaben werden dann, unabhängig von der Position
des Mauszeigers, dem aktiven Fenster zugeordnet.Viele Window-Manager unterstützen noch andere Methoden,
so wie Abwandlungen der hier vorgestellten Methoden. Schauen Sie
sich dazu bitte die Hilfeseiten Ihres Window-Managers an.WidgetsDie X-Philosophie dehnt sich auch auf die Widgets aus, die von
den Anwendungen benutzt werden.Ein Widget bezeichnet Objekte, die
manipuliert werden können, wie
buttons (Schaltflächen),
check buttons (Mehrfachauswahlknopf),
radio buttons (Einfachauswahlknopf),
Icons und Auswahllisten. Unter µsoft.windows; werden Widgets
Controls genannt.µsoft.windows; und Apples &macos; geben strenge
Richtlinien für Widgets vor: Von den Entwicklern wird erwartet,
dass Sie Anwendungen mit einheitlichem Aussehen und einheitlicher
Bedienung (look and feel) entwickeln.
X gibt weder einen Stil noch Widgets vor, die benutzt werden
müssen.Erwarten Sie daher nicht, dass alle X-Anwendungen gleich
aussehen oder sich gleich bedienen lassen. Es gibt mehrere
verbreitete Widget-Sammlungen, beispielsweise die Athena-Widgets
vom MIT, &motif; (abgeschrägte
Ecken und drei Grautöne, danach wurden die Widgets von
µsoft.windows; entworfen) oder
OpenLook.Die meisten neuen X-Anwendungen benutzen heute modern
aussehende Widgets, wie Qt, das von KDE
benutzt wird oder GTK, das von
GNOME benutzt wird. Damit wird eine
gewisse Einheitlichkeit in Bedienung und Aussehen erreicht, die
sicher neuen Benutzern die Arbeit erleichtert.&xfree86; installierenLegen Sie zuerst die &xfree86;-Version
fest, die Sie einsetzen wollen. &xfree86;
3.X ist sehr stabil und unterstützt zahlreiche
Grafikkarten, allerdings wird dieser Entwicklungszweig nicht mehr
weiterentwickelt. &xfree86; 4.X wurde
komplett neu entworfen und besitzt neue Merkmale wie die verbesserte
Unterstützung von Schriftarten und Anti-aliasing.
Leider mussten dafür auch die Grafiktreiber neu geschrieben
werden und einige der alten Karten, die in 3.X unterstützt
wurden, werden in 4.X noch nicht unterstützt. Da Treiber
für neue Grafikkarten nur noch in &xfree86;
4.X erstellt werden, ist diese Version in FreeBSD
voreingestellt.Während Sie FreeBSD einrichten, haben Sie Gelegenheit
&xfree86; 4.X zu installieren. &xfree86; 3.X
müssen Sie nach dem Basissystem installieren. Aus der
Ports-Sammlung installieren Sie &xfree86;
3.X wie folgt:&prompt.root; cd /usr/ports/x11/XFree86
&prompt.root; make all install cleanBeide Versionen von &xfree86;
können Sie auch direkt mit den binären Distributionen von
der &xfree86; Website
installieren. &xfree86; 4.X steht ebenfalls
als Paket für &man.pkg.add.1; zur Verfügung. Soll das Paket
auch mit &man.pkg.add.1; heruntergeladen werden, darf die
Versionsnummer auf der Kommandozeile nicht verwendet werden, da
&man.pkg.add.1; automatisch die neuste Version herunterlädt.
Die neuste Version von &xfree86; 4.X wird
mit dem folgenden Kommando heruntergeladen und installiert:&prompt.root; pkg_add -r XFree86&xfree86; 4.X lässt sich auch aus
der Ports-Sammlung installieren:&prompt.root; cd /usr/ports/x11/XFree86-4
&prompt.root; make install cleanDie obigen Beispiele installieren ein komplettes
X (mit Servern, Clients und Schriftarten). Einzelne
Komponenten von &xfree86; 4.X
stehen auch als separates Paket oder als separater
Port zur Verfügung.Der Rest dieses Kapitels erklärt, wie Sie
&xfree86; konfigurieren und sich eine
Arbeitsumgebung einrichten.ChristopherShumwayBeigetragen von &xfree86; konfigurierenXFree86 4.XXFree86VorarbeitenBevor Sie &xfree86; 4.X konfigurieren,
benötigen Sie folgende Informationen:die Spezifikationen des Monitorsden Chipset des Grafikadaptersdie Speichergröße des
GrafikadaptersSynchronisationsfrequenzhorizontaleSynchronisationsfrequenzvertikaleAus den Spezifikationen des Monitors ermittelt
&xfree86; die Auflösung und die
Wiederholrate für den Betrieb des X-Servers. Die
Spezifikationen entnehmen Sie der Dokumentation des Monitors
oder der Webseite des Herstellers. Sie benötigen die
horizontale und die vertikale Synchronisationsfrequenz.Der Chipsatz der Grafikkarte bestimmt den Treiber, den
&xfree86; verwendet. Die meisten
Chipsätze werden automatisch erkannt, Sie brauchen die
Information jedoch, wenn die Erkennung fehlschlägt.Die Speichergröße der Grafikkarte bestimmt die
maximal mögliche Auflösung und Farbtiefe.&xfree86; 4.X konfigurieren&xfree86; 4.X wird in mehreren
Schritten konfiguriert. Mit der Option
von &xfree86; wird zuerst eine Vorgabe
für die Konfigurationsdatei erstellt. Setzen Sie dazu als
root den folgenden Befehl ab:&prompt.root; XFree86 -configureDie Vorgabe-Konfiguration wird dann unter dem Namen
XF86Config.new im Verzeichnis
/root abgespeichert (das verwendete
Verzeichnis wird durch die Umgebungsvariable $HOME
bestimmt und hängt davon ab, wie Sie zu
root gewechselt sind).
&xfree86; hat in diesem Schritt versucht,
die Grafik-Hardware des Systems zu erkennen und eine
Konfigurationsdatei ausgeschrieben, die die zur Hardware passenden
Treiber lädt.Im nächsten Schritt wird geprüft, ob
&xfree86; die Grafik-Hardware des Systems
verwenden kann. Setzen Sie dazu den folgenden Befehl ab:&prompt.root; XFree86 -xf86config XF86Config.newWenn jetzt ein graues Raster und der X-Mauszeiger erscheinen,
war die Konfiguration erfolgreich. Beenden Sie den Test indem Sie
CtrlAltBackspace drücken.Wenn die Maus nicht funktioniert, überprüfen Sie,
ob die Maus konfiguriert wurde. Die Mauskonfiguration wird in
beschrieben.&xfree86; 4 anpassenAls Nächstes passen Sie
XF86Config.new an. Öffnen Sie die Datei
in einem Editor, wie &man.emacs.1; oder &man.ee.1; und fügen
Sie die Synchronisationsfrequenzen des Monitors ein. Die
Frequenzen werden im Abschnitt "Monitor"
eingetragen:Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionUnter Umständen fehlen die Schlüsselwörter
HorizSync und VertRefresh,
die Sie dann nachtragen müssen. Geben Sie, wie im Beispiel
gezeigt, die horizontale Synchronisationsfrequenz hinter
- Horizsync und die vertikale
+ HorizSync und die vertikale
Synchronisationsfrequenz hinter VertRefresh
an.X unterstützt die Energiesparfunktionen (DPMS,
Energy Star) Ihres Monitors. Mit &man.xset.1; können Sie
Zeitschranken für die DPMS-Modi standby,
suspend, off vorgeben, oder diese
zwingend aktivieren. Die DPMS-Funktionen können Sie mit der
nachstehenden Zeile im "Monitor"-Abschnitt
aktivieren:
-
- Option "DPMS"
+ Option "DPMS"XF86ConfigDie gewünschte Auflösung und Farbtiefe stellen Sie im
Abschnitt "Screen" ein:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSectionMit DefaultDepth wird die Farbtiefe des
X-Servers vorgegeben. Mit der Option -bpp von
&man.XFree86.1; lässt sich die vorgegebene Farbtiefe
überschreiben. Modes gibt die
Auflösung für die angegebene Farbtiefe an. Die Farbtiefe
im Beispiel beträgt 24 Bits pro Pixel, die
zugehörige Auflösung ist 1024x768 Pixel. Beachten Sie,
dass in der Voreinstellung nur Standard-VESA-Modi
der Grafikkarte angegeben werden können.Sichern Sie die Konfigurationsdatei und testen Sie sie wie oben
beschrieben. Installieren Sie dann die Datei an einen Ort, an dem
&man.XFree86.1; sie findet (typischerweise
/etc/X11/XF86Config oder
/usr/X11R6/etc/X11/XF86Config):&prompt.root; cp XF86Config.new /etc/X11/XF86ConfigDamit ist die Konfiguration beendet. Wenn Sie
&xfree86; 4.X mit &man.startx.1; starten
wollen, müssen Sie noch den Port x11/wrapper installieren. Sie
können &xfree86; 4.X aber auch mit
&man.xdm.1; starten.&xfree86; 4.X kann auch
im Grafikmodus mit &man.xf86cfg.1; konfiguriert werden.
Mit dem interaktiven Werkzeug können Treiber
ausgewählt und Einstellungen vorgenommen werden.
Das Programm kann auch auf der Konsole benutzt werden,
starten Sie es einfach mit xf86cfg -textmode.
Weitere Informationen erhalten Sie in der Hilfeseite
&man.xf86cfg.1;.Spezielle KonfigurationenKonfiguration des &intel; i810 Graphics ChipsetsIntel i810 ChipsetDer &intel; i810 Chipset benötigt den Treiber
agpgart, die AGP-Schnittstelle
von &xfree86;. Der Treiber
&man.agp.4; befindet sich seit 4.8-RELEASE und 5.0-RELEASE
in der Vorgabekonfiguration GENERIC.
Wenn Sie eine frühere FreeBSD-Version benutzen
müssen Sie Ihre Kernelkonfiguration um die
nachstehende Zeile erweitern:device agpAnschließend müssen Sie einen neuen
Kernel bauen. Sie können beim Systemstart
das Modul agp.ko auch mit dem
&man.loader.8; aktivieren. Fügen Sie dazu
einfach die nachstehende Zeile in
/boot/loader.conf ein:agp_load="YES"Wenn Sie FreeBSD 4.X oder eine frühere Version
benutzen, müssen Sie noch die Gerätedateien im
Verzeichnis /dev erstellen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV agpgartWenn Sie FreeBSD 5.X oder eine neuere Version verwenden,
werden die Gerätedateien automatisch von &man.devfs.5;
angelegt. Lassen Sie dann diesen Schritt aus.Ab jetzt kann die Hardware wie jede andere Grafikkarte auch
konfiguriert werden. Der Treiber &man.agp.4; kann nicht
nachträglich mit &man.kldload.8; in einen laufenden
Kernel geladen werden. Er muss entweder fest im Kernel
eingebunden sein oder beim Systemstart über
/boot/loader.conf geladen werden.Ab &xfree86; 4.1.0 kann es sein,
dass Sie Meldungen über unresolved
symbols wie fbPictureInit
erhalten. Fügen Sie in diesem Fall die nachstehende Zeile
hinter Driver "i810" in der
&xfree86;-Konfigurationsdatei
ein:Option "NoDDC"MurrayStokelyBeigetragen von Schriftarten in &xfree86; benutzenType 1 SchriftartenDie Schriftarten, die mit &xfree86;
geliefert werden, eignen sich ganz und gar nicht für
Desktop-Publishing-Anwendungen. Große Schriftarten zeigen bei
Präsentationen deutliche Treppenstufen und die kleinen
Schriftarten in &netscape; sind fast
unleserlich. Es gibt allerdings mehrere hochwertige
Type 1 Schriftarten (&postscript;), die mit
&xfree86; (Version 3.X oder 4.X) benutzt
werden können. Beispielsweise enthalten die URW-Schriftarten
(x11-fonts/urwfonts) hochwertige
Versionen gängiger Type 1 Schriftarten (zum Beispiel
Times Roman,
Helvetica,
Palatino).
Die Sammlung Freefonts (x11-fonts/freefonts) enthält noch
mehr Schriftarten, doch sind diese für den Einsatz in
Grafik-Programmen wie The Gimp gedacht.
Es fehlen auch einige Schriftarten, so dass sich die Sammlung nicht
für den alltäglichen Gebrauch eignet. Weiterhin kann
&xfree86; leicht so konfiguriert werden,
dass es &truetype;-Schriftarten verwendet (dies wird später im
Abschnitt &truetype; Schriftarten
beschrieben).Die Type 1 Schriftarten lassen sich aus der Ports-Sammlung wie
folgt installieren:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanAnalog lassen sich Freefont und andere Sammlungen installieren.
Die neuen Schriftarten müssen dem X-Server in der Datei
XF86Config bekannt gegeben werden.
In der Version 3 von &xfree86; befindet
diese Datei in /etc, in Version 4 befindet
sich die Datei im Verzeichnis /etc/X11/.
Fügen Sie die folgende Zeile hinzu:FontPath "/usr/X11R6/lib/X11/fonts/URW/"Sie können aber auch in der X-Sitzung das folgende
Kommando absetzen:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW
&prompt.user; xset fp rehashDann kennt der X-Server die neuen Schriftarten nur bis zum Ende
der Sitzung. Wenn die Änderung dauerhaft sein soll, müssen
Sie die Kommandos in ~/.xinitrc eintragen,
wenn Sie X mit startx starten, oder in
~/.xsession, wenn Sie
XDM benutzen. Sie können die
Schriftarten auch in die neue Datei XftConfig,
die im Abschnitt Anti-aliasing
beschrieben wird, eintragen.&truetype;-SchriftartenTrueType-SchriftartenSchriftartenTrueType&xfree86; 4.X kann &truetype;-Schriftarten
mithilfe von zwei Modulen darstellen. Im folgenden Beispiel wird das
Freetype-Modul benutzt, da es besser mit anderen Werkzeugen, die
&truetype;-Schriftarten darstellen, übereinstimmt. Das
Freetype-Modul aktivieren Sie im Abschnitt "Module"
von /etc/X11/XF86Config durch Einfügen der
Zeile:Load "freetype"&xfree86; 3.3.X benötigt einen
gesonderten &truetype;-Schriftserver. Üblicherweise wird
dafür Xfstt verwendet, den Sie aus
dem Port x11-servers/Xfstt
installieren können.Erstellen Sie ein Verzeichnis für die
&truetype;-Schriftarten (z.B.
/usr/X11R6/lib/X11/fonts/TrueType) und kopieren
Sie alle Schriftarten dorthin. Die Schriftarten müssen im
&unix;/DOS/&windows;-Format liegen, Schriftarten von einem &macintosh;
können Sie nicht direkt übernehmen. Die Schriftarten
müssen noch in der Datei fonts.dir
katalogisiert werden. Den Katalog können Sie mit
ttmkfdir aus dem Port x11-fonts/ttmkfdir erzeugen:&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir > fonts.dirGeben Sie dem System das &truetype;-Verzeichnis, wie im Abschnitt
Type 1 Schriftarten beschrieben,
bekannt:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashOder fügen Sie eine -Zeile in
XF86Config hinzu.Das war's. Jetzt sollten &netscape;,
Gimp, &staroffice;
und alle anderen X-Anwendungen die &truetype;-Schriftarten benutzen.
Extrem kleine Schriftarten (Webseiten, die mit hoher Auflösung
betrachtet werden) und sehr große Schriftarten (in
&staroffice;) sollten jetzt viel besser
aussehen.Joe MarcusClarkeAktualisiert von Anti-aliasingAnti-aliasingSchriftartenAnti-aliasing&xfree86; beherrscht das
Anti-aliasing-Verfahren seit der
Version 4.0.2. Die Konfiguration der Schriftarten war
vor &xfree86; 4.3.0 ziemlich
schwierig. Ab der Version 4.3.0 stehen alle Schriftarten
in /usr/X11R6/lib/X11/fonts/ und
~/.fonts/ automatisch für das
Anti-aliasing-Verfahren mit
Anwendungen, die Xft unterstützen, zur Verfügung.
Es gibt schon viele Anwendungen, die Xft unterstützen,
zum Beispiel: Qt 2.3 und höhere Versionen
(das KDE-Toolkit), Gtk+ 2.0
und höhere Versionen (das
GNOME-Toolkit) sowie
Mozilla 1.2 und höhere Versionen.In der Datei /usr/X11R6/etc/fonts/local.conf
werden die Schriftarten, die mit dem Anti-aliasing-Verfahren
benutzt werden sollen und die Eigenschaften des Verfahrens
festgelegt. In diesem Abschnitt wird nur die grundlegende
Konfiguration von Xft beschrieben. Weitere Details entnehmen
Sie bitte der Hilfeseite &man.fonts-conf.5;.XMLDie Datei local.conf ist ein
XML-Dokument. Achten Sie beim
Editieren der Datei daher auf die richtige Groß- und
Kleinschreibung und darauf, dass alle Tags geschlossen
sind. Die Datei beginnt mit der üblichen XML-Deklaration
gefolgt von einer DOCTYPE-Definition und dem
<fontconfig>-Tag:
-
- <?xml version="1.0"?>
+ <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Wie vorher erwähnt, stehen schon alle Schriftarten
in /usr/X11R6/lib/X11/fonts/ und
~/.fonts/ für Anwendungen, die
Xft unterstützen, zur Verfügung. Wenn Sie ein
Verzeichnis außerhalb dieser beiden Bäume
benutzen wollen, fügen Sie eine Zeile wie die
nachstehende zu
/usr/X11R6/etc/fonts/local.conf hinzu:<dir>/path/to/my/fonts</dir>Wenn Sie neue Schriftarten hinzugefügt haben,
müssen Sie den Schriftarten-Cache neu aufbauen:&prompt.root; fc-cache -fDas Anti-aliasing-Verfahren zeichnet Ränder leicht unscharf,
dadurch werden kleine Schriften besser lesbar und der
Treppenstufen-Effekt bei wird großen Schriften vermieden. Auf
normale Schriftgrößen sollte das Verfahren aber nicht
angewendet werden, da dies die Augen zu sehr anstrengt. Um
kleinere Schriftgrößen als 14 Punkt von dem
Verfahren auszunehmen, fügen Sie in
local.conf die nachstehenden Zeilen ein: <match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>SchriftartenAbständeDas Anti-aliasing-Verfahren kann die Abstände einiger
Fixschriften falsch darstellen, dies fällt besonders unter
KDE auf. Sie können das Problem
umgehen, indem Sie die Abstände dieser Schriften auf den Wert
100 festsetzen. Fügen Sie die nachstehenden
Zeilen hinzu: <match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>Damit werden die Namen der gebräuchlichen Fixschriften auf
"mono" abgebildet. Für diese Schriften
setzen Sie dann den Abstand fest: <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> Bestimmte Schriftarten, wie Helvetica, können
Probleme mit dem Anti-Aliasing-Verfahren verursachen.
In der Regel erscheinen diese Schriftarten dann vertikal
halbiert. Im schlimmsten Fall stürzen Anwendungen,
wie Mozilla, als Folge davon ab.
Sie vermeiden dies, indem Sie betroffene Schriftarten in
local.conf von dem Verfahren ausnehmen: <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> Wenn Sie local.conf editiert haben,
stellen Sie bitte sicher, dass die Datei mit dem Tag
</fontconfig> endet. Ist das
nicht der Fall, werden die Änderungen nicht
berücksichtigt.Die mit &xfree86; gelieferten
Schriftarten eignen sich nicht besonders für das
Anti-Aliasing-Verfahren. Der Port x11-fonts/bitstream-vera
enthält viel besser geeignete Schriftarten. Wenn sie
noch nicht existiert, legt der Port die Datei
/usr/X11R6/etc/fonts/local.conf
an. Ansonsten erzeugt der Port die Datei
/usr/X11R6/etc/fonts/local.conf-vera,
deren Inhalt Sie in
/usr/X11R6/etc/fonts/local.conf
aufnehmen müssen. Danach werden die
&xfree86;-Schriftarten
Serif, Sans Serif und Monospaced durch die entsprechenden
Bitstream-Schriftarten ersetzt.Benutzer können eigene Einstellungen in der
Datei ~/.fonts.conf vornehmen.
Achten Sie auch hier auf die richtige XML-Syntax.LCDSchriftartenauf einem LCDMit einem LCD können Sie
sub-pixel sampling anstelle von
Anti-aliasing einsetzen. Dieses Verfahren behandelt die horizontal
getrennten Rot-, Grün- und Blau-Komponenten eines Pixels
gesondert und verbessert damit (teilweise sehr wirksam) die
horizontale Auflösung. Die nachstehende Zeile in
local.conf aktiviert diese Funktion:
-
- <match target="font">
+ <match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>Abhängig von der Organisation Ihres Bildschirms
müssen Sie anstelle von
verwenden. Experimentieren Sie und
schauen Sie, was besser aussieht.MozillaWeb-BrowserMozillaMozillaDer nächste Start des X-Servers aktiviert das
Anti-aliasing-Verfahren. Beachten Sie, dass die Anwendungen dieses
Verfahren auch benutzen müssen. Zurzeit wird das Verfahren
von Qt und damit von KDE benutzt
(Details finden Sie in ).
Gtk+ und GNOME können das Verfahren mit dem
Font-capplet benutzen (Details entnehmen
Sie bitte ). Ab
der Version 1.2 benutzt Mozilla
automatisch das Anti-Aliasing Verfahren. Dies können
Sie verhindern, wenn Sie beim Übersetzen von
Mozilla die Option
-DWITHOUT_XFT angeben.SethKingsleyBeigetragen von Der X-Display-ManagerEinführungX-Display-ManagerDer X-Display-Manager
(XDM), eine optionale
Komponente des X-Window-Systems, verwaltet Sitzungen. Er kann mit
vielen Komponenten, wie minimal ausgestatteten X-Terminals,
Arbeitsplatz-Rechnern und leistungsfähigen Netzwerkservern,
nutzbringend eingesetzt werden. Da das X-Window-System
netzwerktransparent ist, gibt es zahlreiche
Möglichkeiten, X-Clients und X-Server auf unterschiedlichen
Rechnern im Netz laufen zu lassen. XDM
stellt eine grafische Anmeldemaske zur Verfügung, in der Sie
den Rechner, auf dem eine Sitzung laufen soll, auswählen
können und in der Sie die nötigen
Autorisierungs-Informationen, wie Benutzername und Passwort,
eingeben können.
- Die Funktion des X-Display-Managers läßt sich mit
+ Die Funktion des X-Display-Managers lässt sich mit
der von &man.getty.8; (siehe )
vergleichen. Er meldet den Benutzer am ausgesuchten System an,
startet ein Programm (meist einen Window-Manager) und
wartet darauf, dass dieses Programm beendet wird, das heißt
der Benutzer die Sitzung beendet hat. Nachdem die Sitzung beendet
ist, zeigt XDM den grafischen
Anmeldebildschirm für den nächsten Benutzer an.XDM einrichtenDer XDM-Dæmon befindet sich in
/usr/X11R6/bin/xdm und kann jederzeit von
root gestartet werden. Er verwaltet dann den
X-Bildschirm des lokalen Rechners. XDM
- läßt sich bequem mit einem Eintrag in
+ lässt sich bequem mit einem Eintrag in
/etc/ttys (siehe )
bei jedem Start des Rechners aktivieren. In
/etc/ttys sollte schon der nachstehende
Eintrag vorhanden sein:ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureIn der Voreinstellung ist dieser Eintrag nicht aktiv. Um den
Eintrag zu aktivieren, ändern Sie den Wert in Feld 5 von
off zu on und starten Sie
&man.init.8; entsprechend der Anleitung in neu. Das erste Feld gibt den Namen des
Terminals an, auf dem das Programm läuft. Im Beispiel wird
ttyv8 verwendet, das heißt
XDM läuft auf dem neunten
virtuellen Terminal.XDM konfigurierenDas Verhalten und Aussehen von XDM
steuern Sie mit Konfigurationsdateien, die im Verzeichnis
/usr/X11R6/lib/X11/xdm stehen.
Üblicherweise finden Sie dort die folgenden Dateien vor:DateiBeschreibungXaccessRegelsatz, der zur Autorisierung von Clients benutzt
wird.XresourcesVorgabewerte für X-Ressourcen.XserversListe mit lokalen und entfernten Bildschirmen, die
verwaltet werden.XsessionVorgabe für das Startskript der
Sitzung.Xsetup_*Skript, das dazu dient, Anwendungen vor der Anmeldung
zu starten.xdm-configKonfiguration für alle auf der Maschine
verwalteten Bildschirme.xdm-errorsFehlermeldungen des Servers.xdm-pidDie Prozess-ID des gerade laufenden
XDM-Prozesses.Im Verzeichnis /usr/X11R6/lib/X11/xdm
befinden sich auch noch Skripten und Programme, die zum Einrichten
der XDM-Oberfläche dienen. Der
Zweck dieser Dateien und der Umgang mit ihnen wird in der
Hilfeseite &man.xdm.1; erklärt. Wir gehen im Folgenden nur
kurz auf ein paar der Dateien ein.Die vorgegebene Einstellung zeigt ein rechteckiges
Anmeldefenster, in dem der Rechnername in großer Schrift
steht. Darunter befinden sich die Eingabeaufforderungen
Login: und Password:.
Mit dieser Maske können Sie anfangen, wenn Sie das
Erscheinungsbild von XDM
verändern wollen.XaccessVerbindungen zu XDM werden mit
dem X Display Manager Connection Protocol
(XDMCP) hergestellt.
XDMCP-Verbindungen von entfernten Maschinen
werden über den Regelsatz in Xaccess
kontrolliert. In der Vorgabe sind alle Verbindungen erlaubt,
doch muss auch xdm-config geändert
werden, damit XDM Verbindungen
entfernter Maschinen annimmt.XresourcesIn dieser Datei kann das Erscheinungsbild der
Bildschirmauswahl und der Anmeldemasken festgelegt werden. Das
Format entspricht den Dateien im Verzeichnis
app-defaults, die in der
&xfree86;-Dokumentation beschrieben
sind.XserversDiese Datei enthält eine Liste entfernter Maschinen, die
in der Bildschirmauswahl angeboten werden.XsessionDieses Skript wird vom XDM
aufgerufen, nachdem sich ein Benutzer erfolgreich angemeldet hat.
Üblicherweise besitzt jeder Benutzer eine angepasste Version
dieses Skripts in ~/.xsession, das dann
anstelle von Xsession ausgeführt
wird.Xsetup_*Diese Skripten werden automatisch ausgeführt bevor die
Bildschirmauswahl oder die Anmeldemasken angezeigt werden.
Für jeden lokalen Bildschirm gibt es ein Skript, dessen
Namen aus Xsetup_ gefolgt von der
Bildschirmnummer gebildet wird (zum Beispiel
Xsetup_0). Normalerweise werden damit ein
oder zwei Programme, wie xconsole, im
Hintergrund gestartet.xdm-configDiese Datei enthält Einstellungen, die für jeden
verwalteten Bildschirm zutreffen. Das Format entspricht dem der
Dateien aus app-defaults.xdm-errorsDie Ausgaben jedes X-Servers, den
XDM versucht zu starten, werden in
dieser Datei gesammelt. Wenn ein von
XDM verwalteter Bildschirm aus
unbekannten Gründen hängen bleibt, sollten Sie in
dieser Datei nach Fehlermeldungen suchen. Für jede Sitzung
werden die Meldungen auch in die Datei
~/.xsession-errors des Benutzers
geschrieben.Einrichten eines Bildschirm-Servers auf dem NetzwerkDamit sich Clients mit dem Bildschirm-Server verbinden
können, muss der Zugriffsregelsatz editiert werden und der
Listener aktiviert werden. Die Vorgabewerte sind sehr
restriktiv eingestellt. Damit XDM
Verbindungen annimmt, kommentieren Sie eine Zeile in der
xdm-config Datei aus:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0Starten Sie danach XDM neu.
Beachten Sie, dass Kommentare in den
Ressourcen-Konfigurationsdateien mit einem !
anstelle des sonst üblichen Zeichens #
beginnen. Wenn Sie strengere Zugriffskontrollen einrichten wollen,
sehen Sie sich die Beispiele in Xaccess und
die Hilfeseite &man.xdm.1; an.XDM ersetzenEs gibt mehrere Anwendungen, die
XDM ersetzen können, zum Beispiel
KDM, der Teil von
KDE ist und später in diesem
Kapitel besprochen wird. KDM ist
ansprechender gestaltet und bietet neben einigen Schnörkeln
die Möglichkeit, den zu verwendenden Window-Manager bei der
Anmeldung auszuwählen.ValentinoVaschettoBeigetragen von Grafische OberflächenDieser Abschnitt beschreibt verschiedene grafische
Oberflächen, die es für X unter FreeBSD gibt. Eine
Oberfläche (desktop environment)
kann alles von einem einfachen Window-Manager bis hin zu kompletten
Anwendungen wie KDE oder
GNOME sein.GNOMEÜber GNOMEGNOMEGNOME ist eine benutzerfreundliche
Oberfläche, mit der Rechner leicht benutzt und konfiguriert
werden können. GNOME besitzt
eine Leiste, mit der Anwendungen gestartet werden und die
Statusinformationen anzeigen kann. Programme und Daten
können auf der Oberfläche abgelegt werden und
Standardwerkzeuge stehen zur Verfügung. Es gibt
Konventionen, die es Anwendungen leicht machen,
zusammenzuarbeiten und ein konsistentes Erscheinungsbild
garantieren. Benutzer anderer Betriebssysteme oder anderer
Arbeitsumgebungen sollten mit der leistungsfähigen
grafischen Oberfläche von GNOME
sehr gut zurechtkommen. Auf der Webseite
FreeBSD GNOME
Project finden Sie weitere Informationen über
GNOME auf FreeBSD.GNOME installierenAm einfachsten installieren Sie GNOME
während der Installation des FreeBSD-Systems wie in
beschrieben. Es ist aber ebenfalls leicht möglich,
GNOME als Paket oder über die
Ports-Sammlung zu installieren.Wenn Sie das GNOME-Paket über
das Netz installieren wollen, setzen Sie den nachstehenden Befehl
ab:&prompt.root; pkg_add -r gnome2Wenn Sie den Quellcode von GNOME
übersetzen wollen, benutzen Sie die Ports-Sammlung:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanNachdem GNOME installiert ist,
muss der X-Server GNOME anstelle eines
Window-Managers starten. Wenn Sie bereits eine angepasste
.xinitrc besitzen, ersetzen Sie dort den
Start des Window-Managers durch
/usr/X11R6/bin/gnome-session. Wenn
.xinitrc nicht gesondert angepasst wurde,
reicht es, den nachstehenden Befehl abzusetzen:&prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrcRufen Sie dann startx auf, um die
GNOME Oberfläche zu starten.Wenn Sie einen Display-Manager wie
XDM verwenden, müssen Sie
anders vorgehen. Legen Sie eine ausführbare
.xsession an, die das Kommando
zum Start von GNOME enthält.
Ersetzen Sie dazu den Start des Window-Managers durch
/usr/X11R6/bin/gnome-session:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionSie können auch den Display-Manager so konfigurieren,
dass der Window-Manager beim Anmelden ausgesucht werden kann. Im
Abschnitt Details zu KDE
wird das für kdm, den
Display-Manager von KDE
erklärt.Anti-aliasing-Verfahren mit GNOMEGNOMEAnti-Aliasing-VerfahrenAb der Version 4.0.2 beherrscht
&xfree86; mit der
RENDER-Erweiterung das Anti-Aliasing-Verfahren.
Gtk+ 2.0 und spätere Versionen (das GNOME-Toolkit)
kann dieses Verfahren benutzen. Die Konfiguration des
Verfahrens ist in beschrieben.
Aktivieren Sie Anti-Aliasing im Menü
ApplicationsDesktop PreferencesFont. Dort wählen
Sie dann eine der Möglichkeiten
Best shapes,
Best contrast oder
Subpixel smoothing (LCDs).
Für Gtk+-Anwendungen, die nicht Teil von
GNOME sind, setzen Sie
die Umgebungsvariable GDK_USE_XFT
vor dem Start der Anwendung auf den Wert
1.KDEÜber KDEKDEKDE ist eine moderne, leicht zu
benutzende Oberfläche, die unter anderem Folgendes
bietet:eine schöne und moderne Oberfläche,eine Oberfläche, die völlig netzwerktransparent
ist,ein integriertes Hilfesystem, das bequem und konsistent
Hilfestellungen bezüglich der Bedienung
der KDE-Oberfläche und
ihrer Anwendungen gibt,ein konstantes Erscheinungsbild (look and
feel) aller
KDE-Anwendungen,einheitliche Menüs, Werkzeugleisten,
Tastenkombinationen und Farbschemata,Internationalisierung: KDE
ist in mehr als 40 Sprachen erhältlich,durch Dialoge gesteuerte zentrale Konfiguration der
Oberfläche,viele nützliche
KDE-Anwendungen.In KDE ist ein Office-Paket
integriert, das die KParts-Technik benutzt. Das
Paket enthält neben anderem eine Tabellenkalkulation, ein
Präsentationsprogramm, einen Terminkalender und einen
News-Client. Ein Webbrowser mit Namen
Konqueror, der sich mit anderen
Webbrowsern von &unix; Systemen messen kann, ist ebenfalls
Bestandteil von KDE. Weitere
Informationen über KDE erhalten
Sie auf den KDE-Webseiten. Auf der
Webseite FreeBSD-KDE
team finden Sie weitere FreeBSD-spezifische
Informationen über KDE.KDE installierenAm einfachsten installieren Sie KDE,
wie jede andere grafische Oberfläche auch, während der
Installation des FreeBSD-Systems wie in
beschrieben. Die Anwendung kann natürlich auch als Paket
oder über die Ports-Sammlung installiert werden.Um KDE über das Netz zu
installieren, setzen Sie den nachstehenden Befehl ab:&prompt.root; pkg_add -r kde&man.pkg.add.1; installiert automatisch die neuste
Version einer Anwendung.Benutzen Sie die Ports-Sammlung, wenn Sie den Quellcode von
KDE übersetzen wollen:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanNachdem KDE installiert ist, muss
der X-Server KDE anstelle eines
Window-Managers starten. Legen Sie dazu die Datei
.xinitrc an:&prompt.user; echo "exec startkde" > ~/.xinitrcWenn das X-Window-System danach mit startx
gestartet wird, erscheint die
KDE-Oberfläche.Wird ein Display-Manager wie xdm
benutzt, muss .xsession angepasst werden.
Eine Anleitung für kdm folgt
gleich in diesem Kapitel.Details zu KDEWenn KDE erst einmal installiert
ist, erschließen sich die meisten Sachen durch das
Hilfesystem oder durch Ausprobieren. Benutzer von Windows oder
&macos; werden sich sehr schnell zurecht finden.Die beste Referenz für KDE
ist die Online-Dokumentation. KDE
besitzt einen eigenen Webbrowser, sehr viele nützliche
Anwendungen und ausführliche Dokumentation. Der Rest dieses
Abschnitts beschäftigt sich daher mit Dingen, die schlecht
durch einfaches Ausprobieren erlernbar sind.Der KDE-Display-ManagerKDEDisplay-ManagerDer Administrator eines Mehrbenutzersystems will den
Benutzern vielleicht eine grafische Anmeldung wie mit
xdm
ermöglichen. KDE besitzt einen
eigenen Display-Manager, der schöner aussieht und auch
über mehr Optionen verfügt. Insbesondere können
sich die Benutzer die Oberfläche für die Sitzung
(beispielsweise KDE oder
GNOME) aussuchen.Starten Sie das KDE
Kontrollzentrum, kcontrol, als
root. Lassen Sie bitte nicht die gesamte
X-Umgebung unter root laufen, dies ist sehr
unsicher. Öffnen Sie stattdessen als normaler Benutzer ein
Terminalfenster (zum Beispiel einen xterm
oder die konsole von
KDE) und wechseln Sie darin mit
su zu root (dazu muss der
Benutzer der Gruppe wheel angehören).
Rufen Sie dann kcontrol auf, um das
Kontrollzentrum zu starten.Klicken Sie auf das Icon System und
dann auf Login manager. Auf der rechten
Seite befinden sich verschiedene Optionen, die alle
ausführlich im KDE-Handbuch
beschrieben werden. Klicken Sie auf
sessions und dann auf
New type. Jetzt können Sie Namen
für Window-Manager oder grafische Oberflächen eingeben.
Die Namen müssen nicht mit den zu startenden Programmen
übereinstimmen, so dass Sie KDE
anstelle von startkde oder
GNOME anstelle von
gnome-session eingeben
können. Legen Sie bitte auch eine Sitzung mit dem Namen
failsafe an.Sehen Sie sich auch die anderen Menüs an. Wenn Sie
fertig sind, klicken Sie Apply und beenden
Sie das Kontrollzentrum.Damit kdm mit den vergebenen
Namen (KDE,
GNOME) etwas anfangen kann, editieren
Sie die Dateien, die von xdm benutzt
werden.
Ab KDE 2.2 benutzt
kdm eigene Konfigurationsdateien.
Schauen Sie die Einzelheiten bitte in der
KDE 2.2-Dokumentation nach.
Wechseln Sie in einem Terminalfenster zu root
und editieren Sie die Datei
/usr/X11R6/lib/X11/xdm/Xsession.
Ungefähr in der Mitte Datei finden Sie einen Abschnitt wie
den folgenden:case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacFür die vergebenen Namen müssen nun einige Zeilen
hinzugefügt werden. Wenn Sie KDE und
GNOME verwendet haben, sollte der Abschnitt wie
folgt aussehen:case $# in
1)
case $1 in
kde)
exec /usr/local/bin/startkde
;;
GNOME)
exec /usr/X11R6/bin/gnome-session
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacWenn Sie den KDE-Hintergrund schon
während der Anmeldung benutzen wollen, fügen Sie die
nachstehende Zeile in
/usr/X11R6/lib/X11/xdm/Xsetup_0 ein:/usr/local/bin/kdmdesktopDamit kdm beim nächsten
Systemstart gestartet wird, muss ein entsprechender Eintrag in
/etc/ttys vorhanden sein. Folgen Sie dazu
den Anweisungen aus dem Anschnitt über
xdm und ersetzen Sie alle Bezüge auf
/usr/X11R6/bin/xdm durch
/usr/local/bin/kdm.Anti-aliasing-Verfahren mit KDEKDEAnti-Aliasing-VerfahrenAb der Version 4.0.2 beherrscht
&xfree86; durch die
RENDER-Erweiterung das Anti-aliasing-Verfahren.
Die Erweiterung wird ab der Version 2.3 von Qt, dem
KDE-Toolkit, benutzt. In
wird beschrieben wie das
Anti-aliasing-Verfahren eingerichtet wird. Im KDE-Menü
wählen Sie
PreferencesLook and FeelFonts. Klicken Sie dann in das
Kontrollkästchen Use Anti-Aliasing for Fonts and
Icons. Für nicht zu
KDE gehörende Qt-Anwendungen
muss die Umgebungsvariable QT_XFT vor dem Start
der Anwendung auf true gesetzt werden.XFceÜber XFceXFce ist eine grafische
Oberfläche, die auf den GTK-Bibliotheken, die auch von
GNOME benutzt werden, beruht. Die
Oberfläche ist allerdings weniger aufwändig und
für diejenigen gedacht, die eine schlichte und effiziente
Oberfläche wollen, die dennoch einfach zu benutzen
und zu konfigurieren ist. Die Oberfläche sieht
ähnlich wie CDE aus, das in
kommerziellen &unix; Systemen verwendet wird. Einige Merkmale
von XFce sind:eine schlichte einfach zu benutzende
Oberfläche,vollständig mit Mausoperationen konfigurierbar,
Unterstützung von drag and
drop,ähnliche Hauptleiste wie
CDE, die Menüs enthält
und über die Anwendungen gestartet werden
können,integrierter Window-Manager, Datei-Manager und
Sound-Manager,
GNOME-compliance-Modul,mit Themes anpassbar (da
GTK benutzt wird),schnell, leicht und effizient: ideal für ältere
oder langsamere Maschinen oder Maschinen mit wenig
Speicher.Weitere Information über
XFce erhalten Sie auf der
XFce-Webseite.XFce installierenDas XFce-Paket installieren Sie
mit dem nachstehenden Kommando:&prompt.root; pkg_add -r xfce4Mit der Ports-Sammlung können Sie auch den Quellcode
übersetzen:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanDamit beim nächsten Start des X-Servers
XFce benutzt wird, setzen Sie das
folgende Kommando ab:
- &prompt.user; echo "/usr/X11R6/bin/startxfce" > ~/.xinitrc
+ &prompt.user; echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrcWenn Sie einen Display-Manager benutzen, erstellen Sie die
Datei .xsession, wie im GNOME Abschnitt beschrieben.
Verwenden Sie jetzt allerdings das Kommando
- /usr/X11R6/bin/startxfce. Sie können
+ /usr/X11R6/bin/startxfce4. Sie können
auch den Display-Manager wie im kdm Abschnitt beschrieben, so
konfigurieren, dass die Oberfläche für die Sitzung
ausgewählt werden kann.