Index: head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 51222)
@@ -1,5769 +1,5769 @@
Weiterführende NetzwerkthemenJohannKoisÜbersetzt von BjörnHeidottingÜberarbeitet von ÜbersichtDieses Kapitel beschreibt verschiedene
weiterführende Netzwerkthemen.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Wissen, wie man USB Tethering einrichtet.&bluetooth;- sowie drahtlose, der Norm
&ieee; 802.11 entsprechende, Geräte mit &os; verwenden
können.Eine Bridge unter &os; einrichten können.Wissen, wie man mithilfe von PXE über
ein Netzwerk von einem NFS
Root-Dateisystem bootet.IPv6 auf einem &os;-Rechner einrichten
können.Das Common Address Redundancy Protocol
(CARP) unter &os; einsetzen
können.Wissen, wie VLANs unter &os;
konfiguriert werden.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.Einen neuen &os;-Kernel konfigurieren und installieren
können ().Wissen, wie man zusätzliche Software von
Drittherstellern installiert
().Gateways und RoutenCoranthGryphonBeigetragen von RoutingGatewaySubnetzDer Mechanismus mit dem ein Rechner einen Rechner über ein
Netzwerk finden kann, wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adresspaar: Einem Ziel und einem
Gateway. Die Route zeigt an, dass Pakete über
das Gateway zum Ziel
gelangen können. Es gibt drei Arten von Zielen: Einzelne
Rechner (Hosts), Subnetze und das Standardziel.
Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Außerdem gibt
es drei Arten von Gateways: Einzelne Rechner
(Hosts), Schnittstellen (Interfaces, auch als
Links bezeichnet), sowie Ethernet
Hardware-Adressen (MAC). Bekannte Adressen
werden in einer Routingtabelle gespeichert.Dieser Abschnitt bietet einen Überblick über die Grundlagen
des Routings. Er demonstriert, wie ein &os;-System als
Router konfiguriert werden kann und bietet einige Tipps zur
Fehlerbehebung.Grundlagen des Routings&man.netstat.1; zeigt die Routingtabellen
eines &os;-Systems an:&prompt.user; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGS 37 418 em0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 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 0Die Einträge in diesem Beispiel sind wie folgt:defaultDie erste Route in der Ausgabe gibt die
Standardroute (default) an. Wenn
sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft, um
festzustellen, ob bereits ein bekannter Pfad vorhanden
ist. Wird für den entfernten Rechner ein Eintrag in
der Routingtabelle gefunden, so prüft das System ob es
sich über die angegebene Schnittstelle verbinden
kann.Wenn das Zielsystem mit keinem Eintrag
übereinstimmt, oder wenn alle bekannten Routen
fehlschlagen, verwendet das System die Standardroute.
Für die Rechner im lokalen Netzwerk ist das Feld
Gateway auf das System gesetzt,
welches direkt mit dem Internet verbunden ist.
UG in der Spalte
Flags zeigt an, dass das Gateway
einsatzbereit ist.Die Standardroute für einen Rechner, der selbst als
Gateway zur Außenwelt fungiert, ist der Gateway-Rechner
des Internetanbieters (ISP).localhostDie zweite Route zeigt die
localhost Route. Die festgelegte
Schnittstelle in der Netif-Spalte
für localhost ist
lo0, das auch als loopback-Gerät
bekannt ist. Das bedeutet, dass der gesamte
Datenverkehr für dieses Ziel intern bleibt, anstatt ihn
über ein Netzwerk zu versenden.MAC-AdresseBei den mit 0:e0: beginnenden
Adressen handelt es sich um
MAC-Adressen. &os; identifiziert
Rechner im lokalen Netz, im Beispiel
test0, automatisch und fügt
eine direkte Route über die Ethernet-Schnittstelle
re0 zu diesem Rechner hinzu.
Außerdem existiert in der Spalte
Expire ein Timeout, 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 über das Routing Information Protocol
(RIP) identifiziert, welches den
kürzesten Weg zu den jeweiligen Rechnern
berechnet.Subnetz&os; wird automatisch Subnetzrouten für das lokale
Subnetz hinzufügen. In diesem Beispiel ist 10.20.30.255 die
Broadcast-Adresse für das Subnetz 10.20.30, und
example.com ist der
zu diesem Subnetz gehörige Domainname. Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
&man.routed.8; Daemon konfiguriert. Ist dieser nicht
gestartet, existieren nur statische Routen, die vom
Administrator definiert werden.HostDie Zeile host1 bezieht sich auf
den Rechner, der durch seine Ethernetadresse bekannt
ist. Da es sich um den sendenden Rechner handelt,
verwendet &os; automatisch das Loopback-Gerät
(lo0), anstatt den Datenverkehr
über die Ethernet-Schnittstelle zu senden.Die zwei host2 Zeilen
repräsentieren Aliase, die mit &man.ifconfig.8; erstellt
wurden. Das Symbol => nach der
lo0-Schnittstelle sagt aus, dass
zusätzlich zur Loopback-Adresse auch ein Alias
eingestellt ist. Solche Routen sind nur auf Rechnern
vorhanden, die den Alias bereitstellen. Alle anderen
Rechner im lokalen Netz haben für solche Routen nur eine
link#1 Zeile.224Die letzte Zeile (Zielsubnetz
224) behandelt Multicasting.Schließlich gibt es für Routen noch
verschiedene Attribute, die sich in der Spalte
Flags befinden. fasst einige dieser Flags und
deren Bedeutung zusammen:
Allgemeine Attribute in RoutingtabellenAttributBedeutungUDie Route ist aktiv (up).HDas Ziel der Route ist ein einzelner Rechner
(Host).GAlle Daten, die an dieses Ziel gesendet werden,
werden von dem Gateway an ihr jeweiliges Ziel
weitergeleitet.SDiese Route wurde statisch konfiguriert.CErzeugt 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.WEine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LDie Route beinhaltet einen Verweis auf eine
Ethernetkarte (Link).
In &os; kann die Standardroute durch
die Angabe der IP-Adresse des
Standard-Gateways in /etc/rc.conf
definiert werden:defaultrouter="10.20.30.1"Die Standardroute kann mit route auch
manuell gesetzt werden:&prompt.root; route add default 10.20.30.1Beachten Sie, dass manuell hinzugefügte Routen bei einem
Neustart des Systems verloren gehen. Weitere Informationen
zum Bearbeiten von Netzwerk-Routingtabellen finden Sie in
&man.route.8;.Statische Routen einrichtenAlHoangBeigetragen von Dual-Homed-HostsEin &os;-System kann als Standard-Gateway bzw. Router für
ein Netzwerk konfiguriert werden, wenn es sich um einen
Dual-Homed-Host handelt. Ein Dual-Homed-Host ist ein Rechner,
der sich in mindestens zwei verschiedenen Netzwerken
befindet. Typischerweise ist jedes Netzwerk über eine
separate Netzwerkschnittstelle verbunden. Mit
IP Aliasing können mehrere Adressen, die
jeweils zu einem andren Subnetz gehören, an eine physikalische
Schnittstelle gebunden werden.RouterDamit Pakete zwischen den Schnittstellen weitergeleitet
werden können, muss das &os;-System als Router konfiguriert
werden. Internetstandards und gute Ingenieurspraxis sorgten
dafür, dass diese Funktion in &os; in der Voreinstellung
deaktiviert ist. Sie kann jedoch aktiviert werden,
indem folgende Zeile in /etc/rc.conf
hinzugefügt wird:gateway_enable="YES" # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollUm das Routing zu aktivieren, setzen Sie die
&man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Um das Routing zu stoppen,
muss die Variable wieder auf 0 gesetzt
werden.BGPRIPOSPFDie Routingtabelle eines Routers benötigt zusätzliche
Routen, damit er weiß, wie er andere Netzwerke erreichen kann.
Die Routen können entweder manuell als statische Routen
hinzugefügt werden, oder aber der Router lernt automatisch
die Routen anhand des Routing-Protokolls. Statische Routen
eignen sich für kleine Netzwerke und dieser Abschnitt
beschreibt, wie Sie eine statische Route für ein kleines
Netzwerk hinzufügen.In großen Netzwerken sind statische Routen schlecht
skalierbar. &os; beinhaltet den
BSD-Routing-Daemon &man.routed.8;, der
die Protokolle RIP (Version 1 und
Version 2) sowie IRDP unterstützt. Die
Routing-Protokolle BGP und
OSPF können über den Port oder das Paket
net/zebra installiert werden.Nehmen wir an, dass wir über folgendes Netzwerk
verfügen:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
RouterA, ein &os;-Rechner, dient
als Router für den Zugriff auf das Internet. Die
Standardroute ist auf 10.0.0.1 gesetzt, damit ein
Zugriff auf das Internet möglich wird.
RouterB ist bereits konfiguriert, da
er 192.168.1.1 als
Standard-Gateway benutzt.Bevor die statischen Routen hinzugefügt werden, sieht
die Routingtabelle auf RouterA in
etwa so aus:&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 hat
RouterA keine Route zum Netzwerk
192.168.2.0/24.
Der folgende Befehl wird das interne Netz 2 in die
Routingtabelle von RouterA
aufnehmen und dabei 192.168.1.2 als nächsten
Zwischenschritt (Hop)
verwenden:&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.
Allerdings gehen die Routing-Informationen verloren, wenn das
&os;-System neu gestartet wird. Um statische Routen dauerhaft
einzurichten, müssen diese in
/etc/rc.conf eingetragen werden:# Add Internal Net 2 as a persistent 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. Die
Variable
route_internalnet2
enthält die statische Route.Wird mit der Variablen static_routes
mehr als eine Variable angegeben, so werden auch mehrere
Routen angelegt. Im folgenden Beispiel werden statische
Routen zu den Netzwerken 192.168.0.0/24 und
192.168.1.0/24
angelegt.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"ProblembehandlungWenn ein Adressraum einem Netzwerk zugeordnet wird,
konfiguriert der Dienstanbieter seine Routing-Tabellen, so
dass der gesamte Verkehr für das Netzwerk über die Verbindung
zu der Seite gesendet wird. Aber woher wissen externe
Webseiten, dass sie die Daten an das Netzwerk des
ISP senden sollen?Es gibt ein System, das alle zugewiesenen Adressräume
verwaltet und die Verbindung zum Internet-Backbone definiert.
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 Master-Tabellen, die den Verkehr für ein
bestimmtes Netzwerk hierarchisch vom Backbone über eine Kette
von Dienstanbietern bis hin zu einem bestimmten Netzwerk
leiten.Es ist die Aufgabe des Dienstanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit einer Seite
verbunden wurden. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.&man.traceroute.8;Manchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, sich zu
verbinden. Der vielleicht nützlichste Befehl, um
festzustellen wo das Routing nicht funktioniert, ist
traceroute. Das Programm ist nützlich,
falls ping fehlschlägt.Rufen Sie traceroute mit dem Namen des
entfernten Rechners auf, mit dem eine Verbindung aufgebaut
werden soll. Die Ausgabe zeigt die Gateway-Rechner entlang
des Verbindungspfades an. Schließlich wird der Zielrechner
erreicht oder es kommt zu einem Verbindungsabbruch. Weitere
Informationen finden Sie in &man.traceroute.8;.Multicast-RoutingMulticast-RoutingKerneloptionenMROUTING&os; unterstützt sowohl Multicast-Anwendungen als
auch Multicast-Routing. Multicast-Anwendungen benötigen keine
spezielle Konfiguration, um auf &os; lauffähig zu sein. Damit
Multicast-Routing unterstützt wird, muss die folgende Option
in der Kernelkonfiguration aktiviert werden:options MROUTINGDer Multicast-Routing-Daemon
mrouted kann als Port oder Paket
net/mroute installiert werden. Dieser
Daemon implementiert das DVMRP
Multicast-Routing-Protokoll. Um die Tunnel und
DVMRP einzurichten, muss
/usr/local/etc/mrouted.conf bearbeitet
werden. Bei der Installation von
mrouted wird auch
map-mbone und
mrinfo sowie die zugehörigen
Manualpages installiert, in denen Sie auch
Konfigurationsbeispiele finden können.DVMRP wurde in vielen
Multicast-Installationen weitgehend durch das
PIM-Protokoll ersetzt. Weitere
Informationen finden Sie in &man.pim.4;.Drahtlose NetzwerkeLoaderMarcFonvieilleMurrayStokelyNetzwerke, drahtlos802.11drahtlose NetzwerkeGrundlagenDie meisten drahtlosen Netzwerke basieren auf dem
Standard &ieee; 802.11. Ein einfaches drahtloses
Netzwerk besteht aus Stationen, die im 2,4 GHz- oder im
5 GHz-Band miteinander kommunizieren. Es ist aber auch
möglich, dass regional andere Frequenzen, beispielsweise im
2,3 GHz- oder 4,9 GHz-Band, verwendet werden.802.11-Netzwerke können auf zwei verschiedene
Arten aufgebaut sein: Im
Infrastruktur-Modus agiert eine
Station als Master, mit dem sich alle anderen Stationen
verbinden. Die Summe aller Stationen wird als Basic Service
Set (BSS), die Master-Station hingegen als
Access Point (AP) bezeichnet. In einem
BSS läuft jedwede Kommunikation über den
Access Point. Die zweite Form drahtloser Netzwerke sind die
sogenannten Ad-hoc-Netzwerke (auch als
IBSS bezeichnet), in denen es keinen Access
Point gibt und in denen die Stationen direkt miteinander
kommunizieren.Die ersten 802.11-Netzwerke arbeiteten im
2,4 GHz-Band und nutzten dazu Protokolle der
&ieee;-Standards 802.11 sowie 802.11b. Diese Standards legen
unter anderem Betriebsfrequenzen sowie Merkmale des
MAC-Layers (wie Frames und
Transmissionsraten) fest. Später kam der Standard 802.11a
hinzu, der im 5 GHz-Band, im Gegensatz zu den ersten
beiden Standards aber mit unterschiedlichen Signalmechanismen
und höheren Transmissionsraten arbeitet. Der neueste Standard
802.11g implementiert die Signal- und Transmissionsmechanismen
von 802.11a im 2,4 GHz-Band, ist dabei aber
abwärtskompatibel zu 802.11b-Netzwerken.Unabhängig von den zugrundeliegenden Transportmechanismen
verfügen 802.11-Netzwerke über diverse Sicherheitsmechanismen.
Der ursprüngliche 802.11-Standard definierte lediglich ein
einfaches Sicherheitsprotokoll namens WEP.
Dieses Protokoll verwendet einen fixen, gemeinsam verwendeten
Schlüssel sowie die RC4-Kryptografie-Chiffre, um Daten
verschlüsselt über das drahtlose Netzwerk zu senden. Alle
Stationen des Netzwerks müssen sich auf den gleichen fixen
Schlüssel einigen, um miteinander kommunizieren zu können.
Dieses Schema ist sehr leicht zu knacken und wird deshalb
heute kaum mehr eingesetzt. Aktuelle Sicherheitsmechanismen
bauen auf dem Standard &ieee; 802.11i auf, der neue
kryptographische Schlüssel (Chiffren), ein neues Protokoll für
die Anmeldung von Stationen an einem Access Point, sowie
Mechanismen zum Austausch von Schlüsseln als Vorbereitung der
Kommunikation zwischen verschiedenen Geräten festlegt.
Kryptografische Schlüssel werden in regelmäßigen Abständen
aktualisiert. Außerdem gibt es Mechanismen zur Feststellung
und Prävention von Einbruchsversuchen. Ein weiteres häufig
verwendetes Sicherheitsprotokoll ist WPA.
Dabei handelt es sich um einen Vorläufer von 802.11i, der von
einem Industriekonsortium als Zwischenlösung bis zur
endgültigen Verabschiedung von 802.11i entwickelt wurde.
WPA definiert eine Untergruppe der
Anforderungen des 802.11i-Standards und ist für den Einsatz in
älterer Hardware vorgesehen. WPA benötigt
nur den TKIP-Chiffre, welcher auf dem
ursprünglichen WEP-Code basiert. 802.11i
erlaubt zwar auch die Verwendung von TKIP,
benötigt aber zusätzlich eine stärkere Chiffre (AES-CCM)
für die Datenverschlüsselung. AES war für
WPA nicht vorgesehen, weil man es als zu
rechenintensiv für den Einsatz in älteren Geräten
ansah.Ein weiterer zu beachtender Standard ist 802.11e. Dieser
definiert Protokolle zur Übertragung von
Multimedia-Anwendungen, wie das Streaming von Videodateien
oder Voice-over-IP (VoIP) in einem
802.11-Netzwerk. Analog zu 802.11i verfügt auch 802.11e über
eine vorläufige Spezifikation namens WMM
(ursprünglich WME), die von einem
Industriekonsortium als Untergruppe von 802.11e spezifiziert
wurde, um Multimedia-Anwendungen bereits vor der endgültigen
Verabschiedung des 802.11e-Standards implementieren zu können.
802.11e sowie WME/WMM
erlauben eine Prioritätenvergabe beim Datentransfer in einem
drahtlosen Netzwerk. Möglich wird dies durch den Einsatz von
Quality of Service-Protokollen (QoS) und
erweiterten Medienzugriffsprotokollen. Werden diese
Protokolle korrekt implementiert, erlauben sie hohe
Datenübertragungsraten und einen priorisierten
Datenfluss.&os; unterstützt die Standards
802.11a, 802.11b und 802.11g. Ebenfalls unterstützt
werden WPA sowie die Sicherheitsprotokolle
gemäß 802.11i (sowohl für 11a, 11b als auch 11g).
QoS und Verkehrspriorisierung, die von den
WME/WMM-Protokollen
benötigt werden, werden für einen begrenzten Satz von
drahtlosen Geräten unterstützt.SchnellstartanleitungHäufig soll ein Computer an ein vorhandenes
Drahtlosnetzwerk angeschlossen werden. Diese Prozedur zeigt
die dazu erforderlichen Schritte.Besorgen Sie sich vom Netzwerkadministrator die
SSID
(Service Set Identifier)
und den PSK
(Pre Shared Key) für das
Drahtlosnetzwerk.Ermitteln Sie den drahtlosen Adapter. Der
GENERIC-Kernel von &os; enthält
Treiber für viele gängige Adapter. Wenn der drahtlose
Adapter eines dieser Modelle ist, wird das in der Ausgabe
von &man.ifconfig.8; angezeigt:&prompt.user; ifconfig | grep -B3 -i wirelessIn &os; 11 und neueren Versionen verwenden Sie
stattdessen diesen Befehl:&prompt.user; sysctl net.wlan.devicesWenn der drahtlose Adapter nicht aufgeführt wird,
könnte ein zusätzliches Kernelmodul erforderlich sein. Es
besteht jedoch auch die Möglichkeit, dass der Adapter von
&os; nicht unterstützt wird.Dieses Beispiel verwendet einen drahtlosen
Atheros-Adapter ath0.Fügen Sie in
/etc/wpa_supplicant.conf einen
Eintrag für das Netzwerk hinzu. Wenn die Datei nicht
existiert, müssen Sie diese erstellen. Ersetzen Sie
myssid und
psk durch die
SSID und den PSK.
Diese Informationen werden vom Netzwerkadministrator zur
Verfügung gestellt.network={
ssid="myssid"
psk="mypsk"
}Fügen Sie die entsprechenden Einträge in
/etc/rc.conf ein, um das Netzwerk
beim Start zu konfigurieren:wlans_ath0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"Starten Sie den Computer oder den Netzwerkdienst neu,
um sich mit dem Netzwerk zu verbinden:&prompt.root; service netif restartBasiskonfigurationKernelkonfigurationUm ein drahtloses Netzwerk zu nutzen, wird eine
drahtlose Netzwerkkarte benötigt und ein Kernel, der
drahtlose Netzwerke unterstützt. Der Kernel
unterstützt den Einsatz von Kernelmodulen. Daher
muss nur die Unterstützung für die verwendeten Geräte
aktiviert werden.Die meisten drahtlosen Geräte verwenden Bauteile von
Atheros und werden deshalb vom &man.ath.4;-Treiber
unterstützt. Um diesen Treiber zu verwenden,
muss die folgende Zeile in
/boot/loader.conf hinzugefügt
werden:if_ath_load="YES"Der Atheros-Treiber besteht aus drei Teilen:
dem Treiber selbst (&man.ath.4;), dem
Hardware-Support-Layer für die
chip-spezifischen Funktionen (&man.ath.hal.4;)
sowie einem Algorithmus zur Auswahl der
Frame-Übertragungsrate (ath_rate_sample). Wenn diese
Unterstützung als Kernelmodul geladen wird, kümmert sich
das Modul automatisch um Abhängigkeiten. Um die
Unterstützung für ein anderes drahtloses Gerät zu laden,
geben Sie das entsprechende Modul für dieses Gerät an.
Dieses Beispiel zeigt die Verwendung von Geräten, die auf
Bauteilen von Intersil Prism basieren und den Treiber
&man.wi.4; benötigen:if_wi_load="YES"Die Beispiele in diesem Abschnitt verwenden den
&man.ath.4;-Treiber. Verwenden Sie ein anderes Gerät,
muss der Gerätename an die Konfiguration angepasst werden.
Eine Liste aller verfügbaren Treiber und unterstützten
drahtlosen Geräte finden sich in den &os;
Hardware Notes unter
+ xlink:href="https://www.FreeBSD.org/releases/index.html">
Release Information der &os; Homepage. Gibt es
keinen nativen &os;-Treiber für das drahtlose
Gerät, kann möglicherweise mit
NDIS ein
&windows;-Treiber verwendet werden.Zusätzlich müssen die Module zur Verschlüsselung des
drahtlosen Netzwerks geladen werden. Diese werden
normalerweise dynamisch vom &man.wlan.4;-Modul geladen. Im
folgenden Beispiel erfolgt allerdings eine manuelle
Konfiguration. Folgende Module sind verfügbar:
&man.wlan.wep.4;, &man.wlan.ccmp.4; und &man.wlan.tkip.4;.
Sowohl &man.wlan.ccmp.4; als auch &man.wlan.tkip.4; werden
nur benötigt, wenn WPA und/oder die
Sicherheitsprotokolle von 802.11i verwendet werden. Wenn
das Netzwerk keine Verschlüsselung verwendet, wird die
&man.wlan.wep.4;-Unterstützung nicht benötigt. Um diese
Module beim Systemstart zu laden, fügen Sie folgende
Zeilen in /boot/loader.conf ein:wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"Sobald diese Einträge in
/boot/loader.conf vorhanden sind, muss
das &os;-System neu gestartet werden. Alternativ können
die Kernelmodule auch manuell mit &man.kldload.8; geladen
werden.Benutzer, die keine Kernelmodule verwenden wollen,
können die benötigten Treiber auch in den Kernel
kompilieren. Dazu müssen die folgenden Zeilen in die
Kernelkonfigurationsdatei aufgenommen werden:device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device ath # Atheros pci/cardbus NIC's
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for athMit diesen Informationen in der
Kernelkonfigurationsdatei kann der Kernel neu gebaut, und
das &os;-System anschließend neu gestartet werden.Informationen über das drahtlose Gerät sollten in den
Boot-Meldungen folgendermaßen angezeigt werden:ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1
ath0: [ITHREAD]
ath0: AR2413 mac 7.9 RF2413 phy 4.5Infrastruktur-ModusDrahtlose Netzwerke werden in der Regel im
Infrastruktur-Modus (BSS) betrieben.
Dazu werden mehrere drahtlose Access Points zu einem
gemeinsamen drahtlosen Netzwerk verbunden. Jedes dieser
drahtlosen Netzwerke hat einen eigenen Namen, der als
>SSID> bezeichnet wird. Alle Clients
eines drahtlosen Netzwerks verbinden sich in diesem Modus
mit einem Access Point.&os;-ClientsEinen Access Point findenUm nach verfügbaren drahtlosen Netzwerken zu suchen
verwenden Sie &man.ifconfig.8;. Dieser Scanvorgang kann
einen Moment dauern, da jede verfügbare Frequenz auf
verfügbare Access Points hin überprüft werden muss. Nur
der Super-User kann einen Scanvorgang starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPADie Netzwerkkarte muss in den Status
versetzt werden, bevor der erste
Scanvorgang gestartet werden kann. Für spätere
Scans ist dies aber nicht mehr erforderlich.Als Ergebnis erhalten Sie eine Liste mit allen
gefundenen
BSS/IBSS-Netzwerken.
Zusätzlich zum Namen des Netzwerks, der
SSID, wird auch die
BSSID ausgegeben. Dabei handelt es
sich um die MAC-Adresse des Access
Points. Das Feld CAPS gibt den Typ des
Netzwerks sowie die Fähigkeiten der Stationen innerhalb
des Netzwerks an:
Station Capability CodesCapability CodeBedeutungEExtended Service Set
(ESS). Zeigt an, dass die
Station Teil eines Infrastruktur-Netzwerks ist,
und nicht eines
IBSS/Ad-hoc-Netzwerks.IIBSS/Ad-hoc-Netzwerk. Die
Station ist Teil eines Ad-hoc-Netzwerks und nicht
eines ESS-Netzwerks.PPrivacy. Alle Datenframes, die innerhalb des
BSS ausgetauscht werden, sind
verschlüsselt. Dieses BSS
verwendet dazu kryptographische Verfahren wie
WEP, TKIP
oder
AES-CCMP.SShort Preamble. Das Netzwerk verwendet eine
kurze Präambel (definiert in 802.11b High
Rate/DSSS PHY). Eine kurze Präambel verwendet
ein 56 Bit langes Sync-Feld, im Gegensatz
zu einer langen Präambel, die ein
128 Bit langes Sync-Feld verwendet.sShort slot time. Das 802.11g-Netzwerk
verwendet eine kurze Slotzeit, da es in diesem
Netzwerk keine veralteten (802.11b) Geräte
gibt.
Um eine Liste der bekannten Netzwerke auszugeben,
verwenden Sie den folgenden Befehl:&prompt.root; ifconfig wlan0 list scanDiese Liste kann entweder automatisch durch das
drahtlose Gerät oder manuell durch eine
-Aufforderung aktualisiert werden.
Veraltete Informationen werden dabei automatisch
entfernt.BasiseinstellungenDieser Abschnitt beschreibt, wie Sie eine
drahtlose Netzwerkkarte ohne Verschlüsselung unter &os;
einrichten. Nachdem Sie sich mit den Informationen dieses
Abschnitts vertraut gemacht haben, sollten Sie das
drahtlose Netzwerk mit WPA
verschlüsseln.Das Einrichten eines drahtlosen Netzwerks erfolgt
in drei Schritten: Der Auswahl eines Access Points, die
Anmeldung der Station sowie der Konfiguration der
IP-Adresse.Einen Access Point auswählenIm Normalfall wird sich die Station automatisch mit
einem der zur Verfügung stehenden Access Points
verbinden. Dazu muss lediglich das drahtlose Gerät
aktiviert, oder in /etc/rc.conf
eingetragen sein:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Stehen mehrere Access Points zur Verfügung, kann
ein spezifischer durch Angabe der
SSID gewählt werden:wlans_ath0="wlan0"
ifconfig_wlan0="ssid Ihre_SSID DHCP"Gibt es in einem Netzwerk mehrere Access Points
mit der gleichen SSID, was das
Routing vereinfacht, kann es notwendig sein, dass ein
bestimmtes Gerät verbunden werden muss. Dazu muss
lediglich die BSSID des Access Points
angeben werden. Die Angabe der SSID
ist hierbei nicht zwingend notwendig:wlans_ath0="wlan0"
ifconfig_wlan0="ssid Ihre_SSID bssid xx:xx:xx:xx:xx:xx DHCP"Es gibt noch weitere Möglichkeiten, den Zugriff
auf bestimmte Access Point zu beschränken,
beispielsweise durch die Begrenzung der Frequenzen, auf
denen eine Station nach einem Access Point sucht.
Sinnvoll ist ein solches Vorgehen beispielsweise, wenn
das drahtlose Gerät in verschiedenen Frequenzbereichen
arbeiten kann, da in diesem Fall das Prüfen aller
Frequenzen sehr zeitintensiv sein kann. Um nur
innerhalb eines bestimmten Frequenzbereichs nach einem
Access Point zu suchen, verwenden Sie die Option
:wlans_ath0="wlan0"
ifconfig_wlan0="mode 11g ssid Ihre_SSID DHCP"In diesem Beispiel sucht das drahtlose Gerät nur im
2,4 GHz-Band (802.11g), aber nicht innerhalb des
5 GHz-Bandes nach einem Access Point. Mit der
Option kann eine bestimmte
Frequenz vorgegeben werden, auf der gesucht werden soll.
Die Option erlaubt die Angabe
mehrerer erlaubter Frequenzen. Eine umfassende
Beschreibung dieser Optionen finden Sie in
&man.ifconfig.8;.AuthentifizierungSobald ein Access Point gefunden wurde, muss
sich die Station am Access Point authentifizieren, bevor
Daten übertragen werden können. Dazu gibt es
verschiedene Möglichkeiten. Am häufigsten
wird die sogenannte offene
Authentifizierung verwendet. Dabei wird
es jeder Station erlaubt, sich mit einem Netzwerk
zu verbinden und Daten zu übertragen. Aus
Sicherheitsgründen sollte diese Methode allerdings
nur zu Testzwecken bei der erstmaligen Einrichtung
eines drahtlosen Netzwerks verwendet werden. Andere
Authentifizierungsmechanismen erfordern den Austausch
kryptographischer Informationen, bevor sie die
Übertragung von Daten erlauben. Dazu gehören
der Austausch fixer (vorher vereinbarter) Schlüssel
oder Kennwörter, sowie der Einsatz komplexerer
Verfahren mit Backend-Diensten wie
RADIUS. Die offene Authentifizierung
ist die Voreinstellung. Am zweithäufigsten kommt das im
beschriebene WPA-PSK zum Einsatz,
welches auch als WPA Personal
bezeichnet wird.Kommt eine &apple; &airport; Extreme-Basisstation
als Access Point zum Einsatz, muss sowohl die
Shared-Key-Authentifizierung als auch ein
WEP-Schlüssel konfiguriert werden.
Die entsprechende Konfiguration erfolgt entweder in
/etc/rc.conf oder über das
Programm &man.wpa.supplicant.8;. Für eine einzelne
&airport;-Basisstation kann der Zugriff wie folgt
konfiguriert werden:wlans_ath0="wlan0"
ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"Normalerweise sollte Shared-Key-Authentifizierung
nicht verwendet werden, da diese die Sicherheit des
WEP-Schlüssel noch weiter
verringert. Wenn WEP für
Kompatibilität mit älteren Geräten verwendet werden
muss, ist es besser, WEP mit
offener Authentifizierung zu verwenden. Weitere
Informationen zu WEP finden Sie im
.Eine IP-Adresse über
DHCP beziehenSobald ein Access Point ausgewählt ist und die
Authentifizierungsparameter festgelegt sind, wird eine
IP-Adresse benötigt. In der Regel
wird die IP-Adresse über
DHCP bezogen. Um dies zu erreichen,
bearbeiten Sie /etc/rc.conf und
fügen Sie DHCP für das drahtlose
Gerät in die Konfiguration hinzu:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Das drahtlose Gerät kann nun gestartet
werden:&prompt.root; service netif startNachdem das Gerät aktiviert wurde, kann mit
&man.ifconfig.8; der Status des Geräts
ath0 abgefragt werden:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burststatus: associated besagt, dass
sich das Gerät mit dem drahtlosen Netzwerk verbunden
hat. bssid 00:13:46:49:41:76 ist die
MAC-Adresse des Access Points und
authmode OPEN zeigt an, dass die
Kommunikation nicht verschlüsselt wird.Statische IP-AdressenWenn eine IP-Adresse nicht von
einem DHCP-Server bezogen werden
kann, vergeben Sie eine statische
IP-Adresse. Ersetzten Sie dazu das
oben gezeigte Schlüsselwort DHCP
durch die entsprechende IP-Adresse.
Beachten Sie dabei, dass Sie die anderen
Konfigurationsparameter nicht versehentlich
verändern:wlans_ath0="wlan0"
ifconfig_wlan0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here"WPAWi-Fi Protected Access
(WPA) ist ein Sicherheitsprotokoll, das
in 802.11-Netzwerken verwendet wird, um die fehlende
Authentifizierung und Schwächen von WEP
zu vermeiden. WPA stellt das aktuelle
802.1X-Authentifizierungsprotokoll dar und verwendet
eine von mehreren Chiffren, um die Datensicherheit
zu gewährleisten. Die einzige Chiffre, die von
WPA verlangt wird, ist
Temporary Key Integrity
Protocol (TKIP).
TKIP ist eine Chiffre, die die von
WEP verwendete RC4-Chiffre um
Funktionen zur Prüfung der Datenintegrität und zur
Erkennung und Bekämpfung von Einbruchsversuchen
erweitert. TKIP ist durch
Softwaremodifikationen auch unter veralteter Hardware
lauffähig. Im Vergleich zu WEP ist
WPA zwar sehr viel sicherer, es ist
aber dennoch nicht völlig immun gegen Angriffe.
WPA definiert mit
AES-CCMP noch eine weitere Chiffre als
Alternative zu TKIP.
AES-CCMP, welches häufig als
WPA2 oder RSN
bezeichnet wird, sollte bevorzugt eingesetzt
werden.WPA definiert Authentifizierungs-
und Verschlüsselungsprotokolle. Die Authentifizierung
erfolgt in der Regel über eine der folgenden Techniken:
802.1X gemeinsam mit einem
Backend-Authentifizierungsdienst wie
RADIUS, oder durch einen
Minimal-Handshake zwischen der Station und dem Access
Point mit einem vorher vereinbarten gemeinsamen Schlüssel.
Die erste Technik wird als WPA
Enterprise, die zweite hingegen als
WPA Personal bezeichnet. Da sich der
Aufwand für das Aufsetzen eines
RADIUS-Backend-Servers für die meisten
drahtlosen Netzwerke nicht lohnt, wird
WPA in der Regel als
WPA-PSK konfiguriert.Die Kontrolle der drahtlosen Verbindung sowie das
Aushandeln des Schlüssel, oder die Authentifizierung mit
einem Server, erfolgt über &man.wpa.supplicant.8;. Dieses
Programm benötigt eine Konfigurationsdatei,
/etc/wpa_supplicant.conf. Weitere
Informationen finden Sie in
&man.wpa.supplicant.conf.5;.WPA-PSKWPA-PSK, das auch als
WPA-Personal bekannt ist, basiert auf
einem gemeinsamen, vorher vereinbarten Schlüssel
(PSK), der aus einem Passwort
generiert und danach als Master-Key des drahtlosen
Netzwerks verwendet wird. Jeder Benutzer des drahtlosen
Netzwerks verwendet daher
den gleichen Schlüssel.
WPA-PSK sollte nur in kleinen
Netzwerken eingesetzt werden, in denen die Konfiguration
eines Authentifizierungsservers nicht möglich oder
erwünscht ist.Achten Sie darauf, immer starke Passwörter zu
verwenden, die ausreichend lang sind und auch
Sonderzeichen enthalten, damit diese nicht leicht
erraten oder umgangen werden können.Der erste Schritt zum Einsatz von
WPA-PSK ist die Konfiguration der
SSID und des gemeinsamen Schlüssels
des Netzwerks in
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
psk="freebsdmall"
}Danach wird in
/etc/rc.conf definiert, dass
WPA zur Verschlüsselung eingesetzt
werden soll und dass die IP-Adresse
über DHCP bezogen wird:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun kann das drahtlose Gerät aktiviert
werden:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALAlternativ kann das drahtlose Gerät manuell, mit
Hilfe der Informationen aus
/etc/wpa_supplicant.conf
konfiguriert werden:&prompt.root; wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]Im zweiten Schritt starten Sie nun
&man.dhclient.8;, um eine IP-Adresse
vom DHCP-Server zu beziehen:&prompt.root; dhclient wlan0
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALEnthält /etc/rc.conf
bereits die Zeile
ifconfig_wlan0="DHCP", wird
&man.dhclient.8; automatisch gestartet, nachdem
&man.wpa.supplicant.8; sich mit dem Access Point
verbunden hat.Sollte der Einsatz von DHCP nicht
möglich oder nicht gewünscht sein, konfigurieren Sie
eine statische IP-Adresse, nachdem
&man.wpa.supplicant.8; die Station authentifiziert
hat:&prompt.root; ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALFalls DHCP nicht verwendet wird,
müssen zusätzlich noch das Standard-Gateway sowie
der Nameserver manuell festgelegt werden:&prompt.root; route add default your_default_router
&prompt.root; echo "nameserver your_DNS_server" >> /etc/resolv.confWPA und
EAP-TLSDie zweite Möglichkeit, WPA
einzusetzen, ist die Verwendung eines
802.1X-Backend-Authentifizierungsservers. Diese
Variante wird als WPA-Enterprise
bezeichnet, um sie vom weniger sicheren
WPA-Personal abzugrenzen. Die bei
WPA-Enterprise verwendete
Authentifizierung basiert auf dem
Extensible Authentication
Protocol
(EAP).EAP selbst bietet keine
Verschlüsselung, sondern operiert in einem
verschlüsselten Tunnel. Es gibt verschiedene auf
EAP basierende
Authentifizierungsmethoden, darunter
EAP-TLS,
EAP-TTLS und
EAP-PEAP.EAP mit Transport
Layers Security
(EAP-TLS) ist ein sehr gut
unterstütztes Authentifizierungsprotokoll, da es sich
dabei um die erste EAP-Methode
handelt, die von der
Wi-Fi Alliance zertifiziert wurde.
EAP-TLS erfordert drei Zertifikate:
Das auf allen Rechnern installierte
CA-Zertifikat, das Server-Zertifikat
des Authentifizierungsservers, sowie ein
Client-Zertifikat für jeden drahtlosen Client. Sowohl
der Authentifizierungsservers als auch die drahtlosen
Clients authentifizieren sich gegenseitig über
Zertifikate, wobei sie überprüfen, ob diese Zertifikate
auch von der Zertifizierungs-Authorität
(CA) des jeweiligen Unternehmens
signiert wurden.Die Konfiguration erfolgt (analog zu
WPA-PSK) über
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}Der Name des Netzwerks
(SSID).Das als WPA2 bekannte
RSN &ieee; 802.11i Protokoll wird
verwendet.Die key_mgmt-Zeile bezieht
sich auf das verwendete Key-Management-Protokoll.
In diesem Beispiel wird WPA
gemeinsam mit der
EAP-Authentifizierung
verwendet.Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den von EAP verwendeten
Identifizierungsstring.Das Feld ca_cert gibt den
Pfad zum CA-Zertifikat an. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.Die client_cert-Zeile gibt
den Pfad zum Client-Zertifikat an. Jeder Client hat
ein eigenes, innerhalb des Netzwerks eindeutiges,
Zertifikat.Das Feld private_key gibt den
Pfad zum privaten Schlüssel des
Client-Zertifikat an.Das Feld private_key_passwd
enthält die Passphrase für den privaten
Schlüssel.Danach fügen Sie die folgende Zeile in
/etc/rc.conf ein:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun können Sie das drahtlose Gerät
aktivieren:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALAlternativ kann das drahtlose Gerät manuell mit
&man.wpa.supplicant.8; und &man.ifconfig.8; aktiviert
werden.WPA mit
EAP-TTLSBei EAP-TLS müssen sowohl der
Authentifizierungsserver als auch die Clients jeweils
ein eigenes Zertifikat aufweisen. Bei
EAP-TTLS ist das Client-Zertifikat
optional. EAP-TTLS geht dabei
vor wie ein Webserver, der einen sicheren
SSL-Tunnel erzeugen kann, ohne dass
der Besucher dabei über ein clientseitiges Zertifikat
verfügen muss. EAP-TTLS verwendet
einen verschlüsselten TLS-Tunnel zum
sicheren Transport der Authentifizierungsdaten.Die erforderliche Konfiguration erfolgt in
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den Identifizierungsstring für die
EAP-Authentifizierung innerhalb
des verschlüsselten
TLS-Tunnels.Das password-Feld enthält
die Passphrase für die
EAP-Authentifizierung.Das Feld ca_cert gibt den
Pfad zum CA-Zertifikat an. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.Die innerhalb des verschlüsselten
TLS-Tunnels verwendete
Authentifizierungsmethode. In Fall von
PEAP ist dies
auth=MSCHAPV2.Folgende Zeilen müssen in
/etc/rc.conf aufgenommen
werden:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Nun kann das drahtlose Gerät aktiviert
werden:&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWPA mit
EAP-PEAPPEAPv0/EAP-MSCHAPv2 ist die
gängigste PEAP-Methode. In diesem
Kapitel wird der Begriff PEAP
stellvertretend für diese Methode verwendet.Protected EAP
(PEAP) wurde als Alternative zu
EAP-TTLS entwickelt und ist nach
EAP-TLS der meist genutzte
EAP-Standard. In einem Netzwerk mit
verschiedenen Betriebssystemen sollte
PEAP das am besten unterstützte
Standard nach EAP-TLS sein.PEAP arbeitet ähnlich wie
EAP-TTLS. Es verwendet ein
serverseitiges Zertifikat, um einen verschlüsselten
TLS-Tunnel, über den die sichere
Authentifizierung zwischen den Clients und dem
Authentifizierungsserver erfolgt. In Sachen Sicherheit
unterscheiden sich EAP-TTLS und
PEAP allerdings:
PEAP überträgt den Benutzernamen im
Klartext und verschlüsselt nur das Passwort, während
EAP-TTLS sowohl den Benutzernamen,
als auch das Passwort über den
TLS-Tunnel überträgt.Um EAP-PEAP zu konfigurieren,
fügen Sie die folgenden Zeilen in
/etc/wpa_supplicant.conf
ein:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}Die für die Verbindung verwendete
EAP-Methode.Das identity-Feld enthält
den Identifizierungsstring für die innerhalb
des verschlüsselten TLS-Tunnels
erfolgende
EAP-Authentifizierung.Das Feld password enthält
die Passphrase für die
EAP-Authentifizierung.Das Feld ca_cert gibt den
Pfad zum CA-Zertifikat an. Diese
Datei wird zur Verifizierung des Server-Zertifikats
benötigt.Dieses Feld enthält die Parameter für die erste
Phase der Authentifizierung, den
TLS-Tunnel. Je nachdem, welcher
Authentifizierungsserver benutzt wird, kann ein
spezifisches Label für die Authentifizierung
verwendet werden. Meistens lautet das Label
client EAP
encryption, dass durch
peaplabel=0 gesetzt wird.
Weitere Informationen finden Sie in
&man.wpa.supplicant.conf.5;.Das innerhalb des verschlüsselten TLS-Tunnels
verwendete Authentifizierungsprotokoll. In unserem
Beispiel handelt es sich dabei um
auth=MSCHAPV2.Danach fügen Sie die folgende Zeile in
/etc/rc.conf ein:ifconfig_ath0="WPA DHCP"Nun kann das drahtlose Gerät aktiviert
werden.&prompt.root; service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWEPWired Equivalent
Privacy (WEP) ist Teil
des ursprünglichen 802.11-Standards. Es enthält
keinen Authentifzierungsmechanismus und verfügt
lediglich über eine schwache Zugriffskontrolle,
die sehr leicht umgangen werden kann.WEP kann über &man.ifconfig.8;
aktiviert werden:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \
ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012weptxkey definiert den
WEP-Schlüssel, der für die
Datenübertragung verwendet wird. Dieses Beispiel
verwendet den dritten Schlüssel. Der gleiche
Schlüssel muss auch am Access Point eingestellt sein.
Kennen Sie den vom Access Point verwendeten Schlüssel
nicht, sollten Sie zuerst den Wert
1 (den ersten Schlüssel) für diese
Variable verwenden.wepkey legt den zu
verwendenden WEP-Schlüssel in der
Form Nummer:Schlüssel fest.
Schlüssel 1 wird standardmäßig
verwendet. Die "Nummer" muss nur angegeben werden,
wenn ein anderer als der erste Schlüssel verwendet
werden soll.Ersetzen Sie 0x3456789012
durch den am Access Point konfigurierten
Schlüssel.Weitere Informationen finden Sie in
&man.ifconfig.8;.Das Programm &man.wpa.supplicant.8; eignet sich
ebenfalls dazu, WEP für drahtlose
Geräte zu aktivieren. Obige Konfiguration lässt
sich dabei durch die Aufnahme der folgenden Zeilen in
/etc/wpa_supplicant.conf
realisieren:network={
ssid="my_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}Danach müssen Sie das Programm noch aufrufen:&prompt.root; wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76Ad-hoc-ModusDer IBSS-Modus, der auch als
Ad-hoc-Modus bezeichnet wird, ist für
Punkt-zu-Punkt-Verbindungen vorgesehen. Um beispielsweise
eine Ad-hoc-Verbindung zwischen den Rechnern
A und B
aufzubauen, werden lediglich zwei
IP-Adressen und eine
SSID benötigt.Auf Rechner A:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstDer adhoc-Parameter zeigt an, dass die
Schnittstelle im IBSS-Modus läuft.Rechner B sollte nun in der Lage
sein, Rechner A zu finden:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WMEDer Wert I (Spalte CAPS) in dieser
Ausgabe bestätigt, dass sich Rechner
A im Ad-hoc-Modus befindet. Nun
müssen Sie noch Rechner B eine andere
IP-Adresse zuweisen:&prompt.root; ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstDamit sind die Rechner A und
B bereit und können untereinander
Daten austauschen.&os; Host Access Points&os; kann als Access Point (AP)
agieren. Dies verhindert, dass man sich einen Hardware
AP kaufen oder ein Ad-hoc Netzwerk laufen
lassen muss. Dies kann sinnvoll sein, falls der &os;-Computer
als Gateway zu einem anderen Netzwerk, wie dem Internet,
fungiert.GrundeinstellungenBevor Sie einen &os;-Computer als AP
konfigurieren, muss der Kernel mit der entsprechenden
Netzwerkunterstützung für die drahtlose Karte, sowie die
Sicherheitsprotokolle konfiguriert werden. Weitere
Informationen finden Sie im .Die Verwendung der NDIS Treiber für
&windows; erlauben zur Zeit keinen
AP-Modus. Nur die nativen
&os;-Wireless-Treiber unterstützen den
AP-Modus.Nachdem die Netzwerkunterstützung geladen ist,
überprüfen Sie, ob das Wireless-Gerät den hostbasierenden
Access-Point Modus, der auch als hostap-Modus bekannt ist,
unterstützt:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>Diese Ausgabe zeigt die Eigenschaften der Karte. Das
Wort HOSTAP bestätigt, dass diese
Wireless-Karte als AP agieren kann. Die
verschiedenen unterstützten Algorithmen werden ebenfalls
angezeigt: WEP,
TKIP und AES. Diese
Informationen zeigen an, welche Sicherheitsprotokolle auf
dem AP nutzbar sind.Das Wireless-Gerät kann nur während der Erzeugung
des Pseudo-Geräts in den hostap-Modus gesetzt werden.
Zuvor erstellte Pseudo-Geräte müssen also vorher
zerstört werden:&prompt.root; ifconfig wlan0 destroyDanach muss das Gerät erneut erstellt werden, bevor
die restlichen Netzwerkparameter konfiguriert werden
können:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1Benutzen Sie danach erneut &man.ifconfig.8;, um den
Status der wlan0-Schnittstelle
abzufragen:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst dtimperiod 1 -dfsDie hostap-Parameter geben die
Schnittstelle an, die im hostbasierenden Access Point Modus
läuft.Die Konfiguration der Schnittstelle kann durch
Hinzufügen der folgenden Zeilen in die Datei
/etc/rc.conf automatisch während
des Bootvorganges erfolgen:wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1"Hostbasierender Access Point ohne Authentifizierung
oder VerschlüsselungObwohl es nicht empfohlen wird, einen
AP ohne jegliche
Authentifizierung oder Verschlüsselung laufen zu lassen,
ist es eine einfache Art zu testen, ob der
AP funktioniert.
Diese Konfiguration ist auch wichtig für die Fehlersuche
bei Client-Problemen.Nachdem der AP konfiguriert wurde,
ist es möglich von einem anderen drahtlosen
Computer eine Suche nach dem AP zu
starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WMEDer Client-Rechner hat den AP
gefunden und kann nun eine Verbindung aufbauen:&prompt.root; ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burstWPA2-hostbasierter
Access PointDieser Abschnitt beschäftigt sich mit der Konfiguration
eines &os; Access Point mit dem
WPA2-Sicherheitsprotokoll. Weitere
Einzelheiten zu WPA und der Konfiguration
von Clients mit WPA finden Sie im
.Der &man.hostapd.8;-Dienst wird genutzt,
um die Client-Authentifizierung und das Schlüsselmanagement
auf dem AP mit aktiviertem
WPA2 zu nutzen.Die folgende Konfiguration wird auf dem
&os;-Computer ausgeführt, der als AP
agiert. Nachdem der AP korrekt arbeitet,
sollte &man.hostapd.8; automatisch beim Booten durch
folgende Zeile in /etc/rc.conf
aktiviert werden:hostapd_enable="YES"Bevor Sie versuchen &man.hostapd.8; zu konfigurieren,
konfigurieren Sie zunächst die Grundeinstellungen, wie im
beschrieben.WPA2-PSKWPA2-PSK ist für kleine Netzwerke
gedacht, in denen die Verwendung eines
Authentifizierungs-Backend-Server nicht möglich oder
nicht erwünscht ist.Die Konfiguration wird in
/etc/hostapd.conf
durchgeführt:interface=wlan0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=2
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP Die Wireless-Schnittstelle, die
für den Access Point verwendet wird an.Der debuglevel von &man.hostapd.8; während der
Ausführung. Ein Wert von 1 ist der
kleinste zulässige Wert.Der Pfadname des Verzeichnisses, der von
&man.hostapd.8; genutzt wird, um die
Domain-Socket-Dateien zu speichern, die für die
Kommunikation mit externen Programmen, wie z.B.
&man.hostapd.cli.8;, benutzt werden. In diesem
Beispiel wird der Standardwert verwendet.Die Gruppe die Zugriff auf die
Schnittstellendateien hat.Der Name des drahtlosen Netzwerks
(SSID).Aktiviert WPA und gibt an
welches
WPA-Authentifizierungprotokoll
benötigt wird. Ein Wert von 2
konfiguriert den AP mit
WPA2. Setzen Sie den Wert nur auf
1, wenn Sie das veraltete
WPA benötigen.Das ASCII-Passwort für die
WPA-Authentifizierung.Achten Sie darauf, immer starke Passwörter zu
verwenden, die mindestens 8 Zeichen lang sind und
auch Sonderzeichen enthalten, damit diese nicht
leicht erraten oder umgangen werden können.Das verwendete Schlüsselmanagement-Protokoll.
Dieses Beispiel nutzt
WPA-PSK.Die zulässigen Verschlüsselungsverfahren des
Access-Points. In diesem Beispiel wird nur
CCMP (AES)
akzeptiert. CCMP ist eine
Alternative zu TKIP und
sollte wenn möglich eingesetzt werden.
TKIP sollte nur da eingesetzt
werden, wo kein CCMP möglich
ist.Als nächstes wird hostapd
gestartet:&prompt.root; service hostapd forcestart&prompt.root; ifconfig wlan0
wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 04:f0:21:16:8e:10
inet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>
status: running
ssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10
country US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2
AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6
scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst
dtimperiod 1 -dfs
groups: wlanSobald der AP läuft, können sich
die Clients mit ihm verbinden. Weitere Informationen
finden Sie im . Es
ist möglich zu sehen, welche Stationen mit dem
AP verbunden sind. Geben Sie dazu
ifconfig
wlan0 list sta
ein.WEP-hostbasierter
Access PointEs ist nicht empfehlenswert, einen
AP mit WEP zu
konfigurieren, da es keine Authentifikationsmechanismen
gibt und WEP leicht zu knacken ist.
Einige ältere drahtlose Karten unterstützen nur
WEP als Sicherheitsprotokoll. Diese
Karten können nur mit einem AP ohne
Authentifikation oder Verschlüsselung genutzt
werden.Das Wireless-Gerät kann nun in den hostap-Modus
versetzt werden und mit der korrekten
SSID und IP-Adresse
konfiguriert werden:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \
ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11gDer weptxkey zeigt an,
welcher WEP-Schlüssel bei der
Übertragung benutzt wird. In diesem Beispiel wird der
dritte Schlüssel benutzt, da die Nummerierung bei
1 beginnt. Dieser Parameter muss
angegeben werden, damit die Daten verschlüsselt
werden.Der wepkey gibt den
gewählten WEP-Schlüssel an. Er
sollte im folgenden Format
index:key vorliegen. Wenn
kein Index vorhanden ist, wird der Schlüssel
1 benutzt. Ansonsten muss der
Index manuell festgelegt werden.Benutzen Sie &man.ifconfig.8; um den Status der
wlan0-Schnittstelle erneut
anzuzeigen:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit
txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfsEs ist möglich, von einem anderen drahtlosen
Computer eine Suche nach dem AP zu
starten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPSDer Client-Rechner hat den AP
gefunden und kann nun eine Verbindung aufbauen. Weitere
Informationen finden Sie im .Benutzung von drahtgebundenen und drahtlosen
VerbindungenEine Verbindung per Kabel bietet eine bessere Leistung
und eine höhere Zuverlässigkeit, während die
Wireless-Verbindung eine höhere Flexibilität und Mobilität
bietet. Benutzer von Laptops wollen normalerweise beides
nutzen und zwischen beiden Verbindungen hin und her
schalten.Unter &os; ist es möglich zwei oder mehr
Netzwerkschnittstellen in einem failover-Mode
zu kombinieren. Diese Konfiguration nutzt die beste
verfügbare Verbindung aus einer Gruppe von
Netzwerkverbindungen. Sobald sich der Linkstatus ändert,
wechselt das Betriebssystem automatisch auf eine andere
Verbindung.Link-Aggregation und Failover werden im behandelt. Ein Beispiel
für die Verwendung von kabelgebundenen und drahtlosen
Verbindungen gibt es im .ProblembehandlungDieser Abschnitt beschreibt eine Reihe von Maßnahmen zur
Behebung von alltäglichen Problemen mit
Drahtlosnetzwerken.Wird der Access Point bei der Suche nicht gefunden,
überprüfen Sie, dass die Konfiguration des drahtlosen
Geräts nicht die Anzahl der Kanäle beschränkt.Wenn sich das Gerät nicht mit dem Access Point
verbinden kann, überprüfen Sie, ob die Konfiguration der
Station auch der des Access Points entspricht. Dazu
gehören auch die Authentifzierungsmethode und die
Sicherheitsprotokolle. Halten Sie die Konfiguration so
einfach wie möglich. Wenn Sie ein Sicherheitsprotokoll
wie WPA oder WEP
verwenden, können Sie testweise den Access Point auf
offene Authentifizierung und
keine Sicherheit einstellen.Für die Fehlersuche steht &man.wpa.supplicant.8;
zur Verfügung. Starten Sie das Programm manuell mit der
Option und durchsuchen Sie
anschließend die Systemprotokolle nach eventuellen
Fehlermeldungen.Sobald sich das Gerät mit dem Access Point verbinden
kann, prüfen Sie die Netzwerkkonfiguration mit
einfachen Werkzeugen wie &man.ping.8;.Zusätzlich gibt es auch zahlreiche
Low-Level-Debugging-Werkzeuge. Die Ausgabe von
Debugging-Informationen des 802.11 Protocol Support Layers
lassen sich mit dem Programm &man.wlandebug.8; aktivieren.
Um beispielsweise während der Suche nach Access Points und
des Aufbaus von 802.11-Verbindungen
(Handshake) auftretende
Systemmeldungen auf die Konsole auszugeben, verwenden
Sie den folgenden Befehl:&prompt.root; wlandebug -i wlan0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>Der 802.11-Layer liefert umfangreiche Statistiken,
die mit dem Werkzeug wlanstats, das
sich in
/usr/src/tools/tools/net80211
befindet, abgerufen werden können. Diese Statistiken
sollten alle Fehler identifizieren, die im 802.11-Layer
auftreten. Beachten Sie aber, dass einige Fehler bereits
im darunterliegenden Gerätetreiber auftreten und
daher in diesen Statistiken nicht enthalten sind. Wie
Sie Probleme des Gerätetreibers identifizieren,
entnehmen Sie bitte der Dokumentation des
Gerätetreibers.Wenn die oben genannten Informationen nicht helfen das
Problem zu klären, erstellen Sie einen Problembericht, der die
Ausgabe der weiter oben genannten Werkzeuge beinhaltet.USB TetheringtetherViele Mobiltelefone bieten die Möglichkeit, ihre
Datenverbindung über USB (oft "Tethering" genannt) zu
teilen. Diese Funktion verwendet entweder das
RNDIS-, CDC- oder ein
&apple; &iphone;/&ipad;-Protokoll.&android;-Geräte benutzen in der Regel den
&man.urndis.4;-Treiber.&apple;-Geräte benutzen den
&man.ipheth.4;-Treiber.Ältere Geräte benutzen oft den
&man.cdce.4;-Treiber.Bevor Sie ein Gerät anschließen, laden Sie den
entsprechenden Treiber in den Kernel:&prompt.root; kldload if_urndis
&prompt.root; kldload if_cdce
&prompt.root; kldload if_iphethSobald das Gerät angeschlossen ist, steht es
unter ue0
wie ein normales Netzwerkgerät zur Verfügung.
Stellen Sie sicher, dass die Option
USB Tethering auf dem Gerät
aktiviert ist.BluetoothPavLucistnikBeigetragen von pav@FreeBSD.orgBluetoothBluetooth ermöglicht die Bildung von persönlichen
Netzwerken über drahtlose Verbindungen bei einer maximalen
Reichweite von 10 Metern und operiert im unlizensierten
2,4-GHz-Band. Solche Netzwerke werden normalerweise spontan
gebildet, wenn sich mobile Geräte, wie Mobiltelefone,
Handhelds oder Notebooks miteinander verbinden. Im Gegensatz
zu Wireless LAN ermöglicht Bluetooth auch höherwertige
Dienste, wie FTP-ähnliche Dateiserver,
Filepushing, Sprachübertragung, Emulation von seriellen
Verbindungen und mehr.Dieses Kapitel beschreibt die Verwendung von
USB-Bluetooth-Adaptern in &os;. Weiterhin
werden verschiedene Bluetooth-Protokolle und Programme
vorgestellt.Die Bluetooth-Unterstützung aktivierenDer Bluetooth-Stack von &os; verwendet das
&man.netgraph.4;-Framework. Viele
Bluetooth-USB-Adapter werden durch den
&man.ng.ubt.4;-Treiber unterstützt. Auf dem Chip BCM2033
von Broadcom basierende Bluetooth-Geräte werden von den
Treibern &man.ubtbcmfw.4; sowie &man.ng.ubt.4; unterstützt.
Die Bluetooth-PC-Card 3CRWB60-A von 3Com verwendet den
&man.ng.bt3c.4;-Treiber. Serielle sowie auf UART basierende
Bluetooth-Geräte werden von &man.sio.4;, &man.ng.h4.4;
sowie &man.hcseriald.8; unterstützt.Bevor ein Gerät angeschlossen wird, muss der entsprechende
Treiber in den Kernel geladen werden. Hier verwendet das
Gerät den &man.ng.ubt.4;-Treiber:&prompt.root; kldload ng_ubtIst das Bluetooth-Gerät beim Systemstart angeschlossen,
kann das entsprechende Modul bei Booten geladen werden, indem
der entsprechende Treiber in
/boot/loader.conf hinzugefügt
wird:ng_ubt_load="YES"Sobald der Treiber geladen ist, schließen Sie den
USB-Adapter an. Eine Meldung ähnlich der
folgenden wird auf der Konsole und in
/var/log/messages erscheinen:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Verwenden Sie das Startskript zum Starten und Beenden des
Bluetooth-Stacks. Es ist empfehlenswert, den Bluetooth-Stack
zu beenden, bevor Sie den Adapter entfernen. Wenn Sie den
Bluetooth-Stack starten, erhalten Sie eine Meldung ähnlich
der folgenden:&prompt.root; service bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8Suche nach anderen Bluetooth-GerätenHCIDas
Host Controller Interface
(HCI) bietet eine einheitliche Methode für
den Zugriff auf Bluetooth-Basisband-Funktionen. In &os; wird
ein netgraph HCI-Knoten für jedes
Bluetooth-Gerät erstellt. Weitere Einzelheiten finden Sie in
&man.ng.hci.4;.Eine der wichtigsten Aufgaben ist das Auffinden von sich
in Reichweite befindenden Bluetooth-Geräten. Diese
Funktion wird als inquiry bezeichnet.
Inquiry sowie andere mit HCI in Verbindung
stehende Funktionen werden von &man.hccontrol.8; zur Verfügung
gestellt. Das folgende Beispiel zeigt, wie man herausfindet,
welche Bluetooth-Geräte sich in Reichweite befinden. Eine
solche Abfrage dauert nur wenige Sekunden. Beachten Sie, dass
ein Gerät nur dann antwortet, wenn es sich im Modus
discoverable befindet.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR stellt, ähnlich der
MAC-Adresse einer Netzwerkkarte, die
eindeutige Adresse eines Bluetooth-Gerätes dar. Diese Adresse
ist für die Kommunikation mit dem Gerät nötig. Es ist aber
auch möglich, BD_ADDR einen Klartextnamen zuzuweisen.
/etc/bluetooth/hosts enthält
Informationen über die bekannten Bluetooth-Rechner. Das
folgende Beispiel zeigt, wie man den Klartextnamen eines
entfernten Geräts in Erfahrung bringen kann:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Wenn Sie ein entferntes Bluetooth-Gerät abfragen, wird
dieses den Rechner unter dem Namen
your.host.name (ubt0) finden. Dieser Name kann
aber jederzeit geändert werden.Bluetooth ermöglicht Punkt-zu-Punkt-Verbindungen an
denen nur zwei Bluetooth-Geräte beteiligt sind, aber auch
Punkt-zu-Multipunkt-Verbindungen, bei denen eine Verbindung
von mehreren Bluetooth-Geräten gemeinsam genutzt wird. Das
folgende Beispiel zeigt, wie man die aktiven
Basisbandverbindungen des lokalen Gerätes anzeigen
kann:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENEin connection handle ist für die
Beendigung einer Basisbandverbindung nützlich. Im
Normalfall werden inaktive Verbindungen aber automatisch vom
Bluetooth-Stack getrennt.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Rufen Sie hccontrol help auf, wenn Sie
eine komplette Liste aller verfügbaren
HCI-Befehle benötigen. Die meisten dieser
Befehle müssen nicht als root ausgeführt werden.Erstmaliger Verbindungsaufbau zwischen zwei
Bluetooth-Geräten (Pairing)
PairingIn der Voreinstellung nutzt Bluetooth keine
Authentifizierung, daher kann sich jedes Bluetoothgerät mit
jedem anderen Gerät verbinden. Ein Bluetoothgerät, wie
beispielsweise ein Mobiltelefon, kann jedoch für einen
bestimmten Dienst, etwa eine Einwählverbindung, eine
Authentifizierung anfordern. Bluetooth verwendet zu diesem
Zweck PIN-Codes. Ein
PIN-Code ist ein maximal 16 Zeichen langer
ASCII-String. Damit eine Verbindung zustande kommt, muss auf
beiden Geräten der gleiche PIN-Code
verwendet werden. Nachdem der Code eingegeben wurde, erzeugen
beide Geräte einen link key,
der auf den Geräten gespeichert wird. Beim nächsten
Verbindungsaufbau wird der zuvor erzeugte Link Key verwendet.
Diesen Vorgang bezeichnet man als
Pairing. Geht der Link Key auf
einem Gerät verloren, muss das Pairing wiederholt
werden.Der &man.hcsecd.8;-Daemon verarbeitet
Bluetooth-Authentifzierungsanforderungen und wird über die
Datei /etc/bluetooth/hcsecd.conf
konfiguriert. Der folgende Ausschnitt dieser Datei zeigt die
Konfiguration für ein Mobiltelefon, das den
PIN-Code 1234
verwendet:device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Von der Länge abgesehen, unterliegen
PIN-Codes keinen Einschränkungen. Einige
Geräte, beispielsweise Bluetooth-Headsets, haben einen festen
PIN-Code eingebaut. Die Option
sorgt dafür, dass der
&man.hcsecd.8;-Daemon im Vordergrund läuft. Dadurch kann
der Ablauf einfach verfolgt werden. Stellen Sie das entfernte
Gerät auf receive pairing
und initiieren Sie die Bluetoothverbindung auf dem entfernten
Gerät. Sie erhalten die Meldung, dass Pairing akzeptiert
wurde und der PIN-Code benötigt wird.
Geben Sie den gleichen PIN-Code ein, den
Sie in hcsecd.conf festgelegt haben. Der
Computer und das entfernte Gerät sind nun miteinander
verbunden. Alternativ können Sie das Pairing auch auf dem
entfernten Gerät initiieren.&man.hcsecd.8; kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
beim Systemstart automatisch aktiviert werden:hcsecd_enable="YES"Es folgt nun eine beispielhafte Ausgabe
des &man.hcsecd.8;-Daemons:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4Einwahlverbindungen und Netzwerkverbindungen mit
PPP-Profilen einrichtenEin
Dial-Up Networking-Profil
(DUN) kann dazu benutzt werden, ein
Mobiltelefon als drahtloses Modem zu nutzen, um sich über
einen Einwahlprovider mit dem Internet zu verbinden. Es
kann auch dazu genutzt werden, einen Computer so zu
konfigurieren, dass dieser Datenabfragen empfängt.Der Zugriff auf ein Netzwerk über ein
PPP-Profil kann einen Zugriff auf das
LAN für ein oder mehrere Bluetooth-Geräte
bieten. Eine
PC-zu-PC-Verbindung
unter Verwendung einer PPP-Verbindung
über eine serielle Verbindung ist ebenfalls möglich.Diese Profile werden unter &os; durch &man.ppp.8; sowie
&man.rfcomm.pppd.8; implementiert - einem Wrapper, der
Bluetooth-Verbindungen unter
PPP nutzbar macht. Bevor ein Profil
verwendet werden kann, muss ein neuer
PPP-Abschnitt in
/etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;.Dieses Beispiel verwendet &man.rfcomm.pppd.8;, um
eine Verbindung zu einem entfernten Gerät mit der
BD_ADDR00:80:37:29:19:a4 auf
dem RFCOMM-Kanal DUN
aufzubauen:&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupDie aktuelle Kanalnummer des entfernten Geräts erhalten
Sie über das SDP-Protokoll. Es ist auch
möglich, manuell einen RFCOMM-Kanal
festzulegen. In diesem Fall führt &man.rfcomm.pppd.8; keine
SDP-Abfrage durch. Verwenden Sie
&man.sdpcontrol.8;, um die RFCOMM-Kanäle
des entfernten Geräts herauszufinden.Der &man.sdpd.8;-Server muss laufen, damit ein Netzzugriff
mit dem PPP LAN-Profil
möglich ist. Außerdem muss für den
LAN-Client ein neuer Eintrag in
/etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;. Danach starten Sie den
RFCOMM PPP-Server
über eine gültige RFCOMM-Kanalnummer.
Der RFCOMM PPP-Server
bindet dadurch den Bluetooth-LAN-Dienst an
den lokalen SDP-Daemon. Das folgende
Beispiel zeigt, wie man den RFCOMM
PPP-Server startet.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverBluetooth-ProtokolleDieser Abschnitt gibt einen Überblick über die
verschiedenen Bluetooth-Protokolle, ihre Funktionen sowie
weitere Programme.Das Logical Link Control and Adaptation Protocol
(L2CAP)L2CAPDas Logical Link Control and Adaptation
Protocol (L2CAP) bietet
höherwertigen Protokollen verbindungsorientierte und
verbindungslose Datendienste an. L2CAP
erlaubt höherwertigen Protokollen und Programmen den Versand
und Empfang von L2CAP-Datenpaketen mit
einer Länge von bis zu 64 Kilobytes.L2CAP arbeitet
kanalbasiert. Ein Kanal ist eine
logische Verbindung innerhalb einer Basisbandverbindung.
Jeder Kanal ist dabei an ein einziges Protokoll gebunden.
Mehrere Geräte können an das gleiche Protokoll gebunden
sein, es ist aber nicht möglich, einen Kanal an mehrere
Protokolle zu binden. Jedes über einen Kanal ankommende
L2CAP-Paket wird an das entsprechende
höherwertige Protokoll weitergeleitet. Mehrere Kanäle
können sich die gleiche Basisbandverbindung teilen.Unter &os; wird eine netgraph-Gerätedatei vom Typ
l2cap für jedes einzelne
Bluetooth-Gerät erzeugt. Diese Gerätedatei ist
normalerweise mit der
Bluetooth-HCI-Gerätedatei (downstream)
sowie der Bluetooth-Socket-Gerätedatei (upstream) verbunden.
Der Standardname für die
L2CAP-Gerätedatei lautet
devicel2cap. Weitere Details finden Sie in
&man.ng.l2cap.4;.Ein nützlicher Befehl zum Anpingen von anderen
Geräten ist &man.l2ping.8;. Einige Bluetooth-Geräte
senden allerdings nicht alle erhaltenen Daten zurück. Die
Ausgabe 0 bytes im folgenden Beispiel ist
also kein Fehler:&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Das Programm &man.l2control.8; liefert Informationen
über L2CAP-Dateien. Das folgende
Beispiel zeigt, wie man die Liste der logischen Verbindungen
(Kanäle) sowie die Liste der Basisbandverbindungen abfragen
kann:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN&man.btsockstat.1; ist ein weiteres Diagnoseprogramm.
Es funktioniert ähnlich wie &man.netstat.1;, arbeitet aber
mit Bluetooth-Datenstrukturen. Das folgende Beispiel zeigt
die gleiche Liste der logischen Verbindungen wie
&man.l2control.8; im vorherigen Beispiel.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENRadio Frequency Communication
(RFCOMM)RFCOMMDas RFCOMM-Protokoll emuliert
serielle Verbindungen über das
L2CAP-Protokoll. Bei
RFCOMM handelt es sich um ein einfaches
Transportprotokoll, das um Funktionen zur Emulation der
9poligen Schaltkreise von mit RS-232 (EIATIA-232-E)
kompatiblen seriellen Ports ergänzt wurde. Es erlaubt bis
zu 60 simultane Verbindungen
(RFCOMM-Kanäle) zwischen zwei
Bluetooth-Geräten.Eine RFCOMM-Kommunikation besteht aus
zwei Anwendungen (den Kommunikationsendpunkten), die über
das Kommunikationssegment miteinander verbunden sind.
RFCOMM unterstützt Anwendungen, die auf
serielle Ports angewiesen sind. Das Kommunikationssegment
entspricht der direkten Bluetooth-Verbindung zwischen den
beiden Geräten.RFCOMM kümmert sich um die direkte
Verbindung von zwei Geräten, oder um die Verbindung zwischen
einem Gerät und einem Modem über eine Netzwerkverbindung.
RFCOMM unterstützt auch andere
Konfigurationen. Ein Beispiel dafür sind
Module, die drahtlose Bluetooth-Geräte mit einer
verkabelten Schnittstelle verbinden können.Unter &os; ist das RFCOMM-Protokoll
im Bluetooth Socket-Layer implementiert.Das Service Discovery Protocol
(SDP)SDPDas
Service Discovery Protocol
(SDP) erlaubt es Clientanwendungen, von
Serveranwendungen angebotene Dienste sowie deren
Eigenschaften abzufragen. Zu diesen Eigenschaften gehören
die Art oder die Klasse der angebotenen Dienste sowie der
Mechanismus oder das Protokoll, die zur Nutzung des Dienstes
notwendig sind.SDP ermöglicht Verbindungen zwischen
einem SDP-Server und einem
SDP-Client. Der Server enthält eine
Liste mit den Eigenschaften der vom Server angebotenen
Dienste. Jeder Eintrag beschreibt jeweils einen einzigen
Serverdienst. Ein Client kann diese Informationen durch
eine SDP-Anforderung vom
SDP-Server beziehen. Wenn der Client
oder eine Anwendung des Clients einen Dienst nutzen will,
muss eine separate Verbindung mit dem Dienstanbieter
aufgebaut werden. SDP bietet einen
Mechanismus zum Auffinden von Diensten und deren
Eigenschaften an, es bietet aber keine Mechanismen zur
Verwendung dieser Dienste.Normalerweise sucht ein SDP-Client
nur nach Diensten, die bestimmte geforderte Eigenschaften
erfüllen. Es ist aber auch möglich, anhand der
Dienstbeschreibungen eine allgemeine Suche nach den von
einem SDP-Server angebotenen Diensten
durchzuführen. Diesen Vorgang bezeichnet man als
Browsing.Der Bluetooth-SDP-Server &man.sdpd.8;
und der Kommandozeilenclient &man.sdpcontrol.8; sind bereits
in der Standardinstallation von &os; enthalten. Das
folgende Beispiel zeigt, wie eine
SDP-Abfrage durchgeführt wird:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0Beachten Sie, dass jeder Dienst eine Liste seiner
Eigenschaften, wie etwa den RFCOMM-Kanal,
zurückgibt. Je nachdem, welche Dienste der Benutzer
benötigt, sollten einige dieser Eigenschaften notiert
werden. Einige Bluetooth-Implementationen unterstützen kein
Service Browsing und geben
daher eine leere Liste zurück. Ist dies der Fall, ist es
dennoch möglich, nach einem bestimmten Dienst zu suchen.
Das folgende Beispiel demonstriert die Suche nach dem
OBEX Object Push
(OPUSH) Dienst:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHUnter &os; ist es die Aufgabe des &man.sdpd.8;-Servers,
Bluetooth-Clients verschiedene Dienste anzubieten. Sie
können diesen Server durch das Einfügen der folgenden
Zeile in /etc/rc.conf
aktivieren:sdpd_enable="YES"Nun kann der &man.sdpd.8;-Daemon durch
folgende Eingabe gestartet werden:&prompt.root; service sdpd startDer lokale Server, der den entfernten Clients
Bluetooth-Dienste anbieten soll, bindet diese Dienste an den
lokalen SDP-Daemon. Ein Beispiel für
eine solche Anwendung ist &man.rfcomm.pppd.8;. Einmal
gestartet, wird der Bluetooth-LAN-Dienst an den lokalen
SDP-Daemon gebunden.Die Liste der vorhandenen Dienste, die am lokalen
SDP-Server registriert sind, lässt sich
durch eine SDP-Abfrage über einen lokalen
Kontrollkanal abfragen:&prompt.root; sdpcontrol -l browseOBEX Object-Push
(OPUSH)OBEXOBEX ist ein häufig verwendetes
Protokoll für den Dateitransfer zwischen Mobilgeräten. Sein
Hauptzweck ist die Kommunikation über die
Infrarotschnittstelle. Es dient daher zum Datentransfer
zwischen Notebooks oder PDAs sowie zum
Austausch von Visitenkarten oder Kalendereinträgen zwischen
Mobiltelefonen und anderen Geräten mit
PIM-Funktionen.Server und Client von OBEX werden
durch obexapp bereitgestellt, das
als Paket oder Port comms/obexapp
installiert werden kann.Mit dem OBEX-Client werden Objekte
zum OBEX-Server geschickt oder
angefordert. Ein Objekt kann etwa eine Visitenkarte oder
ein Termin sein. Der OBEX-Client fordert
über SDP die Nummer des
RFCOMM-Kanals vom entfernten Gerät an.
Dies kann auch durch die Verwendung des Servicenamens
anstelle der RFCOMM-Kanalnummer erfolgen.
Folgende Dienste werden unterstützt:
IrMC, FTRN und
OPUSH. Es ist möglich, den
RFCOMM-Kanal als Nummer anzugeben. Es
folgt ein Beispiel für eine OBEX-Sitzung,
bei der ein Informationsobjekt vom Mobiltelefon angefordert
und ein neues Objekt (hier eine Visitenkarte) an das
Telefonbuch des Mobiltelefons geschickt wird:&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Um OBEX-Push-Dienste anbieten zu
können, muss der sdpd-Server
gestartet sein. Ein Wurzelverzeichnis, in dem alle
ankommenden Objekte gespeichert werden, muss zusätzlich
angelegt werden. In der Voreinstellung ist dies
/var/spool/obex. Starten Sie den
OBEX-Server mit einer gültigen
Kanalnummer. Der OBEX-Server registriert
nun den OBEX-Push-Dienst mit dem lokalen
SDP-Daemon. Das folgende Beispiel zeigt,
wie der OBEX-Server gestartet
wird:&prompt.root; obexapp -s -C 10Das Serial-Port Profil (SPP)Das Serial Port Profile
(SSP) ermöglicht es Bluetooth-Geräten
eine serielle Kabelverbindung zu emulieren. Anwendungen
sind dadurch in der Lage, über eine virtuelle serielle
Verbindung Bluetooth als Ersatz für eine Kabelverbindung zu
nutzen.&man.rfcomm.sppd.1; implementiert unter &os;
SSP und ein Pseudo-tty, das als
virtuelle serielle Verbindung verwendet wird. Das folgende
Beispiel zeigt, wie man eine Verbindung mit einem entfernten
Serial-Port-Dienst herstellt. Ein
RFCOMM-Kanal muss dabei nicht angegeben
werden, da &man.rfcomm.sppd.1; den Kanal über
SDP abfragen kann. Um dies zu umgehen,
geben Sie einen RFCOMM-Kanal auf der
Kommandozeile an.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t
rfcomm_sppd[94692]: Starting on /dev/pts/6...
/dev/pts/6Sobald die Verbindung hergestellt ist, kann pseudo-tty
als serieller Port verwenden werden.&prompt.root; cu -l /dev/pts/6Das pseudo-tty wird auf der Standardausgabe ausgegeben
und kann von Wrapper-Skripten gelesen werden:PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`
cu -l $PTSProblembehandlungWenn &os; eine neue Verbindung
akzeptiert, versucht es, die Rolle zu tauschen, um zum
Master zu werden. Einige ältere Geräte, die dies nicht
unterstützen, können keine Verbindung aufbauen. Da der
Rollentausch ausgeführt wird sobald eine neue Verbindung
aufgebaut wird, ist es nicht möglich, das entfernte Gerät zu
fragen ob es den Rollentausch unterstützt. Es gibt jedoch
eine HCI-Option, die dieses Verhalten
deaktiviert:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Verwenden Sie hcidump,
das als Paket Port comms/hcidump
installiert werden kann, um Bluetooth-Pakete anzuzeigen.
Dieses Programm hat Ähnlichkeiten mit &man.tcpdump.1; und
kann zur Anzeige der Bluetooth-Pakete in einem Terminal,
oder zur Speicherung von Paketen in einer Datei (Dump)
verwendet werden.LAN-Kopplung mit einer BridgeAndrewThompsonGeschrieben von IP-SubnetzBridgeManchmal ist es nützlich, ein Netzwerk, wie
ein Ethernetsegment, in 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.Eine Bridge arbeitet, indem sie die
MAC-Adressen der Geräte in
ihren Netzwerksegmenten lernt. Der Verkehr wird nur dann
zwischen zwei Segmenten weitergeleitet, wenn sich Sender und
Empfänger in verschiedenen Netzwerksegmenten befinden. Jedes
&os;-System mit zwei Netzwerkkarten kann als Bridge
fungieren.Bridging kann in den folgenden Situationen sinnvoll
sein:Verbinden von NetzwerkenDie Hauptaufgabe einer Bridge ist die Verbindung von
zwei oder mehreren Netzwerksegmenten. Es gibt viele
Gründe, eine hostbasierte Bridge einzusetzen, anstelle
von Netzwerkkomponenten, wie beispielsweise
Kabelverbindungen oder Firewalls. Eine Bridge kann
außerdem ein drahtloses Gerät mit einem Kabelnetzwerk
verbinden. Diese Fähigkeit der Bridge wird als
HostAP-Modus bezeichnet.
Die Bridge agiert in diesem Fall als Access Point für
das drahtlose Gerät.Filtering / Traffic Shaping FirewallEine Bridge kann eingesetzt werden, wenn
Firewallfunktionen benötigt werden, ohne dabei
Routing oder Network Adress
Translation (NAT)
zu verwenden.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder
ISDN an einen ISP
angebunden ist. Es verfügt über 13 erreichbare
IP-Adressen und das Netzwerk besteht
aus 10 Rechnern. In dieser Situation ist der Einsatz
von Subnetzen sowie einer routerbasierten Firewall
aufgrund der IP-Adressierung
schwierig. Eine Bridge-basierte Firewall kann hingegen
ohne Probleme konfiguriert werden.NetzwerküberwachungEine Bridge kann zwei Netzwerksegmente miteinander
verbinden und danach alle Ethernet-Rahmen überprüfen,
die zwischen den beiden Netzwerksegmenten ausgetauscht
werden. Dazu verwendet man entweder &man.bpf.4; und
&man.tcpdump.1; auf dem Netzgerät der Bridge oder schickt
Kopien aller Rahmen an ein zusätzliches Netzgerät, das als
Span Port bekannt
ist.Layer 2 VPNZwei Ethernetnetzwerke können über einen
IP-Link miteinander verbunden werden,
indem die beiden Netzwerke über einen EtherIP-Tunnel
gekoppelt werden, oder eine &man.tap.4;-basierte Lösung
wie OpenVPN eingesetzt
wird.Layer 2 RedundanzDie Systeme eines Netzwerks können über das
Spanning Tree Protocol
(STP) redundant miteinander verbunden
sein, um redundante Pfade zu blockieren.Dieser Abschnitt beschreibt, wie ein &os;-System mit Hilfe
von &man.if.bridge.4; als Bridge konfiguriert wird. Ein
netgraph-Bridge-Treiber ist ebenfalls verfügbar und wird in
&man.ng.bridge.4; beschrieben.Paketfilter können mit allen Firewallpaketen verwendet
werden, die das &man.pfil.9;-Framework benutzen. Eine Bridge
kann auch als Traffic Shaper
verwendet werden, wenn Sie &man.altq.4; oder
&man.dummynet.4; einsetzen.Die Bridge aktivierenIn &os; handelt es sich bei &man.if.bridge.4; um ein
Kernelmodul, das von &man.ifconfig.8; automatisch geladen
wird, wenn eine Bridge-Schnittstelle erzeugt wird. Es ist
auch möglich, die Unterstützung für den Treiber in den Kernel
zu kompilieren, indem die Zeile
device if_bridge in die
Kernelkonfigurationsdatei hinzugefügt wird.Eine Bridge wird durch das Klonen von Schnittstellen
erzeugt. Um eine Bridge zu erzeugen, verwenden Sie:&prompt.root; ifconfig bridge create
bridge0
&prompt.root; ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0Wenn eine Bridge erzeugt wird, erhält sie automatisch eine
zufällig generierte Ethernet-Adresse. Die Parameter
maxaddr sowie timeout
legen fest, wie viele MAC-Adressen die
Bridge in ihrer Forward-Tabelle halten kann und wie viele
Sekunden jeder Eintrag erhalten bleiben soll, nachdem
er zuletzt verwendet wurde. Die restlichen Parameter sind
für die Konfiguration von STP
notwendig.Im nächsten Schritt werden die Schnittstellen, die
die Bridge verbinden soll, zugewiesen. Damit die Bridge
Datenpakete weiterleiten kann, müssen sowohl die Bridge
als auch die Schnittstellen der zu verbindenden
Netzwerksegmente aktiviert sein:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up
&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 upJetzt ist die Bridge in der Lage, Ethernet-Rahmen zwischen
den Schnittstellen fxp0 und
fxp1 weiterzuleiten. Um diese
Konfiguration beim Systemstart automatisch zu aktivieren,
müssen die folgenden Zeilen in
/etc/rc.conf hinzugefügt werden:cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"Wenn die Bridge eine IP-Adresse
benötigt, muss diese der Schnittstelle der Bridge zugewiesen
werden und nicht der Schnittstelle der gekoppelten
Netzwerksegmente. Die IP-Adresse kann
manuell gesetzt, oder über DHCP bezogen
werden. Dieses Beispiel verwendet eine statische
IP-Adresse:&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Es ist auch möglich der Bridge-Schnittstelle eine
IPv6-Adresse zuzuweisen. Um die Änderungen
dauerhaft zu speichern, fügen Sie die Adressinformationen in
/etc/rc.conf ein.Nachdem ein Paketfilter aktiviert wurde, können
Datenpakete, die von den Schnittstellen der gekoppelten
Netzwerksegmente gesendet und empfangen werden, über
die Bridge weitergeleitet oder nach bestimmten Regeln
gefiltert oder auch komplett geblockt werden. Ist die
Richtung des Paketflusses wichtig, ist es am besten, eine
Firewall auf den Schnittstellen der einzelnen
Netzwerksegmente einzurichten und nicht auf der Bridge
selbst.Eine Bridge verfügt über verschiedene Optionen zur
Weiterleitung von Nicht-IP- und
IP-Paketen, sowie Paketfilterung auf
Layer 2 mittels &man.ipfw.8;. Weitere Informationen finden
Sie in &man.if.bridge.4;.Spanning Tree aktivierenDamit ein Ethernet-Netzwerk richtig funktioniert, kann nur
ein aktiver Pfad zwischen zwei Geräten existieren. Das
STP-Protokoll erkennt Schleifen in einer
Netzwerktopologie und setzt redundante Pfade in einen
blockierten Zustand. Sollte eine der aktiven Verbindungen
ausfallen, berechnet STP einen anderen Baum
und ermöglicht es dann einem blockierten Pfad, alle
Netzwerkverbindungen wiederherzustellen.Das
Rapid Spanning Tree Protocol
(RSTP oder 802.1w), ist abwärtskompatibel
zum veralteten STP.
RSTP arbeitet schneller und tauscht
Informationen mit benachbarten Switchen aus, um Pakete korrekt
weiterzuleiten und eine Schleifenbildung zu verhindern. &os;
unterstützt die Betriebsmodi RSTP und
STP, wobei RSTP als
Standardmodus voreingestellt ist.STP kann auf den Schnittstellen der
durch die Bridge verbundenen Netzwerksegmente mittels
&man.ifconfig.8; aktiviert werden. Für eine
Bridge, die die Schnittstellen fxp0 und
fxp1 verbindet, aktivieren Sie
STP wie folgt:&prompt.root; ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwardingDiese Bridge hat die Spanning-Tree-ID
00:01:02:4b:d4:50 und die Priorität
32768. Da diese ID mit der
Root-ID identisch ist, handelt es sich um
die Root-Bridge dieses Netzwerks.Auf einer anderen Bridge des Netzwerks ist
STP ebenfalls aktiviert:bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwardingDie Zeile root id 00:01:02:4b:d4:50 priority
32768 ifcost 400000 port 4 zeigt an, dass die
Root-Bridge die ID 00:01:02:4b:d4:50 hat.
Die Pfadkosten hin zur Root-Bridge betragen
400000, wobei der Pfad zur Root-Bridge
über port 4 geht, der wiederum
der Schnittstelle fxp0 entspricht.Parameter der Bridge-SchnittstelleEinige Parameter von ifconfig dienen
ausschließlich der Konfiguration von Bridge-Schnittstellen.
Dieser Abschnitt fasst die Verwendung dieser Parameter
zusammen. Die vollständige Liste der verfügbaren Parameter
wird in &man.ifconfig.8; beschrieben.privateEine private Schnittstelle leitet keine Daten an
einen Port weiter, bei dem es sich ebenfalls um eine
private Schnittstelle handelt. Der Datenverkehr wird
dabei komplett blockiert, auch Ethernet-Rahmen und
ARP-Pakete werden nicht
weitergeleitet. Wollen Sie hingegen nur spezifische
Datenpakete blockieren, sollten Sie eine Firewall
einsetzen.spanEin Span Port
übertragt eine Kopie jedes Ethernet-Rahmens, der an der
Bridge ankommt. Auf einer Bridge können beliebig viele
Span Ports festgelegt werden. Wird eine Schnittstelle
als Span Port konfiguriert, kann sie nicht mehr als
normaler Bridge-Port verwendet werden. Eine derartige
Konfiguration ist beispielsweise sinnvoll, um den
Datenverkehr, der in einem Netzwerk über die Bridge
läuft, auf einen Rechner zu übertragen, der mit einem
Span Port der Bridge verbunden ist. Um beispielsweise
eine Kopie aller Ethernet-Rahmen über die Schnittstelle
fxp0 zu übertragen:&prompt.root; ifconfig bridge0 span fxp4stickyWenn die Schnittstelle eines über eine Bridge
verbundenen Netzwerksegments als
sticky gekennzeichnet
wird, werden alle dynamisch gelernten Adressen als
statische Adressen behandelt, sobald sie in den
Forward-Cache der Bridge aufgenommen wurden.
Sticky-Einträge werden niemals aus dem Cache entfernt
oder ersetzt. Selbst dann nicht, wenn die Adresse von
einer anderen Schnittstelle verwendet wird. Sie können
dadurch die Vorteile statischer Adresseinträge nutzen,
ohne die Forward-Tabelle vor dem Einsatz der Bridge mit
statischen Einträgen füllen zu müssen. Clients, die
sich in einem bestimmten von der Bridge verwalteten
Segmente befinden, können dabei nicht in ein anderes
Segment wechseln.Ein Beispiel für den Einsatz von Sticky-Adressen ist
die Kombination einer Bridge mit mehreren
VLANs, um einen Router zu
konfigurieren, der einzelne Kundennetzwerke voneinander
trennt, ohne dabei IP-Adressbereiche
zu verschwenden. Für das folgende Beispiel nehmen wir
an, dass sich der Client CustomerA im
VLAN vlan100 und
der Client CustomerB im
VLAN vlan101
befinden. Die Bridge hat die
IP-Adresse 192.168.0.1:&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24In diesem Beispiel sehen beide Clients 192.168.0.1 als das
Default-Gateway. Da der Brücken-Cache
sticky ist, sind Sie nicht dazu in
der Lage, die MAC-Adresse des anderen
Kunden zu spoofen und dessen Datenverkehr
abzufangen.Sie können die Kommunikation zwischen den
VLANs vollständig unterbinden, wenn
Sie private Schnittstellen oder eine Firewall
einsetzen:&prompt.root; ifconfig bridge0 private vlan100 private vlan101Die Kunden sind nun komplett voneinander isoliert
und der komplette /24-Adressbereich kann
zugewiesen werden, ohne dass Subnetze eingesetzt
werden.Die maximale mögliche Anzahl an eindeutigen
MAC-Adressen hinter einer
Schnittstelle kann festgelegt werden. Sobald das Limit
erreicht ist, werden Pakete mit einer unbekannten
Quell-Adresse solange verworfen, bis ein existierender
Eintrag gelöscht wird oder abläuft.Das folgende Beispiel setzt die maximale Anzahl von
Netzgeräten für CustomerA für das
VLAN vlan100 auf 10.&prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10Die Bridge unterstützt auch den Monitormodus. Dabei
werden alle Pakete verworfen, nachdem sie von &man.bpf.4;
verarbeitet wurden. In diesem Modus erfolgt keine weitere
Bearbeitung und auch keine Weiterleitung von Datenpaketen.
Es ist daher möglich, die Eingabe von zwei oder mehr
Netzwerkschnittstellen in einen einzigen gemeinsamen
&man.bpf.4;-Stream zu vereinen. Ein solcher Datenstrom
ist beispielsweise nützlich, um den Datenverkehr für
network taps zu rekonstruieren, die ihre
RX/TX-Signale über verschiedene Schnittstellen senden. Um
beispielsweise die Eingabe von vier Netzwerkschnittstellen
in einzigen gemeinsamen Datenstrom zu vereinen:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0SNMP-MonitoringDie Schnittstelle der Bridge sowie die
STP-Parameter können durch den im
Basissystem enthaltenen &man.bsnmpd.1; überwacht werden.
Die exportierten Bridge-MIBs entsprechen
den IETF-Standards, daher kann ein
beliebiger SNMP-Client oder ein
beliebiges Monitoring-Werkzeug eingesetzt werden, um die
benötigten Daten zu erhalten.Um das Monitoring auf der Bridge zu aktivieren,
kommentieren Sie diese Zeile in
/etc/snmpd.config aus, indem Sie das
Zeichen # entfernen:begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"Weitere Konfigurationsparameter wie Community-Namen und
Zugriffslisten müssen ebenfalls in dieser Datei angepasst
werden. Weitere Informationen finden Sie in &man.bsnmpd.1;
und &man.snmp.bridge.3;. Nachdem die Änderungen gespeichert
wurden, fügen Sie folgende Zeile in
/etc/rc.conf hinzu:bsnmpd_enable="YES"Danach starten Sie &man.bsnmpd.1;:&prompt.root; service bsnmpd startDie folgenden Beispiele verwenden das Softwarepaket
Net-SNMP
(net-mgmt/net-snmp), um die Bridge vom
Client aus abzufragen. Alternativ kann auch der Port
net-mgmt/bsnmptools benutzt werden. Auf
dem SNMP-Client müssen danach die folgenden
Zeilen in $HOME/.snmp/snmp.conf
hinzugefügt werden, um die MIB-Definitionen
der Bridge in Net-SNMP zu
importieren:mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIBUm eine einzelne Bridge über den IETF BRIDGE-MIB
(RFC4188) zu überwachen:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)Der Wert der Variable
dot1dStpTopChanges.0 ist hier 2, die
STP-Topologie der Bridge wurde also
bereits zweimal geändert. Unter einer Änderung versteht man
die Anpassung eines oder mehrerer Links und die Kalkulation
eines neuen Baums. Der Wert der Variable
dot1dStpTimeSinceTopologyChange.0 gibt an,
wann dies zuletzt geschah.Um mehrere Bridge-Schnittstellen zu überwachen,
kann der private BEGEMOT-BRIDGE-MIB eingesetzt
werden:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9Um die über den
mib-2.dot1dBridge-Subtree überwachte
Bridge-Schnittstelle zu ändern:&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2Link-Aggregation und FailoverAndrewThompsonGeschrieben von BenedictReuschlingÜbersetzt von SharonBahagilaggfailoverFECLACPloadbalanceroundrobinDie von &os; unterstützte &man.lagg.4;-Schnittstelle erlaubt
die Gruppierung von mehreren Netzwerkadaptern als eine virtuelle
Schnittstelle, mit dem Ziel, Ausfallsicherheit (Failover) und
Link Aggregation bereitzustellen. Bei Failover kann der Verkehr
auch dann weiter fließen, wenn nur eine Schnittstelle verfügbar
ist. Link Aggregation funktioniert am besten mit Switches,
die LCAP unterstützen, da dieses Protokoll
den Datenverkehr bidirektional verteilt, während es auch auf den
Ausfall einzelner Verbindungen reagiert.Die von der lagg-Schnittstelle unterstützten Protokolle
bestimmen, welche Ports für den ausgehenden Datenverkehr benutzt
werden, und ob ein bestimmter Port eingehenden Datenverkehr
akzeptiert. Die folgenden Protokolle werden von &man.lagg.4;
unterstützt:Failover (Ausfallsicherheit)Dieser Modus sendet und empfängt Datenverkehr nur
auf dem Masterport. Sollte der Masterport nicht zur
Verfügung stehen, wird der nächste aktive Port
verwendet. Der zuerst hinzugefügte Adapter der
virtuellen Schnittstelle wird zum Masterport, jeder
weitere Adapter dient als Gerät zur Ausfallsicherheit.
Wenn ein Failover auf einem Nicht-Master Port
stattfindet, wird der ursprüngliche Port wieder zum
Master-Port, sobald er wieder verfügbar ist.fec / loadbalance (Lastverteilung)&cisco; Fast ðerchannel; (FEC)
findet sich auf älteren &cisco; Switches. Es bietet
eine statische Konfiguration und handelt weder
Aggregation mit der Gegenstelle aus, noch werden Frames
zur Überwachung der Verbindung ausgetauscht. Wenn der
Switch LACP unterstützt, sollte diese
Option auch verwendet werden.lacpDas &ieee; 802.3ad Link-Aggregation Control
Protokoll (LACP). Mit
LACP wird eine Menge von
aggregierbaren Verbindungen mit der Gegenstelle in einer
oder mehreren Link Aggregated Groups
(LAG) ausgehandelt. Jede
LAG besteht aus Ports der gleichen
Geschwindigkeit, eingestellt auf Voll-Duplex-Betrieb.
Der Verkehr wird über die Ports in der
LAG mit der größten
Gesamtgeschwindigkeit balanciert. Typischerweise gibt
es nur eine LAG, die alle Ports
enthält. Im Falle von Änderungen in der physischen
Anbindung wird LACP schnell zu einer
neuen Konfiguration konvergieren.LACP balanciert ausgehenden
Verkehr über die aktiven Ports basierend auf der
gehashten Protokollheaderinformation und akzeptiert
eingehenden Verkehr auf jedem aktiven Port. Der Hash
beinhaltet die Ethernet-Quell- und Zieladresse, und,
soweit verfügbar, den VLAN-Tag,
sowie die IPv4 oder
IPv6 Quell- und Zieladresse.roundrobinDieser Modus verteilt ausgehenden Verkehr mittels
einer Round-Robin-Zuteilung über alle aktiven Ports und
akzeptiert eingehenden Verkehr auf jedem aktiven Port.
Da dieser Modus die Reihenfolge von Ethernet-Rahmen
verletzt, sollte er mit Vorsicht eingesetzt
werden.BeispieleDieser Abschnitt zeigt, wie man einen &cisco; Switch und
ein &os;-System für LACP Load Balancing
konfiguriert. Weiterhin wird gezeigt, wie man zwei
Ethernet-Schnittstellen, sowie eine Ethernet- und eine
Drahtlos-Schnittstelle für den Failover-Modus konfigurieren
kann.LACP Aggregation mit einem &cisco;
SwitchDieses Beispiel verbindet zwei &man.fxp.4;
Ethernet-Schnittstellen einer &os;-Maschine zu den ersten
zwei Ethernet-Ports auf einem &cisco; Switch als eine
einzelne, lastverteilte und ausfallsichere Verbindung.
Weitere Adapter können hinzugefügt werden, um den Durchsatz
zu erhöhen und die Ausfallsicherheit zu steigern. Ersetzen
Sie die Namen der &cisco;-Ports, Ethernet-Geräte,
channel-group Nummern und IP-Adressen im
Beispiel durch Namen, die mit Ihrer lokalen Konfiguration
übereinstimmen.Da die Reihenfolge der Frames bei Ethernet zwingend
eingehalten werden muss, fließt auch jeglicher Verkehr
zwischen zwei Stationen über den gleichen physischen
Kanal, was die maximale Geschwindigkeit der Verbindung auf
die eines einzelnen Adapters beschränkt.
Der Übertragungsalgorithmus versucht, so viele
Informationen wie möglich zu verwenden, um die
verschiedenen Verkehrsflüsse zu unterscheiden und
balanciert diese über die verfügbaren Adapter.Fügen Sie auf dem &cisco;-Switch die Adapter
FastEthernet0/1 und
FastEthernet0/2 zu der
channel-group 1 hinzu:interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacpErstellen Sie auf der &os; Maschine die
&man.lagg.4;-Schnittstelle unter Verwendung von
fxp0 und
fxp1 und starten Sie die
Schnittstelle mit der IP-Adresse
10.0.0.3/24:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24Überprüfen Sie den Status der virtuellen
Schnittstelle:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>Ports, die als ACTIVE markiert
sind, sind Teil der aktiven Aggregations-Gruppe, die mit dem
Switch ausgehandelt wurde. Der Verkehr wird über diese
Gruppe übertragen und empfangen. Benutzen Sie
&man.ifconfig.8; mit , um sich die
LAG-Bezeichner anzeigen zu lassen.Um den Status der Ports auf dem Switch
anzuzeigen, benutzen Sie
show lacp neighbor:switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3DBenutzen Sie show lacp neighbor
detail, um weitere Informationen zu
erhalten.Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie auf dem &os;-System folgende
Einträge in /etc/rc.conf hinzu:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0
ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24"Ausfallsicherer ModusDer ausfallsichere Modus kann verwendet werden, um zu
einer zweiten Schnittstelle zu wechseln, sollte die
Verbindung mit der Master-Schnittstelle ausfallen. Um den
ausfallsicheren Modus zu konfigurieren, aktivieren Sie
zunächst die zugrunde liegenden physikalischen
Schnittstellen. Erstellen Sie dann die
&man.lagg.4;-Schnittstelle mit
fxp0 als Master-Schnittstelle und
fxp1 als sekundäre Schnittstelle.
Der virtuellen Schnittstelle wird die
IP-Adresse
10.0.0.15/24 zugewiesen:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp110.0.0.15/24Die virtuelle Schnittstelle sollte in etwa so
aussehen:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>Der Verkehr wird auf fxp0
übertragen und empfangen. Wenn die Verbindung auf
fxp0 abbricht, wird
fxp1 die Verbindung übernehmen.
Sobald die Verbindung auf der Master-Schnittstelle
wiederhergestellt ist, wird diese wieder als aktive
Schnittstelle genutzt.Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf hinzu:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0
ifconfig_lagg0="laggproto failover laggport fxp0 laggport fxp110.0.0.15/24"Failover Modus zwischen Ethernet- und
Wireless-SchnittstellenFür Laptop-Benutzer ist es normalerweise wünschenswert,
wireless als sekundäre Schnittstelle
einzurichten, die verwendet wird, wenn die
Ethernet-Verbindung nicht verfügbar ist. Mit &man.lagg.4;
ist es möglich, ein Failover mit einer
IP-Adresse zu konfigurieren, welches die
Ethernet-Verbindung aus Performance- und Sicherheitsgründen
bevorzugt, während es gleichzeitig möglich bleibt, Daten
über die drahtlose Verbindung zu übertragen.Dies wird durch das Überschreiben der physikalischen
MAC-Adresse der drahtlosen Schnittstelle,
durch die der Ethernet-Schnittstelle erreicht.In diesem Beispiel ist die Ethernet-Schnittstelle
bge0 die Master-Schnittstelle
und die drahtlose Schnittstelle
wlan0 die Failover-Schnittstelle.
wlan0 wurde von der
iwn0 mit der
MAC-Adresse der Ethernet-Schnittstelle
eingerichtet. Im ersten Schritt wird die
MAC-Adresse der
Ethernet-Schnittstelle ermittelt:&prompt.root; ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
ether 00:21:70:da:ae:37
inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: activeErsetzen Sie bge0 durch den
Namen der Ethernet-Schnittstelle des Systems. Die
ether-Zeile wird die
MAC-Adresse der angegebenen Schnittstelle
enthalten. Ändern Sie nun die
MAC-Adresse der zugrunde liegenden
drahtlosen Schnittstelle:&prompt.root; ifconfig iwn0 ether 00:21:70:da:ae:37Starten Sie die drahtlose Schnittstelle, aber ohne
eine IP-Adresse zu setzen:&prompt.root; ifconfig wlan0 create wlandev iwn0 ssid my_router upStellen Sie sicher, dass die
bge0-Schnittstelle aktiv ist.
Erstellen Sie die &man.lagg.4;-Schnittstelle mit
bge0 als Master und
wlan0 als Failover:&prompt.root; ifconfig bge0 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0Die virtuelle Schnittstelle sollte in etwa so
aussehen:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:21:70:da:ae:37
media: Ethernet autoselect
status: active
laggproto failover
laggport: wlan0 flags=0<>
laggport: bge0 flags=5<MASTER,ACTIVE>Starten Sie dann den DHCP-Client,
um eine IP-Adresse zu erhalten:&prompt.root; dhclient lagg0Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf hinzu:ifconfig_bge0="up"
wlans_iwn0="wlan0"
ifconfig_wlan0="WPA"
create_args_wlan0="wlanaddr 00:21:70:da:ae:37"
cloned_interfaces="lagg0"
ifconfig_lagg0="up laggproto failover laggport bge0 laggport wlan0 DHCP"Plattenloser Betrieb mit PXEJean-FrançoisDockèsAktualisiert von AlexDupreReorganisiert und erweitert von plattenloser Arbeitsplatzplattenloser BetriebDas &intel; Preboot eXecution Environment
(PXE) erlaubt es dem Betriebssystem über das
Netzwerk zu starten. Zum Beispiel kann ein &os;-System, ohne
lokale Festplatte, über das Netzwerk gestartet und betrieben
werden. Die Dateisysteme werden dabei über einen
NFS-Server eingehangen.
PXE-Unterstützung steht in der Regel im
BIOS zur Verfügung. Um
PXE beim Systemstart zu verwenden, müssen Sie
im BIOS des Rechners die Option Über
das Netzwerk starten aktivieren. Alternativ können
Sie während der PC-Initialisierung auch eine Funktionstaste
drücken.Um die notwendigen Dateien für ein Betriebssystem für den
Start über das Netzwerk bereitzustellen, benötigt ein
PXE-Setup einen richtig konfigurierten
DHCP-, TFTP- und
NFS-Server, wobei:Die initialen Parameter, wie
IP-Adresse, Dateiname und Speicherort
der ausführbaren Bootdateien, Servername sowie Root-Pfad
vom DHCP-Server bezogen werden.Der Loader für das Betriebssystem über
TFTP gestartet wird.Die Dateisysteme über
NFS geladen werden.Sobald das Gastsystem über PXE startet,
erhält es vom DHCP-Server Informationen, wo
der initiale Bootloader per TFTP zu bekommen
ist. Nachdem das Gastsystem diese Informationen erhalten hat,
lädt es den Bootloader über TFTP herunter und
führt diesen anschließend aus. In &os; ist
/boot/pxeboot der Bootloader. Nachdem
/boot/pxeboot ausgeführt und der
&os;-Kernel geladen wurde, wird mit dem Rest der
&os;-Bootsequenz, wie in beschrieben,
fortgefahren.Dieser Abschnitt beschreibt, wie Sie diese Dienste auf
einem &os;-System so konfigurieren, sodass andere Systeme &os;
über PXE starten können. Weitere
Informationen finden Sie in &man.diskless.8;.Wie beschrieben, ist das System, welches diese Dienste
bereitstellt, unsicher. Daher sollte es in einem
geschützten Bereich des Netzwerks aufgestellt und von
anderen Hosts als nicht vertrauenswürdig eingestuft
werden.Konfiguration der
PXE-UmgebungCraigRodrigues
rodrigc@FreeBSD.org
Beigetragen von Die in diesem Abschnitt dargestellten Schritte
konfigurieren die in &os; enthaltenen NFS-
und TFTP-Server. Der folgende Abschnitt
beschreibt die Installation und Konfiguration des
DHCP-Servers. In diesem Beispiel verwenden
wir /b/tftpboot/FreeBSD/install, welches
die Dateien für PXE-Benutzer enthält. Es
ist wichtig, dass dieses Verzeichnis existiert und das der
gleiche Verzeichnisname ebenfalls in
/etc/inetd.conf und
/usr/local/etc/dhcpd.conf gesetzt
wird.Erstellen Sie das Root-Verzeichnis, welches eine
&os;-Installation enthält und über NFS
eingehangen werden kann:&prompt.root; export NFSROOTDIR=/b/tftpboot/FreeBSD/install
&prompt.root; mkdir -p ${NFSROOTDIR}Aktivieren Sie den NFS-Server,
indem Sie folgende Zeile in
/etc/rc.conf hinzufügen:nfs_server_enable="YES"Exportieren Sie das Root-Verzeichnis über
NFS, indem Sie folgende Zeile in
/etc/exports hinzufügen:/b -ro -alldirsStarten Sie den NFS-Server:&prompt.root; service nfsd startAktivieren Sie &man.inetd.8;, indem Sie folgende Zeile
in /etc/rc.conf hinzufügen:inetd_enable="YES"Kommentieren Sie die folgende Zeile in
/etc/inetd.conf aus, indem Sie
sicherstellen, dass die Zeile nicht mit einem
#-Zeichen beginnt:tftp dgram udp wait root /usr/libexec/tftp tftp -l -s /b/tftpbootEinige PXE-Versionen benötigen
die TCP-Version von
TFTP. In diesem Fall können Sie
die zweite tftp-Zeile, welche
stream tcp enthält,
auskommentieren.Starten Sie &man.inetd.8;:&prompt.root; service inetd startErstellen Sie einen neues Basissystem und einen
&os;-Kernel. Detaillierte Anweisungen hierzu finden Sie
im :&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernelInstallieren Sie &os; in das Verzeichnis, welches über
NFS eingehangen ist:&prompt.root; make installworld DESTDIR=${NFSROOTDIR}
&prompt.root; make installkernel DESTDIR=${NFSROOTDIR}
&prompt.root; make distribution DESTDIR=${NFSROOTDIR}Testen Sie den TFTP-Server und
vergewissern Sie sich, dass Sie den Bootloader
herunterladen können, der über PXE
bereitgestellt wird:&prompt.root; tftp localhost
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsBearbeiten Sie
${NFSROOTDIR}/etc/fstab und
erstellen Sie einen Eintrag, um das Root-Dateisystem
über NFS einzuhängen:# Device Mountpoint FSType Options Dump Pass$
myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0Ersetzen Sie
myhost.example.com durch den
Hostnamen oder die IP-Adresse des
NFS-Servers. In diesem Beispiel wird
das Root-Dateisystem schreibgeschützt eingehangen, um
ein potenzielles Löschen des Inhalts durch die
NFS-Clients zu verhindern.Setzen Sie das root-Passwort in der
PXE-Umgebung für Client-Maschinen, die
über PXE starten:&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; passwdFalls erforderlich, aktivieren Sie &man.ssh.1;
root-Logins für Client-Maschinen, die über
PXE starten, indem Sie die
Option PermitRootLogin in
${NFSROOTDIR}/etc/ssh/sshd_config
aktivieren. Dies ist in &man.sshd.config.5;
dokumentiert.Führen Sie alle weiteren Anpassungen der
PXE-Umgebung in ${NFSROOTDIR} durch,
wie zum Beispiel die Installation weiterer Pakete, oder
dass Bearbeiten der Passwortdatei mit &man.vipw.8;.Booten Sie von einem NFS-Root-Volume,
so erkennt /etc/rc dies und startet
daraufhin das /etc/rc.initdiskless
Skript. Lesen Sie die Kommentare in diesem Skript um zu
verstehen, was dort vor sich geht. Weil das
NFS-Root-Verzeichnis schreibgeschützt ist,
wir aber Schreibzugriff für /etc und
/var benötigen, müssen wir diese
Verzeichnisse über Speicher-Dateisysteme (memory backed file
system) einbinden.&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; mkdir -p conf/base
&prompt.root; tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc
&prompt.root; tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip varKonfiguration des
DHCP-ServersDHCPplattenloser BetriebDer DHCP-Server muss nicht auf
derselben Maschine laufen wie der TFTP- und
NFS-Server, aber er muss über das Netzwerk
erreichbar sein.DHCP ist nicht Bestandteil des &os;
Basissystems, kann jedoch über den Port
net/isc-dhcp43-server oder als Paket
nachinstalliert werden.Einmal installiert, bearbeiten Sie die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf.
Konfigurieren Sie die next-server,
filename und root-path
Einstellungen, wie in diesem Beispiel zu sehen ist:subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.3;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option domain-name-servers 192.168.35.35, 192.168.35.36;
option domain-name "example.com";
# IP address of TFTP server
next-server 192.168.0.1;
# path of boot loader obtained via tftp
filename "FreeBSD/install/boot/pxeboot";
# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/";
}Die Anweisung next-server wird benutzt,
um die IP-Adresse des
TFTP-Servers anzugeben.Die Anweisung filename definiert den
Pfad zu /boot/pxeboot. Da hier der
relative Dateiname verwendet wird, bedeutet das, dass
/b/tftpboot nicht im Pfad enthalten
ist.Die Option root-path bestimmt den
Pfad zum NFS root-Dateisystem.Sobald die Änderungen gespeichert werden, aktivieren
Sie DHCP beim Systemstart, indem Sie die
folgende Zeile in /etc/rc.conf
hinzufügen:dhcpd_enable="YES"Starten Sie anschließend den
DHCP-Dienst:&prompt.root; service isc-dhcpd startFehlersuche bei PXE ProblemenSobald alle Dienste konfiguriert und gestartet wurden,
sollten PXE-Clients in der Lage sein, &os;
automatisch über das Netzwerk zu starten. Wenn ein
bestimmter Client beim hochfahren keine Verbindung herstellen
kann, sehen Sie im BIOS nach, ob die Option
für den Start über das Netzwerk konfiguriert ist.Dieser Abschnitt gibt einige Tipps zu Fehlerbehebung und
zeigt, wie Sie Konfigurationsprobleme eingrezen können für
den Fall, dass PXE-Clients nicht in der
Lage sind über das Netzwerk zu starten.Benutzen Sie den net/wireshark Port
um Fehler im Netzwerkverkehr während des Bootvorgangs von
PXE zu finden. Der Bootvorgang wird im
folgenden Diagramm schematisch dargestellt.Schauen Sie in /var/log/xferlog
auf dem TFTP-Server und vergewissern
Sie sich, dass die pxeboot-Datei von
der richtigen Adresse heruntergeladen wurde. Um die obige
Konfiguration von
/usr/local/etc/dhcpd.conf zu testen,
geben Sie folgendes ein:&prompt.root; tftp 192.168.0.1
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsWeitere Informationen finden Sie in &man.tftpd.8; und
&man.tftp.1;. Die BUGS-Sektionen dieser
Seiten dokumentieren einige Einschränkungen von
TFTP.Achten Sie darauf, dass Sie das Root-Dateisystem über
NFS einhängen können. Auch hier können
Sie Ihre Einstellungen aus
/usr/local/etc/dhcpd.conf wie folgt
testen:&prompt.root; mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mntIPv6AaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von BradDavisErweitert von IPv6 ist die neueste Version des
bekannten IP-Protokolls, das auch als
IPv4 bezeichnet wird.
IPv6 bietet gegenüber IPv4
mehrere Vorteile sowie viele neue Funktionen:IPv6 hat einen 128 Bit großen
Adressraum, der
340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
erlaubt. Dies behebt das Problem der immer knapper
werdenden IPv4-Adressen und einer
eventuellen Erschöpfung des
IPv4-Adressraums.Router speichern nur noch Netzwerk-Aggregationsadressen
in ihren Routingtabellen. Dadurch reduziert sich die
durchschnittliche Größe einer Routingtabelle auf
8192 Einträge. Dies ist mit den Problemen bei der
Skalierbarkeit von IPv4 verbunden, da
jeder zugeordnete Block von IPv4-Adressen
erfordert, dass Routing-Informationen zwischen vielen
Routern im Internet ausgetauscht werden müssen. Die
Routing-Tabellen wurden mit der Zeit so groß, dass ein
effizientes Routing jetzt kaum noch möglich ist.Die automatische Konfiguration von Adressen, die im
RFC2462 beschrieben wird.Verpflichtende Multicast-Adressen.Integriertes IPsec
(IP-Security).Eine vereinfachte Headerstruktur.Unterstützung für mobile
IP-Adressen.Die Umwandlung von IPv4- in
IPv6-Adressen.&os; enthält die IPv6-Referenzimplementation von KAME und erfüllt
damit bereits alle für die Nutzung von IPv6
nötigen Voraussetzungen. Dieser Abschnitt konzentriert sich
auf die Konfiguration und den Betrieb von
IPv6.Hintergrundinformationen zu
IPv6-AdressenEs gibt verschiedene Arten von
IPv6-Adressen:UnicastEin Paket, das an eine Unicast-Adresse gesendet
wird, kommt nur an der Schnittstelle an, die dieser
Adresse zugeordnet ist.AnycastAnycast-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.MulitcastMulticast-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.Die kanonische Form einer IPv6-Adresse
lautet x:x:x:x:x:x:x:x, wobei jedes
x für einen 16-Bit-Hexadezimalwert steht. 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. 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 IPv4-Notation.
2002::10.0.0.1 ist also 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.Benutzen Sie &man.ifconfig.8;, um die
IPv6-Adresse eines &os;-Systems
anzuzeigen:&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
wird im Rahmen der automatischen Konfiguration aus der
MAC-Adresse erzeugt.Einige IPv6-Adressen sind reserviert.
Eine Zusammenfassung dieser Adressen finden Sie in
:
Reservierte IPv6-AdressenIPv6-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 sind die kompatiblen
IPv4-Adressen.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete
IPv4-Adresse.Die niedrigen 32 Bit sind
IPv4-Adressen für Hosts, die kein
IPv6 unterstützen.fe80::/1010 Bitlink-localEntspricht 196.254.0.0/16 bei
IPv4.fc00::/77 Bitunique-localDiese einzigartigen Adressen sind für die lokale
Kommunikation bestimmt und werden nur innerhalb von
abgegrenzten Standorten
(Sites)
weitergeleitet.ff00::8 BitMulticast2000::-3fff:: 3 BitGlobaler UnicastAlle globalen Unicast-Adressen stammen aus diesem
Pool. Die ersten 3 Bit lauten
001.
Weitere Informationen zum Aufbau von
IPv6-Adressen finden Sie im
RFC3513.IPv6 konfigurierenUm ein &os;-System als IPv6-Client zu
konfigurieren, fügen Sie folgende Zeile in
/etc/rc.conf ein:ifconfig_rl0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"Die erste Zeile ermöglicht der angegebenen Schnittstelle,
Router-Solicitation-Nachrichten zu empfangen. Die zweite
Zeile aktiviert den Router-Solicitation-Daemon
&man.rtsold.8;.Falls die Schnittstelle eine statisch zugewiesene
IPv6-Adresse benötigt, fügen Sie einen
Eintrag mit der statischen Adresse und dem zugehörigen
Präfix für das Subnetz hinzu:ifconfig_rl0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"Um einen Standardrouter festzulegen, fügen Sie die
Adresse hinzu:ipv6_defaultrouter="2001:db8:4672:6565::1"Verbindung zu einem Provider aufbauenUm sich mit anderen IPv6-Netzwerken
zu verbinden, benötigen Sie einen Provider oder einen
Tunnel, der IPv6 unterstützt:Fragen Sie einen Internetprovider, ob er
IPv6 anbietet.Hurricane
Electric bietet weltweit
IPv6-Tunnelverbindungen an.Die Verwendung des Ports
/usr/ports/net/freenet6 für
Einwahlverbindungen.Dieser Abschnitt beschreibt, wie Sie die Anweisungen
eines Tunnel-Providers dauerhaft in
/etc/rc.conf einrichten.Der erste Eintrag in /etc/rc.conf
erzeugt die generische Tunnelschnittstelle
gif0:cloned_interfaces="gif0"Als nächstes konfigurieren Sie die
IPv4-Adressen der lokalen und entfernten
Endpunkte. Ersetzen Sie
MY_IPv4_ADDR und
REMOTE_IPv4_ADDR durch die
tatsächlichen IPv4-Adressen:cloned_interfaces_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Um die zugewiesene IPv6-Adresse als
Endpunkt für den IPv6-Tunnel zu
verwenden, fügen Sie folgende Zeile für
&os; 9.x (und neuer)
ein:ifconfig_gif0_ipv6="inet6 MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Legen Sie dann die Standardroute für das andere Ende
des IPv6-Tunnels fest. Ersetzen Sie
MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR
mit der Adresse des Standard-Gateways des Providers:ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Wenn das &os;-System IPv6-Verkehr
zwischen dem Netzwerk und der Außenwelt routen muss,
aktivieren Sie das Gateway mit dieser Zeile:ipv6_gateway_enable="YES"Bekanntmachung von Routen und automatische
RechnerkonfigurationDieser Abschnitt beschreibt die Einrichtung von
&man.rtadvd.8;, das Sie bei der Bekanntmachung der
IPv6-Standardroute unterstützt.Um &man.rtadvd.8; zu aktivieren, fügen Sie folgende
Zeile in /etc/rc.conf ein:rtadvd_enable="YES"Es ist wichtig, die Schnittstelle anzugeben, über die
IPv6-Routen bekanntgemacht werden sollen.
Soll &man.rtadvd.8; rl0 verwenden, ist
folgender Eintrag nötig:rtadvd_interfaces="rl0"Danach erzeugen Sie die Konfigurationsdatei
/etc/rtadvd.conf. Dazu ein
Beispiel:rl0:\
:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:Ersetzen Sie dabei fxp0 durch die zu
verwendende Schnittstelle, und
2001:db8:1f11:246:: durch das
entsprechend zugewiesene Präfix.Bei einem /64-Subnetz müssen keine
weiteren Anpassungen vorgenommen werden. Anderenfalls muss
prefixlen# auf den korrekten Wert
gesetzt werden.IPv6 und Abbildung von
IPv6-AdressenWenn IPv6 auf einem Server aktiviert
ist, kann es für die Kommunikation erforderlich sein,
IPv4-Adressen auf
IPv6-Adressen abzubilden. Diese
Kompatibilität erlaubt es, das
IPv4-Adressen als
IPv6-Adressen dargestellt werden. Die
Kommunikation von IPv6-Anwendungen mit
IPv4 und umgekehrt kann jedoch ein
Sicherheitsrisiko darstellen.Diese Option dient nur der Kompatibilität und wird in
den meisten Fällen nicht erforderlich sein. Die Option
ermöglicht es IPv6-Anwendungen zusammen
mit IPv4 in einer Dual-Stack-Umgebung
zu funktionieren. Dies ist besonders nützlich für
Anwendungen von Drittanbietern, die evtl. keine
IPv6-Umgebungen unterstützen. Um diese
Funktion zu aktivieren, fügen Sie folgendes in
/etc/rc.conf hinzu:ipv6_ip4mapping="YES"Für einige Administratoren können die Informationen im
RFC 3493 (Sektion 3.6 und 3.7) und
RFC 4038 (Sektion 4.2) hilfreich
sein.Common Address Redundancy Protocol
(CARP)TomRhodesBeigetragen von AllanJudeAktualisiert von CARPCommon Address Redundancy ProtocolDas Common Address Redundancy Protocol
(CARP) erlaubt es, mehreren Rechnern die
gleiche IP-Adresse und
Virtual Host ID
(VHID) zuzuweisen und
Hochverfügbarkeit bereitzustellen. Das
bedeutet, dass ein oder mehrere Rechner ausfallen können und die
anderen Rechner transparent einspringen, ohne dass die Benutzer
etwas von einem Ausfall mitbekommen.Neben der gemeinsamen IP-Adresse, haben
die jeweiligen Rechner auch eine eindeutige
IP-Adresse zur Verwaltung und Konfiguration.
Alle Maschinen, die sich eine IP-Adresse
teilen, verwenden die gleiche VHID. Die
VHID für jede einzelne
IP-Adresse muss, entsprechend der
Broadcast-Domäne der Netzwerkschnittstelle, eindeutig
sein.Hochverfügbarkeit mit CARP ist in &os;
enthalten, jedoch unterscheidet sich die Konfiguration von der
eingesetzten &os;-Version. Dieser Abschnitt enthält die
gleichen Konfigurationsdateien für verschiedene Versionen von
&os;.Dieses Beispiel konfiguriert eine Failover-Unterstützung mit
drei Servern (mit jeweils eigener, eindeutiger
IP-Adresse), die alle den gleichen
Web-Inhalt anbieten. Es werden zwei verschiedene Master namens
hosta.example.org und
hostb.example.org benutzt, mit einem
gemeinsamen Backup namens
hostc.example.org.Die Lastverteilung dieser Maschinen wird dabei über
Round Robin
DNS konfiguriert. Mit Ausnahme des
Hostnamens und der IP-Management-Adresse sind
Master- und Backup-Maschinen identisch konfiguriert. Die Server
müssen die gleiche Konfiguration und die gleichen Dienste
aktiviert haben. Tritt ein Failover auf, können Anfragen an den
Dienst mit der gemeinsam genutzten IP-Adresse
nur dann richtig beantwortet werden, wenn der Backup-Server
Zugriff auf denselben Inhalt hat. Die Backup-Maschine verfügt
über zwei zusätzliche CARP-Schnittstellen,
eine für jede IP-Adresse des
Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt
der Backup-Server die IP-Adresse des
ausgefallenen Master-Servers.CARP mit &os; 10 (und neuer)
benutzenUnterstützung für CARP erhalten Sie
durch das Laden des Kernelmoduls carp.ko
in /boot/loader.conf:carp_load="YES"So laden Sie das Modul ohne Neustart:&prompt.root; kldload carpBenutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
beschrieben, neu gebaut
werden:device carpHostname, IP-Management-Adresse,
Subnetzmaske, gemeinsame IP-Adresse und
VHID werden durch Einträge in
/etc/rc.conf gesetzt. Dieses Beispiel
ist für hosta.example.org:hostname="hosta.example.org"
ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 pass testpass alias 192.168.1.50/32"Die nächsten Einträge sind für
hostb.example.org. Da der Rechner
einen zweiten Master darstellt, verwendet er eine andere
gemeinsame IP-Adresse und
VHID. Die mittels
angegebenen Passwörter müssen jedoch identisch sein, da
CARP nur mit Systemen kommuniziert,
die über das richtige Passwort verfügen.hostname="hostb.example.org"
ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 2 pass testpass alias 192.168.1.51/32"Die dritte Maschine,
hostc.example.org ist so
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt. Diese Maschine ist mit
zwei CARP VHIDs
konfiguriert, eine für jede virtuelle
IP-Adresse der beiden Master-Server. Die
CARP advertising skew,
wird gesetzt, um sicherzustellen,
dass sich der Backup-Server später ankündigt wie der
Master-Server, da die Rangfolge
steuert für den Fall, dass mehrere Backup-Server zur Verfügung
stehen.hostname="hostc.example.org"
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32"
ifconfig_em0_alias1="inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32"Durch die beiden konfigurierten CARP
VHIDs ist
hostc.example.org in der Lage
festzustellen, wenn einer der Master-Server nicht mehr
reagiert. Wenn der Master-Server sich später ankündigt als
der Backup-Server, übernimmt der Backup-Server die gemeinsame
IP-Adresse, bis der Master-Server erneut
verfügbar ist.Preemption ist
standardmäßig deaktiviert. Wird
Preemption aktiviert, kann es
vorkommen, dass hostc.example.org die
virtuelle IP-Adresse nicht wieder an den
Master-Server zurückgibt. Der Administrator kann jedoch den
Backup-Server dazu zwingen, die übernommene
IP-Adresse wieder an den Master-Server
zurückzugeben:&prompt.root; ifconfig em0 vhid 1 state backupSobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
Hochverfügbarkeit ist nun aktiviert.Die Funktionalität von CARP kann, wie
in der Manualpage &man.carp.4; beschrieben, über verschiedene
&man.sysctl.8; Parameter kontrolliert werden. Mit dem Einsatz
von &man.devd.8; können weitere Aktionen zu
CARP-Ereignissen ausgelöst werden.CARP mit &os; 9 (und älter)
benutzenDie Konfiguration für diese Versionen von &os; ist ähnlich
wie im vorhergehenden Abschnitt beschrieben, mit der Ausnahme,
dass zuerst ein CARP-Gerät in der
Konfiguration erstellt und bezeichnet werden muss.Unterstützung für CARP erhalten Sie
durch das Laden des Kernelmoduls carp.ko
in /boot/loader.conf:if_carp_load="YES"So laden Sie das Modul ohne Neustart:&prompt.root; kldload carpBenutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
beschrieben, neu gebaut
werden:device carpAls nächstes erstellen Sie auf jedem Rechner eine
CARP-Schnittstelle:&prompt.root; ifconfig carp0 createKonfigurieren Sie Hostnamen,
IP-Management-Adresse, die gemeinsam
genutzte IP-Adresse und die
VHID, indem Sie die erforderlichen Zeilen
in /etc/rc.conf hinzufügen. Da anstelle
eines Alias eine virtuelles CARP-Gerät
verwendet wird, wird die tatsächliche Subnetzmaske
/24 anstatt /32 benutzt.
Hier sind die Einträge für
hosta.example.org:hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass192.168.1.50/24"Beispiel für
hostb.example.org:hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass192.168.1.51/24"Die dritte Maschine,
hostc.example.org ist so
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt:hostname="hostc.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass192.168.1.51/24"Preemption ist im
GENERIC-Kernel deaktiviert. Haben Sie
jedoch Preemption in einem
angepassten Kernel aktiviert, dass
hostc.example.org die virtuelle
IP-Adresse nicht wieder an den
Master-Server zurückgibt. Der Administrator kann jedoch den
Backup-Server dazu zwingen, die übernommene
IP-Adresse wieder an den Master-Server
zurückzugeben:&prompt.root; ifconfig carp0 down && ifconfig carp0 upDieser Befehl muss auf dem
carp-Gerät ausgeführt werden, dass dem
betroffenen System zugeordnet ist.Sobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
Hochverfügbarkeit ist nun aktiviert.VLANsVLANsVirtuelle LANsVLANs sind eine Möglichkeit ein Netzwerk
in viele Subnetze zu unterteilen. Jedes Subnetz hat seine
eigene Broadcast-Domäne und ist von den restlichen
VLANs isoliert.Unter &os; müssen VLANs vom Treiber der
Netzwerkkarte unterstützt werden. &man.vlan.4; enthält eine
Liste von Treibern mit integrierter
VLAN-Unterstützung.Für die Konfiguration eines VLAN werden
zwei Informationen benötigt: die verwendete
Netzwerkschnittstelle und das
VLAN-Tag.Das folgende Kommando konfiguriert ein
VLAN mit der Netzwerkschnittstelle
em0 und dem VLAN-Tag
5:&prompt.root; ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24In diesem Beispiel fällt auf, dass der Name der
Schnittstelle den Treibernamen und das
VLAN-Tag enthält, getrennt durch
einen Punkt. Diese Methode hat sich bewährt, da sie die
Konfiguration von Systemen mit mehreren
VLANs deutlich erleichtert.Um VLANs beim Booten zu konfigurieren,
muss /etc/rc.conf angepasst werden. Für
das obige Beispiel müssten folgende Zeilen in die Konfiguration
aufgenommen werden:vlans_em0="5"
ifconfig_em0_5="inet 192.168.20.20/24"Das gleiche Schema kann benutzt werden, um weitere
VLANs hinzuzufügen.
Index: head/de_DE.ISO8859-1/books/handbook/desktop/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/desktop/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/desktop/chapter.xml (revision 51222)
@@ -1,1189 +1,1189 @@
Desktop-AnwendungenÜbersichtObwohl &os; wegen seiner Leistung und Stabilität vor allem
auf Serversystemen sehr beliebt ist, so ist es auch für den
täglichen Einsatz als Desktop geeignet. Mit über &os.numports;
Anwendungen, die als Pakete oder Ports vorliegen, ist es leicht
einen individuellen Desktop zu bauen, auf dem eine Vielzahl von
Desktop-Anwendungen laufen. Dieses Kapitel zeigt, wie Sie die
zahlreichen Desktop-Anwendungen, wie Web-Browser, Office-Pakete,
Dokumentbetrachter und Finanzsoftware, installieren
können.Benutzer die es vorziehen eine vorkonfigurierte
Desktop-Version von &os; zu installieren, anstatt das
System von Grund auf zu konfigurieren, sollten sich die
trueos.org Website
ansehen.Bevor Sie dieses Kapitel lesen, sollten Sie wissen:wie zusätzliche Anwendungen als Paket oder aus der
Ports-Sammlung installiert werden. Dies wird in
beschrieben.wie X und ein Window-Manager installiert wird. Dies
wird in beschrieben.Informationen zur Konfiguration von Multimedia-Anwendungen
finden Sie in .BrowserBrowserWeb&os; besitzt keinen vorinstallierten Browser, stattdessen
enthält das www-Verzeichnis
+ xlink:href="https://www.FreeBSD.org/ports/www.html">www-Verzeichnis
der Ports-Sammlung viele Browser, die als Paket oder aus der
Ports-Sammlung installiert werden können.Die Desktop-Umgebungen KDE und
GNOME verfügen über eigene
HTML-Browser. Weitere Informationen zur Einrichtung dieser
Umgebungen finden Sie in .Besonders schlanke Browser sind
www/dillo2,
www/links und
www/w3m.Dieser Abschnitt demonstriert, wie die folgenden gängigen
Webbrowser installiert werden, sowie den Ressourcenbedarf, den
Installationsaufwand beim Übersetzen des Ports, oder ob die
Anwendung wichtige Abhängigkeiten benötigt.AnwendungRessourcenbedarfInstallationsaufwand aus den PortsAnmerkungenFirefoxmittelhoch&os;, &linux; und lokalisierte Versionen sind
verfügbarOperaniedrigniedrigEs gibt eine &os;- und eine Linux-Version.
Die Linux-Version hängt von der
Linux-Kompatibilität (Linux
Binary Compatibility) und
linux-openmotif ab.KonquerormittelhochBenötigt
KDE-BiliothekenChromiummittelhochBenötigt Gtk+FirefoxFirefoxFirefox ist ein Open-Source
Browser, der vollständig auf
&os; portiert wurde. Er bietet eine dem HTML-Standard
konforme Anzeige, Browserfenster als Tabs, Blockierung von
Pop-up-Fenstern, Erweiterungen, verbesserte Sicherheit und
mehr. Firefox basiert auf der
Mozilla Codebasis.Installieren Sie das Paket der aktuellen Release-Version
von Firefox:&prompt.root; pkg install firefoxUm stattdessen die Extended Support Release (ESR) Version
zu installieren, benutzen Sie:&prompt.root; pkg install firefox-esrLokalisierte Versionen finden Sie in
www/firefox-i18n und
www/firefox-esr-i18n.Alternativ kann auch die Ports-Sammlung verwendet werden,
um die gewünschte Version von
Firefox aus dem Quellcode zu
installieren. Dieses Beispiel baut
www/firefox, wobei sich
firefox durch die ESR oder die
lokalisierte Version ersetzen lässt.&prompt.root; cd /usr/ports/www/firefox
&prompt.root; make install cleanFirefox und das &java;-PluginDie Installation von Firefox
enthält keine Unterstützung für &java;.
java/icedtea-web stellt ein freies
Webbrowser-Plugin für die Ausführung von Java-Applets zur
Verfügung. Dieses Plugin kann als Paket installiert mit dem
folgenden Befehl installiert werden:&prompt.root; pkg install icedtea-webAlternativ können Sie das Plugin aus der Ports-Sammlung
bauen:&prompt.root; cd /usr/ports/java/icedtea-web
&prompt.root; make install cleanVerwenden Sie die Standardoptionen beim Übersetzen des
Ports.Starten Sie nun Firefox. Geben
Sie in der Adresszeile about:plugins ein
und bestätigen Sie die Eingabe mit Enter.
Dadurch wird eine Seite geöffnet, die alle installierten
Plugins auflistet. In dieser Liste sollte sich auch das
&java;-Plugin befinden.Wird das Plugin nicht gefunden, muss für jeden Benutzer
der folgende Befehl ausgeführt werden:&prompt.user; ln -s /usr/local/lib/IcedTeaPlugin.so \
$HOME/.mozilla/plugins/Firefox und das &adobe; &flash;-PluginFlashEin natives &adobe; &flash;-Plugin ist für &os; nicht
verfügbar. Es existiert jedoch ein Software-Layer
(Wrapper), der es erlaubt
die &linux;-Version des Plugins unter &os; einzusetzen.
Dieser Wrapper bietet auch Unterstützung für weitere
Webbrowser-Plugins wie zum Beispiel &realplayer;.Führen Sie die folgenden Schritte aus, um das Plugin
zu installieren und zu aktivieren:Installieren Sie den Port
www/nspluginwrapper. Aus
lizenzrechtlichen Gründen ist ein Paket nicht
verfügbar. Dieser Port benötigt
emulators/linux_base-c6.Installieren Sie den Port
www/linux-flashplayer. Aus
lizenzrechtlichen Gründen ist ein Paket nicht
verfügbar.Bevor das Plugin verwendet werden kann, muss der
Benutzer zunächst das folgende Kommando aufrufen:&prompt.user; nspluginwrapper -v -a -iNach einem Update von &flash; muss der Benutzer
folgendes eingeben:&prompt.user; nspluginwrapper -v -a -uStarten Sie den Browser und geben Sie in der Adresszeile
about:plugins ein. Diese Eingabe muss mit
Enter bestätigt werden. Dadurch wird eine
Seite geladen, die alle installierten Plugins
auflistet.Firefox und das Swfdec &flash;-PluginSwfdec ist die Bibliothek zum
Dekodieren und Rendern von &flash; Animationen.
Swfdec-Mozilla ist ein Plugin für
Firefox-Browser, welches die
Swfdec-Bibliothek zum Abspielen von SWF-Dateien
benutzt.Um das Paket zu installieren:&prompt.root; pkg install swfdec-pluginWenn das Paket nicht verfügbar ist, kann es auch
über die Ports-Sammlung gebaut und installiert werden:&prompt.root; cd /usr/ports/www/swfdec-plugin
&prompt.root; make install cleanStarten Sie den Browser neu, damit das Plugin aktiviert
wird.OperaOperaOpera ist ein vollwertiger und
standardkonformer Browser, der zudem relativ klein und
schnell ist. Es enthält einen eingebauten E-Mail- und
Newsreader, einen IRC-Client, einen RSS/Atom-Feeds-Reader,
sowie weitere Programme. Opera ist
als native Version für &os;, oder als &linux;-Version
verfügbar.Der folgende Befehl installiert die &os;-Version von
Opera. Ersetzen Sie
opera durch linux-opera,
wenn Sie stattdessen die &linux;-Version installieren
wollen.&prompt.root; pkg install operaAlternativ können Sie beide Versionen über die
Ports-Sammlung installieren. Dieses Beispiel übersetzt die
native Version:&prompt.root; cd /usr/ports/www/opera
&prompt.root; make install cleanWenn Sie die &linux;-Version des Browsers verwenden
wollen, ersetzen Sie opera durch
linux-opera.Um &adobe; &flash;-Plugin Unterstützung zu installieren,
übersetzten Sie zunächst den Port
www/linux-c6-flashplugin11. Ein Paket
ist aus lizenzrechtlichen Gründen nicht verfügbar.
Installieren Sie anschließend
www/opera-linuxplugins.
Dieses Beispiel übersetzt beides aus der
Ports-Sammlung:&prompt.root; cd /usr/ports/www/linux-c6-flashplugin11
&prompt.root; make install clean
&prompt.root; cd /usr/ports/www/opera-linuxplugins
&prompt.root; make install cleanUm die Existenz des Plugins zu überprüfen, starten Sie den
Browser und geben Sie in der Adresszeile
about:plugins ein. Diese Eingabe muss mit
Enter bestätigt werden. Dadurch wird eine
Seite geladen, die alle installierten Plugins
auflistet.Um das &java;-Plugin zu
installieren, folgen Sie den Anweisungen in
.KonquerorKonquerorKonqueror ist mehr als nur
ein Webbrowser, da es ebenfalls Dateimanager und
Multimedia-Betrachter ist. Es ist als Paket oder Port
x11/kde4-baseapps verfügbar.Konqueror unterstützt sowohl
WebKit als auch sein eigenes KHTML. WebKit wird von vielen
modernen Browsern verwendet, einschließlich
Chromium. Um
WebKit mit Konqueror unter &os; zu
verwenden, installieren Sie das Paket oder den Port
www/kwebkitpart. Dieses Beispiel
installiert das Paket:&prompt.root; pkg install kwebkitpartAlternativ können Sie den Port installieren:&prompt.root; cd /usr/ports/www/kwebkitpart
&prompt.root; make install cleanUm WebKit in Konqueror zu
aktivieren, klicken Sie auf Settings,
Configure Konqueror. Klicken Sie auf der
Seite General das Dropdown-Menü neben
Default web browser engine und ändern
Sie KHTML auf WebKit.Konqueror kann auch
&flash;-Seiten darstellen. Wie Sie
die &flash;-Unterstützung
aktivieren, können Sie unter http://freebsd.kde.org/howtos/konqueror-flash.php
nachlesen.ChromiumChromiumChromium ist ein quelloffenes
Browserprojekt mit dem Ziel ein sicheres, schnelleres und
stabileres Surferlebnis im Web zu ermöglichen.
Chromium ermöglicht surfen mit
Tabs, Blockieren von Pop-Ups, Erweiterungen und vieles mehr.
Chromium ist das Open Source Projekt,
welches auf dem Google Chrome Webbrowser basiert.Chromium kann als Paket durch die Eingabe des folgenden Befehls installiert werden:&prompt.root; pkg install chromiumAls Alternative kann Chromium
aus dem Quellcode durch die Ports Collection übersetzt
werden:&prompt.root; cd /usr/ports/www/chromium
&prompt.root; make install cleanDie ausführbare Datei für
Chromium ist
/usr/local/bin/chrome und
nicht
/usr/local/bin/chromium.Chromium und das &java;-Plug-InDie Installation von Chromium
enthält keine Unterstützung für &java;. Um Unterstützung
für das &java;-Plugin zu installieren, folgen Sie den
Anweisungen in .Sobald Unterstützung für &java; installiert ist, starten
Sie Chromium und geben Sie
about:plugins in die Adresszeile ein.
IcedTea-Web sollte dort als eines der installierten Plugins
aufgelistet sein.Falls Chromium das IcedTea-Web
Plugin nicht anzeigt, geben Sie das folgende Kommando ein und
starten Sie den Webbrowser anschließend neu:&prompt.root; mkdir -p /usr/local/share/chromium/plugins
&prompt.root; ln -s /usr/local/lib/IcedTeaPlugin.so \
/usr/local/share/chromium/plugins/Chromium und das &adobe; &flash;-PluginDie Konfiguration von Chromium
und &adobe; &flash; ist ähnlich zur Anleitung in
. Es sollte keine weitere
Konfiguration notwendig sein, da
Chromium in der Lage ist, einige
Plugins von anderen Browsern zu benutzen.BüroanwendungenNeue Benutzer suchen oft ein komplettes Office-Paket oder
eine leicht zu bedienende Textverarbeitung. Einige graphische Oberflächen wie
KDE enthalten zwar ein Office-Paket,
diese werden unter &os; jedoch nicht standardmäßig installiert.
Unabhängig von der installierten graphischen Oberfläche können
diverse Office-Pakete jederzeit installiert werden.Dieser Abschnitt demonstriert, wie die folgenden gängigen
Büroanwendungen installiert werden, sowie den Ressourcenbedarf,
den Installationsaufwand beim Übersetzen des Ports, oder ob die
Anwendung wichtige Abhängigkeiten benötigt.AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenCalligraniedrighochKDEAbiWordniedrigniedrigGtk+ oder
GNOMEThe GimpniedrighochGtk+Apache OpenOfficehochenorm&jdk; und
MozillaLibreOfficeetwas hochenormGtk+,
KDE/
GNOME oder
&jdk;CalligraCalligraOffice-PaketeCalligraDie KDE-Gemeinschaft stellt ein Office-Paket bereit, das
auch separat von KDE eingesetzt
werden kann. Calligra umfasst
Standardkomponenten, die auch in anderen Office-Paketen
enthalten sind. Words ist
die Textverarbeitung, Sheets die
Tabellenkalkulation, mit Stage
werden Präsentationen erstellt und
Karbon ist ein
Zeichenprogramm.In &os; kann editors/calligra als Paket
oder Port installiert werden. Um das Paket zu installieren,
geben Sie folgendes ein:&prompt.root; pkg install calligraWenn das Paket nicht verfügbar ist, benutzen Sie
stattdessen die Ports-Sammlung:&prompt.root; cd /usr/ports/editors/calligra
&prompt.root; make install cleanAbiWordAbiWordAbiWord ist eine freie
Textverarbeitung, die dem Erscheinungsbild von
µsoft; Word ähnlich
ist. Das Programm ist schnell, besitzt
viele Funktionen und ist benutzerfreundlich.AbiWord kann viele Dateiformate
importieren oder exportieren, unter anderem auch propietäre
wie µsoft; .rtf.Das AbiWord-Paket installieren
Sie wie folgt:&prompt.root; pkg install abiwordSollte das Paket nicht zur Verfügung stehen, kann es über
die Ports-Sammlung installiert werden:&prompt.root; cd /usr/ports/editors/abiword
&prompt.root; make install cleanThe GIMPThe GIMPThe GIMP ist ein ausgereiftes
Bildverarbeitungsprogramm mit dem Bilder erstellt oder
retuschiert werden können. Es kann sowohl als einfaches
Zeichenprogramm oder zum retuschieren von Fotografien
benutzt werden. Das Programm besitzt eine eingebaute
Skriptsprache und es existieren sehr viele Plugins.
The GIMP kann zahlreiche Formate
lesen und speichern und stellt Schnittstellen zu Scannern und
Tablets zur Verfügung.Um das Paket zu installieren, geben Sie ein:&prompt.root; pkg install gimpBenutzen Sie alternativ die Ports-Sammlung:&prompt.root; cd /usr/ports/graphics/gimp
&prompt.root; make install cleanDie Kategorie graphics (freebsd.org/ports/graphics.html)
+ xlink:href="https://www.FreeBSD.org/ports/graphics.html">freebsd.org/ports/graphics.html)
der Ports-Sammlung enthält für
The Gimp verschiedene Plugins,
Hilfedateien und Handbücher.Apache OpenOfficeApache OpenOfficeOffice-PaketeApache OpenOfficeApache OpenOffice ist eine
Open Source Büroanwendung, die unter Leitung der Apache
Software Foundation weiterentwickelt wird. Es enthält die
typischen Anwendungen eines Office-Pakets: Textverarbeitung,
Tabellenkalkulation, Präsentation und ein Zeichenprogramm.
Die Bedienung gleicht anderen Office-Paketen und das Programm
kann zahlreiche Dateiformate importieren und exportieren. Es
gibt lokalisierte Versionen mit angepassten Menüs,
Rechtschreibkontrollen und Wörterbüchern.Die Textverarbeitung von
Apache OpenOffice speichert Dateien
im XML-Format. Dadurch wird die Verwendbarkeit der Dateien
auf anderen Systemen erhöht und die Handhabung der Daten
vereinfacht. Die Tabellenkalkulation besitzt eine
Makrosprache und eine Schnittstelle zu Datenbanken.
Apache OpenOffice läuft stabil auf
&windows;, &solaris;, &linux;, &os; und &macos; X.
Weitere Informationen über
Apache OpenOffice finden Sie auf
openoffice.org.
Spezifische Informationen für &os; finden Sie auf
porting.openoffice.org/freebsd/.Apache OpenOffice installieren
Sie wie folgt:&prompt.root; pkg install apache-openofficeNachdem das Paket installiert ist, geben Sie folgenden
ein, um Apache OpenOffice zu
starten:&prompt.user; openoffice-X.Y.Zwobei X.Y.Z die Versionsnummer
von Apache OpenOffice darstellt.
Nach dem ersten Start werden einige Fragen gestellt. Außerdem
wird im Heimatverzeichnis des Benutzers ein Verzeichnis
.openoffice.org angelegt.Falls das gewünschte Apache
OpenOffice-Paket nicht verfügbar ist,
kann immer noch der Port übersetzt werden. Es erfordert
jedoch eine Menge Plattenplatz und ziemlich viel Zeit um die
Quellen zu übersetzten.&prompt.root; cd /usr/ports/editors/openoffice-4
&prompt.root; make install cleanUm eine lokalisierte Version zu bauen, ersetzen
Sie den letzten Befehl durch:&prompt.root; make LOCALIZED_LANG=Ihre_Sprache install cleanErsetzen Sie Ihre_Sprache
durch den korrekten ISO-Code. Eine Liste der
unterstützten Codes steht in
files/Makefile.localized, die sich im
Portsverzeichnis befindet.LibreOfficeLibreOfficeoffice suiteLibreOfficeLibreOffice ist ein frei
verfügbares Office-Paket, welches von
documentfoundation.org entwickelt wird. Es mit
anderen großen Office-Paketen kompatibel und für eine Vielzahl
von Plattformen erhältlich. Es ist ein Fork von
Apache OpenOffice unter neuem Namen,
das alle Anwendungen in einem kompletten Office-Paket
enthält: Textverarbeitung, Tabellenkalkulation,
Präsentationsmanager, Zeichenprogramm,
Datenbankmanagementprogramm und ein Werkzeug zum Erstellen und
Bearbeiten von mathematischen Formeln. Das Programm steht in
verschiedenen Sprachen zur Verfügung, und die
Internationalisierung wurde auf die Oberfläche,
Rechtschreibkorrektur und die Wörterbücher ausgeweitet.Das Textverarbeitungsprogramm von
LibreOffice benutzt ein natives
XML-Dateiformat für erhöhte Portabilität und
Flexibilität. Die Tabellenkalkulation enthält eine
Makrosprache und kann mit externen Datenbanken Verbindungen
herstellen. LibreOffice ist stabil
und läuft nativ auf &windows;, &linux;, &os; und
&macos; X. Weitere Informationen zu
LibreOffice finden Sie unter
libreoffice.org.Um die englische Version von
LibreOffice als Paket zu
installieren, geben Sie folgenden Befehl ein:&prompt.root; pkg install libreofficeDie Kategorie editors (
+ xlink:href="https://www.FreeBSD.org/ports/editors.html">
freebsd.org/ports/editors.html)
der Ports-Sammlung enthält viele Lokalisierungen für
LibreOffice. Wenn Sie ein
lokalisiertes Paket installieren, ersetzen Sie
libreoffice durch den Namen des
lokalisierten Pakets.Wenn das Paket installiert ist, geben Sie folgendes
Kommando ein, um LibreOffice zu
starten:&prompt.user; libreofficeWährend des ersten Starts werden einige Fragen
gestellt. Außerdem wird im Heimatverzeichinis des Benutzers
ein Verzeichnis .libreoffice
angelegt.Falls das gewünschte
LibreOffice-Paket nicht verfügbar
ist, kann immer noch der Port übersetzt werden. Es erfordert
jedoch eine Menge Plattenplatz und ziemlich viel Zeit um die
Quellen zu übersetzten. Dieses Beispiel übersetzt die
englische Version:&prompt.root; cd /usr/ports/editors/libreoffice
&prompt.root; make install cleanUm eine lokalisierte Version zu bauen, wechseln Sie mit
cd in das Portverzeichnis der
gewünschten Sprache. Unterstützte Sprachen finden Sie in
der Kategorie editors (
+ xlink:href="https://www.FreeBSD.org/ports/editors">
freebsd.org/ports/editors.html) der
Ports-Sammlung.Anzeigen von DokumentenEinige neuere Dokumentformate, die sich aktuell großer
Beliebtheit erfreuen, können Sie sich mit den im Basissystem
enthaltenen Programmen möglicherweise nicht ansehen.
Dieser Abschnitt zeigt, wie Sie die folgenden Dokumentbetrachter
installieren können:Die nachstehenden Anwendungen werden behandelt:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenXpdfniedrigniedrigFreeTypegvniedrigniedrigXaw3dGeeqieniedrigniedrigGtk+ oder
GNOMEePDFViewniedrigniedrigGtk+OkularniedrighochKDEXpdfXpdfPDFanzeigenFür Benutzer, die einen schnellen PDF-Betrachter
bevorzugen, bietet Xpdf eine
schlanke und effiziente Alternative, die wenig Ressourcen
benötigt. Da das Programm die Standard X-Zeichensätze
benutzt, ist es nicht auf andere Toolkits angewiesen.Um das Xpdf-Paket zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install xpdfWenn das Paket nicht verfügbar ist, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/graphics/xpdf
&prompt.root; make install cleanStarten Sie nach der Installation
xpdf und aktivieren Sie das Menü
mit der rechten Maustaste.gvgvPDFanzeigenPostScriptanzeigengv kann
&postscript;- und PDF-Dokumente anzeigen. Es stammt von
ghostview ab, hat aber wegen
der Xaw3d-Bibliothek eine schönere
Benutzeroberfläche. gv besitzt
viele konfigurierbare Funktionen, wie z. B. Ausrichtung,
Papiergröße, Skalierung und Kantenglättung
(Anti-Aliasing). Fast jede
Operation kann sowohl mit der Tastatur als auch mit der Maus
durchgeführt werden.Installieren Sie das gv-Paket
wie folgt:&prompt.root; pkg install gvBenutzen Sie die Ports-Sammlung, wenn das Paket nicht zur
Verfügung steht:&prompt.root; cd /usr/ports/print/gv
&prompt.root; make install cleanGeeqieGeeqieGeeqie ist ein Fork des nicht
mehr betreuten GQview Projekts, mit
dem Ziel die Entwicklung weiter voranzutreiben und bestehende
Fehlerkorrekturen zu integrieren. Mit
Geeqie lassen sich Bilder
verwalten. Es kann unter anderem Bilder anzeigen, einen
externen Editor starten und eine Vorschau
(thumbnail) erzeugen. Zudem
beherrscht Geeqie einen
Diashow-Modus und einige grundlegende Dateioperationen, was
die Verwaltung von Bildern und das auffinden von doppelten
Dateien erleichtert. Geeqie
unterstützt Vollbild-Ansicht und Internationalisierung.Um das Geeqie-Paket zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install geeqieWenn das Paket nicht verfügbar ist, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/graphics/geeqie
&prompt.root; make install cleanePDFViewePDFViewPDFanzeigenePDFView ist ein
leichtgewichtiger PDF-Betrachter, der nur
die Gtk+- und
Poppler-Bibliotheken benötigt. Es
befindet sich derzeit noch in Entwicklung, kann aber bereits
die meisten PDF-Dateien (auch
verschlüsselte) öffnen, speichern und über
CUPS drucken.Um das Paket ePDFView zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install epdfviewBenutzen Sie die Ports-Sammlung, falls das Paket nicht
verfügbar ist:&prompt.root; cd /usr/ports/graphics/epdfview
&prompt.root; make install cleanOkularOkularPDFanzeigenOkular ist ein universeller
Dokumentbetrachter der auf KPDF
für KDE basiert. Es kann die
meisten Formate öffnen, einschließlich PDF,
&postscript;, DjVu, CHM,
XPS und ePub.Um das Paket Okular zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install okularBenutzen Sie die Ports-Sammlung, falls das Paket nicht
verfügbar ist:&prompt.root; cd /usr/ports/graphics/okular
&prompt.root; make install cleanFinanzsoftwareZur Verwaltung der persönlichen Finanzen können einige
leistungsfähige und einfach zu bedienende Anwendungen
installiert werden. Einige von ihnen unterstützen verbreitete
Formate, darunter Dateiformate, die von
Quicken
und Excel verwendet werden.Dieser Abschnitt behandelt die folgenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenGnuCashniedrighochGNOMEGnumericniedrighochGNOMEKMyMoneyniedrighochKDEGnuCashGnuCashGnuCash
ist Teil des GNOME-Projekts, mit
dem Ziel, leicht zu bedienende und leistungsfähige
Anwendungen bereitzustellen. Mit
GnuCash können Einnahmen und
Ausgaben, Bankkonten und Wertpapiere verwaltet werden. Das
Programm ist leicht zu bedienen und genügt dennoch hohen
Ansprüchen.GnuCash stellt ein Register,
ähnlich dem in einem Scheckheft und ein hierarchisches System
von Konten zur Verfügung. Eine Transaktion kann in einzelne
Teile aufgespaltet werden. GnuCash kann
Quicken-Dateien (QIF) importieren und einbinden. Weiterhin
unterstützt das Programm die meisten internationalen Formate
für Zeitangaben und Währungen. Die Bedienung des
Programms kann durch zahlreiche Tastenkombinationen und dem
automatischen Vervollständigen von Eingaben beschleunigt
werden.Das GnuCash-Paket installieren
Sie wie folgt:&prompt.root; pkg install gnucashWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/finance/gnucash
&prompt.root; make install cleanGnumericGnumericTabellenkalkulationGnumericGnumeric
ist eine Tabellenkalkulation, die von der
GNOME-Gemeinschaft entwickelt wird.
Das Programm kann Eingaben anhand des Zellenformats oder einer
Folge von Eingaben vervollständigen. Dateien verbreiteter
Formate, wie die von
Excel,
Lotus 1-2-3 oder
Quattro Pro lassen sich
importieren. Es besitzt viele eingebaute Funktionen und
Zellenformate, darunter die üblichen wie Zahl, Währung,
Datum, Zeit, und viele weitere.Installieren Sie das
Gnumeric-Paket mit
folgendem Kommando:&prompt.root; pkg install gnumericWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/math/gnumeric
&prompt.root; make install cleanKMyMoneyKMyMoneyTabellenkalkulationKMyMoneyKMyMoney
ist ein Programm zur Verwaltung der persönlichen Finanzen, das
von der KDE-Gemeinschaft entwickelt
wird. KMyMoney hat das Ziel,
wichtige Funktionen zu bieten, die auch von kommerziellen
Programmen zur Verwaltung der persönlichen Finanzen
unterstützt werden. Zudem zählen eine einfache Bedienung
sowie korrekte doppelte Buchführung zu den herausragenden
Fähigkeiten dieses Programms.
KMyMoney unterstützt den Import von
Datendateien im Format Quicken
(QIF), kann Investionen verfolgen, unterstützt verschiedene
Währungen und bietet umfangreiche Reportmöglichkeiten.Um das Paket KMyMoney zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install kmymoney-kde4Sollte das Paket nicht verfügbar sein, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/finance/kmymoney2-kde4
&prompt.root; make install clean
Index: head/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml (revision 51222)
@@ -1,1348 +1,1348 @@
EinleitungJimMockRestrukturiert, umorganisiert und Abschnitte neu
geschrieben von ÜberblickHerzlichen Dank für Ihr Interesse an &os;! Das folgende
Kapitel behandelt verschiedene Aspekte des &os; Projekts wie
dessen geschichtliche Entwicklung, seine Ziele oder das
Entwicklungsmodell.Nach dem Durcharbeiten des Kapitels wissen Sie über
folgende Punkte Bescheid:Wo &os; im Vergleich zu anderen Betriebssystemen
stehtDie Geschichte des &os; ProjektsDie Ziele des &os; ProjektsDie Grundlagen des
&os;-Open-Source-EntwicklungsmodellsUnd natürlich woher der Name &os;
kommt.Willkommen zu &os;4.4BSD-Lite&os; ist ein auf 4.4BSD-Lite basierendes Betriebssystem für
Intel (x86 und &itanium;), AMD64 und Sun &ultrasparc; Rechner.
An Portierungen zu anderen Architekturen wird derzeit
gearbeitet. Mehr zur Geschichte von &os; erfahren Sie in die Geschichte von &os; oder aus den
aktuellen
Release-Informationen. Falls Sie das &os; Projekt
unterstützen wollen (z.B. mit Quellcode, Hardware- oder
Geldspenden), lesen Sie den &os;
unterstützen Artikel.Was kann &os;?&os; 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.MehrbenutzerbetriebMehrbenutzerbetrieb
erlaubt es, viele &os;-Anwender gleichzeitig am System mit
verschiedenen Aufgaben arbeiten zu lassen. Beispielsweise
können Geräte wie Drucker oder Bandlaufwerke, die sich
nur schwerlich unter allen Anwendern des Systems oder im
Netzwerk teilen lassen, durch setzen von Beschränkungen
auf Benutzer oder Gruppen wichtige Systemressourcen vor
Überbeanspruchung geschützt werden.StarkeTCP/IP-NetzwerkfähigkeitTCP/IP-Netzwerkfähigkeit mit Unterstützung von Industriestandards wie
SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec und IPv6. Das
bedeutet, Ihr &os;-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
Internetfähig machen.SpeicherschutzSpeicherschutz stellt
sicher, dass Anwendungen (oder Anwender) sich nicht
gegenseitig stören. Stürzt eine Anwendung ab, hat das
keine Auswirkung auf andere Prozesse.Der Industriestandard
X-Window-SystemX-Window-System
(X11R7) bietet eine grafische Benutzeroberfläche
(GUI).BinärkompatibilitätLinuxBinärkompatibilitätSCOBinärkompatibilitätSVR4BinärkompatibilitätBSD/OSBinärkompatibilitätNetBSDBinärkompatibilität mit vielen auf
anderen Betriebssystemen erstellten Programmen wie Linux,
SCO, SVR4, BSDI und NetBSD.Tausende zusätzliche leicht zu
portierende Anwendungen sind über die &os;
Ports und
Paket-Sammlung verfügbar. Warum
mühselig im Netz nach Software suchen, wenn diese bereits
vorhanden ist?Tausende zusätzliche leicht zu
portierende Anwendungen sind über das
Internet zu beziehen. &os; ist Quellcode-kompatibel mit
den meisten kommerziellen &unix; Systemen. Daher
bedürfen Anwendungen häufig nur geringer oder gar keiner
Anpassung, um auf einem &os;-System zu kompilieren.Seitenweise anforderbarer virtueller
Speichervirtueller
Speicher und merged
VM/buffer cache -Entwurf bedient effektiv den
großen Speicherhunger mancher Anwendungen bei
gleichzeitigem Aufrechterhalten der Bedienbarkeit des
Systems für weitere Benutzer.SMPSymmetrisches Multi-Processing (SMP)-Unterstützung für Systeme mit mehreren
CPUs.CompilerCCompiler C++
Ein voller Satz von C und
C++ Entwicklungswerkzeugen. Viele
zusätzliche Programmiersprachen für höhere Wissenschaft
und Entwicklung sind in der Ports- und Packages-Sammlung
verfügbar.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.und viele weitere!&os; basiert auf dem 4.4BSD-Lite-4.4BSD-LiteRelease der Computer Systems Research Group
(CSRG)Computer Systems Research Group
(CSRG) der Universität von Kalifornien in Berkeley und
führt die namenhafte Tradition der Entwicklung von
BSD-Systemen fort. Zusätzlich zu der herausragenden Arbeit
der CSRG hat das &os; Projekt tausende weitere Arbeitsstunden
investiert, um das System zu verfeinern und maximale Leistung
und Zuverlässigkeit bei Alltagslast zu bieten. &os; bietet
Leistung und Zuverlässigkeit auf dem Niveau kommerzieller
Angebote, und kombiniert viele innovative Funtionen, die in
anderen Angeboten nicht verfübar sind.Die Anwendungsmöglichkeiten von &os; 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 &os; möglich. &os; 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 &os; 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 &os; laufen,
sind:Internet-Dienste: Die robuste
TCP/IP-Implementierung in &os; macht es zu einer idealen
Plattform für verschiedenste Internet-Dienste, wie zum
Beispiel:HTTP-ServerWebserver (Standard
oder mit SSL-Verschlüsselung)IPv4- und IPv6-RoutingFirewallFirewall
NATNAT
(IP-Masquerading)-GatewaysFTP-ServerFTP-ServerE-MailE-MailE-Mail
E-Mail-ServerUnd mehr...Bildung: Sind Sie
Informatikstudent oder Student eines verwandten
Studiengangs? Die praktischen Einblicke in &os; 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, deren
Hauptinteresse in einem Computer darin besteht,
andere Arbeit zu erledigen!Forschung: Mit dem frei
verfügbaren Quellcode für das gesamte System bildet &os;
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 &os; ermöglicht so die freie Verwendung,
ohne sich gross Gedanken über Lizenzbedingungen zu machen
oder aufgrund von Beschränkungen evtl. in einem offenen
Forum bestimmte Dinge nicht diskutieren zu dürfen.Netzwerkfähigkeit: Brauchen
Sie einen neuen Router?Router Oder einen Name-Server (DNS)?DNS-Server
Eine Firewall zum Schutze Ihres Intranets vor
Fremdzugriff? &os; macht aus dem in der Ecke verstaubenden
386- oder 486-PC im Handumdrehen einen leistungsfähigen
Router mit anspruchsvollen Paketfilter-Funktionen.Embedded: &os; ist eine
exzellente Plattform, um auf embedded Systemen
aufzubauen.embedded Mit der Unterstützung für die &arm;-,
&mips;- und &powerpc;-Plattformen, verbunden mit dem
robusten Netzwerkstack, aktuellen Neuerungen und der
freizügigen BSD-Lizenz
stellt &os; eine ausgezeichnete Basis für embedded
Router, Firewalls und andere Geräte dar. X-Window-SystemGNOMEKDEDesktop: &os; ist eine gute Wahl für
kostengünstige X-Terminals mit dem frei verfügbaren
X11-Server. &os; bietet die Auswahl aus vielen Open
Source Desktop Umgebungen, dazu gehören auch die
GNOME und
KDE GUIs. &os; kann sogar
plattenlos booten, was einzelne
Workstations sogar noch günstiger macht und die
Verwaltung erleichtert.Software-Entwicklung: Das
Standard-&os;-System wird mit einem kompletten Satz an
Entwicklungswerkzeugen bereitgestellt, unter anderem einem
vollständigen C/C++-Compiler und -Debugger.Compiler
Entwicklungswerkzeugen. Viele zusätzliche
Programmiersprachen für Wissenschaft und Entwicklung sind
aus der Ports- und Packages-Sammlung zu haben.&os; ist sowohl in Form von Quellcode als auch in
Binärform auf CD-ROM, DVD und über Anonymus FTP erhältlich.
Lesen Sie dazu , um weitere
Informationen zum Bezug von &os; zu erhalten.Wer verwendet &os;?AnwenderGrosse, bekannte &os;-Anwender&os;s fortgeschrittene Eigenschaften, bewährte Sicherheit
und vorhersehbare Release-Zyklen, genauso wie seine tolerante
Lizenz haben dazu geführt, dass es als Plattform zum Aufbau
vieler kommerzieller und quelloffener Geräte und Produkte
verwendet wird. Viele der weltgrössten IT-Unternehmen
benutzen &os;:Apache
Apache- Die Apache Software Foundation lässt den
Grossteil seiner der Öffentlichkeit zugänglichen
Infrastruktur, inklusive des möglicherweise grössten
SVN-Repositories der Welt mit über 1,4 Millionen Commits,
auf &os; laufen.Apple
Apple- OS X verwendet viel von &os;s eigenem
Netzwerkstack, virtuellem Dateisystem und den
Benutzerumgebungskomponenten für sein eigenes System.
Apple iOS nutzt ebenso Elemente, die es von &os;
übernommen hatCisco
Cisco- IronPort Network Sicherheits- und
Anti-Spam-Appliance verwendet einen modifizierten
&os;-Kernel.Citrix
Citrix- Die NetScaler Reihe von
Sicherheits-Appliances bietet auf den Schichten 4-7
Load-Balancing, Content Caching, Anwendungsfirewall,
gesichertes VPN und mobilen Cloud-Netzwerkzugriff, gepaart
mit der Mächtigkeit der &os;-Shell.Dell
KACE Dell KACE- Die KACE Systemmanagement-Appliances nutzen
&os; wegen seiner Zuverlässigkeit, Skalierbarkeit und
Gemeinschaft, welche deren zukünftige Weiterentwicklung
fördert.Experts
Exchange
Experts Exchange- Alle öffentlich zugänglichen Webserver
werden von &os; betrieben und machen starken Gebrauch von
Jails, ohne den Überhang von Virtualisierung, um
Entwicklungs- und Testumgebung voneinander zu
isolieren.Isilon
Isilon- Isilons
Unternehmens-Speicherappliances basieren auf &os;. Die
extrem liberale &os;-Lizenz erlaubt Isilon ihr
intellektuelles Eigentum durch den gesamten Kernel zu
integrieren und kann sich so auf das Erstellen ihres
Produktes und nicht des Betriebssystems
fokussieren.iXsystems
iXsystems- Die TrueNAS-Linie von vereinheitlichten
Speicherappliances beruht auf &os;. Zusätzlich zu deren
kommerziellen Produkten, managed iXsystems auch noch die
beiden Open Source Projekte TrueOS und FreeNAS.Juniper
Juniper- Das JunOS
Betriebssystem, welches alle Juniper Netzwerkgeräte
(inklusive Router, Switche, Sicherheits- und
Netzwerkappliances) antreibt, verwendet &os; Juniper ist
einer der vielen Hersteller, welcher das symbolische
Verhältnis zwischen dem Projekt und dem Hersteller von
kommerziellen Produkten darstellt. Verbesserungen, die
Juniper entwickelt hat, werden ebenso in &os; aufgenommen,
um die Komplexität der Integration neuer Eigenschaften
von &os; zurück in zukünftige JunOS Versionen zu
vereinfachen.McAfee
McAfee- SecurOS, die Basis von McAfee
Enterprise-Firewallprodukten inkl. Sidewinder basiert auf
&os;.NetApp
NetApp- Die Data ONTAP GX Reihe von
Speicherappliances basieren auf &os;. Zusätzlich hat
NetApp viele Neuheiten beigesteuert, inklusive des neuen
BSD-lizensierten Hypervisors bhyve.Netflix
Netflix- Die OpenConnect-Appliance, die Netflix
verwendet, um Filme zu seinen Kunden zu streamen basiert
auf &os;. Netflix hat weitreichende Beiträge zum
Quellcode von &os; beigetragen und arbeitet daran, ein
möglichst geringes Delta zur normalen Version
beizubehalten. Netflix OpenConnect-Appliances sind für
mehr als 32% vom gesamten Internetverkehr in Nordamerika
verantwortlich.Sandvine
Sandvine- Sandvine nutzt &os; as die Basis für deren
Echtzeit Hochgeschwindigkeits-Netzwerkplattform, welche
den Kern deren intelligenter
Netzwerkpolicy-Kontrollprodukte darstellt.Sony
Sony- Die PlayStation 4 Spielekonsole verwendet
eine modifizierte Version von &os;.Sophos
Sophos- Das Sophos Email-Appliance Produkt basiert
auf einem abgesicherten &os; und scannt eingehende E-Mail
auf Spam und Viren, während es gleichzeitig ausgehende
Mail auf Schadsoftware und versehentlichen Versand von
vertraulichen Informationen überwacht.Spectra
Logic Spectra
Logic- Die nTier Reihe von
archivspeicherfähigen Appliances nutzt &os; und
OpenZFS.Stormshield
Stormshield - Stormshield Network Security Appliances
basieren auf einer abgesicherten Version von &os;. Die
BSD-Lizenz erlaubt es ihnen, ihr geistiges Eigentum in das
System zu integrieren und gleichzeitig interessante
Entwicklungen an die Gemeinschaft zurückzugeben.The Weather
Channel The Weather Channel- Die IntelliStar Appliance, welche am
Kopfende eines jeden Kabelversorgers installiert ist und
für das Einspeisen von lokalen Wettervorhersagen in das
Kabelfernsehprogramm verantwortlich ist, läuft auf
&os;.Verisign
Verisign- Verisign ist für den Betrieb der .com und
.net Root-Domainregistries genauso verantwortlich wie für
die dazugehörige DNS-Infrastruktur. Sie verlassen sich
auf einen Reihe von verschiedenen Netzwerkbetriebssystemen
inklusive &os;, um zu gewährleisten, dass es keine
gemeinsame Fehlerstelle in deren Infrastruktur
gibt.Voxer
Voxer- Voxer verwendet ZFS auf
&os; für ihre mobile Voice-Messaging-Platform. Voxer
wechselte von einem Solaris-Derivat zu &os;, wegen der
ausgezeichneten Dokumentation und wegen der größeren,
aktiveren und sehr Entwickler freundlichen Gemeinschaft.
Neben entscheidenen Merkmalen wie ZFS
und DTrace bietet &os; auch TRIM-Unterstützung für
ZFS.WhatsApp
WhatsApp- Als WhatsApp eine Plattform benötigte, die
in der Lage ist, mehr als 1 Million gleichzeitiger
TCP-Verbindungen pro Server abzuarbeiten, entschied man
sich für &os;. Anschließend fuhren Sie damit fort, auf
2,5 Millionen Verbindungen pro Server
hochzuskalieren.Wheel
Systems
Wheel Systems- Die FUDO Sicherheitsappliance erlaubt es
Unternehmen, Vertragspartner und Administratoren, die an
ihren Systemen arbeiten durchführen, zu überwachen, zu
kontrollieren, aufzuzeichnen und zu begutachten. Dies
basiert auf all den besten Sicherheitseigenschaften von
&os;, inklusive ZFS, GELI, Capsicum, HAST und
auditdistd.&os; hat ebenfalls eine Reihe von verwandten Open Source
Projekten hervorgebracht:BSD Router
BSD Router- Einen &os;-basierten Ersatz für grosse
Unternehmensrouter, der entwickelt wurde, um auf Standard
PC-Hardware zu laufen.FreeNAS
FreeNAS- Ein eigens dafür entworfenes &os; für den
Zweck als Netzwerk-Dateiserver Appliance zu fungieren. Es
enthält eine Python-basierte Webschnittstelle, um das
Management von sowohl UFS- als auch ZFS-Systemen zu
vereinfachen. Enthalten sind NFS, SMB/CIFS, AFP, FTP und
iSCSI. Ebenfalls enthalten ist ein erweiterteres
Plugin-System basierend auf &os;-Jails.GhostBSD
GhostBSD- Eine auf den Desktop-Einsatz orientierte
Distribution von &os;, welche mit einer
Gnome-Desktop-Umgebung ausgeliefert wird.mfsBSD
mfsBSD- Eine Sammlung von Werkzeugen zum Erstellen
von &os;-Systemimages, welches ausschliesslich im
Hauptspeicher läuft.NAS4Free
NAS4Free- Eine Dateiserverdistribution basierend auf
&os; mit einer von PHP-getriebenen
Webschnittstelle.OPNSense
OPNSense- OPNSense ist eine quelloffene, einfach zu
benutzende und auf &os; basierende Firewall- und
Router-Plattform. OPNSense enthält viele Funktionen die
sonst nur in kommerziellen Firewalls enthalten sind und
manchmal sogar mehr. Es kombiniert die vielfältigen
Funktionen kommerzieller Angebote mit den Vorteilen von
offenen und nachprüfbaren Quellen.TrueOS
TrueOS- Eine
massgeschneiderte Version von &os;, die sich an
Desktop-Benutzern mit graphischen Oberflächenwerkzeugen
orientiert, um die Mächtigkeit von &os; allen Benutzern
zur Verfügung zu stellen. Entwickelt wurde sie mit dem
Ziel, den Übergang von Windows- und OS X-Benutzern zu
erleichtern.pfSense
pfSense- Eine
Firewalldistribution basierend auf &os; mit eine grossen
Menge von Fähigkeiten und ausgedehnter
IPv6-Unterstützung.ZRouter
ZRouter- Eine Open
Source Firmware-Alternative für eingebettete Geräte, die
auf &os; basiert. Entwickelt wurde sie, um die
proprietäre Firmware von Standard-Routern zu
ersetzen.&os; wird auch dazu eingesetzt, um einige der grössten
Webseiten des Internets zu betreiben. Dazu gehören:Yahoo!
Yahoo!Yandex
YandexRambler
RamblerSina
SinaPair
Networks Pair NetworksSony
Japan Sony JapanNetcraft
NetcraftNetflix
NetflixNetEase
NetEaseWeathernews
WeathernewsTELEHOUSE
America TELEHOUSE Americaund viele weitere. Wikipedia pflegt eine Liste
von Produkten, die auf &os; basieren.Über das &os; ProjektDer folgende Abschnitt bietet einige
Hintergrundinformationen zum &os; Projekt, einschließlich
einem kurzen geschichtlichen Abriss, den Projektzielen und dem
Entwicklungsmodell.Kurzer geschichtlicher Abriss zu &os;386BSD PatchkitHubbard, JordanWilliams, NateGrimes, RodFreeBSD ProjektGeschichteDas &os; 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
Jordan Hubbard.386BSDDas ursprüngliche Ziel war es, einen zwischenzeitlichen
Abzug von 386BSD zu erstellen, um ein paar Probleme zu
beseitigen, die das Patchkit-Verfahren nicht lösen
konnte. Der frühe Arbeitstitel für das Projekt war
386BSD 0.5 oder 386BSD Interim
als Referenz darauf.Jolitz, Bill386BSD war das Betriebssystem von Bill Jolitz, welches bis
zu diesem Zeitpunkt heftig unter fast einjähriger
Vernachlässigung litt. Als das Patchkit mit jedem Tag
anschwoll und unhandlicher wurde, entschied man sich, Bill
Jolitz zu helfen, indem ein übergangsweise
bereinigter Abzug zur Verfügung gestellt
wurde. Diese Pläne wurden durchkreuzt, als Bill Jolitz
plötzlich seine Zustimmung zu diesem Projekt zurückzog,
ohne einen Hinweis darauf, was stattdessen geschehen
sollte.Greenman, DavidWalnut Creek CDROMDas Trio entschied, dass das Ziel sich weiterhin lohnen
würde, selbst ohne die Unterstützung von Bill und so wurde
entschieden, den Namen &os; zu verwenden, der von David
Greenman geprägt wurde. Die anfänglichen Ziele wurden
festgelegt, nachdem man sich mit den momentanen Benutzern des
Systems besprach und abzusehen war, dass das Projekt die
Chance hatte, Realität zu werden, kontaktierte Jordan Walnut
Creek CDROM mit dem Vorhaben, &os;s Verteilung auch auf
diejenigen auszuweiten, die noch keinen Internetzugang
besaßen. Walnut Creek CDROM unterstützte nicht nur die
Idee durch die Verbreitung von &os; auf CD, sondern ging auch
so weit dass es dem Projekt eine Maschine mit schneller
Internetverbindung zur Verfügung stellte, um damit zu
arbeiten. Ohne den von Walnut Creek bisher nie dagewesenen
Grad von Vertrauen in ein, zur damaligen Zeit, komplett
unbekanntes Projekt, wäre es unwahrscheinlich, dass &os; so
weit gekommen wäre, wie es heute ist.4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software FoundationDie erste auf CD-ROM (und netzweit) verfügbare
Veröffentlichung war &os; 1.0 im Dezember 1993. Diese
basierte auf dem Band der 4.3BSD-Lite (Net/2)
der Universität von Kalifornien in Berkeley. Viele Teile
stammten aus 386BSD und von der Free Software Foundation.
Gemessen am ersten Angebot, war das ein ziemlicher Erfolg und
Sie ließen dem das extrem erfolgreiche &os; 1.1 im
Mai 1994 folgen.NovellU.C. BerkeleyNet/2AT&TZu dieser 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 &os;. 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 &os; 1.1.5.1.&os; 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. Im Dezember wurde dann &os; 2.0
veröffentlicht. Obwohl &os; 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 &os; 2.0.5.Seit dieser Zeit hat &os; eine Reihe von Releases
veröffentlicht, die jedes mal die Stabilität,
Geschwindigkeit und Menge an verfügbaren Eigenschaften der
vorherigen Version verbessert.Momentan werden langfristige Entwicklungsprojekte im
10.X-CURRENT (Trunk)-Zweig durchgeführt, und Abzüge
(Snapshots) der Releases von 10.X werden regelmässig auf den
Snapshot-Servern zur Verfügung gestellt.Ziele des &os;-ProjektsJordanHubbardBeigetragen von FreeBSD ProjektZieleDas &os; Projekt stellt Software her, die ohne
Einschränkungen für beliebige Zwecke eingesetzt werden kann.
Viele von uns haben beträchtlich in Quellcode und das 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.Das &os;-EntwicklungsmodellSatoshiAsamiBeigetragen von FreeBSD ProjektEntwicklungsmodellDie Entwicklung von &os; ist ein offener und flexibler
Prozess, der durch den Beitrag von buchstäblich tausenden
Leuten rund um die Welt ermöglicht wird, wie an 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 &os;-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 &os; Projekt und dessen
Entwicklungsabläufe.Die SVN-RepositoriesCVSCVS-RepositoryConcurrent Versions SystemCVSSubversionSubversion-RepositorySVNSubversion
Der Hauptquellbaum von &os; wurde über viele Jahre
ausschließlich mit CVS
(Concurrent-Versions-System) gepflegt, einem frei
erhältlichen Versionskontrollsystem. Im Juni 2008
begann das &os; Project mit dem Umstieg auf SVN
(Subversion). Dieser Schritt wurde notwendig, weil
durch technische Einschränkungen von
CVS aufgrund des rapide
wachsenden Quellcodebaumes und dem Umfang der bereits
gespeichterten Revisisionsinformationen an dessen
Grenzen zu stoßen begann. Die Repositories des
Dokumentationsprojekts und die Ports-Sammlung wurden
ebenfalls von CVS zu
SVN im Mai und Juli 2012
umgezogen. Lesen Sie dazu Synchronisation der
Quellen für weitere Informationen zum
Beziehen der &os; src/ Repository
und Die Ports-Sammlung
verwenden für Details zum Beziehen der &os;
Ports-Sammlung.Die Committer-ListeDie CommitterCommitter sind diejenigen Leute, welche
schreibenden Zugriff auf den
Subversion-Baum besitzen und berechtigt sind,
Änderungen an den &os;-Quellen (der Begriff
Committer stammt aus dem
Versionskontrollbefehl commit , der
dazu verwendet wird, Änderungen in das Repository
zu bringen). Jeder hat die Möglichkeit über die
die
Datenbank für Problemberichte einen
Fehlerreport einzureichen. Bevor Sie einen Fehlerreport
einreichen, sollten Sie auf den &os; Mailinglisten, den
IRC-Kanälen oder in Foren überprüfen, ob das Problem
tatsächlich ein Fehler ist.The FreeBSD core teamDie &os; core teamCore Teamist mit dem Vorstand vergleichbar, wenn das
&os; Projekt ein Unternehmen wäre. Die
Hauptaufgabe des Core Teams ist es sicherzustellen, dass
sich das Projekt als Ganzes in einem guten Zustand
befindet und sich in die richtige Richtung bewegt. Das
Einladen von engagierten und verantwortungsvollen
Entwicklern zu dem Zweck, sich der Gruppe von Committern
anzuschliessen, ist eine der Funktionen des Core Teams,
genauso wie neue Mitglieder des Core Teams zu
rekrutieren, wenn andere ausscheiden. Das aktuelle Core
Team wurde aus einer Menge von Kandidaten aus dem Kreis
der Committer im Juli 2014 gewählt. Wahlen werden alle
zwei Jahre abgehalten.Wie die meisten Entwickler auch, sind die
Mitglieder des Core Teams Freiwillige, wenn es um die
Entwicklung von &os; geht und erhalten keinerlei
finanziellen Vorteil aus dem Projekt, deshalb sollte
Verpflichtung nicht fehlverstanden
werden mit garantierter Unterstützung.
Die Vorstands-Analogie oben ist nicht
sehr akkurat und kann vielleicht besser damit
umschrieben werden, dass diese Leute ihr Leben für
&os; gegen jedwede Vernunft geopfert haben.Aussenstehende BeitragendeSchliesslich stellt die grösste, aber
nichtsdestotrotz wichtigste Gruppe von Entwicklern die
der Benutzer selbst dar, die stetig Rückmeldungen und
Fehlerbehebungen liefert. Der hauptsächliche Weg mit
&os;s nicht-zentralisierter Entwicklung Kontakt zu
halten, ist, die &a.hackers; Mailingliste zu abonnieren,
auf der solche Dinge diskutiert werden. Lesen Sie dazu
für weitere Informationen
über die verschiedenen &os;-Mailinglisten.Liste
der BeitragendenBeitragende ist eine,
die lang ist und stetig wächst, also warum nicht &os;
beitreten und noch heute etwas zurückgeben?Code ist nicht die einzige Art, zu dem Projekt etwas
beizutragen. Für eine ausführlichere Liste von Dingen
die getan werden müssen, lesen Sie auf der
&os; Projektwebseite.Zusammenfassend ist unser Entwicklungsmodell als eine lose
Menge von konzentrischen Kreisen organisiert. Das
zentralisierte Modell ist mit der Praktikabilität der
Anwender von &os; entworfen worden, die
mit der einfachen Art einhergeht, eine zentrale Basis für den
Code zu haben und keine potentiellen Beiträge
auszuschliessen! Unser Ansporn ist es, ein stabiles
Betriebssystem mit einer grossen Menge von kohärenten Anwendungsprogrammen, welches die
Benutzer einfach installieren und verwenden können - dieses
Modell funktioniert darin sehr gut, dieses Ziel zu
erreichen.Alles was wir von denen verlangen, die uns als
&os;-Entwickler beitreten ist, etwas von der gleichen Hingabe
an den Erfolg, die seine momentanen Gemeinschaft inne hat, zu
besitzen.Programme von DrittherstellernZusätzlich zur Basisdistribution bietet &os; eine
Sammlung von portierter Software mit tausenden der am meisten
nachgefragten Programme an. Als diese Zeilen geschrieben
wurden, gab es über &os.numports; Ports! Die Liste der Ports
reicht von HTTP-Servern, zu Spielen, Sprachen, Editoren und so
ziemlich alles, was dazwischen liegt. Die gesamte
Port-Sammlung ist geschätzt &ports.size; gross. Um einen Port
zu übersetzen, wechseln Sie einfach in das Verzeichnis des
Programms, das sie installieren möchten und geben
make install ein und das System erledigt
den Rest. Die gesamte Originaldistribution für jeden Port,
den Sie bauen wird dynamisch heruntergeladen, so dass sie nur
genügend Plattenplatz zum bauen des Ports, den sie haben
möchten, zur Verfügung stellen müssen. Fast jeder Port ist
auch als vorkompiliertesPaket, das über das
folgende einfache Kommando (pkg install)
für diejenigen, die keine kompilierten Port aus den Quellen
wünschen. Weitere Informationen zu Ports und Paketen finden
Sie in .Zusätzliche DokumentationAlle momentanen &os; Versionen bieten eine Option im
Installer (entweder &man.sysinstall.8; oder
&man.bsdinstall.8;), um zusätzliche Dokumentation unter
/usr/local/share/doc/freebsd während des
initialen Systemsetups zu installieren. Dokumentation kann
auch zu einem späteren Zeitpunkt über Pakete installiert
werden, wie es
beschreibt. Sie können ebenso die lokal installierten
Anleitungen mit jedem HTML-fähigen Browser lesen, indem Sie
die folgende URL verwenden:Das FreeBSD Handbuch/usr/local/share/doc/freebsd/handbook/index.htmlDie FreeBSD FAQ/usr/local/share/doc/freebsd/faq/index.htmlGenauso erhalten Sie auch die Master (und am häufigsten
aktualisierten) Kopien von http://www.FreeBSD.org/.
+ xlink:href="https://www.FreeBSD.org/">https://www.FreeBSD.org/.
Index: head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/ports/chapter.xml (revision 51222)
@@ -1,1846 +1,1846 @@
Installieren von Anwendungen: Pakete und PortsUwePierauÜbersetzt von BjörnHeidottingÜberarbeitet von ÜbersichtPortsPakete&os; enthält eine umfassende Sammlung von Systemwerkzeugen,
die Teil des Basissystems sind. Darüber hinaus stellt &os; zwei
sich ergänzende Methoden zur Installation von
Drittanbieter-Software zur Verfügung: Die Ports-Sammlung zur
Installation aus dem Quellcode sowie Pakete zur Installation
von vorkompilierten binären Softwarepaketen. Beide Methoden
können benutzt werden, um Anwendungen von lokalen Medien oder
über das Netzwerk zu installieren.Dieses Kapitel behandelt die folgenden Themen:Den Unterschied zwischen binären Softwarepaketen und
Ports.Wie man Drittanbieter-Software findet, die nach
&os; portiert wurde.Wie Binärpakete mit pkg
verwaltet werden.Den Bau von Drittanbieter-Software aus dem Quellcode
mithilfe der Ports-Sammlung.Wie man die Dateien findet, die zusammen mit der
Anwendung installiert wurden.Was zu tun ist, wenn die Installation einer Software
fehlschlägt.Installation von SoftwareDie typischen Schritte zur Installation von
Drittanbieter-Software auf einem &unix; System sind:Download der Software, die als Quelltext oder im
Binärformat vorliegen kann.Auspacken der Software. Dies ist typischerweise ein mit
&man.compress.1;, &man.gzip.1;, &man.bzip2.1; oder
&man.xz.1; komprimiertes Tar-Archiv.Durchsuchen der Dokumentation, die sich in
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 muss vielleicht das
Makefile angepasst, oder
configure ausgeführt werden.Testen und installieren der Software.Ein &os;-Port ist eine Sammlung von Dateien, die das
Kompilieren der Quelltexte einer Anwendung automatisieren. Die
Dateien, die ein Port umfasst enthalten alle notwendigen
Informationen um die Anwendung herunterzuladen, zu extrahieren,
anzupassen und zu installieren.Wenn die Software nicht bereits für &os; angepasst und
getestet wurde, muss vielleicht sogar der Quelltext angepasst
werden, damit die Software funktioniert.Bislang wurden über &os.numports;
Anwendungen von Drittanbietern nach &os; portiert. Falls
möglich, werden diese Anwendungen als vorkompilierte
Pakete zur Verfügung gestellt.Pakete können mit &os;s Paketverwaltungswerkzeugen
manipuliert werden.Pakete und Ports beachten Abhängigkeiten zwischen
Anwendungen. Wenn ein Paket oder die Ports-Sammlung benutzt
wird, um eine Anwendung zu installieren, dann werden fehlende
Bibliotheken zuerst installiert, sofern sie nicht schon vorher
installiert waren.Ein &os;-Paket enthält vorkompilierte Kopien aller Befehle
für eine Anwendung, sowie zusätzliche Konfigurationsdateien und
Dokumentation. Pakete können mit den &man.pkg.8;-Befehlen, wie
pkg install, manipuliert werden.Obwohl beide Technologien gleichartig sind, so haben
Pakete und Ports jeweils ihre eigenen Stärken. Welche
Technologie eingesetzt wird, hängt letzten Endes von den
Anforderungen ab, die an eine bestimmte Anwendung gestellt
werden.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 große Pakete wie
Mozilla,
KDE oder
GNOME auf langsamen Maschinen
installiert werden.Wenn Sie Pakete verwenden, brauchen Sie nicht zu
verstehen, wie Software unter &os; kompiliert wird.Vorteile von PortsDa die Pakete auf möglichst vielen System laufen sollen,
werden Optionen beim Übersetzen zurückhaltend gesetzt.
Wird eine Anwendung über die Ports übersetzt, können die
Optionen nach eigenen Bedürfnissen angepasst werden.Die Eigenschaften einiger Anwendungen werden über
Optionen zum Zeitpunkt des Übersetzens festgelegt.
Apache kann zum Beispiel über
eine große Auswahl an eingebauten Optionen konfiguriert
werden.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 Xorg Unterstützung
unterscheiden. Das Erstellen von verschiedenen Paketen 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, der durch den Benutzer kompiliert werden muss,
ausgeliefert werden.Einige Leute trauen binären Distributionen nicht, oder
sie ziehen es vor den Quelltext zu lesen, um diesen nach
möglichen Problemen zu durchsuchen.Der Quellcode wird benötigt, um individuelle Anpassungen
anzuwenden.Wenn Sie über aktualisierte Ports informiert sein wollen,
lesen Sie die Mailinglisten &a.ports; und &a.ports-bugs;.Bevor Sie eine Anwendung installieren, informieren Sie
sich auf der Seite
über mögliche Sicherheitsprobleme mit der Anwendung, oder
führen Sie pkg audit -F aus, um alle
installierten Pakete auf bekannte Sicherheitslücken zu
überprüfen.Der Rest dieses Kapitels beschreibt, wie man Software
Dritter mit Paketen und Ports unter &os; installiert und
verwaltet.Suchen einer AnwendungDie Anzahl der nach &os; portierten Anwendungen steigt
ständig. Es gibt einige Wege, um nach Anwendungen zu
suchen:Die &os;-Webseite stellt unter
- http://www.FreeBSD.org/ports/
+ https://www.FreeBSD.org/ports/
eine aktuelle und durchsuchbare Liste aller Anwendungen zur
Verfügung. Die Ports können nach dem Namen den Anwendung,
oder über die Software-Kategorie durchsucht werden.FreshPortsDan Langille verwaltet FreshPorts.org,
das eine umfassende Suchfunktion bietet und Änderungen an
den Anwendungen in der Ports-Sammlung verfolgt.
Registrierte Benutzer können eine Merkliste erstellen, um
automatisch eine E-Mail zu erhalten, sobald ein Port von
dieser Liste aktualisiert wurde.SourceForgeWenn Sie bei der Suche nach einer bestimmten Anwendung
nicht weiter kommen, versuchen Sie eine Webseite wie
SourceForge.net oder GitHub.com.
Schauen Sie dann auf der
&os;-Webseite nach, ob die Anwendung portiert
wurde.pkgsearchDas Paket Repository nach einer
Anwendung durchsuchen:&prompt.root; pkg search subversion
git-subversion-1.9.2
java-subversion-1.8.8_2
p5-subversion-1.8.8_2
py27-hgsubversion-1.6
py27-subversion-1.8.8_2
ruby-subversion-1.8.8_2
subversion-1.8.8_2
subversion-book-4515
subversion-static-1.8.8_2
subversion16-1.6.23_4
subversion17-1.7.16_2Die Paketnamen enthalten jeweils die Versionsnummer.
Wenn ein Port von python abhängt, wird auch die
Versionsnummer von python ausgegeben, mit der die Anwendung
gebaut wurde. Für einige Ports stehen sogar mehrere
Versionen zur Verfügung. Im Fall von
Subversion gibt es drei
verschiedene Versionen, mit unterschiedlichen Optionen. In
diesem Fall wird die Version von
Subversion statisch gelinkt.
Wenn Sie ein Paket installieren, ist es am besten den
Ursprung des Ports anzugeben, also den Pfad in der
Ports-Sammlung. Wiederholen Sie
pkg search mit um den
Ursprung der Pakete anzuzeigen:&prompt.root; pkg search -o subversion
devel/git-subversion
java/java-subversion
devel/p5-subversion
devel/py-hgsubversion
devel/py-subversion
devel/ruby-subversion
devel/subversion16
devel/subversion17
devel/subversion
devel/subversion-book
devel/subversion-staticZudem unterstützt pkg search die
Suche mit regulären Ausdrücken, nach exakten Treffern, nach
der Beschreibung oder nach anderen Feldern in der
Repository-Datenbank. Nach der Installation von
ports-mgmt/pkg oder
ports-mgmt/pkg-devel, finden Sie in
&man.pkg-search.8; weitere Details.Wenn die Ports-Sammlung bereits installiert ist, gibt es
mehrere Methoden, um die lokale Version dieser Port-Sammlung
abzufragen. Verwenden Sie
whereis Datei
um herauszufinden, in welcher Kategorie ein Port ist, wobei
Datei der Name des Programms ist,
das installiert werden soll:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofAlternativ kann der &man.echo.1;-Befehl verwendet
werden:&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsofBeachten Sie aber, dass dieser Befehl auch alle Dateien
im Verzeichnis /usr/ports/distfiles
findet, auf die der angegebene Suchbegriff passt.Ein weiterer Weg nach Software zu suchen besteht darin,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Wechseln Sie dazu in das Verzeichnis
/usr/ports, und rufen Sie make
search
name=Anwendungsname
auf, wobei Anwendungsname der
Name der Software ist. Um zum Beispiel nach
lsof zu suchen:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.88.d,8
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: ler@lerctr.org
Index: sysutils
B-deps:
R-deps: Der integrierte Suchmechanismus verwendet eine Datei
mit Index-Informationen. Erscheint eine Meldung, dass der
INDEX benötigt wird, führen Sie
make fetchindex aus, um die aktuelle
Index-Datei herunterzuladen. Mit einem vorhandenen
INDEX ist
make search in der Lage, die gewünschte
Suche durchzuführen.Die Path:-Zeile zeigt an, wo der Port zu
finden ist.Um weniger Informationen zu erhalten, benutzen Sie die
Funktion quicksearch:&prompt.root; cd /usr/ports
&prompt.root; make quicksearch name=lsof
Port: lsof-4.88.d,8
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))Erweiterte Suchen führen Sie mit
make search
key=Text oder
make quicksearch
key=Text aus. Damit
werden Portnamen, Kommentare, Beschreibungen und
Abhängigkeiten nach Text
durchsucht. Dies kann sehr nützlich sein, wenn der
Name des Programms nicht bekannt ist.Bei der Verwendung von search
und quicksearch wird Groß- und
Kleinschreibung bei der Suche ignoriert. Die Suche nach
LSOF wird dieselben Ergebnisse wie die Suche
nach lsof liefern.Benutzen von pkg zur
Verwaltung von Binärpaketenpkg ist der Nachfolger für die
traditionellen Paketverwaltungswerkzeuge von &os;. Es bietet
viele Funktionen, die den Umgang mit Binärpaketen schneller und
einfacher machen.Wenn Sie lediglich vorgefertigte Binärpakete von den &os;
Spiegeln benutzen möchten, ist pkg
für die Verwaltung von Paketen ausreichend.Falls Sie jedoch die Software aus dem Quellcode bauen oder
eigene Repositories verwenden, benötigen Sie ein separates
Paketverwaltungswerkzeug.pkg ist kein Ersatz für diese
Werkzeuge. Während diese Werkzeuge Drittanbieter-Software
sowohl aus Binärpaketen als auch aus der Ports-Sammlung
installieren können, so installiert
pkg ausschließlich
Binärpakete.Erste Schritte mit
pkg&os; enthält ein Bootstrap-Programm, welches
pkg zusammen mit den Manualpages
installiert. pkg wurde für &os;
Versionen ab 10.X
entwickelt.Nicht alle &os; Versionen unterstüzen den folgenden
Bootstrap Prozess. Eine aktuelle Liste finden Sie unter
.
Andernfalls muss pkg aus der
Ports-Sammlung oder als Binärpaket installiert
werden.Um das Bootstrap Programm zu starten, geben Sie folgendes
ein:&prompt.root; /usr/sbin/pkgSie müssen eine Internetverbindung haben, damit der
Bootstrap Prozess funktioniert.Um den Port zu installieren, geben Sie stattdessen
folgendes ein:&prompt.root; cd /usr/ports/ports-mgmt/pkg
&prompt.root; make
&prompt.root; make install cleanBei der Aktualisierung eines bestehenden Systems, welches
ursprünglich die alten pkg_* Werkzeuge verwendet
hat, muss die Datenbank in das neue Format konvertiert werden,
damit die neuen Werkzeuge wissen, welche Pakete bereits
installiert sind. Sobald pkg
installiert ist, muss die Paketdatenbank mit dem folgenden
Befehl vom traditionellen Format in das neue Format
konvertiert werden:&prompt.root; pkg2ngAuf neu installieren Systemen, auf denen noch keine
Software von Drittanbietern installiert wurde, kann dieser
Schritt entfallen.Die Konvertierung ist unwiderruflich. Sobald die
Paketdatenbank in das Format von
pkg umgewandelt wurde, sollten
die traditionellen pkg_*
Werkzeuge nicht mehr benutzt werden.Bei der Konvertierung der Paketdatenbank können Fehler
ausgegeben werden, wenn die Inhalte auf die neue Version
umgewandelt werden. Im Allgemeinen können diese Fehler
ignoriert werden. Wenn pkg2ng
fertig ist, wird eine Liste von Software ausgegeben, die
nicht erfolgreich konvertiert werden konnte. Diese
Anwendungen müssen manuell neu installiert werden.Um sicherzustellen, dass die Ports-Sammlung neue
Pakete mit pkg und nicht mit
den traditionellen Formaten registriert, muss in
&os; 10.X und früheren
Versionen folgende Zeile in
/etc/make.conf hinzugefügt werden:WITH_PKGNG= yesIn der Voreinstellung benutzt
pkg die Pakete der &os;-Spiegel
(das Repository). Wenn Sie ein eigenes
Paket-Repository erstellen möchten, lesen Sie
Weitere Konfigurationsoptionen für
pkg sind in &man.pkg.conf.5;
beschrieben.Informationen zur Bedienung von
pkg ist in &man.pkg.8; verfügbar.
Alternativ kann pkg
ohne zusätzliche Argumente aufgerufen werden.Jedes Argument von pkg ist in
seiner spezifischen Manualpage dokumentiert. Um
beispielsweise die Manualpage von
pkg install zu lesen, geben Sie einen der
folgenden Befehle ein:&prompt.root; pkg help install&prompt.root; man pkg-installDer Rest dieses Abschnitts beschreibt die typischen
Verwaltungsaufgaben für Binärpakete, die mit
pkg erledigt werden können.
Jedes gezeigte Kommando verfügt über Optionen, um das
Verhalten anzupassen. Details und weitere Beispiele finden
Sie in den Manualpages der einzelnen Kommandos.Informationen über installierte Pakete anzeigenInformationen über bereits installierte Pakete können
mit pkg info angezeigt werden. Dabei
wird, wenn keine weiteren Optionen angegeben werden, die
Version und die Beschreibung aller Pakete oder eines
einzelnen Pakets ausgegeben.Um zu ermitteln welche Version von
pkg installiert ist, geben Sie
folgendes ein:&prompt.root; pkg info pkg
pkg-1.1.4_1Installation und Deinstallation von PaketenEin Binärpaket installieren Sie mit dem folgenden
Befehl, wobei paketname der Name
des zu installierenden Pakets ist:&prompt.root; pkg install paketnameDieser Befehl verwendet Daten aus dem Repository um zu
bestimmen, welche Version der Software und welche
Abhängigkeiten installiert werden müssen. Um beispielsweise
curl zu installieren:&prompt.root; pkg install curl
Updating repository catalogue
/usr/local/tmp/All/curl-7.31.0_1.txz 100% of 1181 kB 1380 kBps 00m01s
/usr/local/tmp/All/ca_root_nss-3.15.1_1.txz 100% of 288 kB 1700 kBps 00m00s
Updating repository catalogue
The following 2 packages will be installed:
Installing ca_root_nss: 3.15.1_1
Installing curl: 7.31.0_1
The installation will require 3 MB more space
0 MB to be downloaded
Proceed with installing packages [y/N]: y
Checking integrity... done
[1/2] Installing ca_root_nss-3.15.1_1... done
[2/2] Installing curl-7.31.0_1... done
Cleaning up cache files...DoneDas neue Paket und jedes weitere Paket, das als
Abhängigkeit installiert wurde, ist in der Liste der
installierten Pakete zu sehen:&prompt.root; pkg info
ca_root_nss-3.15.1_1 The root certificate bundle from the Mozilla Project
curl-7.31.0_1 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
pkg-1.1.4_6 New generation package managerWird ein Paket nicht mehr benötigt, kann es mit
pkg delete entfernt werden. Zum
Beispiel:&prompt.root; pkg delete curl
The following packages will be deleted:
curl-7.31.0_1
The deletion will free 3 MB
Proceed with deleting packages [y/N]: y
[1/1] Deleting curl-7.31.0_1... doneInstallierte Pakete aktualisierenInstallierte Pakete können mit diesem Kommando auf die
neuesten Versionen aktualisiert werden:&prompt.root; pkg upgradeDieses Kommando vergleicht und aktualisiert die
installierten Versionen der Pakete mit denen im
Repository.Installierte Pakete auditierenRegelmäßig werden Sicherheitslücken in
Drittanbieter-Software entdeckt.
pkg besitzt einen eingebauten
Auditing-Mechanismus. Um die auf dem System installierte
Software auf Sicherheitslücken zu prüfen, geben Sie
folgenden Befehl ein:&prompt.root; pkg audit -FAutomatisches Entfernen von nicht mehr benötigten
AbhängigkeitenDas Entfernen eines Pakets kann möglicherweise
Abhängigkeiten hinterlassen, die nicht mehr benötigt werden.
Unnötige Pakete, die als Abhängigkeit von anderen
Paketen installiert wurden, können automatisch erfasst und
entfernt werden:&prompt.root; pkg autoremove
Packages to be removed:
ca_root_nss-3.15.1_1
The autoremoval will free 723 kB
Proceed with autoremoval of packages [y/N]: y
Deinstalling ca_root_nss-3.15.1_1... doneWiederherstellung der PaketdatenbankIm Gegensatz zum alten Paketverwaltungssystem beinhaltet
pkg einen eigenen Mechanismus
zur Sicherung der Paketdatenbank. Diese Funktionalität ist
standardmäßig aktiviert.Um das Skript daran zu hindern, eine Sicherung der
Paketdatenbank zu erstellen, muss in &man.periodic.conf.5;
daily_backup_pkgdb_enable="NO" gesetzt
werden.Um den Inhalt einer früheren Paketdatenbank
wiederherzustellen, geben Sie folgendes Kommando ein und
ersetzen Sie /path/to/pkg.sql
durch den Speicherort der gesicherten Datenbank:&prompt.root; pkg backup -r /path/to/pkg.sqlWenn Sie eine Sicherung wiederherstellen, die von
einem periodic Skript erstellt wurde,
müssen Sie diese zuerst dekomprimieren.Um eine manuelle Sicherung der
pkg Paketdatenbank zu erstellen,
führen Sie den folgenden Befehl aus, und ersetzen Sie
/path/to/pkg.sql durch einen
geeigneten Dateinamen:&prompt.root; pkg backup -d /path/to/pkg.sqlAlte Pakete entfernenStandardmäßig speichert pkg
Pakete in einem Cache-Verzeichnis, welches in
&man.pkg.conf.5; in der Variablen
PKG_CACHEDIR definiert wird. Nur Kopien der
neusten installierten Pakete werden beibehalten. Ältere
Versionen von pkg haben alle
Pakete aufbewahrt. Um diese veralteten Pakete zu entfernen,
geben Sie folgendes ein:&prompt.root; pkg cleanUm alle Pakte aus dem Cache-Verzeichnis zu löschen,
geben Sie ein:&prompt.root; pkg clean -aManipulation der Paket-MetadatenBei Software aus der &os; Ports-Sammlung kann es
vorkommen, dass die Hauptversionsnummer geändert wird.
Dafür hat pkg ein eingebautes
Kommando, um die Quelle eines Pakets zu aktualisieren. Dies
ist nützlich, wenn zum Beispiel lang/php5
zu lang/php53 umbenannt wurde, damit
lang/php5 jetzt die Version
5.4 integrieren kann.Um die Quelle des Pakets für das obige Beispiel zu
ändern, geben Sie folgendes ein:&prompt.root; pkg set -o lang/php5:lang/php53Ein weiteres Beispiel:
Um lang/ruby18 auf
lang/ruby19 zu aktualisieren, geben Sie
folgendes ein:&prompt.root; pkg set -o lang/ruby18:lang/ruby19In diesem letzten Beispiel wird die Quelle der
Bibliotheken von libglut von
graphics/libglut auf
graphics/freeglut geändert:&prompt.root; pkg set -o graphics/libglut:graphics/freeglutBei einem Wechsel der Paketquelle ist es notwendig,
die Pakete neu zu installieren, welche von dem Paket
abhängig sind, das seine Paketquelle geändert hat. Um
eine Neuinstallation von abhängigen Paketen zu erzwingen,
führen Sie folgenden Befehl aus:&prompt.root; pkg install -Rf graphics/freeglutBenutzen der Ports-SammlungDie Ports-Sammlung ist eine Reihe von
Makefiles, Patches und Beschreibungen.
Die Dateien für den Bau und die Installation von einzelnen
Anwendungen unter &os; werden als Port
bezeichnet.In der Voreinstellung wird die Ports-Sammlung im
Verzeichnis /usr/ports gespeichert.Bevor eine Anwendung aus den Ports erstellt werden kann,
muss zuerst die Ports-Sammlung installiert werden. Wenn dies
nicht bereits bei der Installation von &os; geschehen ist,
benutzen Sie eine der beiden Methoden um sie zu
installieren:Installation mit Portsnap&os;s Basissystem enthält mit
Portsnap ein schnelles
und benutzerfreundliches Werkzeug zur Installation der
Ports-Sammlung und die bevorzugte Wahl für die meisten
Benutzer. Dieses Programm stellt eine Verbindung zu einem
&os;-Server her, überprüft den gesicherten Schlüssel und
lädt eine aktuelle Kopie der Ports-Sammlung herunter. Der
Schlüssel wird benötigt, um die Integrität der
heruntergeladenen Dateien zu untersuchen.Laden Sie einen komprimierten Snapshot der
Ports-Sammlung in
/var/db/portsnap:&prompt.root; portsnap fetchWenn Sie Portsnap das erste
Mal verwenden, müssen Sie den Snapshot nach
/usr/ports extrahieren:&prompt.root; portsnap extractNach dem ersten Einsatz von
Portsnap, kann
/usr/ports wie folgt aktualisiert
werden:&prompt.root; portsnap fetch
&prompt.root; portsnap updateBei der Verwendung von fetch können
die extract oder
update Operationen nacheinander
ausgeführt werden, etwa so:&prompt.root; portsnap fetch updateInstallation mit SubversionWird mehr Kontrolle über die Ports-Sammlung benötigt,
oder wenn die lokalen Änderungen beibehalten werden sollen,
kann Subversion benutzt werden,
um die Ports-Sammlung zu laden. Lesen Sie den
Subversion Primer für eine detaillierte
Beschreibung von Subversion.Subversion muss installiert
sein, bevor die Ports-Sammlung geladen werden kann.
Ist eine lokale Kopie der Ports-Sammlung bereits
vorhanden, installieren Sie
Subversion wie folgt:&prompt.root; cd /usr/ports/devel/subversion
&prompt.root; make install cleanWenn keine lokale Kopie der Ports-Sammlung vorhanden
ist, oder pkg zur Verwaltung
von Paketen benutzt wird, kann
Subversion als Paket
installiert werden:&prompt.root; pkg install subversionLaden Sie eine Kopie der Ports-Sammlung:&prompt.root; svn checkout https://svn.FreeBSD.org/ports/head /usr/portsNach dem erstmaligen
checkout mit
Subversion kann
/usr/ports wie folgt aktualisiert
werden:&prompt.root; svn update /usr/portsDie Ports-Sammlung enthält eine Reihe von Verzeichnissen,
die jeweils eine Softwarekategorie repräsentieren. Jede
Kategorie hat für jede einzelne Anwendung ein weiteres
Unterverzeichnis. Jedes Unterverzeichnis enthält Dateien, die
&os; sagen, wie ein Programm kompiliert und installiert werden
muss. Diese Dateien werden auch Port-Gerüst
genannt. Jedes Port-Gerüst beinhaltet die
folgenden Dateien und Verzeichnisse:Makefile: enthält Anweisungen, die
spezifizieren, wie die Anwendung kompiliert wird und wohin
die Komponenten installiert werden sollten.distinfo: enthält die Namen und
die Prüfsummen der Dateien, die heruntergeladen werden
müssen, um den Port zu bauen.files: dieses Verzeichnis
enthält Patches, welche das Übersetzen und Installieren
der Anwendung unter &os; ermöglichen. Zudem können noch
weitere Dateien, die für die Übersetzung des Ports
verwendet werden, enthalten sein.pkg-descr: enthält
eine ausführlichere Beschreibung der Anwendung.pkg-plist: 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 beinhalten noch
pkg-message oder weitere Dateien, die vom
Port-System benutzt werden, um spezielle Situationen zu
handhaben. Wenn Sie mehr über diese Dateien oder das
Port-System erfahren wollen, lesen Sie das
&os; Porter's Handbook.Ein Port enthält nicht den eigentlichen Quellcode, der
auch als Distfile bekannt ist. Der
heruntergeladene Quellcode wird automatisch nach
/usr/ports/distfiles extrahiert.Ports installierenPortsinstallierenDieser Abschnitt beschreibt die grundlegende Benutzung
der Ports-Sammlung, um Software zu installieren oder zu
deinstallieren. Eine ausführliche Beschreibung der
einzelnen make-Targets finden Sie in
&man.ports.7;.Stellen Sie sicher, dass die Ports-Sammlung
aktuell ist, bevor Sie einen Port kompilieren.
Informieren Sie sich vorher zusätzlich unter über
mögliche Sicherheitsprobleme des zu installierenden Ports.
Alternativ können Sie pkg audit -F
ausführen, bevor Sie einen neuen Port installieren. Die
täglich laufende Sicherheitsprüfung des Systems aktualisiert
ebenfalls die Datenbank und prüft installierte Anwendungen
auf vorhandene Sicherheitsprobleme. Weitere Informationen
finden Sie in &man.pkg-audit.8; und &man.periodic.8;.Die Benutzung der Ports-Sammlung setzt eine
funktionierende Internetverbindung und Superuser-Rechte
voraus.Um einen Port zu installieren, wechseln Sie in das
Verzeichnis des Ports, den Sie installieren möchten. Geben
Sie dann make install am Prompt ein:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make install
>> lsof_4.88D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.88
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.88D.freebsd.tar.gz.
===> Patching for lsof-4.88.d,8
===> Applying FreeBSD patches for lsof-4.88.d,8
===> Configuring for lsof-4.88.d,8
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.88.d,8
...
[Ausgabe der Übersetzung weggelassen]
...
===> Installing for lsof-4.88.d,8
...
[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.
/usr/local/bin/lsof
&prompt.root;Da lsof eine Anwendung ist, die mit
erhöhten Rechten läuft, wird nach der Installation eine
Sicherheitswarnung angezeigt. Sobald die Installation
abgeschlossen ist, erscheint wieder der Prompt.Um die Suche nach Kommandos zu beschleunigen, speichern
einige Shells eine Liste der verfügbaren Kommandos in den
durch die Umgebungsvariable PATH gegebenen
Verzeichnissen. Benutzer der tcsh müssen
eventuell rehash eintippen, um die neu
installierten Kommandos benutzen zu können, ohne den
vollständigen Pfad anzugeben. Benutzer der Shell
sh müssen stattdessen
hash -r eintippen. Weitere Informationen
finden Sie in der Dokumentation der jeweiligen Shell.Bei der Installation wird ein Arbeitsverzeichnis
erstellt, das alle temporären Dateien enthält, die während
des Bauvorgangs benötigt werden. Wenn dieses Verzeichnis
nach der Installation entfernt wird, spart dies
Plattenplatz und minimiert mögliche Probleme bei der
Aktualisierung des Ports auf eine neuere Version:&prompt.root; make clean
===> Cleaning for lsof-4.88.d,8
&prompt.root;Sie können zwei Schritte sparen, wenn Sie bei der
Kompilierung des Ports gleich
make install clean eingeben.Port Installation anpassenEinige Ports bieten Optionen, mit denen zusätzliche
Funktionen oder Sicherheitsoptionen eingestellt werden
können. Beispiele dafür sind
www/firefox,
security/gpgme und
mail/sylpheed-claws. Wenn ein Port von
anderen Ports abhängig ist und diese über zusätzliche
Abhängigkeiten und Optionen verfügen, wird mehrmals ein
Menü ausgegeben, wo der Benutzer verschiedene Optionen
wählen kann. Um dies zu vermeiden und die Konfiguration in
einem Stück zu erledigen, wechseln Sie in das
Verzeichnis des Ports und geben Sie
make config-recursive ein. Führen Sie
danach make install [clean] aus, um den
Port zu kompilieren und zu installieren.Bei der Verwendung von
config-recursive wird eine
Liste von Ports, die konfiguriert werden, vom
Target all-depends-list
erstellt. Es wird empfohlen,
make config-recursive so lange
auszuführen, bis alle Optionen der abhängigen Ports
definiert sind und keine Optionen und Menüs mehr
erscheinen. Damit soll sichergestellt werden, dass alle
Optionen konfiguriert wurden.Es gibt diverse Möglichkeiten, dieses Menü nach dem
Bau eines Ports erneut aufzurufen, um Optionen zu
entfernen, hinzuzufügen oder anzupassen. Sie können
beispielsweise mit cd in das
Verzeichnis des Ports wechseln und dort
make config eingeben. Eine andere
Möglichkeit ist make showconfig. Eine
weitere Alternative bietet
make rmconfig, das alle ursprünglich
gewählten Optionen zurücksetzt und es Ihnen dadurch
ermöglicht, die Konfiguration erneut zu beginnen. Die
eben erwähnten Optionen werden ausführlich in
&man.ports.7; beschrieben.Die Ports-Sammlung benutzt zum Herunterladen von
Dateien &man.fetch.3;, das diverse Umgebungsvariablen
unterstützt. Die Variablen
FTP_PASSIVE_MODE, FTP_PROXY
und FTP_PASSWORD müssen unter Umständen
gesetzt werden, wenn das &os;-System hinter einer Firewall
oder einem FTP/HTTP-Proxy arbeitet. Eine vollständige
Liste der unterstützten Variablen finden Sie in
&man.fetch.1;.Benutzer ohne eine ständige Internet-Verbindung können
make fetch im Verzeichnis
/usr/ports ausführen, um die
benötigten Dateien herunterzuladen. 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, benutzen Sie
stattdessen
make fetch-recursive.In einigen seltenen Fällen ist es erforderlich, die
benötigten Dateien von einem anderen Ort als den im Port
definierten MASTER_SITES
herunterzuladen. Sie können
MASTER_SITES mit dem folgenden Kommando
überschreiben:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchDie Variablen WRKDIRPREFIX und
PREFIX überschreiben das voreingestellte
Bau- und Zielverzeichnis. Zum Beispiel:&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports installDieses Kommando baut den Port unter
/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 WRKDIRPREFIX=../ports PREFIX=../local installAlternativ können diese Variablen auch als
Umgebungsvariablen gesetzt werden. In der Manualpage Ihrer
Shell finden Sie Anweisungen, wie Umgebungsvariablen gesetzt
werden.Entfernen installierter PortsPortsentfernenInstallierte Ports können mit
pkg delete wieder deinstalliert werden.
Beispiele für dieses Kommando finden Sie in
&man.pkg-delete.8;.Alternativ kann make deinstall im
Verzeichnis des Ports aufgerufen werden:&prompt.root; cd /usr/ports/sysutils/lsofmake deinstall
===> Deinstalling for sysutils/lsof
===> Deinstalling
Deinstallation has been requested for the following 1 packages:
lsof-4.88.d,8
Thee deinstallation will free 229 kB
[1/1] Deleting lsof-4.88.d,8... doneEs wird empfohlen die Nachrichten zu lesen, die
ausgegeben werden, wenn ein Port deinstalliert wird. Wenn
der Port noch Anwendungen hat, die von ihm abhängig sind,
werdenn diese am Bildschirm angezeigt, aber die Deinstallation
wird forgesetzt. In solchen Fällen ist es besser, die
Anwendung neu zu installieren, um fehlende Abhängigkeiten zu
vermeiden.Ports aktualisierenPortsaktualisierenIm Laufe der Zeit stehen neuere Versionen der Software in
der Ports-Sammlung zur Verfügung. In diesem Abschnitt wird
beschrieben, wie Sie bestimmen, welche Software aktualisiert
werden kann und wie das Upgrade durchzuführen ist.Um festzustellen, ob neuere Versionen der installierten
Ports verfügbar sind, stellen Sie sicher, dass die neueste
Version der Ports-Sammlung installiert ist. Dies wird in
und
beschrieben. Führen Sie unter
&os; 10 und neueren Versionen, bzw. auf Systemen die bereits
mit pkg arbeiten, den folgenden
Befehl aus, um eine Liste der installierten Ports zu erhalten
für die eine aktuelle Version existiert:&prompt.root; pkg version -l "<"Mit &os; 9.X und älteren
Versionen kann stattdessen dieser Befehl verwendet
werden:&prompt.root; pkg_version -l "<"Lesen Sie zuerst
/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. Dazu gehören solche Dinge wie
geänderte Dateiformate, verschobene Konfigurationsdateien,
aber auch Inkompatibilitäten zu einer
Vorgängerversion. Notieren Sie sich alle Anweisungen der
Ports, die aktualisiert werden müssen. Folgen Sie den
Anweisungen, wenn Sie das Upgrade durchführen.Werkzeuge für die Aktualisierung und Verwaltung von
PortsPortsupgrading-toolsDie Ports-Sammlung enthält mehrere Werkzeuge, um die
eigentliche Aktualisierung durchzuführen. Jedes hat seine
Stärken und Schwächen.Historisch gesehen verwenden die meisten Installationen
entweder Portmaster oder
Portupgrade.
Synth ist eine neuere
Alternative.Es bleibt dem Systemadministrator überlassen, welches
dieser Werkzeuge für ein bestimmtes System am besten
geeignet ist. Es wird empfohlen, die Daten zu sichern,
bevor Sie eines dieser Werkzeuge verwenden.Ports mit Portmaster
aktualisierenportmasterports-mgmt/portmaster ist ein sehr
kleines Werkzeug zum Aktualisieren von Ports. Es wurde
entwickelt, um mit den Werkzeugen aus dem &os; Basissystem
zu arbeiten, ohne dabei von anderen Ports oder Datenbanken
abhängig zu sein. Sie können das Programm aus der
Ports-Sammlung installieren:&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install cleanPortmaster teilt Ports in vier
Kategorien ein:Root Port: hat keine Abhängigkeiten und andere Ports
sind nicht von diesem Port abhängig.Trunk Port: hat keine Abhängigkeiten, aber andere
Ports sind von diesem Port abhängig.Branch Port: hat Abhängigkeiten und andere Ports
sind von diesem Port abhängig.Leaf Port: hat Abhängigkeiten, aber andere Ports
sind nicht von diesem Port abhängig.Um eine Liste der installierten Ports anzuzeigen und
nach neueren Versionen zu suchen, verwenden Sie:&prompt.root; portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache22-2.2.3
===>>> New version available: apache22-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions availableUm alle installierten Ports zu aktualisieren,
verwenden Sie folgenden Befehl:&prompt.root; portmaster -aIn der Voreinstellung erzeugt
Portmaster eine
Sicherheitskopie, bevor ein installierter Port gelöscht
wird. Ist die Installation der neuen Version erfolgreich,
wird dieses Backup wieder gelöscht. Wollen Sie das Backup
lieber manuell löschen, verwenden Sie die Option
beim Aufruf von
Portmaster. Durch die
Verwendung von wird
Portmaster im interaktiven
Modus gestartet und fragt bei jedem zu aktualisierenden
Port nach, wie weiter vorgegangen werden soll. Viele
weitere Optionen stehen zur Verfügung. Lesen Sie die
Manualpage von &man.portmaster.8; für weitere Einzelheiten
in Bezug auf ihre Nutzung.Treten während der Aktualisierung Fehler auf, verwenden
Sie die Option , um alle Ports zu
aktualisieren beziehungsweise neu zu bauen:&prompt.root; portmaster -afPortmaster ist auch in der
Lage, neue Ports zu installieren, wobei zuvor alle
abhängigen Ports aktualisiert werden. Um diese Funktion
zu nutzen, geben Sie den Pfad des Ports in der
Ports-Sammlung an:&prompt.root; portmaster shells/bashWeitere Informationen über
ports-mgmt/portmaster finden Sie in der
Beschreibung pkg-descr.Ports mit Portupgrade aktualisierenportupgradeports-mgmt/portupgrade ist ein
weiteres Werkzeug zur Aktualisierung von Ports. Es
installiert eine Reihe von Anwendungen, die für die
Verwaltung von Ports verwendet werden können. Das Programm
ist jedoch von Ruby abhängig. Um den Port zu installieren,
geben Sie ein:&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install cleanDurchsuchen Sie vor jedem Update die Liste der
installierten Ports mit pkgdb -F und
beheben Sie alle gefundenen Probleme.Benutzen Sie portupgrade -a, um
automatisch alle veralteten Ports auf dem System zu
aktualisieren. Verwenden Sie zusätzlich den Schalter
, wenn Sie individuell entscheiden
wollen, ob ein Port aktualisiert werden soll:&prompt.root; portupgrade -aiUm nur eine spezifische Anwendung zu aktualisieren,
verwenden Sie portupgrade
Paketname. Es ist
wichtig den Schalter zu benutzen, um
zuvor alle Ports zu aktualisieren, die von dem gegebenen
Anwendung abhängen.&prompt.root; portupgrade -R firefoxUm Pakete anstelle von Ports zu installieren, verwenden
Sie den Schalter . Mit dieser
Option durchsucht Portupgrade
die in der Umgebungsvariablen PKG_PATH
aufgeführten Verzeichnisse nach Paketen. Sind
lokal keine Pakete vorhanden, versucht
Portupgrade die Pakete
über das Netz herunterzuladen. Gibt es die Pakete
weder lokal noch auf entfernten Rechnern, werden die Ports
verwendet. Um die Nutzung von Ports gänzlich zu verhindern,
benutzen Sie die Option .
Portupgrade würde dann abbrechen,
falls keine Pakete zur Verfügung stehen.&prompt.root; portupgrade -PP gnome3Wenn Sie nur die Quelldateien des Ports, oder die Pakete
mit herunterladen möchten, ohne die
Anwendung zu bauen oder zu installieren, geben Sie den
Schalter an. Weitere Informationen zu
den verfügbaren Schaltern finden Sie in der Manualpage von
&man.portupgrade.1;.Weitere Informationen über
ports-mgmt/portupgrade finden Sie in der
Beschreibung pkg-descr.Platzbedarf von PortsPortsPlattenplatzDie Nutzung der Ports-Sammlung wird im Laufe der Zeit viel
Plattenplatz verschlingen. Nach dem Bau und der Installation
eines Ports, wird make clean die temporären
Arbeitsverzeichnisse work aufräumen.
Portmaster wird dieses Verzeichnis
nach der Installation eines Ports automatisch entfernen
(es sei denn, die Option wird verwendet).
Wenn Portupgrade
installiert ist, wird der folgende Befehl alle Arbeitsverzeichnisse
der lokalen Ports-Sammlung entfernen:&prompt.root; portsclean -CZusätzlich werden sich im Laufe der Zeit zahlreiche
veraltete Distfiles in
/usr/ports/distfiles ansammeln. Mit
Portupgrade können alle Distfiles
gelöscht werden, die vom keinem Port mehr benötigt
werden:&prompt.root; portsclean -DPortupgrade kann alle Distfiles
löschen, die von keinem derzeit installierten Port benötigt
werden:&prompt.root; portsclean -DDWenn Portmaster installiert
ist, benutzen Sie diesen Befehl:&prompt.root; portmaster --clean-distfilesIn der Voreinstellung arbeitet dieses Programm interaktiv
und fragt den Benutzer um Bestätigung, bevor ein Distfile
gelöscht wird.Zusätzlich zu diesen Kommandos gibt es noch
port-mgmt/pkg_cutleaves. Dieses Werkzeug
automatisiert die Deinstallation von installierten Ports, die
nicht weiter benötigt werden.Pakete mit Poudriere
bauenPoudriere ist ein unter der
BSD-Lizenz stehendes Werkzeug zum Erstellen
und Testen von &os;-Paketen. Dieses Programm nutzt &os; Jails,
um die Pakete in einer isolierten Umgebung zu bauen. Diese
Jails können verwendet werden, um Pakete für andere Versionen
von &os; zu bauen, oder um auf einem &arch.amd64;-System Pakete
für i386 zu bauen. Sobald die Pakete gebaut sind, haben sie das
gleiche Format wie auf den offiziellen Spiegeln. Die Pakete
können dann mit &man.pkg.8; oder anderen
Paketverwaltungswerkzeugen benutzt werden.Poudriere wird über das Paket
oder den Port ports-mgmt/poudriere
installiert. Die Installation beinhaltet eine
Beispielkonfiguration in
/usr/local/etc/poudriere.conf.sample.
Kopieren Sie diese Datei nach
/usr/local/etc/poudriere.conf. Bearbeiten
Sie dann die kopierte Datei, um die Konfiguration
anzupassen.Obwohl ZFS für
poudriere nicht zwingend erforderlich
ist, so hat die Nutzung doch einige Vorteile. Wird
ZFS eingesetzt, muss in
/usr/local/etc/poudriere.conf die Variable
ZPOOL definiert, und die Variable
FREEBSD_HOST auf einen nahe gelegenen
Spiegel gesetzt werden. Die Definition von
CCACHE_DIR erlaubt die Verwendung von
devel/ccache, um die Bauzeit für häufig
kompilierten Code verkürzen. Es kann vorteilhaft sein, die
poudriere-Datasets in einem separaten
Verzeichnis auf /poudriere einzuhängen.
Die Werte der anderen Konfigurationsvariablen sind in der Regel
angemessen und brauchen nicht geändert werden.Die Anzahl der Kerne im Prozessor wird verwendet um zu
bestimmen, wie viele Bauprozesse parallel ausgeführt werden.
Stellen Sie ausreichend virtuellen Speicher bereit,
entweder in Form von RAM oder als
Swap-Speicher. Ist der virtuelle Speicher aufgebraucht, bricht
der Bauprozess ab und die Jails stürzen ab, was zu seltsamen
Fehlermeldungen führt.Jails und Ports-Sammlung initialisierenNach der Konfiguration muss
poudriere initialisiert werden,
damit es eine Jail mit der benötigten Ports-Sammlung startet.
Geben Sie mit den Namen der Jail und mit
die gewünschte &os;-Version an. Auf
&os;/&arch.amd64;-Systemen kann die Architektur mit dem
Schalter und i386 oder
amd64 gesetzt werden. Der voreingestellte
Wert für die Architektur können Sie sich mit
uname anzeigen lassen.&prompt.root; poudriere jail -c -j 10amd64 -v 10.0-RELEASE
====>> Creating 10amd64 fs... done
====>> Fetching base.txz for FreeBSD 10.0-RELEASE amd64
/poudriere/jails/10amd64/fromftp/base.txz 100% of 59 MB 1470 kBps 00m42s
====>> Extracting base.txz... done
====>> Fetching src.txz for FreeBSD 10.0-RELEASE amd64
/poudriere/jails/10amd64/fromftp/src.txz 100% of 107 MB 1476 kBps 01m14s
====>> Extracting src.txz... done
====>> Fetching games.txz for FreeBSD 10.0-RELEASE amd64
/poudriere/jails/10amd64/fromftp/games.txz 100% of 865 kB 734 kBps 00m01s
====>> Extracting games.txz... done
====>> Fetching lib32.txz for FreeBSD 10.0-RELEASE amd64
/poudriere/jails/10amd64/fromftp/lib32.txz 100% of 14 MB 1316 kBps 00m12s
====>> Extracting lib32.txz... done
====>> Cleaning up... done
====>> Jail 10amd64 10.0-RELEASE amd64 is ready to be used&prompt.root; poudriere ports -c -p local
====>> Creating local fs... done
====>> Extracting portstree "local"...
Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found.
Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done.
Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Tue Feb 11 01:07:15 CET 2014:
94a3431f0ce567f6452ffde4fd3d7d3c6e1da143efec76100% of 69 MB 1246 kBps 00m57s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Updating from Tue Feb 11 01:07:15 CET 2014 to Tue Feb 11 16:05:20 CET 2014.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 48 patches.
(48/48) 100.00% done.
done.
Applying patches...
done.
Fetching 1 new ports or files... done.
/poudriere/ports/tester/CHANGES
/poudriere/ports/tester/COPYRIGHT
[...]
Building new INDEX files... done.poudriere kann auf einem
einzelnen Rechner Ports mit mehreren Konfigurationen
bauen, in mehreren Jails und aus unterschiedlichen
Ports-Sammlungen. Spezifische Konfigurationen für diese
Kombinationen werden Sets
genannt. Lesen Sie den Abschnitt CUSTOMIZATION in
&man.poudriere.8; für weitere Einzelheiten nach der
Installation von port-mgmt/poudriere oder
ports-mgmt/poudriere-devel.Die hier gezeigte Konfiguration verwendet eine einzelne
Jail-, Port- und Set-spezifische
make.conf in
/usr/local/etc/poudriere.d. Der
verwendete Dateiname in diesem Beispiel wird aus einer
Kombination von Jailnamen, Portnamen und Setnamen zusammen
gesetzt:
10amd64-local-workstation-make.conf.
Die make.conf des Systems und diese neue
Datei werden verwendet, um die make.conf
für die Jail zu erzeugen.Die zu bauenden Pakete werden in
10amd64-local-workstation-pkglist
eingetragen:editors/emacs
devel/git
ports-mgmt/pkg
...Die Optionen und Abhängigkeiten für die Ports werden wie
folgt konfiguriert:&prompt.root; poudriere options -j 10amd64 -p local -z workstation -f 10amd64-local-workstation-pkglistSchließlich werden die Pakete gebaut und ein
Paket-Repository erstellt:&prompt.root; poudriere bulk -j 10amd64 -p local -z workstation -f 10amd64-local-workstation-pkglistWährend der Ausführung zeigt Ctrlt
den aktuellen Status des Baus an.
Poudriere speichert zudem Dateien
in /poudriere/logs/bulk/jailname. Diese
Dateien kann ein Webserver nutzen, um Informationen über den
Bau anzuzeigen.Nach der Fertigstellung stehen die Pakete im
poudriere Repository für die
Installation zur Verfügung.Weitere Informationen zu
poudriere finden Sie in
&man.poudriere.8; und unter .Konfiguration des pkg-Clients für das Poudriere
RepositoryObwohl es möglich ist ein eigenes Repository zusammen mit
dem offiziellen Repository zu nutzen, ist es manchmal
sinnvoll das offizielle Repository zu deaktivieren. Dazu
wird eine Konfigurationsdatei erstellt, welche die offizielle
Konfigurationsdatei überschreibt. Erzeugen Sie dazu
/usr/local/etc/pkg/repos/FreeBSD.conf
mit dem folgenden Inhalt:FreeBSD: {
enabled: no
}Am einfachsten ist es, das poudriere Repository über
HTTP zur Verfügung zu stellen. Setzen Sie
einen Webserver auf, der die Dateien des Paketverzeichnisses
ausliefert, zum Beispiel
/usr/local/poudriere/data/packages/10amd64.
10amd64
bezeichnet dabei den Namen des Baus.Wenn die URL des Paket Repositories
http://pkg.example.com/10amd64 ist, dann
sollte die Konfiguration des Repositories in
/usr/local/etc/pkg/repos/custom.conf
wie folgt aussehen:custom: {
url: "http://pkg.example.com/10amd64",
enabled: yes,
}Nach der InstallationUnabhängig davon, ob die Software aus einem binären Paket
oder aus einem Port installiert wird, benötigen die meisten
Anwendungen von Drittanbietern ein gewisses Maß an
Konfiguration, nachdem sie installiert wurden. Die folgenden
Kommandos und Speicherorte helfen Ihnen dabei festzustellen, was
mit der Anwendung zusammen installiert wurde.Die meisten Anwendungen installieren mindestens eine
Konfigurationsdatei nach
/usr/local/etc. Falls die Anwendung
viele Konfigurationsdateien enthält, wird ein
Unterverzeichnis erstellt um die Dateien zu speichern. Oft
werden die Konfigurationsdateien mit einem Suffix wie
beispielsweise .sample installiert.
Die Konfigurationsdateien sollten überprüft und ggf.
bearbeitet werden, um die Anforderungen des Systems zu
erfüllen. Um eine Konfigurationsdatei zu bearbeiten,
kopieren Sie diese zunächst ohne die Erweiterung
.sample.Wenn die Anwendung Dokumentation zur Verfügung stellt,
wird diese nach /usr/local/share/doc
installiert. Viele Anwendungen installieren auch
Manualpages. Diese Dokumentation sollten Sie lesen, bevor
Sie fortfahren.Einige Anwendungen laufen als Dienst und müssen vor
dem ersten Start in /etc/rc.conf
eingetragen werden. Diese Anwendungen installieren meist
ein Skript in /usr/local/etc/rc.d.
Weitere Informationen finden Sie im .In der Voreinstellung führen Anwendungen weder ihr
Startskript bei der Installation aus, noch führen sie ihr
Stopskript während der Deinstallation aus. Diese
Entscheidung bleibt dem einzelnen Systemadministrator
überlassen.Benutzer der &man.csh.1; sollten
rehash ausführen, um die neu
installierten Programme nutzen zu können.Benutzen Sie pkg info, um die
Dateien, Manualpages und Binaries zu ermitteln, die mit der
Anwendung installiert wurden.Kaputte PortsWenn sich ein Port nicht bauen oder installieren lässt,
versuchen Sie folgendes:Stellen Sie fest, ob die Datenbank mit den
Problemberichten bereits einen Lösungsvorschlag
enthält. Ist dies der Fall, kann die vorgeschlagene Lösung
getestet werden.Bitten Sie den Betreuer des Ports um Hilfe. 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
die Zeile mit $FreeBSD: aus dem
Makefile und die Ausgabe bis zur
Fehlermeldung mitzuschicken.Einige Ports werden nicht von einer Einzelperson,
sondern von einer
Mailingliste betreut. Viele (aber nicht alle)
dieser Adressen haben die Form freebsd-NameDerListe@FreeBSD.org.
Denken Sie daran, wenn Sie Ihre Fragen formulieren.Dies gilt insbesondere für Ports, die von
ports@FreeBSD.org betreut
werden. Derartige Ports haben überhaupt keinen
Betreuer. Korrekturen und Unterstützung kommen daher nur
von Personen, die diese Mailingliste abonniert haben.
Gerade in diesem Bereich werden jederzeit zusätzliche
freiwillige Helfer benötigt!Erhalten Sie auf Ihre Anfrage keine Antwort, benutzen
Sie Bugzilla, um einen Problembericht zu erstellen.
Bevor Sie einen solchen Bericht erstellen, lesen Sie den
Artikel Writing
&os; Problem Reports.Reparieren Sie ihn! Das &os;
Porter's Handbook enthält eine detaillierte
Beschreibung des Portsystems. Damit sind Sie in der Lage,
einen zeitweilig kaputten Port zu reparieren oder einen
eigenen Port zu erstellen.Installieren Sie das Paket anstelle des Ports.
Anweisungen hierzu finden Sie in
.
Index: head/de_DE.ISO8859-1/books/handbook/security/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/security/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/security/chapter.xml (revision 51222)
@@ -1,4452 +1,4452 @@
SicherheitTomRhodesNeu verfasst von MartinHeinenÜbersetzt von SicherheitÜbersichtSicherheit, ob nun physisch oder virtuell, ist ein so breit
gefächertes Thema, dass sich eine ganze Industrie darum gebildet
hat. Es wurden bereits hunderte Verfahren zur Sicherung von
Systemen und Netzwerken verfasst, und als Benutzer von &os; ist
es unumgänglich zu verstehen, wie Sie sich gegen Angreifer und
Eindringlinge schützen können.In diesem Kapitel werden einige Grundlagen und Techniken
diskutiert. Ein &os;-System implementiert Sicherheit in
mehreren Schichten, und viele weitere Programme von
Drittanbietern können zur Verbesserung der Sicherheit
beitragen.Nachdem Sie dieses Kapitel gelesen haben, werden Sie:Grundlegende auf &os; bezogene Sicherheitsaspekte
kennen.Die verschiedenen Verschlüsselungsmechanismen
von &os; kennen.Wissen, wie Sie ein Einmalpasswörter
zur Authentifizierung verwenden.TCP Wrapper für &man.inetd.8;
einrichten können.Wissen, wie Sie Kerberos
unter &os; einrichten.Wissen, wie Sie IPsec konfigurieren
und ein VPN einrichten.Wissen, wie Sie OpenSSH unter
&os; konfigurieren und benutzen.Wissen, wie Sie ACLs für Dateisysteme
benutzen.pkg anwenden können,
um Softwarepakete aus der Ports-Sammlung auf bekannte
Sicherheitslücken hin zu überprüfen.Mit &os;-Sicherheitshinweisen umgehen können.Eine Vorstellung davon haben, was Prozessüberwachung
(Process Accounting) ist und
wie Sie diese Funktion unter &os; aktivieren können.Wissen, wie Sie Login-Klassen oder die
Ressourcen-Datenbank benutzen, um die Ressourcen für
Benutzer zu steuern.Bevor Sie dieses Kapitel lesen, sollten SieGrundlegende Konzepte von &os; und dem Internet
verstehen.Dieses Buch behandelt weitere Sicherheitsthemen.
Beispielsweise werden verbindliche Zugriffskontrollen
im und Firewalls im
besprochen.EinführungSicherheit ist die Verantwortung eines jeden Einzelnen. Ein
schwacher Einstiegspunkt in einem System kann einem
Eindringling Zugriff auf wichtige Informationen verschaffen, was
sich verheerend auf das gesamte Netzwerk auswirken kann. Eines
der Grundprinzipien der Informationssicherheit sind die
Vertraulichkeit, Integrität und Verfügbarkeit von
Informationssystemen.Diese Grundprinzipien sind ein fundamentales Konzept der
Computer-Sicherheit, da Kunden und Benutzer erwarten, dass ihre
Daten geschützt sind. Zum Beispiel erwartet ein Kunde, dass
seine Kreditkarteninformationen sicher gespeichert werden
(Vertraulichkeit), dass seine Aufträge nicht hinter den Kulissen
geändert werden (Integrität) und dass er zu jeder Zeit Zugang zu
seinen Informationen hat (Verfügbarkeit).Um diese Grundprinzipien zu implementieren, wenden
Sicherheitsexperten das sogenannte
Defense-in-Depth-Konzept an. Die
Idee dahinter ist, mehrere Sicherheitsschichten zu addieren, so
dass nicht die gesamte Systemsicherheit gefährdet ist, wenn
eine einzelne Sicherheitsschicht kompromittiert wird.
Beispielsweise ist es nicht ausreichend, ein Netzwerk oder ein
System nur mit einer Firewall zu sichern. Der
Systemadministrator muss auch Benutzerkonten überwachen, die
Integrität von Binärdateien prüfen und sicherstellen, dass keine
bösartigen Programme installiert sind. Um eine effektive
Sicherheitsstrategie zu implementieren, muss man Bedrohungen
verstehen und wissen, wie man sich dagegen verteidigen
kann.Was ist eine Bedrohung, wenn es um Computer-Sicherheit geht?
Bedrohungen beschränken sich nicht nur auf entfernte Angreifer,
die sich unerlaubten Zugriff auf ein System verschaffen wollen.
Zu den Bedrohungen zählen auch Mitarbeiter, bösartige Software,
nicht autorisierte Netzwerkgeräte, Naturkatastrophen,
Sicherheitslücken und sogar konkurrierende Unternehmen.Der Zugriff auf Netzwerke und Systeme erfolgt ohne
Erlaubnis, manchmal durch Zufall, oder von entfernten
Angreifern, und in einigen Fällen durch Industriespionage oder
ehemalige Mitarbeiter. Als Anwender müssen Sie vorbereitet sein
und auch zugeben, wenn ein Fehler zu einer Sicherheitsverletzung
geführt hat. Melden Sie Probleme umgehend dem verantwortlichen
Sicherheitspersonal. Als Administrator ist es wichtig,
Bedrohungen zu kennen und darauf vorbereitet zu sein, mögliche
Schäden zu mildern.Wenn Sicherheit auf Systeme angewendet wird, empfiehlt es
sich mit der Sicherung der Benutzerkonten zu beginnen und dann
die Netzwerkschicht zu sichern. Dabei ist zu beachten, dass die
Sicherheitsrichtlinien des Systems und des Unternehmens
eingehalten werden. Viele Unternehmen haben bereits eine
Sicherheitsrichtlinie, welche die Konfiguration von technischen
Geräten abdeckt. Die Richtlinie sollte die Konfiguration von
Arbeitsplatzrechnern, Desktops, mobilen Geräten, Mobiltelefonen,
Produktions- und Entwicklungsservern umfassen. In einigen
Fällen ist bereits eine Standardvorgehensweise vorhanden.
Fragen Sie im Zweifelsfall das Sicherheitspersonal.Der übrige Teil dieser Einführung beschreibt, wie einige
grundlegende Sicherheitskonfigurationen auf einem
&os;-System durchgeführt werden. Der Rest des Kapitels
zeigt einige spezifische Werkzeuge, die verwendet werden
können, um eine Sicherheitsrichtlinie auf einem &os;-System zu
implementieren.Anmeldungen am System verhindernEin guter Ausgangspunkt für die Absicherung des Systems
ist die Prüfung der Benutzerkonten. Stellen Sie sicher, dass
root ein starkes
Passwort besitzt und dass dieses Passwort nicht weitergegeben
wird. Deaktivieren Sie alle Konten, die keinen Zugang zum
System benötigen.Es existieren zwei Methoden, um die Anmeldung über ein
Benutzerkonto zu verweigern. Die erste Methode ist, das
Konto zu sperren. Dieses Beispiel sperrt das Benutzerkonto
toor:&prompt.root; pw lock toorBei der zweiten Methode wird der Anmeldevorgang
verhindert, indem die Shell auf
/sbin/nologin gesetzt wird. Nur der
Superuser kann die Shell für andere Benutzer ändern:&prompt.root; chsh -s /usr/sbin/nologin toorDie Shell /usr/sbin/nologin
verhindert, dass dem Benutzer bei der Anmeldung am System eine
Shell zugeordnet wird.Gemeinsame Nutzung von BenutzerkontenIn manchen Fällen wird die Systemadministration auf
mehrere Benutzer aufgeteilt. &os; bietet zwei Methoden, um
solche Situationen zu handhaben. Bei der ersten und nicht
empfohlenen Methode wird ein gemeinsames root Passwort der
Mitglieder der Gruppe wheel verwendet. Hier gibt
der Benutzer su und das Passwort für
wheel ein, wenn er
die Rechte des Superusers benötigt. Der Benutzer sollte dann
nach der Beendigung der administrativen Aufgaben
exit eingeben. Um einen Benutzer zu dieser
Gruppe hinzuzufügen, bearbeiten Sie
/etc/group und fügen Sie den Benutzer an
das Ende des Eintrags wheel hinzu. Die
Benutzer müssen durch Komma und ohne Leerzeichen getrennt
werden.Die zweite und empfohlene Methode ein Benutzerkonto zu
teilen wird über den Port oder das Paket
security/sudo realisiert. Dieses Programm
bietet zusätzliche Prüfungen, bessere Benutzerkontrolle und
es kann auch konfiguriert werden, einzelnen Benutzern Zugriff
auf bestimme, privilegierte Befehle zu gestatten.Benutzen Sie nach der Installation
visudo, um
/usr/local/etc/sudoers zu bearbeiten.
Dieses Beispiel erstellt eine neue Gruppe webadmin und fügt das
Benutzerkonto trhodes dieser Gruppe hinzu.
Anschließend wird die Gruppe so konfiguriert, dass es
Gruppenmitgliedern gestattet wird apache24
neu zu starten:&prompt.root; pw groupadd webadmin -M trhodes -g 6000
&prompt.root; visudo
%webadmin ALL=(ALL) /usr/sbin/service apache24 *Passwort-HashesPasswörter sind ein notwendiges Übel. Wenn sie verwendet
werden müssen, sollten sie sehr komplex sein und dazu sollte
eine leistungsfähige Hash-Funktion gewählt werden, um die
Version des Passworts zu verschlüsseln, die in der
Passwortdatenbank gespeichert wird. &os; unterstützt die
Hash-Funktionen DES,
MD5, SHA256,
SHA512, sowie
Blowfish Hash-Funktionen in seiner
crypt()-Bibliothek. Das in der
Voreinstellung verwendete SHA512 sollte
nicht durch eine weniger sichere Hash-Funktion getauscht
werden. Es kann jedoch durch den besseren
Blowfish-Algorithmus ersetzt werden.Blowfish ist nicht Bestandteil von
AES und ist nicht kompatibel mit allen
Federal Information Processing Standards
(FIPS). Die Verwendung wird in einigen
Umgebungen vielleicht nicht gestattet.Um zu bestimmen, welche Hash-Funktion das Passwort eines
Benutzers verschlüsselt, kann der Superuser den Hash für den
Benutzer in der Passwortdatenbank von &os; nachsehen. Jeder
Hash beginnt mit einem Zeichen, mit dem die verwendete
Hash-Funktion identifiziert werden kann. Bei
DES gibt es allerdings kein führendes
Zeichen. MD5 benutzt das Zeichen
$. SHA256 und
SHA512 verwenden das Zeichen
$6$. Blowfish benutzt das Zeichen
$2a$. In diesem Beispiel wird das Passwort
von dru mit dem
Hash-Algorithmus SHA512 verschlüsselt, da
der Hash mit $6$ beginnt. Beachten Sie,
dass der verschlüsselte Hash und nicht das Passwort selbst, in
der Passwortdatenbank gespeichert wird:&prompt.root; grep dru /etc/master.passwd
dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBPuGME0:1001:1001::0:0:dru:/usr/home/dru:/bin/cshDer Hash-Mechanismus wird in der Login-Klasse des
Benutzers festgelegt. In diesem Beispiel wird die
voreingestellte Login-Klasse für den Benutzer verwendet. Der
Hash-Algorithmus wird mit dieser Zeile in
/etc/login.conf gesetzt: :passwd_format=sha512:\Um den Algorithmus auf Blowfish zu ändern, passen Sie die
Zeile wie folgt an: :passwd_format=blf:\Führen Sie anschließend
cap_mkdb /etc/login.conf aus, wie in beschrieben. Beachten Sie, dass
vorhandene Passwort-Hashes durch diese Änderung nicht
beeinträchtigt werden. Das bedeutet, dass alle Passwörter neu
gehasht werden sollten, indem die Benutzer mit
passwd ihr Passwort ändern.Für die Anmeldung auf entfernten Rechnern sollte eine
Zwei-Faktor-Authentifizierung verwendet werden. Ein Beispiel
für eine Zwei-Faktor-Authentifizierung ist
etwas, was Sie besitzen (bspw. einen Schlüssel)
und etwas, was Sie wissen (bspw. das Passwort
für diesen Schlüssel). Da OpenSSH
Teil des &os;-Basissystems ist, sollten alle Anmeldungen über
das Netzwerk über eine verschlüsselte Verbindung mit einer
schlüsselbasierten Authentifizierung stattfinden. Passwörter
sollten hier nicht verwendet werden. Weitere Informationen
finden Sie in . Kerberos-Benutzer
müssen eventuell zusätzliche Änderungen vornehmen, um
OpenSSH in Ihrem Netzwerk zu
implementieren. Diese Änderungen sind in beschrieben.Durchsetzung einer Passwort-RichtlinieDie Durchsetzung einer starken Passwort-Richtlinie für
lokale Benutzerkonten ist ein wesentlicher Aspekt der
Systemsicherheit. In &os; kann die Länge, Stärke und
Komplexität des Passworts mit den Pluggable
Authentication Modules
(PAM) implementiert werden.In diesem Abschnitt wird gezeigt, wie Sie die minimale und
maximale Passwortlänge und die Durchsetzung von gemischten
Zeichen mit dem Modul pam_passwdqc.so
konfigurieren. Dieses Modul wird aufgerufen, wenn ein
Benutzer sein Passwort ändert.Um dieses Modul zu konfigurieren, müssen Sie als Superuser
die Zeile mit pam_passwdqc.so in
/etc/pam.d/passwd auskommentieren.
Anschließend bearbeiten Sie die Zeile, so dass sie den
vorliegenden Passwort-Richtlinien entspricht:password requisite pam_passwdqc.so min=disabled,disabled,disabled,12,10 similar=deny retry=3 enforce=usersDieses Beispiel legt gleich mehrere Anforderungen für neue
Passwörter fest. Die Einstellung min
kontrolliert die Passwortlänge. Es verfügt über fünf Werte,
weil dieses Modul fünf verschiedene Arten von Passwörtern
definiert, basierend auf der Komplexität. Die Komplexität
wird durch die Art von Zeichen definiert, die in einem
Passwort vorhanden sind, wie zum Beispiel Buchstaben, Zahlen
und Sonderzeichen. Die verschiedenen Arten von Passwörtern
werden in &man.pam.passwdqc.8; beschrieben. In diesem
Beispiel sind die ersten drei Arten von Passwörtern
deaktiviert, was bedeutet, dass Passwörter, die dieser
Komplexitätsstufe entsprechen, nicht akzeptiert werden,
unabhängig von der Länge des Passworts. Die
12 legt eine Richtlinie von mindestens
zwölf Zeichen fest, wenn das Passwort auch drei Arten von
Komplexität aufweist. Die 10 legt eine
Richtlinie fest, die auch Passwörter mit mindestens zehn
Zeichen zulassen, wenn das Passwort Zeichen mit vier Arten
von Komplexität aufweist.Die Einstellung similar verbietet
Passwörter, die dem vorherigen Passwort des Benutzers ähnlich
sind. Die Einstellung retry bietet dem
Benutzer drei Möglichkeiten, ein neues Passwort
einzugeben.Sobald diese Datei gespeichert wird, sehen Benutzer bei
der Änderung ihres Passworts die folgende Meldung:&prompt.user; passwd
Changing local password for trhodes
Old Password:
You can now choose the new password.
A valid password should be a mix of upper and lower case letters,
digits and other characters. You can use a 12 character long
password with characters from at least 3 of these 4 classes, or
a 10 character long password containing characters from all the
classes. Characters that form a common pattern are discarded by
the check.
Alternatively, if noone else can see your terminal now, you can
pick this as your password: "trait-useful&knob".
Enter new password:Wenn ein Passwort nicht den Richtlinien entspricht, wird
es mit einer Warnung abgelehnt und der Benutzer bekommt die
Möglichkeit, es erneut zu versuchen, bis die Anzahl an
Wiederholungen erreicht ist.Die meisten Passwort-Richtlinien erzwingen, dass
Passwörter nach einer bestimmten Anzahl von Tagen ablaufen.
Um dieses Limit in &os; zu konfigurieren, setzen Sie es für
die Login-Klasse des Benutzers in
/etc/login.conf. Die voreingestellte
Login-Klasse enthält dazu ein Beispiel:# :passwordtime=90d:\Um für diese Login-Klasse das Passwort nach 90 Tagen
ablaufen zu lassen, entfernen Sie das Kommentarzeichen
(#), speichern Sie die Änderungen und
führen Sie cap_mkdb /etc/login.conf
aus.Um das Passwort für einzelne Benutzer ablaufen zu lassen,
geben Sie pw ein Ablaufdatum oder die
Anzahl von Tagen, zusammen mit dem Benutzer an:&prompt.root; pw usermod -p 30-apr-2015 -n trhodesWie zu sehen ist, wird das Ablaufdatum in der Form von
Tag, Monat und Jahr angegeben. Weitere Informationen finden
Sie in &man.pw.8;.Erkennen von RootkitsEin Rootkit ist eine nicht
autorisierte Software die versucht, Root-Zugriff auf ein
System zu erlangen. Einmal installiert, wird diese bösartige
Software normalerweise eine Hintertür für den Angreifer
installieren. Realistisch betrachtet sollte ein durch ein
Rootkit kompromittiertes System nach der Untersuchung von
Grund auf neu installiert werden. Es besteht jedoch die
enorme Gefahr, dass sogar das Sicherheitspersonal oder
Systemingenieure etwas übersehen, was ein Angreifer dort
platziert hat.Wird ein Rootkit erkannt, ist dies bereits ein Zeichen
dafür, dass das System an einem bestimmten Zeitpunkt
kompromittiert wurde. Meist neigen diese Art von Anwendungen
dazu, sehr gut versteckt zu sein. Dieser Abschnitt zeigt das
Werkzeug security/rkhunter, mit dem
Rootkits erkannt werden können.Nach der Installation dieses Ports oder Pakets kann das
System mit dem folgenden Kommando überprüft werden. Das
Programm generiert eine ganze Menge Informationen und Sie
werden diverse Male ENTER drücken
müssen:&prompt.root; rkhunter -cNachdem der Prozess abgeschlossen ist, wird eine
Statusmeldung auf dem Bildschirm ausgegeben. Die Meldung
enthält die Anzahl der überprüften Dateien, verdächtige
Dateien, mögliche Rootkits und weitere Informationen. Während
der Überprüfung erscheinen allgemeine Sicherheitswarnungen,
zum Beispiel über versteckte Dateien, die Auswahl von
OpenSSH-Protokollen und bekannte,
anfällige Versionen installierter Anwendungen. Diese können
nun direkt, oder nach detaillierter Analyse untersucht
werden.Jeder Administrator sollte wissen, was auf den Systemen
läuft, für die er verantwortlich ist. Werkzeuge von
Drittanbietern, wie rkhunter oder
sysutils/lsof, sowie native Befehle wie
netstat oder ps, können
eine große Menge an Informationen über das System anzeigen.
Machen Sie sich Notizen darüber, was normal
ist, und fragen Sie nach, wenn Ihnen etwas suspekt erscheint.
Eine Beeinträchtigung zu verhindern ist ideal, aber die
Erkennung einer Beeinträchtigung ist ein Muss.Überprüfung von BinärdateienDie Überprüfung von System- und Binärdateien ist wichtig,
da sie Systemadministratoren Informationen über
Systemänderungen zur Verfügung stellt. Eine Software, die das
System auf Änderungen überwacht wird Intrustion
Detection System (IDS)
genannt.&os; bietet native Unterstützung für ein einfaches
IDS-System. Obwohl die täglichen
Sicherheits-E-Mails den Administrator über Änderungen in
Kenntnis setzen, werden diese Informationen lokal gespeichert
und es besteht die Möglichkeit, dass ein Angreifer diese
Informationen manipulieren kann, um Änderungen am System zu
verbergen. Daher ist es empfehlenswert, einen eigenen Satz an
Signaturen zu erstellen und diese dann in einem
schreibgeschützten Verzeichnis, oder vorzugsweise auf einem
USB-Stick oder auf einem entfernten Server
zu speichern.Das im Basissystem enthaltene Werkzeug
mtree kann verwendet werden, um
eine Spezifikation des Inhalts eines Verzeichnisses zu
erzeugen. Hierbei wird ein Startwert
(Seed) oder eine numerische
Konstante benutzt, um die Spezifikation zu erstellen und um
sicherzustellen, dass sich die Spezifikation nicht geändert
hat. Dadurch kann festgestellt werden, ob eine Datei oder
eine Binärdatei verändert wurde. Da ein Angreifer den
Seed nicht kennt, ist es ihm fast unmöglich die
Prüfsummen von Dateien zu manipulieren. Das folgende Beispiel
generiert einen Satz mit SHA256-Prüfsummen
für jede Binärdatei unterhalb von /bin
und speichert diese Werte in einer versteckten Datei im
Heimatverzeichnis von root unter dem Namen
/root/.bin_chksum_mtree:&prompt.root; mtree -s 3483151339707503 -c -K cksum,sha256digest -p /bin > /root/.bin_chksum_mtree
&prompt.root; mtree: /bin checksum: 34270122253483151339707503 stellt den
Seed dar. Diesen Wert sollten Sie sich merken, aber
nicht mit anderen Personen teilen.Die Ausgabe von
/root/.bin_chksum_mtree sollte ähnlich
der folgenden sein:# user: root
# machine: dreadnaught
# tree: /bin
# date: Mon Feb 3 10:19:53 2014
# .
/set type=file uid=0 gid=0 mode=0555 nlink=1 flags=none
. type=dir mode=0755 nlink=2 size=1024 \
time=1380277977.000000000
\133 nlink=2 size=1170 time=1380277977.000000000 \
cksum=484492447 \
sha256digest=6207490fbdb5ed1904441fbfa941279055c3e24d3a4049aeb45094596400662a
cat size=12096 time=1380277975.000000000 cksum=3909216944 \
sha256digest=65ea347b9418760b247ab10244f47a7ca2a569c9836d77f074e7a306900c1e69
chflags size=8168 time=1380277975.000000000 cksum=3949425175 \
sha256digest=c99eb6fc1c92cac335c08be004a0a5b4c24a0c0ef3712017b12c89a978b2dac3
chio size=18520 time=1380277975.000000000 cksum=2208263309 \
sha256digest=ddf7c8cb92a58750a675328345560d8cc7fe14fb3ccd3690c34954cbe69fc964
chmod size=8640 time=1380277975.000000000 cksum=2214429708 \
sha256digest=a435972263bf814ad8df082c0752aa2a7bdd8b74ff01431ccbd52ed1e490bbe7Der Report enthält den Rechnernamen, das Datum und die
Uhrzeit der Spezifikation, sowie den Namen des Benutzers, der
die Spezifikation erstellt hat. Für jede Binärdatei im
Verzeichnis gibt es eine Prüfsumme, Größe, Uhrzeit und einen
SHA256-Hashwert.Um sicherzustellen, dass die binären Signaturen nicht
verändert wurden, vergleichen Sie den Inhalt des aktuellen
Verzeichnisses mit der zuvor erstellen Spezifikation.
Speichern Sie die Ergebnisse in einer Datei. Dieses Kommando
benötigt den Seed, der verwendet wurde um die
ursprüngliche Spezifikation zu erstellen:&prompt.root; mtree -s 3483151339707503 -p /bin < /root/.bin_chksum_mtree >> /root/.bin_chksum_output
&prompt.root; mtree: /bin checksum: 3427012225Dies sollte die gleiche Prüfsumme für
/bin produzieren, wie die ursprüngliche
Spezifikation. Wenn keine Änderungen an den Binärdateien in
diesem Verzeichnis aufgetreten sind, wird die Ausgabedatei
/root/.bin_chksum_output leer sein. Um
eine Änderung zu simulieren, ändern Sie mit
touch das Datum von
/bin/cat und führen Sie die Verifikation
erneut aus:&prompt.root; touch /bin/cat
&prompt.root; mtree -s 3483151339707503 -p /bin < /root/.bin_chksum_mtree >> /root/.bin_chksum_output
&prompt.root; more /root/.bin_chksum_output
cat changed
modification time expected Fri Sep 27 06:32:55 2013 found Mon Feb 3 10:28:43 2014Es wird empfohlen, Spezifikationen für Verzeichnisse zu
erstellen, welche Binärdateien, Konfigurationsdateien und
sensible Daten enthalten. In der Regel werden Spezifikationen
für /bin, /sbin,
/usr/bin, /usr/sbin,
/usr/local/bin,
/usr/local/sbin,
/etc und
/usr/local/etc erstellt.Mit security/aide steht ein
fortgeschrittenes IDS-System zur Verfügung,
aber in den meisten Fällen bietet mtree die
Funktionalität, die von Administratoren benötigt wird. Es ist
jedoch sehr wichtig den Seed und die Prüfsummen in der
Ausgabe vor böswilligen Benutzern verborgen zu halten.
Weitere Informationen zu mtree finden Sie
in &man.mtree.8;.System-Tuning für SicherheitUnter &os; können viele Systemfunktionen mit
sysctl konfiguriert werden. Dieser
Abschnitt behandelt ein paar Sicherheitsmerkmale mit denen
Denial of Service
(DoS) verhindert werden sollen. Weitere
Informationen über die Benutzung von
sysctl und wie Werte vorübergehend oder
auch permanent geändert werden können, finden Sie in .Jedes Mal wenn eine Einstellung mit
sysctl geändert wird, vergrößert sich die
Wahrscheinlichkeit eines unerwünschten Schadens, was die
Verfügbarkeit des Systems beeinflusst. Alle Änderungen
sollten überwacht und wenn möglich, vorher auf einem
Testsystem ausprobiert werden, bevor sie auf einem
Produktivsystem verwendet werden.In der Voreinstellung startet &os; in der Sicherheitsstufe
(Securelevel)
-1. Dieser Modus wird
unsicherer Modus genannt, da die
unveränderlichen Datei-Flags ausgeschaltet werden können und
dadurch von allen Geräten gelesen und geschrieben werden kann.
Solange die Einstellung nicht über sysctl
oder in den Startskripten geändert wird, verbleibt die
Sicherheitsstufe auf -1. Die
Sicherheitsstufe kann während des Systemstarts erhöht werden.
Dazu muss in /etc/rc.confkern_securelevel_enable auf
YES und kern_securelevel
auf den gewünschten Wert gesetzt werden. Weitere
Informationen zu diesen Einstellungen und den verfügbaren
Sicherheitsstufen finden Sie in &man.security.7; und
&man.init.8;.Das Erhöhen der Sicherheitsstufe kann zu Problemen mit
&xorg; führen.Die Einstellungen
net.inet.tcp.blackhole und
net.inet.udp.blackhole können benutzt
werden, um eingehende SYN-Pakete an
geschlossenen Ports zu blockieren, ohne ein
RST-Paket als Antwort zu senden.
Standardmäßig wird jedoch ein RST-Paket
gesendet, um zu zeigen, dass der Port geschlossen ist. Das
ändern dieser Voreinstellung bietet einen gewissen Schutz
gegen Portscans. Diese Portscans versuchen herauszufinden,
welche Anwendungen auf einem System ausgeführt werden. Setzen
Sie net.inet.tcp.blackhole auf
2 und
net.inet.udp.blackhole auf
1. Weitere Informationen zu diesen
Einstellungen finden Sie in &man.blackhole.4;.Die Einstellung
net.inet.icmp.drop_redirect hilft dabei,
sogenannte Redirect-Angriffe zu verhindern. Ein
Redirect-Angriff ist eine Art von DoS, die
massenhaft ICMP-Pakete Typ 5 versendet. Da
solche Pakete nicht benötigt werden, setzen Sie
net.inet.icmp.drop_redirect auf
1 und
net.inet.ip.redirect auf
0.Source Routing zur
Erfassung und zum Zugriff auf nicht-routbare Adressen im
internen Netzwerk. Dies sollte deaktiviert werden, da
nicht-routbare Adressen in der Regel nicht absichtlich
geroutet werden. Um diese Funktion zu deaktivieren, setzen
Sie net.inet.ip.sourceroute und
net.inet.accept_sourceroute auf
0.Wenn ein Netzwerkgerät Nachrichten an alle Rechner in
einem Subnetz senden muss, wird eine
ICMP-Echo-Request Nachricht an die
Broadcast-Adresse gesendet. Allerdings gibt es keinen guten
Grund für externe Rechner, solche Nachrichten zu verschicken.
Um alle externen Broadcast-Anfragen abzulehnen, setzen Sie
net.inet.icmp.bmcastecho auf
0.Einige zusätzliche Einstellungen sind in &man.security.7;
dokumentiert.EinmalpasswörterEinmalpasswörterSicherheitEinmalpasswörterIn der Voreinstellung unterstützt &os;
One-time Passwords in Everything
(OPIE). OPIE wurde
konzipiert um Replay-Angriffe zu verhindern, bei dem ein
Angreifer das Passwort eines Benutzers ausspäht und es
benutzt, um Zugriff auf ein System zu erlangen. Da ein Passwort
unter OPIE nur einmal benutzt wird, ist ein
ausgespähtes Passwort für einen Angreifer nur von geringem
Nutzen. OPIE verwendet eine sichere
Hash-Funktion und ein Challenge/Response-System, um Passwörter
zu verwalten. Die &os;-Implementation verwendet in der
Voreinstellung die MD5-Hash-Funktion.OPIE verwendet drei verschiedene Arten
von Passwörtern. Das erste ist das normale &unix;- oder
Kerberos-Passwort. Das zweite ist das Einmalpasswort, das von
opiekey generiert wird. Das dritte Passwort
ist das geheime Passwort, das zum Erstellen der
Einmalpasswörter verwendet wird. Das geheime Passwort steht in
keiner Beziehung zum &unix;-Passwort und beide Passwörter
sollten unterschiedlich sein.Es gibt noch zwei weitere Werte, die für
OPIE wichtig sind. Der erste ist der
Initialwert (engl.
seed oder
key), der aus zwei Buchstaben und
fünf Ziffern besteht. Der zweite Wert ist der
Iterationszähler, eine Zahl zwischen 1 und 100.
OPIE generiert das Einmalpasswort, indem
es den Initialwert und das geheime Passwort aneinander hängt
und dann die MD5-Hash-Funktion so oft, wie
durch den Iterationszähler gegeben, anwendet. Das Ergebnis wird
in sechs englische Wörter umgewandelt, die das Einmalpasswort
ergeben. Das Authentifizierungssystem (meistens PAM) merkt sich
das zuletzt benutzte Einmalpasswort und der Benutzer ist
authentifiziert, 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, muss
OPIE neu initialisiert werden.Es gibt ein paar Programme, die in diesen Prozess einbezogen
werden. Ein Einmalpasswort oder eine Liste von
Einmalpasswörtern, die von &man.opiekey.1; durch Angabe eines
Iterationszählers, eines Initalwertes und einem geheimen
Passwort generiert wird. &man.opiepasswd.1; wird benutzt, um
Passwörter, Iterationszähler oder Initialwerte zu ändern.
&man.opieinfo.1; hingegen gibt den momentanen Iterationszähler
und Initialwert eines Benutzers aus, den es aus
/etc/opiekeys ermittelt.Dieser Abschnitt beschreibt vier verschiedene Arten von
Tätigkeiten. Zuerst wird erläutert, wie Einmalpasswörter über
eine gesicherte Verbindung konfiguriert werden. Als nächstes
wird erklärt, wie opiepasswd über
eine nicht gesicherte Verbindung eingesetzt wird. Als drittes
wird beschrieben, wie man sich über eine nicht gesicherte
Verbindung anmeldet. Die vierte Tätigkeit beschreibt, wie man
eine Reihe von Schlüsseln generiert, die man sich aufschreiben
oder ausdrucken kann, um sich von Orten anzumelden, die über
keine gesicherten Verbindungen verfügen.OPIE initialisierenUm OPIE erstmals zu initialisieren,
rufen Sie &man.opiepasswd.1; über eine gesicherte Verbindung
auf:&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 COEDDie Option startet den Konsolen-Modus,
der davon ausgeht, dass der Befehl von einem sicherem Ort
ausgeführt wird. Dies kann beispielsweise der eigene Rechner
sein, oder über eine mit SSH gesicherte
Verbindung zum eigenen Rechner.Geben Sie das geheime Passwort ein, wenn Sie danach
gefragt werden. Damit werden die Einmalpasswörter generiert.
Dieses Passwort sollte schwer zu erraten sein und sich
ebenfalls vom Passwort des Bentuzerkontos unterscheiden. Es
muss zwischen 10 und 127 Zeichen lang sein. Prägen Sie sich
dieses Passwort gut ein!Die Zeile, die mit ID beginnt, enthält den
Login-Namen (unfrul), den voreingestellten
Iterationszähler (499) und den Initialwert
(to4268). Das System erinnert sich an
diese Parameter und wird sie bei einem Anmeldeversuch
anzeigen. Sie brauchen sich diese Dinge also nicht merken.
Die letzte Zeile enthält das generierte Einmalpasswort, das
aus den Parametern und dem geheimen Passwort ermittelt wurde.
Bei der nächsten Anmeldung muss dann diese Einmalpasswort
benutzt werden.Initialisierung über eine nicht gesicherte
VerbindungUm Einmalpasswörter über eine nicht gesicherte Verbindung
zu initialisieren, oder das geheime Passwort zu ändern, müssen
Sie über eine gesicherte Verbindung zu einer Stelle verfügen,
an der Sie opiekey ausführen können. Dies
kann etwa die Eingabeaufforderung auf einer Maschine sein, der
Sie vertrauen. 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 &man.opiepasswd.1; über die ungesicherte
Verbindung zu der Maschine, die Sie einrichten wollen:&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 TROYDrücken Sie Return, um die Vorgabe
für den Initialwert zu akzeptieren. Bevor
Sie nun das Zugriffspasswort
(engl. access password)
eingeben, rufen Sie über die gesicherte Verbindung
opikey mit denselben Parametern auf:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATGehen Sie zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmalpasswort ein.Erzeugen eines einzelnen EinmalpasswortesNachdem Sie 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>
otp-md5 498 gr4269 ext
Password: OPIE besitzt eine nützliche
Eigenschaft. Wenn Sie an der Eingabeaufforderung
Return drücken, 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 das Einmalpasswort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muss auf
einem gesicherten System geschehen, auf dem Sie
&man.opiekey.1; ausführen können. Dieses Programm gibt es
auch für &windows;, &macos; und &os;. Es benötigt 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; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATSobald das Einmalpasswort generiert wurde, können Sie die
Anmeldeprozedur fortsetzen.Erzeugen von mehreren EinmalpasswörternManchmal haben Sie keinen Zugriff auf eine sichere
Maschine oder eine sichere Verbindung. In diesem Fall können
Sie vorher mit &man.opiekey.1; einige Einmalpasswörter
generieren. Zum Beispiel:&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Do not 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. Wirklich paranoide
Benutzer können sich jetzt die Passwörter aufschreiben oder
ausdrucken. Sie sollten die Passwörter nach Gebrauch
durchstreichen.Einschränken der Benutzung von
System-PasswörternOPIE kann die Verwendung von
&unix;-Passwörtern abhängig von der
IP-Adresse einschränken. Die dazu nötigen
Einstellungen werden in /etc/opieaccess
vorgenommen, die bei der Installation des Systems automatisch
erzeugt wird. Weitere Informationen über diese Datei und
Sicherheitshinweise zu ihrer Verwendung finden Sie in
&man.opieaccess.5;.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 IP-Adressen anmelden, ihr
&unix;-Passwort zu verwenden. Beachten Sie bitte, dass eine
IP-Adresse leicht gefälscht werden
kann.Findet sich in opieaccess kein
passender Eintrag, muss die Anmeldung mit
OPIE erfolgen.TCP WrapperTomRhodesBeigetragen von TCP WrapperTCP Wrapper ist ein
rechnerbasiertes Zugriffskontrollsystem, das die Fähigkeiten von
erweitert. Beispielsweise
können Verbindungen protokolliert, Nachrichten zurückgesandt
oder nur interne Verbindungen angenommen werden. Weitere
Informationen über TCP Wrapper und
dessen Funktionen finden Sie in &man.tcpd.8;.TCP Wrapper sollten nicht als
Ersatz für eine ordentlich konfigurierte Firewall angesehen
werden. Stattdessen sollten
TCP Wrapper in Verbindung mit einer
Firewall und anderen Sicherheitsmechanismen eingesetzt werden,
um bei der Umsetzung einer Sicherheitsrichtlinie eine weitere
Sicherheitsschicht zu bieten.KonfigurationUm TCP Wrapper unter &os; zu
aktivieren, fügen Sie die folgenden Zeilen in
/etc/rc.conf ein:inetd_enable="YES"
inetd_flags="-Ww"Anschließend muss /etc/hosts.allow
richtig konfiguriert werden.Im Gegensatz zu anderen Implementierungen der
TCP Wrapper wird unter &os; vom
Gebrauch der Datei hosts.deny
abgeraten. Die Konfiguration sollte sich vollständig in
/etc/hosts.allow befinden.In der einfachsten Konfiguration werden Dienste abhängig
von den Optionen in /etc/hosts.allow
erlaubt oder gesperrt. Unter &os; wird in der Voreinstellung
jeder von inetd gestartete Dienst
erlaubt.Eine Konfigurationszeile ist wie folgt aufgebaut:
Dienst : Adresse : Aktion.
Dienst ist der von
inetd gestartete Dienst (auch
Daemon genannt). Die Adresse ist ein
gültiger Rechnername, eine IP-Adresse oder
eine IPv6-Adresse in Klammern
([]). Der Wert
allow im Feld Aktion
erlaubt Zugriffe, der Wert deny verbietet
Zugriffe. Die Zeilen in hosts.allow
werden für jede Verbindung der Reihe nach abgearbeitet.
Trifft eine Zeile auf eine Verbindung zu, wird die
entsprechende Aktion ausgeführt und die Abarbeitung ist
beendet.Um beispielsweise einkommende
POP3-Verbindungen für den Dienst
mail/qpopper zu erlauben, sollte
hosts.allow um die nachstehende Zeile
erweitert werden:# This line is required for POP3 connections:
qpopper : ALL : allowJedes Mal, wenn diese Datei bearbeitet wird, muss
inetd neu gestartet werden:&prompt.root; service inetd restartErweiterte KonfigurationTCP Wrapper besitzen weitere
Optionen, die bestimmen, wie Verbindungen behandelt werden.
In einigen Fällen ist es gut, wenn bestimmten Rechnern oder
Diensten eine Nachricht geschickt wird. In anderen Fällen
soll vielleicht der Verbindungsaufbau protokolliert oder eine
E-Mail an einen Administrator versandt werden. Oder ein
Dienst soll nur für das lokale Netz bereitstehen. Dies alles
ist mit so genannten Wildcards, Metazeichen und der Ausführung
externer Programme möglich.Stellen Sie sich vor, eine Verbindung soll verhindert
werden und gleichzeitig soll dem Rechner, der die Verbindung
aufgebaut hat, eine Nachricht geschickt werden. Solch eine
Aktion ist mit möglich.
führt beim Verbindungsaufbau ein
Kommando oder ein Skript aus. Ein Beispiel ist in
hosts.allow enthalten:# Alle anderen Dienste sind geschützt
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."Für jeden Dienst, der nicht vorher in
hosts.allow konfiguriert wurde, wird die
Meldung You are not allowed to use
daemon name from
hostname. zurückgegeben.
Dies ist nützlich, wenn die Gegenstelle sofort benachrichtigt
werden soll, nachdem die Verbindung getrennt wurde. Der Text
der Meldung muss in Anführungszeichen
(") stehen.Ein so konfigurierter Server ist anfällig für
Denial-of-Service-Angriffe. Ein Angreifer kann die
gesperrten Dienste mit Verbindungsanfragen
überfluten.Eine weitere Möglichkeit bietet .
Wie verbietet
die Verbindung und führt externe Kommandos aus. Allerdings
sendet dem Rechner keine Rückmeldung.
Sehen Sie sich die nachstehende Konfigurationsdatei an:# Verbindungen von example.com sind gesperrt:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: denyDamit sind Verbindungen von der Domain *.example.com gesperrt.
Jeder Verbindungsaufbau wird zudem in
/var/log/connections.log protokolliert.
Das Protokoll enthält den Rechnernamen, die
IP-Adresse und den Dienst, der angesprochen
wurde. In diesem Beispiel wurden die Metazeichen
%a und %h verwendet.
Eine vollständige Liste der Metazeichen finden Sie in
&man.hosts.access.5;.Die Wildcard ALL passt auf jeden
Dienst, jede Domain oder jede IP-Adresse.
Eine andere Wildcard ist PARANOID. Sie
passt auf jeden Rechner, dessen
IP-Adresse möglicherweise gefälscht ist.
Dies ist beispielsweise der Fall, wenn der Verbindungsaufbau
von einer IP-Adresse erfolgt, die nicht zu
dem übermittelten Rechnernamen passt. In diesem Beispiel
werden alle Verbindungsanfragen zu
Sendmail abgelehnt, wenn die
IP-Adresse nicht zum Rechnernamen
passt:# Block possibly spoofed requests to sendmail:
sendmail : PARANOID : denyDie Wildcard PARANOID wird
Verbindungen ablehnen, wenn der Client oder der Server eine
fehlerhafte DNS-Konfiguration
besitzt.Weitere Informationen über Wildcards und deren Funktion
finden Sie in &man.hosts.access.5;.Wenn Sie neue Einträge zur Konfiguration hinzufügen,
sollten Sie sicherstellen, dass nicht benötigte Einträge in
hosts.allow auskommentiert
werden.KerberosTillmanHodgsonBeigetragen von MarkMurrayBeruht auf einem Beitrag von Kerberos ist ein
Netzwerk-Authentifizierungsprotokoll, das ursprünglich am
Massachusetts Institute of Technology (MIT)
entwickelt wurde. Es bietet die Möglichkeit zur sicheren
Authentifizierung über ein potentiell unsicheres Netzwerk. Das
Kerberos-Protokoll benutzt eine
starke Kryptographie, um die Identität von Clients und Servern
nachweisen zu können. Dabei werden keine unverschlüsselten
Daten über das Netzewrk gesendet.
Kerberos kann als eine Art Proxy zur
Identitätsprüfung, oder als vertrauenswürdiges
Authentifizierungssystem betrachtet werden.Kerberos hat nur 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 aktuelle Version des Protokolls ist Version 5, die in
RFC 4120 beschrieben ist. Es existieren
mehrere freie Implementierungen dieses Protokolls für eine Reihe
von Betriebssystemen. Das MIT entwickelt
auch weiterhin seine
Kerberos-Version weiter.
Es wird in den vereinigten Staaten als Kryptographie-Produkt
eingesetzt und unterlag in der Vergangenheit
US-Exportbeschränkungen. In &os; ist
MIT-Kerberos als
Port oder Paket security/krb5
verfügbar. Die
Kerberos-Implementation von Heimdal
wurde außerhalb der USA entwickelt und
unterliegt daher keinen Export-Beschränkungen.
Heimdal-Kerberos ist im Basissystem
von &os; enthalten. Mit security/heimdal aus
der Ports-Sammlung steht eine weitere Distribution, mit mehr
konfigurierbaren Optionen zur Verfügung.Unter Kerberos werden Benutzer
und Dienste als Prinzipale bezeichnet, die
innerhalb einer administrativen Domäne, dem sogenannten
Realm enthalten sind. Ein typisches
Benutzer-Prinzipal hätte das Format
user@REALM
(Realms sind traditionell in Großbuchstaben).Die folgenden Anweisungen beschreiben, wie Sie das mit
&os; gelieferte Heimdal-Kerberos
einrichten.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.Das Heimdal KDC einrichtenKerberos5Key Distribution CenterKerberos 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.
Weil alle Mitglieder eines
Kerberos-Realms dem
KDC vertrauen, gelten für das
KDC erhöhte Sicherheitsanforderungen.
Der direkte Zugriff auf das KDC sollte
daher eingeschränkt sein.Obwohl der Kerberos-Server
wenig Ressourcen benötigt, sollte das KDC
wegen der Sicherheitsanforderungen auf einem separaten Rechner
installiert werden.Das KDC wird in
/etc/rc.conf wie folgt aktiviert:kdc_enable="YES"
kadmind_enable="YES"Danach wird /etc/krb5.conf
wie folgt bearbeitet:[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORGDiese Einstellungen setzen voraus, dass der voll
qualifizierte Name des KDCs
kerberos.example.org ist.
Der Rechnername des KDC muss im
DNS auflösbar sein.In großen Netzwerken mit einem ordentlich konfigurierten
DNS-Server kann die Datei aus dem obigen
Beispiel verkürzt werden:[libdefaults]
default_realm = EXAMPLE.ORG
[domain_realm]
.example.org = 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.ORGDamit die Clients die
Kerberos-Dienste benutzen
können, muss sie entweder eine
vollständig konfigurierte
/etc/krb5.conf enthalten, oder eine
minimale Konfiguration und zusätzlich
ein richtig konfigurierter
DNS-Server.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 sich nicht merken, da ein davon abgeleiteter
Schlüssel in /var/heimdal/m-key
gespeichert wird. Es wäre durchaus sinnvoll, ein 45-stelliges
Zufallspasswort für diesen Zweck zu benutzten. Um den
Schlüssel zu erstellen, rufen Sie kstash
auf und geben Sie ein Passwort ein:&prompt.root; kstash
Master key: xxxxxxxxxxxxxxxxxxxxxxx
Verifying password - Master key: xxxxxxxxxxxxxxxxxxxxxxxNachdem der Schlüssel erstellt wurde, sollte die Datenbank
initialisiert werden. Das
Kerberos-Werkzeug &man.kadmin.8;
kann die Datenbank mit kadmin -l direkt
bearbeiten, ohne dabei den Netzwerkdienst &man.kadmind.8; zu
benutzen. An der Eingabeaufforderung von
kadmin kann mit init die
Datenbank des Realms initialisiert werden:&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:Zuletzt wird mit add das erste
Prinzipal erstellt. Benutzen Sie die voreingestellten
Optionen. Die Einstellungen können später mit
modify verändert werden. An der
Eingabeaufforderung von &man.kadmin.8; zeigt
? die verfügbaren Optionen an.kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxxJetzt können die KDC-Dienste mit
service kdc start und
service kadmind start gestartet werden.
Obwohl zu diesem Zeitpunkt noch keine kerberisierten Dienste
laufen, kann die Funktion des KDCs
schon überprüft werden, indem Sie für den eben angelegten
Benutzer ein Ticket anfordern:&prompt.user; kinit tillman
tillman@EXAMPLE.ORG's Password:Überprüfen Sie, ob das Ticket erfolgreich ausgestellt
wurde:&prompt.user; klist
Credentials cache: FILE: /tmp/krb5cc_1001
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 2013 Aug 28 01:37:58 2013 krbtgt/EXAMPLE.ORG@EXAMPLE.ORGNachdem der Test abgeschlossen ist, kann das temporäre
Ticket zurückgezogen werden:&prompt.user; kdestroyKerberos-Dienste auf dem
Server einrichtenKerberos5Dienste einrichtenBei der Konfiguration eines Servers für die
Kerberos-Authentifizierung muss
zuerst sichergestellt werden, dass
/etc/krb5.conf richtig konfiguriert ist.
Die Datei kann entweder vom KDC kopiert,
oder auf dem neuen System generiert werden.Als nächstes muss auf dem Server die
/etc/krb5.keytab erzeugt werden. Dies
ist der Hauptbestandteil um Dienste zu
kerberisieren und entspricht der Erzeugung
eines geheimen Schlüssels zwischen dem Dienst und dem
KDC. Das Geheimnis ist ein
kryptographischer Schlüssel, der in einem
keytab> abgelegt wird. Diese Datei
enthält den Schlüssel des Servers, mit dem sich der Server und
das KDC gegenseitig authentifizieren
können. Sie muss in einer sicheren Art und Weise an den
Server übertragen werden, da ansonsten die Sicherheit des
Servers gefährdet ist, wenn z.B. die Schlüssel öffentlich
werden. In der Regel wird die keytab auf
einem vertrauenswürdigen Rechner mit kadmin
erzeugt und anschließend sicher auf den Server übertragen,
beispielsweise mit &man.scp.1;. Wenn die
Sicherheitsrichtlinien es erlauben, kann die Datei auch direkt
auf dem Server erzeugt werden. Es ist sehr wichtig, dass die
keytab auf sichere Weise auf den Server
übertragen wird. Wenn der Schlüssel einer anderen Partei
bekannt wird, kann sich diese Partei den Benutzern als
Server ausgeben! Da der Eintrag für das Host-Prinzipal für
die KDC-Datenbank auch mit
kadmin erstellt wird, ist es praktisch,
kadmin direkt auf dem Server zu
benutzen.Natürlich ist auch kadmin ein
kerberisierter Dienst: ein
Kerberos-Ticket ist erforderlich,
um sich gegenüber dem Netzwerkdienst zu authentifizieren und
um sicherzustellen, dass der Benutzer, der
kadmin ausführt, tatsächlich vorhanden ist.
kadmin wird nach dem Passwort fragen, um
ein neues Ticket zu generieren. Das Prinzipal, das sich mit
dem kadmin-Dienst authentifiziert, muss über die
Zugriffskontrollliste kadmin.acl dazu
berechtigt sein. Weitere Informationen über
Zugriffskontrolllisten finden Sie in den Heimdal-Info-Seiten
(info heimdal) im Abschnitt
Remote administration. Wenn der Zugriff auf
kadmin von entfernten Rechnern verboten
ist, kann sich der Administrator entweder über die lokale
Konsole oder über &man.ssh.1; mit dem KDC
verbinden, um die lokale Administration mit
kadmin -l durchzuführen.Nach der Installation von
/etc/krb5.conf, können Sie das Kommando
add --random-key in
kadmin ausführen, um das Host-Prinzipal in
die Datenbank zu schreiben. Das Kommando
ext extrahiert den Schlüssel des Prinzipals
in eine eigene keytab:&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Principal expiration time [never]:
Password expiration time [never]:
Attributes []:
kadmin> ext_keytab host/myserver.example.org
kadmin> exitBeachten Sie, dass ext_keytab den
extrahierten Schlüssel standardmäßig in
/etc/krb5.keytab speichert. Das ist
gut, wenn das Kommando auf dem kerberisierten Server
ausgeführt wird, ansonsten sollte das Argument
--keytab
pfad/zur/datei
benutzt werden, wenn die keytab an einen anderen Ort
extrahiert wird:&prompt.root; kadmin
kadmin> ext_keytab --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exitAnschließend kann die erzeugte keytab sicher mit
&man.scp.1; auf Server oder auf einen
Wechseldatenträger kopiert werden. Geben Sie auf jeden Fall
einen anderen Namen für die keytab an, um unnötige Schlüssel
in der keytab des Systems zu vermeiden.Mit Hilfe 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 die kerberisierten Dienste aktiviert werden. Einer der
gebräuchlichsten Dienste ist &man.sshd.8;, der
Kerberos über
GSS-API unterstützt. Fügen Sie folgende
Zeile in /etc/ssh/sshd_config ein:GSSAPIAuthentication yesNach dieser Änderung muss &man.sshd.8; mit
service sshd restart neu gestartet werden,
damit die neue Konfiguration wirksam wird.Kerberos auf dem Client
einrichtenKerberos5Clients einrichtenGenau wie der Server, benötigt auch der Client eine
Konfiguration in /etc/krb5.conf.
Kopien Sie die Datei (sicher) vom KDC
auf den Client, oder schreiben Sie die Datei bei Bedarf
einfach neu.Testen Sie den Client, indem Sie mit
kinit Tickets anfordern, mit
klist Tickets anzeigen und mit
kdestroy Tickets löschen.
Kerberos-Anwendungen sollten auch
kerberisierte Server ansprechen können. Wenn das nicht
funktioniert, Sie aber Tickets anfordern können, hat
wahrscheinlich der kerberisierte Server ein Problem und nicht
der Client oder das KDC. Im Falle eines
kerberisierten &man.ssh.1; ist GSS-API in
der Voreinstellung deaktiviert. Testen Sie daher mit
ssh -o GSSAPIAuthentication=yes
hostname.Wenn Sie die kerberisierten Anwendungen testen, können Sie
einen Paket-Sniffer wie tcpdump benutzen,
um sicherzustellen, dass keine sensiblen Informationen im
Klartext übertragen werden.Es stehen verschiedene
Kerberos-Anwendungen zur Verfügung.
Die Anwendungen, die SASL benutzen, können
dann auch GSS-API benutzen. Viele Arten
von Anwendungen können Kerberos zur
Authentifizierung verwenden, vom Jabber-Client bis zum
IMAP-Client..k5login.k5usersNormalerweise wird ein
Kerberos-Prinzipal auf ein lokales
Benutzerkonto abgebildet. 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
Benutzers können verwendet werden, um dieses Problem zu lösen.
Mit der folgenden .k5login im
Heimatverzeichnis des Benutzers webdevelopers haben beide
Prinzipale auch ohne das gemeinsame Passwort Zugriff auf das
Konto:tillmann@example.org
jdoe@example.orgWeitere Informationen zu .k5users
finden Sie in &man.ksu.1;.Unterschiede zur
MIT-ImplementationDer Hauptunterschied zwischen der MIT-
und der Heimdal-Implementation 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 der Anleitung auf
http://web.mit.edu/Kerberos/www/. Achten Sie
besonders auf den Suchpfad für Anwendungen. Der
MIT-Port wird unter &os; 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
MIT-Kerberos
verwenden, sollten Sie außerdem folgende Änderungen an
/etc/rc.conf vornehmen:kerberos5_server="/usr/local/sbin/krb5kdc"
kadmind5_server="/usr/local/sbin/kadmind"
kerberos5_server_flags=""
kerberos5_server_enable="YES"
kadmind5_server_enable="YES"Tipps und FehlersucheWährend der Konfiguration und bei der Fehlersuche sollten
die folgenden Punkte beachtet werden:Wenn Sie Heimdal- oder
MIT-Kerberos
benutzen, muss in der Umgebungsvariable
PATH der Pfad zu den
Kerberos-Programmen vor dem
Pfad zu den Programmen des Systems stehen.Wenn die Clients im Realm ihre Uhrzeit nicht
synchronisieren, schlägt vielleicht die Authentifizierung
fehl. beschreibt, wie
Sie mithilfe von NTP die Uhrzeiten
synchronisieren.Wenn Sie den Namen eines Rechners ändern,
müssen Sie auch den host/-Prinzipal ändern und
die keytab aktualisieren. Dies
betrifft auch spezielle Einträge wie den HTTP/-Prinzipal für
Apaches www/mod_auth_kerb.Alle Rechner in einem Realm müssen vor- und
rückwärts aufgelöst werden können. Entweder über
DNS, zumindest aber über
/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 hat zur Folge,
dass ksu nicht funktioniert. Dies ist
ein Fehler in den Zugriffsrechten und 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 modify_principal am Prompt von
&man.kadmin.8;, um die maximale
Gültigkeitsdauer für den Prinzipal selbst und den
Prinzipal krbtgt
zu erhöhen. Das Prinzipal kann dann mit
kinit -l ein Ticket mit einer
längeren Gültigkeit beantragen.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
TGT. Das TGT
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.Host-Prinzipale können 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, wie
in &man.kadmin.8; beschrieben, geht das nur mit
Prinzipalen, denen eine Passwort-Policy zugewiesen wurde.
Das Format von krb5.dict enthält pro
Zeile ein Wort. Sie können daher einen symbolischen Link
auf /usr/share/dict/words
erstellen.Beschränkungen von
KerberosKerberos5BeschränkungenKerberos muss ganzheitlich
verwendet werden. Jeder über das Netzwerk angebotene 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 Remote-Shells
Kerberos zu benutzen, dagegen aber
POP3-Zugriff auf einem Mail-Server zu
erlauben, da POP3 Passwörter im Klartext
versendet.Das KDC ist verwundbar und muss daher
genauso abgesichert werden, wie die auf ihm befindliche
Passwort-Datenbank. Auf dem KDC sollten
absolut 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,
sind auch die Netzwerkdienste nicht benutzbar, da eine
Authentifizierung nicht durchgeführt werden kann. Das
KDC ist also ein optimales Ziel für einen
Denial-of-Service Angriff. Sie können diesem Angriff
entgegenwirken, indem Sie einen KDC-Master
und einen oder mehrere Slaves verwenden. Der Rückfall auf ein
sekundäres KDC mittels
PAM-Authentifizierung muss sorgfältig
eingerichtet werden.Mit 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 Dokumentation
The Kerberos FAQ
Designing an Authentication System: a Dialogue in Four
Scenes
RFC 4120, The Kerberos
Network Authentication Service (V5)
MIT
Kerberos-SeiteHeimdal
Kerberos-SeiteOpenSSLTomRhodesBeigetragen von SicherheitOpenSSLOpenSSLOpenSSL ist eine Open Source
Implementierung der SSL und
TLS-Protokolle. Es bietet eine
verschlüsselte Transportschicht oberhalb der
normalen Kommunikationsschicht und kann daher zusammen
mit vielen Netzdiensten benutzt werden.Das in &os; integrierte OpenSSL
stellt die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3)
und Transport Layer Security v1 (TLSv1) zur Verfügung.
Die OpenSSL-Bibliotheken stellen
kryptographische Funktionen bereit.Anwendungsbeispiele für OpenSSL
sind die verschlüsselte Authentifizierung von
E-Mail-Clients oder Web-Transaktionen wie das Bezahlen mit
Kreditkarte. Einige Ports, wie www/apache24
und databases/portgresql91-server, haben eine
Option für den Bau mit
OpenSSL.&os; verfügt über zwei OpenSSL Versionen:
eine im Basissystem, die andere aus der Ports-Sammlung. Der
Benutzer kann mit Hilfe der folgenden Optionen wählen, welche
Version in der Voreinstellung für andere Ports verwendet
wird:WITH_OPENSSL_PORT: wenn diese Option gesetzt ist, wird
der Port OpenSSL aus dem Port
security/openssl verwenden, auch dann,
wenn die Version im Basisystem aktueller ist.WITH_OPENSSL_BASE: wenn diese Option gesetzt ist, wird
der Port mit OpenSSL aus dem
Basissystem übersetzt.OpenSSL wird auch eingesetzt,
um Zertifikate für Anwendungen bereitzustellen. Die
Zertifikate stellen die Identität einer Firma oder eines
Einzelnen sicher. Wenn ein Zertifikat nicht von einer
Zertifizierungsstelle
(Certificate Authority,
CA) gegengezeichnet wurde, erhalten Sie
normalerweise eine Warnung. Eine Zertifizierungsstelle ist eine
Firma wie VeriSign, die
Zertifikate von Personen oder Firmen gegenzeichnet und damit die
Korrektheit der Zertifikate bestätigt. Diese Prozedur kostet
Geld, ist aber keine Voraussetzung für den Einsatz von
Zertifikaten, beruhigt aber sicherheitsbewusste Benutzer.Dieser Abschnitt beschreibt, wie Sie auf einem &os;-System
Zertifikate erstellen und benutzen.
beschreibt, wie Sie eine
CA erstellen um die eigenen Zertifikate zu
signieren.Weitere Informationen über SSL finden Sie
im kostenlosen
OpenSSL Cookbook.Zertifikate erzeugenOpenSSLZertifikate erzeugenUm ein Zertifikat zu erzeugen, das von einer externen
CA signiert werden soll, geben Sie
folgenden Befehl und die angeforderten Informationen
ein. Diese Informationen werden in das Zertifikat
geschrieben. Für Common Name geben Sie
den vollqualifizierten Namen des Systems ein, auf dem das
Zertifikat später installiert wird. Wenn der Name nicht
übereinstimmt, wird die Anwendung, die das Zertifikat
überprüft, dem Benuzter eine Warnung anzeigen. Die
Überprüfung würde fehlschlagen und das Zertifikat damit
unbrauchbar machen.&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.key -sha256 -newkey rsa:2048
Generating a 2048 bit RSA private key
..................+++
.............................................................+++
writing new private key to 'cert.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:Another NameBei der Erzeugung des Zertifikates können noch weitere
Optionen, wie die Gültigkeitsdauer
und alternative Verschlüsselungsalgorithmen, angegeben
werden. &man.openssl.1; beschreibt die zur
Verfügung stehenden Optionen.Das folgende Kommando erstellt zwei Dateien im aktuellen
Verzeichnis: Die Anforderung für ein neues Zertifikat wird in
req.pem gespeichert. Diese Datei können
Sie an eine CA senden, wo die Angaben
geprüft werden. Nach erfolgreicher Prüfung wird das
Zertifikat signiert und an Sie zurückgesandt.
cert.key, enthält den privaten Schlüssel
für das Zertifikat und darf auch keine Fall in fremde Hände
geraten, da ein Angreifer sonst in der Lage ist, anderen
Personen oder Rechnern vorzugaukeln, dass es sich bei ihm um
Sie handelt.Wenn Sie keine Signatur einer Zertifizierungsstelle
benötigen, können Sie ein selbst signiertes
Zertifikat erstellen. Erzeugen Sie dazu zuerst einen
RSA-Schlüssel:&prompt.root; openssl genrsa -rand -genkey -out cert.key 2048
0 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.............................................+++
.................................................................................................................+++
e is 65537 (0x10001)Benutzen Sie diesen Schlüssel, um ein selbst signiertes
Zertifikat zu erzeugen. Folgen Sie wieder den Anweisungen am
Prompt:&prompt.root; openssl req -new -x509 -days 365 -key cert.key -out cert.crt -sha256
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (e.g. server FQDN or YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.orgDieses Kommando erstellt zwei neue Dateien im aktuellen
Verzeichnis: Der Schlüssel der Zertifizierungsstelle
cert.key und das Zertifikat selbst,
cert.crt. Sie sollten in einem
Verzeichnis, vorzugsweise unterhalb von
/etc/ssl/ abgelegt werden, das nur von
root lesbar
ist. Die Zugriffsrechte der Dateien können mit
chmod auf 0700 gesetzt
werden.Zertifikate benutzenMit einem Zertifikat können beispielsweise die
Verbindungen zu Sendmail
verschlüsselt werden, um eine Klartext-Authentifizierung
zu verhindern.Einige E-Mail-Programme geben Warnungen aus, wenn ein
Zertifikat nicht lokal installiert ist. Weitere
Informationen zur Installation von Zertifikaten finden Sie
in der Dokumentation der entsprechenden Software.Unter &os; 10.0-RELEASE und neueren Versionen ist es
möglich, ein selbst signiertes Zertifikat für
Sendmail automatisch erzeugen
zu lassen. Um diese Funktionalität zu aktivieren, fügen Sie
die folgenden Zeilen in /etc/rc.conf
ein:sendmail_enable="YES"
sendmail_cert_enable="YES"
sendmail_cert_cn="localhost.example.org"Dadurch wird automatisch ein selbst signiertes Zertifikat
(/etc/mail/certs/host.cert), der
Schlüssel für die CA
(/etc/mail/certs/host.key und das
Zertifikat der CA
(/etc/mail/certs/cacert.pem erzeugt. Das
Zertifikat wird den in
festgelegten Common Name verwenden.
Nachdem Sie die Änderungen gespeichert haben, starten Sie
Sendmail neu:&prompt.root; service sendmail restartWenn alles gut ging, erscheinen keine Fehlermeldungen
in /var/log/maillog. Für einen einfachen
Test, bauen Sie mit Hilfe von telnet eine
Verbindung zum Mailserver auf:&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.14.7/8.14.7; Fri, 18 Apr 2014 11:50:32 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.Wenn die Zeile STARTTLS
erscheint, hat alles funktioniert.VPN mit
IPsecNikClaytonnik@FreeBSD.orgGeschrieben von Hiten M.Pandyahmp@FreeBSD.orgGeschrieben von IPsecInternet Protocol Security
(IPsec) ist ein Satz von Protokollen, die auf
dem Internet-Protokoll (IP) aufbauen. Durch
Authentifizierung und Verschlüsselung jedes einzelnen
IP-Pakets, können mehrere Systeme geschützt
miteinander kommunizieren. &os;s IPSsec
Netzwerk-Stack basiert auf der http://www.kame.net
Implementierung und unterstützt sowohl IPv4
als auch IPv6.IPsecESPIPsecAHIPsec besteht aus den folgenden
Protokollen:Encapsulated Security Payload
(ESP): dieses Protokoll
verschlüsselt IP-Pakete mit einem
symmetrischen Verfahren wie Blowfish oder
3DES. Damit werden die Pakete vor
Manipulationen Dritter geschützt.Authentication Header
(AH): dieses Protokoll
enthält eine kryptographische Prüfsumme, 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.IP Payload Compression Protocol
(IPComp): dieses Protokoll
versucht durch Komprimierung der
IP-Nutzdaten die Menge der gesendeten
Daten zu reduzieren und somit die Kommunikationsleistung zu
verbessern.Diese Protokolle können, je nach Situation, zusammen oder
einzeln verwendet werden.VPNVirtual Private NetworkVPNIPsec unterstützt zwei Modi: Der
Transport-Modus verschlüsselt die Daten
zwischen zwei Systemen. Der Tunnel-Modus
verbindet zwei Subnetze miteinander. Durch einen Tunnel können
dann verschlüsselte Daten übertragen werden. Ein Tunnel wird
auch als Virtual-Private-Network
(VPN) bezeichnet. Detaillierte Informationen
über das IPsec-Subsystem von &os; finden Sie
in &man.ipsec.4;.Seit &os; 11 ist IPsec in der
Voreinstellung aktiviert. Um die Unterstützung für
IPsec in älteren Versionen zu aktivieren,
fügen Sie folgenden Optionen in die
Kernelkonfigurationsdatei ein und erstellen Sie einen neuen
Kernel, wie in
beschrieben.KerneloptionIPSECoptions IPSEC #IP security
device cryptoKerneloptionIPSEC_DEBUGWenn Sie zur Fehlersuche im
IPsec-Subsystem Unterstützung wünschen,
sollten Sie die folgende Option ebenfalls aktivieren:options IPSEC_DEBUG #debug for IP securityDer Rest dieses Kapitels beschreibt die Einrichtung eines
IPsec-VPN zwischen einem
Heimnetzwerk und einem Firmennetzwerk. Für das folgende
Beispiel gilt:Beide Netzwerke sind über ein &os;-Gateway mit dem
Internet verbunden.Der Gateway jedes Netzwerks besitzt mindestens eine
externe IP-Adresse. In diesem Beispiel
ist die externe IP-Adresse des
Firmennetzwerks (LAN) 172.16.5.4 und das
Heimnetzwerk (LAN) hat die externe
IP-Adresse 192.168.1.12.Die intern verwendeten IP-Adressen
können private oder öffentliche Adressen sein. Sie dürfen
sich jedoch nicht überschneiden. Zum Beispiel sollten nicht
beide Netze 192.168.1.x benutzen. In
diesem Beispiel ist die interne
IP-Adresse des Firmennetzwerks
(LAN) 10.246.38.1 und das
Heimnetzwerk (LAN) hat die interne
IP-Adresse 10.0.0.5.Konfiguration eines VPN unter
&os;TomRhodestrhodes@FreeBSD.orgGeschrieben von Als erstes muss security/ipsec-tools
aus der Ports-Sammlung installiert werden. Diese Software
enthält einige Anwendungen, die bei der Konfiguration von
IPsec hilfreich sind.Als nächstes müssen zwei &man.gif.4;-Pseudogeräte angelegt
werden, um die Pakete zu tunneln und dafür zu sorgen, dass
beide Netzwerke richtig miteinander kommunizieren können.
Geben Sie als root
die folgenden Befehle ein, wobei Sie
intern und
extern durch die realen internen
und externen IP-Adressen der Gateways
ersetzen müssen:&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0 intern1 intern2
&prompt.root; ifconfig gif0 tunnel extern1 extern2Überprüfen Sie mit ifconfig die
Konfiguration auf beiden Gateways. Hier folgt die Ausgabe
von Gateway 1:gif0: flags=8051 mtu 1280
tunnel inet 172.16.5.4 --> 192.168.1.12
inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6
inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00Hier folgt die Ausgabe von Gateway 2:gif0: flags=8051 mtu 1280
tunnel inet 192.168.1.12 --> 172.16.5.4
inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00
inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4Wenn Sie fertig sind, sollten beide internen Adressen über
&man.ping.8; erreichbar sein:priv-net# ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5): 56 data bytes
64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms
64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms
64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms
64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms
--- 10.0.0.5 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms
corp-net# ping 10.246.38.1
PING 10.246.38.1 (10.246.38.1): 56 data bytes
64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms
64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms
64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms
64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms
64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms
--- 10.246.38.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 msWie erwartet, können nun beiden Seiten
ICMP-Pakete von ihren privaten Adressen
senden und empfangen. Als nächstes müssen beide Gateways so
konfiguriert werden, dass sie die Pakete des anderen
Netzwerkes richtig routen. Dazu werden folgende Befehle
verwendet:corp-net&prompt.root; route add 10.0.0.0 10.0.0.5 255.255.255.0
corp-net&prompt.root; route add net 10.0.0.0: gateway 10.0.0.5
priv-net&prompt.root; route add 10.246.38.0 10.246.38.1 255.255.255.0
priv-net&prompt.root; route add host 10.246.38.0: gateway 10.246.38.1Ab jetzt sollten die Rechner von den Gateways sowie von
den Rechnern hinter den Gateways erreichbar sein. Dies können
Sie wieder mit &man.ping.8; überprüfen:corp-net# ping 10.0.0.8
PING 10.0.0.8 (10.0.0.8): 56 data bytes
64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms
64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms
64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms
64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms
64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms
--- 10.0.0.8 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms
priv-net# ping 10.246.38.107
PING 10.246.38.1 (10.246.38.107): 56 data bytes
64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms
64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms
64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms
64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms
64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms
--- 10.246.38.107 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 msDas Konfigurieren der Tunnel ist der einfache Teil. Die
Konfiguration einer sicheren Verbindung geht viel mehr in
die Tiefe. Die folgende Konfiguration benutzt pre-shared
(PSK) RSA-Schlüssel.
Abgesehen von den IP-Adressen, sind beide
/usr/local/etc/racoon/racoon.conf
identisch und sehen ähnlich aus:path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete
padding # options are not to be changed
{
maximum_length 20;
randomize off;
strict_check off;
exclusive_tail off;
}
timer # timing options. change as needed
{
counter 5;
interval 20 sec;
persend 1;
# natt_keepalive 15 sec;
phase1 30 sec;
phase2 15 sec;
}
listen # address [port] that racoon will listen on
{
isakmp 172.16.5.4 [500];
isakmp_natt 172.16.5.4 [4500];
}
remote 192.168.1.12 [500]
{
exchange_mode main,aggressive;
doi ipsec_doi;
situation identity_only;
my_identifier address 172.16.5.4;
peers_identifier address 192.168.1.12;
lifetime time 8 hour;
passive off;
proposal_check obey;
# nat_traversal off;
generate_policy off;
proposal {
encryption_algorithm blowfish;
hash_algorithm md5;
authentication_method pre_shared_key;
lifetime time 30 sec;
dh_group 1;
}
}
sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp)
{ # $network must be the two internal networks you are joining.
pfs_group 1;
lifetime time 36000 sec;
encryption_algorithm blowfish,3des;
authentication_algorithm hmac_md5,hmac_sha1;
compression_algorithm deflate;
}Eine Beschreibung der verfügbaren Optionen finden Sie in
der Manualpage von racoon.conf.Die
Security Policy Database
(SPD) muss noch konfiguriert werden, so
dass &os; und racoon in der
Lage sind den Netzwerkverkehr zwischen den Hosts zu ver-
und entschlüsseln.Dies wird durch ein Shellskript ähnlich wie das
folgende, das auf dem Firmennetzwerk-Gateway liegt,
ausgeführt. Diese Datei wird während der
Systeminitialisierung ausgeführt und sollte unter
/usr/local/etc/racoon/setkey.conf
gespeichert werden.flush;
spdflush;
# To the home network
spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use;
spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;Nachdem die Datei gespeichert wurde, kann
racoon durch das folgende Kommando
auf beiden Gateways gestartet werden:&prompt.root; /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.logDie Ausgabe sollte so ähnlich aussehen:corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf
Foreground mode.
2006-01-30 01:35:47: INFO: begin Identity Protection mode.
2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon
2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon
2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a
2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=28496098(0x1b2d0e2)
2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47784998(0x2d92426)
2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=124397467(0x76a279b)
2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=175852902(0xa7b4d66)Um sicherzustellen, dass der Tunnel richtig funktioniert,
wechseln Sie auf eine andere Konsole und benutzen Sie
&man.tcpdump.1; mit dem folgenden Befehl, um sich den
Netzwerkverkehr anzusehen. Tauschen Sie
em0 durch die richtige Netzwerkkarte
aus:&prompt.root; tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12Die Ausgabe der Konsole sollte dem hier ähneln. Wenn
nicht, gibt es ein Problem und ein Debuggen der ausgegebenen
Daten ist notwendig.01:47:32.021683 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa)
01:47:33.022442 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb)
01:47:34.024218 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc)An diesem Punkt sollten beide Netzwerke verfügbar sein und
den Anschein haben, dass sie zum selben Netzwerk gehören.
Meistens sind beide Netzwerke durch eine Firewall geschützt.
Um den Netzwerkverkehr zwischen den beiden Netzwerken zu
erlauben, ist es notwendig Regeln zu erstellen. Für die
&man.ipfw.8; Firewall fügen Sie folgende Zeilen in die
Firewall-Konfigurationsdatei ein:ipfw add 00201 allow log esp from any to any
ipfw add 00202 allow log ah from any to any
ipfw add 00203 allow log ipencap from any to any
ipfw add 00204 allow log udp from any 500 to anyDie Regelnummern müssen eventuell, je nach
Hostkonfiguration, angepasst werden.Für Benutzer der &man.pf.4;- oder &man.ipf.8;-Firewall
sollte folgendes funktionieren:pass in quick proto esp from any to any
pass in quick proto ah from any to any
pass in quick proto ipencap from any to any
pass in quick proto udp from any port = 500 to any port = 500
pass in quick on gif0 from any to any
pass out quick proto esp from any to any
pass out quick proto ah from any to any
pass out quick proto ipencap from any to any
pass out quick proto udp from any port = 500 to any port = 500
pass out quick on gif0 from any to anyZum Ende, um dem Computer den Start vom
VPN während der Systeminitialisierung
zu erlauben, fügen Sie folgende Zeilen in ihre
/etc/rc.conf: einipsec_enable="YES"
ipsec_program="/usr/local/sbin/setkey"
ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
racoon_enable="yes"OpenSSHChernLeeBeigetragen von OpenSSHSicherheitOpenSSHOpenSSH stellt Werkzeuge bereit,
um sicher auf entfernte Maschinen zuzugreifen. Zusätzlich
können TCP/IP-Verbindungen sicher durch
SSH getunnelt oder weitergeleitet werden.
OpenSSH verschlüsselt alle
Verbindungen. Dadurch wird beispielsweise verhindert, dass die
Verbindung abgehört oder übernommen
(Hijacking) werden kann. Weitere
Informationen zu OpenSSH finden Sie
auf
http://www.openssh.com/.Dieser Abschnitt enthält einen Überblick über die
integrierten Client-Werkzeuge, mit denen Sie sicher auf
entfernte Systeme zugreifen können, oder mit denen Sie sicher
Dateien austauschen können. Der Abschnitt beschreibt auch die
Konfiguration eines SSH-Servers auf einem
&os;-System. Weitere Informationen finden Sie in den hier
erwähnten Manualpages.Die SSH Client-Werkzeuge benutzenOpenSSHClientBenutzen Sie ssh zusammen mit einem
Benutzernamen und einer IP-Adresse oder dem
Hostnamen, um sich an einem SSH-Server
anzumelden. Ist dies das erste Mal, dass eine Verbindung mit
dem angegebenen Server hergestellt wird, wird der Benutzer
aufgefordert, zuerst den Fingerabdruck des Servers zu
prüfen:&prompt.root; ssh user@example.com
The authenticity of host 'example.com (10.0.0.1)' can't be established.
ECDSA key fingerprint is 25:cc:73:b5:b3:96:75:3d:56:19:49:d2:5c:1f:91:3b.
Are you sure you want to continue connecting (yes/no)? yes
Permanently added 'example.com' (ECDSA) to the list of known hosts.
Password for user@example.com: user_passwordSSH speichert einen Fingerabdruck des
Serverschlüssels um die Echtheit des Servers zu überprüfen,
wenn der Client eine Verbindung herstellt. Wenn der Benutzer
den Fingerabdruck mit yes bestätigt, wird
eine Kopie des Schlüssels in
.ssh/known_hosts im Heimatverzeichnis des
Benutzers gespeichert. Zukünftige 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.
Wenn dies passiert, sollte zunächst geprüft werden, ob sich
der Schlüssel geändert hat, bevor die Verbindung hergestellt
wird.In der Voreinstellung akzeptieren aktuelle Versionen von
OpenSSH nur
SSHv2 Verbindungen. Wenn möglich, wird der
Client versuchen Version 2 zu verwenden, ist dies nicht
möglich, fällt er auf Version 1 zurück. Der Client kann
gezwungen werden, nur eine der beiden Versionen zu verwenden,
indem die Option oder
übergeben wird. Weitere Optionen sind in &man.ssh.1;
beschrieben.OpenSSHsecure copy&man.scp.1;Mit &man.scp.1; lassen sich Dateien in einer sicheren
Weise auf entfernte Maschinen übertragen. Dieses Beispiel
kopiert die Datei COPYRIGHT von einem
entfernten System in eine Datei mit dem gleichen Namen auf
das lokale System:&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
Password for user@example.com: *******
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Da der Fingerabdruck für diesen Rechner bereits bestätigt
wurde, wird er automatisch überprüft, bevor der Benutzer zur
Eingabe des Passworts aufgefordert wird.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. Beachten Sie, das scp die
Option verwendet um Dateien rekursiv
zu kopieren, während cp
benutzt.Mit sftp können Dateien über eine
interaktive Sitzung kopiert werden. &man.sftp.1; beschreibt
die verfügbaren Befehle, die während einer
sftp-Sitzung zur Verfügung stehen.Schlüsselbasierte AuthentifizierungEin Client kann bei der Verbindung auch Schlüssel
anstelle von Passwörtern verwenden. Benutzen Sie
ssh-keygen um
RSA-Schlüssel erzeugen. Geben
Sie das entsprechende Protokoll an, wenn Sie einen
öffentlichen und einen privaten Schlüssel erzeugen. Folgen
Sie anschließend den Anweisungen des Programms. Es wird
empfohlen, die Schlüssel mit einer einprägsamen, aber schwer
zu erratenen Passphrase zu schützen.&prompt.user; ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:54Xm9Uvtv6H4NOo6yjP/YCfODryvUU7yWHzMqeXwhq8 user@host.example.com
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| . o.. |
| .S*+*o |
| . O=Oo . . |
| = Oo= oo..|
| .oB.* +.oo.|
| =OE**.o..=|
+----[SHA256]-----+Geben Sie hier die Passphrase ein. Diese darf auch
Leer- und Sonderzeichen enthalten.Geben Sie die Passphrase zur Überprüfung erneut
ein.Der private Schlüssel wird in
~/.ssh/id_rsa und der öffentliche
Schlüssel in ~/.ssh/id_rsa.pub
gespeichert. Der öffentliche Schlüssel
muss zuerst auf den entfernten Rechner nach
~/.ssh/authorized_keys kopiert werden,
damit die schlüsselbasierte Authentifizierung
funktioniert.Viele Benutzer denken, dass die Verwendung von
Schlüsseln generell sicher ist. Sie verwenden dann einen
Schlüssel ohne eine Passphrase. Dies ist jedoch sehr
gefährlich. Ein Administrator kann
überprüfen, ob ein Schlüsselpaar mit einer Passphrase
geschützt ist. Wenn die Datei mit dem privaten Schlüssel
den Text ENCRYPTED enthält, dann hat
der Benutzer eine Passphrase verwendet. Um die Benutzer
zusätzlich zu schützen, kann ein
from-Feld in der Datei des öffentlichen
Schlüssels hinzugefügt werden. Zum Beispiel würde das
Hinzufügen von from="192.168.10.5" vor
dem ssh-rsa-Präfix dafür sorgen, dass
sich ein bestimmter Benutzer nur noch von dieser
IP-Adresse anmelden darf.Die Optionen und Dateinamen sind abhängig von der
eingesetzten Version von OpenSSH.
Die für das System gültigen Optionen finden Sie in
&man.ssh-keygen.1;.Wenn bei der Erzeugung des Schlüssels eine Passphrase
angegeben wurde, wird der Benutzer bei jeder Anmeldung am
Server zur Eingabe der Passphrase aufgefordert. Mit
&man.ssh-agent.1; und &man.ssh-add.1; ist es möglich,
SSH-Schlüssel in den Speicher zu
laden, damit die Passphrase nicht jedes Mal eingegeben
werden muss.ssh-agent übernimmt die
Authentifizierung mit den geladenen privaten Schlüsseln.
ssh-agent kann dazu verwendet
werden, ein anderes Programm zu starten, beispielsweise eine
Shell oder einen Window-Manager.Um ssh-agent in einer Shell zu
verwenden, muss es mit einer Shell als Argument aufgerufen
werden. Die zu verwaltende Identität muss mit
ssh-add sowie der Passphrase für den
privaten Schlüssel übergeben werden. Danach kann sich der
Benutzer mit ssh auf
jedem Rechner anmelden, der einen entsprechenden
öffentlichen Schlüssel besitzt. Dazu ein Beispiel:&prompt.user; ssh-agent csh
&prompt.user; ssh-add
Enter passphrase for /usr/home/user/.ssh/id_rsa:
Identity added: /usr/home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
&prompt.user;Geben Sie hier die Passphrase für den Schlüssel
ein.Um ssh-agent unter
&xorg; zu verwenden, muss ein
Eintrag für das Programm in ~/.xinitrc
aufgenommen werden. Dadurch können alle unter
&xorg; gestarteten Programme die
Dienste von ssh-agent nutzen.
~/.xinitrc könnte etwa so
aussehen:exec ssh-agent startxfce4Dadurch wird bei jedem Start von
&xorg; zuerst
ssh-agent aufgerufen, das wiederum
XFCE startet. Nachdem diese
Änderung durchgeführt wurde, muss
&xorg; neu gestartet werden.
Danach können Sie mit ssh-add die
SSH-Schlüssel laden.SSH-TunnelOpenSSHTunnelMit OpenSSH ist es möglich,
einen Tunnel zu erstellen, in dem ein anderes Protokoll
verschlüsselt übertragen wird.Im folgenden Kommando erzeugt ssh
einen Tunnel für telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Dieses Beispiel verwendet die folgenden Optionen:Zwingt ssh dazu, die Version 2
des Protokolls zu verwenden, um sich mit dem Server zu
verbinden.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 Anmeldenamen auf dem entfernten
SSH-Server an.Ein SSH-Tunnel erzeugt einen Socket
auf localhost und dem angegebenen
lokalen Port. Jede Verbindung, die auf dem angegebenen
Socket aufgemacht wird, wird dann auf den spezifizierten
entfernten Rechner und Port weitergeleitet. Im Beispiel
wird der lokale Port 5023 an die
entfernte Maschine auf Port 23
weitergeleitet. Da der Port 23 für
telnet reserviert ist, erzeugt das eine
sichere &man.telnet.1;-Verbindung durch einen
SSH-Tunnel.Wie in den folgenden Beispielen zu sehen ist, kann diese
Vorgehensweise genutzt werden, um jedes unsichere
TCP-Protokoll, wie
SMTP, POP3 und
FTP, weiterzuleiten.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 ssh-keygen und
zusätzlichen Benutzer-Accounts können leicht benutzbare
SSH-Tunnel aufgebaut werden. Anstelle
von Passwörtern können Schlüssel benutzt werden und jeder
Tunnel kann unter einem eigenen Benutzer laufen.Sicherer Zugriff auf einen
POP3-ServerIn diesem Beispiel gibt es einen
SSH-Server, der Verbindungen von außen
akzeptiert. Im selben Netzwerk befindet sich zudem
noch ein Mail-Server, der POP3 spricht.
Um E-Mails auf sichere Weise abzurufen, bauen Sie eine
SSH-Verbindung zu dem
SSH-Server im Netzwerk auf und tunneln
von dort zum Mail-Server weiter.&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 den Mail-Client so, dass er POP3
Anfragen zu localhost auf Port
2110 sendet. Diese Verbindung wird dann über den
gesicherten Tunnel zu
mail.example.com
weitergeleitet.Umgehen einer FirewallEinige Firewalls filtern sowohl eingehende als auch
ausgehende Verbindungen. Zum Beispiel könnte eine
Firewall den Zugriff auf entfernte Rechner auf die Ports
22 und 80 beschränken, um lediglich SSH
und Web-Inhalte zu erlauben. Dies würde den Zugriff auf
Dienste verhindern, die nicht die Ports 22 oder 80
benutzen.Die Lösung hier ist es, eine
SSH-Verbindung zu einer Maschine
außerhalb der Firewall aufzumachen und durch diese zum
gewünschten Dienst 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: *******In diesem Beispiel benutzt ein Ogg Vorbis Client
localhost und Port 8888. Die
Verbindung wird dann zu
music.example.com Port 8000
weitergeleitet. Die Firewall wurde somit erfolgreich
umgangen.Den SSH-Server aktivierenOpenSSHaktivierenNeben den integrierten
SSH Client-Werkzeugen, die zur Verfügung
stehen, kann ein &os;-System auch als
SSH-Server konfiguriert werden, um
Verbindungen von anderen SSH-Clients zu
akzeptieren.Benutzen Sie den Kommando &man.service.8;, um zu prüfen
ob der sshd ausgeführt wird:&prompt.root; service sshd statusWenn der Dienst nicht ausgeführt wird, fügen Sie folgende
Zeile in /etc/rc.conf ein:sshd_enable="YES"Diese Zeile startet sshd, den
OpenSSH-Daemon, beim nächsten
Systemstart. Geben Sie folgendes ein, um den Dienst jetzt
zu starten:&prompt.root; service sshd startWenn sshd erstmalig gestartet wird,
werden die Host-Schlüssel des Systems erzeugt und der
Fingerabdruck wird auf der Konsole angezeigt. Stellen Sie den
Fingerabdruck den Benutzern zur Verfügung, sodass sie ihn
überprüfen können, wenn sie das erste Mal eine Verbindung mit
dem Server herstellen.&man.sshd.8; enthält die verfügbaren Optionen für den
Start von sshd und weitere Informationen
zur Authentifizierung, den Anmeldeprozess und die
verschiedenen Konfigurationsdateien.Ab jetzt sollte sshd für alle
Benutzer mit einem Benutzernamen und Kennwort zur Verfügung
stehen.SSH Server SicherheitObwohl sshd das am weitesten
verbreitete Remote-Administrations-Werkzeug ist, sind
Brute-Force- und
Drive-by-Angriffe auf
öffentliche Netzwerke weit verbreitet. Daher stehen mehrere
Optionen zur Verfügung, um diese Art von Angriffen zu
verhindern. Diese Optionen werden in diesem Abschnitt
beschrieben.Es ist in der Regel ein gute Idee, festzulegen, welche
Benutzer sich von welchem Rechner aus anmelden können. Dies
lässt sich beispielsweise über die Option
AllowUsers festlegen. Soll sich etwa nur
root vom Rechner mit
der IP-Adresse 192.168.1.32 aus einwählen
dürfen, würden Sie folgenden Eintrag in
/etc/ssh/sshd_config aufnehmen:AllowUsers root@192.168.1.32Damit sich admin
von jedem Rechner aus anmelden kann, geben Sie nur den
Benutzernamen an:AllowUsers adminSie können auch mehrere Benutzer in einer Zeile
aufführen:AllowUsers root@192.168.1.32 adminNachdem Sie /etc/ssh/sshd_config
angepasst haben, muss sshd seine
Konfigurationsdateien neu einlesen. Dazu geben Sie Folgendes
ein:&prompt.root; /etc/rc.d/sshd reloadWenn die Option AllowUsers verwendet
wird, ist es wichtig, jeden Benutzer aufzulisten, der sich
an diesem Rechner anmelden muss. Benutzer, die nicht in
dieser Liste aufgeführt sind, dürfen sich nicht anmelden.
Die Optionen für die Konfigurationsdatei von
OpenSSH unterscheiden zwischen
Groß- und Kleinschreibung. Wenn Sie eine Option falsch
schreiben, so wird sie ingnoriert. Testen Sie immer
die Änderungen, um sicherzustellen, dass sie wie erwartet
funktionieren. Weitere Informationen zu den verfügbaren
Optionen finden Sie in &man.sshd.config.5;.Darüber hinaus können Benutzer gezwungen werden, eine
Zwei-Faktor-Authentifizierung mit einem öffentlichen und einem
privaten Schlüssel zu benutzen. Bei Bedarf kann der Benutzer
ein Schlüsselpaar mit &man.ssh-keygen.1; erzeugen und dem
Administrator den öffentlichen Schlüssel zukommen lassen. Der
Schlüssel wird, wie weiter oben beschrieben, in
authorized_keys platziert. Um den
Benutzer zu zwingen, ausschließlich Schlüssel zu benutzen,
kann die folgende Option konfiguriert werden:AuthenticationMethods publickeyVerwechseln Sie nicht
/etc/ssh/sshd_config mit
/etc/ssh/ssh_config (beachten Sie das
zusätzliche d im ersten Dateinamen). Die
erste Datei konfiguriert den Server und die zweite Datei
konfiguriert den Client. &man.ssh.config.5; enthält eine
Auflistung der verfügbaren Client-Einstellungen.Zugriffskontrolllisten für Dateisysteme
(ACL)TomRhodesBeigetragen von ACLZugriffskontrolllisten
(Access Control Lists,
ACL) erweitern die normalen Zugriffsrechte
von &unix; Systemen auf eine kompatible (&posix;.1e) Weise
und bieten feiner granulierte Sicherheitsmechanismen.Der GENERIC-Kernel von &os; bietet
ACL-Unterstützung für
UFS-Dateisysteme. Benutzer, die es vorziehen
einen eigenen Kernel zu übersetzen, müssen die folgende Option
in die Kernelkonfigurationsdatei aufnehmen:options UFS_ACLDas 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. ACLs bauen auf den
erweiterten Attributen auf, die von UFS2
standardmäßig unterstützt werden.Dieses Kapitel beschreibt, wie
ACL-Unterstützung aktiviert wird. Zudem
werden einige Anwendungsbeispiele vorgestellt.ACL-Unterstützung aktivierenDie 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 Optionen in
/etc/fstab oder Namensänderungen der
Geräte, immer aktiv. Dies verhindert auch, dass
Zugriffskontrolllisten aus Versehen auf Dateisystemen ohne
Zugriffskontrolllisten aktiviert werden.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_htmlIn diesem Beispiel sind die Verzeichnisse
directory1,
directory2 und
directory3 durch Zugriffskontrolllisten
geschützt, wohingegen das Verzeichnis
public_html nicht geschützt ist.Zugriffskontrolllisten benutzengetfacl 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--setfacl ändert oder entfernt
ACLs auf Dateien. Um alle
ACLs einer Datei zu entfernen, können Sie
die Option benutzen. Es ist jedoch
empfehlenswert die Option zu verwenden, da
sie die erforderlichen Felder, die für ACLs
benötigt werden, beibehält.&prompt.root; setfacl -k testBenutzen Sie um die Einträge der
ACL zu verändern:&prompt.user; setfacl -m u:trhodes:rwx,g:web:r--,o::--- testIn diesem Beispiel gab es keine vordefinierten Einträge,
da sie durch den vorhergehenden Befehl entfernt wurden.
Mit diesem 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.Weitere Informationen zu den Optionen dieser Kommandos
finden Sie in &man.getfacl.1; und &man.setfacl.1;.Sicherheitsprobleme in Software von
Drittanbietern überwachenTomRhodesBeigetragen von pkgIn den letzten Jahren wurden zahlreiche Verbesserungen in
der Einschätzung und dem Umgang mit Sicherheitsproblemen
erzielt. Die Gefahr von Einbrüchen in ein System wird
aber immer größer, da Softwarepakete von Dritten
auf nahezu jedem Betriebssystem installiert und konfiguriert
werden.Die Einschätzung der Verletzlichkeit eines Systems ist
ein Schlüsselfaktor für dessen Sicherheit. &os;
veröffentlicht zwar Sicherheitshinweise
(security advisories) für
das Basissystem, das Projekt ist allerdings nicht dazu in der
Lage, dies auch für die zahlreichen Softwarepakete von
Dritten zu tun. Dennoch gibt es einen Weg, auch diese
Programmpakete zu überwachen. Das &os; Dienstprogramm
pkg enthält Optionen für genau
diesen Anwendungsfall.pkg fragt dazu eine Datenbank auf
bekannte Sicherheitsprobleme ab. Diese Datenbank wird vom &os;
Security Team sowie den Ports-Entwicklern aktualisiert und
gewartet.Anweisungen zur Installation von
pkg finden Sie im
.Die Installation enthält Konfigurationsdateien für
&man.periodic.8;, welche die Datenbank von
pkg verwaltet und aktualisiert.
Diese Funktionalität wird aktiviert, wenn in
&man.periodic.conf.5; die Variable
daily_status_security_pkgaudit_enable auf
YES gesetzt wird. Stellen Sie auf jeden Fall
sicher, dass diese (an das E-Mail-Konto von root gesendeten)
Sicherheitsberichte auch gelesen werden.Nach der Installation kann ein Administrator mit dem
folgenden Kommando die Datenbank aktualisieren und sich die
Sicherheitslücken in installierten Paketen anzeigen
lassen:&prompt.root; pkg audit -Fpkg zeigt dann die
Schwachstellen in installierten Pakete an:Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
-Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
+Reference: <https://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected package(s) immediately.Wenn Sie die angegebene URL über einen
Internetbrowser aufrufen, erhalten Sie weitere Informationen
über die bestehende Sicherheitslücke, wie die betroffenen
Versionen, die Version des &os;-Ports sowie Hinweise auf weitere
Seiten, die ebenfalls Sicherheitshinweise zu diesem Problem
bieten.pkg ist ein mächtiges
Werkzeug und insbesondere in Zusammenarbeit mit
ports-mgmt/portmaster äußerst
hilfreich.&os; SicherheitshinweiseTomRhodesBeigesteuert von &os; SicherheitshinweiseWie viele andere Hersteller von hochwertigen
Betriebssystemen, hat auch das &os;-Projekt ein Sicherheitsteam,
das für die Bestimmung des End-of-Life (EoL)
Datum verantwortlich ist. Das Sicherheitsteam stellt zudem
sicher, dass Sicherheitsupdates für unterstützte Versionen,
welche noch nicht ihr EoL erreicht haben, zur
Verfügung gestellt werden. Weitere Informationen über das &os;
Sicherheitsteam und den unterstützten Versionen finden Sie auf
der Webseite &os; Security.Zu den Aufgaben des Sicherheitsteams zählt es, auf gemeldete
Sicherheitslücken im &os;-Betriebssystem zu reagieren. Sobald
eine Sicherheitslücke bestätigt wird, überprüft das
Sicherheitsteam die notwendigen Schritte, um die Schwachstelle
zu beheben und den Quellcode mit der Korrektur zu
aktualisieren. Anschließend veröffentlicht es die Details in
einem Sicherheitshinweis
(Security Advisory). Die
Sicherheitshinweise werden auf der
&os; Webseite und auf den Mailinglisten
&a.security-notifications.name;, &a.security.name; und
&a.announce.name; veröffentlicht.Dieser Abschnitt beschreibt das Format eines
&os; Sicherheitshinweises.Format eines SicherheitshinweisHier ist ein Beispiel für einen &os;
Sicherheitshinweis:=============================================================================
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
=============================================================================
FreeBSD-SA-14:04.bind Security Advisory
The FreeBSD Project
Topic: BIND remote denial of service vulnerability
Category: contrib
Module: bind
Announced: 2014-01-14
Credits: ISC
Affects: FreeBSD 8.x and FreeBSD 9.x
Corrected: 2014-01-14 19:38:37 UTC (stable/9, 9.2-STABLE)
2014-01-14 19:42:28 UTC (releng/9.2, 9.2-RELEASE-p3)
2014-01-14 19:42:28 UTC (releng/9.1, 9.1-RELEASE-p10)
2014-01-14 19:38:37 UTC (stable/8, 8.4-STABLE)
2014-01-14 19:42:28 UTC (releng/8.4, 8.4-RELEASE-p7)
2014-01-14 19:42:28 UTC (releng/8.3, 8.3-RELEASE-p14)
CVE Name: CVE-2014-0591
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:http://security.FreeBSD.org/>.
I. Background
BIND 9 is an implementation of the Domain Name System (DNS) protocols.
The named(8) daemon is an Internet Domain Name Server.
II. Problem Description
Because of a defect in handling queries for NSEC3-signed zones, BIND can
crash with an "INSIST" failure in name.c when processing queries possessing
certain properties. This issue only affects authoritative nameservers with
at least one NSEC3-signed zone. Recursive-only servers are not at risk.
III. Impact
An attacker who can send a specially crafted query could cause named(8)
to crash, resulting in a denial of service.
IV. Workaround
No workaround is available, but systems not running authoritative DNS service
with at least one NSEC3-signed zone using named(8) are not vulnerable.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.
2) To update your vulnerable system via a source code patch:
The following patches have been verified to apply to the applicable
FreeBSD release branches.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
[FreeBSD 8.3, 8.4, 9.1, 9.2-RELEASE and 8.4-STABLE]
# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch
# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch.asc
# gpg --verify bind-release.patch.asc
[FreeBSD 9.2-STABLE]
# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch
# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch.asc
# gpg --verify bind-stable-9.patch.asc
b) Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch
Recompile the operating system using buildworld and installworld as
-described in <URL:http://www.FreeBSD.org/handbook/makeworld.html>.
+described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>.
Restart the applicable daemons, or reboot the system.
3) To update your vulnerable system via a binary patch:
Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility:
# freebsd-update fetch
# freebsd-update install
VI. Correction details
The following list contains the correction revision numbers for each
affected branch.
Branch/path Revision
- -------------------------------------------------------------------------
stable/8/ r260646
releng/8.3/ r260647
releng/8.4/ r260647
stable/9/ r260646
releng/9.1/ r260647
releng/9.2/ r260647
- -------------------------------------------------------------------------
To see which files were modified by a particular revision, run the
following command, replacing NNNNNN with the revision number, on a
machine with Subversion installed:
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
Or visit the following URL, replacing NNNNNN with the revision number:
<URL:http://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
VII. References
<URL:https://kb.isc.org/article/AA-01078>
<URL:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0591>
The latest revision of this advisory is available at
<URL:http://security.FreeBSD.org/advisories/FreeBSD-SA-14:04.bind.asc>
-----BEGIN PGP SIGNATURE-----
iQIcBAEBCgAGBQJS1ZTYAAoJEO1n7NZdz2rnOvQP/2/68/s9Cu35PmqNtSZVVxVG
ZSQP5EGWx/lramNf9566iKxOrLRMq/h3XWcC4goVd+gZFrvITJSVOWSa7ntDQ7TO
XcinfRZ/iyiJbs/Rg2wLHc/t5oVSyeouyccqODYFbOwOlk35JjOTMUG1YcX+Zasg
ax8RV+7Zt1QSBkMlOz/myBLXUjlTZ3Xg2FXVsfFQW5/g2CjuHpRSFx1bVNX6ysoG
9DT58EQcYxIS8WfkHRbbXKh9I1nSfZ7/Hky/kTafRdRMrjAgbqFgHkYTYsBZeav5
fYWKGQRJulYfeZQ90yMTvlpF42DjCC3uJYamJnwDIu8OhS1WRBI8fQfr9DRzmRua
OK3BK9hUiScDZOJB6OqeVzUTfe7MAA4/UwrDtTYQ+PqAenv1PK8DZqwXyxA9ThHb
zKO3OwuKOVHJnKvpOcr+eNwo7jbnHlis0oBksj/mrq2P9m2ueF9gzCiq5Ri5Syag
Wssb1HUoMGwqU0roS8+pRpNC8YgsWpsttvUWSZ8u6Vj/FLeHpiV3mYXPVMaKRhVm
067BA2uj4Th1JKtGleox+Em0R7OFbCc/9aWC67wiqI6KRyit9pYiF3npph+7D5Eq
7zPsUdDd+qc+UTiLp3liCRp5w6484wWdhZO6wRtmUgxGjNkxFoNnX8CitzF8AaqO
UWWemqWuz3lAZuORQ9KX
=OQzQ
-----END PGP SIGNATURE-----Jeder Sicherheitshinweis verwendet das folgende
Format:Jeder Sicherheitshinweis wird mit dem
PGP-Schlüssel des
Sicherheitsbeauftragten unterzeichnet. Der öffentliche
Schlüssel des Sicherheitsbeauftragten kann in überprüft werden.Der Name des Sicherheitshinweises beginnt immer mit
FreeBSD-SA- (für FreeBSD Security
Advisory), gefolgt vom Jahr im zweistelligen Format
(14:), gefolgt von der Anzahl von
Sicherheitshinweisen für dieses Jahr
(04.), gefolgt vom Namen der Anwendung
oder des betroffenen Subsystems (bind).
Der hier gezeigte Sicherheitshinweis ist der vierte
Hinweis für das Jahr 2014 und betrifft die Anwendung
BIND.Das Feld Topic enthält eine
Beschreibung der Schwachstelle.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 Komponenten des
&os;-Betriebssystems, die Kategorie
contrib beschreibt zum Basissystem
gehörende Software Dritter, beispielsweise
BIND. Die Kategorie
ports beschreibt Software, die Teil
der Ports-Sammlung ist.Das Feld Module beschreibt die
betroffene Komponente. Im diesem Beispiel ist das
bind-Modul betroffen, dass heißt
dieses Problem betrifft eine Anwendung aus dem
Betriebssystem.Das Feld Announced gibt den
Zeitpunkt der Bekanntgabe des Sicherheitshinweises
an. Das bedeutet, dass das Sicherheitsteam das Problem
bestätigt hat und das eine entsprechende Korrektur bereits
im &os; Quellcode-Repository zur Verfügung steht .Das Feld Credits gibt die Person
oder Organisation an, die das Sicherheitsproblem
bemerkt und gemeldet hat.Das Feld Affects listet die
&os;-Releases auf, die von dem Problem betroffen
sind.Das Feld Corrected zeigt an,
wann das Problem in welchem Release behoben wurde. Der
Teil in Klammern zeigt an, in welchem Zweig die
Aktualisierung eingeflossen ist und die entsprechende
Versionsnummer und Patch-Level des Release. Der
Patch-Level besteht aus dem Buchstaben
p, gefolgt von einer Nummer. Dies
erlaubt es dem Benutzer festzustellen, welche Korrekturen
bereits auf dem System eingespielt wurden.Reserviert für Informationen, über die
auf
cve.mitre.org nach Sicherheitslücken
gesucht werden kann.Im Feld Background wird
das betroffene Modul beschrieben.Im Feld Problem Description wird
das Sicherheitsproblem beschrieben. Hier wird
fehlerhafter Code beschrieben oder geschildert,
wie ein Werkzeug ausgenutzt werden könnte.Das Feld Impact beschreibt die
Auswirkungen des Sicherheitsproblems auf ein
System.Im Feld Workaround wird
eine Umgehung des Sicherheitsproblems beschrieben.
Die Umgehung ist für Administratoren gedacht,
die das System aus Zeitnot, Netzwerk-technischen oder
anderen Gründen nicht aktualisieren können.Das Feld Solution enthält eine
getestete Schritt-für-Schritt Anleitung, die das
Sicherheitsproblem behebt.Das Feld Correction Details
enthält die Subversion-Tags
der betroffenen Dateien zusammen mit zugehörigen
Revisionsnummern, in denen das Problem behoben
wurde.Im Feld References finden sich
Verweise auf weitere Informationsquellen.Prozess-ÜberwachungTomRhodesBeigetragen von Prozess-ÜberwachungProzess-Überwachung
(Process accounting) ist ein
Sicherheitsverfahren, bei dem ein Administrator verfolgt,
welche Systemressourcen verwendet werden und wie sich diese
auf die einzelnen Anwender verteilen. Dadurch kann das
System überwacht werden und es ist sogar möglich,
zu kontrollieren, welche Befehle ein Anwender eingibt.Die Überwachung von Prozessen hat sowohl Vor- als auch
Nachteile. Positiv ist, dass man einen Einbruchsversuch bis an
den Anfang zurückverfolgen kann. Von Nachteil ist allerdings,
dass durch diesen Prozess Unmengen an Protokolldateien erzeugt
werden, die auch dementsprechenden Plattenplatz benötigen.
Dieser Abschnitt beschreibt die Grundlagen der
Prozess-Überwachung.Wenn Sie eine differenzierte Prozess-Überwachung
benötigen, lesen Sie .Die Prozess-Überwachung aktivieren und
konfigurierenBevor Sie die Prozess-Überwachung verwenden können, müssen
Sie diese über die folgenden Befehle aktivieren:&prompt.root; touch /var/account/acct
&prompt.root; chmod 600 /var/account/acct
&prompt.root; accton /var/account/acct
&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.confEinmal aktiviert, wird sofort mit der Überwachung von
CPU-Statistiken, Befehlen und anderen
Vorgängen begonnen. Protokolldateien werden in einem
nur von Maschinen lesbaren Format gespeichert und können
mit sa aufgerufen werden. Ohne Optionen
gibt sa Informationen wie die Anzahl der
Aufrufe pro Anwender, die abgelaufene Zeit in Minuten, die
gesamte CPU- und Anwenderzeit in Minuten
und die durchschnittliche Anzahl der Ein- und
Ausgabeoperationen aus. &man.sa.8; enthält eine Liste der
Optionen, welche die Ausgabe steuern.Benutzen Sie lastcomm, um die von den
Benutzern ausgeführten Befehle anzuzeigen. Dieses Beispiel
zeigt die Nutzung von ls durch trhodes auf dem Terminal
ttyp1:&prompt.root; lastcomm ls trhodes ttyp1Zahlreiche weitere nützliche Optionen finden Sie
&man.lastcomm.1;, &man.acct.5; sowie &man.sa.8;.Einschränkung von RessourcenTomRhodesBeigetragen von Ressourcen einschränken&os; bietet dem Systemadministrator mehrere
Möglichkeiten die System-Ressourcen, die ein einzelner
Benutzer verwenden kann, einzuschränken.
Festplatten-Kontingente schränken den Plattenplatz, der
einem Benutzer zur Verfügung steht, ein. Kontingente werden
im diskutiert.QuotasBenutzer einschränkenQuotasEinschränkungen auf andere Ressourcen, wie
CPU und Speicher, können über eine
Konfigurationsdatei oder über die Kommandozeile konfiguriert
werden. Traditionell werden Login-Klassen in
/etc/login.conf definiert. Obwohl diese
Methode immer noch untersützt wird, muss nach jeder Änderung
an dieser Datei die Ressourcen-Datenbank neu gebaut werden.
Zudem müssen Sie die notwendigen Änderungen in
/etc/master.passwd vornehmen und die
Passwort-Datenbnak neu bauen. Dieser Prozess kann, abhängig
davon, wie viele Benutzer bearbeitet werden müssen, sehr
zeitaufwändig sein.Beginnend mit &os; 9.0-RELEASE können mit
rctl Ressourcen für Benutzer sehr
detailliert gesteuert werden. Dieser Befehl unterstützt nicht
nur die Kontrolle der Ressourcen für Benutzer, sondern auch die
Beschränkung auf Prozesse und Jails.In diesem Abschnitt werden beide Methoden
vorgestellt. Angefangen wird mit der traditionellen
Methode.Login-Klassen konfigurierenBenutzer einschränkenAccountseinschränken/etc/login.confBei der traditionellen Methode werden Login-Klassen und
Ressourcenbeschränkungen in
/etc/login.conf definiert. Jeder
Benutzer kann einer Login-Klasse zugewiesen werden
(standardmäßig default) und jede
Login-Klasse ist mit einem Satz von Login-Fähigkeiten
verbunden. Eine Login-Fähigkeit ist ein
Name=Wert
Paar, in dem Name die Fähigkeit
bezeichnet und Wert ein beliebiger
Text ist, der in Abhänigkeit von
Name entsprechend verarbeitet
wird.Immer wenn /etc/login.conf
verändert wurde, muss die
/etc/login.conf.db mit dem folgenden
Kommando aktualisiert werden:&prompt.root; cap_mkdb /etc/login.confRessourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer gestarteten
Prozess. listet die
gebräuchlichen Ressourcenbeschränkungen auf. Alle verfügbaren
Ressourcenbeschränkungen und Fähigkeiten sind im Detail in
&man.login.conf.5; beschrieben.Benutzer einschränkencoredumpsizeBenutzer einschränkencputimeBenutzer einschränkenfilesizeBenutzer einschränkenmaxprocBenutzer einschränkenmemorylockedBenutzer einschränkenmemoryuseBenutzer einschränkenopenfilesBenutzer einschränkensbsizeBenutzer einschränkenstacksize
Ressourcenbeschränkungen für Login-KlassenRessourcenbeschränkungBeschreibungcoredumpsizeDas Limit der Größe einer core-Datei, die von
einem Programm generiert wird, unterliegt aus
offensichtlichen Gründen anderen Limits der
Festplattenbenutzung, zum Beispiel
filesize oder
Festplattenkontingenten. Es wird oft als weniger
harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet. Da Benutzer
die core-Dateien selbst nicht erstellen und sie oft
nicht löschen, kann diese Option davor schützen, dass
kein Festplattenspeicher mehr zur Verfügung steht,
sollte ein großes Programm abstürzen.cputimeDie maximale Rechenzeit, die ein Prozess eines
Benutzers verbrauchen darf. Überschreitet ein Prozess
diesen Wert, wird er vom Kernel beendet. Beachten
Sie, dass die Rechenzeit
limitiert wird, nicht die prozentuale
Prozessorenbenutzung, wie es in einigen Feldern von
top und ps
dargestellt wird.filesizeHiermit lässt sich die maximale Größe einer Datei
bestimmen, die der Benutzer besitzen darf. Im
Gegensatz zu Festplattenkontingenten ist
diese Beschränkung nur für jede einzelne Datei gültig
und nicht für den Platz, den alle Dateien eines
Benutzers verwenden.maxprocDas ist die maximale Anzahl von Prozessen, die
ein Benutzer starten darf, und beinhaltet sowohl
Vordergrund- als auch Hintergrundprozesse. Dieser
Wert nicht höher sein als das System-Limit, das in
kern.maxproc angegeben ist.
Vergessen Sie nicht, dass ein zu kleiner Wert den
Benutzer in seiner Produktivität einschränken könnte,
wenn beispielsweise ein großes Programm übersetzt wird
oder viele Prozesse gestartet sind.memorylockedDieses Limit gibt an, wie viel virtueller
Speicher von einem Prozess maximal im Arbeitsspeicher
festgesetzt werden kann (siehe auch &man.mlock.2;).
Ein paar systemkritische Programme, wie &man.amd.8;,
verhindern damit einen Systemzusammenbruch, der
auftreten könnte, wenn sie aus dem Speicher genommen
werden.memoryuseBezeichnet den maximalen Speicher, den ein
Prozess benutzen darf und beinhaltet sowohl
Arbeitsspeicher-, als auch Swap-Benutzung. Es ist
kein allübergreifendes Limit für den
Speicherverbrauch, aber ein guter Anfang.openfilesMit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In &os; werden Dateien auch verwendet, um
Sockets und >IPC>-Kanäle
darzustellen. Setzen Sie es deshalb nicht zu niedrig.
Das System-Limit ist in
kern.maxfiles definiert.sbsizeDieses Limit beschränkt den Netzwerk-Speicher,
den ein Benutzer verbrauchen darf. Es kann generell
dazu benutzt werden Netzwerk-Verbindungen zu
beschränken.stacksizeDas ist die maximale Größe, auf die der Stack
eines Prozesses heranwachsen darf. Das allein ist
natürlich nicht genug, um den Speicher zu beschränken,
den ein Programm verwenden darf. Es sollte deshalb in
Verbindung mit anderen Limits verwendet
werden.
Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten:Von /etc/rc beim Hochfahren des
Systems gestartete Prozesse werden der
daemon Login-Klasse zugewiesen.Obwohl die voreingestellte
/etc/login.conf sinnvolle Limits
enthält, sind sie evtl. nicht für jedes System geeignet.
Ein zu hohes Limit kann das System für Missbrauch anfällig
machen, und ein zu niedriges Limit kann der Produktivität
schaden.&xorg; beansprucht selbst
eine Menge Ressourcen und verleitet die Benutzer dazu,
mehrere Programme gleichzeitig laufen zu lassen.Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man zum
Beispiel openfiles auf
50, kann jeder Prozess des Benutzers
bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem
Benutzer geöffnet werden können,
openfiles mal
maxproc. Das gilt auch für den
Speicherverbrauch.Weitere Informationen über Ressourcenbeschränkungen,
Login-Klassen und -Fähigkeiten finden Sie in &man.cap.mkdb.1;,
&man.getrlimit.2; und &man.login.conf.5;.Einschränkung von Ressourcen aktivieren und
konfigurierenSeit &os; 10.2 wird rctl in der
Voreinstellung vom Kernel unterstützt. Für ältere Versionen
muss zunächst nach den Anweisungen in ein neuer Kernel erzeugt werden.
Fügen Sie dazu folgende Zeilen in die
Kernelkonfigurationsdatei ein:options RACCT
options RCTLSobald das System mit dem neuen Kernel gestartet wird,
kann rctl benutzt werden, um die Regeln für
das System festzulegen.Die Syntax der Regeln wird durch
subject, subject-id,
resource und action
gesteuert, wie in diesem Beispiel zu sehen ist:user:trhodes:maxproc:deny=10/userDiese Regel zeigt den grundlegenden Aufbau, hier mit dem
Subjekt user und der Subjekt-ID
trhodes. maxproc
definiert die Anzahl der Prozesse. Die Aktiondeny verhindert, dass neue Prozesse
erstellt werden. Im vorherigen Beispiel wurde für den
Benutzer trhodes eine Beschränkung von
10 Prozessen konfiguriert. Zu den weiteren
Aktionen zählen beispielsweise die Protokollierung auf der
Konsole, Benachrichtigungen an &man.devd.8; oder das Senden
eines SIGTERM an einen Prozess.Beim hinzufügen von Regeln müssen einige Dinge beachtet
werden. Das obige Beispiel würde den Benutzer sogar daran
hindern, einfachste Dinge zu tun, nachdem er sich anmeldet und
eine screen Sitzung gestartet hat. Sobald
die Begrenzung für eine Ressource erreicht ist, wird folgende
Fehlermeldung ausgegeben:&prompt.root; man test
/usr/bin/man: Cannot fork: Resource temporarily unavailable
eval: Cannot fork: Resource temporarily unavailable&man.rctl.8; kann auch benutzt werden, um einer Jail
eine Speichergrenze zuzuweisen. Eine solche Regel könnte
wie folgt festgelegt werden:&prompt.root; rctl -a jail:httpd:memoryuse:deny=2G/jailDamit die Regeln auch nach einem Neustart erhalten
bleiben, müssen sie in /etc/rctl.conf
hinzugefügt werden. Dazu schreiben Sie einfach die Regel,
ohne das vorhergehende Kommando. Zum Beispiel:# Block jail from using more than 2G memory:
jail:httpd:memoryuse:deny=2G/jailMit rctl können auch Regeln entfernt
werden:&prompt.root; rctl -r user:trhodes:maxproc:deny=10/user&man.rctl.8; zeigt auch eine Möglichkeit, alle Regeln zu
entfernen. Falls es erforderlich ist alle Regeln für einen
einzelnen Benutzer zu entfernen, kann dieser Befehl verwendet
werden:&prompt.root; rctl -r user:trhodesEs gibt noch viele weitere Ressourcen, die verwendet
werden können, um zusätzliche subjects zu
kontrollieren. Weitere Informationen zu diesem Thema finden
Sie in &man.rctl.8;.Gemeinsame Administration mit SudoTomRhodesBeigetragen von BjörnHeidottingÜbersetzt von SicherheitSudoSystemadministratoren benötigen häufig die Möglichkeit,
Benutzern erweiterte Berechtigungen zu gewähren, damit
diese privilegierte Aufgaben ausführen können. Die Idee, dass
Teammitglieder einen Zugang zu einem &os;-System zur Verfügung
gestellt bekommen, um ihre spezifischen Aufgaben erledigen zu
können, stellt den Administrator vor eine große
Herausforderung. Diese Teammitglieder benötigen in der Regel
nur einen eingeschränkten Zugang. Für manche Aufgaben werden
jedoch die Rechte des Superusers benötigt. Zum Glück gibt es
keinen Grund, diesen Mitgliedern einen solchen Zugang zu geben,
da es Werkzeuge für genau diesen Anwendungsfall gibt.Bislang wurde in diesem Kapitel immer versucht, den Zugriff
für autorisierte Benutzer zu gewähren und den Zugriff für
nicht autorisierte Benutzer zu verhindern. Ein weiteres Problem
entsteht, sobald autorisierte Benutzer Zugriff auf die
Ressourcen des Systems haben. In vielen Fällen benötigen einige
Benutzer Zugriff auf Startskripte von Anwendungen. In anderen
Fällen muss eine Gruppe von Administratoren das System
verwalten. Traditionell wird der Zugriff über Benutzer,
Gruppen, Dateiberechtigungen und manchmal sogar &man.su.1;
verwaltet. Und da immer mehr Anwendungen einen Zugriff brauchen
und immer mehr Benutzer Zugriff auf die Systemressourcen
benötigen, ist ein besserer Lösungsansatz erforderlich. Die am
häufigsten verwendete Anwendung in solchen Fällen ist derzeit
Sudo.Sudo erlaubt dem Administrator
eine rigide Konfiguration des Zugriffs auf bestimmte Kommandos
und stellt einige erweiterte Protokollfunktionen zur Verfügung.
Dieses Werkzeug kann als Port oder Paket
security/sudo installiert werden. Das Paket
wird wie folgt installiert:&prompt.root; pkg install sudoNach der Installation können Sie visudo
benutzen, um die Konfiguration in einem Texteditor zu öffnen.
Es wird ausdrücklich visudo empfohlen, da
dieses Programm die Syntax auf Fehler überprüft, bevor die
Konfigurationsdatei gespeichert wird.Die Konfigurationsdatei besteht aus mehreren kleinen
Abschnitten, die eine umfangreiche Konfiguration ermöglichen.
Im folgenden Beispiel soll der Webentwickler (user1) den Dienst
webservice starten und stoppen
dürfen. Um ihm dieses Recht zu gewähren, fügen Sie folgende
Zeile an das Ende von
/usr/local/etc/sudoers ein:user1 ALL=(ALL) /usr/sbin/service webservice *Der Benutzer kann jetzt
webservice über dieses Kommando
starten:&prompt.user; sudo /usr/sbin/service webservice startDiese Konfiguration gestattet den Zugriff auf den
webservice für einen einzelnen
Benutzer. Jedoch ist in den meisten Organisationen ein ganzes
Team für die Verwaltung eines solchen Dienstes verantwortlich.
Mit einer weiteren Zeile ist es möglich, einer ganzen Gruppe
diesen Zugriff zu geben. Die folgenden Schritte erstellen eine
Gruppe mit den entsprechenden Benutzern. Der Gruppe wird es
dann ermöglicht, diesen Dienst zu verwalten:&prompt.root; pw groupadd -g 6001 -n webteamNun werden die Benutzer mit Hilfe von &man.pw.8; in die
Gruppe webteam hinzugefügt:&prompt.root; pw groupmod -m user1 -n webteamZuletzt wird folgende Zeile in
/usr/local/etc/sudoers hinzugefügt, damit
jedes Mitglied von webteam den Dienst
webservice verwalten kann:%webteam ALL=(ALL) /usr/sbin/service webservice *Im Gegensatz zu &man.su.1;, benötigt
Sudo nur das Passwort des
Benutzers.Benutzer, die mit Hilfe von Sudo
Programme ausführen, müssen lediglich ihr eigenes Passwort
eingeben. Dies ist sicherer und bietet eine bessere Kontrolle
als &man.su.1;, wo der Benutzer das root-Passwort eingibt und damit
alle Rechte von root
erlangt.Viele Organisationen haben bereits auf eine
Zwei-Faktor-Authentifizierung umgestellt. In diesen Fällen
hat der Benutzer möglicherweise gar kein Passwort, welches er
eingeben könnte. Sudo bietet für
solche Fälle die Variable NOPASSWD. Wenn
die Variable in die obige Konfiguration hinzugefügt wird,
dürfen die Mitglieder der Gruppe
webteam den Dienst verwalten, ohne
ein Passwort eingeben zu müssen:%webteam ALL=(ALL) NOPASSWD: /usr/sbin/service webservice *ProtokollierungEin Vorteil von Sudo ist, dass
Sitzungen protokolliert werden können. Mit den integrierten
Protokollmechanismen und dem Befehl
sudoreplay können alle über
Sudo ausgelösten Befehle
protokolliert und zu einem späteren Zeitpunkt überprüft
werden. Um diese Funktion zu aktivieren, fügen Sie einen
Eintrag für das Verzeichnis der Protokolle hinzu. Dieses
Beispiel verwendet eine Benutzervariable. Weitere
Informationen finden Sie in der Manualpage von
sudoreplay.Defaults iolog_dir=/var/log/sudo-io/%{user}Dieses Verzeichnis wird automatisch nach der
Konfiguration erstellt. Um auf der sicheren Seite zu sein,
ist es am besten, das System die Verzeichnisse mit
Standardberechtigungen erstellen zu lassen. Dieser
Eintrag wird auch ein Protokoll für Administratoren
erstellen, wenn diese den Befehl
sudoreplay benutzen. Um dieses
Verhalten zu ändern, kommentieren Sie die entsprechenden
Zeilen in sudoers aus.Nachdem dieser Eintrag in die Datei
sudoers hinzugefügt wurde, kann die
Konfiguration der Benutzer für die Protokollierung
aktualisiert werden. In dem gezeigten Beispiel würde der
aktualisierte Eintrag für das
webteam zusätzlich folgende
Änderung benötigen:%webteam ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: /usr/sbin/service webservice *Von nun an wird jede Änderung am
webservice protokolliert, wenn sie
von einem Mitglied der Gruppe
webteam initiiert wurde. Eine
Liste der Sitzungen kann wie folgt angezeigt werden:&prompt.root; sudoreplay -lWenn Sie eine bestimmte Sitzung wiedergeben möchten,
suchen Sie in der Ausgabe nach dem Eintrag
TSID= und übergeben Sie den Wert ohne
weitere Optionen an sudoreplay.
Zum Beispiel:&prompt.root; sudoreplay user1/00/00/02Obwohl die Sitzungen protokolliert werden, kann ein
böswilliger Administrator wahllos die Sitzungsprotokolle
löschen. Daher ist es eine gute Idee, eine tägliche
Kontrolle mit einem Intrusion Detection
System (IDS) oder
einer ähnlichen Software durchzuführen, so dass andere
Administratoren auf manuelle Änderungen aufmerksam gemacht
werden.sudoreplay ist extrem
erweiterbar. Lesen Sie die Dokumentation für weitere
Informationen.
Index: head/de_DE.ISO8859-1/books/handbook/x11/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/x11/chapter.xml (revision 51221)
+++ head/de_DE.ISO8859-1/books/handbook/x11/chapter.xml (revision 51222)
@@ -1,2320 +1,2320 @@
Das X-Window-SystemMartinHeinenÜbersetzt von ÜbersichtBei einer Installation von &os; mit
bsdinstall wird nicht automatisch
eine grafische Benutzeroberfläche installiert. Dieses Kapitel
beschreibt die Installation und Konfiguration von
&xorg;, das eine grafische
Umgebung über das quelloffene X-Window-System zur Verfügung
stellt. Weiterhin wird beschrieben, wie Sie eine
Desktop-Umgebung oder einen Window Manager finden und
installieren können.Benutzer die eine Installationsmethode bevorzugen, welche
automatisch &xorg; konfiguriert und
zudem die Auswahl eines Window Managers während der
Installation anbietet, sollten sich die
Webseite ansehen.Weitere Informationen über Video-Hardware, die von
&xorg; unterstützt wird, finden Sie
auf der x.org
Webseite.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Komponenten des X-Window-Systems und ihr
Zusammenspiel kennen.Wissen, wie &xorg;
installiert und konfiguriert wird.Wissen, wie verschiedene Window-Manager und
Desktop-Umgebungen installiert und konfiguriert
werden.Wissen, wie &truetype;-Schriftarten mit
&xorg; benutzt werden.Wissen, wie Sie die grafische Anmeldung
(XDM) einrichten.Bevor Sie dieses Kapitel lesen, sollten SieWissen, wie Sie Software Dritter, wie in
beschrieben, installieren.TerminologieObwohl es nicht nötig ist, alle Details der verschiedenen
Komponenten des X Window Systems und deren Zusammenspiel zu
kennen, kann es trotzdem nützlich sein die Grundlagen dieser
Komponenten zu verstehen:X-ServerX wurde von Anfang an netzwerktransparent entworfen
und verwendet ein Client-Server-Modell. In
diesem Modell läuft der X-Server auf dem
Rechner, an dem die Tastatur, der Bildschirm und die Maus
angeschlossen ist. Der Server ist für Dinge wie die
Verwaltung des Bildschirms und die Verarbeitung von
Tastatur- und Maus-Eingaben sowie anderer Ein- und
Ausgabegeräte, wie beispielsweise ein Tablet oder ein
Videoprojektor, verantwortlich. Dieses Modell verwirrt
viele Leute, die erwarten, dass der
X-Server der leistungsstarke Rechner im
Maschinenraum und der X-Client ihr
Arbeitsplatzrechner ist.X-ClientJede X-Anwendung, wie beispielsweise
XTerm oder
Firefox ist ein
X-Client. Der Client
sendet dem Server Nachrichten wie Zeichne an diesen
Koordinaten ein Fenster und der Server sendet dem
Client Nachrichten der Art Der Benutzer hat gerade
den Ok-Knopf gedrückt.In kleinen Umgebungen laufen der X-Server und die
X-Clients auf demselben Rechner. Es ist auch möglich, den
X-Server auf einem weniger leistungsfähigen Rechner laufen
zu lassen und die X-Anwendungen auf einem
leistungsfähigeren Rechner zu betreiben. In diesem Fall
kommunizieren der X-Server und die X-Clients über das
Netzwerk.Window-ManagerX schreibt nicht vor, wie Fenster auf dem Bildschirm
auszusehen haben, wie sie mit der Maus zu verschieben
sind, welche Tastenkombinationen benutzt werden sollen um
zwischen den Fenstern zu wechseln, wie die Fensterrahmen
aussehen, oder ob diese Schaltflächen zum schließen haben.
Stattdessen gibt X die Verantwortung für all diese Sachen
an eine separate Window-Manager
Anwendung ab. Es stehen zahlreiche
Window-Manager zur Verfügung. Jeder
Window-Manager bietet ein anderes Erscheinungsbild:
einige unterstützen virtuelle Bildschirme, andere erlauben
Tastenkombinationen zur Verwaltung des Bildschirms.
Einige besitzen eine Start Schaltfläche und
in manchen lässt sich das Aussehen und Verhalten der
Anwendung über Themes
beliebig einstellen. Window-Manager stehen in der
Kategorie x11-wm der Ports-Sammlung
zur Verfügung.Jeder Window-Manager wird unterschiedlich
konfiguriert. Einige erwarten eine manuell erstellte
Konfigurationsdatei, während andere ein grafisches
Werkzeug für die meisten Konfigurationsarbeiten
anbieten.Desktop-UmgebungenKDE und
GNOME werden als
Desktop-Umgebungen bezeichnet, da sie eine ganze Reihe von
Anwendungen für typische Desktop-Aufgaben enthalten. Dazu
zählen beispielsweise Office-Pakete, Webbrowser und
Spiele.FokusDer Window-Manager ist für die Methode verantwortlich,
mit der ein Fenster den Fokus bekommt. Jedes System, das
Fenster verwendet muss entscheiden, wie ein Fenster
aktiviert wird, damit es Eingaben empfangen kann. Das
aktive Fenster sollte zudem sichtbar gekennzeichnet
werden.Eine Methode wird click-to-focus
genannt. Ein Fenster wird aktiv, wenn es mit der Maus
angeklickt wird. Eine weitere Methode ist
focus-follows-mouse. Hier hat liegt der
Fokus auf dem Fenster, auf dem sich der Mauszeiger
befindet. Wird der Mauszeiger in ein anderes Fenster
bewegt, so erhält dieses Fenster den Fokus. Eine dritte
Methode ist sloppy-focus. Hier wechselt
der Fokus nur dann, wenn sich der Mauszeiger in ein neues
Fenster bewegt und nicht, wenn er das aktive Fenster
verlässt. Ist der Mauszeiger auf der Desktop Oberfläche,
so bleibt der Fokus auf dem zuletzt verwendeten Fenster.
Bei der Methode click-to-focus wird das
aktive Fenster durch einen Mausklick festgelegt.
Dabei kann das Fenster vor alle anderen Fenster gesetzt
werden. Alle Eingaben werden dann, unabhängig von der
Position des Mauszeigers, dem aktiven Fenster
zugeordnet.Die verschiedenen Window-Manager unterstützen noch
andere Methoden. Alle unterstützen jedoch
click-to-focus und die meisten von ihnen
auch die anderen Methoden. Lesen Sie die Dokumentation
des Window-Managers um festzustellen, welche Methoden zur
Verfügung stehen.WidgetsWidget bezeichnet Objekte, die
in irgendeiner Weise geklickt oder manipuliert werden
können. Dazu gehören
buttons (Schaltflächen),
check buttons
(Schaltfläche für Mehrfachauswahlen),
radio buttions
(Schaltfläche für Einfachauswahlen), Icons und
Auswahllisten. Eine Widget-Sammlung ist eine Reihe von
Widgets, die verwendet werden um grafische Anwendungen zu
erstellen. Es gibt mehrere populäre Widget-Sammlungen,
einschließlich Qt, das von KDE
benutzt wird, und GTK+, das von
GNOME benutzt wird. Als Folge
dessen, haben Anwendungen einen bestimmten
look and feel, je nachdem
welche Widget-Sammlung benutzt wurde, um die Anwendung zu
erstellen.&xorg; installierenIn &os; kann &xorg; als Paket
oder Port installiert werden.Die Installation des Pakets ist zwar schneller, dafür können
weniger Optionen angepasst werden:&prompt.root; pkg install xorgDie nachstehenden Kommandos bauen und installieren
&xorg; aus der
Ports-Sammlung:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanBei beiden Vorgehensweisen wird ein vollständiges
&xorg;-System installiert. Für die
meisten Anwender ist die Installation des Binärpakets die
bessere Option.Eine kleinere Version des
&xorg;-Systems für erfahrene Anwender
ist mit x11/xorg-minimal verfügbar. Die
meisten Dokumente, Bibliotheken und Anwendungen werden hierbei
nicht installiert. Einige Anwendungen erfordern jedoch diese
zusätzlichen Komponenten, um ordnungsgemäß zu
funktionieren.&xorg; konfigurierenWarrenBlockGeschrieben von BjörnHeidottingÜbersetzt von &xorg;&xorg;Schnellstartanleitung&xorg; unterstützt die meisten
gängigen Grafikkarten, Tastaturen und Zeigegeräte.Grafikkarten, Monitore und Eingabegeräte werden
automatisch erkannt und müssen nicht manuell konfiguriert
werden. Erstellen Sie keine xorg.conf
und führen Sie nicht aus, es sei
denn, die automatische Konfiguration schlägt fehl.Wenn &xorg; bereits zuvor
auf diesem Computer verwendet wurde, verschieben oder
entfernen Sie alle vorhandenen
Konfigurationsdateien:&prompt.root; mv /etc/X11/xorg.conf ~/xorg.conf.etc
&prompt.root; mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetcFügen Sie die Benutzer, die
&xorg; verwenden, zur Gruppe
video oder wheel
hinzu, um die 3D-Beschleunigung zu aktivieren. Um den
Benutzer jru in eine der
verfügbaren Gruppen hinzuzufügen:&prompt.root; pw groupmod video -m jru || pw groupmod wheel -m jruDer Window-Manager TWM ist
standardmäßig enthalten und wird auch gestartet, wenn
&xorg; startet:&prompt.user; startxAuf einigen älteren Versionen von &os; muss die
Systemkonsole auf &man.vt.4; eingestellt sein, damit der
Wechsel auf die Konsole ordnungsgemäß funktioniert.
Informationen dazu finden Sie im
.Benutzergruppen für GrafikbeschleunigungUm die 3D-Beschleunigung für Grafikkarten zu ermöglichen,
ist der Zugriff auf /dev/dri notwendig.
In der Regel ist es am einfachsten, die Benutzer zur Gruppe
video oder wheel
hinzuzufügen. In diesem Beispiel wird &man.pw.8; verwendet,
um den Benutzer slurms zu der
Gruppe video hinzuzufügen, bzw. zur Gruppe
wheel, falls die Gruppe
video nicht existiert:&prompt.root; pw groupmod video -m slurms || pw groupmod wheel -m slurmsKernel Mode Setting (KMS)Wenn der Computer die Anzeige von der Konsole auf eine
höhere Bildschirmauflösung für X umstellt, muss der
Videoausgabe-Modus eingestellt werden. Neuere Versionen von
&xorg; verwenden dazu ein System
innerhalb des Kernels, um diesen Modus effizienter zu ändern.
Ältere Versionen von &os; verwenden dafür &man.sc.4;, welches
jedoch nicht mit dem KMS-System umgehen
kann. Das führt dazu, dass nach dem Schließen von X die
Konsole leer bleibt, obwohl sie weiterhin funktioniert. Die
neuere &man.vt.4; Konsole vermeidet dieses Problem.Fügen Sie diese Zeile in
/boot/loader.conf ein um &man.vt.4; zu
aktivieren:kern.vty=vtKonfigurationsdateienEine manuelle Konfiguration ist in der Regel nicht
erforderlich. Bitte erstellen Sie keine manuellen
Konfigurationsdateien, es sei denn, die automatische
Konfiguration funktioniert nicht.Verzeichnis&xorg; sucht in verschiedenen
Verzeichnissen nach Konfigurationsdateien. Unter &os; ist
/usr/local/etc/X11/ das bevorzugte
Verzeichnis für diese Dateien. Die Verwendung dieses
Verzeichnisses hilft dabei, Anwendungsdateien vom
Betriebssystem getrennt zu halten.Das Speichern von Konfigurationsdateien unter
/etc/X11/ funktioniert immer noch,
allerdings vermischt diese Methode Anwendungsdateien mit
Dateien des Basissystems und wird daher nicht
empfohlen.Einzelne oder mehrere DateienAnstatt die traditionelle
xorg.conf zu verwenden, ist es
einfacher, mehrere Dateien, die jeweils eine bestimmte
Einstellung konfigurieren, zu verwenden. Diese Dateien
werden im Unterverzeichnis xorg.conf.d/
des Hauptverzeichnisses gespeichert. Der vollständige Pfad
ist normalerweise
/usr/local/etc/X11/xorg.conf.d/.Beispiele für diese Dateien werden später in diesem
Abschnitt vorgestellt.Die traditionelle, einzelne
xorg.conf funktioniert weiterhin, ist
jedoch nicht so übersichtlich und flexibel wie die
Verwendung von mehreren Dateien im Unterverzeichnis
xorg.conf.d/.Grafikkarten&intel;3D-Beschleunigung wird von den meisten
&intel;-Grafikkarten unterstützt, einschließlich
Ivy Bridge (HD Graphics 2500, 4000 und P4000),
Iron Lake (HD Graphics) und Sandy Bridge
(HD Graphics 2000).Treibername: intelWeitere Informationen finden Sie unter .&amd; Radeon2D- und 3D-Beschleunigung wird von den
meisten Radeon-Karten bis zur HD6000-Serie
unterstützt.Treibername: radeonWeitere Informationen finden Sie unter .NVIDIAVerschiedene NVIDIA Treiber sind in der
Kategorie x11 der Ports-Sammlung
enthalten. Installieren Sie den Treiber, der für die
Grafikkarte benötigt wird.Weitere Informationen finden Sie unter .Hybride KombinationenEinige Notebooks besitzen zusätzlich zum Chipsatz
oder Prozessor einen Grafikprozessor.
Optimus kombiniert &intel; und
NVIDIA Hardware.
Umschaltbare Grafik bzw.
Hybride Grafik ist eine Kombination
aus &intel;, oder &amd; Prozessor mit &amd; Radeon
GPU.Die Implementierungen dieser Hybrid-Grafik-Systeme
variieren und &xorg; in &os; ist nicht in der Lage, alle
Versionen der Hardware zu betreiben.Einige Computer bieten jedoch eine
BIOS-Option, um eine der beiden
Grafikkarten zu deaktivieren oder den
diskreten Modus einzuschalten.
Zum Beispiel ist es manchmal möglich, die NVIDIA
GPU in einem Optimus-System zu
deaktivieren. &intel; Video kann dann mit einem &intel;
Treiber verwendet werden.Die BIOS-Einstellungen sind
abhängig vom Modell des Computers. In manchen
Situationen können beide GPUs
aktiviert bleiben. Um solch ein System lauffähig zu
machen genügt es bereits, nur die
Haupt-GPU im Abschnitt
Device der Konfigurationsdatei zu
setzen.Andere GrafikkartenTreiber für weniger gebräuchliche Grafikkarten
finden Sie in der Kategorie
x11-drivers der
Ports-Sammlung.Karten, die nicht durch einen speziellen Treiber
unterstützt werden, sind vielleicht noch mit dem Treiber
x11-drivers/xf86-video-vesa nutzbar.
Dieser Treiber wird von x11/xorg
installiert. Der Treiber kann auch manuell als
x11-drivers/xf86-video-vesa
installiert werden. &xorg; versucht immer diesen
Treiber zu verwenden, wenn für die Grafikkarte kein
passender Treiber gefunden wird.x11-drivers/xf86-video-scfb ist
ein ähnlicher Treiber, der mit vielen
UEFI und &arm; Computern
funktioniert.Video-Treiber über eine Datei einstellenDen &intel; Treiber in einer Konfigurationsdatei
einstellen:Den &intel; Treiber über eine Datei
auswählen/usr/local/etc/X11/xorg.conf.d/driver-intel.confSection "Device"
Identifier "Card0"
Driver "intel"
# BusID "PCI:1:0:0"
EndSectionWenn mehr als eine Grafikkarte vorhanden ist, kann
der Eintrag BusID verwendet werden,
um die gewünschte Karte auszuwählen. Eine Liste der
BusIDs der Grafikkarten kann mit
pciconf -lv | grep -B3 display
ausgegeben werden.Den Radeon Treiber in einer Konfigurationsdatei
einstellen:Den Radeon Treiber über eine Datei
auswählen/usr/local/etc/X11/xorg.conf.d/driver-radeon.confSection "Device"
Identifier "Card0"
Driver "radeon"
EndSectionDen VESA Treiber in einer
Konfigurationsdatei einstellen:Den VESA Treiber über eine
Datei auswählen/usr/local/etc/X11/xorg.conf.d/driver-vesa.confSection "Device"
Identifier "Card0"
Driver "vesa"
EndSectionDen Treiber scfb für
UEFI- oder &arm;-Computer
auswählen:Den scfb Treiber über eine
Datei auswählen/usr/local/etc/X11/xorg.conf.d/driver-scfb.confSection "Device"
Identifier "Card0"
Driver "scfb"
EndSectionMonitoreFast alle Monitore unterstützen den Extended Display
Identification Data Standard (EDID).
&xorg; verwendet EDID um mit dem Monitor zu
kommunizieren und die unterstützten Auflösungen und
Bildwiederholfrequenzen zu erkennen. &xorg; wählt dann die
für den Monitor am besten geeignete Kombination von
Einstellungen.Weitere vom Monitor unterstützte Auflösungen, können in
der Konfigurationsdatei, oder nach dem Start des X-Servers mit
&man.xrandr.1; gesetzt werden.&man.xrandr.1; benutzenFühren Sie &man.xrandr.1; ohne Parameter aus, um
eine Liste von Video-Ausgängen und erkannten
Monitor-Modi zu sehen:&prompt.user; xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
1920x1200 59.95*+
1600x1200 60.00
1280x1024 85.02 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 85.00 75.08 70.07 60.00
832x624 74.55
800x600 75.00 60.32
640x480 75.00 60.00
720x400 70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)Die Auflistung zeigt, dass der
DVI-0 Ausgang benutzt wird, um eine
Bildschirmauflösung von 1920x1200 bei einer
Bildwiederholrate von 60 Hz anzuzeigen. An den
Anschlüssen DisplayPort-0 und
HDMI-0 sind keine Monitore
angeschlossen.Die anderen Anzeigemodi können mit &man.xrandr.1;
ausgewählt werden. Um beispielsweise auf 1280x1024 bei
60 Hz umzuschalten:&prompt.user; xrandr --mode 1280x1024 --rate 60Häufig wird für einen Videoprojektor der externe
Videoausgang eines Notebooks verwendet.Die Typen und Anzahl der Videoanschlüsse variiert
zwischen den Geräten und auch die Ausgabe variiert von
Treiber zu Treiber. Was für den einen Treiber
HDMI-1 ist, nennt ein anderer Treiber
vielleicht HDMI1. Führen Sie daher
zunächst &man.xrandr.1; aus, um alle verfügbaren
Anschlüsse aufzulisten.&prompt.user; xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.04*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 connected (normal left inverted right x axis y axis)
1280x1024 60.02 + 75.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)Vier Ausgänge wurden gefunden: das integrierte Panel
LVDS1, sowie die externen Anschlüsse
VGA1, HDMI1 und
DP1.Der Videoprojektor wurde am Ausgang
VGA1 angeschlossen. &man.xrandr.1;
wird nun verwendet, um diese Ausgabe auf die native
Auflösung des Projektors einzustellen und den
zusätzlichen Platz auf der rechten Seite des Desktops
hinzuzufügen:&prompt.user; xrandr --output VGA1 --auto --right-of LVDS1--auto wählt die Auflösung und
Aktualisierungsrate die von EDID
ermittelt wurden. Wenn die Auflösung nicht richtig
ermittelt wurde, kann ein fester Wert mit
--mode anstelle von
--auto angegeben werden.
Beispielsweise können die meisten Projektoren mit einer
Auflösung von 1024x768 betrieben werden, die mit
--mode 1024x768 gesetzt wird.&man.xrandr.1; wird häufig aus
.xinitrc ausgeführt, um den
entsprechenden Modus zu setzen wenn X startet.Bildschirmauflösung über eine Datei einstellenEine Bildschirmauflösung von 1024x768 in einer
Konfigurationsdatei einstellen:Die Bildschirmauflösung in eine Datei
schreiben/usr/local/etc/X11/xorg.conf.d/screen-resolution.confSection "Screen"
Identifier "Screen0"
Device "Card0"
SubSection "Display"
Modes "1024x768"
EndSubSection
EndSectionDie wenigen Monitore, die EDID
nicht beherrschen, können durch setzen von
HorizSync und
VertRefresh auf den Bereich der
vom Monitor unterstützten Frequenzen konfiguriert
werden.Manuelles Einstellen der
Monitorfrequenzen/usr/local/etc/X11/xorg.conf.d/monitor0-freq.confSection "Monitor"
Identifier "Monitor0"
HorizSync 30-83 # kHz
VertRefresh 50-76 # Hz
EndSectionEingabegeräteTastaturenTastaturlayoutDie standardisierte Position von Tasten auf einer
Tastatur wird als Layout
bezeichnet. Layouts und andere einstellbare Parameter
werden in &man.xkeyboard-config.7; beschrieben.In der Voreinstellung ist ein US-amerikanisches
Layout aktiv. Um ein alternatives Layout zu wählen,
setzen Sie die Optionen
XkbLayout und
XkbVariant in der Klasse
InputClass. Dies wird für alle
Eingabegeräte der entsprechenden Klasse angewendet
werden.Konfiguration eines Tastaturlayouts/usr/local/etc/X11/xorg.conf.d/keyboard-fr-oss.confSection "InputClass"
Identifier "KeyboardDefaults"
Driver "keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "fr"
Option "XkbVariant" "oss"
EndSectionKonfiguration mehrerer TastaturlayoutsHier werden die Tastaturlayouts für Vereinigte
Staaten, Spanien und Ukraine gesetzt. Mit
AltShift können Sie zwischen den einzelnen
Layouts wechseln. Für eine verbesserte Steuerung
des Layouts kann x11/xxkb oder
x11/sbxkb benutzt werden./usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.confSection "InputClass"
Identifier "All Keyboards"
MatchIsKeyboard "yes"
Option "XkbLayout" "us,es,ua"
EndSection&xorg; über die Tastatur beendenX kann über eine Tastenkombination geschlossen
werden. Standardmäßig ist die Tastenkombination
jedoch nicht gesetzt, da sie mit Tastaturbefehlen für
einige Anwendungen in Konflikt steht. Die Aktivierung
dieser Option erfordert Änderungen in der Sektion
InputDevice für die
Tastatur:X über die Tastatur beenden/usr/local/etc/X11/xorg.conf.d/keyboard-zap.confSection "InputClass"
Identifier "KeyboardDefaults"
Driver "keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSectionMäuse und ZeigegeräteViele Parameter für die Maus können über
Konfigurationseinstellungen eingestellt werden.
&man.mousedrv.4x; enthält eine vollständige Liste.MauszeigerDie Anzahl der Maustasten wird in
xorg.conf im Abschnitt
InputDevice für die Maus
festgelegt. Um die Anzahl der Tasten auf
7 zu setzen:Die Anzahl der Maustasten festlegen/usr/local/X11/xorg.conf.d/mouse0-buttons.confSection "InputDevice"
Identifier "Mouse0"
Option "Buttons" "7"
EndSectionManuelle KonfigurationIn einigen Fällen funktioniert die Autokonfiguration nicht
mit bestimmter Hardware, oder es wird eine andere
Konfiguration benötigt. Für diese Fälle kann eine
benutzerdefinierte Konfigurationsdatei erstellt werden.Erstellen Sie keine manuellen Konfigurationsdateien,
sofern dies nicht erforderlich ist. Eine unnötige manuelle
Konfiguration kann den ordnungsgemäßen Betrieb
verhindern.Eine Konfigurationsdatei kann, basierend auf der von
&xorg; erfassten Hardware erzeugt werden. Diese
Konfigurationsdatei ist ein guter Ausgangspunkt für angepasste
Konfigurationen.Erzeugung einer xorg.conf:&prompt.root; Xorg -configureDie Konfigurationsdatei wird in
/root/xorg.conf.new gespeichert. Machen
Sie alle gewünschten Änderungen an dieser Datei. Danach
testen Sie die Datei mit:&prompt.root; Xorg -config /root/xorg.conf.newNachdem die neue Konfiguration angepasst und getestet
wurde, kann die Konfiguration in kleinere Dateien unter
/usr/local/etc/X11/xorg.conf.d/
aufgeteilt werden.Schriftarten in &xorg;
benutzenType 1 SchriftartenDie Schriftarten, die mit
&xorg; ausgeliefert werden, eignen
sich ganz und gar nicht für Desktop-Publishing-Anwendungen.
Große Schriftarten zeigen bei Präsentationen deutliche
Treppenstufen und kleine Schriftarten sind fast unleserlich.
Es gibt allerdings mehrere hochwertige Type 1 Schriftarten
(&postscript;), die mit &xorg; benutzt werden können.
Beispielsweise enthalten die URW-Schriftarten
(x11-fonts/urwfonts) hochwertige Versionen
gängiger Type 1 Schriftarten (unter anderem
Times Roman,
Helvetica,
Palatino). Die
Sammlung Freefonts (x11-fonts/freefonts)
enthält viele weitere Schriftarten, doch sind diese für den
Einsatz in Grafikprogrammen wie
Gimp gedacht und nicht für den
alltäglichen Gebrauch. Weiterhin kann
&xorg; mit einem Minimum an Aufwand
konfiguriert werden, damit &truetype;-Schriftarten benutzt
werden können. Mehr dazu erfahren Sie in der Manualpage
&man.X.7; und im .Die Type 1 Schriftarten lassen sich als Paket wie folgt
installieren:&prompt.root; pkg install urwfontsAlternativ können die Schriftarten aus der Ports-Sammlung
gebaut und installiert werden:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanAnalog lassen sich Freefont und andere Sammlungen
installieren. Damit der X-Server diese Schriftarten erkennt,
fügen Sie eine entsprechende Zeile in die Konfigurationsdatei
des X-Servers (/etc/X11/xorg.conf)
hinzu:FontPath "/usr/local/share/fonts/urwfonts/"Alternativ kann in der X-Sitzung das folgende Kommando
abgesetzt werden:&prompt.user; xset fp+ /usr/local/share/fonts/urwfonts
&prompt.user; xset fp rehashJetzt kennt der X-Server die neuen Schriftarten, jedoch
nur bis zu Ende der Sitzung. Soll die Änderung dauerhaft
sein, müssen die Befehle in ~/.xinitrc
eingetragen werden, wenn X mittels startx
gestartet wird, beziehungsweise in
~/.xsession, wenn ein grafischer
Login-Manager, wie XDM verwendet
wird. Eine dritte Möglichkeit besteht darin,
/usr/local/etc/fonts/local.conf zu
verwenden, was im demonstriert
wird.&truetype;-SchriftartenTrueType SchriftartenSchriftartenTrueType&xorg; besitzt eine eingebaute Unterstützung zur
Darstellung von &truetype;-Schriftarten. Hierzu existieren
zwei verschiedene Module, die diese Funktionalität aktivieren
können. In diesem Beispiel wird das Freetype-Modul benutzt,
da es besser mit anderen Werkzeugen, die
&truetype;-Schriftarten darstellen, übereinstimmt. Um das
Freetype-Modul zu aktivieren, muss die folgende Zeile zum
Abschnitt "Module" in
/etc/X11/xorg.conf hinzugefügt
werden.Load "freetype"Erstellen Sie ein Verzeichnis für die
&truetype;-Schriftarten (beispielsweise
/usr/local/share/fonts/TrueType) und
kopieren Sie alle Schriftarten dorthin. Beachten Sie, dass
die Schriftarten für &xorg; im
&unix;/&ms-dos;/&windows;-Format vorliegen müssen und nicht
direkt von einem &apple; &mac; übernommen werden können.
Sobald die Dateien in das Verzeichnis kopiert wurden,
verwenden Sie mkfontdir um
fonts.dir zu erstellen, damit X
weiß, dass diese neuen Dateien installiert wurden.
mkfontdir kann als Paket installiert
werden:&prompt.root; pkg install mkfontdirErstellen Sie dann einen Index der Schriftarten
für X:&prompt.root; cd /usr/local/share/fonts/TrueType
&prompt.root; mkfontdirGeben Sie dem System das &truetype;-Verzeichnis, wie im
beschrieben, bekannt:&prompt.root; xset fp+ /usr/local/share/fonts/TrueType
&prompt.root; xset fp rehashOder fügen Sie eine FontPath-Zeile in
xorg.conf ein.Jetzt sollten Gimp,
Apache OpenOffice und alle anderen
X-Anwendungen die &truetype;-Schritarten erkennen. Extrem
kleine Schriftarten (Webseiten, die mit hoher Auflösung
betrachtet werden) und sehr große Schriftarten
(in &staroffice;) werden jetzt viel besser aussehen.Anti-aliasingAnti-aliasingSchriftartenAnti-aliasingAlle Schriftarten in &xorg;,
die in den Verzeichnissen
/usr/local/share/fonts/ und
~/.fonts/ gefunden werden, werden
automatisch für Anti-aliasing an Anwendungen zur Verfügung
gestellt, die Xft beherrschen. Die meisten aktuellen
Anwendungen beherrschen Xft, dazu gehören auch
KDE,
GNOME und
Firefox.In
/usr/local/etc/fonts/local.conf
werden die Schriftarten, die mit dem Anti-aliasing-Verfahren
benutzt werden sollen und die Eigenschaften des Verfahrens
festgelegt. In diesem Abschnitt wird nur die grundlegende
Konfiguration von Xft beschrieben. Weitere Details entnehmen
Sie bitte der Hilfeseite &man.fonts-conf.5;.XMLDie Datei local.conf ist ein
XML-Dokument. Achten Sie beim
Editieren der Datei daher auf die richtige Groß- und
Kleinschreibung und darauf, dass alle Tags geschlossen
sind. Die Datei beginnt mit der üblichen XML-Deklaration
gefolgt von einer DOCTYPE-Definition und dem
<fontconfig>-Tag:<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>Wie vorher erwähnt, stehen schon alle Schriftarten
in /usr/local/share/fonts/ und
~/.fonts/ für Anwendungen, die
Xft unterstützen, zur Verfügung. Um ein Verzeichnis außerhalb
dieser beiden Bäume zu benutzen, fügen Sie eine Zeile wie die
nachstehende in
/usr/local/etc/fonts/local.conf
hinzu:<dir>/path/to/my/fonts</dir>Wenn Sie neue Schriftarten hinzugefügt haben,
müssen Sie den Schriftarten-Cache neu aufbauen:&prompt.root; fc-cache -fDas Anti-aliasing-Verfahren zeichnet Ränder leicht
unscharf, dadurch werden kleine Schriften besser lesbar und
der Treppenstufen-Effekt bei wird großen Schriften vermieden.
Auf normale Schriftgrößen sollte das Verfahren aber nicht
angewendet werden, da dies die Augen zu sehr anstrengt. Um
kleinere Schriftgrößen als 14 Punkt von dem Verfahren
auszuschließen, fügen Sie in local.conf
die nachstehenden Zeilen ein: <match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>SchriftartenAbständeDas Anti-aliasing-Verfahren kann die Abstände einiger
Fixschriften falsch darstellen, dies fällt besonders unter
KDE auf. Sie können das Problem
umgehen, indem Sie die Abstände dieser Schriften auf den Wert
100 festsetzen. Fügen Sie die
nachstehenden Zeilen hinzu: <match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>Damit werden die Namen der gebräuchlichen Fixschriften auf
"mono" abgebildet. Für diese Schriften
setzen Sie dann den Abstand fest: <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> Bestimmte Schriftarten, wie Helvetica, können
Probleme mit dem Anti-Aliasing-Verfahren verursachen.
In der Regel erscheinen diese Schriftarten dann vertikal
halbiert. Im schlimmsten Fall stürzen Anwendungen als Folge
davon ab. Sie vermeiden dies, indem Sie betroffene
Schriftarten in local.conf von dem
Verfahren ausnehmen: <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> Nachdem Sie local.conf editiert
haben, müssen Sie sicherstellen, dass die Datei mit dem Tag
</fontconfig> endet. Ist das
nicht der Fall, werden die Änderungen nicht
berücksichtigt.Benutzer können personalisierte Einstellungen in
~/.fonts.conf vornehmen. Diese Datei
verwendet die gleiche XML-Syntax wie im obigen
Beispiel.LCDSchriftartenauf einem LCDMit einem LCD können Sie
sub-pixel sampling anstelle von
Anti-aliasing einsetzen. Dieses Verfahren behandelt die
horizontal getrennten Rot-, Grün- und Blau-Komponenten eines
Pixels gesondert und verbessert damit (teilweise sehr wirksam)
die horizontale Auflösung. Die nachstehende Zeile in
local.conf aktiviert diese
Funktion: <match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>Abhängig von der Art Ihres Bildschirms
müssen Sie anstelle von rgb eines
der folgenden verwenden: bgr,
vrgb oder vbgr.
Experimentieren Sie und vergleichen, was besser
aussieht.Der X-Display-ManagerSethKingsleyBeigetragen von X-Display-Manager&xorg; enthält den
X-Display-Manager XDM, um Sitzungen
zu verwalten. XDM stellt eine
graphische Anmeldemaske zur Verfügung, in der Sie den Server,
auf dem eine Sitzung laufen soll, auswählen können und in der
Sie die Autorisierungs-Informationen, wie Benutzername und
Passwort, eingeben können.Dieser Abschnitt zeigt, wie der X-Displaymanager
konfiguriert wird. Einige grafische Oberflächen enthalten
ihre eigenen graphischen Login-Manager. Eine Anleitung zur
Konfiguration des GNOME Display-Managers finden Sie im . Eine Anleitung zur Konfiguration
des KDE Display Managers finden Sie im .XDM einrichtenXDM kann über das Paket oder
den Port x11/xdm installiert werden. Nach
der Installation lässt sich XDM
durch einen Eintrag in /etc/ttys bei
jedem Start des Rechners aktivieren:ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secureÄndern Sie den Wert off zu
on und speichern Sie die Datei.
ttyv8 zeigt an, dass
XDM auf dem neunten virtuellen
Terminal ausgeführt wird.Die Konfigurationsdateien von
XDM befinden sich in
/usr/local/lib/X11/xdm. Dieses
Verzeichnis enthält einige Dateien, mit denen das Verhalten
und Aussehen von XDM beeinflusst
werden kann, sowie ein paar Skripte und Programme
zur Einrichtung des Desktops. Eine Zusammenfassung der
Aufgaben dieser Dateien beschreibt die . Die genaue Syntax und
Verwendung wird in &man.xdm.1; beschrieben.
Die Konfigurationsdateien von XDMDateiBeschreibungXaccessVerbindungen zu XDM
werden über das X Display Manager Connection
Protocol (XDMCP)
hergestellt. Xaccess enthält
die Client-Berechtigungen zur Steuerung der
XDMCP-Verbindungen entfernter
Maschinen. In der Voreinstellung erlaubt diese
Datei keine Verbindungen von entfernten
Maschinen.XresourcesDiese Datei steuert das Erscheinungsbild der
Bildschirmauswahl und Anmeldemasken von
XDM. In der
Voreinstellung erscheint ein rechteckiges
Anmeldefenster, dass den Hostnamen und einen
Anmeldeprompt mit Login: und
Password anzeigt. Das Format dieser
Datei entspricht den Dateien im Verzeichnis
app-defaults, die
in der Dokumentation von
&xorg; beschrieben
sind.XserversDiese Datei enthält eine Liste entfernter
Rechner, die in der Bildschirmauswahl angeboten
werden.XsessionDieses Skript wird von
XDM aufgerufen, nachdem
sich ein Benutzer erfolgreich angemeldet hat.
Üblicherweise besitzt jeder Benutzer eine angepasste
Version dieses Skripts in
~/.xsession, das dann anstelle
von Xsession ausgeführt
wird.Xsetup_*Diese Skripten werden automatisch ausgeführt,
bevor die Bildschirmauswahl oder die Anmeldemasken
angezeigt werden. Für jeden lokalen Bildschirm gibt
es ein Skript namens Xsetup_*,
wobei * die lokale
Bildschirmnummer ist. Normalerweise werden damit
ein oder zwei Programme, wie
xconsole, im Hindergrund
gestartet.xdm-configKonfiguration für alle auf der Maschine
verwalteten Bildschirme.xdm-errorsEnthält Fehler, die vom Server generiert
werden. Wenn ein von XDM
verwalteter Bildschirm hängen bleibt, suchen Sie in
dieser Datei nach Fehlermeldungen. Für jede Sitzung
werden die Meldungen auch in die Datei
~/.xsession-errors des
Benutzers geschrieben.xdm-pidDie Prozess-ID des gerade
laufenden
XDM-Prozesses.
Fernzugriff einrichtenIn der Voreinstellung können sich nur Benutzer auf
dem selben System über XDM
anmelden. Um es Benutzern anderer Systeme zu ermöglichen,
sich mit dem Bildschirm-Server zu verbinden, muss der
Zugriffsregelsatz bearbeitet und der Listener aktiviert
werden.Um XDM so zu konfigurieren,
dass jede Verbindung angenommen wird, kommentieren Sie die
Zeile DisplayManager.requestPort in
/usr/local/lib/X11/xdm/xdm-config aus,
indem Sie der Zeile ein !
voranstellen.! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0Speichern Sie die Änderungen und starten Sie
XDM neu. Um den Fernzugriff zu
beschränken, sehen Sie sich die Beispiele in
/usr/local/lib/X11/xdm/Xaccess an.
Zusätzliche Informationen finden Sie in &man.xdm.1;Grafische OberflächenValentinoVaschettoBeigetragen von Dieser Abschnitt beschreibt die Installation der drei
beliebtesten grafischen Oberflächen unter &os;. Eine
Oberfläche kann alles von einem einfachen Window-Manager bis hin
zu kompletten Anwendungen sein. Mehr als einhundert grafische
Oberflächen stehen in der Kategorie x11-wm
der Ports-Sammlung zur Verfügung.GNOMEGNOMEGNOME ist eine
benutzerfreundliche Oberfläche. Es besitzt
eine Leiste, mit der Anwendungen gestartet werden und die
Statusinformationen anzeigen kann. Programme und Daten
können auf der Oberfläche abgelegt werden und
Standardwerkzeuge stehen zur Verfügung. Es gibt
Konventionen, die es Anwendungen leicht machen,
zusammenzuarbeiten und ein konsistentes Erscheinungsbild
garantieren. Weitere Informationen zu
GNOME unter &os; finden Sie unter
http://www.FreeBSD.org/gnome.
+ xlink:href="https://www.FreeBSD.org/gnome">https://www.FreeBSD.org/gnome.
Die Webseite enthält zusätzliche Informationen über die
Installation, Konfiguration und Verwaltung von
GNOME unter &os;.Diese grafische Oberfläche kann als Paket installiert
werden:&prompt.root; pkg install gnome3Um GNOME stattdessen aus der
Ports-Sammlung zu übersetzen, nutzen Sie das folgende
Kommando. GNOME ist eine große
Anwendung, die sogar auf einem schnellen Computer einige
Zeit zum Übersetzten benötigt.&prompt.root; cd /usr/ports/x11/gnome3
&prompt.root; make install cleanGNOME benötigt ein
eingehängtes /proc Dateisystem. Fügen
Sie daher die folgende Zeile in
/etc/fstab ein, damit &man.procfs.5;
beim Systemstart automatisch eingehängt wird:proc /proc procfs rw 0 0GNOME benötigt
D-Bus und
HAL für einen Nachrichtenbus und
Hardware Abstraktion. Diese Anwendungen werden automatisch
als Abhängigkeiten von GNOME
installiert. Aktivieren Sie die Dienste in
/etc/rc.conf, sodass sie automatisch
gestartet werden wenn das System bootet:dbus_enable="YES"
hald_enable="YES"Nach der Installation weisen Sie
&xorg; an,
GNOME zu starten. Der einfachste
Weg, dies zu tun, ist über den GNOME Display Manager
GDM, der als Teil des
GNOME-Desktops installiert wird.
Um GDM zu aktivieren, fügen Sie
folgende Zeile in /etc/rc.conf
ein:gdm_enable="YES"In der Regel ist es ratsam, alle
GNOME-Dienste zu starten.
Um dies zu erreichen, fügen Sie die folgende Zeile in
/etc/rc.conf ein:gnome_enable="YES"GDM wird nun automatisch
gestartet, wenn das System hochfährt.GNOME kann alternativ auch
von der Kommandozeile gestartet werden, wenn eine
entsprechend konfigurierte ~/.xinitrc
vorliegt. Existiert diese Datei bereits, ersetzen Sie den
Aufruf des Window-Managers durch
/usr/local/bin/gnome-session.
Wenn .xinitrc nicht existiert,
erstellen Sie die Datei mit folgendem Befehl:&prompt.user; echo "exec /usr/local/bin/gnome-session" > ~/.xinitrcEine dritte Methode ist, XDM
als Display-Manager zu verwenden. In diesem Fall erstellen
Sie eine ausführbare ~/.xsession:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionKDEKDEKDE ist eine weitere, leicht
zu benutzende Desktop-Umgebung. Dieser Desktop bietet eine
Sammlung von Anwendungen mit einheitlichem Erscheinungsbild
(look and feel),
einheitlichen Menüs, Werkzeugleisten, Tastenkombinationen,
Farbschemata, Internationalisierung und einer zentralen,
dialoggesteuerten Desktop-Konfiguration. Weitere
Informationen zu KDE finden Sie
unter http://www.kde.org/.
Spezifische Informationen für &os; finden Sie unter http://freebsd.kde.org.Um das Paket KDE4 zu
installieren, geben Sie ein:&prompt.root; pkg install x11/kde4Um KDE stattdessen aus dem
Quellcode zu übersetzen, verwenden Sie das folgende
Kommando. Bei der Installation wird ein Menü zur Auswahl
der Komponenten angezeigt. KDE
ist eine große Anwendung, die sogar auf einem schnellen
Computer einige Zeit zum Übersetzen benötigt.&prompt.root; cd /usr/ports/x11/kde4
&prompt.root; make install cleanKDEDisplay-ManagerKDE benötigt ein
eingehängtes /proc. Fügen
Sie diese Zeile in /etc/fstab ein,
um das Dateisystem automatisch beim Systemstart
einzuhängen:proc /proc procfs rw 0 0KDE benötigt
D-Bus und
HAL für einen Nachrichtenbus und
Hardware Abstraktion. Diese Anwendungen werden automatisch
als Abhängigkeiten von KDE
installiert. Aktivieren Sie die Dienste in
/etc/rc.conf, sodass sie automatisch
gestartet werden wenn das System bootet:dbus_enable="YES"
hald_enable="YES"Die Installation von KDE
beinhaltet den KDE Display-Manager
KDM. Um diesen Display-Manager
zu aktivieren, fügen Sie folgende Zeile in
/etc/rc.conf ein:kdm4_enable="YES"Eine zweite Möglichkeit KDE zu
starten, ist startx in der Kommandozeile
einzugeben. Damit dies funktioniert, wird folgende Zeile in
~/.xinitrc benötigt:exec /usr/local/bin/startkdeEine dritte Möglichkeit ist KDE
über XDM zu starten. Um dies zu
tun, erstellen Sie eine ausführbare
~/.xsession wie folgt:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/startkde" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionSobald KDE gestartet wird,
finden Sie im integrierten Hilfesystem weitere Informationen
zur Benutzung der verschiedenen Menüs und Anwendungen.XfceXfce ist eine
Desktop-Umgebung, basierend auf den von
GNOME verwendeten
GTK+-Bibliotheken. Es hat einen geringeren Speicherbedarf
und stellt dabei einen schlichten, effizienten und einfach
zu benutzenden Desktop zur Verfügung.
Xfce ist vollständig
konfigurierbar, verfügt über eine Programmleiste mit
Menüs, Applets und einen
Programmstarter. Zudem sind ein Datei-Manager und ein
Sound-Manager enthalten und das Programm ist über
Themes anpassbar. Da es
schnell, leicht und effizient ist, eignet sich
Xfce ideal für ältere oder
langsamere Rechner mit wenig Speicher. Weitere
Informationen zu Xfce finden
Sie unter http://www.xfce.org.Um das Paket Xfce zu
installieren, geben Sie folgendes ein:&prompt.root; pkg install xfceUm stattdessen den Port zu übersetzen:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanIm Gegensatz zu GNOME oder
KDE, besitzt
Xfce keinen eigenen
Login-Manager. Damit Xfce von
der Kommandozeile mit startx gestartet
werden kann, muss zunächst ein Eintrag in
~/.xinitrc hinzugefügt werden:&prompt.user; echo "exec /usr/local/bin/startxfce4 --with-ck-launch" > ~/.xinitrcAlternativ dazu kann XDM
verwendet werden. Um diese Methode zu konfigurieren,
erstellen Sie eine ausführbare
~/.xsession:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/startxfce4 --with-ck-launch" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionCompiz Fusion installierenDer Einsatz von hübschen 3D-Effekten ist eine Möglichkeit,
die Benutzerfreundlichkeit eines Desktop-Rechners zu
erhöhen.Die Installation des
Compiz Fusion Pakets ist
einfach, aber bei der Konfiguration sind ein paar Schritte
notwendig, die nicht in der Dokumentation des Ports beschrieben
werden.Konfiguration des &os; nVidia-TreibersDesktop-Effekte erzeugen eine hohe Last auf der
Grafikkarte. Für nVidia-basierte Grafikkarten sind die
proprietären Treiber für eine gute Leistung erforderlich.
Benutzer anderer Grafikkarten können diesen Abschnitt
überspringen und mit der Konfiguration von &xorg;
fortfahren.Lesen Sie die FAQ zu
diesem Thema, um herauszufinden, wie der richtige
nVidia-Treiber ermittelt werden kann.Nachdem der richtige Treiber für die Karte ermittelt
wurde, kann er wie jedes andere Paket installiert
werden.Um beispielsweise den aktuellsten Treiber zu
installieren:&prompt.root; pkg install x11/nvidia-driverDer Treiber erstellt ein Kernelmodul, welches beim
Systemstart geladen werden muss. Fügen folgende Zeile in
/boot/loader.conf ein:nvidia_load="YES"Um das Kernelmodul direkt in den laufenden Kernel zu
laden, kann der Befehl kldload nvidia
eingeben werden. Allerdings wurde festgestellt, dass einige
Versionen von &xorg; nicht richtig funktionieren, wenn der
Treiber nicht beim Systemstart geladen wurde. Nach der
Änderung in /boot/loader.conf wird
daher ein Neustart des Systems empfohlen.Wenn das Kernelmodul geladen ist, muss in der Regel nur
noch eine einzige Zeile in xorg.conf
geändert werden, um den proprietären Treiber zu
aktivieren:Suchen Sie folgende Zeile in
/etc/X11/xorg.conf:Driver "nv"und ändern Sie die Zeile zu:Driver "nvidia"Wenn Sie nun die grafische Oberfläche starten, sollten
Sie vom nVidia Startbildschirm begrüßt werden. Alles sollte
wie gewohnt funktionieren.Konfiguration von Desktop-Effekten in xorg.confUm Compiz Fusion zu
aktivieren, muss /etc/X11/xorg.conf
angepasst werden:Fügen Sie diesen Abschnitt hinzu, um Composite-Effekte zu
aktivieren:Section "Extensions"
Option "Composite" "Enable"
EndSectionSuchen Sie den Abschnitt Screen, der
ähnlich wie hier gezeigt aussehen sollte:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
...und fügen Sie die beiden folgenden Zeilen hinzu
(z.B. nach Monitor):DefaultDepth 24
Option "AddARGBGLXVisuals" "True"Suchen Sie den Abschnitt Subsection, der
sich auf die gewünschte Bildschirmauflösung bezieht. Wenn Sie
z.B. 1280x1024 verwenden möchten, suchen Sie den folgenden
Abschnitt. Sollte die gewünschte Auflösung nicht in allen
Unterabschnitten vorhanden sein, können Sie den entsprechenden
Eintrag manuell hinzufügen:SubSection "Display"
Viewport 0 0
Modes "1280x1024"
EndSubSectionFür Composite-Effekte wird eine Farbtiefe von 24 Bit
benötigt. Ändern Sie dazu den obigen Abschnitt wie
folgt:SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSectionZuletzt muss noch sichergestellt werden, dass die Module
glx und extmod im Abschnitt
Module geladen werden:Section "Module"
Load "extmod"
Load "glx"
...Die vorangegangenen Einstellungen können automatisch mit
x11/nvidia-xconfig erledigt werden, indem
Sie folgende Kommandos als root ausführen:&prompt.root; nvidia-xconfig --add-argb-glx-visuals
&prompt.root; nvidia-xconfig --composite
&prompt.root; nvidia-xconfig --depth=24Installation und Konfiguration von
Compiz FusionDie Installation von
Compiz Fusion ist so einfach
wie die Installation jedes anderen Pakets:&prompt.root; pkg install x11-wm/compiz-fusionWenn die Installation abgeschlossen ist, starten Sie (als
normaler Benutzer) den grafischen Desktop mit folgendem
Befehl:&prompt.user; compiz --replace --sm-disable --ignore-desktop-hints ccp &
&prompt.user; emerald --replace &Der Bildschirm wird für einige Sekunden flackern, da der
Window Manager (z.B. Metacity, wenn
Sie GNOME benutzen) von
Compiz Fusion ersetzt wird.
Emerald kümmert sich um die
Fensterdekoration (z.B. die Schatzflächenn schließen,
minimieren und maximieren, Titelleisten, usw.).Sie können dieses einfache Skript anpassen und es dann
beim Start automatisch ausführen lassen (z.B. durch
Hinzufügen von Sessions beim
GNOME-Desktop):#! /bin/sh
compiz --replace --sm-disable --ignore-desktop-hints ccp &
emerald --replace &Speichern Sie die Datei in Ihrem Heimatverzeichnis,
beispielsweise als start-compiz und
machen Sie die Datei ausführbar:&prompt.user; chmod +x ~/start-compizBenutzen Sie dann die grafische Oberfläche, um das Skript
zu Autostart-Programme hinzuzufügen
(beim GNOME-Desktop unter
Systemwerkzeuge,
Einstellungen,
Sessions).Um die gewünschten Effekte und Einstellungen zu
konfigurieren, starten Sie (wieder als normaler Benutzer)
den
Compiz Config Einstellungs—Manager:&prompt.user; ccsmIn GNOME finden Sie diese
Einstellungen wieder im Menü unter
Systemwerkzeuge,
Einstellungen.Wenn Sie gconf support während der
Installation ausgewählt haben, können Sie diese Einstellungen
auch im gconf-editor unter
apps/compiz finden.FehlersucheWenn die Maus nicht funktioniert, müssen Sie diese zuerst
konfigurieren. In neueren Versionen von
&xorg; werden die
InputDevice-Abschnitte in
xorg.conf ignoriert, um stattdessen die
automatisch erkannten Geräte zu verwenden. Um das alte
Verhalten wiederherzustellen, fügen Sie folgende Zeile zum
Abschnitt ServerLayout oder
ServerFlags dieser Datei hinzu:Option "AutoAddDevices" "false"Wie zuvor erwähnt, wird standardmäßig der
hald-Dienst automatisch die
Tastatur erkennen. Es kann jedoch passieren, dass das
Tastaturlayout oder das Modell nicht korrekt erkannt wird.
Grafische Oberflächen wie GNOME,
KDE oder
Xfce stellen Werkzeuge für die
Konfiguration der Tastatur bereit. Es ist allerdings auch
möglich, die Tastatureigenschaften direkt zu setzen, entweder
mit Hilfe von &man.setxkbmap.1; oder mit einer
Konfigurationsregel von
hald.Wenn Sie zum Beispiel eine PC 102-Tasten Tastatur mit
französischem Layout verwenden möchten, müssen sie eine
Tastaturkonfigurationsdatei x11-input.fdi
für hald im Verzeichnis
/usr/local/etc/hal/fdi/policy anlegen.
Diese Datei sollte die folgenden Zeilen enthalten:<?xml version="1.0" encoding="iso-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
</match>
</device>
</deviceinfo>Wenn diese Datei bereits existiert, kopieren Sie nur die
Zeilen in die Datei, welche die Tastaturkonfiguration
betreffen.Sie müssen Ihren Computer neu starten, um
hald zu zwingen, diese Datei
einzulesen.Es ist auch möglich, die gleiche Konfiguration von einem
X-Terminal oder einem Skript über den folgenden Befehl heraus
zu tätigen:&prompt.user; setxkbmap -model pc102 -layout fr/usr/local/share/X11/xkb/rules/base.lst
enthält die zur Verfügung stehenden Tastatur- und
Layoutoptionen.&xorg; anpassenDie Konfigurationsdatei xorg.conf.new
kann nun an bestimmte Bedürfnisse angepasst werden. Öffnen
Sie die Datei in einem Editor, wie &man.emacs.1; oder
&man.ee.1;. Falls der Monitor ein älteres oder ungewöhnliches
Modell ist und keine automatische Erkennung unterstützt, können
die Synchronisationsfrequenzen im Abschnitt
"Monitor" der
xorg.conf.new eingetragen werden.Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionDie meisten Monitore unterstützen die automatische Erkennung
der Synchronisationsfrequenzen, so dass eine manuelle Eingabe
der Werte nicht erforderlich ist. Für die wenigen Monitore, die
keine automatische Erkennung unterstützen, sollten nur die vom
Hersteller zur Verfügung gestellten Werte eingegeben werden, um
einen möglichen Schaden zu vermeiden.X unterstützt die Energiesparfunktionen (DPMS, Energy Star)
für Monitore. Mit &man.xset.1; können die Zeitlimits für die
DPMS-Modi standby, suspend, off vorgeben, oder zwingend
aktiviert werden. Die DPMS-Funktionen können mit der folgenden
Zeile im Abschnitt "Monitor" aktiviert
werden:Option "DPMS"xorg.confDie gewünschte Auflösung und Farbtiefe stellen sie im
Abschnitt "Screen" ein:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionMit DefaultDepth wird die standardmäßige
Farbtiefe angegeben. Mit der Option von
&man.Xorg.1; lässt sich die vorgegebene Farbtiefe überschreiben.
Modes gibt die Auflösung für die angegebene
Farbtiefe an. Die Farbtiefe im Beispiel beträgt 24 Bits pro
Pixel, die zugehörige Auflösung ist 1024x768 Pixel. Beachten
Sie, dass in der Voreinstellung nur Standard-VESA-Modi der
Grafikkarte angegeben werden können.Sichern Sie die Konfigurationsdatei. Testen Sie
anschließend die Konfiguration, wie oben beschrieben.Bei der Fehlersuche stehen Ihnen die Protokolldateien von
&xorg; zur Verfügung. Die
Protokolle enthalten Informationen über alle Geräte, die mit
dem &xorg;-Server verbunden ist.
Die Namen der
&xorg;-Protkolldateien haben das
Format /var/log/Xorg.0.log. Der exakte
Name der Datei variiert dabei von
Xorg.0.log bis
Xorg.8.log, und so weiter.Wenn alles funktioniert, installieren Sie die Datei an einen
Ort, an dem &man.Xorg.1; sie finden kann. Typischerweise ist
dies /etc/X11/xorg.conf oder
/usr/local/etc/X11/xorg.conf.&prompt.root; cp xorg.conf.new /etc/X11/xorg.confDamit ist die Konfiguration von
&xorg; abgeschlossesn.
&xorg; kann nun mit dem Programm
&man.startx.1; gestartet werden. Alternativ kann der
&xorg;-Server auch mithilfe von
&man.xdm.1; gestartet werden.Konfiguration des &intel; i810
Graphics ChipsetsIntel i810 Graphic ChipsetDer &intel; i810-Chipset benötigt den Treiber
agpgart, die AGP-Schnittstelle für
&xorg;. Die Manualpage für den
Treiber &man.agp.4; enthält weitere Informationen.Ab jetzt kann die Hardware wie jede andere Grafikkarte
auch konfiguriert werden. Beachten Sie, dass der Treiber
&man.agp.4; nicht nachträglich in einen laufenden Kernel
geladen werden kann. Er muss entweder fest im Kernel
eingebunden sein, oder beim Systemstart über
/boot/loader.conf geladen werden.Einen Widescreen-Monitor einsetzenWidescreen-Monitor, KonfigurationDieser Abschnitt geht über die normalen
Konfigurationsarbeiten hinaus und setzt ein wenig
Vorwissen voraus. Selbst wenn die Standardwerkzeuge zur
X-Konfiguration bei diesen Geräten nicht zum Erfolg führen,
gibt es in den Protokolldateien genug Informationen, mit denen
Sie letztlich doch einen funktionierenden X-Server
konfigurieren können. Alles, was Sie dazu benötigen, ist ein
Texteditor.Aktuelle Widescreen-Formate (wie WSXGA, WSXGA+, WUXGA,
WXGA, WXGA+, und andere mehr) unterstützen Seitenverhältnisse
wie 16:10 oder 10:9, die unter X Probleme verursachen können.
Bei einem Seitenverhältnis von 16:10 sind beispielsweise
folgende Auflösungen möglich:2560x16001920x12001680x10501440x9001280x800Irgendwann wird die Konfiguration vereinfacht werden,
dass nur noch die Auflösung als Mode in
Section "Screen" eingtragen wird,
so wie hier:Section "Screen"
Identifier "Screen 0"
Device "Card 0"
Monitor "Monitor0"
Default Depth 24
SubSection "Display"
ViewPort 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSection&xorg; ist intelligent genug,
um die Informationen zu den Auflösungen über I2C/DDC zu
beziehen, und weiß daher, welche Auflösungen und Frequenzen
der Widescreen-Monitor unterstützt.Wenn diese ModeLines in den
Treiberdateien nicht vorhanden sind, kann es sein, dass Sie
&xorg; beim Finden der korrekten
Werte unterstützen müssen. Dazu extrahieren Sie die
benötigten Informationen aus
/var/log/Xorg.0.log und
erzeugen daraus eine funktionierende
ModeLine. Suchen Sie nach Zeilen ähnlich
den folgenden:(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHzDiese Informationen werden auch als EDID-Informationen
bezeichnet. Um daraus eine funktionierende
ModeLine zu erzeugen, müssen lediglich die
Zahlen in die korrekte Reihenfolge gebracht werden:ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>Die korrekte ModeLine in
Section "Monitor" würde für dieses Beispiel
folgendermaßen aussehen:Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSectionNachdem diese Äderungen durchgeführt sind, sollte
X auch auf Ihrem neuen Widescreen-Monitor starten.Fehersuche in Compiz FusionIch habe
Compiz Fusion
installiert und anschließend die hier erwähnten
Kommandos eingegeben. Nun fehlen den Fenstern die
Titelleisten und Schaltflächen. Was kann ich
tun?Wahrscheinlich fehlt eine Einstellung in
/etc/X11/xorg.conf. Überprüfen Sie
diese Datei gründlich, und überprüfen Sie insbesondere
die Richtlinien DefaultDepth und
AddARGBGLXVisuals.Wenn ich
Compiz Fusion starte,
bringt dass den X-Server zum Absturz. Was kann ich
tun?Wenn Sie
/var/log/Xorg.0.log durchsuchen,
finden Sie wahrscheinlich Fehlermeldungen, die
während des Starts von X ausgegeben werden. Die
häufigste Meldung ist:(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
(EE) NVIDIA(0): log file that the GLX module has been loaded in your X
(EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
(EE) NVIDIA(0): you continue to encounter problems, Please try
(EE) NVIDIA(0): reinstalling the NVIDIA driver.Dies ist für gewöhnlich der Fall, wenn Sie
&xorg; aktualisieren.
Sie müssen das Paket
x11/nvidia-driver neu installieren,
damit GLX neu gebaut wird.