diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile
index 9923853531..bcfe8d0436 100644
--- a/de_DE.ISO8859-1/books/handbook/Makefile
+++ b/de_DE.ISO8859-1/books/handbook/Makefile
@@ -1,155 +1,155 @@
#
# $FreeBSD$
-# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.34 2004/05/09 19:49:44 mheinen Exp $
-# basiert auf: 1.79
+# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.36 2004/06/06 18:21:21 mheinen Exp $
+# basiert auf: 1.81
#
# Build the FreeBSD Handbook in its German translation.
#
-MAINTAINER=alex@FreeBSD.org
+MAINTAINER=de-bsd-translators@de.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+= 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 '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 '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 52f835895b..5009342578 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,7466 +1,7478 @@
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.Wissen, wie man NAT (Network Address Translation)
einrichtet.In der Lage sein, den
inetd-Daemon einzurichten.Zwei Computer über PLIP verbinden 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 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).
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
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 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-GWPPPEine 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.1Weitere 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.
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 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.AlHoangBeigetragen von Statische Routen einrichtenManuelle KonfigurationNehmen 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 xl1Mit 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.2Ab sofort kann RouterA alle Rechner des
Netzwerks 192.168.2.0/24
erreichen.Routen dauerhaft einrichtenDas 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_routesinternalnet2 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.2Daher 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.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 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
(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 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:options MROUTINGZusä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
(access point) für
drahtlose Netzwerke verwendet werden.Betriebsmodi drahtloser GeräteDrahtlose 802.11-Geräte können in zwei Modi
konfiguriert werden: BSS und IBSS.BSS-ModusÜ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.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 einem beliebigen
Netzwerk verbunden.IBSS-ModusDer IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
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 installierendrahtlose 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
implementiert, läuft am besten mit bestimmten
Firmware-Versionen. Prism 2-Karten sollten die
Firmwareversion 1.3.4 oder neuer verwenden.
Prism 2.5- und Prism 3-Karten sollten die
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.EinrichtungStellen 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 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 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 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=1Ab &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=1Nun 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"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.
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. 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 und
Verschlüsselung von Zugangspunkten zu
informieren.StatusinformationenWenn der Zugangspunkt eingerichtet ist und läuft,
können Sie die verbundenen Clients mit dem nachstehenden
Kommando abfragen:&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/15Das 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.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
Verschlüsselung deaktiviert ist.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ü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 1Nun 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_netErsetzen Sie 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 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: associatedWird associated nicht angezeigt, sind
Sie entweder außerhalb der Reichweite des
Zugangspunktes, haben die Verschlüsselung deaktiviert,
oder Sie haben ein anderes Konfigurationsproblem.Verschlüsselungdrahtlose 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
zuzugreifen.Die gebräuchlichsten Methoden, um Daten zwischen
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
sind WEP und &man.ipsec.4;.WEPWEPWEP 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:&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 0x1234567890Beachten Sie bitte, dass Sie
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 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. 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 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. Durch diese Tools
können Sie feststellen, ob WEP Ihren
Sicherheitsanforderungen genügt.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 ifconfigifconfig&man.ifconfig.8; kennt zwar viele Optionen von
&man.wicontrol.8;, einige fehlen jedoch. Unter
&man.ifconfig.8; finden Sie Informationen zu
Parametern und Optionen.Unterstützte KartenZugangspunktDie 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).BluetoothBluetoothDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.StevePetersonGeschrieben 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.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.Situationen, in denen Bridging
angebracht istEine Bridge wird vor allem in folgenden zwei Situationen
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 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 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 FirewallFirewallNetwork Adress TranslationDie zweite häufig anzutreffende Situation tritt auf,
wenn Firewallfunktionen benötigt werden, ohne dass
Network Adress Translation
(NAT) verwendet wird.Ein Beispiel dafür wäre ein kleines Unternehmen,
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;
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ützungFirewallWenn 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
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 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=1Ab &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 InformationenWenn 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.Eine Bridge kann, besonders für Verkehr über
Segmente, die Laufzeiten von Paketen erhöhen.TomRhodesReorganisiert 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.
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.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; 5.X wurde portmap
- durch rpcbind ersetzt. Benutzer von
- &os; 5.X müssen daher in den folgenden Beispielen
- portmap durch
- rpcbind ersetzen.
+ durch rpcbind ersetzt. Benutzer
+ von &os; 5.X müssen daher in den folgenden
+ Beispielen portmap durch
+ rpcbind ersetzen.
Der Server benötigt folgende Daemonen:NFSServerportmapmountdnfsdDaemonBeschreibung
- nfsd
+ nfsdDer NFS-Daemon. Er bearbeitet
Anfragen der NFS-Clients.
- mountd
+ mountdDer NFS-Mount-Daemon. Er
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
weitergibt.
- portmap
+ 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
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. Mehr erfahren
Sie in der Hilfeseite &man.nfsiod.8;.NFS einrichtenNFSeinrichtenNFS 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 der Datei
/etc/rc.conf gesetzt sind:portmap_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
- mountd läuft automatisch, wenn der
- NFS-Server aktiviert ist.
+ 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 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 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.
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 clientDas Dateisystem /usr wird hier zweimal
auf den selben Rechner (client)
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
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
# 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
- Sie müssen mountd nach jeder
+ Sie 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
+ 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.Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
automatisch einhängen wollen, fügen Sie das
Dateisystem in /etc/fstab ein. Dazu ein
Beispiel:server:/home /mnt nfs rw 0 0Eine 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.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
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
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 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
+ &man.mount.8; 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):
fastws:/sharedfs /project nfs rw,-r=1024 0 0Manuelles Einhängen auf
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project&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 AlexDupreReorganisiert 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:Es gibt mindestens zwei Möglichkeiten, den Kernel
über das Netzwerk zu laden:PXE: Das
Preboot Execution Environment System von
&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
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.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.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. 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, 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.HintergrundinformationenDie 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:Kompilierte Optionen haben zur Laufzeit unterschiedliche
Auswirkungen.Fehlermeldungen sind oft kryptisch oder fehlen
vollständig.Daher ist es nützlich, über die im Hintergrund
ablaufenden Mechanismen Bescheid zu wissen. Dadurch wird es
einfacher, eventuell auftretende Fehler zu beheben.Verschiedene Operationen müssen ausgeführt werden,
um ein System erfolgreich zu starten: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.
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.
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.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;.InstallationsanweisungenKonfiguration unter Verwendung von
ISC DHCPDHCPplattenloser BetriebDer 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 margauxetherboot, 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
margauxDie 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 BOOTPBOOTPplattenloser BetriebEs 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 erstellenEtherbootDie
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
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.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 &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.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.Das System mit PXE startenIn 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 BetriebNFSplattenloser BetriebWenn 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,
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 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
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 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 mountpoint
an und ersetzen Sie
margaux corbieres durch den
Namen Ihres plattenlosen Rechners):/data/misc -alldirs -ro margauxWeisen 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 BetriebKernelkonfigurationWenn 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 infoAußerdem können Sie die Optionen
BOOTP_NFSV3,
BOOT_COMPAT sowie
BOOTP_WIRED_TO verwenden (sehen Sie sich
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 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
folgende Abschnitt beschreibt zwei Möglichkeiten, dies
zu tun.Das Skript clone_root
verwendenDie 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
verwendenDiese 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 distributionDanach müssen Sie noch die dadurch in
DESTDIR erzeugten Dateien
/etc/rc.conf sowie
/etc/fstab Ihren Wünschen
anpassen.Den Auslagerungsbereich konfigurierenFalls 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.Eine NFS-Auslagerungsdatei unter
&os; 4.X einrichtenGröß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=0000fa00Die 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.6Bei 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 corbieresZuletzt weisen Sie mountd
erneut an, die Exportdateien neu einzulesen.Eine NFS-Auslagerungsdatei unter
&os; 5.X einrichtenDer 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:&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000Um die Auslagerungsdatei zu aktivieren, fügen Sie
folgende Zeile in rc.conf ein:swapfile=/path/to/swapfileVerschiedenesSchreibgeschütztes Dateisystem
/usrplattenloser Betrieb/usr schreibgeschütztWenn am plattenlosen Rechner X läuft, müssen
Sie die Konfigurationsdatei von xdm
anpassen, da Fehlermeldungen in der Voreinstellung auf
/usr geschrieben werden.Der Server läuft nicht unter FreeBSDWenn 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-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).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. 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 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.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
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.ModemDie 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.
PPPDer 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
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.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.
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 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 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 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 UdoErdelhoffNIS/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.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.
- portmap
+ portmapMuss laufen, damit RPC (Remote Procedure Call, ein
von NIS verwendetes Netzwerkprotokoll) funktioniert.
NIS-Server sowie Clients funktionieren ohne
- portmap nicht.
+ portmap nicht.
- ypbind
+ 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.
+ 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.
- ypserv
+ 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
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.
+ ypbind-Prozess auf dem
+ Client neu zu starten.
- rpc.yppasswdd
+ 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.
NISClientNIS-Clients. NIS-Clients
identifizieren sich gegenüber dem NIS-Server
(ä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.
+ 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
+ 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- 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; cd /var/yp
&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 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
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.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
+ 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
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.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.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"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
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
+ &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
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.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.
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
+ -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
+ Benutzer bill an der Anmeldung am Rechner
basie zu hindern, gehen wir wie folgt vor:
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;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)Beschreibung
- alpha, beta
+ alpha,
+ betaBeschäftigte der IT-Abteilung
- charlie, delta
+ charlie,
+ deltaDie neuen Lehrlinge der IT-Abteilung
- echo, foxtrott, golf, ...
+ echo,
+ foxtrott,
+ golf, ...Normale Mitarbeiter
- able, baker, ...
+ able,
+ baker, ...Externe MitarbeiterRechnername(n)Beschreibung
- war, death, famine, pollution
+ war, death,
+ famine, pollutionIhre wichtigsten Server. Nur IT-Fachleute
dürfen sich an diesen Rechnern anmelden.
- pride, greed, envy, wrath, lust, sloth
+ pride, greed,
+ envy, wrath,
+ lust, slothWeniger wichtige Server. Alle Mitarbeiter der
IT-Abteilung dürfen sich auf diesen Rechnern
anmelden.
- one, two, three, four, ...
+ one, two,
+ three, four, ...Gewöhnliche Arbeitsrechner. Nur die
wirklichen Mitarbeiter dürfen
diese Rechner verwenden.
- trashcan
+ 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
+ System für jeden Benutzer eine entsprechende 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/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_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,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
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) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
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; 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.byhost
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
+ 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.
+ 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,
+ 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/nologinnach 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_APP:::::::::
+:::::::::/sbin/nologinDie entsprechenden Zeilen für normale Arbeitsplätze
lauten:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/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.
+ 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
+ BIGSRV erzeugen, um den Zugang zu
den wichtigsten Servern zu beschränken, eine weitere
- Gruppe SMALLSRV für die weniger
+ Gruppe SMALLSRV für die weniger
wichtigen Server und eine dritte Netzgruppe
- USERBOX für die normalen
+ 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
SMALLSRV IT_EMP IT_APP ITINTERN
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.
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/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 folgerndermassen
- 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
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 arbeiten
- Wenn 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
- aneinander binden könnten.
+ Wenn 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 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"Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen
benötigen.PasswortformateNISPasswortformateUnterschiedliche 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).Wenn die Datei /etc/login.conf
geändert wird, muss die Login-Capability Datenbank
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
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 Passwortformat verwendet. Falls Sie
Probleme mit der Authentifizierung eines NIS-Clients
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 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-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. Weitere Informationen zur Kernelkonfiguration
+ device bpf
+ (pseudo-device bpf unter &os; 4.X)
+ in Ihre Kernelkonfigurationsdatei ein und erzeugen einen
+ neuen 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=""DHCPServer
- Der DHCP-Server dhcpd ist als Teil des
- Ports net/isc-dhcp3-server
+ Der DHCP-Server dhcpd ist als
+ Teil des Ports
+ net/isc-dhcp3-server
verfügbar. Dieser Port enthält die komplette
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 zumeist ausreichend sind. Lesen Sie dazu
auch &man.dhclient.conf.5;./sbin/dhclientdhclient ist statisch gelinkt und
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-server
installieren. Lesen Sie , wenn Sie
weitere Informationen zur Portssammlung benötigen.
Den DHCP-Server installierenDHCPinstallieren
- Stellen 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
+ Stellen Sie sicher, dass &man.bpf.4; in Ihren Kernel
+ kompiliert ist. Dazu fügen Sie die Zeile
+ device bpf
+ (pseudo-device bpf unter &os; 4.X)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-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-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 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 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 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./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.
/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. 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;.ChernLeeBeigetragen von DNS – Domain Name ServiceÜberblickBINDDNS 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.DNSIm 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.BegriffsbestimmungenUm dieses Dokument besser verstehen zu können,
müssen einige DNS-spezifische Begriffe genauer definiert
werden.BegriffBedeutungForward-DNSRechnernamen in IP-Adressen umwandelnOrigin (Ursprung)Die in einer bestimmten Zonendatei beschriebene
Domäne.named, BIND,
NameserverGebräuchliche Namen für das unter FreeBSD
verwendete BIND-NameserverpaketResolverResolverEin Systemprozess, durch den ein Rechner
Zoneninformationen von einem Nameserver anfordert.
Reverse-DNSReverse-DNSDas Gegenteil von Forward-DNS; die Umwandlung von
IP-Adressen in Rechnernamenroot zoneRoot-ZoneDer 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.ZoneEine individuelle Domäne, Unterdomäne,
oder ein Teil von DNS, der von der gleichen
Autorität verwaltet wird.ZonenBeispieleEs 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
NameserversEs gibt zwei Arten von Nameservern: Autoritative Nameserver
sowie zwischenspeichernde (cachende) Nameserver.Ein autoritativer Nameserver ist notwendig, wennsie 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, weilein 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.DateiBeschreibungnamedDer BIND-Daemon.ndcDas Steuerprogramm für
named./etc/namedbDas Verzeichnis, in dem sich die Zoneninformationen
für BIND befinden./etc/namedb/named.confDie Konfigurationsdatei für
named.Zonendateien befinden sich normalerweise im Verzeichnis
/etc/namedb und enthalten die vom
Nameserver angebotenen DNS-Zoneninformationen.BIND startenBINDStartDa 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 startKonfigurationsdateienBINDKonfigurationsdateienmake-localhost verwendenUm 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/sWenn 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.ZonendateienDie 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 valueDNSEinträgeDie am häufigsten verwendeten DNS-Einträge sind:SOAStart der ZonenautoritätNSEin autoritativer NameserverAEine RechneradresseCNAMEDer kanonische Name eines AliasMXMail ExchangerPTREin (bei Reverse-DNS verwendeter) Domain Name
Pointerexample.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 dayexample.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).5Die 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.30Der 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) NameserverBINDZwischenspeichernde NameserverEin 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ührenBINDSandboxchrootEs 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
^DDadurch 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-xferNachdem 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 cleandirDieser Schritt kann manchmal fehlschlagen. Wenn
dies passiert, machen Sie Folgendes:&prompt.root; cd /usr/src && make cleandir && make cleandirDanach löschen Sie
/usr/obj inklusive aller
Unterverzeichnisse:&prompt.root; rm -fr /usr/obj && mkdir /usr/objDadurch 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 nullLinken Sie /etc/namedb/var/run/ndc
symbolisch nach /var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcDadurch 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!SicherheitObwohl 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 InformationsquellenHilfeseiten zu BIND/named:
&man.ndc.8;, &man.named.8;, &man.named.conf.5;Offizielle ISC-Seite
zu BIND
BIND FAQsO'Reilly
DNS and BIND 4th EditionRFC1034
- Domain Names - Concepts and FacilitiesRFC1035
- Domain Names - Implementation and SpecificationTomHukinsBeigetragen von NTP – Network Time ProtocolNTPÜberblickDa 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.NTPntpd&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ählenNTPServerwahlUm 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; einrichtenNTPKonfigurationNTP aktivierenntpdateWenn 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.NTPntp.confNTP einrichtenDie 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.driftDie 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änkenIn 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 ignoreWenn 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 notrapBei 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 startenDamit 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.pidUnter &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/0Weitere 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 InformationenWeiterführende Dokumentation (im HTML-Format)
zum NTP-Server finden Sie unter
/usr/share/doc/ntp/.NATD – Network Address Translation DaemonDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.inetd Super-ServerDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.PLIP – Parallel Line IPPLIPParallel Line IPPLIP 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-) KabelsDie Verbindung von zwei Computern über PLIPEin paralleles Kabel herstellenEin 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 einrichtenAls 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 portDer Parallelport muss Interrupt-gesteuert sein, daher
sollte Ihre Kernelkonfigurationsdatei unter &os; 4.X eine
Zeile ähnlich der folgenden enthalten:device ppc0 at isa? irq 7Unter &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 1500Unter &os; 5.X erhalten Sie folgende Ausgabe:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Die 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.2Richten Sie die parallele Schnittstelle von
host1 ein, indem Sie Folgendes eingeben:&prompt.root; ifconfig lp0 10.0.0.1 10.0.0.2Danach richten Sie die parallele Schnittstelle von
host2 ein:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Sie 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.domainUm 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 msAaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von IPv6 – Internet Protocol Version 6Bei 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-AdressenDie Unterstützung von IPsec (IP-Security)Eine vereinfachte HeaderstrukturMobile IP-AdressenDie Umwandlung von IPv4- in IPv6-AdressenWeitere Informationsquellen:Beschreibung von IPv6 auf
playground.sun.comKAME.net6bone.netHintergrundinformationen zu IPv6-AdressenEs 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-AdressePräfixlängeBeschreibungAnmerkungen::128 Bitnicht festgelegtentspricht 0.0.0.0
bei IPv4::1128 BitLoopback-Adresseentspricht 127.0.0.1
bei IPv4::00:xx:xx:xx:xx96 BitEingebettete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Wird auch als IPv4-kompatible IPv6-Adresse
bezeichnet.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Notwendig für Rechner, die IPv6 nicht
unterstützen.fe80:: - feb::10 Bitlink-localEntspricht der Loopback-Adresse bei IPv4fec0:: - fef::10 Bitsite-localff::8 BitMulticast001
(im Dualsystem)3 BitGlobaler UnicastAlle globalen Unicastadressen stammen aus diesem
Pool. Die ersten 3 Bit lauten 001.
IPv6-Adressen verstehenDie 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
+ Nullen. Eine solche Zeichenfolge kann zu ::
+ verkürzt werden. Bis zu drei führende Nullen eines
+ Hexquads können ebenfalls weggelassen 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: activeBei
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.
+ wird im Rahmen der automatischen Konfiguration aus der
+ MAC-Adresse erzeugt.
Weitere Informationen zum Aufbau von IPv6-Adressen finden
Sie im
RFC3513.Eine IPv6-Verbindung herstellenEs 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 eines 6-nach-4-Tunnels
+ (RFC3068).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_ADDRErsetzen 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 msDiese 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.
+ www/mozilla,
+ Konqueror (als Teil des Pakets
+ x11/kdebase3) oder
+ www/epiphany
+ installiert.
DNS in der IPv6-Welt
- Mit IPv6 werden zwei neue DNS-Einträge
- eingeführt:
-
-
-
- AAAA-Einträge,
-
-
-
- A6-Einträge
-
-
+ Ursprünglich gab es zwei verschiedene DNS-Einträge
+ für IPv6. Da A6-Einträge von der IETF für
+ obsolet erklärt wurden, sind AAAA-Einträge nun
+ Standard.
- Empfohlen wird die Verwendung von AAAA-Einträgen.
- Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
+ Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
indem Sie den EintragMYHOSTNAME AAAA MYIPv6ADDRin 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.
+ (Version 8.3 oder 9) sowie
+ dns/djbdns (bei Verwendung
+ des IPv6-Patches) unterstützen AAAA-Einträge.ATM – Asynchronous Transfer ModeDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
index 2c06213584..b53fb45b6d 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
+ url="http://www.catb.org/~esr/jargon/html/index.html">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.
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 d3e41c740d..8f4f1aca7e 100644
--- a/de_DE.ISO8859-1/books/handbook/book.sgml
+++ b/de_DE.ISO8859-1/books/handbook/book.sgml
@@ -1,275 +1,277 @@
%man;
%bookinfo;
%freebsd;
%translators;
%chapters;
%authors;
%teams;
%mailing-lists;
%newsgroups;
%de-trademarks;
%trademarks;
%txtfiles;
+
+%urls;
%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
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.
&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/config/chapter.sgml b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
index 9e56201e11..e2fca18b91 100644
--- a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
@@ -1,3072 +1,3140 @@
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
-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:
+ Das Werkzeug cron verwendet
+ zwei verschiedene Konfigurationsdateien: Die
+ System-crontab und die
+ Benutzer-crontab. Der einzige Unterschied
+ zwischen beiden Formaten ist das sechste Feld. In der
+ System-crontab gibt das sechste Feld das
+ Konto an, unter dem ein Kommando läuft. Aus der
+ System-crontab können daher
+ Kommandos unter beliebigen Konten gestartet werden.
+ In der Benutzer-crontab gibt das
+ sechste Feld das auszuführende Kommando an. Alle
+ Kommandos laufen unter dem Konto, unter dem die
+ crontab erstellt wurde (ein
+ wichtiges Sicherheitsmerkmal).
+
+
+ Benutzer können mit Benutzer-crontabs
+ ohne root-Rechte Befehle terminieren.
+ Die Kommandos in Benutzer-crontabs laufen
+ unter dem Benutzer, der die crontab
+ erstellt hat.
+
+ Der Benutzer root kann, wie
+ jeder andere Benutzer, eine Benutzer-crontab
+ besitzen. Die Benutzer-crontab von
+ root ist nicht mit der Datei
+ /etc/crontab, der
+ System-crontab, zu verwechseln.
+ Normalerweise besitzt root, wegen
+ der Existenz der System-crontab, keine
+ eigene Benutzer-crontab.
+
+
+ Der folgende Auszug aus der System-crontab
+ /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. 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 installieren
- Eine erstellte crontab-Datei
+
+ Die nachstehende Prozedur gilt nur für
+ Benutzer-crontabs. Die
+ System-crontab können
+ Sie einfach mit Ihrem Lieblingseditor editieren.
+ Das Werkzeug cron bemerkt, dass
+ sich die Datei geändert hat und wird die neue
+ Version benutzen. Lesen Sie bitte auch die FAQ
+ zur Meldung root: not found.
+
+
+ Eine Benutzer-crontab, beispielsweise
+ die Datei crontab, können Sie mit
+ jedem Editor erstellen. Die Benutzer-crontab
installieren Sie mit dem nachstehenden Befehl:&prompt.root; crontab crontab
+ Das Argument zum Befehl crontab
+ ist die vorher erstellte Datei crontab.
+
Der 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.
+
+ Wollen Sie die installierte
+ Benutzer-crontab entfernen, rufen Sie den
+ Befehl crontab mit der Option
+ auf.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.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.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? 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.
+ Wenn Sie Variablen automatisch während des Systemstarts
+ setzen wollen, fügen Sie die Variablen in die Datei
+ /etc/sysctl.conf ein. Weiteres
+ entnehmen Sie bitte der Hilfeseite &man.sysctl.conf.5;
+ und dem .
+
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 ü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 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 acpi
+ device acpicaWas 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;.NateLawsonVerfasst von PeterSchultzMit Beiträgen von TomRhodesACPI-FehlersucheACPI 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
+
+ Bevor Sie einen Fehlerbericht einrichen, stellen
+ Sie bitte sicher, dass Sie die neuste
+ BIOS-Version und die neuste
+ Firmware von Controllern, sofern diese erhältlich ist,
+ verwenden.
+
+
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
+ &prompt.root; acpidump -t -d > name-system.asl
- Setzen Sie bitte für $NAME
+ Setzen Sie bitte für name
den Namen Ihres Kontos und für
- $SYSTEM den Hersteller und
+ 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-GrundlagenACPI 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 ProblemeDamit 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/ResumeACPI 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: 0Diese 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ängerDie 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
CtrlAltEsc 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.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 wiederSetzen 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 ProblemeWenn 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
IASLEin 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_FOUNDOft 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.aslDie ASL reparierenAuf 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 BetriebssystemEinige 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-AnweisungenEinige 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
AMLNachdem Sie Ihre ASL in der
Datei ihre.asl angepasst haben,
übersetzen Sie die ASL wie folgt:&prompt.root; iasl ihre.aslMit 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 erzeugenDer 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
+&& 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-InformationsquellenWeitere Informationen zu ACPI
erhalten Sie an den folgenden Stellen:
- die ACPI-Mailingliste:
-
- freebsd-acpi@FreeBSD.org,
+ die &a.acpi; Mailingliste,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 833d12a353..4bd6323f97 100644
--- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -1,1959 +1,1962 @@
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übersetzenSehen 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/.
+ url="&url.main;/security/index.html">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. 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 aktualisierenAktualisieren Sie ein System nach der folgenden
Vorschrift:&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; rebootFahren 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; rebootLesen Sie bitte weiterDie 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
+ /usr/share/examples/etc/make.conf
+ (/etc/defaults/make.conf unter &os; 4.X)
+ 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
+ enthalten, aus
+ /usr/share/examples/etc/make.conf
+ (/etc/defaults/make.conf unter &os; 4.X)
+ 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 c864ea99b4..24d5949058 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,3973 +1,4011 @@
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 CDs benutzenCD-ROMbrennenEinfü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/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/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. 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/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/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/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/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/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/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/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.MarcFonvieilleBeigetragen von CD-BrennerATAPI/CAM TreiberDer 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 pass
- Die folgenden Zeilen werden ebenfalls benötigt,
- sollten aber schon Teil der Kernelkonfiguration sein:
+ Die folgende Zeile wird ebenfalls benötigt,
+ sollte aber schon Teil der Kernelkonfiguration sein:
- device ata
-device atapicd
+ device ataÜ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/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;.MarcFonvieilleBeigetragen von
+
+
+ Andy
+ Polyakov
+ Mit Beiträgen von
+
+ DVDs benutzenDVDbrennenEinführungNach 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
+ der Anwendung. Ein DVD-Video ist eine spezielle
+ Anordnung von Dateien, die 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.KonfigurationDas 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.
+ Für ATAPI-Geräte müssen Sie ebenfalls
+ DMA-Zugriffe aktivieren. Fügen Sie dazu die nachstehende
+ Zeile in die Datei /boot/loader.conf
+ ein:
+
+ hw.ata.atapi_dma="1"
+
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/dataDie 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.isoDie 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;.DVDDVD-VideoDVD-Videos brennen
- Ein DVD-Video ist ein spezielles Dateisystem, das
+ Ein DVD-Video ist eine spezielle Anordnung von Dateien, die
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 multimedia/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.
+ Die Option wird an
+ &man.mkisofs.8; weitergereicht. Dadurch erstellt
+ &man.mkisofs.8; die Datei-Hierarchie für ein
+ DVD-Video. Weiterhin bewirkt die Angabe von
+ , dass &man.growisofs.1;
+ mit der Option aufgerufen wird.DVDDVD+RWDVD+RW-Medien benutzenIm 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:
+ Sie sollten &man.growisofs.1; einzetzen, da das Programm
+ Medien automatisch formatiert, wenn es erforderlich
+ ist. Sie können eine DVD+RW aber auch mit dem
+ Kommando dvd+rw-format formatieren:
&prompt.root; dvd+rw-format /dev/cd0Sie 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/newdataMit 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/nextdataWenn 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.
+ Um die Kompatibilität mit DVD-ROM-Laufwerken
+ zu gewährleisten, wollen Sie vielleicht die
+ Option einsetzen.
+ Zu einem DVD+RW-Medium können Sie mit dieser
+ Option auch weiterhin Daten hinzufügen.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/zeroDVDDVD-RWDVD-RW-Medien benutzenEine 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/cd0Das 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.isoDie 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/dataWenn 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/cd0Das folgende Kommando stellt den Modus wieder auf
Sequential-Recording zurück:&prompt.root; dvd+rw-format -blank=full /dev/cd0Multi-SessionNur 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
+
+ Wird diese Kommandozeile mit DVD+RW- oder DVD-RW-Medien
+ im Restricted-Overwrite-Modus benutzt, werden die
+ neuen Daten mit den Daten der bestehenden Session
+ zusammengeführt. Das Medium enthält danach
+ eine Session. Auf diesem Weg werden neue Daten zu
+ einer bestehenden Session hinzugefügt.
+
+
+ Für den Anfang und das Ende einer Session
+ wird auf dem Medium zusätzlicher Platz verbraucht.
+ Um den Speicherplatz auf dem Medium optimal auszunutzen,
+ sollten Sie daher Sessions mit vielen Daten hinzufügen.
+ Auf ein DVD+R-Medium passen maximal 154 Sessions,
+ auf ein DVD-R-Medium passen ungefähr
+ 2000 Sessions.
+ WeiterführendesDas 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 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.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-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-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.gzSie 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 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% /mntWenn 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 /varDen Schnappschuss können Sie auch mit &man.mksnap.ffs.8;
erstellen:&prompt.root; mksnap_ffs /var /var/snapshot/snapNachdem 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 /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 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 12f2d83922..0cb298c083 100644
--- a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
@@ -1,1714 +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
+ 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.org
+ 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|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
+ 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;GEOMDiskussion ü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
StellengesucheIn 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)fr.comp.os.bsd (französisch)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/introduction/chapter.sgml b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
index f24cb56f5c..59b3650481 100644
--- a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
@@ -1,1228 +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 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
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, &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.
+ url="&url.main;/index.html">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/
+ url="&url.main;/index.html">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 d1840d0f04..356e6699f3 100644
--- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1781 +1,1792 @@
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 CVSCTMCVSanonymous
- Wenn 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,
+ Ist der Quellbaum nach dem letzten erfolgreichen Bau
+ (buildworld,
+ installworld) unverändert,
+ das heißt Sie haben weder CVSup,
+ CTM noch
+ anoncvs laufen lassen, 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,
zusammen mit einer angenommenen Anzahl Prozesse pro
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. 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.
device loop # Network loopbackDas 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 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
+ Zeile, entfernen Sie diese Zeile auch dann nicht, wenn Ihre
+ Hauptplatine keine ISA-Steckplätze hat.
+ &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.
+ Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen
+ können alle Einträge entfernen.
+
+
+ Der USB-&man.umass.4;-Treiber und einige andere
+ Treiber benutzen das SCSI-Subsystem obwohl sie keine
+ SCSI-Geräte sind. Belassen Sie die SCSI-Unterstützung
+ im Kernel, wenn Sie solche Treiber verwenden.
+ # 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
device splashZeigt einen Splash Screen beim Booten. Diese
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.device ether # Ethernet supportether brauchen Sie nur, wenn Sie eine
Ethernet-Karte besitzen. Der Treiber unterstützt das
Ethernet-Protokoll. Unter &os; 4.X verwenden
Sie die Zeile pseudo-device ether.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. Unter &os; 4.X verwenden Sie die Zeile
pseudo-device sl.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. Unter
&os; 4.X müssen Sie die Zeile
pseudo-device ppp verwenden.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. Unter &os; 4.X verwenden Sie
die Zeile pseudo-device tun.
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. 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.device md # Memory disksPseudo-Gerät für Speicher-Laufwerke.
Unter &os; 4.X verwenden Sie die Zeile
pseudo-device md.device gifDieses Gerät tunnelt IPv6 über IPv4, IPv4 über
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.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. Unter &os; 4.X verwenden Sie die Zeile
pseudo-device faith 1.# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
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.
Unter &os; 4.X müssen Sie die Zeile
pseudo-device bpf verwenden.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 b4a2172efe..4a14c61936 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 MartinHeinenLokalisierung – 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
+ url="&url.main;/ports/index.html">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 ServerWeitere 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/mail/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
index 7bb3ea0b67..66b17894f1 100644
--- a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
@@ -1,2522 +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 &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.
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 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.E-Mail-Server DämonE-Mail-Server DämonensendmailE-Mail-Server DämonenpostfixE-Mail-Server DämonenqmailE-Mail-Server Dämonenexim&os; enthält standardmäßig
sendmail; es lassen
sich aber auch andere E-Mail-Server Dämonen
betreiben, beispielsweiseexim,postfix oderqmail.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. 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 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-EintragIm 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-MailempfangenDer 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 zugreifenPOPIMAPWenn 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:qpopperteapopimap-uwcourier-imapInstallieren 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 zugreifenAuf Postfächer können Sie lokal mithilfe
spezieller Benutzerprogramme, die
Mail-User-Agents
- (MUA) genannt werden, zugreifen.
+ (MUAs) 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 (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
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
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
anstatt der vorherigen
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-EintragWarum meldet Sendmail
mail loops back to myself?Dies wird in der Sendmail-FAQ wie folgt beantwortet:Ich erhalte folgende Fehlermeldungen:
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.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-EintragEs 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 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-domainsNach 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.orgJetzt 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
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 . >
>^DBillMoranBeigetragen von Ausgehende E-Mail über einen Relay versendenIn 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 cleanNach 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.confsendmail_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 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
/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.JamesGorhamGeschrieben 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.MarcSilverBeigetragen von E-Mail-ProgrammeMail-User-AgentsE-Mail-ProgrammeAnwendungen, 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.mailDas 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; mailDas 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.
.
EOTNeue 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 ... :)
.
EOTDie 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.muttmutt 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; muttmutt 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.pinepine 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; pineWenn 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
CtrlX
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
.MarcSilverBeigetragen von E-Mails mit fetchmail abholenfetchmailfetchmail 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 .fetchmailrcDie 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 60Mehr über fetchmail
erfahren Sie auf der Seite
.MarcSilverBeigetragen von E-Mails mit procmail filternprocmailMit 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.comAlle Nachrichten, die kürzer als 1000 Bytes
sind, an goodmail@example2.com weiterleiten::0
* < 1000
! goodmail@example2.comJede E-Mail, die an alternate@example.com
geschickt wurde, im Postfach alternate
speichern::0
* ^TOalternate@example.com
alternateJede E-Mail, die im Betreff Spam
enthält, nach /dev/null
schieben::0
^Subject:.*Spam
/dev/nullZuletzt 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 991b2cffd2..a7734e4084 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,2828 +1,2833 @@
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: 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)
-
+ (rsh, pserver, ssh, ssh/2022)
+
+
+
+ Frankreich:
+ :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
+ (Das Passwort für pserver ist
+ anoncvs, ssh-Zugriffe
+ verwenden kein Passwort.)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
+ 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)
+ Schweden:
+ freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
+ (nur ssh ohne Passwort).
+
+
+
+ USA:
+ freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
+ (nur ssh ohne Passwort).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 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 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 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_10Der 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_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_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 5b414ef633..26bc34f45e 100644
--- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -1,1757 +1,1794 @@
RossLippertÜberarbeitet von MultimediaÜ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.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:Die Konfiguration des Systems damit Ihre
Soundkarte erkannt wird.Wie Sie mit Beispielanwendungen die
Funktion einer Soundkarte prüfen.Wie Sie Fehler in den Einstellungen von
Soundkarten finden.Wie Sie MP3s und andere Audio-Formate wiedergeben
und erzeugen.Die Video-Unterstützung von
&xfree86;.Gute Anwendungen, die Videos abspielen und
kodieren.Die Wiedergabe von DVDs, .mpg-
und .avi-Dateien.
Wie Sie CDs und DVDs in Dateien rippen.Die Konfiguration von TV-Karten.Bevor Sie dieses Kapitel lesen, sollten Sie:Wissen, wie Sie einen neuen Kernel konfigurieren
und installieren ().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.MosesMooreVon BenediktKöhlerÜbersetzt von UwePierauSoundkarten einrichtenBestimmen des korrekten GerätsPCIISASoundkartenZunä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, 4231Yamaha OPL-SAxOPTi931Ensoniq AudioPCI 1370/1371ESS Solo-1/1ENeoMagic 256AV/ZX&soundblaster; Pro, 16, 32, AWE64, AWE128, LiveCreative ViBRA16Advanced Asound 100, 110, and Logic ALS120ES 1868, 1869, 1879, 1888Gravis UltraSoundAureal Vortex 1 or 2KernelKonfigurationUm 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.koAlternativ 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.
+ aufgeführt. Wenn Sie nicht sicher sind, welchen
+ Gerätetreiber Sie laden müssen, laden Sie den
+ Treiber snd_driver. Dies ist ein
+ Meta-Treiber, der alle gebräuchlichen Treiber lädt
+ und die Suche nach dem richtigen Treiber vereinfacht.
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 SoundkartenFür jede dieser Karten fügen Sie die folgende Zeile
zu Ihrer Kernelkonfiguration hinzu:device pcmISA-Karten benötigen zusätzlich noch die
Zeile:device sbcNicht-PnP fähige ISA-Karten benötigen die Zeilen:device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15Dies 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.Gravis UltraSound KartenEine PnP ISA-Karte benötigt die folgenden Zeilen in der
Kernelkonfiguration:device pcm
device guscWenn Sie eine nicht-PnP fähige ISA-Karte besitzen,
fügen Sie die folgenden Zeilen ein:device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13Es 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 SoundkartenIn der Kernelkonfiguration geben Sie für Crystal Karten
die beiden folgenden Zeilen an:device pcm
device csaAllgemeine UnterstützungFür PnP ISA- oder PCI-Karten fügen Sie die folgende
Zeile zu Ihrer Kernelkonfiguration hinzu:device pcmWenn 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Ändern Sie den IRQ oder
andere Einstellungen so, dass sie Ihrer Soundkarte
entsprechen.Onboard SoundEinige Systeme besitzen direkt auf dem Motherboard
eingebaute Soundgeräte. Diese benötigen die folgende
Angabe in Ihrer Kernelkonfiguration:options PNPBIOSAb &os; 5.0 benötigen Sie die Option
nicht mehr. Die Option
wurde entfernt; ihre Funktion ist voreingestellt.Erstellen und Testen der Device NodesDevice NodeGerätedateiNach 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 sbc0Die 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 .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.Ergab der vorige Befehl pcm0 als
Ausgabe, dann müssen Sie folgendes als root
ausführen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Wenn 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.Der Befehl MAKEDEV erzeugt eine Gruppe
von Device Nodes, darunter:DeviceBeschreibung/dev/audio&sparc; compatible audio device/dev/dspDigitized voice device/dev/dspW/dev/dsp-ähnliches
Device mit 16 Bits pro Sample/dev/midiRaw midi access device/dev/mixerControl port mixer device/dev/musicLevel 2 sequencer interface/dev/sequencerSequencer device/dev/pssProgrammable device interfaceWenn 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 1Es 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 ProblemeDevice NodeGerätedateiI/O portIRQDSPFehlerLösungunsupported subdevice XXEin oder mehrere Device Nodes wurden nicht
korrekt angelegt. Wiederholen Sie die oben angegebenen
Schritte.sb_dspwr(XX) timed outDer I/O Port ist nicht korrekt angegeben.bad irq XXDer IRQ ist falsch angegeben. Stellen Sie
sicher, dass der angegebene IRQ mit dem Sound IRQ
übereinstimmt.xxx: gus pcm not attached, out of memoryEs 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.MunishChopraBeigetragen von Mehrere Tonquellen abspielenOft 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=4Im 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.
+
+
+
+
+
+ Josef
+ El-Rayes
+ Beigetragen von
+
+
+
+
+ Den Mixer einstellen
+
+ Die Voreinstellungen des Mixers sind im Treiber
+ &man.pcm.4; fest kodiert. Es gibt zwar viele Anwendungen
+ und Dienste, die den Mixer einstellen können
+ und die eingestellten Werte bei jedem Start wieder
+ setzen, am einfachsten ist es allerdings, die Werte
+ direkt im Treiber einzustellen. Der Mixer kann in
+ der Datei /boot/device.hints
+ eingestellt werden:
+
+ hint.pcm.0.vol="100"
+
+ Die Zeile setzt die Lautstärke des Mixers
+ auf den Wert 100, sobald das Modul
+ &man.pcm.4; geladen wird.
+
+
+ Diese Einstellungen funktionieren ab &os; 5.3.
+
+ ChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von 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 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
multimedia/xmms Port oder Package installiert
werden.Die Benutzerschnittstelle von
XMMS ist leicht zu erlernen 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, 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 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 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 -Bcdda2wav 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 7Der Schalter bezieht sich auf
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+7Mit &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.mp3128 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
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.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.RossLippertBeigetragen von Videos wiedergebenDie 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/rdvdAuf 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/rdvdWegen &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 rdvdZum Entschlüsseln von DVDs müssen bestimmte
DVD-ROM-Funktionen aufgerufen werden und schreibender
Zugriff auf das DVD-Gerät erlaubt sein.Kerneloptionoptions CPU_ENABLE_SSEKerneloptionoptions USER_LDTEinige 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_LDTUnter &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=32768Video-SchnittstellenXVideoSDLDGAEs 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.XVideoDie 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 i815einige 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; xvinfoXVideo 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, 0x0Einige 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 presentWenn 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 LayerDie 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 AccessDie &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-AnwendungenVideo-AnwendungenDieser 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.MPlayerMPlayer 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 bauenMPlayerbauenMPlayer 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=yesAls 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 benutzenMPlayerbenutzenJeder 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-userDie 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.aviEs 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/dvdDie 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=yesSchließ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/dvdDie Ausgabedatei out.vob
wird im MPEG-Format abgespeichert und kann mit
anderen Werkzeugen aus diesem Abschnitt bearbeitet
werden.mencodermencoderWenn 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.aviFalsche 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.aviDie 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 xineDer 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; xineAlternativ können Sie das Programm auch ohne
GUI aufrufen und Dateien direkt abspielen:&prompt.user; xine -g -p mymovie.aviDie transcode-Werkzeugetranscode 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=yesWenn Sie den Port
multimedia/avifile
installieren wollen, sollten Sie die Kommandozeile
um die Option erweitern:&prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yesDie 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 1Es 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 QuellenDie 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.JosefEl-RayesBeigetragen von MarcFonvieilleÜberarbeitet von TV-Karten einrichtenTV-KartenEinführungMit 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 einrichtenUm 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 smbusDie 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=6Alternativ können Sie direkt &man.sysctl.8; benutzen:&prompt.root; sysctl hw.bt848.tuner=6Weiteres 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 AnwendungenUm 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.FehlersucheWenn 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 331846133a..6d77917acc 100644
--- a/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
@@ -1,793 +1,808 @@
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.
+ 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.stefanf;
+ &pgpkey.stefanf;
+
+
&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.metal;
+ &pgpkey.metal;
+
+
&a.nyan;
&pgpkey.nyan;
&a.mi;
&pgpkey.mi;
&a.gordon;
&pgpkey.gordon;
+
+ &a.lth;
+ &pgpkey.lth;
+
+
&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 0ee742b451..a643980bd0 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1350 +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/.
+ url="&url.main;/ports/index.html">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. 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
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, können Sie das mit den folgenden
Anweisungen nachholen: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
+ 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
+ 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 aktualisierenportupgradePortsaktualisierenNachdem 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,
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. 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
+ url="&url.main;/doc/en_US.ISO8859-1/books/porters-handbook/index.html">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 aec822f2a0..152f29cfe4 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,3563 +1,3562 @@
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.
+ dabei durch die in Zeile 17 angegebene Gateway
+ Adresse ersetzt. Wichtig ist, dass diese Zeile nach
+ Zeile 17 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 MyPassword
+ 13 set authname MyUserName
+14 set authkey MyPassword
+15 set login
- Zeile 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:
+ Zeile 13:
- Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest. Sie
- müssen den richtigen Wert für
+ Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest.
+ Sie müssen den richtigen Wert für
MyUserName eingeben.
- Zeile 13:
+ Zeile 14: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 PAP
+ 16 accept PAPoder
- 15 accept CHAP
+ 16 accept CHAPverwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.
+
+
+ Zeile 15:
+
+
+ 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.
+
+ 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: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=
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:
+ Stellen Sie sicher, dass der Start eines Routerprogramms
+ in /etc/rc.conf wie folgt deaktiviert
+ ist:router_enable="NO"routed
- Es 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 wichtig, dass der routed
+ Dæmon nicht gestartet wird (in der Voreinstellung
+ wird er nicht gestartet), 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:
+ 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
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/
+ PREFIX/share/doc/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 enable originate 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/
+ 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/printing/chapter.sgml b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
index 40ab905e66..2de6edddbb 100644
--- a/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
@@ -1,1889 +1,1929 @@
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 Kabel
- Praktisch alle Drucker unterstützen eine dieser
- Schnittstellen:
+ Praktisch alle Drucker unterstützen mindestens
+ eine dieser Schnittstellen:DruckerserielleSeriell angeschlossene
Drucker werden über eine serielle Schnittstelle
+ (auch RS232C-, RS232D- oder COM-Schnittstelle genannt)
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.
+ Kommunikationseinstellungen. Die meisten seriellen
+ Schnittstellen von PCs besitzen eine maximale
+ Datenübertragungsrate von 115200 bps;
+ zum Ausdruck großer Grafiken sind serielle
+ Drucker daher ungeeignet.
DruckerparalleleParallel angeschlossene
Drucker werden über eine parallele Schnittstelle
mit Ihrem Computer verbunden. Diese Schnittstelle wird
hauptsächlich von PCs und Workstations benutzt.
+ Die Schnittstelle bietet eine höhere
+ Datenübertragungsrate als serielle Schnittstellen.
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.
+
+
+ Drucker
+ USB
+
+
+
+ USB-Schnittstelle (Universal Serial Bus)
+ bieten noch höhere Geschwindigkeiten als
+ parallele Schnittstellen oder serielle RS232-Schnittstellen.
+ USB-Kabel sind einfach und billig. Zum Drucken
+ ist die USB-Schnittstelle besser geeignet als
+ serielle oder parallele Schnittstellen, auf
+ vielen &unix; Systemen werden USB-Schnittstellen
+ jedoch nur unzureichend unterstützt. Um
+ Probleme zu vermeiden, sollten Sie sich einen
+ Drucker anschaffen, der sowohl eine USB-Schnittstelle
+ als auch eine parallele Schnittstelle besitzt
+ (viele Drucker besitzen heute beide Schnittstellen).
+
- 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.
+ Im Allgemeinen versenden parallele Schnittstellen
+ Daten nur in eine Richtung (vom Computer zum Drucker),
+ serielle Schnittstellen und USB-Schnittstellen versenden
+ Daten in beide Richtungen. Moderne parallele Schnittstellen
+ (EPP and ECP) übertragen Daten bi-direktional nach
+ dem Standard IEEE 1284.PostScript
- Die bi-direktionale Kommunikation wird
- üblicherweise nur für &postscript;-Drucker
- benötigt. Da ein &postscript;-Druckauftrag ein
+ Ein Drucker kann auf zwei Arten bi-direktional
+ angesprochen werden. Die erste Methode benutzt einen
+ Druckertreiber, der die herstellerspezifische Sprache
+ des Druckers beherrscht. Diese Methode wird oft mit
+ Tintenstrahl-Druckern eingesetzt und dazu benutzt,
+ den Füllstand der Tintenpatronen und andere
+ Status-Informationen auszugeben. Die zweite Methode
+ wird benutzt, wenn der Drucker &postscript; beherrscht.
+
+ 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:
+
+
+ Das Shell-Skript if-simple
+ steht im Verzeichnis /usr/share/examples/printing.
+ 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
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
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
das Original in englischer Sprache.* Fehlersuche und ProblembehebungDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
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 db7dcb9b85..5108def629 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,5952 +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$
+ Passwörter, die mit $2a$
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. 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
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORGKerberos-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
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
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/.
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 8a057fb7df..c280cd05f9 100644
--- a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
@@ -1,2789 +1,2828 @@
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.
+
+
+
+ Serielle Konsole einrichten, Kurzfassung
+
+ Dieser Abschnitt fasst zusammen, wie Sie eine
+ serielle Konsole einrichten. Es wird vorausgesetzt, dass
+ Sie die Voreinstellungen verwenden und wissen, wie
+ serielle Schnittstellen verbunden werden. Wenn Sie
+ Probleme mit den nachstehenden Schritten haben, schauen
+ Sie sich bitte die ausfürliche Erklärung in
+ an.
+
+
+
+ Verbinden Sie die serielle Konsole mit der
+ Schnittstelle COM1.
+
+
+
+ Das Kommando echo -h > /boot.config
+ aktiviert die serielle Konsole im Boot-Loader
+ und im Kernel.
+
+
+
+ Ändern Sie in der Datei /etc/ttys
+ den Eintrag für ttyd0 von
+ off zu on.
+ Dieser Schritt aktiviert die Eingabeaufforderung
+ auf der seriellen Konsole (analog zur normalen
+ Bildschirmkonsole).
+
+
+ Starten Sie das System mit dem Kommando
+ shutdown -r now neu, damit
+ die serielle Konsole aktiv ist.
+
+ 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
+ url="&url.main;/doc/en_US.ISO8859-1/books/developers-handbook/index.html">
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.