Suse 10.1 Linux Reference De

696
SUSE Linux www.novell.com 10.1 07.04.2006 Referenz

Transcript of Suse 10.1 Linux Reference De

Page 1: Suse 10.1 Linux Reference De

SUSE Linuxwww.novell.com10.1

07.04.2006 Referenz

Page 2: Suse 10.1 Linux Reference De

Referenz

Autorenliste: Jörg Arndt, Stefan Behlert, Frank Bodammer, James Branam, Volker Buzek, KlaraCihlarova, Stefan Dirsch, Olaf Donjak, Roman Drahtmüller, Thorsten Dubiel, Torsten Duwe, ThomasFehr, Stefan Fent, Werner Fink, Jakub Friedl, Kurt Garloff, Joachim Gleißner, Carsten Groß, AndreasGrünbacher, Berthold Gunreben, Franz Hassels, Andreas Jaeger, Jana Jaeger, Klaus Kämpf, AndiKleen, Hubert Mantel, Lars Marowsky-Bree, Chris Mason, Johannes Meixner, Lars Müller, MatthiasNagorni, Anas Nashif, Siegfried Olschner, Edith Parzefall, Peter Pöml, Thomas Renninger, HannesReinecke, Scott Rhoades, Thomas Rölz, Heiko Rommel, Tanja Roth, Marcus Schäfer, ThomasSchraitle, Klaus Singvogel, Frank Sundermeyer, Elisabeth Tobiasson, Hendrik Vogelsang, Klaus G.Wagner, Rebecca Walter, Christian Zoz

Diese Veröffentlichung ist das geistige Eigentum von Novell, Inc.

Ihr Inhalt darf ganz oder teilweise dupliziert werden, sofern jede Kopie einen sichtbaren Copyright-Hinweis trägt.

Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Doch auch dadurchkann hundertprozentige Richtigkeit nicht gewährleistet werden. Weder SUSE LINUX GmbH nochdie Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemachtwerden.

Novell, das Novell-Logo, das N-Logo und SUSE sind eingetragene Marken von Novell, Inc., in denVereinigten Staaten und anderen Ländern. * Linux ist eine eingetragene Marke von Linus Torvalds.Alle anderen Drittanbieter-Marken sind das Eigentum der jeweiligen Inhaber.

Vorschläge und Kommentare richten Sie bitte an [email protected].

Page 3: Suse 10.1 Linux Reference De

Inhaltsverzeichnis

Über dieses Handbuch xi

Teil I Fortgeschrittene Installationsszenarien 15

1 Installation mit entferntem Zugriff 171.1 Installation auf entfernten Systemen . . . . . . . . . . . . . . . . . 171.2 Installationsquellen auf dem Server einrichten . . . . . . . . . . . . . 271.3 Vorbereitung des Bootvorgangs für das Zielsystem . . . . . . . . . . . 381.4 Booten des Zielsystems für die Installation . . . . . . . . . . . . . . 481.5 Überwachen des Installationsvorgangs . . . . . . . . . . . . . . . . 53

2 Fortgeschrittene Festplattenkonfiguration 572.1 LVM-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . 572.2 Soft-RAID-Konfiguration . . . . . . . . . . . . . . . . . . . . . . 65

3 Aktualisieren des Systems und Paketverwaltung 713.1 Aktualisieren von SUSE Linux . . . . . . . . . . . . . . . . . . . . 713.2 Software-Änderungen von Version zu Version . . . . . . . . . . . . . 743.3 RPM - der Paket-Manager . . . . . . . . . . . . . . . . . . . . . 94

Teil II Administration 107

4 Sicherheit in Linux 1094.1 Masquerading und Firewalls . . . . . . . . . . . . . . . . . . . . 1094.2 SSH: Sicherer Netzwerkbetrieb . . . . . . . . . . . . . . . . . . . 121

Page 4: Suse 10.1 Linux Reference De

4.3 Verschlüsseln von Partitionen und Dateien . . . . . . . . . . . . . . 1274.4 Einschränken von Berechtigungen mit AppArmor . . . . . . . . . . . 1314.5 Sicherheit und Vertraulichkeit . . . . . . . . . . . . . . . . . . . 140

5 Zugriffskontrolllisten unter Linux 1555.1 Traditionelle Dateiberechtigungen . . . . . . . . . . . . . . . . . 1555.2 Vorteile von ACLs . . . . . . . . . . . . . . . . . . . . . . . . 1575.3 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585.4 Arbeiten mit ACLs . . . . . . . . . . . . . . . . . . . . . . . . 1585.5 ACL-Unterstützung in Anwendungen . . . . . . . . . . . . . . . . 1675.6 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 168

6 Dienstprogramme zur Systemüberwachung 1696.1 Liste der geöffneten Dateien: lsof . . . . . . . . . . . . . . . . . 1706.2 Liste der Benutzer bzw. Prozesse, die auf Dateien zugreifen: fuser . . . 1716.3 Dateieigenschaften: stat . . . . . . . . . . . . . . . . . . . . . 1716.4 USB-Geräte: lsusb . . . . . . . . . . . . . . . . . . . . . . . 1726.5 Informationen zu einem SCSI-Gerät: scsiinfo . . . . . . . . . . . 1726.6 Prozesse: top . . . . . . . . . . . . . . . . . . . . . . . . . . 1736.7 Prozessliste: ps . . . . . . . . . . . . . . . . . . . . . . . . . 1746.8 Prozessbaum: pstree . . . . . . . . . . . . . . . . . . . . . . 1766.9 Wer macht was: w . . . . . . . . . . . . . . . . . . . . . . . . 1766.10 Speichernutzung: free . . . . . . . . . . . . . . . . . . . . . . 1776.11 Kernel Ring Buffer: dmesg . . . . . . . . . . . . . . . . . . . . 1776.12 Dateisysteme und ihre Nutzung: mount, df und du . . . . . . . . . 1786.13 Das Dateisystem /proc . . . . . . . . . . . . . . . . . . . . . . 1786.14 PCI-Ressourcen: lspci . . . . . . . . . . . . . . . . . . . . . . 1826.15 Systemaufrufe eines aktiven Programms: strace . . . . . . . . . . . 1836.16 Bibliotheksaufrufe eines aktiven Programms: ltrace . . . . . . . . . 1846.17 Erforderliche Bibliothek angeben: ldd . . . . . . . . . . . . . . . 1846.18 Zusätzliche Informationen zu ELF-Binärdateien . . . . . . . . . . . . 1856.19 Prozessübergreifende Kommunikation: ipcs . . . . . . . . . . . . . 1866.20 Zeitmessung mit time . . . . . . . . . . . . . . . . . . . . . . 186

Teil III System 187

7 32-Bit- und 64-Bit-Anwendungen in einer 64-Bit-Systemumgebung 1897.1 Laufzeitunterstützung . . . . . . . . . . . . . . . . . . . . . . . 1897.2 Software-Entwicklung . . . . . . . . . . . . . . . . . . . . . . . 1907.3 Software-Kompilierung auf Doppelarchitektur-Plattformen . . . . . . . 1917.4 Kernel-Spezifikationen . . . . . . . . . . . . . . . . . . . . . . 192

Page 5: Suse 10.1 Linux Reference De

8 Booten und Konfigurieren eines Linux-Systems 1938.1 Der Linux-Bootvorgang . . . . . . . . . . . . . . . . . . . . . . 1938.2 Der init-Vorgang . . . . . . . . . . . . . . . . . . . . . . . . . 1978.3 Systemkonfiguration über /etc/sysconfig . . . . . . . . . . . . . . 207

9 Der Bootloader 2119.1 Auswählen eines Bootloaders . . . . . . . . . . . . . . . . . . . 2129.2 Booten mit GRUB . . . . . . . . . . . . . . . . . . . . . . . . 2129.3 Konfigurieren des Bootloaders mit YaST . . . . . . . . . . . . . . . 2229.4 Deinstallieren des Linux-Bootloaders . . . . . . . . . . . . . . . . 2289.5 Erstellen von Boot-CDs . . . . . . . . . . . . . . . . . . . . . . 2289.6 Der grafische SUSE-Bildschirm . . . . . . . . . . . . . . . . . . . 2299.7 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 2309.8 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 232

10 Spezielle Funktionen von SUSE Linux 23310.1 Informationen zu speziellen Software-Paketen . . . . . . . . . . . . 23310.2 Virtuelle Konsolen . . . . . . . . . . . . . . . . . . . . . . . . 24010.3 Tastaturzuordnung . . . . . . . . . . . . . . . . . . . . . . . . 24110.4 Sprach- und länderspezifische Einstellungen . . . . . . . . . . . . . 242

11 Druckerbetrieb 24711.1 Workflow des Drucksystems . . . . . . . . . . . . . . . . . . . . 24911.2 Methoden und Protokolle zum Anschließen von Druckern . . . . . . . 24911.3 Installieren der Software . . . . . . . . . . . . . . . . . . . . . 25011.4 Konfigurieren des Druckers . . . . . . . . . . . . . . . . . . . . 25111.5 Konfiguration für Anwendungen . . . . . . . . . . . . . . . . . . 25711.6 Sonderfunktionen in SUSE Linux . . . . . . . . . . . . . . . . . . 25811.7 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 264

12 Gerätemanagement über dynamischen Kernel mithilfe von udev 27312.1 Das /dev-Verzeichnis . . . . . . . . . . . . . . . . . . . . . . 27312.2 Kernel-uevents und udev . . . . . . . . . . . . . . . . . . . . . 27412.3 Treiber, Kernel-Module und Geräte . . . . . . . . . . . . . . . . . 27412.4 Booten und erstes Einrichten des Geräts . . . . . . . . . . . . . . . 27512.5 Fehlersuche bei udev-Ereignissen . . . . . . . . . . . . . . . . . . 27612.6 Ereignisse für die Kernelgeräte mit udev-Regeln steuern . . . . . . . . 27712.7 Permanente Gerätebenennung . . . . . . . . . . . . . . . . . . . 27712.8 Das ersetzte hotplug-Paket . . . . . . . . . . . . . . . . . . . . 27812.9 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 279

Page 6: Suse 10.1 Linux Reference De

13 Dateisysteme in Linux 28113.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . 28113.2 Wichtige Dateisysteme in Linux . . . . . . . . . . . . . . . . . . 28213.3 Weitere unterstützte Dateisysteme . . . . . . . . . . . . . . . . . 28913.4 Large File Support unter Linux . . . . . . . . . . . . . . . . . . . 29013.5 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 291

14 Das X Window-System 29314.1 X11-Konfiguration mit SaX2 . . . . . . . . . . . . . . . . . . . . 29314.2 Optimierung der X-Konfiguration . . . . . . . . . . . . . . . . . . 29514.3 Installation und Konfiguration von Schriften . . . . . . . . . . . . . 30114.4 OpenGL – 3D-Konfiguration . . . . . . . . . . . . . . . . . . . . 307

15 FreeNX: Fernsteuerung eines anderen Computers 31115.1 Erste Schritte in NX . . . . . . . . . . . . . . . . . . . . . . . 31115.2 Erweiterte FreeNX-Konfiguration . . . . . . . . . . . . . . . . . . 31415.3 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 32115.4 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 324

16 Authentifizierung mit PAM 32516.1 Struktur einer PAM-Konfigurationsdatei . . . . . . . . . . . . . . . 32616.2 PAM-Konfiguration von sshd . . . . . . . . . . . . . . . . . . . . 32816.3 Konfiguration von PAM-Modulen . . . . . . . . . . . . . . . . . . 33016.4 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 333

17 Virtualisierung mit Xen 33517.1 Installation von Xen . . . . . . . . . . . . . . . . . . . . . . . 33717.2 Domäneninstallation . . . . . . . . . . . . . . . . . . . . . . . 33717.3 Starten und Steuern von Xen-Domänen mit xm . . . . . . . . . . . . 33817.4 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 33917.5 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 340

Teil IV Dienste 343

18 Grundlegendes zu Netzwerken 34518.1 IP-Adressen und Routing . . . . . . . . . . . . . . . . . . . . . 34818.2 IPv6 – Das Internet der nächsten Generation . . . . . . . . . . . . . 35118.3 Namensauflösung . . . . . . . . . . . . . . . . . . . . . . . . 36118.4 Konfigurieren von Netzwerkverbindungen mit YaST . . . . . . . . . . 363

Page 7: Suse 10.1 Linux Reference De

18.5 Verwalten der Netzwerkverbindungen mit NetworkManager . . . . . . 37518.6 Manuelle Netzwerkkonfiguration . . . . . . . . . . . . . . . . . . 37818.7 smpppd als Einwählhelfer . . . . . . . . . . . . . . . . . . . . . 391

19 SLP-Dienste im Netzwerk 39519.1 Registrieren eigener Dienste . . . . . . . . . . . . . . . . . . . . 39519.2 SLP-Frontends in SUSE Linux . . . . . . . . . . . . . . . . . . . . 39619.3 SLP aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . 39719.4 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 398

20 Das Domain Name System (DNS) 39920.1 DNS-Terminologie . . . . . . . . . . . . . . . . . . . . . . . . 39920.2 Konfiguration mit YaST . . . . . . . . . . . . . . . . . . . . . . 40020.3 Starten des Namenservers BIND . . . . . . . . . . . . . . . . . . 40820.4 Die Konfigurationsdatei /etc/dhcpd.conf . . . . . . . . . . . . . . 41020.5 Zonendateien . . . . . . . . . . . . . . . . . . . . . . . . . . 41520.6 Dynamische Aktualisierung von Zonendaten . . . . . . . . . . . . . 42020.7 Sichere Transaktionen . . . . . . . . . . . . . . . . . . . . . . 42020.8 DNS-Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . 42220.9 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 422

21 Arbeiten mit NIS 42321.1 Konfigurieren von NIS-Servern . . . . . . . . . . . . . . . . . . . 42321.2 Konfigurieren von NIS-Clients . . . . . . . . . . . . . . . . . . . 430

22 Verteilte Nutzung von Dateisystemen mit NFS 43322.1 Importieren von Dateisystemen mit YaST . . . . . . . . . . . . . . 43322.2 Manuelles Importieren von Dateisystemen . . . . . . . . . . . . . . 43422.3 Exportieren von Dateisystemen mit YaST . . . . . . . . . . . . . . . 43522.4 Manuelles Exportieren von Dateisystemen . . . . . . . . . . . . . . 43622.5 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 438

23 DHCP 43923.1 Konfigurieren eines DHCP-Servers mit YaST . . . . . . . . . . . . . 44023.2 DHCP-Softwarepakete . . . . . . . . . . . . . . . . . . . . . . 44423.3 Der DHCP-Server dhcpd . . . . . . . . . . . . . . . . . . . . . 44423.4 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 449

Page 8: Suse 10.1 Linux Reference De

24 Zeitsynchronisierung mit NTP 45124.1 Konfigurieren eines NTP-Client mit YaST . . . . . . . . . . . . . . . 45124.2 Konfigurieren von xntp im Netzwerk . . . . . . . . . . . . . . . . 45524.3 Einrichten einer lokalen Referenzuhr . . . . . . . . . . . . . . . . 456

25 LDAP – Ein Verzeichnisdienst 45725.1 LDAP und NIS . . . . . . . . . . . . . . . . . . . . . . . . . . 45925.2 Struktur eines LDAP-Verzeichnisbaums . . . . . . . . . . . . . . . 46025.3 Serverkonfiguration mit slapd.conf . . . . . . . . . . . . . . . . . 46425.4 Datenbehandlung im LDAP-Verzeichnis . . . . . . . . . . . . . . . 46925.5 YaST LDAP-Client . . . . . . . . . . . . . . . . . . . . . . . . 47325.6 Konfigurieren von LDAP-Benutzern und -Gruppen . . . . . . . . . . 48225.7 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 483

26 Der HTTP-Server Apache 48526.1 Schnellstart . . . . . . . . . . . . . . . . . . . . . . . . . . . 48526.2 Konfigurieren von Apache . . . . . . . . . . . . . . . . . . . . . 48726.3 Starten und Beenden von Apache . . . . . . . . . . . . . . . . . 50326.4 Installieren, Aktivieren und Konfigurieren von Modulen . . . . . . . . 50526.5 Aktivieren von CGI-Skripts . . . . . . . . . . . . . . . . . . . . . 51426.6 Einrichten eines sicheren Webservers mit SSL . . . . . . . . . . . . . 51726.7 Vermeiden von Sicherheitsproblemen . . . . . . . . . . . . . . . . 52426.8 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 52626.9 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 527

27 Dateisynchronisierung 53127.1 Verfügbare Software zur Datensynchronisierung . . . . . . . . . . . 53127.2 Kriterien für die Auswahl eines Programms . . . . . . . . . . . . . 53527.3 Einführung in Unison . . . . . . . . . . . . . . . . . . . . . . . 53927.4 Einführung in CVS . . . . . . . . . . . . . . . . . . . . . . . . 54127.5 Einführung in Subversion . . . . . . . . . . . . . . . . . . . . . 54427.6 Einführung in rsync . . . . . . . . . . . . . . . . . . . . . . . . 54727.7 Einführung in mailsync . . . . . . . . . . . . . . . . . . . . . . 549

28 Samba 55328.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . 55328.2 Starten und Stoppen von Samba . . . . . . . . . . . . . . . . . . 55528.3 Konfigurieren eines Samba-Servers . . . . . . . . . . . . . . . . . 55528.4 Konfigurieren der Clients . . . . . . . . . . . . . . . . . . . . . 56128.5 Samba als Anmeldeserver . . . . . . . . . . . . . . . . . . . . . 56228.6 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 563

Page 9: Suse 10.1 Linux Reference De

29 Der Proxyserver Squid 56529.1 Einige Tatsachen zu Proxy-Caches . . . . . . . . . . . . . . . . . . 56629.2 Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . 56829.3 Starten von Squid . . . . . . . . . . . . . . . . . . . . . . . . 57029.4 Die Konfigurationsdatei /etc/squid/squid.conf . . . . . . . . . . . . 57229.5 Konfigurieren eines transparenten Proxy . . . . . . . . . . . . . . 57829.6 cachemgr.cgi . . . . . . . . . . . . . . . . . . . . . . . . . . 58129.7 squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . 58329.8 Erstellung von Cache-Berichten mit Calamaris . . . . . . . . . . . . 58529.9 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 586

Teil V Mobilität 587

30 Mobile Computernutzung mit Linux 58930.1 Notebooks . . . . . . . . . . . . . . . . . . . . . . . . . . . 58930.2 Mobile Hardware . . . . . . . . . . . . . . . . . . . . . . . . 59730.3 Mobiltelefone und PDAs . . . . . . . . . . . . . . . . . . . . . 59830.4 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 599

31 PCMCIA 60131.1 Steuern der PCMCIA-Karten mithilfe von pccardctl . . . . . . . . . . 60231.2 PCMCIA im Detail . . . . . . . . . . . . . . . . . . . . . . . . 60231.3 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 606

32 Verwaltung der Systemkonfigurationsprofile 61132.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . 61232.2 Einrichten von SCPM . . . . . . . . . . . . . . . . . . . . . . . 61332.3 Konfigurieren von SCPM über eine grafische Benutzeroberfläche . . . . 61432.4 Konfigurieren von SCPM über die Befehlszeile . . . . . . . . . . . . 62132.5 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . 62432.6 Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . 625

33 Energieverwaltung 62733.1 Energiesparfunktionen . . . . . . . . . . . . . . . . . . . . . . 62833.2 APM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62933.3 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63133.4 Ruhezustand für Festplatte . . . . . . . . . . . . . . . . . . . . 63933.5 Das powersave-Paket . . . . . . . . . . . . . . . . . . . . . . . 64033.6 Das YaST Energieverwaltungsmodul . . . . . . . . . . . . . . . . . 650

Page 10: Suse 10.1 Linux Reference De

34 Drahtlose Kommunikation 65534.1 Wireless LAN . . . . . . . . . . . . . . . . . . . . . . . . . . 65534.2 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66834.3 Infrarot-Datenübertragung . . . . . . . . . . . . . . . . . . . . 680

Index 685

Page 11: Suse 10.1 Linux Reference De

Über dieses HandbuchDieses Handbuch vermittelt Ihnen Hintergrundinformationen zur Funktionsweise vonSUSE Linux. Es richtet sich in der Hauptsache an Systemadministratoren und andereBenutzer mit Grundkenntnissen der Systemadministration. Dieses Handbuch beschreibteine Auswahl an Anwendungen, die für die tägliche Arbeit erforderlich sind, und bieteteine ausführliche Beschreibung erweiterter Installations- und Konfigurationsszenarien.

Fortgeschrittene InstallationsszenarienImplementieren von SUSE Linux in komplexen Umgebungen.

AdministrationHier lernen Sie, wie Sie Ihr SUSE Linux-System sicher machen und den Zugriffauf das Dateisystem steuern können. Außerdem lernen Sie einige wichtigeDienstprogramme für Linux-Administratoren kennen.

SystemHier werden die Komponenten des Linux-Systems erläutert, sodass Sie derenInteraktion besser verstehen.

DiensteIn diesem Abschnitt erfahren Sie, wie Sie die unterschiedlichen Netzwerk- undDateidienste konfigurieren, die zum Lieferumfang von SUSE Linux gehören.

MobilitätDieser Abschnitt enthält eine Einführung in die mobile Computernutzung mit SUSELinux. Außerdem erfahren Sie, wie Sie die zahlreichen Optionen für die drahtloseComputernutzung, die Energieverwaltung und die Profilverwaltung konfigurieren.

1 FeedbackWir würden uns über Ihre Kommentare und Vorschläge zu diesem Handbuch undanderen zu diesem Produkt gehörenden Dokumentationen freuen. Bitte verwenden Siedie Funktion user comments unten auf den einzelnen Seiten der Online-Dokumen-tation, um Ihre Kommentare einzugeben.

Page 12: Suse 10.1 Linux Reference De

2 Zusätzliche DokumentationWeitere Handbücher zu diesem SUSE Linux-Produkt finden Sie online unter http://www.novell.com/documentation/ oder auf Ihrem installierten System imVerzeichnis /usr/share/doc/manual/:

SUSE Linux StartDieses Handbuch erläutert die Installation von SUSE Linux sowie die grundlegendenSchritte in Ihrer neuen Desktop-Umgebung. Eine Online-Version dieses Dokumentsfinden Sie unterhttp://www.novell.com/documentation/suse101/

SUSE Linux AnwendungenDieses Handbuch vermittelt Ihnen einen Überblick über die wichtigsten Programmevon SUSE Linux. Eine Online-Version dieses Dokuments finden Sie unterhttp://www.novell.com/documentation/suse101/.

Novell AppArmor 2.0-AdministrationshandbuchDieses Handbuch enthält ausführliche Informationen zur Verwendung vonAppArmor in Ihrer Umgebung. Eine Online-Version dieses Dokuments finden Sieunter http://www.novell.com/documentation/apparmor/.

3 Konventionen in derDokumentation

In diesem Handbuch werden folgende typografische Konventionen verwendet:

• /etc/passwd: Datei- und Verzeichnisnamen

• Platzhalter: Ersetzen Sie Platzhalter durch den tatsächlichen Wert.

• PATH: die Umgebungsvariable PATH

• ls, --help: Befehle, Optionen und Parameter

• user: Benutzer oder Gruppen

xii Referenz

Page 13: Suse 10.1 Linux Reference De

• Alt , Alt + F1 : Eine Taste oder Tastenkombination; Tastennamen werden wieauf der Tastatur in Großbuchstaben dargestellt

• Datei, Datei → Speichern unter: Menüelemente, Schaltflächen

• Tanzende Pinguine (Kapitel „Pinguine“, ↑Verweis): Dies ist ein Verweis auf einKapitel in einem anderen Buch.

4 Informationen zur Herstellungdieses Handbuchs

Dieses Handbuch wurde in Novdoc, einer Untermenge von DocBook (siehe http://www.docbook.org), geschrieben. Die XML-Quelldateien wurden mit xmllintüberprüft, von xsltproc verarbeitet und mit einer benutzerdefinierten Version derStylesheets von Norman Walsh in HTML konvertiert.

5 DanksagungDie Entwickler von Linux treiben in weltweiter Zusammenarbeit mit hohem freiwilligemEinsatz die Weiterentwicklung von Linux voran. Wir danken ihnen für ihr Engagement– ohne sie gäbe es diese Distribution nicht. Bedanken wollen wir uns außerdem auchbei Frank Zappa und Pawar. Unser besonderer Dank geht selbstverständlich an LinusTorvalds.

Viel Spaß!

Ihr SUSE-Team

Über dieses Handbuch xiii

Page 14: Suse 10.1 Linux Reference De
Page 15: Suse 10.1 Linux Reference De

Teil I. FortgeschritteneInstallationsszenarien

Page 16: Suse 10.1 Linux Reference De
Page 17: Suse 10.1 Linux Reference De

1Installation mit entferntem ZugriffEs gibt mehrere Möglichkeiten, SUSE Linux zu installieren. Abgesehen von der norma-len Installation von CD oder DVD, die in Kapitel Installation mit YaST (↑Start)beschrieben wird, können Sie aus mehreren netzwerkbasierten Ansätzen auswählenoder eine vollautomatische Installation von SUSE Linux ausführen.

Die einzelnen Methoden werden mithilfe zweier kurzer Checklisten erläutert: in dereinen Liste sind die Voraussetzungen für die jeweilige Methode aufgeführt und in deranderen Liste wird das grundlegende Verfahren beschrieben. Anschließend werden allein diesen Installationsszenarien verwendeten Techniken ausführlicher erläutert.

ANMERKUNG

In den folgenden Abschnitten wird das System, auf dem die neue SUSE Linux-Installation ausgeführt wird, als Zielsystem oder Installationsziel bezeichnet.Der Begriff Installationsquelle wird für alle Quellen der Installationsdaten ver-wendet. Dazu gehören physische Medien, z. B. CD und DVD, sowie Netzwerk-server, die die Installationsdaten im Netzwerk verteilen.

1.1 Installation auf entferntenSystemen

In diesem Abschnitt werden die gängigsten Installationsszenarien für Installationen aufentferneten Systemen beschrieben. Prüfen Sie für jedes Szenario die Liste der Voraus-setzungen und befolgen Sie das für dieses Szenario beschriebene Verfahren. Falls Sie

Installation mit entferntem Zugriff 17

Page 18: Suse 10.1 Linux Reference De

für einen bestimmten Schritt ausführliche Anweisungen benötigen, folgen Sie den ent-sprechenden Links.

WICHTIG

Die Konfiguration des X Window Systems ist nicht Teil des entfernten Installa-tionsvorgangs. Melden Sie sich nach Abschluss der Installation beim Zielsystemals root an, geben Sie telinit 3 ein und starten Sie SaX2, um die Grafik-hardware wie in Abschnitt 14.1, „X11-Konfiguration mit SaX2“ (S. 293)beschrieben zu konfigurieren.

1.1.1 Einfache Installation mit entferntemZugriff über VNC - StatischeNetzwerkkonfiguration

Diese Art der Installation erfordert physischen Zugriff auf das Zielsystem, um diesesfür die Installation zu booten. Die Installation selbst wird vollständig von einer entferntenArbeitsstation gesteuert, die mit dem Installationsprogramm über VNC verbunden ist.Das Eingreifen des Benutzers ist wie bei der manuellen Installation erforderlich (sieheKapitel Installation mit YaST (↑Start)).

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

• Zielsystem mit funktionierender Netzwerkverbindung

• Steuersystem mit funktionierender Netzwerkverbindung und VNC-Viewer-Softwareoder Java-fähiger Browser (Firefox, Konqueror, Internet Explorer oder Opera)

• Physisches Bootmedium (CD oder DVD) zum Booten des Zielsystems

• Gültige statische IP-Adressen, die der Installationsquelle und dem Steuersystembereits zugewiesen sind

• Gültige statische IP-Adresse, die dem Zielsystem zugewiesen wird

18 Referenz

Page 19: Suse 10.1 Linux Reference De

Gehen Sie wie folgt vor, um diese Art der Installation durchzuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein.

2 Booten Sie das Zielsystem mithilfe der ersten CD oder DVD des SUSE Linux-Medienkits.

3 Wenn der Bootbildschirm des Zielsystems erscheint, legen Sie mithilfe der Ein-gabeaufforderung für die Boot-Optionen die entsprechenden VNC-Optionen unddie Adresse der Installationsquelle fest. Dies wird ausführlich in Abschnitt 1.4,„Booten des Zielsystems für die Installation“ (S. 48) beschrieben.

Das Zielsystem bootet in eine textbasierte Umgebung und gibt die Netzwerkadres-se und Display-Nummer an, unter der die grafische Installationsumgebung übereine VNC-Viewer-Anwendung oder einen Browser erreichbar ist. VNC-Installa-tionen geben sich selbst über OpenSLP bekannt und können mithilfe von Kon-queror im Modus service:// oder slp:// ermittelt werden.

4 Öffnen Sie auf der steuernden Arbeitsstation eine VNC-Viewer-Anwendungoder einen Webbrowser und stellen Sie wie in Abschnitt 1.5.1, „VNC-Installation“(S. 53) beschrieben eine Verbindung zum Zielsystem her.

5 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

6 Schließen Sie die Installation ab.

1.1.2 Einfache Installation mit entferntemZugriff über VNC - DynamischeNetzwerkkonfiguration über DHCP

Diese Art der Installation erfordert physischen Zugriff auf das Zielsystem, um diesesfür die Installation zu booten. Die Netzwerkkonfiguration erfolgt über DHCP. DieInstallation selbst wird vollständig über eine entfernte Arbeitsstation ausgeführt, die

Installation mit entferntem Zugriff 19

Page 20: Suse 10.1 Linux Reference De

über VNC mit dem Installationsprogramm verbunden ist. Für die eigentliche Konfigu-ration ist jedoch das Eingreifen des Benutzers erforderlich.

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

• Zielsystem mit funktionierender Netzwerkverbindung

• Steuersystem mit funktionierender Netzwerkverbindung und VNC-Viewer-Softwareoder Java-fähiger Browser (Firefox, Konqueror, Internet Explorer oder Opera)

• Physisches Bootmedium (CD, DVD oder benutzerdefinierte Bootdiskette) zumBooten des Zielsystems

• Laufender DHCP-Server, der IP-Adressen zur Verfügung stellt

Gehen Sie wie folgt vor, um diese Art der Installation durchzuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein. Wählen Sie einen NFS-, HTTP-oder FTP-Netzwerkserver. Weitere Informationen zu SMB-Installationsquellenfinden Sie in Abschnitt 1.2.5, „Verwalten einer SMB-Installationsquelle“ (S. 36).

2 Booten Sie das Zielsystem mithilfe der ersten CD oder DVD des SUSE Linux-Medienkits.

3 Wenn der Bootbildschirm des Zielsystems erscheint, legen Sie mithilfe der Ein-gabeaufforderung für die Boot-Optionen die entsprechenden VNC-Optionen unddie Adresse der Installationsquelle fest. Dies wird ausführlich in Abschnitt 1.4,„Booten des Zielsystems für die Installation“ (S. 48) beschrieben.

Das Zielsystem bootet in eine textbasierte Umgebung und gibt die Netzwerkadres-se und Display-Nummer an, unter der die grafische Installationsumgebung übereine VNC-Viewer-Anwendung oder einen Browser erreichbar ist. VNC-Installa-tionen geben sich selbst über OpenSLP bekannt und können mithilfe von Kon-queror im Modus service:// oder slp:// ermittelt werden.

20 Referenz

Page 21: Suse 10.1 Linux Reference De

4 Öffnen Sie auf der steuernden Arbeitsstation eine VNC-Viewer-Anwendungoder einen Webbrowser und stellen Sie wie in Abschnitt 1.5.1, „VNC-Installation“(S. 53) beschrieben eine Verbindung zum Zielsystem her.

5 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

6 Schließen Sie die Installation ab.

1.1.3 Installation auf entfernten Systemenüber VNC - PXE-Boot undWake-on-LAN

Diese Art der Installation wird vollständig automatisch durchgeführt. Der Zielcomputerwird über den entfernten Zugriff gestartet und gebootet. Das Eingreifen des Benutzersist lediglich für die eigentliche Installation erforderlich. Dieser Ansatz ist für standort-übergreifende Implementierungen geeignet.

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

• TFTP-Server

• Laufender DHCP-Server für Ihr Netzwerk

• Zielsystem, das PXE-Boot-, Netzwerk- und Wake-on-LAN-fähig, angeschlossenund mit dem Netzwerk verbunden ist

• Steuersystem mit funktionierender Netzwerkverbindung und VNC-Viewer-Softwareoder Java-fähiger Browser (Firefox, Konqueror, Internet Explorer oder Opera)

Installation mit entferntem Zugriff 21

Page 22: Suse 10.1 Linux Reference De

Gehen Sie wie folgt vor, um diese Art der Installation auszuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein. Wählen Sie einen NFS-, HTTP-oder FTP-Netzwerkserver aus oder konfigurieren Sie eine SMB-Installationsquellewie in Abschnitt 1.2.5, „Verwalten einer SMB-Installationsquelle“ (S. 36)beschrieben.

2 Richten Sie einen TFTP-Server ein, auf dem das Bootimage gespeichert wird,das vom Zielsystem abgerufen werden kann. Dies wird ausführlich inAbschnitt 1.3.2, „Einrichten eines TFTP-Servers“ (S. 39) beschrieben.

3 Richten Sie einen DHCP-Server ein, der IP-Adressen für alle Computer bereitstelltund dem Zielsystem den Speicherort des TFTP-Servers bekannt gibt. Dies wirdausführlich in Abschnitt 1.3.1, „Einrichten eines DHCP-Servers“ (S. 38)beschrieben.

4 Bereiten Sie das Zielsystem für PXE-Boot vor. Dies wird ausführlich inAbschnitt 1.3.5, „Vorbereiten des Zielsystems für PXE-Boot“ (S. 46) beschrieben.

5 Initiieren Sie den Bootvorgang des Zielsystems mithilfe von Wake-on-LAN.Dies wird ausführlich in Abschnitt 1.3.7, „Wake-on-LAN“ (S. 47) beschrieben.

6 Öffnen Sie auf der steuernden Arbeitsstation eine VNC-Viewer-Anwendungoder einen Webbrowser und stellen Sie wie in Abschnitt 1.5.1, „VNC-Installation“(S. 53) beschrieben eine Verbindung zum Zielsystem her.

7 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

8 Schließen Sie die Installation ab.

22 Referenz

Page 23: Suse 10.1 Linux Reference De

1.1.4 Einfache Installation mit entferntemZugriff über SSH - StatischeNetzwerkkonfiguration

Diese Art der Installation erfordert physischen Zugriff auf das Zielsystem, um diesesfür die Installation zu booten und um die IP-Adresse des Installationsziels zu ermitteln.Die Installation selbst wird vollständig von einer entfernten Arbeitsstation gesteuert,die mit dem Installationsprogramm über SSH verbunden ist. Das Eingreifen desBenutzers ist wie bei der regulären Installation erforderlich (siehe Kapitel Installationmit YaST (↑Start)).

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

• Zielsystem mit funktionierender Netzwerkverbindung

• Steuersystem mit funktionierender Netzwerkverbindung und funktionierender SSH-Client-Software

• Physisches Bootmedium (CD, DVD oder benutzerdefinierte Bootdiskette) zumBooten des Zielsystems

• Gültige statische IP-Adressen, die der Installationsquelle und dem Steuersystembereits zugewiesen sind

• Gültige statische IP-Adresse, die dem Zielsystem zugewiesen wird

Gehen Sie wie folgt vor, um diese Art der Installation durchzuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein.

2 Booten Sie das Zielsystem mithilfe der ersten CD oder DVD des SUSE Linux-Medienkits.

Installation mit entferntem Zugriff 23

Page 24: Suse 10.1 Linux Reference De

3 Wenn der Bootbildschirm des Zielsystems erscheint, legen Sie mithilfe der Ein-gabeaufforderung für die Boot-Optionen die entsprechenden Parameter für dieNetzwerkverbindung, die Adresse der Installationsquelle und die SSH-Aktivierungfest. Dies wird ausführlich in Abschnitt 1.4.3, „Benutzerdefinierte Boot-Optionen“(S. 50) beschrieben.

Das Zielsystem bootet in eine textbasierte Umgebung und gibt die Netzwerkadres-se an, unter der die grafische Installationsumgebung von einen beliebigen SSH-Client adressiert werden kann.

4 Öffnen Sie auf der steuernden Arbeitsstation ein Terminalfenster und stellen Siewie in „Herstellen der Verbindung mit dem Installationsprogramm“ (S. 55)beschrieben eine Verbindung zum Zielsystem her.

5 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

6 Schließen Sie die Installation ab.

1.1.5 Einfache Installation auf entferntenSystemen über SSH - DynamischeNetzwerkkonfiguration über DHCP

Diese Art der Installation erfordert physischen Zugriff auf das Zielsystem, um diesesfür die Installation zu booten und um die IP-Adresse des Installationsziels zu ermitteln.Die Installation selbst wird vollständig über eine entfernte Arbeitsstation ausgeführt,die über VNC mit dem Installationsprogramm verbunden ist. Für die eigentliche Kon-figuration ist jedoch das Eingreifen des Benutzers erforderlich.

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

24 Referenz

Page 25: Suse 10.1 Linux Reference De

• Zielsystem mit funktionierender Netzwerkverbindung

• Steuersystem mit funktionierender Netzwerkverbindung und funktionierender SSH-Client-Software

• Physisches Bootmedium (CD oder DVD) zum Booten des Zielsystems

• Laufender DHCP-Server, der IP-Adressen zur Verfügung stellt

Gehen Sie wie folgt vor, um diese Art der Installation durchzuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein. Wählen Sie einen NFS-, HTTP-oder FTP-Netzwerkserver. Weitere Informationen zu SMB-Installationsquellenfinden Sie in Abschnitt 1.2.5, „Verwalten einer SMB-Installationsquelle“ (S. 36).

2 Booten Sie das Zielsystem mithilfe der ersten CD oder DVD des SUSE Linux-Medienkits.

3 Wenn der Bootbildschirm des Zielsystems erscheint, legen Sie mithilfe der Ein-gabeaufforderung für die Boot-Optionen die entsprechenden Parameter für dieNetzwerkverbindung, den Speicherort der Installationsquelle und die SSH-Aktivierung fest. Weitere Informationen sowie ausführliche Anweisungen zurVerwendung dieser Parameter finden Sie in Abschnitt 1.4.3, „BenutzerdefinierteBoot-Optionen“ (S. 50).

Das Zielsystem bootet in eine textbasierte Umgebung und gibt die Netzwerkadres-se an, unter der die grafische Installationsumgebung über einen beliebigen SSH-Client erreichbar ist.

4 Öffnen Sie auf der steuernden Arbeitsstation ein Terminalfenster und stellen Siewie in „Herstellen der Verbindung mit dem Installationsprogramm“ (S. 55)beschrieben eine Verbindung zum Zielsystem her.

5 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

6 Schließen Sie die Installation ab.

Installation mit entferntem Zugriff 25

Page 26: Suse 10.1 Linux Reference De

1.1.6 Installation auf entfernten Systemenüber SSH - PXE-Boot undWake-on-LAN

Diese Art der Installation wird vollständig automatisch durchgeführt. Der Zielcomputerwird über den entfernten Zugriff gestartet und gebootet.

Stellen Sie bei dieser Art der Installation sicher, dass die folgenden Anforderungenerfüllt sind:

• Quelle der Installation mit entferntem Zugriff: NFS, HTTP, FTP oder SMB mitfunktionierender Netzwerkverbindung

• TFTP-Server

• Laufender DHCP-Server für Ihr Netzwerk, der dem zu installierenden Host einestatische IP-Adresse zuweist

• Zielsystem, das PXE-Boot-, Netzwerk- und Wake-on-LAN-fähig, angeschlossenund mit dem Netzwerk verbunden ist

• Steuersystem mit funktionierender Netzwerkverbindung und SSH-Client-Software

Gehen Sie wie folgt vor, um diese Art der Installation auszuführen:

1 Richten Sie die Installationsquelle wie in Abschnitt 1.2, „Installationsquellen aufdem Server einrichten“ (S. 27) beschrieben ein. Wählen Sie einen NFS-, HTTP-oder FTP-Netzwerkserver. Weitere Informationen zur Konfiguration einer SMB-Installationsquelle finden Sie in Abschnitt 1.2.5, „Verwalten einer SMB-Installa-tionsquelle“ (S. 36).

2 Richten Sie einen TFTP-Server ein, auf dem das Bootimage gespeichert wird,das vom Zielsystem abgerufen werden kann. Dies wird ausführlich inAbschnitt 1.3.2, „Einrichten eines TFTP-Servers“ (S. 39) beschrieben.

3 Richten Sie einen DHCP-Server ein, der IP-Adressen für alle Computer bereitstelltund dem Zielsystem den Speicherort des TFTP-Servers bekannt gibt. Dies wirdausführlich in Abschnitt 1.3.1, „Einrichten eines DHCP-Servers“ (S. 38)beschrieben.

26 Referenz

Page 27: Suse 10.1 Linux Reference De

4 Bereiten Sie das Zielsystem für PXE-Boot vor. Dies wird ausführlich inAbschnitt 1.3.5, „Vorbereiten des Zielsystems für PXE-Boot“ (S. 46) beschrieben.

5 Initiieren Sie den Bootvorgang des Zielsystems mithilfe von Wake-on-LAN.Dies wird ausführlich in Abschnitt 1.3.7, „Wake-on-LAN“ (S. 47) beschrieben.

6 Starten Sie auf der steuernden Arbeitsstation einen SSH-Client und stellen Siewie in Abschnitt 1.5.2, „SSH-Installation“ (S. 55) beschrieben eine Verbindungzum Zielsystem her.

7 Führen Sie die Installation wie in Kapitel Installation mit YaST (↑Start)beschrieben aus.

Um die Installation abzuschließen, müssen Sie die Verbindung zum Zielsystemwiederherstellen, nachdem dieses neu gebootet wurde.

8 Schließen Sie die Installation ab.

1.2 Installationsquellen auf demServer einrichten

Je nachdem, welches Betriebssystem auf dem Computer ausgeführt wird, der alsNetzwerk-Installationsquelle für SUSE Linux verwendet werden soll, stehen für dieServerkonfiguration mehrere Möglichkeiten zur Verfügung. Am einfachsten lässt sichein Installationsserver mit YaST auf SUSE LINUX Enterprise Server 9 oder SUSELinux 9.3 und höher einrichten. Auf anderen Versionen von SUSE LINUX EnterpriseServer oder SUSE Linux muss die Installationsquelle manuell eingerichtet werden.

TIPP

Für die Linux-Installation kann auch ein Microsoft Windows-Computer alsInstallationsserver verwendet werden. Weitere Einzelheiten finden Sie inAbschnitt 1.2.5, „Verwalten einer SMB-Installationsquelle“ (S. 36).

Installation mit entferntem Zugriff 27

Page 28: Suse 10.1 Linux Reference De

1.2.1 Einrichten eines Installationsserversmithilfe von YaST

YaST bietet ein grafisches Werkzeug zum Erstellen von Netzwerk-Installationsquellen.Es unterstützt HTTP-, FTP- und NFS-Netzwerk-Installationsserver.

1 Melden Sie sich bei dem Computer, der als Installationsserver verwendet werdensoll, als root an.

2 Starten Sie YaST → Verschiedenes → Installationsserver.

3 Wählen Sie Serverkonfiguration.

4 Wählen Sie den gewünschten Servertyp (HTTP, FTP oder NFS).

Der ausgewählte Serverdienst wird bei jedem Systemstart automatisch gestartet.Wenn ein Dienst des ausgewählten Typs auf dem System bereits ausgeführt wirdund Sie diesen Dienst für den Server manuell konfigurieren möchten, deaktivierenSie die automatische Konfiguration des Serverdiensts, indem SieKeine Netzwerk-dienste konfigurieren wählen. Geben Sie in beiden Fällen das Verzeichnis an, indem die Installationsdaten auf dem Server zur Verfügung gestellt werden sollen.

5 Konfigurieren Sie den erforderlichen Servertyp.

Dieser Schritt bezieht sich auf die automatische Konfiguration der Serverdienste.Wenn die automatische Konfiguration deaktiviert ist, wird dieser Schritt über-sprungen. Legen Sie einen Aliasnamen für das Stammverzeichnis auf dem FTP-oder HTTP-Server fest, in dem die Installationsdaten gespeichert werden sollen.Die Installationsquelle befindet sich später unterftp://Server-IP/Alias/Name (FTP) oder unterhttp://Server-IP/Alias/Name (HTTP). Name steht für den Namender Installationsquelle, die im folgenden Schritt definiert wird. Wenn Sie imvorherigen Schritt NFS ausgewählt haben, legen Sie Platzhalter und Exportoptio-nen fest. Der Zugriff auf den NFS-Server erfolgt übernfs://Server-IP/Name . Informationen zu NFS und Exportvorgängenfinden Sie in Kapitel 22, Verteilte Nutzung von Dateisystemen mit NFS (S. 433).

6 Konfigurieren Sie die Installationsquelle.

28 Referenz

Page 29: Suse 10.1 Linux Reference De

Bevor die Installationsmedien in ihr Zielverzeichnis kopiert werden, müssen Sieden Namen der Installationsquelle angeben (dies sollte im Idealfall eine leichtzu merkende Abkürzung des Produkts und der Version sein). YaST ermöglichtdas Bereitstellen von ISO-Images der Medien an Stelle von Kopien der Installa-tions-CDs. Wenn Sie diese Funktion verwenden möchten, aktivieren Sie dasentsprechende Kontrollkästchen und geben Sie den Verzeichnispfad an, in demsich die ISO-Dateien lokal befinden. Je nachdem, welches Produkt mithilfe diesesInstallationsservers verteilt werden soll, können für die vollständige Produktin-stallation mehrere Zusatz-CDs oder Service-Pack-CDs erforderlich sein. WennSie die Option Nach zusätzlichen CDs verlangen aktivieren, werden Sie vonYaST automatisch daran erinnert, diese Medien zur Verfügung zu stellen. Umden Installationsserver über OpenSLP im Netzwerk bekannt zu geben, aktivierenSie die entsprechende Option.

TIPP

Wenn Ihr Netzwerk diese Option unterstützt, sollten Sie Ihre Installations-quelle auf jeden Fall über OpenSLP bekannt machen. Dadurch ersparenSie sich die Eingabe des Netzwerk-Installationspfads auf den einzelnenZielcomputern. Die Zielsysteme werden einfach unter Verwendung derSLP-Boot-Option gebootet und finden die Netzwerk-Installationsquelleohne weitere Konfigurationsschritte. Weitere Informationen zu dieserOption finden Sie in Abschnitt 1.4, „Booten des Zielsystems für dieInstallation“ (S. 48).

7 Laden Sie die Installationsdaten hoch.

Der die meiste Zeit in Anspruch nehmende Schritt bei der Konfiguration einesInstallationsservers ist das Kopieren der eigentlichen Installations-CDs. LegenSie die Medien in der von YaST angegebenen Reihenfolge ein und warten Sie,bis der Kopiervorgang abgeschlossen ist. Wenn alle Quellen erfolgreich kopiertwurden, kehren Sie zur Übersicht der vorhandenen Informationsquellen zurückund schließen Sie die Konfiguration, indem Sie Beenden wählen.

Der Installationsserver ist jetzt vollständig konfiguriert und betriebsbereit. Erwird bei jedem Systemstart automatisch gestartet. Es sind keine weiteren Aktionenerforderlich. Sie müssen diesen Dienst lediglich ordnungsgemäß manuell konfi-gurieren und starten, wenn die automatische Konfiguration der ausgewähltenNetzwerkdienste mit YaST anfänglich deaktiviert wurde.

Installation mit entferntem Zugriff 29

Page 30: Suse 10.1 Linux Reference De

Um eine Installationsquelle zu deaktivieren, wählen Sie in der Übersicht die OptionÄndern, um die Liste der verfügbaren Installationsquellen zu öffnen. Wählen Sie denzu entfernenden Eintrag und wählen Sie anschließend die Option Löschen. DiesesLöschverfahren bezieht sich nur auf das Deaktivieren des Serverdienstes. Die Installa-tionsdaten selbst verbleiben im ausgewählten Verzeichnis. Sie können sie jedochmanuell entfernen.

Wenn der Installationsserver die Installationsdaten für mehrere Produkte einer Produkt-version zur Verfügung stellen soll, starten Sie das YaST-Installationserver-Modul undwählen Sie in der Übersicht der vorhandenen Installationsquellen die Option Konfigu-rieren, um die Installationsquelle zu konfigurieren.

1.2.2 Manuelles Einrichten einerNFS-Installationsquelle

Das Einrichten einer NFS-Quelle für die Installation erfolgt in zwei Schritten. Im erstenSchritt erstellen Sie die Verzeichnisstruktur für die Installationsdaten und kopierendiese in die Struktur. Im zweiten Schritt exportieren Sie das Verzeichnis mit denInstallationsdaten in das Netzwerk.

Gehen Sie wie folgt vor, um ein Verzeichnis für die Installationsdaten zu erstellen:

1 Melden Sie sich als root an.

2 Erstellen Sie ein Verzeichnis, in dem die Installationsdaten gespeichert werdensollen, und wechseln Sie in dieses Verzeichnis. Beispiel:mkdir install/Produkt/Produktversion

cd install/Produkt/Produktversion

Ersetzen Sie Produkt durch eine Abkürzung des Produktnamens (in diesemFall SUSE Linux) und Produktversion durch eine Zeichenkette, die denProduktnamen und die Version enthält.

3 Führen Sie für die einzelnen im Medienkit enthaltenen CDs die folgendenBefehle aus:

a Kopieren Sie den gesamten Inhalt der Installations-CD in das Server-Installationsverzeichnis:

30 Referenz

Page 31: Suse 10.1 Linux Reference De

cp -a /media/Pfad_zum_CD-ROM-Laufwerk .

Ersetzen Sie Pfad_zum_CD-ROM-Laufwerk durch den tatsächlichenPfad, in dem sich das CD- oder DVD-Laufwerk befindet. Dies kann je nachLaufwerktyp, der auf dem System verwendet wird, cdrom, cdrecorder,dvd oder dvdrecorder sein.

b Benennen Sie das Verzeichnis in die CD-Nummer um:mv Pfad_zum_CD-ROM-Laufwerk CDx

Ersetzen Sie x durch die Nummer der CD.

Gehen Sie wie folgt vor, um die Installationsquellen unter Verwendung von YaSTüber NFS zu exportieren:

1 Melden Sie sich als root an.

2 Starten Sie YaST → Netzwerkdienste → NFS-Server.

3 Wählen Sie NFS-Server starten und Firewall-Port öffnen und klicken Sie aufWeiter.

4 Wählen Sie Verzeichnis hinzufügen und geben Sie den Pfad des Verzeichnissesein, in dem sich die Installationsdaten befinden. In diesem Fall lautet es/Produktversion.

5 Wählen Sie Host hinzufügen und geben Sie die Hostnamen der Computer ein,auf die die Installationsdaten exportiert werden sollen. An Stelle der Hostnamenkönnen Sie hier auch Platzhalter, Netzwerkadressbereiche oder einfach denDomänennamen Ihres Netzwerks eingeben. Geben Sie die gewünschten Export-optionen an oder übernehmen Sie die Vorgabe, die für die meisten Konfiguratio-nen ausreichend ist. Weitere Informationen darüber, welche Syntax beimExportieren von NFS-Freigaben verwendet wird, finden Sie auf der Manualpagezu exports.

6 Klicken Sie auf Beenden.

Der NFS-Server, auf dem sich die SUSE Linux-Installationsquellen befinden,wird automatisch gestartet und in den Bootvorgang integriert.

Installation mit entferntem Zugriff 31

Page 32: Suse 10.1 Linux Reference De

Wenn Sie die Installationsquellen nicht mit dem YaST-NFS-Servermodul, sondernmanuell exportieren möchten, gehen Sie wie folgt vor:

1 Melden Sie sich als root an.

2 Öffnen Sie die Datei /etc/exports und geben Sie die folgende Zeile ein:/Produktversion *(ro,root_squash,sync)

Dadurch wird das Verzeichnis /Produktversion auf alle Hosts exportiert,die Teil dieses Netzwerks sind oder eine Verbindung zu diesem Server herstellenkönnen. Um den Zugriff auf diesen Server zu beschränken, geben Sie an Stelledes allgemeinen Platzhalters * Netzmasken oder Domänennamen an. WeitereInformationen hierzu finden Sie auf der Manualpage für den Befehl export.Speichern und schließen Sie diese Konfigurationsdatei.

3 Um den NFS-Dienst zu der beim Booten des System generierten Liste der Serverhinzuzufügen, führen Sie die folgenden Befehle aus:insserv /etc/init.d/nfsserverinsserv /etc/init.d/portmap

4 Starten Sie den NFS-Server mit dem folgenden Befehl:rcnfsserver start

Wenn Sie die Konfiguration des NFS-Servers zu einem späteren Zeitpunkt ändernmüssen, ändern Sie die Konfigurationsdatei wie erforderlich und starten die denNFS-Daemon neu, indem Sie rcnfsserver restart eingeben.

Die Bekanntgabe des NFS-Servers über OpenSLP stellt dessen Adresse allen Clientsim Netzwerk zur Verfügung.

1 Melden Sie sich als root an.

2 Wechseln Sie in das Verzeichnis /etc/slp.reg.d/.

3 Erstellen Sie eine Konfigurationsdatei namens install.suse.nfs.reg,die die folgenden Zeilen enthält:# Register the NFS Installation Serverservice:install.suse:nfs://$HOSTNAME/path_instsource/CD1,en,65535 description=NFS Installation Source

32 Referenz

Page 33: Suse 10.1 Linux Reference De

Ersetzen Sie path_instsource durch den eigentlichen Pfad der Installations-quelle auf dem Server.

4 Speichern Sie diese Konfigurationsdatei und starten Sie den OpenSLP-Daemonmit dem folgenden Befehl:rcslpd start

Weitere Informationen zu OpenSLP finden Sie in der Paket-Dokumentation im Ver-zeichnis /usr/share/doc/packages/openslp/ oder in Kapitel 19, SLP-Dienste im Netzwerk (S. 395).

1.2.3 Manuelles Einrichten einerFTP-Installationsquelle

Das Erstellen einer FTP-Installationsquelle erfolgt ähnlich wie das Erstellen einer NFS-Installationsquelle. FTP-Installationsquellen können ebenfalls mit OpenSLP im Netzwerkbekannt gegeben werden.

1 Erstellen Sie wie in Abschnitt 1.2.2, „Manuelles Einrichten einer NFS-Installati-onsquelle“ (S. 30) ein Verzeichnis für die Installationsquellen.

2 Konfigurieren Sie den FTP-Server für die Verteilung des Inhalts des Installati-onsverzeichnisses:

a Melden Sie sich als root an und installieren Sie mithilfe des YaST-Paket-Managers das Paket pure-ftpd (ein einfacher FTP-Server).

b Wechseln Sie in das Stammverzeichnis des FTP-Servers:cd/srv/ftp

c Erstellen Sie im Stammverzeichnis des FTP-Servers ein Unterverzeichnisfür die Installationsquellen:mkdirInstquelle

Ersetzen Sie Instquelle durch den Produktnamen.

Installation mit entferntem Zugriff 33

Page 34: Suse 10.1 Linux Reference De

d Kopieren Sie den Inhalt der Installations-CDs in das Stammverzeichnis desFTP-Servers (ähnlich wie in Abschnitt 1.2.2, „Manuelles Einrichten einerNFS-Installationsquelle“ (S. 30), Schritt 3 (S. 30) beschrieben).

Alternativ dazu können Sie den Inhalt des bereits vorhandenen Installations-Repositorys auch in der change-root-Umgebung des FTP-Servers einhängen:mount --bind Pfad_zur_Instquelle /srv/ftp/Instquelle

Ersetzen Sie Pfad_zur_Instquelle und Instquelle durch dieentsprechenden Werte für Ihre Konfiguration. Wenn diese Einstellungendauerhaft übernommen werden sollen, fügen Sie sie zu /etc/fstabhinzu.

e Starten Sie pure-ftpd:pure-ftpd &

3 Geben Sie die Installationsquelle über OpenSLP bekannt, sofern dies von IhrerNetzwerkkonfiguration unterstützt wird:

a Erstellen Sie eine Konfigurationsdatei namensinstall.suse.ftp.regunter /etc/slp/reg.d/, die die folgenden Zeilen enthält:# Register the FTP Installation Serverservice:install.suse:ftp://$HOSTNAME/srv/ftp/instsource/CD1,en,65535 description=FTP Installation Source

Ersetzen Sie instsource durch den Namen des Verzeichnisses auf demServer, in dem sich die Installationsquelle befindet. Die Zeile service:sollte als eine fortlaufende Zeile eingegeben werden.

b Speichern Sie diese Konfigurationsdatei und starten Sie den OpenSLP-Daemon mit dem folgenden Befehl:rcslpd start

34 Referenz

Page 35: Suse 10.1 Linux Reference De

1.2.4 Manuelles Einrichten einerHTTP-Installationsquelle

Das Erstellen einer HTTP-Installationsquelle erfolgt ähnlich wie das Erstellen einerNFS-Installationsquelle. HTTP-Installationsquellen können ebenfalls mit OpenSLP imNetzwerk bekannt gegeben werden.

1 Erstellen Sie wie in Abschnitt 1.2.2, „Manuelles Einrichten einer NFS-Installati-onsquelle“ (S. 30) ein Verzeichnis für die Installationsquellen.

2 Konfigurieren Sie den HTTP-Server für die Verteilung des Inhalts des Installati-onsverzeichnisses:

a Installieren Sie den Webserver Apache wie in Abschnitt 26.1.2, „Installation“(S. 486) beschrieben.

b Wechseln Sie in das Stammverzeichnis des HTTP-Servers (/srv/www/htdocs) und erstellen Sie ein Unterverzeichnis für die Installationsquellen:mkdirInstquelle

Ersetzen Sie Instquelle durch den Produktnamen.

c Erstellen Sie einen symbolischen Link vom Speicherort der Installations-quellen zum Stammverzeichnis des Webservers (/srv/www/htdocs):ln -s /Pfad_Instquelle /srv/www/htdocs/Instquelle

d Ändern Sie die Konfigurationsdatei des HTTP-Servers (/etc/apache2/default-server.conf) so, dass sie symbolischen Links folgt. ErsetzenSie die folgende Zeile:Options None

durchOptions Indexes FollowSymLinks

e Laden Sie die HTTP-Server-Konfiguration mitrcapache2 reload neu.

Installation mit entferntem Zugriff 35

Page 36: Suse 10.1 Linux Reference De

3 Geben Sie die Installationsquelle über OpenSLP bekannt, sofern dies von IhrerNetzwerkkonfiguration unterstützt wird:

a Erstellen Sie eine Konfigurationsdatei namens install.suse.http.reg unter /etc/slp/reg.d/, die die folgenden Zeilen enthält:# Register the HTTP Installation Serverservice:install.suse:http://$HOSTNAME/srv/www/htdocs/instsource/CD1/,en,65535 description=HTTP Installation Source

Ersetzen Sie instsource durch den eigentlichen Pfad der Installations-quelle auf dem Server. Die Zeile service: sollte als eine fortlaufendeZeile eingegeben werden.

b Speichern Sie diese Konfigurationsdatei und starten Sie den OpenSLP-Daemon mit dem folgenden Befehl: rcslpd restart.

1.2.5 Verwalten einerSMB-Installationsquelle

Mithilfe von SMB (Samba) können Sie die Installationsquellen von einem MicrosoftWindows-Server importieren und die Linux-Implementierung starten, ohne dass einLinux-Computer vorhanden sein muss.

Gehen Sie wie folgt vor, um eine exportierte Windows-Share mit den SUSE Linux-Installationsquellen einzurichten:

1 Melden Sie sich auf dem Windows-Computer an.

2 Öffnen Sie den Explorer und erstellen Sie einen neuen Ordner, der die gesamteBaumstruktur der Installation aufnehmen soll, und nennen Sie ihn beispielsweiseINSTALL.

3 Geben Sie diesen Ordner wie in der Windows-Dokumentation beschrieben imNetzwerk frei.

4 Wechseln Sie in den freigegebenen Ordner und erstellen Sie einen Unterordnernamens Produkt. Produkt ist dabei durch den tatsächlichen Produktnamen(in diesem Fall SUSE Linux) zu ersetzen.

36 Referenz

Page 37: Suse 10.1 Linux Reference De

5 Kopieren Sie jede SUSE Linux-CD in einen separaten Ordner und nennen Siediese Ordner CD1, CD2, CD3 usw.

6 Wechseln Sie in das oberste Verzeichnis des freigegebenen Ordners (INSTALLin diesem Beispiel) und kopieren Sie die folgenden Dateien und Ordner ausProdukt/CD1 in diesen Ordner: content, media.1, control.xml undboot.

7 Erstellen Sie unter INSTALL einen neuen Ordner und nennen Sie ihn yast.

Wechseln Sie in den Ordner yast und erstellen Sie die Dateien order undinstorder.

8 Öffnen Sie die Datei order und fügen Sie die folgende Zeile hinzu:/NLD/CD1 smb://Benutzer:Passwort@Hostname/ProduktCD1

Ersetzen Sie Benutzer durch den Benutzernamen, den Sie auf dem Windows-Computer verwenden, oder geben Sie Guest an, um die Gastanmeldung fürdiese Freigabe zu aktivieren.Passwort sollte entweder durch Ihr Anmeldepass-wort oder durch eine beliebige Zeichenkette für die Gastanmeldung ersetzt wer-den. Hostname sollte durch den Netzwerknamen des Windows-Computersersetzt werden.

9 Öffnen Sie die Datei instorder und fügen Sie die folgende Zeile hinzu:/product/CD1

Um eine SMB-eingehängte Freigabe als Installationsquelle zu verwenden, gehen Siewie folgt vor:

1 Booten Sie das Installationsziel.

2 Wählen Sie Installation.

3 Drücken Sie F3 und F4 , um eine Auswahl der Installationsquellen anzuzeigen.

4 Wählen Sie „SMB“ und geben Sie den Namen oder die IP-Adresse des Windows-Computers, den Freigabenamen (INSTALL in diesem Beispiel), den Benutzer-namen und das Passwort ein.

Installation mit entferntem Zugriff 37

Page 38: Suse 10.1 Linux Reference De

Wenn Sie die Eingabe drücken, wird YaST gestartet und Sie können die Instal-lation ausführen.

1.3 Vorbereitung des Bootvorgangsfür das Zielsystem

In diesem Abschnitt werden die für komplexe Boot-Szenarien erforderlichen Konfigu-rationsschritte beschrieben. Er enthält zudem Konfigurationsbeispiele für DHCP, PXE-Boot, TFTP und Wake-on-LAN.

1.3.1 Einrichten eines DHCP-ServersDas Einrichten eines DHCP-Servers unter SUSE Linux erfolgt manuell durch Bearbeitender entsprechenden Konfigurationsdateien. In diesem Abschnitt wird beschrieben, wieeine vorhandene DHCP-Serverkonfiguration erweitert wird, sodass sie die für eineTFTP-, PXE- und WOL-Umgebung erforderlichen Daten zur Verfügung stellt.

Manuelles Einrichten eines DHCP-ServersDie einzige Aufgabe des DHCP-Servers ist neben der Bereitstellung der automatischenAdresszuweisung für die Netzwerk-Clients die Bekanntgabe der IP-Adresse des TFTP-Servers und der Datei, die von den Installationsroutinen auf dem Zielcomputer abgerufenwerden soll.

1 Melden Sie sich als root auf dem Computer an, der den DHCP-Server hostet.

2 Fügen Sie der Konfigurationsdatei des DHCP-Servers, die sich unter /etc/dhcpd.conf befindet, folgende Zeilen hinzu:group { # PXE related stuff # # "next server" defines the tftp server that will be used next server ip_tftp_server: # # "filename" specifies the pxelinux image on the tftp server # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; }

38 Referenz

Page 39: Suse 10.1 Linux Reference De

Ersetzen Sie ip_tftp_server durch die IP-Adresse des TFTP-Servers.

Weitere Informationen zu den in dhcpd.conf verfügbaren Optionen findenSie auf der Manualpage dhcpd.conf.

3 Starten Sie den DHCP-Server neu, indem Sie rcdhcpd restart ausführen.

Wenn Sie SSH für die Fernsteuerung einer PXE- und Wake-on-LAN-Installation ver-wenden möchten, müssen Sie die IP-Adresse, die der DHCP-Server dem Installationszielzur Verfügung stellen soll, explizit angeben. Ändern Sie hierzu die oben erwähnteDHCP-Konfiguration gemäß dem folgenden Beispiel:group { # PXE related stuff # # "next server" defines the tftp server that will be used next server ip_tftp_server: # # "filename" specifiies the pxelinux image on the tftp server # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; host test { hardware ethernet mac_address; fixed-address some_ip_address; } }

Die Host-Anweisung gibt den Hostnamen des Installationsziels an. Um den Hostnamenund die IP-Adresse an einen bestimmten Host zu binden, müssen Sie die Hardware-Adresse (MAC) des Systems kennen und angeben. Ersetzen Sie alle in diesem Beispielverwendeten Variablen durch die in Ihrer Umgebung verwendeten Werte.

Nach dem Neustart weist der DHCP-Server dem angegebenen Host eine statische IP-Adresse zu, damit Sie über SSH eine Verbindung zum System herstellen können.

1.3.2 Einrichten eines TFTP-ServersRichten Sie einen TFTP-Server ein, entweder mit YaST oder manuell auf einem belie-bigen Linux-Betriebssystem, das xinetd und tftp unterstützt. Der TFTP-Server übergibtdas Bootimage an das Zielsystem, sobald dieses gebootet ist und eine entsprechendeAnforderung sendet.

Installation mit entferntem Zugriff 39

Page 40: Suse 10.1 Linux Reference De

Einrichten eines TFTP-Servers mit YaST1 Melden Sie sich als root an.

2 Starten Sie YaST → Netzwerkdienste → TFTP-Server und installieren Sie daserforderliche Paket.

3 Klicken Sie auf Aktivieren, um sicherzustellen, dass der Server gestartet und indie Boot-Routine aufgenommen wird. Ihrerseits sind hierbei keine weiterenAktionen erforderlich. tftpd wird zur Boot-Zeit von xinetd gestartet.

4 Klicken Sie auf Firewall-Port öffnen, um den entsprechenden Port in der Firewallzu öffnen, die auf dem Computer aktiv ist. Diese Option ist nur verfügbar, wennauf dem Server eine Firewall installiert ist.

5 Klicken Sie auf Durchsuchen, um nach dem Verzeichnis mit dem Bootimage zusuchen.

Das Standardverzeichnis/tftpbootwird erstellt und automatisch ausgewählt.

6 Klicken Sie auf Beenden, um die Einstellungen zu übernehmen und den Serverzu starten.

Manuelles Einrichten eines TFTP-Servers1 Melden Sie sich als root an und installieren Sie die Pakete tftp und xinetd.

2 Erstellen Sie die Verzeichnisse /srv/tftpboot und /srv/tftpboot/pxelinux.cfg, sofern sie noch nicht vorhanden sind.

3 Fügen Sie wie in Abschnitt 1.3.3, „PXE-Boot“ (S. 41) beschrieben die für dasBootimage erforderlichen Dateien hinzu.

4 Ändern Sie die Konfiguration von xinetd, die sich unter /etc/xinetd.d/befindet, um sicherzustellen, dass der tftp-Server beim Booten gestartet wird:

a Erstellen Sie, sofern noch nicht vorhanden, eine Datei namens tftp indiesem Verzeichnis, indem Sie touch tftp eingeben. Führen Sieanschließend folgenden Befehl aus: chmod 755 tftp.

40 Referenz

Page 41: Suse 10.1 Linux Reference De

b Öffnen Sie die Datei tftp und fügen Sie die folgenden Zeilen hinzu:service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }

c Speichern Sie die Datei und starten Sie xinetd mit rcxinetd restartneu.

1.3.3 PXE-BootEinige technische Hintergrundinformationen sowie die vollständigen PXE-Spezifika-tionen finden Sie in der PXE-(Preboot Execution Environment-)Spezifikation (ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf).

1 Wechseln Sie in das Verzeichnis des Installations-Repositorys und kopieren Siedie Dateien linux, initrd, message und memtest in das Verzeichnis/srv/tftpboot, indem Sie folgenden Befehl eingeben:cp -a boot/loader/linux boot/loader/initrd boot/loader/message boot/loader/memtest /srv/tftpboot

2 Installieren Sie unter Verwendung von YaST das Paket syslinux direkt vonden Installations-CDs oder -DVDs.

3 Kopieren Sie die Datei /usr/share/syslinux/pxelinux.0 in dasVerzeichnis /srv/tftpboot, indem Sie folgenden Befehl eingeben:cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot

4 Wechseln Sie in das Verzeichnis des Installations-Repositorys und kopieren Siedie Datei isolinux.cfg in das Verzeichnis /srv/tftpboot/pxelinux.cfg/default, indem Sie folgenden Befehl eingeben:cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default

Installation mit entferntem Zugriff 41

Page 42: Suse 10.1 Linux Reference De

5 Bearbeiten Sie die Datei/srv/tftpboot/pxelinux.cfg/default undentfernen Sie die Zeilen, die mit gfxboot, readinfo und framebufferbeginnen.

6 Fügen Sie die folgenden Einträge in die append-Zeilen der standardmäßigenKennungen failsafe und apic ein:

insmod=e100Mit diesem Eintrag wird das Kernel-Modul für eine Intel 100 MBit/s Netz-werkkarte auf die PXE-Clients geladen. Der Eintrag ist abhängig von derClient-Hardware und muss entsprechend angepasst werden. Im Fall einerBroadcom GigaBit-Netzwerkkarte muss der Eintrag wie folgt lauten:insmod=bcm5700.

netdevice=eth0Dieser Eintrag definiert die Schnittstelle des Client-Netzwerks, die für dieNetzwerkinstallation verwendet werden muss. Dieser Eintrag ist jedoch nurerforderlich und muss entsprechend angepasst werden, wenn der Client mitmehreren Netzwerkkarten ausgestattet ist. Falls nur eine Netzwerkkarteverwendet wird, kann dieser Eintrag ausgelassen werden.

install=nfs://IP_Instserver/Pfad_Instquelle/CD1Dieser Eintrag gibt den NFS-Server und die Installationsquelle für die Client-Installation an. Ersetzen Sie IP_Instserver durch die IP-Adresse desInstallationsservers. Pfad_Instquelle muss durch den Pfad der Instal-lationsquellen ersetzt werden. HTTP-, FTP- oder SMB-Quellen werden aufähnliche Weise adressiert. Eine Ausnahme ist das Protokollpräfix, das wiefolgt lauten sollte: http, ftp oder smb.

WICHTIG

Wenn den Installationsroutinen weitere Boot-Optionen, z. B. SSH-oder VNC-Boot-Parameter, übergeben werden sollen, hängen Sie siean den Eintrag install an. Einen Überblick über die Parametersowie einige Beispiele finden Sie in Abschnitt 1.4, „Booten des Ziel-systems für die Installation“ (S. 48).

Im Folgenden finden Sie die Beispieldatei/srv/tftpboot/pxelinux.cfg/default. Passen Sie das Protokollpräfixfür die Installationsquelle gemäß der Netzwerkkonfiguration an und geben Sie

42 Referenz

Page 43: Suse 10.1 Linux Reference De

die bevorzugte Methode an, mit der die Verbindung zum Installationsprogrammhergestellt werden soll, indem Sie die Optionen vnc und vncpassword oderssh und sshpassword zum Eintrag install hinzufügen. Die durch \getrennten Zeilen müssen als fortlaufenden Zeile ohne Zeilenumbruch und ohneden \ eingegeben werden.default linux

# default label linux kernel linux append initrd=initrd ramdisk_size=65536 insmod=e100 \ install=nfs://ip_instserver/path_instsource/product

# failsafe label failsafe kernel linux append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \ insmod=e100 install=nfs://ip_instserver/path_instsource/product

# apic label apic kernel linux append initrd=initrd ramdisk_size=65536 apic insmod=e100 \ install=nfs://ip_instserver/path_instsource/product

# manual label manual kernel linux append initrd=initrd ramdisk_size=65536 manual=1

# rescue label rescue kernel linux append initrd=initrd ramdisk_size=65536 rescue=1

# memory test label memtest kernel memtest

# hard disk label harddisk kernel linux append SLX=0x202

implicit 0 display messageprompt 1 timeout 100

Installation mit entferntem Zugriff 43

Page 44: Suse 10.1 Linux Reference De

Ersetzen Sie ip_instserver und path_instsource durch die in IhrerKonfiguration verwendeten Werte.

Der folgende Abschnitt dient als Kurzreferenz für die in dieser Konfigurationverwendeten PXELINUX-Optionen. Weitere Informationen zu den verfügbarenOptionen finden Sie in der Dokumentation des Pakets syslinux, die sich imVerzeichnis /usr/share/doc/packages/syslinux/ befindet.

1.3.4 PXELINUX-KonfigurationsoptionenDie hier aufgeführten Optionen sind eine Teilmenge der für die PXELINUX-Konfigu-rationsdatei verfügbaren Optionen.

DEFAULT Kernel Optionen...Legt die standardmäßige Kernel-Befehlszeile fest. Wenn PXELINUX automatischgebootet wird, agiert es, als wären die Einträge nach DEFAULT an der Boot-Ein-gabeaufforderung eingegeben worden, außer, dass die Option für das automatischeBooten (boot) automatisch hinzugefügt wird.

Wenn keine Konfigurationsdatei vorhanden oder der DEFAULT-Eintrag in derKonfigurationsdatei nicht vorhanden ist, ist die Vorgabe der Kernel-Name „linux“ohne Optionen.

APPEND Optionen...Fügt der Kernel-Befehlszeile eine oder mehrere Optionen hinzu. Diese werdensowohl bei automatischen als auch bei manuellen Bootvorgängen hinzugefügt. DieOptionen werden an den Beginn der Kernel-Befehlszeile gesetzt und ermöglichen,dass explizit eingegebene Kernel-Optionen sie überschreiben können.

LABEL Kennung KERNEL Image APPEND Optionen...Gibt an, dass, wenn Kennung als zu bootender Kernel eingegeben wird, PXELI-NUX stattdessen Image booten soll und die angegebenen APPEND-Optionen anStelle der im globalen Abschnitt der Datei (vor dem ersten LABEL-Befehl) ange-gebenen Optionen verwendet werden sollen. Die Vorgabe für Image ist dieselbewie für Kennung und wenn keine APPEND-Optionen angegeben sind, wird stan-dardmäßig der globale Eintrag verwendet (sofern vorhanden). Es sind bis zu 128LABEL-Einträge zulässig.

Beachten Sie, dass GRUB die folgende Syntax verwendet:

44 Referenz

Page 45: Suse 10.1 Linux Reference De

title mytitle kernel my_kernel my_kernel_options initrd myinitrd

während PXELINUX diese Syntax verwendet:label mylabel kernel mykernel append myoptions

Kennungen werden wie Dateinamen umgesetzt und müssen nach der Umsetzung(sogenanntes Mangling) eindeutig sein. Die beiden Kennungen „v2.1.30“ und„v2.1.31“ wären beispielsweise unter PXELINUX nicht unterscheidbar, da beideauf denselben DOS-Dateinamen umgesetzt würden.

Der Kernel muss kein Linux-Kernel, sondern kann ein Bootsektor oder eineCOMBOOT-Datei sein.

APPEND -Es wird nichts angehängt. APPEND mit einem Bindestrich als Argument in einemLABEL-Abschnitt kann zum Überschreiben einer globalen APPEND-Option ver-wendet werden.

LOCALBOOT TypWenn Sie unter PXELINUX LOCALBOOT 0 an Stelle einer KERNEL-Optionangeben, bedeutet dies, dass diese bestimmte Kennung aufgerufen und die lokaleFestplatte an Stelle eines Kernels gebootet wird.

BeschreibungArgument

Führt einen normalen Bootvorgang aus0

Führt einen lokalen Bootvorgang mit demnoch im Arbeitsspeicher vorhandenen

4

UNDI-Treiber (Universal Network DriverInterface) aus

Führt einen lokalen Bootvorgang mit demgesamten PXE-Stack, einschließlich des

5

UNDI-Treibers aus, der sich imArbeitsspeicher befindet

Installation mit entferntem Zugriff 45

Page 46: Suse 10.1 Linux Reference De

Alle anderen Werte sind nicht definiert. Wenn Sie die Werte für die UNDI- oderPXE-Stacks nicht wissen, geben Sie 0 an.

TIMEOUT ZeitlimitGibt in Einheiten von 1/10 Sekunde an, wie lange die Boot-Eingabeaufforderungangezeigt werden soll, bevor der Bootvorgang automatisch gestartet wird. DasZeitlimit wird aufgehoben, sobald der Benutzer eine Eingabe über die Tastaturvornimmt, da angenommen wird, dass der Benutzer die Befehlseingabe abschließt.Mit einem Zeitlimit von Null wird das Zeitüberschreitungsoption deaktiviert (diesist die Vorgabe).

Der größtmögliche Wert für das Zeitlimit ist 35996 (etwas weniger als eine Stunde).

PROMPT flag_valWenn flag_val 0 ist, wird die Boot-Eingabeaufforderung nur angezeigt, wenndie Taste Umschalttaste oder Alt gedrückt wird oder die Feststelltaste oder dieTaste Rollen gesetzt ist (dies ist die Vorgabe). Wenn flag_val 1 ist, wird dieBoot-Eingabeaufforderung immer angezeigt.F2 Dateiname F1 Dateiname ..usw... F9 Dateiname F10Dateiname

Zeigt die angegebene Datei auf dem Bildschirm an, wenn an der Boot-Eingabeauf-forderung eine Funktionstaste gedrückt wird. Mithilfe dieser Option kann auch diePreboot-Online-Hilfe implementiert werden (für die Kernel-Befehlszeilenoptionen.)Aus Gründen der Kompabilität mit früheren Versionen kann F10 auch als F0verwendet werden. Beachten Sie, dass derzeit keine Möglichkeit besteht, Datein-amen an F11 und F12 zu binden.

1.3.5 Vorbereiten des Zielsystems fürPXE-Boot

Bereiten Sie das System-BIOS für PXE-Boot vor, indem Sie die PXE-Option in dieBIOS-Boot-Reihenfolge aufnehmen.

WARNUNG

Die PXE-Option darf im BIOS nicht vor der Boot-Option für die Festplatte stehen.Andernfalls würde dieses System versuchen, sich selbst bei jedem Booten neuzu installieren.

46 Referenz

Page 47: Suse 10.1 Linux Reference De

1.3.6 Vorbereiten des Zielsystems fürWake-on-LAN

Wake-on-LAN (WOL) erfordert, dass die entsprechende BIOS-Option vor der Installa-tion aktiviert wird. Außerdem müssen Sie sich die MAC-Adresse des Zielsystemsnotieren. Diese Daten sind für das Initiieren von Wake-on-LAN erforderlich.

1.3.7 Wake-on-LANMit Wake-on-LAN kann ein Computer über ein spezielles Netzwerkpaket, das dieMAC-Adresse des Computers enthält, gestartet werden. Da jeder Computer einen ein-deutigen MAC-Bezeichner hat, ist es nicht möglich, dass versehentlich ein falscherComputer gestartet wird.

WICHTIG

Wenn sich der Steuercomputer nicht im selben Netzwerksegment wie das zustartende Installationsziel befindet, konfigurieren Sie die WOL-requests entwederso, dass sie als Multicasts verteilt werden, oder steuern Sie einen Computer indiesem Netzwerksegment per entferntem Zugriff so, dass er als Absender dieserAnforderungen agiert.

1.3.8 Manuelles Wake-on-LAN1 Melden Sie sich als root an.

2 Starten Sie YaST → Software Management und installieren Sie das Paketnetdiag.

3 Öffnen Sie ein Terminal und geben Sie als root den folgenden Befehl ein, umdas Ziel zu starten:ether-wakeMAC_Ziel

Ersetzen Sie MAC_Ziel durch die MAC-Adresse des Ziels.

Installation mit entferntem Zugriff 47

Page 48: Suse 10.1 Linux Reference De

1.4 Booten des Zielsystems für dieInstallation

Abgesehen von der in Abschnitt 1.3.7, „Wake-on-LAN“ (S. 47) und Abschnitt 1.3.3,„PXE-Boot“ (S. 41) beschriebenen Vorgehensweise gibt es im Wesentlichen zweiunterschiedliche Möglichkeiten, den Bootvorgang für die Installation anzupassen. Siekönnen entweder die standardmäßigen Boot-Optionen und F-Tasten oder die Eingabe-aufforderung für die Boot-Optionen im Bootbildschirm für die Installation verwenden,um die Boot-Optionen anzugeben, die der Installations-Kernel für die entsprechendeHardware benötigt.

1.4.1 Standardmäßige Boot-OptionenDie Boot-Optionen wurden bereits ausführlich in Kapitel Installation mit YaST (↑Start)beschrieben.

In der Regel wird durch die Auswahl von Installation der Bootvorgang für die Installa-tion gestartet. Verwenden Sie bei Problemen Installation - ACPI deaktiviert bzw.Installation - Sichere Einstellungen.

Weitere Informationen zu Fehlerbehebung beim Installationsvorgang finden Sie inAbschnitt „Probleme bei der Installation“ (Kapitel 9, Häufige Probleme und derenLösung, ↑Start).

1.4.2 F-TastenDie Menüleiste unten im Bildschirm enthält einige erweiterte Funktionen, die bei einigenSetups erforderlich sind. Mithilfe der F-Tasten können Sie zusätzliche Optionen angeben,die an die Installationsroutinen weitergegeben werden, ohne dass Sie die detaillierteSyntax dieser Parameter kennen müssen, was der Fall wäre, wenn Sie sie als Boot-Optionen eingeben würden (siehe Abschnitt 1.4.3, „Benutzerdefinierte Boot-Optionen“(S. 50)).

Die verfügbaren Optionen finden Sie in der folgenden Tabelle.

48 Referenz

Page 49: Suse 10.1 Linux Reference De

Tabelle 1.1 F-Tasten bei der Installation

StandardwertVerfügbare OptionenZweckTaste

KeineKeineBietet HilfeF1

EnglischAlle unterstützten Spra-chen

Wählt die Installationss-prache

F2

Ändert die Bildschirmauf-lösung für die Installation

F3 •• Expertenmodus Die Standard-werte sind

• VESA abhängig vonder Grafikhard-ware• Auflösung 1

• Auflösung 2

• ...

CD-ROM/DVDWählt die Installations-quelle

F4 • CD-ROM/DVD

• SLP

• FTP

• HTTP

• NFS

• SMB

• Festplatte

KeineTreiberFührt die Treiberaktuali-sierung von Diskette aus

F5

Installation mit entferntem Zugriff 49

Page 50: Suse 10.1 Linux Reference De

1.4.3 Benutzerdefinierte Boot-OptionenMithilfe geeigneter Boot-Optionen können Sie den Installationsvorgang vereinfachen.Viele Parameter können mit den linuxrc-Routinen auch zu einem späteren Zeitpunktkonfiguriert werden, das Verwenden der Boot-Optionen ist jedoch viel einfacher. Ineinigen automatisierten Setups können die Boot-Optionen über die Dateiinitrd odereine info-Datei bereit gestellt werden.

In der folgenden Tabelle sind alle in diesem Kapitel erwähnten Installationsszenarienmit den erforderlichen Parametern für das Booten sowie die entsprechenden Boot-Optionen aufgeführt. Um eine Boot-Zeichenkette zu erhalten, die an die Installations-routinen übergeben wird, hängen Sie einfach alle Optionen in der Reihenfolge an, inder sie in dieser Tabelle angezeigt werden. Beispiel (alle in einer Zeile):install=... netdevice=... hostip=...netmask=... vnc=... vncpassword=...

Ersetzen Sie alle Werte (...) in dieser Zeichenkette durch die für Ihre Konfigurationgeeigneten Werte.

Tabelle 1.2 In diesem Kapitel verwendete Installationsszenarien (Boot-Szenarien)

Boot-OptionenFür den Bootvorgangerforderliche Parame-ter

Installationsszenario

Nicht erforderlichKeine: System bootetautomatisch

Kapitel Installation mitYaST (↑Start)

Abschnitt 1.1.1, „Einfa-che Installation mit ent-

• install=(nfs,http,ftp,smb)://Pfad_zu_Instmedium

• Adresse des Instal-lationsservers

ferntem Zugriff überVNC - Statische Netz-

• Netzwerkgerät• IP-Adresse • netdevice=some

_netdevice (nur erfor-werkkonfiguration“(S. 18)

• Netzmaske• Gateway derlich, wenn mehrere

Netzwerkgeräte verfügbarsind)

• VNC-Aktivierung• VNC-Passwort

• hostip=some_ip• netmask=some_netmask

• gateway=ip_gateway

50 Referenz

Page 51: Suse 10.1 Linux Reference De

Boot-OptionenFür den Bootvorgangerforderliche Parame-ter

Installationsszenario

• vnc=1• vncpassword=some_password

Abschnitt 1.1.2, „Einfa-che Installation mit ent-

• install=(nfs,http,ftp,smb)://Pfad_zu_Instmedium

• Adresse des Instal-lationsservers

ferntem Zugriff überVNC - Dynamische

• VNC-Aktivierung• VNC-Passwort • vnc=1

Netzwerkkonfigurationüber DHCP“ (S. 19)

• vncpassword=some_password

Nicht zutreffend; Prozess wirdüber PXE und DHCP verwaltet

Abschnitt 1.1.3, „Installa-tion auf entfernten Syste-

• Adresse des Instal-lationsservers

men über VNC - PXE- • Adresse des TFTP-ServersBoot und Wake-on-

LAN“ (S. 21) • VNC-Aktivierung• VNC-Passwort

Abschnitt 1.1.4, „Einfa-che Installation mit ent-

• install=(nfs,http,ftp,smb)://Pfad_zu_Instmedium

• Adresse des Instal-lationsservers

ferntem Zugriff überSSH - Statische Netz-

• Netzwerkgerät• IP-Adresse • netdevice=some

_netdevice (nur erfor-werkkonfiguration“(S. 23)

• Netzmaske• Gateway derlich, wenn mehrere

Netzwerkgeräte verfügbarsind)

• SSH-Aktivierung• SSH-Passwort

• hostip=some_ip• netmask=some_netmask

• gateway=ip_gateway• usessh=1

Installation mit entferntem Zugriff 51

Page 52: Suse 10.1 Linux Reference De

Boot-OptionenFür den Bootvorgangerforderliche Parame-ter

Installationsszenario

• sshpassword=some_password

Abschnitt 1.1.5, „Einfa-che Installation auf ent-

• install=(nfs,http,ftp,smb)://Pfad_zu_Instmedium

• Adresse des Instal-lationsservers

fernten Systemen überSSH - Dynamische Netz-

• SSH-Aktivierung• SSH-Passwort • usessh=1

werkkonfiguration überDHCP“ (S. 24)

• sshpassword=some_password

Nicht zutreffend; Prozess wirdüber PXE und DHCP verwaltet

Abschnitt 1.1.6, „Installa-tion auf entfernten Syste-

• Adresse des Instal-lationsservers

men über SSH - PXE- • Adresse des TFTP-ServersBoot und Wake-on-

LAN“ (S. 26) • SSH-Aktivierung• SSH-Passwort

TIPP

Weitere Informationen zu den linuxrc-Boot-Optionen für das Booten einesLinux-Systems finden Sie in /usr/share/doc/packages/linuxrc/linuxrc.html.

52 Referenz

Page 53: Suse 10.1 Linux Reference De

1.5 Überwachen desInstallationsvorgangs

Es gibt mehrere Möglichkeiten der entfernten Überwachung des Installationsvorgangs.Wenn beim Booten für die Installation die richtigen Boot-Optionen angegeben wurden,kann die Installation und Systemkonfiguration mit VNC oder SSH von einer entferntenArbeitsstation aus überwacht werden.

1.5.1 VNC-InstallationMithilfe einer beliebigen VNC-Viewer-Software können Sie die Installation von SUSELinux von praktisch jedem Betriebssystem aus entfernt überwachen. In diesem Abschnittwird das Setup mithilfe einer VNC-Viewer-Anwendung oder eines Webbrowsersbeschrieben.

Vorbereiten der VNC-InstallationUm das Installationsziel für eine VNC-Installation vorzubereiten, müssen Sie lediglichdie entsprechenden Boot-Optionen beim anfänglichen Bootvorgang für die Installationangeben (siehe Abschnitt 1.4.3, „Benutzerdefinierte Boot-Optionen“ (S. 50)). DasZielsystem bootet in eine textbasierte Umgebung und wartet darauf, dass ein VNC-Client eine Verbindung zum Installationsprogramm herstellt.

Das Installationsprogramm gibt die IP-Adresse bekannt und zeigt die für die Verbindungzum Installationsprogramm erforderliche Nummer an. Wenn Sie physischen Zugriffauf das Zielsystem haben, werden diese Informationen sofort nach dem Booten desSystems für die Installation zur Verfügung gestellt. Geben Sie diese Daten ein, wennSie von der VNC-Client-Software dazu aufgefordert werden, und geben Sie Ihr Passwortein.

Da sich das Installationsziel über OpenSLP selbst bekannt gibt, können Sie dieAdressinformationen des Installationsziels über einen SLP-Browser abrufen, ohne dassSie physischen Zugriff auf die Installation selbst haben müssen, vorausgesetzt, OpenSLPwird von der Netzwerkkonfiguration und von allen Computern unterstützt:

1 Starten Sie KDE und den Webbrowser Konqueror.

Installation mit entferntem Zugriff 53

Page 54: Suse 10.1 Linux Reference De

2 Geben Sie service://yast.installation.suse in die Adressleisteein.

Daraufhin wird das Zielsystem als Symbol im Konqueror-Fenster angezeigt.Durch Klicken auf dieses Symbol wird der KDE-VNC-Viewer geöffnet, in demSie die Installation ausführen können. Alternativ können Sie die VNC-Viewer-Software auch mit der zur Verfügung gestellten IP-Adresse ausführen und amEnde der IP-Adresse für die Anzeige, in der die Installation ausgeführt wird, :1hinzufügen.

Herstellen der Verbindung mit demInstallationsprogrammIm Wesentlichen gibt es zwei Möglichkeiten, eine Verbindung zu einem VNC-Server(dem Installationsziel in diesem Fall) herzustellen. Sie können entweder eine unabhän-gige VNC-Viewer-Anwendung unter einem beliebigen Betriebssystem starten oder dieVerbindung über einen Java-fähigen Webbrowser herstellen.

Mit VNC können Sie die Installation eines Linux-Systems von jedem Betriebssystem,einschließlich anderer Linux-, Windows- oder Mac OS-Betriebssysteme, aus steuern.

Stellen Sie auf einem Linux-Computer sicher, dass das Paket tightvnc installiertist. Installieren Sie auf einem Windows-Computer den Windows-Port dieser Anwendung,der über die Homepage von TightVNC (http://www.tightvnc.com/download.html) erhältlich ist.

Gehen Sie wie folgt vor, um eine Verbindung zu dem auf dem Zielcomputer ausge-führten Installationsprogramm herzustellen:

1 Starten Sie den VNC-Viewer.

2 Geben Sie die IP-Adresse und die Display-Nummer des Installationsziels wievom SLP-Browser oder dem Installationsprogramm selbst zur Verfügung gestelltein:IP-Adresse:Display-Nummer

Auf dem Desktop wird ein Fenster geöffnet, in dem die YaST-Bildschirme wiebei einer normalen lokalen Installation angezeigt werden.

54 Referenz

Page 55: Suse 10.1 Linux Reference De

Wenn Sie die Verbindung zum Installationsprogramm mithilfe eines Webbrowsersherstellen, sind Sie von der VNC-Software bzw. dem zu Grunde liegenden Betriebssys-tem vollkommen unabhängig. Sie können die Installation des Linux-Systems in einembeliebigen Browser (Firefox, Internet Explorer, Konqueror, Opera usw.) ausführen,solange dieser Java unterstützt.

Gehen Sie wie folgt vor, um eine VNC-Installation auszuführen:

1 Starten Sie Ihren bevorzugten Webbrowser.

2 Geben Sie in der Adressleiste Folgendes ein:http://ip_addresse_des_ziels:5801

3 Geben Sie Ihr VNC-Passwort ein, wenn Sie dazu aufgefordert werden. Die YaST-Bildschirme werden im Browserfenster wie bei einer normalen lokalen Installa-tion angezeigt.

1.5.2 SSH-InstallationMithilfe von SSH können Sie die Installation des Linux-Computers unter Verwendungeiner beliebigen SSH-Client-Software von einem entfernten Standort aus überwachen.

Vorbereiten der SSH-InstallationZusätzlich zum Installieren der entsprechenden Softwarepakete (OpenSSH für Linuxund PuTTY für Windows) müssen Sie nur die entsprechenden Boot-Optionen übergeben,um SSH für die Installation zu aktivieren. Weitere Einzelheiten finden Sie inAbschnitt 1.4.3, „Benutzerdefinierte Boot-Optionen“ (S. 50). OpenSSH wird auf allenSUSE Linux-basierten Betriebssystemen standardmäßig installiert.

Herstellen der Verbindung mit demInstallationsprogramm

1 Rufen Sie die IP-Adresse des Installationsziels ab.

Wenn Sie physischen Zugriff auf den Zielcomputer haben, verwenden Sie einfachdie IP-Adresse, die von der Installationsroutine nach dem anfänglichen Bootvor-

Installation mit entferntem Zugriff 55

Page 56: Suse 10.1 Linux Reference De

gang auf der Konsole angezeigt wird. Verwenden Sie andernfalls die IP-Adresse,die diesem Host in der DHCP-Serverkonfiguration zugewiesen wurde.

2 Geben Sie an der Befehlszeile den folgenden Befehl ein:ssh -X root@IP-Adresse_Ziel

Ersetzen Sie IP-Adresse_Ziel durch die IP-Adresse des Installationsziels.

3 Wenn Sie zur Eingabe eines Benutzernamens aufgefordert werden, geben Sieroot ein.

4 Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie dasPasswort ein, das mit der SSH-Boot-Option festgelegt wurde.

Wenn Sie sich erfolgreich authentifiziert haben, wird eine Befehlszeilenauffor-derung für das Installationsziel angezeigt.

5 Geben Sie yast ein, um das Installationsprogramm zu starten.

Es wird ein Fenster geöffnet, in dem die üblichen YaST-Bildschirme wie inKapitel Installation mit YaST (↑Start) beschrieben angezeigt werden.

56 Referenz

Page 57: Suse 10.1 Linux Reference De

2FortgeschritteneFestplattenkonfigurationKomplexe Systemkonfigurationen erfordern besondere Festplattenkonfigurationen. Umeine persistente Gerätebenennung für SCSI-Geräte zu ermöglichen, verwenden Sie einbestimmtes Startskript oder udev. Das Logical Volume Management (LVM) ist einSchema für die Festplattenpartitionierung, das viel flexibler als die physische Partitio-nierung in Standardkonfigurationen ist. Mithilfe seiner Snapshot-Funktionalität könnenSie problemlos Daten-Backups erstellen. Ein RAID (Redundant Array of IndependentDisks) bietet verbesserte Datenintegrität, Leistung und Fehlertoleranz.

2.1 LVM-KonfigurationDieser Abschnitt erläutert kurz die Prinzipien von LVM und seinen grundlegendenFunktionen, mit denen es in vielen Situationen nützlich ist. In Abschnitt 2.1.2, „LVM-Konfiguration mit YaST“ (S. 60) erfahren Sie, wie LVM mit YaST eingerichtet wird.

WARNUNG

Der Einsatz von LVM kann mit einem höheren Risiko (etwa des Datenverlusts)verbunden sein. Risiken umfassen auch Anwendungsausfälle, Stromausfälle undfehlerhafte Befehle. Speichern Sie Ihre Daten, bevor Sie LVM implementierenoder Volumes neu konfigurieren. Arbeiten Sie nie ohne Backup.

Fortgeschrittene Festplattenkonfiguration 57

Page 58: Suse 10.1 Linux Reference De

2.1.1 Der Logical Volume ManagerDer Logical Volume Manager (LVM) ermöglicht eine flexible Verteilung von Festplat-tenspeicher über mehrere Dateisysteme. Er wurde entwickelt, da gelegentlich die Seg-mentierung des Festplattenspeichers geändert werden muss, nachdem die erste Partitio-nierung bei der Installation abgeschlossen wurde. Da es schwierig ist, Partitionen ineinem laufenden System zu ändern, bietet LVM einen virtuellen Pool (Volume-Gruppe,kurz: VG) an Speicherplatz, aus dem bei Bedarf logische Volumes (LVs) erzeugt werdenkönnen. Das Betriebssystem greift dann auf diese logischen Volumes statt auf physischePartitionen zu. Volume-Gruppen können sich über mehr als eine Festplatte erstrecken,wobei mehrere Festplatten oder Teile davon eine einzige VG bilden können. Auf dieseWeise bietet LVM eine Art Abstraktion vom physischen Festplattenplatz, der eine vieleinfachere und sicherere Möglichkeit zur Änderung der Aufteilung ermöglicht als diephysische Umpartitionierung. Hintergrundinformationen zum physischen Partitionierenerhalten Sie in „Partitionstypen“ (Kapitel 1, Installation mit YaST, ↑Start) undAbschnitt „Partitionierung“ (Kapitel 2, Systemkonfiguration mit YaST, ↑Start).

Abbildung 2.1 Physische Partitionierung versus LVM

TEIL TEIL TEIL TEIL TEIL

DATENTRÄGER

TEIL TEIL TEIL

MP MP MP MP MP MP MP

DATENTRÄGER 1 DATENTRÄGER 2

VG 1 VG 2

LV 1 LV 2 LV 3 LV 4

Abbildung 2.1, „Physische Partitionierung versus LVM“ (S. 58) stellt die physischePartitionierung (links) der LVM-Segmentierung (rechts) gegenüber. Auf der linkenSeite wurde eine einzelne Festplatte in drei physische Partitionen (PART) aufgeteilt,von denen jede einen Einhängepunkt (MP) hat, auf den das Betriebssystem zugreifenkann. Auf der rechten Seite wurden zwei Festplatten in zwei bzw. drei physische Parti-tionen aufgeteilt. Es wurden zwei LVM-Volume-Gruppen (VG 1 und VG 2) angelegt.VG 1 enthält zwei Partitionen von DISK 1 und eine von DISK 2. VG 2 enthält dierestlichen zwei Partitionen von DISK 2. In LVM werden die physischen Festplattenpar-titionen, die in einer Volume-Gruppe zusammengefasst sind, als physische Volumes

58 Referenz

Page 59: Suse 10.1 Linux Reference De

(PV) bezeichnet. In den Volume-Gruppen wurden vier logische Volumes (LV 1 bis LV4) angelegt, die vom Betriebssystem über die zugewiesenen Einhängepunkte benutztwerden können. Die Grenzen zwischen verschiedenen logischen Volumes müssen sichnicht mit den Partitionsgrenzen decken. Dies wird in diesem Beispiel durch die Grenzezwischen LV 1 und LV 2 veranschaulicht.

LVM-Funktionen:

• Mehrere Festplatten/Partitionen können zu einem großen logischen Volumezusammengefügt werden.

• Neigt sich bei einem LV (z. B. /usr) der freie Platz dem Ende zu, können Siedieses bei geeigneter Konfiguration vergrößern.

• Mit dem LVM können Sie sogar im laufenden System Festplatten oder LVs hinzu-fügen. Voraussetzung ist allerdings hotswap-fähige Hardware, die für solcheAktionen geeignet ist.

• Es ist möglich, einen „Striping-Modus“ zu aktivieren, der den Datenstrom eineslogischen Volumes über mehrere physische Volumes verteilt. Wenn sich diesephysischen Volumes auf verschiedenen Festplatten befinden, kann dies die Lese-und Schreibgeschwindigkeit wie bei RAID 0 verbessern.

• Die Snapshot-Funktion ermöglicht vor allem bei Servern konsistente Backups imlaufenden System.

Aufgrund dieser Eigenschaften lohnt sich der Einsatz von LVM bereits bei umfangreichgenutzten Home-PCs oder kleinen Servern. Wenn Sie einen wachsenden Datenbestandhaben wie bei Datenbanken, Musikarchiven oder Benutzerverzeichnissen, bietet sichder Logical Volume Manager an. Dann ist es möglich, Dateisysteme zu haben, diegrößer sind als eine physische Festplatte. Ein weiterer Vorteil des LVM ist die Möglich-keit, bis zu 256 LVs anlegen zu können. Beachten Sie jedoch, dass sich die Arbeit mitdem LVM sehr von der mit konventionellen Partitionen unterscheidet. Anleitungenund weiterführende Informationen zur Konfiguration des LVM finden Sie im offiziellenLVM-Howto unter http://tldp.org/HOWTO/LVM-HOWTO/.

Ab Kernel Version 2.6 steht Ihnen LVM in der Version 2 zur Verfügung. Er istabwärtskompatibel zum bisherigen LVM und kann alte Volume-Gruppen weiter ver-walten. Wenn Sie neue Volume-Gruppen anlegen, müssen Sie entscheiden, ob Sie dasneue Format oder die abwärtskompatible Version verwenden möchten. LVM 2 benötigtkeine Kernel-Patches mehr. Er verwendet den Device-Mapper, der in Kernel 2.6 inte-

Fortgeschrittene Festplattenkonfiguration 59

Page 60: Suse 10.1 Linux Reference De

griert ist. Beginnend mit diesem Kernel kann LVM nur noch in der Version 2 verwendetwerden. In diesem Kapitel ist mit LVM daher immer LVM in der Version 2 gemeint.

2.1.2 LVM-Konfiguration mit YaSTZur LVM-Konfiguration mit YaST gelangen Sie über den YaST-Expertenmodus desPartitionierungsmoduls (siehe Abschnitt „Partitionierung“ (Kapitel 2, Systemkonfigura-tion mit YaST, ↑Start)). Mit diesem Partitionierungswerkzeug können Sie vorhandenePartitionen bearbeiten und löschen sowie neue Partitionen erstellen, die mit LVM ver-wendet werden sollen. Sie erstellen eine LVM-Partition, indem Sie zunächst auf Anlegen→ Nicht formatieren klicken und anschließend 0x8E Linux LVM als Partitions-IDwählen. Nachdem Sie alle mit LVM zu verwendenden Partitionen erstellt haben, klickenSie auf LVM, um mit der Konfiguration von LVM zu beginnen.

Erstellen von Volume-GruppenWenn auf Ihrem System noch keine Volume-Gruppe existiert, werden Sie aufgefordert,eine anzulegen (siehe Abbildung 2.2, „Anlegen einer Volume-Gruppe“ (S. 61)).Zusätzliche Gruppen können mitGruppe hinzufügen hinzugefügt werden. Gewöhnlichist jedoch eine Volume-Gruppe ausreichend. Als Name für die Volume-Gruppe, aufder sich die Dateien des SUSE LINUX Systems befinden, wird system vorgeschlagen.Die Physical Extent Size bestimmt die maximale Größe eines physischen Blocks in derVolume-Gruppe. Der gesamte Plattenplatz in einer Volume-Gruppe wird in Blöckendieser Größe verwaltet. Dieser Wert wird normalerweise auf 4 MB festgelegt. Dieslässt eine Maximalgröße für ein physisches und logisches Volume von 256 GB zu. Siesollten die Physical Extent Size also nur dann erhöhen (z. B. auf 8, 16 oder 32 GB),wenn Sie größere logische Volumes als 256 GB benötigen.

60 Referenz

Page 61: Suse 10.1 Linux Reference De

Abbildung 2.2 Anlegen einer Volume-Gruppe

Konfigurieren von physischen VolumesSobald eine Volume-Gruppe angelegt wurde, listet das folgende Dialogfeld alle Parti-tionen auf, die entweder den Typ „Linux LVM“ oder „Linux native“ haben. Swap- oderDOS-Partitionen werden nicht angezeigt. Wenn eine Partition bereits einer Volume-Gruppe zugeordnet ist, wird der Name der Volume-Gruppe in der Liste angezeigt. Nichtzugewiesene Partitionen sind mit „--“ gekennzeichnet.

Falls es mehrere Volume-Gruppen gibt, stellen Sie die aktuelle Volume-Gruppe imAuswahlfeld links oben ein. Mit den Schaltflächen rechts oben ist es möglich, zusätzlicheVolume-Gruppen anzulegen und bestehende Volume-Gruppen zu löschen. Es könnenallerdings nur solche Volume-Gruppen gelöscht werden, denen keine Partitionen mehrzugeordnet sind. Partitionen, die einer Volume-Gruppe zugeordnet sind, werden auchphysische Volumes (PV) genannt.

Fortgeschrittene Festplattenkonfiguration 61

Page 62: Suse 10.1 Linux Reference De

Abbildung 2.3 Setup für physische Volumes

Um der ausgewählten Volume-Gruppe eine zuvor nicht zugewiesene Partition zuzuwei-sen, klicken Sie zuerst auf die Partition und anschließend auf Volume hinzufügen. DerName der Volume-Gruppe wird dann bei der ausgewählten Partition eingetragen. Siesollten alle Partitionen, die Sie für LVM vorgesehen haben, einer Volume-Gruppezuordnen. Anderenfalls bleibt der Speicherplatz in den Partitionen unbenutzt. BevorSie das Dialogfeld schließen können, muss jeder Volume-Gruppe mindestens ein phy-sisches Volume zugeordnet sein. Nachdem Sie alle physischen Volumes zugeordnethaben, klicken Sie aufWeiter, um zur Konfiguration der logischen Volumes zu gelangen.

Konfigurieren von logischen VolumesNachdem die Volume-Gruppe mit physischen Volumes gefüllt ist, bestimmen Sie imnächsten Dialogfeld die logischen Volumes, die das Betriebssystem benutzen soll.Wählen Sie im Auswahlfeld oben links die aktuelle Volume-Gruppe. Der verfügbarePlatz in der aktuellen Volume-Gruppe wird daneben angezeigt. Die Liste darunter enthältalle logischen Volumes in der Volume-Gruppe. Alle normalen Linux-Partitionen, denenein Einhängepunkt zugewiesen wurde, alle Swap-Partitionen und alle existierendenlogischen Volumes werden hier aufgeführt. Sie können nach Bedarf logische Volumesmithilfe der entsprechenden Schaltflächen Hinzufügen, Bearbeiten und Entfernen, bis

62 Referenz

Page 63: Suse 10.1 Linux Reference De

der Platz in der Volume-Gruppe verbraucht ist. Weisen Sie jeder Volume-Gruppemindestens ein logisches Volume zu.

Abbildung 2.4 Verwaltung der logischen Volumes

Um ein neues logisches Volume anzulegen, klicken Sie auf Hinzufügen und füllen dasanschließende Popup-Fenster aus. Wie bei der Partitionierung kann die Größe, dasDateisystem und der Einhängepunkt eingegeben werden. Normalerweise wird in einemlogischen Volume ein Dateisystem wie reiserfs oder ext2 erstellt und ein Einhängepunktwird festgelegt. Die auf diesem logischen Volume gespeicherten Dateien sind dann iminstallierten System an diesem Einhängepunkt zu finden. Es ist auch möglich, denDatenfluss im logischen Volume über verschiedene physische Volumes zu verteilen(Striping). Wenn sich diese physischen Volumes auf verschiedenen Festplatten befinden,verbessert dies in der Regel die Lese- und Schreibgeschwindigkeit (wie bei RAID 0).Ein Striping-LV mit n Stripes kann jedoch nur richtig angelegt werden, wenn der vondem LV benötigte Festplattenplatz gleichmäßig über n physische Volumes verteiltwerden kann. Sind beispielsweise nur zwei physische Volumes verfügbar, ist ein logi-sches Volume mit drei Stripes nicht möglich.

Fortgeschrittene Festplattenkonfiguration 63

Page 64: Suse 10.1 Linux Reference De

WARNUNG: Striping

YaST hat zurzeit keine Möglichkeit, die Richtigkeit Ihrer Angaben zum Stripingzu überprüfen. Fehler an dieser Stelle können erst festgestellt werden, wennLVM auf der Festplatte in Betrieb genommen wird.

Abbildung 2.5 Erstellen logischer Volumes

Falls Sie auf Ihrem System LVM bereits konfiguriert haben, können Sie jetzt die vor-handenen logischen Volumes eingeben. Bevor Sie fortfahren, weisen Sie diesen logi-schen Volumes passende Einhängepunkte zu. Klicken Sie aufWeiter, um in den YaST-Expertenmodus für Partitionierung zu gelangen und Ihre Arbeit abzuschließen.

Direkte Verwaltung von LVMFalls Sie LVM bereits konfiguriert haben und lediglich etwas ändern möchten, gibt eseine alternative Methode. Wählen Sie im YaST-Kontrollzentrum System → LVM. ImWesentlichen erlaubt dieses Dialogfeld dieselben Aktionen wie oben beschrieben, mitAusnahme der physischen Partitionierung. Es zeigt die vorhandenen physischen Volumesund logischen Volumes in zwei Listen an. Sie können Ihr LVM-System mit den obenbeschriebenen Methoden verwalten.

64 Referenz

Page 65: Suse 10.1 Linux Reference De

2.2 Soft-RAID-KonfigurationDer Sinn eines RAID (Redundant Array of Independent Disks) ist es, mehrere Festplat-tenpartitionen in einer großen virtuellen Festplatte zusammenzufassen, um die Leistungund/oder die Datensicherheit zu optimieren. Die meisten RAID-Controller verwendendas SCSI-Protokoll, da es im Vergleich zum IDE-Protokoll eine größere Anzahl anFestplatten effektiver ansteuern kann und besser für eine parallele Verarbeitung derBefehle geeignet ist. Es gibt einige RAID-Controller, die IDE- oder SATA-Festplattenunterstützen. Soft RAID bietet die Vorteile von RAID-Systemen ohne die zusätzlichenKosten für hardwareseitige RAID-Controller. Dies geht allerdings zu Lasten von Pro-zessorzeit und Arbeitsspeicher, weshalb Soft RAID für Hochleistungssysteme nichtwirklich geeignet ist.

2.2.1 RAID-LevelSUSE Linux bietet Ihnen die Möglichkeit, mithilfe von YaST mehrere Festplatten zueinem Soft-RAID-System zu vereinen – eine sehr günstige Alternative zu einemHardware-RAID. In RAID-Systemen gibt es mehrere Strategien für das Kombinierenmehrerer Festplatten in einem RAID-System. Jede diese Strategien weist dabei andereZiele, Vorteile und Merkmale auf. Diese Variationen werden im Allgemeinen als RAID-Level bezeichnet.

Es gibt folgende gängige RAID-Level:

RAID 0Dieser Level verbessert die Leistung des Datenzugriffs, indem er die einzelnenDateiblöcke über mehrere Festplattenlaufwerke verteilt. Im Grunde ist dies garkein RAID, da es keine Datensicherheit gibt, doch die Bezeichnung RAID 0 hatsich für diese Art von System eingebürgert. Bei RAID 0 werden mindestens zweiFestplatten zusammengefasst. Die Leistung ist zwar sehr gut, aber wenn auch nureine der Festplatten ausfällt, ist das RAID-System zerstört und Ihre Daten sindverloren.

RAID 1Dieser Level bietet eine ausreichende Sicherheit für die Daten, weil diese 1:1 aufeine andere Festplatte kopiert werden. Dies wird als Festplattenspiegelungbezeichnet. Ist eine Festplatte zerstört, steht eine Kopie des Inhalts auf einer anderenzur Verfügung. Solange noch eine Festplatte intakt ist, können alle anderen fehler-

Fortgeschrittene Festplattenkonfiguration 65

Page 66: Suse 10.1 Linux Reference De

haft sein, ohne dass Daten verloren gehen. Wird der Schaden jedoch nicht festge-stellt, kann es passieren, dass die beschädigten Daten auf die intakte Festplattegespiegelt werden. Erst dadurch geht die Integrität der Daten wirklich verloren.Die Schreibleistung leidet durch den Kopiervorgang im Vergleich zu einer normalenphysischen Festplatte ein wenig (10 bis 20 % langsamer), dafür ist der Lesezugriffdeutlich schneller, weil die Daten doppelt vorhanden sind und somit parallel ausge-lesen werden können. Im Allgemeinen kann gesagt werden, dass RAID 1 fast einedoppelt so schnelle Transaktionsrate und nahezu dieselbe Schreibgeschwindigkeitwie einzelne Festplatten bieten.

RAID 2 und RAID 3Dies sind keine typischen RAID-Implementierungen. Level 2 verteilt die Datenauf Bit- und nicht auf Blockebene. Level 3 bietet Byte-basiertes Verteilen mit einerdedizierten Paritätsfestplatte und kann nicht gleichzeitig mehrere Anforderungenverarbeiten. Diese beiden Level werden nur selten verwendet.

RAID 4Level 4 verteilt die Daten auf Blockebene wie bei Level 0, wobei diese Vorgehens-weise mit einer dedizierten Paritätsfestplatte kombiniert wird. Die Paritätsdatenwerden im Fall eines Festplattenfehlers zum Erstellen einer Ersatzfestplatte verwen-det. Die Paritätsfestplatte kann beim Schreibzugriff jedoch Engpässe verursachen.Dennoch wird Level 4 gelegentlich eingesetzt.

RAID 5RAID 5 ist ein optimierter Kompromiss aus Level 0 und Level 1, was Leistungund Redundanz betrifft. Der nutzbare Festplattenplatz entspricht der Anzahl dereingesetzten Festplatten minus einer. Die Daten werden wie bei RAID 0 über dieFestplatten verteilt. Für die Sicherheit sorgen die Paritätsblöcke, die bei RAID 5auf einer der Partitionen angelegt werden. Diese werden mit XOR miteinanderverknüpft, sodass sich beim Ausfall einer Partition durch den dazugehörigen Pari-tätsblock der Inhalt rekonstruieren lässt. Bei RAID 5 ist zu beachten, dass nichtmehrere Festplatten gleichzeitig ausfallen dürfen. Wenn eine Festplatte ausfällt,muss sie schnellstmöglich ausgetauscht werden, da sonst Datenverlust droht.

Weitere RAID-LevelEs wurden noch weitere RAID-Level entwickelt (RAIDn, RAID 10, RAID 0+1,RAID 30, RAID 50 usw.), wobei einige von diesen proprietäre Implementierungenverschiedener Hardwarehersteller sind. Diese Level sind nicht sehr weit verbreitetund werden aus diesem Grund hier nicht näher beschrieben.

66 Referenz

Page 67: Suse 10.1 Linux Reference De

2.2.2 Soft-RAID-Konfiguration mit YaSTZur Soft-RAID-Konfiguration gelangen Sie über den YaST-Expertenmodus des Parti-tionierungsmoduls, der in Abschnitt „Partitionierung“ (Kapitel 2, Systemkonfigurationmit YaST, ↑Start) beschrieben ist. Mit diesem Partitionierungswerkzeug können Sievorhandene Partitionen bearbeiten und löschen sowie neue Partitionen erstellen, diemit Soft-RAID verwendet werden sollen. Sie erstellen die RAID-Partitionen, indemSie zunächst auf Anlegen → Nicht formatieren klicken und anschließend 0xFD LinuxRAID als Partitions-ID wählen. Für RAID 0 und RAID 1 sind mindestens zwei Partitio-nen erforderlich, für RAID 1 in der Regel exakt zwei. Für RAID 5 sind mindestens dreiPartitionen erforderlich. Es wird empfohlen, nur Partitionen gleicher Größe zu verwen-den. Die einzelnen Partitionen eines RAIDs sollten auf verschiedenen Festplatten liegen,damit das Risiko eines Datenverlusts durch den Defekt einer Festplatte (bei RAID 1und 5) verhindert bzw. die Leistung bei RAID 0 optimiert wird. Wenn Sie allegewünschten Partitionen erstellt haben, klicken Sie auf RAID → RAID anlegen, umdie RAID-Konfiguration zu starten.

Wählen Sie im nächsten Dialogfeld zwischen RAID-Level 0, 1 und 5 (weitere Informa-tionen hierzu finden Sie in Abschnitt 2.2.1, „RAID-Level“ (S. 65)). Wenn Sie aufWeiter klicken, werden im folgenden Dialogfeld alle Partitionen entweder mit dem Typ„Linux RAID“ oder „Linux native“ angezeigt (siehe Abbildung 2.6, „RAID-Partitionen“(S. 68)). Swap- oder DOS-Partitionen werden nicht angezeigt. Wenn eine Partitioneinem RAID-Volume bereits zugewiesen ist, wird in der Liste der Name des RAID-Geräts (z. B. /dev/md0) angezeigt. Nicht zugewiesene Partitionen sind mit „--“gekennzeichnet.

Fortgeschrittene Festplattenkonfiguration 67

Page 68: Suse 10.1 Linux Reference De

Abbildung 2.6 RAID-Partitionen

Um dem ausgewählten RAID-Volume eine zuvor nicht zugewiesene Partition zuzuwei-sen, klicken Sie zuerst auf die Partition und anschließend auf Hinzufügen. Der Namedes RAID-Geräts wird dann zur ausgewählten Partition hinzugefügt. Weisen Sie allefür RAID reservierten Partitionen zu. Anderenfalls bleibt der Speicherplatz in denPartitionen unbenutzt. Klicken Sie nach dem Zuweisen aller Partitionen aufWeiter, umdas Einstellungsdialogfeld aufzurufen, in dem Sie die Leistung optimieren können(siehe Abbildung 2.7, „Dateisystemeinstellungen“ (S. 69)).

68 Referenz

Page 69: Suse 10.1 Linux Reference De

Abbildung 2.7 Dateisystemeinstellungen

Legen Sie wie bei der konventionellen Partitionierung das zu verwendende Dateisystemsowie die Verschlüsselung und den Einhängepunkt für das RAID-Volume fest. DurchAktivieren der Option Persistenter Superblock wird gewährleistet, dass die RAID-Partitionen als solche beim Booten erkannt werden. Wenn Sie die Konfiguration mitBeenden abgeschlossen haben, sind im Expertenmodus des Partitionierungsmoduls dasGerät /dev/md0 und andere Geräte mit RAID gekennzeichnet.

2.2.3 FehlerbehebungPrüfen Sie die Datei /proc/mdstats, um festzustellen, ob eine RAID-Partitionzerstört ist. Grundsätzliche Vorgehensweise bei einem Systemfehler ist es, Ihr Linux-System herunterzufahren und die defekte Festplatte durch eine neue, gleichartig parti-tionierte Platte zu ersetzen. Starten Sie das System anschließend neu und geben Sie denBefehl mdadm /dev/mdX --add /dev/sdX ein. Ersetzen Sie „X“ durch dieentsprechende Geräte-ID. Damit wird die neue Festplatte automatisch in das RAID-System integriert und vollautomatisch rekonstruiert.

Fortgeschrittene Festplattenkonfiguration 69

Page 70: Suse 10.1 Linux Reference De

2.2.4 Weitere InformationenWeitere Informationen sowie eine Anleitung zur Konfiguration von Soft-RAID findenSie in den angegebenen HOWTO-Dokumenten unter:

• /usr/share/doc/packages/raidtools/Software-RAID.HOWTO.html

• http://en.tldp.org/HOWTO/Software-RAID-HOWTO.html

Linux-RAID-Mailinglisten sind beispielsweise unter folgender URL verfügbar:http://marc.theaimsgroup.com/?l=linux-raid&r=1&w=2.

70 Referenz

Page 71: Suse 10.1 Linux Reference De

3Aktualisieren des Systems undPaketverwaltungSUSE Linux bietet die Möglichkeit, ein bestehendes System zu aktualisieren, ohne esvollständig neu zu installieren. Man unterscheidet zwischen zwei Arten von Aktualisie-rungen: die Aktualisierung einzelner Software-Pakete und die Aktualisierung desgesamten Systems. Pakete können auch manuell mithilfe des RPM-Paket-Managersverwaltet werden.

3.1 Aktualisieren von SUSE LinuxSoftware weist normalerweise von Version zu Version mehr „Umfang“ auf. Folglichsollten Sie vor dem Aktualisieren mit df den verfügbaren Plattenplatz überprüfen.Wenn Sie befürchten, dass demnächst kein Speicherplatz mehr zur Verfügung steht,sichern Sie die Daten vor der Aktualisierung und partitionieren Sie Ihr System neu. Esgibt keine Faustregel hinsichtlich des Speicherplatzes einzelner Partitionen. Die Platz-anforderungen werden durch Ihr jeweiliges Partitionierungsprofil, die ausgewählteSoftware sowie die Versionsnummer von SUSE Linux bestimmt.

3.1.1 VorbereitungKopieren Sie vor der Aktualisierung die alten Konfigurationsdateien auf ein separatesMedium, beispielsweise ein Bandlaufwerk (Streamer), eine Wechselfestplatte, einenUSB-Stick oder ein ZIP-Laufwerk, um die Daten zu sichern. Dies gilt hauptsächlichfür die in /etc gespeicherten Dateien sowie einige der Verzeichisse und Dateien in/var und /opt. Zudem empfiehlt es sich, die Benutzerdaten in /home (denHOME-Verzeichnissen) auf ein Sicherungsmedium zu schreiben. Melden Sie sich zur

Aktualisieren des Systems und Paketverwaltung 71

Page 72: Suse 10.1 Linux Reference De

Sicherung dieser Daten als root an. Nur Benutzer root verfügt über die Leseberech-tigung für alle lokalen Dateien.

Notieren Sie sich vor der Aktualisierung die Stammpartition. Mit dem Befehl df /können Sie den Gerätenamen der Stammpartition anzeigen. In Beispiel 3.1, „Über df-h angezeigte Liste“ (S. 72) ist /dev/hda3 die Stammpartition, die Sie sich notierensollten (eingehängt als /).

Beispiel 3.1 Über df -h angezeigte ListeFilesystem Size Used Avail Use% Mounted on/dev/hda3 74G 22G 53G 29% /tmpfs 506M 0 506M 0% /dev/shm/dev/hda5 116G 5.8G 111G 5% /home/dev/hda1 39G 1.6G 37G 4% /windows/C/dev/hda2 4.6G 2.6G 2.1G 57% /windows/D

3.1.2 Potenzielle ProblemeWenn Sie ein standardmäßiges System von der Vorgängerversion auf diese Versionaktualisieren, ermittelt YaST die erforderlichen Änderungen und wendet sie an.Abhängig von den individuellen Anpassungen, die Sie vorgenommen haben, kommtes bei einigen Schritten der vollständigen Aktualisierung zu Problemen und Ihnen bleibtnur die Möglichkeit, Ihre Sicherungsdaten zurückzukopieren. Nachfolgend sind weiterePunkte aufgeführt, die vor dem Beginn der Systemaktualisierung überprüft werdenmüssen.

Überprüfen von „passwd“ und „group“ in „/etc“Stellen Sie vor dem Aktualisieren des Systems sicher, dass /etc/passwd und /etc/group keine Syntaxfehler enthalten. Rufen Sie hierzu die Überprüfungs-Dienstpro-gramme pwck und grpck als root auf und beseitigen Sie sämtliche gemeldetenFehler.

PostgreSQLFühren Sie vor der Aktualisierung von PostgreSQL (postgres) den dump-Vorgangfür die Datenbanken durch. Ziehen Sie die Manualpage (Handbuchseite) zu pg_dumpzurate. Dies ist nur erforderlich, wenn Sie PostgreSQL bereits vor der Aktualisierungverwendet haben.

72 Referenz

Page 73: Suse 10.1 Linux Reference De

3.1.3 Aktualisieren mit YaSTIm Anschluss an die in Abschnitt 3.1.1, „Vorbereitung“ (S. 71) erläuterte Vorbereitungkann Ihr System nun aktualisiert werden:

1 Booten Sie das System wie zu Installationszwecken (siehe Beschreibung inAbschnitt „Systemstart für die Installation“ (Kapitel 1, Installation mit YaST,↑Start)). Wählen Sie in YaST eine Sprache aus und klicken Sie im DialogfeldInstallationsmodus auf Aktualisieren. Wählen Sie nicht die Option Neuinstalla-tion.

2 YaST ermittelt, ob mehrere Root-Partitionen vorhanden sind. Wenn nur einevorhanden ist, fahren Sie mit dem nächsten Schritt fort. Wenn mehrere vorhandensind, wählen Sie die richtige Partition aus und bestätigen Sie mit Weiter (imBeispiel in Abschnitt 3.1.1, „Vorbereitung“ (S. 71) wurde /dev/hda3 ausge-wählt). YaST liest die alte fstab auf dieser Partition, um die hier aufgeführtenDateisysteme zu analysieren und einzuhängen.

3 Passen Sie im Dialogfeld Installationseinstellungen die Einstellungen gemäßIhren Anforderungen an. Normalerweise können die Standardeinstellungenunverändert übernommen werden, wenn Sie Ihr System jedoch erweitern möchten,überprüfen Sie die in den Untermenüs von Software-Auswahl aufgeführtenPakete (und aktivieren Sie sie gegebenenfalls) oder fügen Sie die Unterstützungfür zusätzliche Sprachen hinzu.

Sie haben zudem die Möglichkeit, verschiedene Systemkomponenten zu sichern.Durch Sicherungen wird der Aktualisierungsvorgang verlangsamt. VerwendenSie diese Option, wenn Sie über keine aktuelle Systemsicherung verfügen.

4 Geben Sie im daraufhin angezeigten Dialogfeld an, dass nur die bereits installierteSoftware aktualisiert werden soll oder dass dem System neue Software-Kompo-nenten hinzugefügt werden sollen (Aufrüstungsmodus). Es empfiehlt sich, dievorgeschlagene Kombination zu akzeptieren, beispielsweise Update basiert aufder Auswahl „Standard-Systemmit KDE“ oder „Standard-Systemmit GNOME“.Anpassungen sind zu einem späteren Zeitpunkt mit YaST möglich.

Aktualisieren des Systems und Paketverwaltung 73

Page 74: Suse 10.1 Linux Reference De

3.1.4 Aktualisieren einzelner PaketeUngeachtet der insgesamt aktualisierten Umgebung ist die Aktualisierung einzelnerPakete stets möglich. Ab diesem Punkt liegt es jedoch bei Ihnen, sicherzustellen, dassdie Konsistenz Ihres Systems stets gewährleistet ist. Ratschläge zur Aktualisierungfinden Sie unter http://www.novell.com/linux/download/updates/.

Wählen Sie gemäß Ihren Anforderungen Komponenten in der YaST-Paketauswahl aus.Wenn Sie ein Paket auswählen, dass für den Gesamtbetrieb des Systems unerlässlichist, gibt YaST eine Warnung aus. Pakete dieser Art sollten nur im Aktualisierungsmodusaktualisiert werden. Zahlreiche Pakete enthalten beispielsweise shared libraries. Wenndiese Programme und Anwendungen im aktiven System aktualisiert werden, kann eszu Fehlfunktionen kommen.

3.2 Software-Änderungen von Versionzu Version

Welche Aspekte sich zwischen den Versionen genau geändert haben, geht aus dennachfolgenden Erläuterungen hervor. Diese Zusammenfassung gibt beispielsweiseAufschluss darüber, ob grundlegende Einstellungen vollkommen neu konfiguriertwurden, ob Konfigurationsdateien an andere Speicherorte verschoben wurden oder obes bedeutende Änderungen gängiger Anwendungen gegeben hat. Signifikante Änderun-gen, die sich auf den täglichen Betrieb des Systems auswirken – entweder auf Benutzer-oder Administratorebene – werden hier genannt.

Probleme und spezielle Aspekte der jeweiligen Version werden bei Bekanntwerdungonline zur Verfügung gestellt. Nutzen Sie die unten aufgeführten Links. WichtigeAktualisierungen einzelner Pakete stehen unter http://www.novell.com/products/linuxprofessional/downloads/ zur Verfügung (YaST OnlineUpdate (YOU)) – ziehen Sie Abschnitt „Online-Aktualisierung von Software“ (Kapitel 2,Systemkonfiguration mit YaST, ↑Start) zurate.

3.2.1 Von 9.0 auf 9.1Ziehen Sie den Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 9.1“(in der SUSE Support-Datenbank unter http://portal.suse.com) zurate

74 Referenz

Page 75: Suse 10.1 Linux Reference De

(Schlüsselwort: Besonderheiten). Diese Artikel werden für jede Version von SUSELinux veröffentlicht.

Upgrade auf Kernel 2.6SUSE Linux basiert nun vollständig auf Kernel 2.6. Die Vorgängerversion, 2.4, kannnicht mehr verwendet werden, da die enthaltenen Anwendungen mit Kernel 2.4 nichtfunktionsfähig sind. Beachten Sie folgende Details:

• Das Laden von Modulen wird über die Datei/etc/modprobe.conf konfiguriert.Die Datei /etc/modules.conf ist veraltet. YaST versucht, die Datei zu kon-vertieren (siehe auch Skript /sbin/generate-modprobe.conf).

• Module weisen das Suffix .ko auf.

• Das Modul ide-scsi ist für das Brennen von CDs nicht mehr erforderlich.

• Das Präfix snd_ wurde von den Optionen des ALSA-Soundmoduls entfernt.

• sysfs ergänzt nun das /proc-Dateisystem.

• Die Energieverwaltung (insbesondere ACPI) wurde verbessert und kann mithilfeeines YaST-Moduls konfiguriert werden.

Einhängen von VFAT-PartitionenBeim Einhängen von VFAT-Partitionen muss der Parameter code in codepagegeändert werden. Wenn beim Einhängen einer VFAT-Partition Probleme auftreten,überprüfen Sie, ob die Datei /etc/fstab den alten Parameternamen enthält.

Standby und Ruhezustand mit ACPIKernel 2.6 unterstützt Standby und Ruhezustand mit ACPI. Diese Funktion befindetsich noch in der Testphase und wird von einigen Hardware-Komponenten möglicher-weise nicht unterstützt. Zur Verwendung dieser Funktion benötigen Sie daspowersave-Paket. Informationen zu diesem Paket finden Sie in /usr/share/doc/packages/powersave. Ein grafisches Frontend steht imkpowersave-Paketzur Verfügung.

Aktualisieren des Systems und Paketverwaltung 75

Page 76: Suse 10.1 Linux Reference De

EingabegeräteZiehen Sie hinsichtlich der Änderungen in Bezug auf Eingabegeräte den bereitserwähnten Portal-Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 9.1“in der Support-Datenbank unterhttp://portal.suse.com zurate (Schlüsselwort:Besonderheiten).

Native POSIX Thread Library und glibc 2.3.xMit NGPT (Next Generation POSIX Threading) verknüpfte Anwendungen können mitglibc 2.3.x nicht verwendet werden. Alle betroffenen Anwendungen, die nicht im Lie-ferumfang von SUSE Linux enthalten sind, müssen mit linuxthreads oder NPTL(Native POSIX Thread Library) kompiliert werden. NPTL ist der Vorzug zu geben, dadies der Standard für die Zukunft ist.

Wenn NPTL zu Problemen führt, kann die ältere linuxthreads-Implementierung verwen-det werden, und zwar unter Verwendung folgender Umgebungsvariable (ersetzen Siekernel-version durch die Versionsnummer des entsprechenden Kernel):LD_ASSUME_KERNEL=kernel-version

Folgende Versionsnummern sind möglich:

2.2.5 (i386, i586):linuxthreads ohne Floating Stacks

2.4.1 (AMD64, IPF, s390x, i586, i686):, 2.4.1 (AMD64, i586, i686):linuxthread mit Floating Stacks

Hinweise zu Kernel und linuxthreads mit Floating Stacks: Anwendungen, die errno,h_errno und _res verwenden, müssen die Header-Dateien (errno.h, netdb.h,and resolv.h) mit #include enthalten. Bei C++-Programmen mit Multithread-Unterstützung, die Threads abbrechen (Thread Cancellation) verwenden, muss dieUmgebungsvariable LD_ASSUME_KERNEL=2.4.1 verwendet werden, um zur Ver-wendung der linuxthreads-Bibliothek aufzufordern.

Anpassungen für Native POSIX Thread LibraryNPTL ist in SUSE Linux 9.1 als Thread-Paket enthalten. NPTL ist mit der älterenlinuxthreads-Bibliothek binärkompatibel. Für Bereiche, in denen linuxthreads gegen

76 Referenz

Page 77: Suse 10.1 Linux Reference De

den POSIX-Standard verstößt, sind NPTL-Anpassungen erforderlich. Dies umfasstFolgendes: Signalbehandlungssystem, die Tatsache, dass getpid in allen Threadsdenselben Wert zurückgibt und dass mit pthread_atfork registrierte Thread-Behand-lungsroutinen bei Verwendung von vfork nicht funktionieren.

NetzwerkschnittstellenkonfigurationDie Konfiguration der Netzwerkschnittstelle wurde verändert. Bisher wurde die Hard-ware im Anschluss an die Konfiguration einer nicht vorhandenen Schnittstelle initiali-siert. Jetzt sucht das System nach neuer Hardware und initialisiert sie umgehend; aufdiese Weise wird die Konfiguration der neuen Netzwerkschnittstelle ermöglicht.

Die Konfigurationsdateien wurden neu benannt. Da der Name einer Netzwerkschnitt-stelle dynamisch generiert wird und immer mehr HotPlug-Geräte verwendet werden,ist ein Name wie eth0 or eth1 für Konfigurationszwecke nicht mehr geeignet. Ausdiesem Grund werden eindeutige Kennzeichnungen, beispielsweise die MAC-Adresseoder der PCI-Steckplatz, für die Benennung von Schnittstellenkonfigurationen verwen-det. Schnittstellennamen können sofort bei ihrer Anzeige verwendet werden. Befehlewie ifup eth0 oder ifdown eth0 können weiterhin verwendet werden.

Die Gerätekonfigurationen befinden sich in /etc/sysconfig/hardware. Dievon diesen Geräten bereitgestellten Schnittstellen befinden sich normalerweise in/etc/sysconfig/network (mit unterschiedlichen Namen). Die detaillierte Beschreibungfinden Sie in /usr/share/doc/packages/sysconfig/README.

SoundkonfigurationNach einer Aktualisierung müssen die Soundkarten neu konfiguriert werden. Hierfürsteht das YaST-Soundmodul zur Verfügung. Geben Sie als Benutzer root den Befehl/sbin/yast2 sound ein.

Top-Level-Domäne .local als „link-local“-DomäneDie Resolver-Bibliothek behandelt die Top-Level-Domäne .local als „link-local“-Domäne und sendet anstelle normaler DNS-Abfragen Multicast-DNS-Abfragen an dieMulticast-Adresse 224.0.0.251, Port 5353. Dies ist eine inkompatible Änderung.Wenn die Domäne .local bereits in der Namenserverkonfiguration verwendet wird,

Aktualisieren des Systems und Paketverwaltung 77

Page 78: Suse 10.1 Linux Reference De

verwenden Sie einen anderen Domänennamen. Weitere Informationen zum Multicast-DNS finden Sie unter http://www.multicastdns.org.

Systemübergreifende UTF-8-CodierungUTF-8 ist die standardmäßige Codierung für das System. Bei einer Standardinstallationwird also ein Gebietsschema mit UTF-8-Codierung festgelegt, beispielsweiseen_US.UTF-8. Weitere Informationen hierzu finden Sie unterhttp://www.suse.de/~mfabian/suse-cjk/locales.html.

Konvertieren von Dateinamen in UTF-8Dateien in zuvor erstellten Dateisystemen verwenden die UTF-8-Codierung fürDateinamen nicht (sofern nicht anders angegeben). Wenn diese Dateinamen Nicht-ASCII-Zeichen enthalten, werden sie entstellt. Verwenden Sie zur Korrektur dasconvmv-Skript, mit dem die Codierung von Dateinamen in UTF-8 erfolgt.

Mit dem POSIX-Standard von 2001 kompatibleShell-WerkzeugeIn der Standardeinstellung sind Shell-Werkzeuge aus dem coreutils-Paket (tail,chown, head, sort usw.) nicht mehr mit dem POSIX-Standard von 1992, jedochmit dem POSIX-Standard von 2001 kompatibel (Single UNIX Specification, Version3 == IEEE Std 1003.1-2001 == ISO/IEC 9945:2002). Das bisherige Verhalten kannmithilfe einer Umgebungsvariablen erzwungen werden:_POSIX2_VERSION=199209

Der neue Wert lautet 200112 und wird als Standard für_POSIX2_VERSION verwendet.Der SUS-Standard kann unterhttp://www.unix.org angezeigt werden (kostenlos,Registrierung erforderlich).

TIPP

Drittanbieter-Software ist möglicherweise noch nicht mit dem neuen Standardkompatibel. In diesem Fall wird die Umgebungsvariable wie oben beschriebenfestgelegt.

78 Referenz

Page 79: Suse 10.1 Linux Reference De

/etc/gshadow veraltet/etc/gshadow wird nicht mehr verwendet und wurde entfernt, da diese Datei ausfolgenden Gründen überflüssig ist:

• Sie wird von glibc nicht unterstützt.

• Es gibt keine offizielle Schnittstelle für diese Datei. Selbst die Shadow-Suite enthältkeine Schnittstelle dieser Art.

• Von den meisten Werkzeugen, die das Gruppenpasswort überprüfen, wird dieseDatei nicht unterstützt und aus den angegebenen Gründen ignoriert.

OpenLDAPDa sich das Datenbankformat geändert hat, muss die Datenbank neu aufgebaut werden.Im Rahmen der Aktualisierung versucht das System, diese Konvertierung automatischdurchzuführen. Es gibt jedoch sicherlich Fälle, in denen die Konvertierung nicht möglichist.

Die Schema-Überprüfung wurde wesentlich verbessert. Deshalb sind einige nicht mitdem Standard kompatible Vorgänge, die mit dem bisherigen LDAP (LightweightDirectory Access Protocol)-Server möglich waren, nun nicht mehr möglich.

Die Syntax der Konfigurationsdatei hat sich teilweise geändert, und zwar hinsichtlichder Zugriffssteuerungslisten (Access Control Lists, ACLs). Im Anschluss an dieInstallation stehen aktualisierungsbezogene Informationen in der Datei /usr/share/doc/packages/openldap2/README.update zur Verfügung.

Ersetzen von Apache 1.3 durch Apache 2Der Apache-Webserver (Version 1.3) wurde durch Apache 2 ersetzt. Die detaillierteDokumentation zu Version 2.0 steht auf der Webseite unter http://httpd.apache.org/docs-2.0/en/ zur Verfügung Bei einem System mit installiertem HTTP-(Hypertext Transfer Protocol-)Server wird das Apache-Paket entfernt und Apache 2installiert. Im Anschluss muss das System entweder mit YaST oder manuell angepasstwerden. Die Konfigurationsdateien aus /etc/httpd befinden sich nun in /etc/apache2.

Aktualisieren des Systems und Paketverwaltung 79

Page 80: Suse 10.1 Linux Reference De

Für die Handhabung mehrerer gleichzeitiger Abfragen können entweder Threads oderVorgänge ausgewählt werden. Die Prozessverwaltung wird nun von einem unabhängigenModul übernommen, dem Multiprocessing-Modul (MPM). Folglich ist für Apache 2das apache2-prefork-Paket (aus Stabilitätsgründen empfohlen) oder dasapache2-worker-Paket erforderlich. Abhängig vom MPM werden Abfragen vonApache 2 unterschiedlich verarbeitet. Dies betrifft sowohl die Leistung als auch dieVerwendung von Modulen. Diese Eigenschaften werden in Abschnitt 26.4.4, „Multi-processing-Module“ (S. 510) detailliert erläutert.

Apache 2 unterstützt nun das neueste Internetprotokoll, IPv6.

Es wurde ein Mechanismus implementiert, der es Modulprogrammierern ermöglicht,die gewünschte Ladesequenz der Module anzugeben und den Benutzern diese Aufgabeabzunehmen. Die Ausführungssequenz der Module ist häufig von großer Wichtigkeit.In früheren Versionen wurde sie anhand der Ladesequenz ermittelt. So muss beispiels-weise ein Modul, das nur authentifizierten Benutzern den Zugriff auf bestimmte Res-sourcen ermöglicht, als Erstes geladen werden, um zu verhindern, dass die Seiten fürBenutzer ohne Zugriffsberechtigungen angezeigt werden.

An Apache gerichtete Abfragen und von Apache erhaltene Antworten können mithilfevon Filtern verarbeitet werden.

Von Samba 2.x auf Samba 3.xNach der Aktualisierung von Samba 2.x auf Samba 3.x steht die winbind-Authentifi-zierung nicht mehr zur Verfügung. Die anderen Authentifizierungsmethoden könnenweiterhin verwendet werden. Aus diesem Grund wurden folgende Programme entfernt:/usr/sbin/wb_auth/usr/sbin/wb_ntlmauth/usr/sbin/wb_info_group.pl

Weitere Informationen erhalten Sie unterhttp://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5.

OpenSSH-Aktualisierung (Version 3.8p1)Anstelle von gssapi wird nun gssapi-with-mic unterstützt, um potenziellenMITM (Man In The Middle-)-Angriffen vorzubeugen. Die beiden Versionen sind nicht

80 Referenz

Page 81: Suse 10.1 Linux Reference De

kompatibel. Folglich ist die Authentifizierung mit Kerberos-Tickets aus älteren Vertei-lungen nicht möglich, da andere Authentifizierungsmethoden zum Einsatz kommen.

SSH- und Terminal-AnwendungenWenn von einem entfernten Host aus eine Verbindung (insbesondere über SSH (SecureSocket Shell), Telnet und RSH (Remote Shell)) zwischen Version 9 (Standardkonfigu-ration mit aktivierter UTF-8-Codierung) und älteren Systemen (SUSE Linux 9.0 undfrühere Versionen, in denen UTF-8 nicht aktiviert bzw. nicht unterstützt wird) aufgebautwird, werden in Terminal-Anwendungen möglicherweise entstellte Zeichen angezeigt.

Der Grund dafür ist, dass lokale Einstellungen von OpenSSH nicht weitergeleitet werden.Folglich werden die standardmäßigen Systemeinstellungen verwendet, die möglicher-weise nicht mit den Einstellungen des entfernten Terminals übereinstimmen. Dies wirktsich auf YaST im Expertenmodus (Textmodus) und auf Anwendungen aus, die voneinem entfernten Host aus als normaler Benutzer (nicht root) ausgeführt werden. Dievon root aufgerufenen Anwendungen sind nur betroffen, wenn der Benutzer dieStandard-Gebietsschemata für root ändert (nur LC_CTYPE ist standardmäßig festge-legt).

libiodbc verworfenBenutzer von FreeRADIUS müssen Verbindungen ab sofort mit unixODBC herstellen,da libiodbc verworfen wurde.

XML-Ressourcen in /usr/share/xml

XML-Ressourcen (DTDs, Sylesheets usw.) werden in /usr/share/xml installiert.Folglich stehen einige Verzeichnisse in/usr/share/sgml nicht mehr zur Verfügung.Wenn Probleme auftreten, bearbeiten Sie Ihre Skripts und Makefiles oder verwendenSie die offiziellen Kataloge (insbesondere /etc/xml/catalog oder /etc/sgml/catalog).

Wechseldatenträger mit subfsWechseldatenträger werden nun mit subfs integriert. Das manuelle Einhängen derMedien mit mount ist nicht mehr erforderlich. Wenn Sie das entsprechende Mediumeinhängen möchten, wechseln Sie einfach zum entsprechenden Geräteverzeichnis in

Aktualisieren des Systems und Paketverwaltung 81

Page 82: Suse 10.1 Linux Reference De

/media. Medien können nicht ausgeworfen werden, solange ein Programm auf siezugreift.

3.2.2 Von 9.1 auf 9.2Ziehen Sie den Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 9.2“(in der SUSE Support-Datenbank unter http://portal.suse.com) zurate(Schlüsselwort: Besonderheiten).

Firewall-Aktivierung im Vorschlags-Dialogfeld bei derInstallationFür erhöhte Sicherheit wird die integrierte Firewall-Lösung SUSEFirewall2 am Endeder Installation im Vorschlags-Dialogfeld aktiviert. Dies bedeutet, dass sämtliche Portsanfänglich geschlossen sind und im Bedarfsfall über das Vorschlags-Dialogfeld geöffnetwerden können. Standardmäßig ist die Anmeldung bei entfernten Systemen nichtmöglich. Zudem werden das Suchen im Netzwerk sowie Multicast-Anwendungen,beispielsweise SLP, Samba ("Netzwerkumgebung"), sowie einige Spiele beeinträchtigt.Mit YaST können Sie die Firewall-Einstellungen präzisieren.

Wenn beim Installieren oder Konfigurieren eines Diensts auf das Netzwerk zugegriffenwerden muss, öffnet das entsprechende YaST-Modul die benötigten TCP (TransmissionControl Protocol)- und UDP (User Datagram Protocol)-Ports sämtlicher interner undexterner Schnittstellen. Wenn dies nicht erwünscht ist, kann der Benutzer die Ports imYaST-Modul schließen oder weitere detaillierte Firewall-Einstellungen angeben.

KDE und IPv6-UnterstützungStandardmäßig ist die IPv6-Unterstützung für KDE (K Desktop Environment) nichtaktiviert. Sie kann mithilfe des /etc/sysconfig-Editors von YaST aktiviert werden.Die Funktion wurde deaktiviert, da IPv6-Adressen nicht von allen Internetdienstanbietern(ISP) unterstützt werden und beim Surfen im Web Fehlermeldungen ausgegeben werdenoder bei der Anzeige von Webseiten Verzögerungen auftreten.

82 Referenz

Page 83: Suse 10.1 Linux Reference De

YaST Online Update und Delta-PaketeYaST Online Update (YOU) unterstützt nun eine besondere Art von RPM-Paket, indem nur die binäre Abweichung von einem bestimmten Basispaket gespeichert wird.Diese Technik führt zu einer deutlich geringeren Paketgröße und weniger Zeitaufwandbeim Herunterladen, bei der Neuzusammenstellung des endgültigen Pakets kommt esjedoch zu einer höheren CPU-Auslastung. Legen Sie in /etc/sysconfig/onlineupdate fest, ob YOU diese Delta-Pakete verwenden soll. Technische Detailsfinden Sie in /usr/share/doc/packages/deltarpm/README.

Konfiguration des DrucksystemsAm Ende der Installation (Vorschlags-Dialogfeld) müssen die für das Drucksystembenötigten Ports in der Firewall-Konfiguration geöffnet sein. Port 631/TCP und Port631/UDP werden für CUPS (Common Unix Printing System) benötigt und sollten fürden normalen Betrieb nicht geschlossen werden. Port 515/TCP (für das alte LPD-(LinePrinter Daemon-)Protokoll und die von Samba genutzten Ports müssen für das Druckenüber LPD bzw. SMB (Server Message Block) ebenfalls geöffnet sein.

Umstellung auf X.OrgDie Umstellung von XFree86 auf X.Org wird über Kompatibilitätslinks ermöglicht,die den Zugriff auf wichtige Dateien und Befehle mit den alten Namen ermöglichen.

Tabelle 3.1 Befehle

X.OrgXFree86

XorgXFree86

xorgconfigxf86config

xorgcfgxf86cfg

Aktualisieren des Systems und Paketverwaltung 83

Page 84: Suse 10.1 Linux Reference De

Tabelle 3.2 Protokolldateien in /var/log

X.OrgXFree86

Xorg.0.logXFree86.0.log

Xorg.0.log.oldXFree86.0.log.old

Bei der Umstellung auf X.Org wurden die Pakete von XFree86* in xorg-x11*umbenannt.

Terminal-Emulatoren für X11Einige Terminal-Emulatoren wurden entfernt, da sie entweder nicht mehr unterstütztwerden oder in der Standardumgebung nicht funktionieren, insbesondere, da sie UTF-8 nicht unterstützen. SUSE Linux stellt Standardterminals bereit, beispielsweise xterm,die KDE- und GNOME-Terminals und mlterm (Multilingual Terminal Emulator fürX), die möglicherweise als Ersatz für aterm und eterm dienen.

Änderungen im powersave-PaketDie Konfigurationsdateien in /etc/sysconfig/powersave wurden geändert.

Tabelle 3.3 Aufgeteilte Konfigurationsdateien in /etc/sysconfig/powersave

Jetzt aufgeteilt inAlt

common/etc/sysconfig/powersave/common

cpufreq

events

battery

sleep

84 Referenz

Page 85: Suse 10.1 Linux Reference De

Jetzt aufgeteilt inAlt

thermal

/etc/powersave.conf ist inzwischen veraltet. Bestehende Variablen wurden indie in Tabelle 3.3, „Aufgeteilte Konfigurationsdateien in /etc/sysconfig/powersave“(S. 84) aufgeführten Tabellen verschoben. Wenn Sie die „event“-Variablen in /etc/powersave.conf geändert haben, muss deren Anpassung nun in /etc/sysconfig/powersave/events erfolgen.

Die Namen der sleep-Statusangaben wurden wie nachfolgend angegeben geändert.Von:

• suspend (ACPI S4, APM suspend)

• standby (ACPI S3, APM standby)

In:

• suspend to disk (ACPI S4, APM suspend)

• suspend to ram (ACPI S3, APM suspend)

• standby (ACPI S1, APM standby)

OpenOffice.org (OOo)Verzeichnisse:

OOo wird nun in/usr/lib/ooo-1.1 anstelle von/opt/OpenOffice.orginstalliert. ~/.ooo-1.1 ist nun anstelle von ~/OpenOffice.org1.1 dasStandardverzeichnis für Benutzereinstellungen.

Packer:Es gibt einige neue Packer für das Aufrufen der OOo-Komponenten. Die neuenNamen sind aus Tabelle 3.4, „Packer“ (S. 86) ersichtlich.

Aktualisieren des Systems und Paketverwaltung 85

Page 86: Suse 10.1 Linux Reference De

Tabelle 3.4 Packer

NeuAlt

/usr/bin/oocalc/usr/X11R6/bin/OOo-calc

/usr/bin/oodraw/usr/X11R6/bin/OOo-draw

/usr/bin/ooimpress/usr/X11R6/bin/OOo-impress

/usr/bin/oomath/usr/X11R6/bin/OOo-math

/usr/sbin/oopadmin/usr/X11R6/bin/OOo-padmin

–/usr/X11R6/bin/OOo-setup

/usr/bin/oofromtemplate/usr/X11R6/bin/OOo-template

/usr/bin/ooweb/usr/X11R6/bin/OOo-web

/usr/bin/oowriter/usr/X11R6/bin/OOo-writer

/usr/bin/ooffice/usr/X11R6/bin/OOo

/usr/bin/ooo-wrapper/usr/X11R6/bin/OOo-wrapper

Der Packer unterstützt nun die Option--icons-set für das Umschalten zwischenKDE- und GNOME-(GNU Network Objekt Model Environment-)Symbolen. Fol-gende Optionen werden nicht mehr unterstützt:--default-configuration,--gui, --java-path, --skip-check, --lang (die Sprache wird nunanhand von Locales bestimmt), --messages-in-window und --quiet.

KDE- und GNOME-UnterstützungKDE- und GNOME-Erweiterungen stehen in den PaketenOpenOffice_org-kde und OpenOffice_org-gnome zur Verfügung.

86 Referenz

Page 87: Suse 10.1 Linux Reference De

kmix-SoundmixerDer kmix-Soundmixer ist standardmäßig voreingestellt. Für High-End-Hardware stehenandere Mixer zur Verfügung, beispielsweise QAMix, KAMix, envy24control (nurICE1712) oder hdspmixer (nur RME Hammerfall).

Brennen von DVDsIn der Vergangenheit wurde ein Patch aus dem cdrecord-Paket auf die Binärdateicdrecord angewendet, um die Unterstützung für das Brennen von DVDs bereitzu-stellen. Nun wird eine neue Binärdatei, cdrecord-dvd, installiert, die über diesenPatch verfügt.

Mit dem growisofs-Programm aus dem dvd+rw-tools-Paket können nun sämt-liche DVD-Medien (DVD+R, DVD-R, DVD+RW, DVD-RW, DVD+RL) gebranntwerden. Verwenden Sie dieses Programm anstelle von cdrecord-dvdmit dem Patch.

Mehrere KernelEs können mehrere Kernel gleichzeitig installiert werden. Diese Funktion soll esAdministratoren ermöglichen, die Aufrüstung von einem Kernel auf einen anderendurch Installieren des neuen Kernel vorzunehmen; anschließend muss die ordnungsge-mäße Funktion des neuen Kernel überprüft und der alte Kernel deinstalliert werden.Obwohl YaST diese Funktion noch nicht unterstützt, ist die Installation und Deinstalla-tion von der Shell aus mithilfe von rpm -i Paket.rpm problemlos möglich.

Die standardmäßigen Bootloader-Menüs enthalten nur einen Kernel-Eintrag. Vor demInstallieren mehrerer Kernel empfiehlt es sich, einen Eintrag für die zusätzlichen Kernelhinzuzufügen, um die problemlose Auswahl zu ermöglichen. Der Zugriff auf den Kernel,der vor der Installation des neuen Kernel aktiv war, ist über vmlinuz.previousund initrd.previous möglich. Wenn ein Bootloader-Eintrag erstellt wird, derdem Standardeintrag ähnelt, und dieser Eintrag aufvmlinuz.previous undinitrd.previous verweist, nicht auf vmlinuz und initrd, kann auf den zuvor aktivenKernel zugegriffen werden. Alternativ unterstützen GRUB und LILO Platzhalter fürBootloader-Einträge. Details finden Sie auf den GRUB-Infoseiten (info grub) undder Manualpage (Handbuchseite) lilo.conf (5).

Aktualisieren des Systems und Paketverwaltung 87

Page 88: Suse 10.1 Linux Reference De

3.2.3 Von 9.2 auf 9.3Ziehen Sie den Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 9.3“(in der SUSE Support-Datenbank unter http://portal.suse.com) zurate(Schlüsselwort: Besonderheiten).

Starten der manuellen Installation an derKernel-EingabeaufforderungDer Modus Manuelle Installation steht im Bootloader-Bildschirm nicht mehr zur Ver-fügung. Mit manual=1 an der Boot-Eingabeaufforderung kann linuxrc weiterhin inden manuellen Modus versetzt werden. Dies ist normalerweise nicht erforderlich, dadie Installationsoptionen direkt an der Kernel-Eingabeaufforderung festgelegt werdenkönnen, beispielsweise textmode=1; es kann auch eine URL als Installationsquelleangegeben werden.

Kerberos für die Authentifizierung im NetzwerkKerberos ist anstelle von heimdal der Standard für die Netzwerkauthentifizierung.Die automatische Konvertierung einer bestehenden heimdal-Konfiguration ist nichtmöglich. Bei einer Systemaktualisierung werden Sicherungskopien von Konfigurations-dateien erstellt, wie in Tabelle 3.5, „Sicherungsdateien“ (S. 88) dargestellt.

Tabelle 3.5 Sicherungsdateien

SicherungsdateiAlte Datei

/etc/krb5.conf.heimdal/etc/krb5.conf

/etc/krb5.keytab.heimdal/etc/krb5.keytab

Die Client-Konfiguration (/etc/krb5.conf) ist mit der von heimdal weitgehendidentisch. Wenn keine besondere Konfiguration vorgenommen wurde, muss lediglichder Parameter kpasswd_server durch admin_server ersetzt werden.

Die serverbezogenen Daten (kdc und kadmind) können nicht kopiert werden. Nach derSystemaktualisierung steht die alte heimdal-Datenbank weiterhin unter/var/heimdal

88 Referenz

Page 89: Suse 10.1 Linux Reference De

zur Verfügung. MIT-Kerberos verwaltet die Datenbank unter/var/lib/kerberos/krb5kdc.

JFS: Nicht mehr unterstütztAufgrund technischer Probleme wird JFS nicht mehr unterstützt. Der Kernel-Dateisys-temtreiber ist weiterhin vorhanden, die Partitionierung mit JFS wird jedoch von YaSTnicht angeboten.

AIDE als Tripwire-ErsatzVerwenden Sie als System zur Erkennung von Eindringlingen (Intrusion DetectionSystem) AIDE (Paketname aide); die Veröffentlichung erfolgt gemäß GPL (GNUPublic License). Tripwire ist unter SUSE Linux nicht mehr verfügbar.

X.Org-KonfigurationsdateiVom SaX2-Konfigurationswerkzeug werden die X.Org-Konfigurationseinstellungenin /etc/X11/xorg.conf geschrieben. Bei einer kompletten Neuinstallation wirdkein Kompatibilitätslink zwischen XF86Config und xorg.conf erstellt

Keine XView- und OpenLook-Unterstützung mehrDie Pakete xview, xview-devel, xview-devel-examples, olvwm undxtoolpl wurden verworfen. In der Vergangenheit wurde lediglich das XView-(OpenLook-)Basissystem bereitgestellt. Die XView-Bibliotheken stehen nach derSystemaktualisierung nicht mehr zur Verfügung. Ein noch wichtigerer Punkt: OLVWM(OpenLook Virtual Window Manager) ist ebenfalls nicht mehr verfügbar.

PAM-KonfigurationNeue Konfigurationsdateien (mit Kommentaren für mehr Information)

common-authStandardmäßige PAM-Konfiguration für auth-Abschnitt

Aktualisieren des Systems und Paketverwaltung 89

Page 90: Suse 10.1 Linux Reference De

common-accountStandardmäßige PAM-Konfiguration für account-Abschnitt

common-passwordStandardmäßige PAM-Konfiguration für password-Abschnitt

common-sessionStandardmäßige PAM-Konfiguration für Sitzungsverwaltung

Sie sollten diese standardmäßigen Konfigurationsdateien aus Ihrer anwendungsspezifi-schen Konfigurationsdatei aufnehmen, da es einfacher ist, anstelle der etwa vierzigDateien, die zuvor auf dem System vorhanden waren, eine einzige Datei zu ändern undzu verwalten. Einer zu einem späteren Zeitpunkt installierten Anwendung werden diebereits angewendeten Änderungen vererbt und der Administrator muss nicht darandenken, die Konfiguration anzupassen.

Die Änderungen sind einfach. Wenn Sie über folgende Konfigurationsdatei verfügen(sollte bei den meisten Anwendungen der Standard sein):#%PAM-1.0auth required pam_unix2.soaccount required pam_unix2.sopassword required pam_pwcheck.sopassword required pam_unix2.so use_first_pass use_authtok#password required pam_make.so /var/ypsession required pam_unix2.so

können Sie sie folgendermaßen ändern:#%PAM-1.0auth include common-authaccount include common-accountpassword include common-passwordsession include common-session

Strengere tar-SyntaxDie tar-Verwendungssyntax ist nun strenger Die tar-Optionen müssen den Datei-oder Verzeichnisspezifikationen vorangestellt werden. Das Anfügen von Optionen, wie--atime-preserve oder--numeric-owner, nach der Datei- oder Verzeichniss-pezifikation führt dazu, dass bei tar ein Problem auftritt. Überprüfen Sie Ihre Siche-rungsskripts. Befehle dieser Art funktionieren nicht mehr:tar czf etc.tar.gz /etc --atime-preserve

90 Referenz

Page 91: Suse 10.1 Linux Reference De

Weitere Informationen finden Sie auf den tar-Infoseiten.

3.2.4 Von 9.3 auf 10.0Ziehen Sie den Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 10“(in der SUSE Support-Datenbank unter http://portal.suse.com) zurate(Schlüsselwort: Besonderheiten).

Anmelden als Superuser mit suStandardmäßig wird durch den Aufruf von su zur Anmeldung als root der PATH fürroot nicht eingestellt. Rufen Sie entweder su - auf, um eine Anmelde-Shell mit dervollständigen Umgebung für root zu starten, oder stellen Sie ALWAYS_SET_PATHauf yes (ja) in /etc/default/su ein, wenn Sie das Standardverhalten von suändern möchten.

powersave-KonfigurationsvariablenNamen der powersave-Konfigurationsvariablen wurden aus Konsistenzgründen geändert,die sysconfig-Dateien sind unverändert. Weitere Informationen finden Sie inAbschnitt 33.5.1, „Konfigurieren des powersave-Pakets“ (S. 641).

PCMCIAMit cardmgr ist die Verwaltung von PC-Karten nicht mehr möglich. Stattdessen wirddie Verwaltung, wie bei Cardbus-Karten und anderen Teilsystemen, von einem Kernel-Modul vorgenommen. Alle erforderlichen Aktionen können mit hotplug ausgeführtwerden. Daspcmcia-Startskript wurde entfernt undcardctlwird durchpccardctlersetzt. Weitere Informationen finden Sie in /usr/share/doc/packages/pcmciautils/README.SUSE.

Einrichten von D-BUS für die prozessübergreifendeKommunikation in .xinitrcIn vielen Anwendungen wird jetzt D-BUS für die prozessübergreifende Kommunikationverwendet. Durch den Aufruf dbus-launch wird dbus-daemon gestartet. Die

Aktualisieren des Systems und Paketverwaltung 91

Page 92: Suse 10.1 Linux Reference De

systemweite Datei /etc/X11/xinit/xinitrc verwendet dbus-launch zumStarten des Fenster-Managers.

Falls Sie eine lokale ~/.xinitrc-Datei verwenden, müssen Sie diese entsprechendändern. Andernfalls können in Anwendungen, wie f-spot, banshee, tomboy oder NetworkManager banshee, Fehler auftreten. Speichern Sie die alte Version der Datei ~/.xinitrc. Kopieren Sie anschließend die neue Vorlagendatei mit folgendem Befehlin Ihr Home-Verzeichnis:

cp /etc/skel/.xinitrc.template ~/.xinitrc

Fügen Sie anschließend Ihre Anpassungen aus der gespeicherten .xinitrc-Dateihinzu.

Umbenannte NTP-bezogene DateienAus Gründen der Kompatibilität mit LSB (Linux Standard Base) wurden die meistenKonfigurationsdateien und das init-Skript von xntp in ntp umbenannt. Die neuenDateinamen lauten wie folgt:

/etc/slp.reg.d/ntp.reg

/etc/init.d/ntp

/etc/logrotate.d/ntp

/usr/sbin/rcntp

/etc/sysconfig/ntp

Über den udev-Daemon verarbeiteteHotplug-EreignisseHotplug-Ereignisse werden jetzt vollständig über den udev-Daemon (udevd) verarbeitet.Das Ereignis-Multiplexer-System unter /etc/hotplug.d und /etc/dev.d wirdnicht mehr verwendet. Stattdessen werden mit udevd alle Hotplug-Hilfswerkzeugegemäß den entsprechenden Regeln direkt aufgerufen. Udev-Regeln und Hilfswerkzeugewerden von udev und verschiedenen anderen Paketen bereitgestellt.

92 Referenz

Page 93: Suse 10.1 Linux Reference De

TEI-XSL-StylesheetsDie TEI-XSL-Stylesheets (tei-xsl-stylesheets) mit neuem Verzeichnislayoutfinden Sie in /usr/share/xml/tei/stylesheet/rahtz/current. Vondiesem Speicherort können Sie beispielsweise base/p4/html/tei.xsl für dieHTML-(HyperText Markup Language-)Ausgabe verwenden. Weitere Informationenfinden Sie unter http://www.tei-c.org/Stylesheets/teic/.

Benachrichtigung bezüglich Dateisystemänderungfür GNOME-AnwendungenFür eine ordnungsgemäße Funktionsweise der GNOME-Anwendungen ist die Unter-stützung für Benachrichtigungen bei Dateisystemänderungen erforderlich. InstallierenSie auf ausschließlich lokalen Dateisystemen das gamin-Paket (bevorzugt) oder führenSie den FAM-Daemon aus. Führen Sie für entfernte Dateisysteme sowohl auf demServer als auch auf dem Client FAM aus und öffnen Sie die Firewall für RPC-Aufrufedurch FAM.

GNOME (gnome-vfs2 und libgda) enthält einen Packer, der für die Bereitstellung derBenachrichtigung bezüglich Dateisystemänderungen gamin oder fam auswählt:

• Wenn der FAM-Daemon nicht ausgeführt wird, wird gamin bevorzugt. (Begründung:Inotify wird nur von gamin unterstützt und ist für lokale Dateisysteme effizienter.)

• Wenn der FAM-Daemon ausgeführt wird, wird FAM bevorzugt (Begründung:Wenn FAM ausgeführt wird, möchten Sie wahrscheinlich entfernte Benachrichti-gungen erhalten, die nur von FAM unterstützt werden).

3.2.5 Von 10.0 auf 10.1Ziehen Sie den Artikel „Bekannte Probleme und Besonderheiten in SUSE Linux 10“(in der SUSE Support-Datenbank unter http://portal.suse.com) zurate(Schlüsselwort: Besonderheiten).

Aktualisieren des Systems und Paketverwaltung 93

Page 94: Suse 10.1 Linux Reference De

Apache 2.2Für Apache Version 2.2 wurde Kapitel 26, Der HTTP-Server Apache (S. 485) komplettüberarbeitet. Allgemeine Informationen zur Aktualisierung erhalten Sie unter http://httpd.apache.org/docs/2.2/upgrading.html und unterhttp://httpd.apache.org/docs/2.2/new_features_2_2.html finden Sie eineBeschreibung der neuen Funktionen.

Starten von FTP-Servern (vsftpd)Der vsftpd-FTP-Server wird standardmäßig nicht mehr über xinetd gestartet. Erist jetzt ein eigenständiger Daemon, der mit dem runtime-Editor von YaST konfiguriertwerden muss.

Firefox 1.5: Befehl zum Öffnen von URLsIn Firefox 1.5 wurde die Methode geändert, mit der Anwendungen eine Firefox-Instanzoder ein Firefox-Fenster öffnen. Die neue Methode stand teilweise bereits in älterenVersionen zur Verfügung, in denen das Verhalten im Packer-Skript implementiert war.

Wenn in Ihrer Anwendung weder mozilla-xremote-client noch firefox-remote verwendet wird, müssen Sie keine Änderungen vornehmen. Andernfallslautet der neue Befehl zum Öffnen von URLs firefox url. Dabei spielt es keineRolle, ob Firefox bereits ausgeführt wird oder nicht. Wenn Firefox bereits ausgeführtwird, wird die Einstellung unter Open links from other applications in (Links ausanderen Anwendungen öffnen in) verwendet.

Über die Befehlszeile können Sie das Verhalten mit den Befehlen firefox-new-window url oder firefox -new-tab url beeinflussen.

3.3 RPM - der Paket-ManagerIn SUSE LINUX wird RPM (RPM Package Manager) für die Verwaltung der Softwa-repakete verwendet. Seine Hauptprogramme sindrpm undrpmbuild. In der leistungs-starken RPM-Datenbank können Benutzer, Systemadministratoren und Paketerstellerausführliche Informationen über die installierte Software abfragen.

94 Referenz

Page 95: Suse 10.1 Linux Reference De

Im Wesentlichen hat rpm fünf Modi: Softwarepakete installieren, de-installieren oderaktualisieren, die RPM-Datenbank neu aufbauen, Anfragen an die RPM-Datenbankbzw. an einzelne RPM-Archive richten, Pakete auf Integrität überprüfen und Paketesignieren. rpmbuild dient dazu, installierbare Pakete aus den unverfälschten Quellenherzustellen.

Installierbare RPM-Archive sind in einem speziellen binären Format gepackt. DieseArchive bestehen aus den zu installierenden Programmdateien und aus verschiedenenMetadaten, die bei der Installation von rpm benutzt werden, um das jeweilige Softwa-repaket zu konfigurieren, oder die zu Dokumentationszwecken in der RPM-Datenbankgespeichert werden. RPM-Archive haben für gewöhnlich die Dateinamenerweiterung.rpm.

TIPP: Pakete zur Software-Entwicklung

Bei etlichen Paketen sind die zur Software-Entwicklung erforderlichen Kompo-nenten (Bibliotheken, Header- und Include-Dateien usw.) in eigene Paketeausgelagert. Diese Entwicklungspakete werden nur benötigt, wenn Sie Softwareselbst kompilieren möchten – beispielsweise die neuesten GNOME-Pakete.Solche Pakete sind am Namenszusatz -devel zu erkennen, z. B. die Paketealsa-devel, gimp-devel und kdelibs3-devel.

3.3.1 Prüfen der Authentizität eines PaketsRPM-Pakete von SUSE LINUX sind mit GnuPG signiert. Der Schlüssel mit dem„Fingerabdruck“ lautet:1024D/9C800ACA 2000-10-19 SuSE Package Signing Key <[email protected]>Key fingerprint = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA

Mit dem Befehl rpm --checksig paket-1.2.3.rpm können Sie die Signatureines RPM-Pakets überprüfen und so feststellen, ob es wirklich von SUSE Linux odereiner anderen vertrauenswürdigen Stelle stammt. Dies ist insbesondere bei Update-Paketen aus dem Internet zu empfehlen. Der öffentliche Paketsignierschlüssel vonSUSE Linux ist standardmäßig in /root/.gnupg/ hinterlegt. Der Schlüssel befindetsich zusätzlich im Verzeichnis /usr/lib/rpm/gnupg/, damit auch normaleBenutzer die Signatur von RPM-Paketen prüfen können.

Aktualisieren des Systems und Paketverwaltung 95

Page 96: Suse 10.1 Linux Reference De

3.3.2 Verwalten von Paketen: Installieren,Aktualisieren und Deinstallieren

Im Normalfall ist das Installieren eines RPM-Archivs ganz simpel: rpm -ipaket.rpm. Mit diesem Befehl wird das Paket aber nur dann installiert, wenn seineAbhängigkeiten erfüllt sind und keine Konflikte mit anderen Paketen bestehen. rpmfordert per Fehlermeldung die Pakete an, die zum Erfüllen der Abhängigkeiten installiertwerden müssen. Im Hintergrund wacht die RPM-Datenbank darüber, dass keine Kon-flikte entstehen: Eine spezifische Datei darf nur zu einem Paket gehören. Durch dieWahl anderer Optionen können Sie rpm zwingen, diese Standards zu ignorieren, jedochist dies nur für Spezialisten gedacht. Andernfalls wird damit die Integrität des Systemsgefährdet und möglicherweise die Update-Fähigkeit aufs Spiel gesetzt.

Die Optionen -U oder --upgrade und -F oder --freshen können für das Updateeines Pakets benutzt werden, z. B.: rpm -F paket.rpm. Dieser Befehl entfernt dieDateien der alten Version und installiert sofort die neuen Dateien. Der Unterschiedzwischen den beiden Versionen besteht darin, dass mit-U auch Pakete installiert werden,die vorher nicht im System vorhanden waren, wohingegen mit -F nur zuvor installiertePakete aktualisiert werden. Bei einem Update verwendet rpm zur sorgfältigen Aktuali-sierung der Konfigurationsdateien die folgende Strategie:

• Falls eine Konfigurationsdatei vom Systemadministrator nicht geändert wurde,installiert rpm die neue Version der entsprechenden Datei. Es sind keine Eingriffeseitens des Administrators nötig.

• Falls eine Konfigurationsdatei vom Systemadministrator vor dem Update geändertwurde, speichert rpm die geänderte Datei mit der Erweiterung .rpmorig oder.rpmsave (Sicherungsdatei) und installiert nur dann die Version aus dem neuenPaket, wenn sich die ursprünglich installierte Datei und die neue Version unterschei-den. Vergleichen Sie in diesem Fall die Sicherungsdatei (.rpmorig oder.rpmsave) mit der neu installierten Datei und nehmen Sie Ihre Änderungen erneutin der neuen Datei vor. Löschen Sie anschließend unbedingt alle .rpmorig- und.rpmsave-Dateien, um Probleme mit zukünftigen Updates zu vermeiden.

• .rpmnew-Dateien erscheinen immer dann, wenn die Konfigurationsdatei bereitsexistiert und wenn die Kennung noreplace mit der .spec-Datei angegebenwurde.

96 Referenz

Page 97: Suse 10.1 Linux Reference De

Im Anschluss an ein Update sollten alle .rpmsave- und .rpmnew-Dateien nacheinem Abgleich entfernt werden, damit sie bei zukünftigen Updates nicht stören. DieErweiterung .rpmorig wird zugewiesen, wenn die Datei zuvor nicht von der RPM-Datenbank erkannt wurde.

Andernfalls wird .rpmsave verwendet. Mit anderen Worten: .rpmorig entstehtbei einem Update von einem Fremdformat auf RPM. .rpmsave entsteht bei einemUpdate aus einem älteren RPM auf einen neueren RPM. .rpmnew informiert nichtdarüber, ob der Systemadministrator die Konfigurationsdatei geändert hat. Eine Listeall dieser Dateien ist in /var/adm/rpmconfigcheck verfügbar. Einige Konfigu-rationsdateien (wie /etc/httpd/httpd.conf) werden nicht überschrieben, umden weiteren Betrieb zu ermöglichen.

Der Schalter -U ist nicht einfach gleichbedeutend mit der Deinstallation mit der Option-e und der Installation mit der Option -i. Verwenden Sie -U, wann immer möglich.

Geben Sie rpm -e paket ein, wenn Sie ein Paket entfernen möchten. rpm löschtdas Paket nur, wenn keine nicht aufgelösten Abhängigkeiten vorhanden sind. Theoretischist es unmöglich, beispielsweise Tcl/Tk zu löschen, solange eine andere AnwendungTcl/Tk noch benötigt. Auch in diesem Fall nutzt RPM die Datenbank zur Unterstützung.Falls in einem Ausnahmefall ein solcher Löschvorgang nicht möglich ist, obwohl keineAbhängigkeiten mehr bestehen, kann es nützlich sein, die RPM-Datenbank mit derOption --rebuilddb neu aufzubauen.

3.3.3 RPM und PatchesUm die Betriebssicherheit eines Systems zu garantieren, müssen von Zeit zu ZeitUpdate-Pakete auf dem System installiert werden. Bisher konnte ein Fehler in einemPaket nur eliminiert werden, indem das vollständige Paket ersetzt wurde. Bei großenPaketen mit Fehlern in kleinen Dateien kann dies schnell zu großen Datenmengenführen. Jedoch bietet SUSE RPM nun eine Funktion, mit der Patches in Pakete installiertwerden können.

Die wichtigsten Überlegungen dazu werden am Beispiel „pine“ aufgezeigt:

Ist der Patch-RPM für mein System geeignet?Um dies zu prüfen, fragen Sie zunächst die installierte Version des Pakets ab. ImFall von pine verwenden Sie den Befehl:

Aktualisieren des Systems und Paketverwaltung 97

Page 98: Suse 10.1 Linux Reference De

rpm -q pinepine-4.44-188

Prüfen Sie dann, ob der Patch-RPM sich für diese Version von pine eignet:rpm -qp --basedon pine-4.44-224.i586.patch.rpm pine = 4.44-188pine = 4.44-195pine = 4.44-207

Dieser Patch passt zu drei verschiedenen Versionen von pine. Auch die im Beispielinstallierte Version wird aufgeführt, d. h. der Patch kann installiert werden.

Welche Dateien werden durch den Patch ersetzt?Die durch einen Patch betroffenen Dateien können leicht im Patch-RPM abgelesenwerden. Der rpm-Parameter -P ermöglicht die Auswahl von speziellen Patch-Funktionen. Zeigen Sie die Dateiliste mit dem folgenden Befehl an:rpm -qpPl pine-4.44-224.i586.patch.rpm/etc/pine.conf/etc/pine.conf.fixed/usr/bin/pine

Oder verwenden Sie, falls der Patch bereits installiert ist, den folgenden Befehl:rpm -qPl pine/etc/pine.conf/etc/pine.conf.fixed/usr/bin/pine

Wie kann ein Patch-RPM im System installiert werden?Patch-RPMs werden wie normale RPMs verwendet. Der einzige Unterschied liegtdarin, dass ein passender RPM bereits installiert sein muss.

Welche Patches sind bereits auf dem System installiert und zu welchen Paketversionengehören sie?

Eine Liste aller Patches, die im System installiert sind, kann über den Befehl rpm-qPa angezeigt werden. Wenn nur ein Patch in einem neuen System installiert ist(wie in unserem Beispiel), sieht die Liste wie folgt aus:rpm -qPapine-4.44-224

Wenn Sie zu einem späteren Zeitpunkt wissen möchten, welche Paketversionursprünglich installiert war, können Sie auch diese Information der RPM-Datenbankentnehmen. Für pine rufen Sie diese Information mit dem folgenden Befehl ab:

98 Referenz

Page 99: Suse 10.1 Linux Reference De

rpm -q --basedon pinepine = 4.44-188

Weitere Informationen, auch zur Patch-Funktion von RPM, stehen auf den Manualpagesvon rpm und rpmbuild zur Verfügung.

3.3.4 Delta-RPM-PaketeDelta-RPM-Pakete enthalten die Unterschiede zwischen einer alten und einer neuenVersion eines RPM-Pakets. Wenn Sie ein Delta-RPM auf ein altes RPM anwenden,ergibt dies einen vollständig neuen RPM. Es ist nicht erforderlich, dass eine Kopie desalten RPM vorhanden ist, da ein Delta-RPM auch mit einem installierten RPM arbeitenkann. Die Delta-RPM-Pakete sind sogar kleiner als Patch-RPMs, was beim Übertragenvon Update-Paketen über das Internet von Vorteil ist. Der Nachteil ist, dass Update-Vorgänge mit Delta-RPMs erheblich mehr CPU-Zyklen beanspruchen als normale oderPatch-RPMs. Damit YaST bei YOU-Sitzungen Delta-RPM-Pakete verwendet, setzenSie YOU_USE_DELTAS in /etc/sysconfig/onlineupdate auf yes. SorgenSie dafür, dass Sie in diesem Fall Ihre Installationsmedien bereithalten. WennYOU_USE_DELTAS leer oder auf filesystem gesetzt ist, versucht YOU, Delta-Pakete herunterzuladen, die installierten Dateien entsprechen. In diesem Fall benötigenSie die Installationsmedien nicht, aber der Download kann länger dauern. Mit der Ein-stellung no verwendet YOU lediglich Patch-RPMs und normale RPMs.

Die Binärdateien prepdeltarpm, writedeltarpm und applydeltarpm sindTeil der Delta-RPM-Suite (Paket deltarpm) und helfen Ihnen beim Erstellen undAnwenden von Delta-RPM-Paketen. Mit den folgenden Befehlen erstellen Sie einDelta-RPM mit dem Namen new.delta.rpm. Der folgende Befehl setzt voraus,dass old.rpm und new.rpm vorhanden sind:prepdeltarpm -s seq -i info old.rpm > old.cpioprepdeltarpm -f new.rpm > new.cpio

xdelta delta -0 old.cpio new.cpio delta

writedeltarpm new.rpm delta info new.delta.rpmrm old.cpio new.cpio delta

Mitapplydeltarpm können Sie den neuen RPM aus dem Dateisystem rekonstruieren,wenn das alte Paket bereits installiert ist:applydeltarpm new.delta.rpm new.rpm

Aktualisieren des Systems und Paketverwaltung 99

Page 100: Suse 10.1 Linux Reference De

Um es aus dem alten RPM abzuleiten, ohne auf das Dateisystem zuzugreifen, verwendenSie die Option -r:applydeltarpm -r old.rpm new.delta.rpm new.rpm

Technische Details finden Sie in /usr/share/doc/packages/deltarpm/README.

3.3.5 RPM-AbfragenMit der Option -q initiiert rpmAbfragen und ermöglicht es, ein RPM-Archiv zu prüfen(durch Hinzufügen der Option -p) und auch die RPM-Datenbank nach installiertenPaketen abzufragen. Zur Angabe der benötigten Informationsart stehen mehrereSchalter zur Verfügung. Siehe Tabelle 3.6, „Die wichtigsten RPM-Abfrageoptionen“(S. 100).

Tabelle 3.6 Die wichtigsten RPM-Abfrageoptionen

Paketinformation-i

Dateiliste-l

Abfrage nach Paket, das die Datei FILE enthält. (FILEmuss mit dem vollständigen Pfad angegeben werden.)

-f FILE

Dateiliste mit Statusinformation (impliziert -l)-s

Nur Dokumentationsdateien auflisten (impliziert -l)-d

Nur Konfigurationsdateien auflisten (impliziert -l)-c

Dateiliste mit vollständigen Details (mit -l, -c oder -dbenutzen)

--dump

Funktionen des Pakets auflisten, die ein anderes Paket mit--requires anfordern kann

--provides

Fähigkeiten, die das Paket benötigt--requires, -R

100 Referenz

Page 101: Suse 10.1 Linux Reference De

Installationsskripts (preinstall, postinstall, uninstall)--scripts

Beispielsweise gibt der Befehl rpm -q -i wget die in Beispiel 3.2, „rpm -q -i wget“(S. 101) gezeigte Information aus.

Beispiel 3.2 rpm -q -i wgetName : wget Relocations: (not relocatable)Version : 1.9.1 Vendor: SUSE LINUX AG, Nuernberg, GermanyRelease : 50 Build Date: Sat 02 Oct 2004 03:49:13 AM CESTInstall date: Mon 11 Oct 2004 10:24:56 AM CEST Build Host: f53.suse.deGroup : Productivity/Networking/Web/Utilities Source RPM: wget-1.9.1-50.src.rpmSize : 1637514 License: GPLSignature : DSA/SHA1, Sat 02 Oct 2004 03:59:56 AM CEST, Key ID a84edae89c800acaPackager : http://www.suse.de/feedbackURL : http://wget.sunsite.dk/Summary : A tool for mirroring FTP and HTTP serversDescription :Wget enables you to retrieve WWW documents or FTP files from a server.This can be done in script files or via the command line.[...]

Die Option -f funktioniert nur, wenn Sie den kompletten Dateinamen mit dem voll-ständigen Pfad angeben. Sie können so viele Dateinamen wie nötig angeben. Beispiels-weise führt der folgende Befehlrpm -q -f /bin/rpm /usr/bin/wget

zum Ergebnis:rpm-4.1.1-191wget-1.9.1-50

Wenn nur ein Teil des Dateinamens bekannt ist, verwenden Sie ein Shell-Skript, wiein Beispiel 3.3, „Skript für die Suche nach Paketen“ (S. 102) gezeigt. Übergeben Sieden partiellen Dateinamen als Parameter beim Aufruf des Skripts.

Aktualisieren des Systems und Paketverwaltung 101

Page 102: Suse 10.1 Linux Reference De

Beispiel 3.3 Skript für die Suche nach Paketen#! /bin/shfor i in $(rpm -q -a -l | grep $1); do echo "\"$i\" is in package:" rpm -q -f $i echo ""done

Der Befehl rpm -q --changelog rpm zeigt eine detaillierte Liste der Änderungs-information über ein bestimmtes Paket nach Datum sortiert. Dieses Beispiel zeigtInformationen über das Paket rpm.

Mithilfe der installierten RPM-Datenbank sind Überprüfungen möglich. Leiten Sie dieÜberprüfungen mit -V, -y oder --verify ein. Mit dieser Option zeigt rpm alleDateien in einem Paket an, die seit der Installation geändert wurden. rpm verwendetacht verschiedene Zeichen als Hinweis auf die folgenden Änderungen:

Tabelle 3.7 RPM-Überprüfungsoptionen

MD5-Prüfsumme5

DateigrößeS

Symbolischer LinkL

ÄnderungszeitT

Major- und Minor-GerätenummernD

EigentümerU

GruppeG

Modus (Berechtigungen und Dateityp)M

Bei Konfigurationsdateien wird der Buchstabe c ausgegeben. Beispielsweise fürÄnderungen an /etc/wgetrc (wget):rpm -V wgetS.5....T c /etc/wgetrc

102 Referenz

Page 103: Suse 10.1 Linux Reference De

Die Dateien der RPM-Datenbank werden in /var/lib/rpm abgelegt. Wenn diePartition /usr eine Größe von 1 GB aufweist, kann diese Datenbank beinahe 30 MBbelegen, insbesondere nach einem kompletten Update. Wenn die Datenbank viel größerals erwartet ist, kann es nützlich sein, die Datenbank mit der Option --rebuilddbneu zu erstellen. Legen Sie zuvor eine Sicherungskopie der alten Datenbank an. Dascron-Skript cron.daily legt täglich (mit gzip gepackte) Kopien der Datenbank anund speichert diese unter /var/adm/backup/rpmdb. Die Anzahl der Kopien wirddurch die Variable MAX_RPMDB_BACKUPS (Standard: 5) in /etc/sysconfig/backup gesteuert. Die Größe einer einzelnen Sicherungskopie beträgt ungefähr 1 MBfür 1 GB in /usr.

3.3.6 Installieren und Kompilieren vonQuellpaketen

Alle Quellpakete von SUSE Linux haben die Erweiterung .src.rpm (Source-RPM).

TIPP

Quellpakete können vom Installationsmedium auf die Festplatte kopiert undmit YaST entpackt werden. Sie werden im Paket-Manager jedoch nicht alsinstalliert ([i]) gekennzeichnet. Das liegt daran, dass die Quellpakete nicht inder RPM-Datenbank eingetragen sind. Nur installierte Betriebssystemsoftwarewird in der RPM-Datenbank aufgeführt. Wenn Sie ein Quellpaket „installieren“,wird dem System nur der Quellcode hinzugefügt.

Die folgenden Verzeichnisse müssen für rpm und rpmbuild in /usr/src/packages vorhanden sein (es sei denn, Sie haben spezielle Einstellungen in einerDatei, wie /etc/rpmrc, festgelegt):

SOURCESfür die originalen Quellen (.tar.bz2 oder .tar.gz files, etc.) und für die dis-tributionsspezifischen Anpassungen (meistens .diff- oder .patch-Dateien)

SPECSfür die .spec-Dateien, die ähnlich wie Meta-Makefiles den build-Prozess steuern

BUILDAlle Quellen in diesem Verzeichnis werden entpackt, gepatcht und kompiliert.

Aktualisieren des Systems und Paketverwaltung 103

Page 104: Suse 10.1 Linux Reference De

RPMSSpeicherort der fertigen Binärpakete

SRPMSSpeicherort der Quell-RPMs

Wenn Sie ein Quellpaket mit YaST installieren, werden alle erforderlichen Komponentenin /usr/src/packages installiert: die Quellen und Anpassungen in SOURCES unddie relevante .spec-Datei in SPECS.

WARNUNG

Experimentieren Sie nicht mit Systemkomponenten (glibc, rpm, sysvinitusw.), da Sie damit die Funktionstüchtigkeit Ihres Systems aufs Spiel setzen.

Das folgende Beispiel verwendet das wget.src.rpm-Paket. Nach dem Installierendes Pakets mit YaST sollten Sie über Dateien ähnlich wie in folgender Liste verfügen:/usr/src/packages/SOURCES/nops_doc.diff/usr/src/packages/SOURCES/toplev_destdir.diff/usr/src/packages/SOURCES/wget-1.9.1+ipvmisc.patch/usr/src/packages/SOURCES/wget-1.9.1-brokentime.patch/usr/src/packages/SOURCES/wget-1.9.1-passive_ftp.diff/usr/src/packages/SOURCES/wget-LFS-20040909.tar.bz2/usr/src/packages/SOURCES/wget-wrong_charset.patch/usr/src/packages/SPECS/wget.spec

Mit rpmbuild -b X /usr/src/packages/SPECS/wget.spec wird dieKompilierung gestartet. X ist ein Platzhalter für verschiedene Stufen des build-Prozesses(Einzelheiten siehe in --help oder der RPM-Dokumentation). Nachfolgend wird nureine kurze Erläuterung gegeben:

-bpBereiten Sie Quellen in /usr/src/packages/BUILD vor: entpacken undpatchen.

-bcWie -bp, jedoch zusätzlich kompilieren.

-biWie -bp, jedoch zusätzlich die erstellte Software installieren. Vorsicht: Wenn dasPaket die Funktion BuildRoot nicht unterstützt, ist es möglich, dass Konfigurations-dateien überschrieben werden.

104 Referenz

Page 105: Suse 10.1 Linux Reference De

-bbWie -bi, jedoch zusätzlich das Binärpaket erstellen. Nach erfolgreicher Kompilie-rung sollte das Binärpaket in /usr/src/packages/RPMS sein.

-baWie -bb, jedoch zusätzlich den Quell-RPM erstellen. Nach erfolgreicher Kompi-lierung sollte dieses in /usr/src/packages/RPMS liegen.

--short-circuitEinige Schritte überspringen.

Der erstellte Binär-RPM kann nun mit rpm -i oder vorzugsweise mit rpm -U erstelltwerden. Durch die Installation mit rpm wird er in die RPM-Datenbank aufgenommen.

3.3.7 Kompilieren von RPM-Pakten mit„build“

Bei vielen Paketen besteht die Gefahr, dass während der Erstellung ungewollt Dateienin das laufende System kopiert werden. Um dies zu vermeiden, können Sie buildverwenden, das eine definierte Umgebung herstellt, in der das Paket erstellt wird. ZumAufbau dieser chroot-Umgebung muss dem build-Skript ein kompletter Paketbaumzur Verfügung stehen. Dieser kann auf Festplatte, über NFS oder auch von DVDbereitgestellt werden. Legen Sie die Position mit build --rpms verzeichnisfest. Im Unterschied zu rpm sucht der Befehlbuild die SPEC-Datei im Quellverzeich-nis. Wenn Sie, wie im obigen Beispiel, wget neu erstellen möchten und die DVD unter/media/dvd im System eingehängt ist, verwenden Sie als Benutzer root folgendeBefehle:cd /usr/src/packages/SOURCES/mv ../SPECS/wget.spec .build --rpms /media/dvd/suse/ wget.spec

Anschließend wird unter /var/tmp/build-root eine minimale Umgebung in /var/tmp/build-root eingerichtet. Das Paket wird in dieser Umgebung erstellt. Danachbefinden sich die resultierenden Pakete in /var/tmp/build-root/usr/src/packages/RPMS.

Das build-Skript bietet eine Reihe zusätzlicher Optionen. Beispielsweise können Siedas Skript veranlassen, Ihre eigenen RPMs bevorzugt zu verwenden, die Initialisierung

Aktualisieren des Systems und Paketverwaltung 105

Page 106: Suse 10.1 Linux Reference De

der build-Umgebung auszulassen oder den Befehl rpm auf eine der oben erwähntenStufen zu beschränken. Weitere Informationen erhalten Sie über build --help oderdie Manualpage build.

3.3.8 Werkzeuge für RPM-Archive und dieRPM-Datenbank

Midnight Commander (mc) kann den Inhalt von RPM-Archiven anzeigen und Teiledaraus kopieren. Archive werden als virtuelle Dateisysteme dargestellt und bieten alleüblichen Menüoptionen von Midnight Commander. Zeigen Sie den HEADER mit F3

an. Zeigen Sie die Archivstruktur mit den Cursortasten und der Eingabe an. KopierenSie Archivkomponenten mit F5 .

KDE bietet das Werkzeug kpackage als Frontend für rpm an. Ein Paket-Manager mitallen Funktionen ist als YaST-Modul verfügbar (siehe Abschnitt „Installieren undEntfernen von Software“ (Kapitel 2, Systemkonfiguration mit YaST, ↑Start)).

106 Referenz

Page 107: Suse 10.1 Linux Reference De

Teil II. Administration

Page 108: Suse 10.1 Linux Reference De
Page 109: Suse 10.1 Linux Reference De

4Sicherheit in LinuxMasquerading und eine Firewall stellen einen kontrollierten Datenfluss und Datenaus-tausch sicher. Mit SSH (Secure Shell) können Sie sich über eine verschlüsselte Verbin-dung bei entfernten Hosts anmelden. Die Verschlüsselung von Dateien oder ganzenPartitionen schützt Ihre Daten für den Fall, dass Dritte Zugriff auf Ihr System erhalten.In den technischen Anleitungen erhalten Sie Informationen über Sicherheitsaspektevon Linux-Netzwerken.

4.1 Masquerading und FirewallsWann immer Linux in einer Netzwerkumgebung eingesetzt wird, können Sie die Kernel-Funktionen verwenden, mit denen Netzwerkpakete so bearbeitet werden können, dasszwischen internen und externen Netzwerkbereichen unterschieden wird. Das Linux-Netfilter-Framework ermöglicht die Einrichtung einer wirksamen Firewall, die dieverschiedenen Netzwerke voneinander trennt. Mithilfe von iptables – einer generischenTabellenstruktur für die Definition von Regelsätzen – können Sie präzise steuern,welche Pakete eine Netzwerkschnittstelle passieren dürfen. Ein derartiger Paketfilterkann schnell und einfach mithilfe von SuSEfirewall2 und dem entsprechenden YaST-Modul eingerichtet werden.

4.1.1 Paketfilterung mit iptablesDie Komponenten netfilter und iptables sind verantwortlich für das Filtern und Bearbei-ten von Netzwerkpaketen sowie für NAT (Network Address Translation, Übersetzungder Netzwerkadressen). Die Filterkriterien und alle dazugehörigen Aktionen werden

Sicherheit in Linux 109

Page 110: Suse 10.1 Linux Reference De

in Ketten gespeichert, die nacheinander mit den einzelnen eingehenden Netzwerkpaketenverglichen werden müssen. Die für den Vergleich zu verwendenden Ketten werden inTabellen gespeichert. Mit dem Befehl iptables können Sie diese Tabellen undRegelsätze bearbeiten.

Der Linux-Kernel verwaltet drei Tabellen, wobei jede einzelne für eine bestimmteKategorie von Funktionen des Paketfilters dient:

FilterDiese Tabelle enthält die meisten Filterregeln, da sie die eigentliche Paketfilterungimplementiert. Hier wird u. a. entschieden, welche Pakete durchgelassen (ACCEPT)oder abgelehnt (DROP) werden.

natIn dieser Tabelle werden alle Änderungen an den Quell- und Zieladressen vonPaketen definiert. Mithilfe dieser Funktionen können Sie das Masqueradingimplementieren, bei dem es sich um einen Spezialfall von NAT handelt und dereingesetzt wird, um private Netzwerke mit dem Internet zu verbinden.

mangleDie Regeln in dieser Tabelle ermöglichen das Bearbeiten von Werten, die in IP-Headern gespeichert sind (z. B. den Typ des Diensts).

110 Referenz

Page 111: Suse 10.1 Linux Reference De

Abbildung 4.1 iptables: Die möglichen Wege eines Pakets

Routing

Routing

im lokalenSystem

Prozesse

Ausgehendes Paket

Eingehendes Paket

Filter

nat

mangle

POSTROUTING

PREROUTING

nat

mangle

WEITERLEITEN

mangle

Filter

EINGABE

mangle

Filter

AUSGABE

nat

mangle

Diese Tabellen enthalten mehrere vordefinierte Ketten, mit denen die Pakete verglichenwerden:

Sicherheit in Linux 111

Page 112: Suse 10.1 Linux Reference De

PREROUTINGDiese Kette wird auf eingehende Pakete angewendet.

EINGABEDiese Kette wird auf Pakete angewendet, die an interne Prozesse des Systemsadressiert sind.

WEITERLEITENDiese Kette wird auf Pakete angewendet, die durch das System nur weitergeleitetwerden.

AUSGABEDiese Kette wird auf Pakete angewendet, die aus dem System selbst stammen.

POSTROUTINGDiese Kette wird auf alle ausgehenden Pakete angewendet.

Abbildung 4.1, „iptables: Die möglichen Wege eines Pakets“ (S. 111) zeigt die Wege,die ein Netzwerkpaket auf einem System durchlaufen kann. Der Einfachheit halberwerden in dieser Abbildung die Tabellen als Teile von Ketten dargestellt. In Wirklichkeitsind diese Ketten jedoch in den Tabellen selbst enthalten.

Im einfachsten aller möglichen Fälle geht ein eingehendes Paket, das an das Systemselbst adressiert ist, an der Schnittstelle eth0 ein. Das Paket wird zunächst an dieKettePREROUTING der Tabellemangle und anschließend an die KettePREROUTINGder Tabelle natweitergegeben. Im folgenden Schritt des Paket-Routings wird ermittelt,dass das tatsächliche Ziel des Pakets ein Prozess des Systems selbst ist. Nach denINPUT-Ketten der Tabellen mangle und filter erreicht das Paket schließlich seinZiel, vorausgesetzt, dass es tatsächlich den Regeln der Tabelle filter entspricht.

4.1.2 Grundlegendes zum MasqueradingMasquerading ist der Linux-Spezialfall von NAT (Network Address Translation), derÜbersetzung von Netzwerkadressen. Es kann verwendet werden, um ein kleines LAN(in dem die Hosts IP-Adressen aus dem privaten Bereich verwenden – sieheAbschnitt 18.1.2, „Netzmasken und Routing“ (S. 349)) mit dem Internet (in dem offizi-elle IP-Adressen verwendet werden) zu verbinden. Damit die LAN-Hosts eine Verbin-dung zum Internet herstellen können, müssen ihre privaten Adressen in eine offizielleAdresse übersetzt werden. Dies geschieht auf dem Router, der als Gateway zwischen

112 Referenz

Page 113: Suse 10.1 Linux Reference De

dem LAN und dem Internet agiert. Das zugrunde liegende Prinzip ist einfach: DerRouter verfügt über mehrere Netzwerkschnittstellen, in der Regel eine Netzwerkkarteund eine separate Schnittstelle für die Verbindung mit dem Internet. Letztere verbindetden Router mit der Außenwelt und eine oder mehrere andere Schnittstellen verbindenihn mit den LAN-Hosts. Wenn diese Hosts im lokalen Netzwerk mit der Netzwerkkarte(z. B. eth0) des Routers verbunden sind, senden Sie alle Pakete, die nicht an daslokale Netzwerk adressiert sind, an ihr Standard-Gateway (den Router).

WICHTIG: Verwenden der richtigen Netzmaske

Stellen Sie beim Konfigurieren des Netzwerks sicher, dass sowohl die Broadcast-Adresse als auch die Netzmaske für alle lokalen Hosts identisch sind. Anderen-falls können die Pakete nicht ordnungsgemäß weitergeleitet werden.

Wenn einer der LAN-Hosts ein Paket an eine Internetadresse sendet, wird es zunächstzum Standardrouter weitergeleitet. Bevor der Router jedoch derartige Pakete weiterleitenkann, muss er entsprechend konfiguriert werden. In SUSE Linux ist diese Funktion ineiner Standardinstallation aus Sicherheitsgründen nicht aktiviert. Um den Router ent-sprechend zu aktivieren, setzen Sie die Variable IP_FORWARD in der Datei /etc/sysconfig/sysctl auf IP_FORWARD=yes.

Der Zielhost der Verbindung kann Ihren Router sehen, erfährt aber nichts über denHost im internen Netzwerk, von dem die Pakete stammen. Aus diesem Grund wirddiese Technik als Masquerading bezeichnet. Die Zieladresse für Anwortpakete ist wegender Adressübersetzung wieder der Router. Der Router muss die eingehenden Paketeidentifizieren und ihre Zieladressen übersetzen, sodass die Pakete an den richtigen Hostim Netzwerk weitergeleitet werden können.

Da das Routing des eingehenden Verkehrs von der Masquerading-Tabelle abhängigist, ist es nicht möglich, von außen eine Verbindung zu einem internen Host herzustellen.Für eine derartige Verbindung gibt es in der Tabelle keinen Eintrag. Zudem verfügteine eingerichtete Verbindung in der Tabelle über einen zugeordneten Status, sodassdieser Tabelleneintrag nicht von einer zweiten Verbindung genutzt werden kann.

Als Folge davon können bei einigen Anwendungsprotokollen, z. B. ICQ, cucme, IRC(DCC, CTCP) und FTP (im PORT-Modus) Probleme auftreten. Netscape, das Standard-FTP-Programm und viele andere Programme verwenden den PASV-Modus. Dieserpassive Modus ist in Bezug auf die Paketfilterung und das Masquerading weitaus pro-blemloser.

Sicherheit in Linux 113

Page 114: Suse 10.1 Linux Reference De

4.1.3 Grundlegendes zu FirewallsFirewall ist wohl der am weitesten verbreitete Begriff für einen Mechanismus, der zweiNetze miteinander verbindet und gleichzeitig für möglichst kontrollierten Datenverkehrsorgt. Genau genommen ist die in diesem Abschnitt beschriebene Firewall eigentlichein Paketfilter. Ein Paketfilter regelt den Datenfluss anhand von bestimmten Kriterienwie Protokollen, Ports und IP-Adressen. Auf diese Weise können Sie Pakete blockieren,die aufgrund ihrer Adressierung Ihr Netz nicht erreichen sollen. Wenn Sie beispielsweiseden öffentlichen Zugriff auf Ihren Webserver zulassen möchten, müssen Sie den ent-sprechenden Port explizit öffnen. Ein Paketfilter untersucht jedoch nicht den Inhaltdieser Pakete, sofern sie legitim adressiert sind, also beispielsweise mit IhremWebserver als Ziel. Das Paket könnte insofern einen Angriff auf ein CGI-Programmauf Ihrem Webserver enthalten und wird vom Paketfilter trotzdem durchgelassen.

Ein effektiverer, wenn auch komplexerer Mechanismus ist die Kombination mehrererSysteme, z. B. ein Paketfilter, der mit einem Anwendungs-Gateway bzw. -Proxyinteragiert. In diesem Fall lehnt der Paketfilter alle Pakete ab, die an deaktivierte Portsadressiert sind. Es werden nur die Pakete angenommen, die an das Anwendungs-Gatewayadressiert sind. Dieses Gateway bzw. dieser Proxy gibt vor, der eigentliche Client desServers zu sein. In diesem Sinn kann ein solcher Proxy auf der Protokollebene derjeweiligen Anwendung als Masquerading-Host angesehen werden. Ein Beispiel füreinen derartigen Proxy ist Squid, ein HTTP-Proxyserver. Um Squid verwenden zukönnen, muss der Browser für die Kommunikation über den Proxy konfiguriert sein.Alle angeforderten HTTP-Seiten werden aus dem Proxy-Cache bedient und Seiten, dieim Cache nicht gefunden werden, werden vom Proxy aus dem Internet geholt. Einweiteres Beispiel ist die SUSE-Proxy-Suite (proxy-suite), die einen Proxy für dasFTP-Protokoll zur Verfügung stellt.

Im folgenden Abschnitt wird der zum Lieferumfang von SUSE Linux gehörendePaketfilter beschrieben. Weitere Informationen zu Paketfiltern und Firewalls findenSie in der Datei „Firewall HOWTO“, die im Paket howto enthalten ist. Wenn diesesPaket installiert ist, lesen Sie die HOWTO-Informationen mit dem Befehlless /usr/share/doc/howto/en/txt/Firewall-HOWTO.gz.

4.1.4 SuSEfirewall2SuSEfirewall2 ist ein Skript, das die in /etc/sysconfig/SuSEfirewall2gesetzten Variablen ausliest, um mehrere iptables-Regeln zu generieren. Es definiert

114 Referenz

Page 115: Suse 10.1 Linux Reference De

drei Sicherheitszonen, obwohl nur die erste und die zweite Zone in der folgenden Bei-spielkonfiguration berücksichtigt werden:

Externe ZoneDavon ausgehend, dass es keine Möglichkeit gibt, Vorgänge im externen Netzwerkzu steuern, muss der Host vor diesem geschützt werden. In den meisten Fällenhandelt es sich bei dem externen Netzwerk um das Internet, es könnte aber auchein anderes unsicheres Netzwerk sein, z. B. ein WLAN.

Interne ZoneDiese Zone bezieht sich auf das private Netzwerk, wobei es sich in den meistenFällen um ein LAN handelt. Wenn die Hosts in diesem Netzwerk IP-Adressen ausdem privaten Bereich (siehe Abschnitt 18.1.2, „Netzmasken und Routing“ (S. 349))verwenden, müssen Sie NAT (Network Address Translation) aktivieren, damitHosts im internen Netzwerk auf externe Hosts zugreifen können.

Demilitarisierte Zone (DMZ)Während Hosts, die sich in dieser Zone befinden, sowohl vom externen als auchvom internen Netzwerk aus erreicht werden können, können sie selbst nicht aufdas interne Netzwerk zugreifen. Diese Konfiguration kann als zusätzliche Verteidi-gungslinie vor das interne Netzwerk gesetzt werden, da die DMZ-Systeme vominternen Netzwerk isoliert sind.

Jegliche Art von Netzwerkverkehr, der gemäß der Filterregel nicht explizit erlaubt ist,wird durch iptables unterdrückt. Daher muss jede Schnittstelle mit eingehendem Verkehreiner der drei Zonen zugeordnet werden. Legen Sie für alle Zonen die zulässigenDienste und Protokolle fest. Diese Regelsätze gelten jedoch nur für Pakete, die vonentfernten Hosts stammen. Lokal generierte Pakete werden von der Firewall nichterfasst.

Die Konfiguration kann mit YaST ausgeführt werden (siehe „Konfiguration mit YaST“(S. 116)). Sie lässt sich jedoch auch manuell in der Datei /etc/sysconfig/SuSEfirewall2 vornehmen, die sehr gut kommentiert ist. Zudem stehen weitereBeispielszenarien in/usr/share/doc/packages/SuSEfirewall2/EXAMPLESzur Verfügung.

Sicherheit in Linux 115

Page 116: Suse 10.1 Linux Reference De

Konfiguration mit YaST

WICHTIG: Automatische Firewall-Konfiguration

Im Anschluss an die Installation startet YaST automatisch eine Firewall für allekonfigurierten Schnittstellen. Wenn ein Server auf dem System konfiguriertund aktiviert ist, kann YaST die automatisch generierte Firewall-Konfigurationmit den Optionen Firewall-Ports auf ausgewählten Schnittstellen öffnen oderFirewall-Port öffnen in den Serverkonfigurationsmodulen ändern. Einige Server-modul-Dialogfelder enthalten die Schaltfläche Firewall-Details zum Aktivierenzusätzlicher Dienste und Ports. Die Firewall kann mit dem YaST-Firewall-Konfi-gurationsmodul aktiviert, deaktiviert oder neu konfiguriert werden.

Der Zugriff auf die YaST-Dialogfelder für die grafische Konfiguration erfolgt über dasYaST-Kontrollzentrum. Wählen Sie Sicherheit und Benutzer→ Firewall. Die Konfigu-ration ist in sieben Abschnitte aufgeteilt, auf die Sie über die Baumstruktur auf derlinken Seite direkt zugreifen können.

StartIn diesem Dialogfeld legen Sie das Startverhalten fest. In einer Standardinstallationwird SuSEfirewall2 automatisch gestartet. Außerdem können Sie in diesem Dialog-feld die Firewall starten und stoppen. Um die neuen Einstellungen für eine aktiveFirewall zu übernehmen, wählen Sie Einstellungen speichern und Firewall nunneu starten.

116 Referenz

Page 117: Suse 10.1 Linux Reference De

Abbildung 4.2 Die YaST-Firewall-Konfiguration

SchnittstellenHier werden alle bekannten Netzwerkschnittstellen aufgelistet. Um eine Schnittstelleaus einer Zone zu entfernen, markieren Sie sie, klicken Sie auf Bearbeiten undwählen Sie Keine Zone zugewiesen. Um eine Schnittstelle zu einer Zone hinzuzu-fügen, markieren Sie sie, klicken Sie auf Bearbeiten und wählen Sie anschließendeine der verfügbaren Zonen. Mit der Option Benutzerdefiniert können Sie aucheine spezielle Schnittstelle mit eigenen Einstellungen erstellen.

Erlaubte DiensteDiese Option benötigen Sie, um einer Zone Dienste Ihres Systems zur Verfügungzu stellen, vor der es geschützt ist. Das System ist standardmäßig nur vor externenZonen geschützt. Sie müssen alle Dienste explizit zulassen, die den externen Hostszur Verfügung stehen sollen. Aktivieren Sie die Dienste nach Auswahl dergewünschten Zone in Erlaubte Dienste für gewählte Zone.

MasqueradingMit der Masquerading-Funktionalität verbergen Sie das interne Netzwerk vorexternen Netzwerken, z. B. dem Internet, und ermöglichen den Hosts im internenNetzwerk gleichzeitig den transparenten Zugriff auf das externe Netzwerk. Anfor-derungen vom externen an das interne Netzwerk werden blockiert. Anforderungenaus dem internen Netzwerk werden scheinbar vom Masquerading-Server ausgege-ben, der extern sichtbar ist. Wenn dem externen Netzwerk spezielle Dienste eines

Sicherheit in Linux 117

Page 118: Suse 10.1 Linux Reference De

internen Computers zur Verfügung gestellt werden sollen, fügen Sie für den Diensteine spezielle Umadressierungsregel hinzu.

BroadcastIn diesem Dialogfeld konfigurieren Sie die UDP-Ports, die Broadcasts zulassensollen. Fügen Sie die erforderlichen Nummern der Ports oder Dienste getrenntdurch Leerzeichen für die entsprechende Zone hinzu. Weitere Informationen hierzufinden Sie in der Datei /etc/services.

Hier können Sie auch das Protokollieren von Broadcasts aktivieren, die nichtakzeptiert werden. Dies kann problematisch sein, da sich Windows-Hosts überBroadcasts miteinander bekannt machen und daher viele Pakete generieren, dienicht akzeptiert werden.

IPsec-UnterstützungIn diesem Dialogfeld konfigurieren Sie, ob dem externen Netzwerk der IPsec-Dienstzur Verfügung stehen soll. Unter Details konfigurieren Sie, welche Pakete alsverbürgt angesehen werden sollen.

Protokollierungs-LevelFür die Protokollierung gibt es zwei Regeln: eine für akzeptierte und eine für nichtakzeptierte Pakete. Nicht akzeptierte Pakete werden verworfen (DROPPED) oderabgelehnt (REJECTED). Wählen Sie die Option Alles protokollieren,Nur kritischeprotokollieren oder Keine protokollieren für beide Regeln.

Wenn Sie die Firewall-Konfiguration abgeschlossen haben, wählen Sie Weiter, umdieses Dialogfeld zu schließen. Anschließend wird eine zonenbezogene Zusammenfas-sung der Firewall-Konfiguration geöffnet. Aktivieren Sie darin alle Einstellungen. Indieser Zusammenfassung sind alle zulässigen Dienste, Ports und Protokolle aufgelistet.Mit der Option Zurück können Sie die Konfiguration ändern. Wählen SieÜbernehmen,um die Konfiguration zu speichern.

Manuelle KonfigurationIn den folgenden Abschnitten sind detaillierte Anweisungen für eine erfolgreicheKonfiguration enthalten. Für jeden Konfigurationsschritt wird angegeben, ob er sichauf die Firewall- oder Masquerading-Konfiguration bezieht. Die in der Konfigurations-datei erwähnten Aspekte, die mit der DMZ (Demilitarisierte Zone) in Zusammenhangstehen, werden hier nicht näher erläutert. Sie sind nur für komplexere Netzwerkinfra-

118 Referenz

Page 119: Suse 10.1 Linux Reference De

strukturen größerer Unternehmen (Corporate Networks) relevant, die eine aufwändigeKonfiguration und umfassende Kenntnisse erfordern.

Aktivieren Sie zunächst mit dem YaST-Runlevel-Editor SuSEfirewall2 für Ihren Run-level (wahrscheinlich 3 oder 5). Dadurch werden symbolische Links für die SuSEfire-wall2_*-Skripts in den Verzeichnissen unter /etc/init.d/rc?.d/ angelegt.

FW_DEV_EXT (Firewall, Masquerading)Das mit dem Internet verbundene Gerät. Geben Sie für eine Modemverbindungppp0 ein. Geben Sie für eine ISDN-Verbindung ippp0 ein. Für DSL-Verbindun-gen geben Sie dsl0 ein. Um die der Standardroute entsprechende Schnittstelle zuverwenden, geben Sie auto an.

FW_DEV_INT (Firewall, Masquerading)Das mit dem internen, privaten Netzwerk verbundene Gerät (z. B. eth0). Wennes kein internes Netzwerk gibt und die Firewall nur den Host schützt, auf dem sieausgeführt wird, machen Sie keine Angaben.

FW_ROUTE (Firewall, Masquerading)Wenn Sie die Masquerading-Funktion benötigen, setzen Sie diese Variable aufyes. Die internen Hosts sind von außen nicht sichtbar, da ihre private Netzwerk-adressen (z. B. 192.168.x.x) von Internetroutern ignoriert werden.

Setzen Sie diese Variable für Firewalls ohne Masquerading auf yes, wenn derZugriff auf das interne Netzwerk zugelassen werden soll. In diesem Fall müssendie internen Computer offiziell zugewiesene IP-Adressen haben. Sie sollten denexternen Zugriff auf das interne Netzwerk in der Regel jedoch nicht zulassen.

FW_MASQUERADE (Masquerading)Setzen Sie diese Variable auf yes, wenn Sie die Masquerading-Funktion benötigen.Dadurch wird den internen Hosts eine virtuelle direkte Verbindung zum Internetzur Verfügung gestellt. Es ist jedoch weitaus sicherer, wenn zwischen den Hostsdes internen Netzwerks und dem Internet ein Proxyserver geschaltet ist. Für dievon einem Proxyserver zur Verfügung gestellten Dienste ist das Masqueradingnicht erforderlich.

FW_MASQ_NETS (Masquerading)Geben Sie die Hosts oder Netzwerke, für die die Masquerading-Funktion aktiviertwerden soll, durch Leerzeichen getrennt an. Beispiel:FW_MASQ_NETS="192.168.0.0/24 192.168.10.1"

Sicherheit in Linux 119

Page 120: Suse 10.1 Linux Reference De

FW_PROTECT_FROM_INT (Firewall)Setzen Sie diese Variable auf yes, um den Firewall-Host vor Angriffen aus deminternen Netzwerk zu schützen. Dem internen Netzwerk stehen nur die explizitaktivierten Dienste zur Verfügung. Weitere Informationen hierzu finden Sie auchunter FW_SERVICES_INT_TCP und FW_SERVICES_INT_UDP.

FW_SERVICES_EXT_TCP (Firewall)Geben Sie die zu öffnenden TCP-Ports an. Für eine normale Arbeitsstation, die inder Regel keine Dienste benötigt, müssen Sie hier keine Angaben machen.

FW_SERVICES_EXT_UDP (Firewall)Lassen Sie dieses Feld leer, es sei denn, Sie möchten einen aktiven UDP-Dienstverfügbar machen. UDP wird von Diensten wie DNS-Servern, IPSec, TFTP, DHCPund anderen verwendet. Geben Sie in diesem Fall die zu verwendenden UDP-Portsan.

FW_SERVICES_INT_TCP (Firewall)Mit dieser Variablen legen Sie die für das interne Netzwerk verfügbaren Dienstefest. Die Notation ist dieselbe wie für FW_SERVICES_EXT_TCP, aber die Ein-stellungen werden auf das interneNetzwerk angewendet. Diese Variable muss nurgesetzt werden, wenn FW_PROTECT_FROM_INT auf yes gesetzt ist.

FW_SERVICES_INT_UDP (Firewall)Siehe FW_SERVICES_INT_TCP.

Testen Sie im Anschluss an die Konfiguration die Firewall. Die Firewall-Regeln werdenerstellt, indem Sie SuSEfirewall2 start als root eingeben. Testen Sie aufeinem externen Host anschließend beispielsweise mit telnet, ob die Verbindungtatsächlich abgelehnt wird. Prüfen Sie anschließend /var/log/messages, wo Sieähnliche Einträge wie die folgenden sehen sollten:Mar 15 13:21:38 linux kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:80:c8:94:c3:e7:00:a0:c9:4d:27:56:08:00 SRC=192.168.10.0 DST=192.168.10.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15330 DF PROTO=TCP SPT=48091 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A061AFEBC0000000001030300)

Weitere Pakete zum Testen der Firewall-Konfiguration sind „nmap“ oder „nessus“.Die Dokumentation von nmap befindet sich im Verzeichnis /usr/share/doc/packages/nmap und die Dokumentation von nessus ist nach der Installation desentsprechenden Pakets im Verzeichnis /usr/share/doc/packages/nessus-core enthalten.

120 Referenz

Page 121: Suse 10.1 Linux Reference De

4.1.5 Weitere InformationenDie aktuellsten Informationen sowie weitere Dokumentationen zumPaketSuSEfirewall2 finden Sie im Verzeichnis/usr/share/doc/packages/SuSEfirewall2. Die Homepage der Projekte „netfilter“ und „iptables“ unter derAdresse http://www.netfilter.org bietet eine umfassende Sammlung vonDokumenten in zahlreichen Sprachen.

4.2 SSH: Sicherer NetzwerkbetriebMit der steigenden Anzahl installierter Computer in Netzwerkumgebungen wird eshäufig nötig, auf Hosts von einem entfernten Standort aus zuzugreifen. Das bedeutetgewöhnlich, dass ein Benutzer zur Authentifizierung Zeichenfolgen für Anmeldungund Passwort sendet. Solange diese Zeichenfolgen als Klartext übertragen werden,können sie abgefangen und missbraucht werden, um Zugriff auf dieses Benutzerkontozu erhalten, sogar ohne dass der autorisierte Benutzer etwas davon bemerkt. Damitwären nicht nur alle Dateien des Benutzers für einen Angreifer zugänglich, das illegaleKonto könnte auch benutzt werden, um Administrator- oder root-Zugriff zu erhaltenoder in andere Systeme einzudringen. In der Vergangenheit wurden Fernverbindungenmit telnet aufgebaut, das gegen Ausspionierung keine Vorkehrungen in Form vonVerschlüsselung oder anderen Sicherheitsmechanismen trifft. Es gibt andere ungeschützteKommunikationskanäle, z. B. das traditionelle FTP-Protokoll und einige Kopierverbin-dungen zwischen Computern.

Die SSH-Software liefert den gewünschten Schutz. Die komplette Authentifizierung(gewöhnlich Benutzername und Passwort) und Kommunikation sowie sämtlicherDatenaustausch zwischen den Hosts erfolgen hier verschlüsselt. Zwar ist auch mit SSHweiterhin das Abfangen der übertragenen Daten möglich, doch ist der Inhalt verschlüsseltund kann nur entziffert werden, wenn der Schlüssel bekannt ist. So wird durch SSHsichere Kommunikation über unsichere Netze wie das Internet möglich. SUSE Linuxbietet SSH-Funktionen mit dem Paket OpenSSH an.

4.2.1 Das Paket OpenSSHSUSE Linux installiert das Paket OpenSSH standardmäßig. Daher stehen Ihnen dieProgramme ssh, scp und sftp als Alternative für telnet, rlogin, rsh, rcp und ftp zur Ver-

Sicherheit in Linux 121

Page 122: Suse 10.1 Linux Reference De

fügung. In der Standardkonfiguration ist der Zugriff auf ein SUSE Linux-System nurmit den OpenSSH-Dienstprogrammen möglich, und nur wenn dies die Firewall erlaubt.

4.2.2 Das ssh-ProgrammMit ssh können Sie Verbindung zu einem entfernten System aufnehmen und dortinteraktiv arbeiten. Es ersetzt somit gleichermaßen telnet und rlogin. Das Programmslogin ist lediglich ein symbolischer Link, der auf ssh weist. Sie können sich z. B. mitdem Befehl ssh sun auf dem Rechner sun anmelden. Der Host fordert Sie dann zurEingabe des Passworts am System sun auf.

Nach erfolgreicher Authentifizierung können Sie dort in der Befehlszeile oder interaktiv,z. B. mit YaST, arbeiten. Sollten sich der lokale Benutzername und der auf dem entfern-ten System unterscheiden, können Sie einen abweichenden Namen angeben, z.B.ssh-laugustine sun oder ssh augustine@sun.

Darüber hinaus bietet ssh die von rsh bekannte Möglichkeit, Befehle auf einem entferntenSystem auszuführen. Im folgenden Beispiel wird der Befehl uptime auf dem Hostsun ausgeführt und ein Verzeichnis mit dem Namen tmp angelegt. Die Programmaus-gabe erfolgt auf dem lokalen Terminal des Hosts earth.ssh otherplanet "uptime; mkdir tmp" tux@otherplanet's password:1:21pm up 2:17, 9 users, load average: 0.15, 0.04, 0.02

Anführungszeichen sind hier zum Zusammenfassen der beiden Anweisungen in einemBefehl erforderlich. Nur so wird auch der zweite Befehl auf dem Host sun ausgeführt.

4.2.3 scp - sicheres Kopierenscp kopiert Dateien auf einen entfernten Computer. Es ist ein sicherer und verschlüsselterErsatz für rcp. Beispielsweise kopiert scp MyLetter.tex sun: die DateiMyLetter.tex vom Host earth auf den Host sun. Wenn sich die Benutzernamen aufearth und sun unterscheiden, geben Sie den letzteren im Formatbenutzername@hostan. Eine Option -l existiert für diesen Befehl nicht.

Nachdem das Passwort eingegeben wurde, beginnt scp mit der Datenübertragung undzeigt dabei den Fortschritt durch einen von links nach rechts anwachsenden Balken ausSternen an. Zudem wird am rechten Rand die geschätzte Restübertragungszeit (bis zum

122 Referenz

Page 123: Suse 10.1 Linux Reference De

Erreichen des rechten Balkenendes) angezeigt. Jegliche Ausgabe kann durch die Option-q unterdrückt werden.

scp bietet auch ein rekursives Kopierverfahren für ganze Verzeichnisse. Der Befehlscp -r src/ sun:backup/ kopiert den kompletten Inhalt des Verzeichnissessrc einschließlich aller Unterverzeichnisse in das Unterverzeichnis backup auf demHost sun. Das Unterverzeichnis wird automatisch angelegt, wenn es noch nicht existiert.

Die Option -p weist scp an, den Zeitstempel von Dateien unverändert zu belassen. -Csorgt für komprimierte Datenübertragung. Dadurch wird das zu übertragende Datenvo-lumen minimiert, aber der Prozessor stärker belastet.

4.2.4 sftp - sichere DateiübertragungDas Programm sftp kann anstelle von scp zur sicheren Dateiübertragung verwendetwerden. Bei einer sftp-Sitzung können Sie viele bereits von ftp bekannte Befehle ver-wenden. Das Programm sftp ist gegenüber scp vor allem beim Übertragen von Daten,deren Dateinamen unbekannt sind, von Vorteil.

4.2.5 Der SSH-Daemon (sshd) – ServerseiteDamit die SSH-Clientprogramme ssh und scp eingesetzt werden können, muss imHintergrund der SSH-Daemon laufen und an TCP/IP-Port 22 auf Verbindungenwarten. Während des ersten Starts generiert der Daemon drei Schlüsselpaare. DieSchlüsselpaare bestehen jeweils aus einem privaten und einem öffentlichen (engl.public) Teil. Deshalb wird dies als ein Public-Key-basiertes Verfahren bezeichnet. Umdie Sicherheit der Kommunikation über SSH zu gewährleisten, darf ausschließlich derSystemadministrator die Dateien der privaten Schlüssel einsehen. Die Dateirechtewerden durch die Standardinstallation entsprechend eingestellt. Die privaten Schlüsselwerden lediglich lokal vom SSH-Daemon benötigt und dürfen an niemanden weiterge-geben werden. Demgegenüber werden die öffentlichen Schlüsselbestandteile (an derNamenserweiterung .pub erkennbar) an den Client weitergegeben, der die Verbindunganfordert. Sie sind für alle Benutzer lesbar.

Eine Verbindung wird vom SSH-Client eingeleitet. Der wartende SSH-Daemon undder anfragende SSH-Client tauschen Identifikationsdaten aus, um die Protokoll- undSoftwareversion abzugleichen und eine Verbindung durch den falschen Port auszuschlie-

Sicherheit in Linux 123

Page 124: Suse 10.1 Linux Reference De

ßen. Da ein untergeordneter Prozess des ursprünglichen SSH-Daemons antwortet, sindgleichzeitig viele SSH-Verbindungen möglich.

OpenSSH unterstützt zur Kommunikation zwischen SSH-Server und SSH-Client dasSSH-Protokoll in den Versionen 1 und 2. Nach einer Neuinstallation von SUSE Linuxwird automatisch die aktuelle Protokoll-Version 2 eingesetzt. Möchten Sie nach einemUpdate weiterhin SSH 1 beibehalten, folgen Sie den Anweisungen in /usr/share/doc/packages/openssh/README.SuSE. Dort ist ebenfalls beschrieben, wieSie in wenigen Schritten eine SSH 1-Umgebung in eine funktionierende SSH 2-Umgebung umwandeln.

Bei Verwendung der SSH Protokoll-Version 1 sendet der Server dann seinen öffentlichenHost-Schlüssel und einen stündlich vom SSH-Daemon neu generierten Server-Schlüssel.Anhand dieser beiden verschlüsselt der SSH-Client einen von ihm frei gewählten Sit-zungsschlüssel und sendet diesen an den SSH-Server. Der SSH-Client teilt dem Serverzudem die gewählte Verschlüsselungsmethode (engl. cipher) mit.

Version 2 des SSH-Protokolls kommt ohne den Server-Schlüssel aus. Beide Seitenverwenden einen Algorithmus nach Diffie-Hellman, um ihre Schlüssel auszutauschen.

Die zur Entschlüsselung des Sitzungsschlüssels zwingend erforderlichen privaten Host-und Server-Schlüssel können nicht aus den öffentlichen Teilen abgeleitet werden. Somitkann allein der kontaktierte SSH-Daemon mit seinen privaten Schlüsseln den Sitzungs-schlüssel entziffern (siehe man/usr/share/doc/packages/openssh/RFC.nroff). Diese einleitende Phaseder Verbindung lässt sich mithilfe der Fehlersuchoption -v des SSH-Clients genaubeobachten.

Version 2 des SSH-Protokolls wird standardmäßig verwendet. Jedoch kann mit demSchalter -1 auch Version 1 des SSH-Protokolls erzwungen werden. Der Client legtnach der ersten Kontaktaufnahme mit einem entfernten Host alle öffentlichen Host-Schlüssel in~/.ssh/known_hosts ab. So können so genannte „man-in-the-middle“-Angriffe unterbunden werden, d. h. Versuche von fremden SSH-Servern, Name undIP-Adresse eines anderen vorzutäuschen. Derartige Angriffe fallen entweder durcheinen Host-Schlüssel auf, der nicht in ~/.ssh/known_hosts enthalten ist, oderdurch die Unfähigkeit des Servers, den Sitzungsschlüssel mangels des passenden privatenGegenstücks zu entschlüsseln.

Es empfiehlt sich, die in /etc/ssh/ abgelegten privaten und öffentlichen Schlüsselextern und gut geschützt zu archivieren. So können Änderungen der Schlüssel erkannt

124 Referenz

Page 125: Suse 10.1 Linux Reference De

und nach einer Neuinstallation die alten wieder eingespielt werden. Dies erspart denBenutzern beunruhigende Warnungen. Wenn sichergestellt ist, dass es sich trotz derWarnung um den korrekten SSH-Server handelt, muss der vorhandene Eintrag zu diesemSystem aus ~/.ssh/known_hosts entfernt werden.

4.2.6 SSH-AuthentifizierungsmechanismenNun erfolgt die eigentliche Authentifizierung, die in ihrer einfachsten Form aus derEingabe eines Passworts besteht, wie bereits oben erwähnt. Ziel von SSH war die Ein-führung einer sicheren, aber zugleich bedienerfreundlichen Software. Wie bei denabzulösenden Programmen rsh und rlogin muss deshalb auch SSH eine im Alltag einfachzu nutzende Authentifizierungsmethode bieten. SSH realisiert dies mithilfe eines wei-teren Schlüsselpaares, das vom Benutzer erzeugt wird. Dazu liefert das SSH-Paket einHilfsprogramm: ssh-keygen. Nach der Eingabe von ssh-keygen -t rsa oderssh-keygen -t dsa wird das Schlüsselpaar generiert und der Basisdateiname zurAblage der Schlüssel erfragt.

Bestätigen Sie die Voreinstellung und beantworten Sie die Frage nach einem Passwort-satz Auch wenn die Software einen leeren Passwortsatz vorschlägt, sollte bei der hierbeschriebenen Vorgehensweise ein Text von 10 bis 30 Zeichen Länge gewählt werden.Verwenden Sie keine kurzen und einfachen Wörter oder Phrasen. Bestätigen Sie dieEingabe, indem Sie den Passwortsatz wiederholen. Anschließend wird der Speicherortdes privaten und öffentlichen Schlüssels, in unserem Beispiel der Dateien id_rsa undid_rsa.pub, ausgegeben.

Verwenden Sie ssh-keygen -p -t rsa oder ssh-keygen -p -t dsa, umIhren alte Passwortsatz zu ändern. Kopieren Sie den öffentlichen Teil des Schlüssels(in unserem Beispiel id_rsa.pub) auf den entfernten Computer und speichern Sieihn dort unter~/.ssh/authorized_keys. Zur Authentifizierung werden Sie beimnächsten Verbindungsaufbau nach Ihrem Passwortsatz gefragt. Sollte dies nicht derFall sein, überprüfen Sie bitte Ort und Inhalt dieser Dateien.

Auf Dauer ist diese Vorgehensweise mühsamer als die Eingabe eines Passworts. Ent-sprechend liefert das SSH-Paket ein weiteres Werkzeug, ssh-agent, das für die Dauereiner X-Sitzung private Schlüssel bereithält. Dazu wird die gesamte X-Sitzung alsuntergeordneter Prozess von ssh-agent gestartet. Sie erreichen dies am einfachsten,indem Sie am Anfang der Datei .xsession die Variable usessh auf yes setzenund sich über einen Display-Manager, z. B. KDM oder XDM, anmelden. Alternativkönnen Sie ssh-agent startx verwenden.

Sicherheit in Linux 125

Page 126: Suse 10.1 Linux Reference De

Nun können Sie ssh oder scp wie gewohnt verwenden. Sofern Sie Ihren öffentlichenSchlüssel wie oben beschrieben verteilt haben, werden Sie jetzt nicht mehr nach IhremPasswort gefragt. Beenden Sie beim Verlassen Ihres Computers Ihre X-session unbedingtoder sperren Sie ihn durch eine entsprechende Anwendung, z. B. xlock.

Alle wichtigen Änderungen, die sich mit der Einführung von Version 2 des SSH-Proto-kolls ergeben haben, sind auch in der Datei /usr/share/doc/packages/openssh/README.SuSE dokumentiert.

4.2.7 X-, Authentifizierungs- undWeiterleitungsmechanismen

Über die zuvor beschriebenen sicherheitsbezogenen Verbesserungen hinaus erleichtertSSH auch die Verwendung von entfernten X-Anwendungen. Insoweit Sie ssh mit derOption -X aufrufen, wird auf dem entfernten Computer automatisch die DISPLAY-Variable gesetzt und alle X-Ausgaben werden durch die bestehende SSH-Verbindungan den entfernten Computer exportiert. Gleichzeitig unterbindet dies die bisher beste-henden Abhörmöglichkeiten bei entfernt aufgerufenen und lokal betrachteten X-Anwendungen.

Durch Hinzufügen der Option -A wird der Authentifizierungsmechanismus von ssh-agent auf den nächsten Computer mit übernommen. So können Sie an unterschiedlichenComputern arbeiten, ohne ein Passwort eingeben zu müssen. Allerdings ist das nurmöglich, wenn Sie zuvor Ihren öffentlichen Schlüssel auf die beteiligten Zielhostsverteilt und dort korrekt gespeichert haben.

Beide Mechanismen sind in der Voreinstellung deaktiviert, können jedoch in der sys-temweiten Konfigurationsdatei/etc/ssh/sshd_config oder der benutzereigenenDatei ~/.ssh/config permanent aktiviert werden.

ssh kann auch zur Umleitung von TCP/IP-Verbindungen benutzt werden. In den folgen-den Beispielen wird SSH angewiesen, den SMTP- bzw. POP3-Port umzuleiten:ssh -L 25:sun:25 earth

Mit diesem Befehl wird jede Verbindung zu Port 25 (SMTP) von earth auf den SMTP-Port von sun über den verschlüsselten Kanal weitergeleitet. Dies ist insbesondere fürBenutzer von SMTP-Servern ohne SMTP-AUTH oder POP-before-SMTP-Funktionenvon Nutzen. E-Mail kann so von jedem beliebigen Ort mit Netzanschluss zur Ausliefe-

126 Referenz

Page 127: Suse 10.1 Linux Reference De

rung durch den „home“-Mailserver übertragen werden. Analog können mit folgendemBefehl alle POP3-Anfragen (Port 110) an earth auf den POP3-Port von sun weitergeleitetwerden:ssh -L 110:sun:110 earth

Beide Befehle müssen Sie als Benutzer root ausführen, da die Verbindung zu privile-gierten, lokalen Ports erfolgt. Bei bestehender SSH-Verbindung wird E-Mail wiegewohnt als normaler Benutzer verschickt und abgerufen. Der SMTP- und POP3-Hostmuss für diese Aufgabe auflocalhost konfiguriert werden. Zusätzliche Informationenentnehmen Sie den Manualpages für die einzelnen Programme und den Dateien unter/usr/share/doc/packages/openssh.

4.3 Verschlüsseln von Partitionen undDateien

Vertrauliche Daten, die kein unberechtigter Dritter einsehen sollte, hat jeder Benutzer.Je vernetzter und mobiler Sie arbeiten, desto sorgfältiger sollten Sie im Umgang mitIhren Daten sein. Die Verschlüsselung von Dateien oder von ganzen Partitionen machtimmer dann Sinn, wenn Dritte entweder über eine Netzwerkverbindung oder direktZugriff auf das System haben.

WARNUNG: Das Verschlüsseln von Medien bietet nur eingeschränktenSchutz

Beachten Sie, dass die in diesem Abschnitt beschriebenen Methoden nicht Ihrlaufendes System vor Manipulation schützen können. Nachdem die verschlüs-selten Medien erfolgreich eingehängt wurden, können alle Benutzer mit denentsprechenden Berechtigungen darauf zugreifen. Das Verschlüsseln vonMedien ergibt dann Sinn, wenn Sie Ihren Computer verloren haben oder ergestohlen wird und unbefugte Personen Ihre vertraulichen Daten lesen möchten.

In der folgenden Liste sind einige mögliche Szenarien beschrieben.

NotebooksWenn Sie mit Ihrem Notebook reisen, empfiehlt es sich, alle Festplattenpartitionen,die vertrauliche Daten enthalten, zu verschlüsseln. Wenn Sie Ihr Notebook verlierenoder es gestohlen wird, können Fremde nicht auf Ihre Daten zugreifen, wenn diese

Sicherheit in Linux 127

Page 128: Suse 10.1 Linux Reference De

sich in einem verschlüsselten Dateisystem oder in einer einzelnen verschlüsseltenDatei befinden.

WechselmedienUSB-Flash-Laufwerke oder externe Festplatten sind ebenso diebstahlgefährdet wieNotebooks. Auch in diesem Fall bietet ein verschlüsseltes Dateisystem Schutzgegen den unbefugten Zugriff durch Dritte.

ArbeitsstationenIn Unternehmen, in denen fast jede Person auf Ihren Computer zugreifen kann,empfiehlt es sich, Partitionen oder einzelne Dateien zu verschlüsseln.

4.3.1 Einrichten eines verschlüsseltenDateisystems mit YaST

YaST bietet Ihnen sowohl während der Installation als auch im installierten System dieMöglichkeit, Dateien oder Partitionen zu verschlüsseln. Eine verschlüsselte Datei kannjederzeit erstellt werden, da sie sich in das vorhandene Partitionsschema problemloseinfügt. Zum Verschlüsseln einer gesamten Partition legen Sie eine zu verschlüsselndePartition im Partitionsschema fest. Die Standardpartitionierung, wie sie YaST bei derInstallation vorschlägt, sieht keine verschlüsselte Partition vor. Sie müssen sie im Par-titionsdialogfeld manuell hinzufügen.

Anlegen einer verschlüsselten Partition während derInstallation

WARNUNG: Passworteingabe

Beachten Sie bei der Passworteingabe die Warnungen zur Passwortsicherheitund merken Sie sich das Passwort gut. Ohne das Passwort können Sie die ver-schlüsselten Daten weder öffnen noch wiederherstellen.

Das in Abschnitt „Partitionierung“ (Kapitel 2, Systemkonfiguration mit YaST, ↑Start)beschriebene YaST-Expertendialogfeld für die Partitionierung bietet die Möglichkeitzum Anlegen einer verschlüsselten Partition. Klicken Sie wie beim Anlegen einer nor-malen Partition auf Anlegen. Es wird ein Dialogfeld geöffnet, in dem Sie die Partitio-nierungsparameter für die neue Partition, z. B. die gewünschte Formatierung und den

128 Referenz

Page 129: Suse 10.1 Linux Reference De

Einhängepunkt, festlegen können. Schließen Sie den Prozess ab, indem Sie auf Datei-system verschlüsseln klicken. Geben Sie im folgenden Dialogfeld das Passwort zweimalein. Die neue verschlüsselte Partition wird erstellt, wenn Sie das Dialogfeld durch Kli-cken auf OK schließen. Beim Booten des Systems werden Sie vor dem Einhängen derPartition zur Eingabe des Passworts aufgefordert.

Wenn die verschlüsselte Partition nicht während des Bootvorgangs eingehängt werdensoll, drücken Sie Eingabe , wenn Sie zur Eingabe des Passworts aufgefordert werden.Verneinen Sie anschließend die Nachfrage, ob Sie das Passwort erneut eingebenmöchten. Das verschlüsselte Dateisystem wird in diesem Fall nicht eingehängt, dasBetriebssystem setzt den Bootvorgang wie gewohnt fort und blockiert somit den Zugriffauf Ihre Daten. Nach dem Einhängen steht die Partition allen Benutzern zur Verfügung.

Wenn das verschlüsselte Dateisystem nur bei Bedarf eingehängt werden soll, aktivierenSie die Option Nicht beim Systemstart einhängen im Dialogfeld Optionen für Fstab.Die betreffende Partition wird beim Booten des Systems nicht eingehängt. Um sieanschließend verfügbar zu machen, hängen Sie sie manuell ein mitmount Name_der_Partition Einhängepunkt. Geben Sie das Passwort ein,wenn Sie dazu aufgefordert werden. Wenn Sie die Partition nicht mehr benötigen,hängen Sie sie aus mit unmount Name_der_Partition, um zu verhindern, dassandere Benutzer auf sie zugreifen.

Einrichten einer verschlüsselten Partition imlaufenden System

WARNUNG: Aktivieren der Verschlüsselung auf einem laufenden System

Das Anlegen verschlüsselter Partitionen auf einem laufenden System erfolgtwie das Anlegen der Partitionen während der Installation. Durch das Verschlüs-seln einer vorhandenen Partition werden jedoch alle darauf enthaltenen Datenzerstört.

Wählen Sie auf einem laufenden System im YaST-Kontrollzentrum die Option System→ Partitionierung. Klicken Sie auf Ja, um fortzufahren. Klicken Sie nicht wie obenbeschrieben auf Anlegen, sondern wählen Sie Bearbeiten. Führen Sie alle verbleibendenSchritte wie oben beschrieben aus.

Sicherheit in Linux 129

Page 130: Suse 10.1 Linux Reference De

Installieren verschlüsselter DateienAnstelle einer Partition können Sie für vertrauliche Daten in einzelnen Dateien auchverschlüsselte Dateisysteme erstellen. Diese werden im selben YaST-Dialogfeld erstellt.Wählen Sie Kryptodatei und geben Sie den Pfad zu der zu erstellenden Datei sowieden Platzbedarf der Datei an. Übernehmen Sie die Voreinstellungen für die Formatierungund den Dateisystemtyp. Geben Sie anschließend den Einhängepunkt an und legen Siefest, ob das verschlüsselte Dateisystem beim Booten des Systems eingehängt werdensoll.

Der Vorteil verschlüsselter Dateien ist, dass sie dem System hinzugefügt werden können,ohne dass die Festplatte neu partitioniert werden muss. Sie werden mithilfe eines Loop-Device eingehängt und verhalten sich wie normale Partitionen.

Verschlüsseln von Dateien mit viDer Nachteil verschlüsselter Partitionen ist, dass bei eingehängter Partition root immerauf die Daten zugreifen kann. Um dies zu verhindern, kann vi im verschlüsselten Modusverwendet werden.

Geben Sie zur Bearbeitung einer neuen Datei vi -x Dateiname ein. vi fordert Sieauf, ein neues Passwort festzulegen und verschlüsselt anschließend den Inhalt der Datei.Bei jedem Zugriff auf die Datei fordert vi das richtige Passwort an.

Um die Sicherheit noch mehr zu erhöhen, können Sie die verschlüsselte Textdatei ineiner verschlüsselten Partition ablegen. Dies wird empfohlen, da die vi-Verschlüsselungnicht sehr stark ist.

4.3.2 Verschlüsseln des Inhalts vonWechselmedien

Wechselmedien wie externe Festplatten oder USB-Sticks werden von YaST ebensoerkannt wie andere Festplatten auch. Dateien oder Partitionen auf solchen Medienkönnen wie oben beschrieben verschlüsselt werden. Geben Sie allerdings nicht an, dassdiese Medien beim Booten des Systems eingehängt werden sollen, da sie in der Regelnur an das laufende System angeschlossen werden.

130 Referenz

Page 131: Suse 10.1 Linux Reference De

4.4 Einschränken von Berechtigungenmit AppArmor

Viele Sicherheitsrisiken resultieren aus Fehlern in vertrauenswürdigen Programmen.Ein vertrauenswürdiges Programm läuft mit einer Berechtigung, die ein Angreifergerne hätte. Das Programm kann dieses Vertrauen nicht rechtfertigen, wenn ein Fehlerdem Angreifer erlaubt, sich diese Berechtigung zu verschaffen.

Novell® AppArmor ist eine Lösung für Anwendungssicherheit, die insbesondere kon-zipiert wurde, um verdächtige Programme auf die geringste Berechtigungsstufe einzu-schränken. Mit AppArmor kann der Administrator den Bereich der Aktivitäten angeben,die das Programm ausführen darf, indem er ein Sicherheitsprofil für diese Anwendungentwickelt — d. h. eine Liste der Dateien, auf die das Programm zugreifen darf, undder Operationen, die das Programm ausführen darf.

Für die wirksame Immunisierung eines Computersystems muss die Anzahl der Program-me minimiert werden, die Berechtigungen vermitteln. Dann müssen die Programme sogut wie möglich abgesichert werden. Mit Novell AppArmor brauchen Sie für die Pro-gramme, die in Ihrer Umgebung Angriffen ausgesetzt sind, nur Profile zu erstellen undverringern damit den Aufwand für die Immunisierung Ihres Computers erheblich.AppArmor-Profile erzwingen die Einhaltung von Richtlinien und stellen damit sicher,dass Programme ihre Aufgaben erfüllen und keine anderen Aktionen ausführen.

Administratoren müssen sich nur um die Anwendungen kümmern, die durch Angriffegefährdet sind, und Profile für diese Anwendungen anlegen. Die Immunisierung einesSystems besteht im Wesentlichen aus dem Erstellen und Pflegen des AppArmor-Profil-satzes und der Überwachung aller Richtlinienverstöße oder Ausnahmen, die durch dieProtokollfunktion von AppArmor aufgezeichnet werden.

Die Erstellung von AppArmor-Profilen zur Einschränkung einer Anwendung ist sehrbequem und einfach. AppArmor wird mit mehreren Werkzeugen geliefert, die Sie beider Profilerstellung unterstützen. AppArmor verlangt keine Programmierung oder denEinsatz von Skripts. Als einzige Aufgabe muss der Administrator eine strengeZugriffsrichtlinie und Ausführungsberechtigungen für jede Anwendung festlegen, dieimmunisiert werden muss.

Aktualisierungen oder Änderungen der Anwendungsprofile sind nur erforderlich, wennsich die Softwarekonfiguration oder der gewünschte Aktionsumfang ändert. AppArmorbietet einfach zu handhabende Werkzeuge für Profilaktualisierungen oder -änderungen.

Sicherheit in Linux 131

Page 132: Suse 10.1 Linux Reference De

Benutzer bemerken AppArmor gar nicht. Es läuft „im Hintergrund“ und erfordert kei-nerlei Benutzereingriffe. Die Leistung wird durch AppArmor nicht merklich einge-schränkt. Wenn eine Aktivität der Anwendung nicht durch ein AppArmor-Profil abge-deckt ist oder durch AppArmor verhindert wird, muss der Administrator das Profildieser Anwendung für die entsprechende Verhaltensweise anpassen.

Diese Anleitung umreißt die grundlegenden Aufgaben, die mit AppArmor ausgeführtwerden müssen, um ein System wirksam zu schützen. Ausführlichere Informationenfinden Sie im Novell AppArmor 2.0-Administrationshandbuch.

4.4.1 Installation von Novell AppArmorBenutzer, die eine GNOME- oder die KDE-Desktop-Auswahl installieren, könnendiesen Abschnitt überspringen, da Novell AppArmor standardmäßig als Teil dieserOptionen installiert wird.

Wenn keine dieser Desktop-Optionen installiert oder sogar eine vollständig textbasierteUmgebung geplant ist, führen Sie mithilfe des YaST-Paket-Managers die folgendenSchritte aus, um die erforderlichen Pakete zu installieren.

1 Melden Sie sich als root an und starten Sie YaST.

2 Wählen Sie im YaST-Kontrollzentrum Software → Software-Management.

3 Verwenden Sie die Suchfunktion von YaST (Schlüsselwort „AppArmor“), umdie folgenden Pakete zu installieren:

• apparmor-parser• libapparmor• apparmor-docs• yast2-apparmor• apparmor-profiles• apparmor-utils

4 Wählen Sie alle diese Pakete für die Installation aus und wählen Sie dann Über-nehmen. YaST löst etwaige Abhängigkeiten auf und installiert alle Pakete auto-matisch.

5 Nachdem YaST die Systemkonfiguration aktualisiert hat, wählen Sie Beenden,um den Paket-Manager zu beenden.

132 Referenz

Page 133: Suse 10.1 Linux Reference De

4.4.2 Aktivieren von Novell AppArmorNachdem Novell AppArmor installiert wurde, müssen Sie es explizit aktivieren, umsicherzustellen, dass es bei jedem Systemstart gestartet wird. Verwenden Sie für dieseAufgabe die YaST-Systemdienste (Runlevel):

1 Melden Sie sich als root an und starten Sie YaST.

2 Starten Sie System → Systemdienste (Runlevel).

3 Wählen Sie in der Dienstelisteapparmor aus. Siehe Abbildung 4.3, „Aktivierenvon Novell AppArmor mithilfe von YaST“ (S. 133).

4 Klicken Sie zur permanenten Aktivierung von AppArmor auf Aktivieren.

5 Klicken Sie zum Übernehmen der Einstellungen auf Beenden.

Abbildung 4.3 Aktivieren von Novell AppArmor mithilfe von YaST

Mithilfe des YaST-Runlevel-Werkzeugs aktivieren Sie Dienste permanent – dieseEinstellungen bleiben auch einen Neustart Ihres Systems in Kraft. Um AppArmortemporär – nur für die Dauer einer Sitzung – zu aktivieren, gehen Sie wie folgt vor:

Sicherheit in Linux 133

Page 134: Suse 10.1 Linux Reference De

1 Melden Sie sich als root an und starten Sie YaST.

2 Starten Sie Novell AppArmor → AppArmor-Kontrollleiste.

3 Setzen Sie den AppArmor-Status auf AppArmor ist aktiviert, indem Sie aufKonfigurieren → Aktivieren → OK klicken.

4 Übernehmen Sie die Einstellungen mit Fertig.

4.4.3 Einführung in die Erstellung vonAnwendungsprofilen

Bereiten Sie einen erfolgreichen Einsatz von Novell AppArmor auf Ihrem System vor,indem Sie die folgenden Punkte genau beachten:

1 Ermitteln Sie die Anwendungen, die ein Profil brauchen. Weitere Informationendazu finden Sie unter „Wählen der Anwendungen, die ein Profil erhalten sollen“(S. 135).

2 Erstellen Sie die erforderlichen Profile wie in „Erstellen und Ändern von Profilen“(S. 136) umrissen. Prüfen Sie die Ergebnisse und passen Sie die Profile bei Bedarfan.

3 Bleiben Sie auf dem Laufenden über die Vorgänge auf Ihrem System, indem SieAppArmor-Berichte erzeugen und auf Sicherheitsereignisse reagieren. Informa-tionen finden Sie in „Konfigurieren von Novell AppArmor-Ereignisbenachrich-tigung und -Berichten“ (S. 138).

4 Aktualisieren Sie Ihre Profile, wenn sich Ihre Umgebung ändert. Andernfallsmüssen Sie auf Sicherheitsereignisse reagieren, die das AppArmor-Berichtwerk-zeug protokolliert. Informationen finden Sie in „Aktualisieren Ihrer Profile“(S. 140).

134 Referenz

Page 135: Suse 10.1 Linux Reference De

Wählen der Anwendungen, die ein Profil erhaltensollenSie müssen nur die Programme schützen, die in Ihrer speziellen Konfiguration Angriffenausgesetzt sind. Verwenden Sie also nur Profile für die Anwendungen, die Sie wirklichausführen. Ermitteln Sie anhand der folgenden Liste die wahrscheinlichsten Kandidaten:

NetzwerkagentenProgramme (Server und Clients) haben offene Netzwerkports und Netzwerkagentensind Serverprogramme, die auf diese Netzwerkports reagieren. Benutzerclients(wie Mail-Clients und Webbrowser) haben ebenfalls offene Netzwerkports undvermitteln Berechtigungen.

WebanwendungenCGI-Skripts in Perl, PHP-Seiten und komplexere Webanwendungen können durcheinen Webbrowser aufgerufen werden.

Cron-JobsProgramme, die der cron-Daemon regelmäßig ausführt, lesen Eingaben aus einerVielzahl von Quellen.

Um die Prozesse zu ermitteln, die derzeit mit offenen Netzwerkports laufen und even-tuell ein Profil zur Beschränkung brauchen, führen Sie den Befehl unconfined alsroot aus.

Beispiel 4.1 Ausgabe von unconfined19848 /usr/sbin/cupsd not confined19887 /usr/sbin/sshd not confined19947 /usr/lib/postfix/master not confined29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'

In obigem Beispiel brauchen die Prozesse mit der Beschriftung not confinedeventuell ein benutzerdefiniertes Profil zur Einschränkung. Die Prozesse mit derAngabe confined by sind bereits durch AppArmor geschützt.

TIPP: Weitere Informationen

Weitere Informationen über die Wahl der richtigen Anwendungen für ein Profilfinden Sie im Kapitel Wählen von Programmen zur Immunisierung (NovellAppArmor 2.0-Administrationshandbuch).

Sicherheit in Linux 135

Page 136: Suse 10.1 Linux Reference De

Erstellen und Ändern von ProfilenNovell AppArmor unter SUSE Linux wird mit einem vorkonfigurierten Satz an Profilenfür die wichtigsten Anwendungen geliefert. Zusätzlich können Sie mit AppArmor Ihreeigenen Profile für eine Gruppe von Anwendungen festlegen, die in/etc/apparmor/README.profiles definiert sind.

Es gibt zwei verschiedene Möglichkeiten, Profile zu verwalten. Die eine besteht in derVerwendung des grafischen Frontend der YaST Novell AppArmor-Module, bei deranderen werden die Befehlszeilenwerkzeuge genutzt, die in der AppArmor-Suite zurVerfügung stehen. Beide Methoden arbeiten grundsätzlich auf dieselbe Weise.

Die Ausführung von unconfined (wie in „Wählen der Anwendungen, die ein Profilerhalten sollen“ (S. 135) beschrieben) identifiziert eine Liste von Anwendungen, dieeventuell ein Profil benötigen, um in einem sicheren Modus abzulaufen.

Führen Sie für jede Anwendung die folgenden Schritte aus, um ein Profil zu erstellen:

1 Melden Sie sich alsroot an und lassen Sie AppArmor das Profil der Anwendunggrob umreißen, indem Sie genprof programmname ausführen.

Oder:

Führen Sie den YaST → Novell AppArmor → -Assistenten zum Hinzufügen vonProfilen aus und geben Sie den vollständigen Pfad der Anwendung an, für dieein Profil erstellt werden soll.

Ein grundlegendes Profil wird umrissen und AppArmor wird in den Lernmodusgebracht, d. h., es protokolliert jede Aktivität des ausgeführten Programms,schränkt es aber noch nicht ein.

2 Führen Sie die vollständige Palette der Anwendungsaktionen aus, damitAppArmor ein sehr genaues Bild der Aktivitäten ermittelt.

3 Lassen Sie AppArmor die Protokolldateien analysieren, die in Schritt 2 (S. 136)generiert wurden. Geben Sie dazu S in genprof ein

Oder:

136 Referenz

Page 137: Suse 10.1 Linux Reference De

Klicken Sie auf Scan system log for AppArmor events (Systemprotokoll aufAppArmor-Ereignisse prüfen) im Assistenten zum Hinzufügen von Profilen undfolgen Sie den Anweisungen des Assistenten, bis das Profil fertig gestellt ist.

AppArmor prüft die Protokolle, die während der Ausführung der Anwendungaufgezeichnet wurden, und fordert Sie auf, für jedes protokollierte Ereignis dieZugriffsberechtigungen festzulegen. Legen Sie die Zugriffsberechtigungen fürjede Datei fest oder verwenden Sie Platzhalter.

4 Sobald alle Berechtigungen festgelegt sind, wird Ihr Profil in den Erzwingen-Modus gesetzt. Das Profil wird angewendet und AppArmor beschränkt dieAnwendung entsprechend dem soeben erstellten Profil.

Wenn genprof für eine Anwendung gestartet wurde, die über ein vorhandenesProfil im Meldungsmodus verfügte, bleibt dieses Profil beim Verlassen diesesLernzyklus im Lernmodus. Weitere Informationen über das Ändern des Modusfür ein Profil finden Sie im Abschnitt Meldungs- oder Lernmodus (Kapitel 3,Erstellen von Novell AppArmor-Profilen,Novell AppArmor 2.0-Administrations-handbuch) und im Abschnitt Erzwingen-Modus (Kapitel 3, Erstellen von NovellAppArmor-Profilen, Novell AppArmor 2.0-Administrationshandbuch).

Testen Sie Ihre Profileinstellungen, indem Sie jede benötigte Aufgabe mit der soebeneingeschränkten Anwendung ausführen. Normalerweise läuft das eingeschränkte Pro-gramm reibungslos und Sie bemerken überhaupt keine AppArmor-Aktivitäten. WennSie jedoch in Ihrer Anwendung ein gewisses Fehlverhalten erkennen, prüfen Sie anhandder Systemprotokolle, ob AppArmor Ihre Anwendung zu stark einschränkt. Suchen Siedie entsprechenden Protokolle in /var/log/messages oder führen Sie dmesg aus.

Jeder Eintrag, der dem folgenden Beispiel gleicht, deutet darauf hin, dass AppArmorIhre Anwendung zu stark einschränkt:AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) profile/usr/sbin/traceroute active /usr/sbin/traceroute)

Um das Profil anzupassen, führen Sie erneut den Assistenten zum Hinzufügen vonProfilen aus wie oben beschrieben und lassen Sie ihn die Protokolleinträge für diesespezielle Anwendung analysieren. Bestimmen Sie die Zugriffsberechtigungen oderEinschränkungen, wenn YaST Sie dazu auffordert.

Sicherheit in Linux 137

Page 138: Suse 10.1 Linux Reference De

TIPP: Weitere Informationen

Weitere Informationen über die Erstellung und Änderung von Profilen findenSie im Kapitel Erstellen von Novell AppArmor-Profilen (Novell AppArmor 2.0Administrationshandbuch) .

Konfigurieren von NovellAppArmor-Ereignisbenachrichtigung und -BerichtenRichten Sie Ereignisbenachrichtigung in Novell AppArmor ein, damit Sie Sicherheits-ereignisse überprüfen können. Ereignisbenachrichtigung ist eine Novell AppArmor-Funktion, die einen angegebenen E-Mail-Empfänger benachrichtigt, wenn im Systemeine Novell AppArmor-Aktivität unter der gewählten Sicherheitsebene auftritt. DieseFunktion steht derzeit über die YaST-Schnittstelle zur Verfügung.

Zum Einrichten der Ereignisbenachrichtigung in YaST gehen Sie wie folgt vor:

1 Stellen Sie sicher, dass ein Mailserver auf Ihrem System ausgeführt wird, derdie Ereignismitteilungen liefert.

2 Melden Sie sich als root an und starten Sie YaST. Wählen Sie anschließendNovell AppArmor → AppArmor-Kontrollleiste.

3 Wählen Sie im Bereich Sicherheitsereignisbenachrichtigung aktivieren dieOption Konfigurieren.

4 Stellen Sie für jeden Eintragstyp (Terse (Knapp), Zusammenfassung undVerbose(Ausführlich)) eine Berichthäufigkeit ein, geben Sie die E-Mail-Adresse ein, anwelche die Berichte gesendet werden, und legen Sie den Schweregrad der aufzu-zeichnenden Ereignisse fest. Wenn Sie unbekannte Ereignisse in die Ereignisbe-richte aufnehmen möchten, aktivieren Sie Ereignisse mit unbekanntem Schwere-grad aufnehmen.

ANMERKUNG

Wenn Sie nicht mit der Ereigniskategorisierung von AppArmor vertrautsind, lassen Sie sich über alle Ereignisse in allen Sicherheitsstufenbenachrichtigen.

138 Referenz

Page 139: Suse 10.1 Linux Reference De

5 Schließen Sie dieses Dialogfeld mit OK → Beenden, um Ihre Einstellungenanzuwenden.

Konfigurieren Sie Novell AppArmor-Berichte. Mithilfe von Berichten können Siewichtige Novell AppArmor-Sicherheitsereignisse nachlesen, die in Protokolldateienaufgezeichnet wurden, ohne mühselig alle Meldungen durchsuchen zu müssen, die nurfür das logprof-Werkzeug nützlich sind. Sie können die Größe des Berichts reduzieren,indem Sie nach Datumsbereich oder Programmname filtern.

Gehen Sie zur Konfiguration der AppArmor-Berichte wie folgt vor:

1 Melden Sie sich als root an und starten Sie YaST. Wählen SieNovell AppArmor→ AppArmor-Berichte.

2 Wählen Sie den Berichttyp, den Sie prüfen oder konfigurieren möchten, ausZusammenfassungsbericht der Ausführungssicherheit, Anwendungsprüfberichtund Sicherheitsereignisbericht (SIR).

3 Bearbeiten Sie die Häufigkeit der Berichtgenerierung, E-Mail-Adresse, Export-format und Speicherort der Berichte, indem Sie Bearbeiten wählen und dieerforderlichen Daten angeben.

4 Um einen Bericht des ausgewählten Typs zu generieren, klicken Sie auf Jetztausführen.

5 Blättern Sie durch die archivierten Berichte eines bestimmten Typs, indem SieArchiv anzeigen auswählen und den gewünschten Berichttyp angeben.

Oder:

Löschen Sie nicht mehr benötigte Berichte oder fügen Sie neue Berichte hinzu.

TIPP: Weitere Informationen

Weitere Informationen über das Konfigurieren der Ereignisbenachrichtigungin Novell AppArmor finden Sie im Abschnitt „Einrichten der Ereignisbenachrich-tigung“ (Kapitel 4, Verwalten von Anwendungen mit Profil, Novell AppArmor2.0-Administrationshandbuch). Weitere Informationen über die Berichtkonfigu-ration finden Sie im Abschnitt „Berichte“ (Kapitel 4, Verwalten vonAnwendungenmit Profil, Novell AppArmor 2.0-Administrationshandbuch).

Sicherheit in Linux 139

Page 140: Suse 10.1 Linux Reference De

Aktualisieren Ihrer ProfileSoftware- und Systemkonfigurationen ändern sich im Lauf der Zeit. Daher kann IhreProfileinstellung für AppArmor gelegentliche Anpassungen erfordern. AppArmor prüftIhr Systemprotokoll auf Verletzungen der Richtlinien oder andere AppArmor-Ereignisseund ermöglicht Ihnen, Ihren Profilsatz entsprechend anzupassen. Jedes Anwendungs-verhalten, das außerhalb einer Profildefinition liegt, kann auch über den Assistentenzum Aktualisieren von Profilen behandelt werden.

Gehen Sie wie folgt vor, um Ihren Profilsatz zu aktualisieren:

1 Melden Sie sich als root an und starten Sie YaST.

2 Starten Sie denNovell AppArmor→ -Assistenten zum Aktualisieren von Profilen.

3 Passen Sie Zugriffs- oder Ausführungsberechtigungen für jede protokollierteRessource oder jedes protokollierte ausführbare Programm an, wenn Sie dazuaufgefordert werden.

4 Beenden Sie YaST, nachdem Sie alle Fragen beantwortet haben. Ihre Änderungenwerden auf die jeweiligen Profile angewendet.

TIPP: Weitere Informationen

Weitere Informationen über das Aktualisieren Ihrer Profile aus den Systempro-tokollen finden Sie im Abschnitt „Aktualisieren von Profilen aus Syslog-Einträ-gen“ (Kapitel 3, Erstellen von Novell AppArmor-Profilen, Novell AppArmor 2.0-Administrationshandbuch).

4.5 Sicherheit und VertraulichkeitEines der grundlegendsten Leistungsmerkmale eines Linux- oder Unix-Systems ist,dass mehrere Benutzer (Multiuser) mehrere Aufgaben zur gleichen Zeit auf demselbenComputer (Multitasking) ausführen können. Darüber hinaus ist das Betriebssystemnetzwerktransparent. Dies bedeutet, dass Benutzer oftmals gar nicht wissen, ob sichdie Daten oder Anwendungen, mit denen sie arbeiten, lokal auf dem Rechner befindenoder über das Netzwerk bereitgestellt werden.

140 Referenz

Page 141: Suse 10.1 Linux Reference De

Damit mehrere Benutzer auf einem System arbeiten können, müssen ihre jeweiligenDaten auch voneinander getrennt gespeichert werden können. Sicherheit und der Schutzprivater Daten müssen gewährleistet sein. Datensicherheit war auch schon relevant, alsComputer noch nicht miteinander vernetzt waren. Bei Verlust oder Defekt der Daten-träger (im Allgemeinen Festplatten) mussten wichtige Daten genau wie heute verfügbarsein.

Auch wenn sich dieses Kapitel in der Hauptsache mit der Vertraulichkeit von Datenbeschäftigt, sei betont, dass bei einem umfassenden Sicherheitskonzept immer dafürgesorgt werden muss, dass ein regelmäßig aktualisiertes, funktionierendes und getestetesBackup verfügbar ist. Ohne dieses Backup der Daten wird es nicht nur im Fall einesHardwaredefekts schwierig sein, weiterhin auf die Daten zuzugreifen, sondern insbe-sondere auch dann, wenn nur der Verdacht besteht, dass jemand sich unbefugterweisean den Daten zu schaffen gemacht hat.

4.5.1 Lokale Sicherheit undNetzwerksicherheit

Es gibt verschiedene Möglichkeiten, auf Daten zuzugreifen:

• persönliche Kommunikation mit jemandem, der über die gewünschten Informationenverfügt bzw. Zugang zu den Daten auf einem Computer hat

• direkt über die Konsole eines Computers (physischer Zugriff)

• über eine serielle Schnittstelle oder

• über eine Netzwerkverbindung

In allen Fällen sollten sich die Benutzer authentifizieren müssen, bevor sie Zugriff aufdie entsprechenden Ressourcen oder Daten erhalten. Ein Webserver mag diesbezüglichweniger restriktiv sein, aber Sie möchten sicherlich nicht, dass er Ihre persönlichenDaten an andere Surfer preisgibt.

Bei dem ersten Fall in der obigen Liste ist die zwischenmenschliche Kommunikationerforderlich. Dies gilt beispielsweise, wenn Sie sich an einen Bankangestellten wendenund nachweisen müssen, dass Sie der rechtmäßige Eigentümer eines bestimmten Kontossind. Sie werden aufgefordert, eine Unterschrift, eine Signatur, eine PIN oder einPasswort anzugeben, die bzw. das belegt, dass Sie die Person sind, die Sie vorgebenzu sein. In einigen Fällen ist es möglich, Personen wichtige Informationen zu entlocken,

Sicherheit in Linux 141

Page 142: Suse 10.1 Linux Reference De

indem man beiläufig einige bekannte Details erwähnt und unter Verwendunggeschickter Rhetorik ihr Vertrauen gewinnt. Das Opfer kann so möglicherweise nachund nach dazu gebracht werden, weitere Informationen Preis zu geben, ohne sich dessenbewusst zu sein. Unter Hackern wird dies als Social Engineering bezeichnet. Dagegenkönnen Sie sich nur schützen, indem Sie Benutzer aufklären und bewusst mit Spracheund Informationen umgehen. Bevor Angreifer in Computersysteme einbrechen, versu-chen sie häufig, Empfangsmitarbeiter, Dienstleister des Unternehmens oder sogarFamilienmitglieder anzusprechen. In vielen Fällen werden solche Angriffe, die aufSocial Engineering basieren, erst sehr viel später entdeckt.

Ein Person, die unbefugt auf Ihre Daten zugreifen möchte, könnte auch auf herkömm-liche Weise versuchen, auf die entsprechende Hardware direkt zuzugreifen. Dahersollte der Computer so geschützt sein, dass niemand dessen Komponenten entfernen,ersetzen und beschädigen kann. Dies gilt auch für Backups sowie Netzwerk- undNetzkabel. Zudem sollte der Bootvorgang gesichert werden, da hier einige bekannteTastenkombinationen unerwünschtes Verhalten zur Folge haben könnten. Schützen Siesich dagegen, indem Sie Passwörter für das BIOS und den Bootloader festlegen.

Oft werden noch serielle Terminals verwendet, die an serielle Anschlüsse angeschlossensind. Anders als Netzwerkschnittstellen benötigen diese für die Kommunikation mitdem Host kein Netzwerkprotokoll. Um zwischen den Geräten einfache Zeichen hinund her zu übertragen, wird ein einfaches Kabel oder ein Infrarotanschluss verwendet.Das Kabel selbst ist dabei der einfachste Angriffspunkt: Wenn ein alter Drucker daranangeschlossen ist, kann die Kommunikation einfach aufgezeichnet werden. Was miteinem Drucker möglich ist, geht selbstverständlich mit entsprechendem Aufwand auchanders.

Das lokale Lesen einer Datei auf einem lokalen Host unterliegt anderen Zugriffsbe-schränkungen als das Öffnen einer Netzwerkverbindung zu einem Dienst auf einemanderen Host. Daher ist es nötig, zwischen lokaler Sicherheit und Netzwerksicherheitzu unterscheiden. Die Trennlinie wird da gezogen, wo Daten in Pakete verschnürtwerden müssen, um verschickt zu werden.

Lokale SicherheitDie lokale Sicherheit beginnt bei der Umgebung, in der der Computer aufgestellt ist.Stellen Sie Ihren Computer so auf, dass das Maß an Sicherheit Ihrem Anspruch undIhren Anforderungen genügt. Das wichtigste bei der lokalen Sicherheit ist, darauf zuachten, die einzelnen Benutzer voneinander zu trennen, sodass kein Benutzer dieRechte oder die Identität eines anderen Benutzers annehmen kann. Dies gilt für alle

142 Referenz

Page 143: Suse 10.1 Linux Reference De

Benutzer, besonders aber für den Benutzer root, der alle Rechte im System besitzt.root kann unter anderem ohne Passworteingabe die Identität aller Benutzer annehmenund jede lokal gespeicherte Datei lesen.

PasswörterAuf einem Linux-System werden Passwörter nicht etwa im Klartext gespeichert, damiteingegebene Passwörter mit den gespeicherten verglichen werden können. In einemsolchen Fall wären alle Konten auf dem System gefährdet, wenn jemand auf die ent-sprechende Datei zugreifen könnte. Das gespeicherte Passwort wird stattdessen ver-schlüsselt und jedes Mal, wenn es eingegeben wird, erneut verschlüsselt. Anschließendwerden die beiden verschlüsselten Zeichenketten miteinander verglichen. Dies machtnatürlich nur dann Sinn, wenn man aus dem verschlüsselten Passwort nicht dieursprüngliche Textzeichenkette errechnen kann.

Dies erreicht man durch so genannte Falltüralgorithmen, die nur in eine Richtungfunktionieren. Ein Angreifer, der das verschlüsselte Passwort in seinen Besitz gebrachthat, kann nicht einfach den Algorithmus erneut anwenden und das Passwort sehen.Stattdessen muss er alle möglichen Zeichenkombinationen für ein Passwort durchpro-bieren, bis er dasjenige findet, welches verschlüsselt so aussieht wie das Original. Beiacht Buchstaben pro Passwort gibt es ziemlich viele Kombinationen.

In den 1970er Jahren galt diese Methode als sicherer als andere, da der verwendeteAlgorithmus recht langsam war und Zeit im Sekundenbereich für das Verschlüsselneines Passworts brauchte. Heutige PCs dagegen schaffen ohne weiteres mehrere hun-derttausend bis Millionen Verschlüsselungen pro Sekunde. Aus diesem Grund darf diePasswortdatei nicht für jeden Benutzer sichtbar sein (/etc/shadow ist für einennormalen Benutzer nicht lesbar). Noch wichtiger ist, dass Passwörter nicht leicht zuerraten sind, für den Fall, dass die Passwortdatei wegen eines Fehlers doch sichtbarwird. Es hilft daher nicht viel, „ein “ Passwort wie „tantalize“ in „t@nt@1lz3“ umzu-schreiben.

Das Ersetzen einiger Buchstaben in einem Wort durch ähnliche Zahlen ist nicht sicher.Dies kann von Knackprogrammen, die Wörterbücher zum Raten verwenden, sehr leichtaufgelöst werden. Besser sind Kombinationen von Buchstaben, die kein bekanntes Wortbilden und nur für den Benutzer eine persönliche Bedeutung haben, etwa die Anfangs-buchstaben der Wörter eines Satzes, z. B. „Der Name der Rose“ von Umberto Eco.Daraus gewinnen Sie ein sicheres Passwort: „DNdRvUE9“. Im Gegensatz dazu können

Sicherheit in Linux 143

Page 144: Suse 10.1 Linux Reference De

Passwörter wie „Saufkumpan“ oder „Jasmin76“ schon von jemandem erraten werden,der Sie oberflächlich gut kennt.

Der BootvorgangVerhindern Sie, dass mit einer Diskette oder einer CD-ROM gebootet werden kann,indem Sie die Laufwerke ausbauen oder indem Sie ein BIOS-Passwort setzen und imBIOS ausschließlich das Booten von Festplatte erlauben. Linux-Systeme werden in derRegel mit einem Bootloader gestartet, der es ermöglicht, zusätzliche Optionen an dengestarteten Kernel weiterzugeben. Um zu verhindern, dass andere Personen dieseParameter während des Bootvorgangs verwenden, können Sie in /boot/grub/menu.lst ein zusätzliches Passwort festlegen (siehe Kapitel 9, Der Bootloader (S. 211)).Dies ist für die Sicherheit des Systems unerlässlich. Nicht nur, weil der Kernel selbstmitroot-Berechtigungen läuft, sondern auch weil er root-Berechtigungen bei Sys-temstart vergibt.

DateiberechtigungenEs gilt das Prinzip, immer mit den niedrigst möglichen Privilegien für die jeweiligeAufgabe zu arbeiten. Es ist beispielsweise definitiv nicht nötig, seine E-Mails als rootzu lesen und zu schreiben. Wenn das Mail-Programm, mit dem Sie arbeiten, einenFehler hat, der für einen Angriff ausgenutzt wird, erfolgt dieser genau mit den Berech-tigungen, die Sie zum Zeitpunkt des Angriffs hatten. Durch Anwenden der obigen Regelminimieren Sie also den möglichen Schaden.

Die einzelnen Berechtigungen der weit über 200.000 Dateien einer SUSE-Distributionsind sorgfältig vergeben. Der Administrator eines Systems sollte zusätzliche Softwareoder andere Dateien mit größtmöglicher Sorgfalt installieren und besonders gut auf dievergebenen Berechtigungen achten. Erfahrene und sicherheitsbewusste Administratorenverwenden die Option -lmit dem Befehl ls, um eine detaillierte Dateiliste zu erhalten,anhand der sie eventuell falsch gesetzte Dateiberechtigungen gleich erkennen können.Ein falsch gesetztes Attribut bedeutet nicht nur, dass Dateien überschrieben oder gelöschtwerden können. Diese geänderten Dateien könnten vom root oder, im Fall von Kon-figurationsdateien, von Programmen mitroot-Berechtigung ausgeführt werden. Damitkönnte ein Angreifer beträchtlichen Schaden anrichten. Solche Angriffe werden alsKuckuckseier bezeichnet, weil das Programm (das Ei) von einem fremden Benutzer(Vogel) ausgeführt (ausgebrütet) wird, ähnlich wie der Kuckuck seine Eier von fremdenVögeln ausbrüten lässt.

144 Referenz

Page 145: Suse 10.1 Linux Reference De

SUSE Linux-Systeme verfügen über die Dateien permissions, permissions.easy, permissions.secure und permissions.paranoid, die sich alleim Verzeichnis /etc befinden. In diesen Dateien werden besondere Berechtigungenwie etwa allgemein schreibbare Verzeichnisse oder, wie im Fall von Dateien, Setuser-ID-Bits festgelegt. (Programme mit gesetztem Setuser-ID-Bit laufen nicht mit derBerechtigung des Benutzers, der sie gestartet hat, sondern mit der Berechtigung desEigentümers der Datei. Dies ist in der Regel root). Für den Administrator steht dieDatei /etc/permissions.local zur Verfügung, in der er seine eigenen Einstel-lungen hinzufügen kann.

Die Auswahl der Dateien, die für Konfigurationsprogramme von SUSE zur Vergabeder Rechte benutzt werden sollen, können Sie auch komfortabel mit YaST unter demMenüpunkt Sicherheit treffen. Weitere Informationen zu diesem Thema finden Sie inden Kommentaren in /etc/permissions oder auf der Manualpage für den Befehlchmod (man chmod).

Pufferüberläufe und Format-String-ProgrammfehlerWann immer ein Programm Daten verarbeiten soll, die von einem Benutzer geändertwerden können oder könnten, ist besondere Vorsicht geboten. Diese Vorsicht gilt inder Hauptsache für den Programmierer der Anwendung. Er muss sicherstellen, dassdie Daten durch das Programm richtig interpretiert werden und die Daten zu keinemZeitpunkt in Speicherbereiche geschrieben werden, die eigentlich zu klein sind.Außerdem sollten die Daten in konsistenter Art und Weise vom Programm über diedafür vorgegebenen Schnittstellen weitergereicht werden.

Ein Pufferüberlauf kann dann passieren, wenn beim Beschreiben eines Pufferspeicher-bereichs nicht darauf geachtet wird, wie groß der Puffer tatsächlich ist. Es kann vorkom-men, dass die vom Benutzer generierten Daten etwas mehr Platz erfordern, als im Pufferzur Verfügung steht. Durch dieses Überschreiben des Puffers über seine Grenzen hinausist es unter Umständen möglich, dass ein Programm Programmsequenzen ausführt, dievom Benutzer und nicht vom Programmierer generiert wurden, anstatt nur Benutzerdatenzu verarbeiten. Dies ist ein schwerer Fehler, insbesondere wenn das Programm mitbesonderen Berechtigungen ausgeführt wird (siehe „Dateiberechtigungen“ (S. 144)).

Format-String-Programmfehler funktionieren etwas anders, auch hierbei kann überdie Benutzereingabe das Programm von seinem eigentlichen Weg abgebracht werden.Diese Programmierfehler werden normalerweise bei Programmen ausgenutzt, die mitbesonderen Berechtigungen ausgeführt werden, also setuid- und setgid-Programme.

Sicherheit in Linux 145

Page 146: Suse 10.1 Linux Reference De

Sie können sich und Ihr System also vor solchen Fehlern schützen, indem Sie diebesonderen Ausführungsrechte aus den Programmen entfernen. Auch hier gilt wiederdas Prinzip der geringstmöglichen Privilegien (siehe „Dateiberechtigungen“ (S. 144)).

Da Pufferüberläufe und Format-String-Fehler bei der Verarbeitung von Benutzerdatenauftreten, sind sie nicht notwendigerweise nur ausnutzbar, wenn man bereits Zugriffauf ein lokales Konto hat. Viele der bekannt gewordenen Fehler können auch über eineNetzwerkverbindung ausgenutzt werden. Deswegen sollten Pufferüberläufe und Format-String-Fehler sowohl für die lokalen Computer als auch für das Netzwerk als sicher-heitsrelevant klassifiziert werden.

VirenEntgegen anders lautenden Behauptungen gibt es tatsächlich Viren für Linux. Diebekannten Viren sind von ihren Autoren als Proof of Concept geschrieben worden, d. h.als Beweis, dass die Technik funktioniert. Allerdings ist bis jetzt noch keiner dieserViren in freier Wildbahn beobachtet worden.

Viren benötigen zur Ausbreitung einen Wirt (Host), ohne den sie nicht überlebensfähigsind. In diesem Fall ist der Host ein Programm oder ein wichtiger Speicherbereich fürdas System, etwa der Master-Boot-Record, und er muss für den Programmcode desVirus beschreibbar sein. Linux hat aufgrund seiner Mehrbenutzer-Funktionalität dieMöglichkeit, den Schreibzugriff auf Dateien einzuschränken, was insbesondere fürSystemdateien wichtig ist. Wenn Sie bei der Arbeit als root angemeldet sind, erhöhenSie also die Wahrscheinlichkeit, dass Ihr System von solch einem Virus infiziert wird.Berücksichtigen Sie aber die Regel der geringstmöglichen Privilegien, ist es schwierig,unter Linux ein Virus zu bekommen.

Darüber hinaus sollten Sie nie leichtfertig ein Programm ausführen, das Sie aus demInternet bezogen haben und dessen genaue Herkunft Sie nicht kennen. SUSE-RPM-Pakete sind kryptographisch signiert und tragen mit dieser digitalen Unterschrift dasMarkenzeichen der Sorgfalt, mit der die Pakete entwickelt wurden. Viren sind klassischeSymptome dafür, dass auch ein hochsicheres System unsicher wird, wenn der Adminis-trator oder auch der Benutzer ein mangelndes Sicherheitsbewusstsein hat.

Viren sind nicht mit Würmern zu verwechseln, die ausschließlich in Netzwerken Pro-bleme verursachen. Sie benötigen keinen Host, um sich zu verbreiten.

146 Referenz

Page 147: Suse 10.1 Linux Reference De

NetzwerksicherheitDie Netzwerksicherheit ist wichtig, um das gesamte System gegen Angriffe von außenzu schützen. Das typische Anmeldeverfahren mit Benutzernamen und Passwort für dieBenutzerauthentifizierung gehört weiter zur lokalen Sicherheit. Beim Anmelden übereine Netzwerkverbindung muss zwischen den beiden Sicherheitsaspekten differenziertwerden: bis zur erfolgten Authentifizierung geht es um Netzwerksicherheit, nach derAnmeldung um lokale Sicherheit.

X Window-System und X-AuthentifizierungWie bereits erwähnt ist Netzwerktransparenz eine grundlegende Eigenschaft eines Unix-Systems. Bei X, dem Windowing-System von Unix, gilt dies in besonderem Maße. Siekönnen sich ohne Weiteres auf einem entfernten Computer anmelden und dort einProgramm starten, dessen grafische Oberfläche dann über das Netzwerk auf IhremComputer angezeigt wird.

Wenn ein X-Client mithilfe eines X-Servers über das Netzwerk angezeigt werden soll,dann muss der Server die Ressource, die er verwaltet (die Anzeige), vor unberechtigtenZugriffen schützen. Konkret heißt das hier, dass dem Client-Programm bestimmteBerechtigungen gewährt werden müssen. Bei X Windows geschieht dies auf zwei ver-schiedene Arten: Hostbasierte und Cookie-basierte Zugriffskontrolle. Erstere basiertauf der IP-Adresse des Computers, auf dem das Client-Programm laufen soll. Dies wirdmit dem Programm „xhost“ gesteuert. xhost trägt eine IP-Adresse eines legitimen Clientin eine Mini-Datenbank auf dem X-Server ein. Eine Authentifizierung einzig und alleinauf einer IP-Adresse aufzubauen gilt jedoch nicht gerade als sicher. Es könnte beispiels-weise noch ein zweiter Benutzer auf dem Host mit dem Client-Programm arbeiten unddieser hätte dann genau wie jemand, der die IP-Adresse stiehlt, Zugriff auf den X-Server.Deswegen wird auf diese Authentifizierungsmethode auch nicht näher eingegangen.Weitere Informationen finden Sie jedoch auf der Manualpage für xhost.

Bei der Cookie-basierten Zugriffskontrolle wird eine Zeichenkette, die nur der X-Serverund der berechtigte Benutzer kennen, wie ein Ausweis verwendet. Dieses Cookie (dasenglische Wort „cookie“ bedeutet Keks. Gemeint sind hier die chinesischen Glückskekse,die ein Epigramm enthalten) wird bei der Anmeldung in der Datei .Xauthority imHome-Verzeichnis des Benutzers gespeichert und steht somit jedem X-Client, der aufdem X-Server ein Fenster anzeigen möchte, zur Verfügung. Die Datei .Xauthoritykann vom Benutzer mit dem Programm „xauth“ untersucht werden. Wenn Sie.Xauthority in Ihrem Home-Verzeichnis versehentlich umbenennen oder löschen,

Sicherheit in Linux 147

Page 148: Suse 10.1 Linux Reference De

können Sie keine neuen Fenster oder X-Clients mehr öffnen. Weitere Informationenzur Sicherheit von X Window-Systemen finden Sie auf der Manualpage für den BefehlXsecurity (man Xsecurity).

Mit SSH (Secure Shell) können Netzverbindungen vollständig verschlüsselt und offenan den X-Server weitergeleitet werden, ohne dass der Benutzer die Verschlüsselungwahrnimmt. Dies wird auch als X-Forwarding bezeichnet. Dabei wird serverseitig einX-Server simuliert und bei der Shell auf dem entfernten Host die DISPLAY-Variablegesetzt. Weitere Informationen zu SSH finden Sie in Abschnitt 4.2, „SSH: SichererNetzwerkbetrieb“ (S. 121).

WARNUNG

Wenn Sie den Host, auf dem Sie sich anmelden, nicht als sicher einstufen, dannsollten Sie X-Forwarding nicht verwenden. Mit aktiviertem X-Forwardingkönnten sich Angreifer über Ihre SSH-Verbindung mit Ihrem X-Server authen-tifiziert verbinden und beispielsweise Ihre Tastatureingaben abhören.

Pufferüberläufe und Format-String-ProgrammfehlerWie in „Pufferüberläufe und Format-String-Programmfehler“ (S. 145) beschrieben,sollten Pufferüberläufe und Format-String-Fehler sowohl für die lokalen Computer alsauch das Netzwerk als sicherheitsrelevant klassifiziert werden. Wie auch bei den lokalenVarianten dieser Programmierfehler nutzen Angreifer Pufferüberläufe bei Netzwerkpro-grammen meistens aus, um root-Berechtigungen zu erhalten. Selbst wenn dies nichtder Fall ist, könnte sich der Angreifer zumindest Zugang zu einem unprivilegiertenlokalen Konto verschaffen, mit dem er dann weitere Schwachstellen ausnutzen kann,sofern diese vorhanden sind.

Über das Netzwerk ausbeutbare Pufferüberläufe und Format-String-Fehler sind wohldie häufigsten Varianten von entfernten Angriffen überhaupt. Über Sicherheits-Mailing-Listen werden so genannte Exploits bekannt gemacht, d. h. Programme, die die frischgefundenen Sicherheitslücken ausnutzen. Auch jemand, der nicht die genauen Detailsdes Codes kennt, kann damit die Sicherheitslücken ausnutzen. Im Laufe der Jahre hatsich herausgestellt, dass die freie Verfügbarkeit von Exploit-Code generell die Sicherheitvon Betriebssystemen erhöht hat, was sicherlich daran liegt, dass Betriebssystemher-steller dazu gezwungen waren, die Probleme in ihrer Software zu beseitigen. Da beifreier Software der Quellcode für jedermann erhältlich ist (SUSE Linux liefert alle

148 Referenz

Page 149: Suse 10.1 Linux Reference De

verfügbaren Quellen mit), kann jemand, der eine Sicherheitslücke mitsamt Exploit-Code findet, auch gleichzeitig noch einen Patch für das Problem anbieten.

DoS – Denial of ServiceZiel von DoS-Angriffen ist das Blockieren eines Serverprogramms oder sogar desganzen Systems. Dies kann auf verschiedenste Arten passieren: durch Überlasten desServers, indem er mit unsinnigen Paketen beschäftigt wird, oder durch Ausnutzen vonentfernten Pufferüberläufen. Der Zweck eines DoS-Angriffs ist häufig, dafür zu sorgen,dass der Dienst nicht mehr verfügbar ist. Wenn ein bestimmter Dienst jedoch fehlt,kann die Kommunikation Angriffen wieMan-in-the-middle-Angriffen (Sniffing, TCP-Connection-Hijacking, Spoofing) und DNS-Poisoning ausgesetzt sein.

Man in the Middle: Sniffing, Hijacking, SpoofingIm Allgemeinen gilt: Ein entfernter Angriff, bei dem der Angreifer eine Position zwi-schen zwei kommunizierenden Hosts einnimmt, wird als Man-in-the-middle-Angriffbezeichnet. Solche Angriffe haben in der Regel eines gemeinsam: Das Opfer merktnichts davon. Viele Varianten sind denkbar, z. B.: Der Angreifer nimmt eine Verbin-dungsanforderung entgegen und stellt selbst eine Verbindung zum Ziel her. Das Opferhat also, ohne es zu wissen, eine Netzwerkverbindung zum falschen Host geöffnet, weildieser sich als das Ziel ausgibt.

Die einfachste Form eines Man-in-the-middle-Angriffs wird als Sniffer bezeichnet. Beidiesen belauscht der Angreifer einfach nur die Netzverbindungen, die an ihm vorübergeführt werden. Komplexer wird es, wenn der „Man-in-the-middle“-Angreifer versucht,eine bereits eingerichtete Verbindung zu übernehmen (Connection-Hijacking). Dafürmuss der Angreifer die Pakete, die an ihm vorbeigeführt werden, eine Weile analysierthaben, damit er die richtigen TCP-Sequenznummern der TCP-Verbindung vorhersagenkann. Wenn er dann die Rolle des Zielhosts der Verbindung übernimmt, merkt das dasOpfer, weil es die Meldung erhält, dass die Verbindung wegen eines Fehlers beendetwird. Der Angreifer profitiert dabei insbesondere bei Protokollen, die nicht kryptogra-phisch gegen Hijacking gesichert sind und bei denen zu Beginn der Verbindung nureine einfache Authentifizierung stattfindet.

Spoofing ist ein Angriff, bei dem Pakete mit falschen Absenderdaten, in der Regel derIP-Adresse, versendet werden. Die meisten aktiven Angriffsvarianten verlangen dasVerschicken von gefälschten Paketen, was unter Unix/Linux übrigens nur der Superuser(root) kann.

Sicherheit in Linux 149

Page 150: Suse 10.1 Linux Reference De

Viele der hier erwähnten Angriffsmöglichkeiten kommen in Kombination mit einemDoS vor. Gibt es eine Möglichkeit, einen Rechner abrupt vom Netzwerk zu trennen(wenn auch nur für kurze Zeit), dann wirkt sich das förderlich auf einen aktiven Angriffaus, weil seitens des Hosts keine Störungen des Angriffs mehr erwartet werden müssen.

DNS-PoisoningBeim DNS-Poisoning versucht der Angreifer, mit gefälschten (gespooften) DNS-Ant-wortpaketen den Cache eines DNS-Servers zu „vergiften“ (poisoning), sodass dieserbestimmte Daten an ein Opfer weitergibt, das Informationen vom Server anfordert.Viele Server haben, basierend auf IP-Adressen oder Hostnamen, ein verbürgtes Verhält-nis zu anderen Hosts. Der Angreifer benötigt allerdings gute Kenntnisse der Vertrau-ensstruktur zwischen diesen Hosts, um sich selbst als einer der verbürgten Hosts ausge-ben zu können. Der Angreifer analysiert in der Regel einige vom Server gesendetePakete, um die erforderlichen Informationen zu erhalten. Ein zeitlich genau abgestimmterDoS-Angriff gegen den Namenserver ist aus Sicht des Angreifers ebenfalls unerlässlich.Sie können sich selbst schützen, indem Sie verschlüsselte Verbindungen verwenden,die die Identität des Zielhosts der Verbindung verifizieren können.

WürmerWürmer werden häufig mit Viren gleichgesetzt. Es gibt aber einen markanten Unter-schied. Anders als Viren müssen Würmer kein Hostprogramm infizieren, um überlebenzu können. Stattdessen sind sie darauf spezialisiert, sich so schnell wie möglich inNetzwerken zu verbreiten. Bekannte Würmer wie Ramen, Lion oder Adore nutzenbekannte Sicherheitslücken von Serverprogrammen wie bind8 oder lprNG. Man kannsich relativ einfach gegen Würmer schützen. Weil zwischen dem Zeitpunkt desBekanntwerdens der Sicherheitslücken bis zum Auftauchen des Wurms auf dem Serverin der Regel einige Zeit vergeht, ist es gut möglich, das dann bereits Update-Versionendes betroffenen Programms zur Verfügung stehen. Natürlich setzt dies voraus, dass derAdministrator die Sicherheits-Updates auch auf den entsprechenden Systemen installiert.

4.5.2 Tipps und Tricks: Allgemeine Hinweisezur Sicherheit

Für einen kompetenten Umgang mit dem Bereich Sicherheit ist es nötig, mit neuenEntwicklungen Schritt zu halten und auf dem Laufenden zu sein, was die neuesten

150 Referenz

Page 151: Suse 10.1 Linux Reference De

Sicherheitsprobleme angeht. Ein sehr guter Schutz gegen Fehler aller Art ist dasschnellstmögliche Installieren von Update-Paketen, die in Sicherheitsmitteilungenempfohlen werden. Die SUSE-Sicherheitsmitteilungen (Security Announcements)werden über eine Mailingliste verbreitet, in die Sie sich unter der Adresse http://www.novell.com/linux/security/securitysupport.html eintragenkönnen. Die [email protected], die u.a. von Mitgliederndes SUSE-Sicherheitsteams erstellt wird, ist die erste Informationsquelle für Update-Pakete.

Diese [email protected] ist ein informatives Diskussionsforumfür den Bereich Sicherheit. Sie können sie auf derselben Webseite abonnieren.

[email protected] ist eine der bekanntesten Sicherheits-Mailinglistender Welt. Die Lektüre dieser Liste mit durchschnittlich 15-20 Beiträgen am Tag wirdempfohlen. Weitere Informationen hierzu finden Sie unter http://www.securityfocus.com.

Im Folgenden sind einige Grundregeln für die Sicherheit aufgeführt:

• Vermeiden Sie es, als root zu arbeiten, entsprechend dem Prinzip, die geringstnö-tigen Privilegien für eine Aufgabe zu verwenden. Das verringert das Risiko, sichein Kuckucksei oder einen Virus einzufangen, und schützt Sie vor eigenen Fehlern.

• Verwenden Sie nach Möglichkeit immer verschlüsselte Verbindungen, um Arbeitenvon einem entfernten Standort aus durchzuführen. Verwenden Sie standardmäßigssh (secure shell) anstelle von telnet, ftp, rsh und rlogin.

• Benutzen Sie keine Authentifizierungsmethoden, die allein auf der IP-Adressebasieren.

• Halten Sie Ihre wichtigsten Pakete für den Netzwerkbereich immer auf demneuesten Stand und abonnieren Sie die entsprechenden Mailinglisten, um neueVersionen der jeweiligen Software (bind, sendmail, ssh usw.) zu erhalten. Dasselbegilt für Software, die nur lokale Sicherheitsrelevanz hat.

• Optimieren Sie die Zugriffsrechte für sicherheitskritische Dateien im System, indemSie die Datei /etc/permissions an die Sicherheitsanforderungen des Systemsanpassen. Wenn Sie das setuid-Bit aus einem Programm entfernen, kann diesesseine Aufgabe möglicherweise nicht mehr ordnungsgemäß erledigen. Auf deranderen Seite stellt das Programm dann aber in der Regel auch kein Sicherheitspro-

Sicherheit in Linux 151

Page 152: Suse 10.1 Linux Reference De

blem mehr dar. Mit einer ähnlichen Vorgehensweise können Sie auch allgemeinschreibbare Dateien (Berechtigungsstufe „world“) und Verzeichnisse bearbeiten.

• Deaktivieren Sie jegliche Netzwerkdienste, die Sie auf Ihrem Server nicht zwingendbrauchen. Das macht Ihr System sicherer. Offene Ports (mit Socket-Status LISTEN)finden Sie mit dem Programm netstat. Als Optionen bieten sich netstat -apoder netstat -anp an. Mit der Option -p können Sie sehen, welcher Prozesseinen Port unter welchem Namen belegt.

Vergleichen Sie die Ergebnisse von netstat mit einem vollständigen Portscan desHosts von außen. Das Programm „nmap“ ist dafür hervorragend geeignet. Esüberprüft nicht nur jeden einzelnen Port des Hosts, sondern kann anhand der Antwortdes Hosts Schlüsse über einen hinter dem Port wartenden Dienst ziehen. ScannenSie niemals einen Rechner ohne das direkte Einverständnis des Administrators,denn dies könnte als aggressiver Akt aufgefasst werden. Denken Sie daran, dassSie nicht nur TCP-Ports scannen sollten, sondern auf jeden Fall auch UDP-Ports(Optionen -sS und -sU).

• Zur zuverlässigen Integritätsprüfung der Dateien in Ihrem System sollten Sie dasProgramm AIDE (Advanced Intrusion Detection Environment) verwenden, dasunter SUSE Linux verfügbar ist. Verschlüsseln Sie die von AIDE erstellte Daten-bank, um unbefugte Zugriffe auf diese zu verhindern. Bewahren Sie außerdem einBackup dieser Datenbank an einem sicheren Ort auf. Verwenden Sie dazu jedochein externes Speichermedium, das nicht über eine Netzwerkverbindung mit IhremComputer verbunden ist.

• Seien Sie vorsichtig beim Installieren von Drittanbietersoftware. Es gab schonFälle, wo ein Angreifer tar-Archive einer Sicherheitssoftware mit einem trojanischenPferd versehen hat. Zum Glück wurde dies schnell bemerkt. Wenn Sie ein Binärpaketinstallieren, sollten Sie sicher sein, woher das Paket kommt.

SUSE-RPM-Pakete sind mit GPG signiert. Der von SUSE zum Signieren verwen-dete Schlüssel lautet wie folgt:

ID:9C800ACA 2000-10-19 SUSE Package Signing Key <[email protected]>

Key fingerprint = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA

Der Befehl rpm --checksig package.rpm zeigt, ob die Prüfsumme und dieSignatur eines (nicht installierten) Pakets stimmen. Sie finden den Schlüssel aufder ersten CD der Distribution oder auf den meisten Schlüsselservern der Welt.

152 Referenz

Page 153: Suse 10.1 Linux Reference De

• Überprüfen Sie regelmäßig die Backups der Benutzer- und Systemdateien. Ohneeine zuverlässige Aussage über die Qualität des Backups ist das Backup unterUmständen wertlos.

• Überprüfen Sie die Protokolldateien. Nach Möglichkeit sollten Sie sich ein kleinesSkript schreiben, welches die Protokolldateien nach ungewöhnlichen Einträgenabsucht. Diese Aufgabe ist alles andere als trivial. Schließlich wissen nur Sie, wasungewöhnlich ist und was nicht.

• Verwenden Sie tcp_wrapper, um den Zugriff auf die einzelnen Dienste IhresComputers einzuschränken, und explizit anzugeben, welchen IP-Adressen derZugriff gestattet ist. Weitere Informationen zu tcp_wrapper finden Sie auf denManualpages zu tcpd und hosts_access (man 8 tcpd, man hosts_access).

• Als zusätzlichen Schutz zu tcpd (tcp_wrapper) könnten Sie SuSEfirewall verwenden.

• Richten Sie die Sicherheitsmaßnahmen redundant ein: Eine Meldung, die zweimalgelesen wird, ist besser als eine, die Sie nie sehen.

4.5.3 Zentrale Adresse für die Meldung vonneuen Sicherheitsproblemen

Wenn Sie ein Sicherheitsproblem finden (bitte überprüfen Sie zunächst die zur Verfü-gung stehenden Update-Pakete), schreiben Sie an die E-Mail-Adresse [email protected]. Bitte fügen Sie eine genaue Beschreibung des Problems bei, zusammen mitden Versionsnummern der verwendeten Pakete. SUSE bemüht sich, Ihnen so schnellwie möglich zu antworten. Eine pgp-Verschlüsselung Ihrer E-Mail ist erwünscht. SUSEverwendet folgenden PGP-Schlüssel:ID:3D25D3D9 1999-03-06 SUSE Security Team <[email protected]>Key fingerprint = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5

Dieser Schlüssel kann auch unter folgender URL heruntergeladen werden: http://www.novell.com/linux/security/securitysupport.html.

Sicherheit in Linux 153

Page 154: Suse 10.1 Linux Reference De
Page 155: Suse 10.1 Linux Reference De

5Zugriffskontrolllisten unter LinuxPOSIX-ACLs (Zugriffskontrolllisten) können als Erweiterung des traditionellenBerechtigungskonzepts für Dateisystemobjekte verwendet werden. Mit ACLs könnenBerechtigungen flexibler als mit dem traditionellen Berechtigungskonzept definiertwerden.

Der Begriff POSIX-ACL suggeriert, dass es sich um einen echten Standard aus derPOSIX-Familie (Portable Operating System Interface) handelt. Die entsprechendenStandardentwürfe POSIX 1003.1e und POSIX 1003.2c wurden aus mehreren Gründenzurückgezogen. ACLs unter vielen UNIX-artigen Betriebssystemen basieren allerdingsauf diesen Entwürfen und die Implementierung der in diesem Kapitel beschriebenenDateisystem-ACLs folgt diesen beiden Standards ebenfalls. Die Standards können unterhttp://wt.xpilot.org/publications/posix.1e/ eingesehen werden.

5.1 Traditionelle DateiberechtigungenDie Grundlagen der traditionellen Linux-Dateiberechtigungen werden inAbschnitt „Benutzer und Zugriffsberechtigungen“ (Kapitel 3, Arbeiten mit der Shell,↑Start) erläutert. Erweiterte Funktionen sind das setuid-, das setgid- und das sticky-Bit.

5.1.1 setuid-BitIn bestimmten Situationen sind die Zugriffsberechtigungen möglicherweise zu streng.Deshalb weist Linux zusätzliche Einstellungen auf, die das vorübergehende Ändernder aktuellen Benutzer- und Gruppenidentität für eine bestimmte Aktion ermöglichen.

Zugriffskontrolllisten unter Linux 155

Page 156: Suse 10.1 Linux Reference De

Für das passwd-Programm sind beispielsweise im Regelfall root-Berechtigungen fürden Zugriff auf/etc/passwd erforderlich. Diese Datei enthält wichtige Informationen,beispielsweise die Home-Verzeichnisse von Benutzern sowie Benutzer- und Gruppen-IDs. Folglich ist es einem normalen Benutzer im Regelfall nicht möglich, passwd zuändern, da es zu gefährlich wäre, allen Benutzern den direkten Zugriff auf diese Dateizu gewähren. Eine mögliche Lösung dieses Problems stellt der setuid-Mechanismusdar. setuid (set user ID (Benutzer-ID festlegen) ist ein spezielles Dateiattribut, dass dasSystem zum Ausführen entsprechend markierter Programme unter einer bestimmtenBenutzer-ID veranlasst. Betrachten wir einmal den passwd-Befehl:-rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd

Sie sehen das s, das angibt, dass das setuid-Bit für die Benutzerberechtigung festgelegtist. Durch das setuid-Bit führen alle Benutzer, die den passwd-Befehl aufrufen, denentsprechenden Vorgang als root aus.

5.1.2 setgid-BitDas setuid-Bit hat für Benutzer Gültigkeit. Es gibt jedoch eine entsprechende Eigenschaftfür Gruppen: das setgid-Bit. Ein Program, für das dieses Bit festgelegt wurde, wirdunter der Gruppen-ID ausgeführt, unter der es gespeichert wurde, unabhängig davon,von welchem Benutzer es gestartet wird. Folglich werden in einem Verzeichnis mitdem setgid-Bit alle neu erstellten Dateien und Unterverzeichnisse der Gruppe zugewie-sen, der das Verzeichnis zugehörig ist. Betrachten wir einmal folgendes Beispielver-zeichnis:drwxrws--- 2 tux archive 48 Nov 19 17:12 backup

Sie sehen das s, das angibt, dass das setgid-Bit für die Gruppenberechtigung festgelegtist. Der Eigentümer des Verzeichnisses sowie Mitglieder der Gruppe archive dürfenauf dieses Verzeichnis zugreifen. Benutzer, die nicht Mitglied dieser Gruppe sind,werden der entsprechenden Gruppe „zugeordnet“. archive ist die Gruppen-ID füralle geschriebenen Dateien. Ein mit der Gruppen-IDarchive ausgeführtes Sicherungs-programm kann auch ohne root-Berechtigungen auf dieses Verzeichnis zugreifen.

5.1.3 sticky-BitAußerdem gibt es das sticky-Bit. Es macht einen Unterschied. ob es einem ausführbarenProgramm oder einem Verzeichnis zugehörig ist. Wenn es einem Programm zugehörig

156 Referenz

Page 157: Suse 10.1 Linux Reference De

ist, wird eine auf diese Weise markierte Datei in den RAM geladen; auf diese Weisemuss sie nicht bei jeder Verwendung von der Festplatte abgerufen werden. DiesesAttribut kommt selten zum Einsatz, da moderne Festplatten schnell genug sind. Wenndieses Bit einem Verzeichnis zugewiesen ist, hindert es einen Benutzer daran, Dateieneines anderen Benutzers zu löschen. Zu den typischen Beispielen zählen die Verzeich-nisse /tmp und /var/tmp:drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp

5.2 Vorteile von ACLsTraditionell sind für jedes Dateiobjekt unter Linux drei Berechtigungsgruppen definiert.Diese Gruppen enthalten die Berechtigungen zum Lesen (r), Schreiben (w) und Aus-führen (x) für den Eigentümer der Datei, die Gruppe und andere Benutzer. Zusätzlichkönnen noch die Bits für set user id, set group id und das sticky-Bit gesetzt werden.Dieses schlanke Konzept ist für die meisten in der Praxis auftretenden Fälle völligausreichend. Für komplexere Szenarien oder erweiterte Anwendungen mussten Syste-madministratoren früher eine Reihe von Tricks anwenden, um die Einschränkungendes traditionellen Berechtigungskonzepts zu umgehen.

ACLs können als Erweiterung des traditionellen Berechtigungskonzepts verwendetwerden. Sie ermöglichen es, einzelnen Benutzern oder Gruppen, bei denen es sich nichtum den ursprünglichen Eigentümer oder die ursprüngliche Eigentümergruppe handelt,Berechtigungen zuzuweisen. ACLs sind eine Funktion des Linux-Kernels und werdenderzeit von ReiserFS, Ext2, Ext3, JFS und XFS unterstützt. Mithilfe von ACLs könnenkomplexe Szenarien umgesetzt werden, ohne dass auf Anwendungsebene komplexeBerechtigungsmodelle implementiert werden müssen.

Die Vorzüge von ACLs zeigen sich, wenn Sie einen Windows-Server durch einenLinux-Server ersetzen möchten. Einige der angeschlossenen Arbeitsstationen könnenauch nach der Migration weiter unter Windows betrieben werden. Das Linux-Systemstellt den Windows-Clients Datei- und Druckdienste über Samba zur Verfügung. DaSamba ACLs unterstützt, können Benutzerberechtigungen sowohl auf dem Linux-Serverals auch über eine grafische Benutzeroberfläche unter Windows (nur Windows NT undhöher) konfiguriert werden. Über winbindd, einem Teil der Samba-Suite, ist es sogarmöglich, Benutzern, die nur in der Windows-Domäne existieren und über kein Kontoauf dem Linux-Server verfügen, Berechtigungen zu gewähren.

Zugriffskontrolllisten unter Linux 157

Page 158: Suse 10.1 Linux Reference De

5.3 DefinitionenBenutzerklasse

Das traditionelle POSIX-Berechtigungskonzept verwendet drei Klassen vonBenutzern für das Zuweisen von Berechtigungen im Dateisystem: den Eigentümer(owner), die Eigentümergruppe (owning group) und andere Benutzer (other). ProBenutzerklasse können jeweils die drei Berechtigungsbits zum Lesen (r), Schreiben(w) und Ausführen (x) gesetzt werden.

Zugriffs-ACLDie Zugriffsberechtigungen für Benutzer und Gruppen auf beliebige Dateisystem-objekte (Dateien und Verzeichnisse) werden über Access ACLs (Zugriffs-ACLs)festgelegt.

Standard-ACLStandard-ACLs können nur auf Verzeichnisse angewendet werden. Diese legenfest, welche Berechtigungen ein Dateisystemobjekt übernimmt, wenn das Objektvon seinem übergeordneten Verzeichnis erstellt wird.

ACL-EintragJede ACL besteht aus mehreren ACL-Einträgen. Ein ACL-Eintrag enthält einenTyp, einen Bezeichner für den Benutzer oder die Gruppe, auf den bzw. die sichder Eintrag bezieht, und Berechtigungen. Für einige Eintragstypen ist derBezeichner für die Gruppe oder die Benutzer nicht definiert.

5.4 Arbeiten mit ACLsTabelle 5.1, „Typen von ACL-Einträgen“ (S. 159) fasst die sechs möglichen Typen vonACL-Einträgen zusammen und beschreibt die für einen Benutzer oder eine Gruppe vonBenutzern verfügbaren Berechtigungen. Der Eintrag owner definiert die Berechtigungendes Benutzers, der Eigentümer der Datei oder des Verzeichnisses ist. Der Eintrag owninggroup definiert die Berechtigungen der Gruppe, die Eigentümer der Datei ist. DerSuperuser kann den Eigentümer (owner) oder die Eigentümergruppe (owning group)mit chown oder chgrp ändern, in welchem Fall die Einträge „owner“ und „owninggroup“ sich auf den neuen Eigentümer bzw. die neue Eigentümergruppe beziehen. DieEinträge des Typs named user definieren die Berechtigungen des Benutzers, der imBezeichnerfeld des Eintrags angegeben ist. Die Einträge des Typs named group defi-nieren die Berechtigungen der im Bezeichnerfeld des Eintrags angegebenen Gruppe.

158 Referenz

Page 159: Suse 10.1 Linux Reference De

Nur die Einträge des Typs „named user“ und „named group“ verfügen über einBezeichnerfeld, das nicht leer ist. Der Eintrag other definiert die Berechtigungen alleranderen Benutzer.

Der Eintrag mask schränkt die durch die Einträge „named user“, „named group“ und„owning group“ gewährten Berechtigungen ein, indem durch ihn festgelegt werdenkann, welche der Berechtigungen in diesen Einträgen wirksam und welche maskiertsind. Sind Berechtigungen sowohl in einem der oben genannten Einträge als auch inder Maske vorhanden, werden sie wirksam. Berechtigungen, die nur in der Maske odernur im eigentlichen Eintrag vorhanden sind, sind nicht wirksam, d. h., die Berechtigungenwerden nicht gewährt. Die in den Einträgen „owner“ und „owning group“ gewährtenBerechtigungen sind immer wirksam. Dieser Mechanismus wird mit dem Beispiel inTabelle 5.2, „Maskierung von Zugriffsberechtigungen“ (S. 160) verdeutlicht.

Es gibt zwei grundlegende Klassen von ACLs: Eine minimale ACL enthält nur dieEinträge für die Typen „owner“, „owning group“ und „other“, die den traditionellenBerechtigungsbits für Dateien und Verzeichnisse entsprechen. Eine erweiterte ACLgeht über dieses Konzept hinaus. Sie muss einen Eintrag des Typs „mask“ enthaltenund kann mehrere Einträge des Typs „named user“ und „named group“ haben.

Tabelle 5.1 Typen von ACL-Einträgen

TextformatTyp

user::rwxowner

user:name:rwxnamed user

group::rwxowning group

group:name:rwxnamed group

mask::rwxmask

other::rwxother

Zugriffskontrolllisten unter Linux 159

Page 160: Suse 10.1 Linux Reference De

Tabelle 5.2 Maskierung von Zugriffsberechtigungen

BerechtigungenTextformatEintragstyp

r-xuser:geeko:r-xnamed user

rw-mask::rw-mask

r--wirksame Berechtigungen:

5.4.1 ACL-Einträge undDateimodus-Berechtigungsbits

Abbildung 5.1, „Minimale ACL: ACL-Einträge vs. Berechtigungsbits“ (S. 160) undAbbildung 5.2, „Erweiterte ACL: ACL-Einträge vs. Berechtigungsbits“ (S. 161) zeigeneine minimale und eine erweiterte ACL. Die Abbildungen sind in drei Blöcke gegliedert.Der linke Block zeigt die Typspezifikationen der ACL-Einträge, der mittlere Blockzeigt ein Beispiel einer ACL und der rechte Block zeigt die entsprechenden Berechti-gungsbits gemäß dem herkömmlichen Berechtigungskonzept, wie sie beispielsweiseauch ls -l anzeigt. In beiden Fällen werden die Berechtigungen owner class demACL-Eintrag „owner“ zugeordnet. Other class-Berechtigungen werden dem entspre-chenden ACL-Eintrag zugeordnet. Die Zuordnung der Berechtigungen des Typs groupclass ist in den beiden Fällen jedoch unterschiedlich.

Abbildung 5.1 Minimale ACL: ACL-Einträge vs. Berechtigungsbits

Im Fall einer minimalen ACL – ohne „mask“ – werden die „group class“-Berechtigungendem ACL-Eintrag „owning group“ zugeordnet. Dies ist in Abbildung 5.1, „MinimaleACL: ACL-Einträge vs. Berechtigungsbits“ (S. 160) dargestellt. Im Fall einer erweitertenACL – mit „mask“ – werden die „group class“-Berechtigungen dem „mask“-Eintrag

160 Referenz

Page 161: Suse 10.1 Linux Reference De

zugeordnet. Dies ist in Abbildung 5.2, „Erweiterte ACL: ACL-Einträge vs. Berechti-gungsbits“ (S. 161) dargestellt.

Abbildung 5.2 Erweiterte ACL: ACL-Einträge vs. Berechtigungsbits

Durch diese Art der Zuordnung ist die reibungslose Interaktion von Anwendungen mitund ohne ACL-Unterstützung gewährleistet. Die Zugriffsberechtigungen, die mittelsder Berechtigungsbits festgelegt wurden, sind die Obergrenze für alle anderen „Feinein-stellungen“, die per ACL vorgenommen werden. Werden Berechtigungsbits geändert,spiegelt sich dies in der ACL wider und umgekehrt.

5.4.2 Ein Verzeichnis mit einer Zugriffs-ACLMit getfacl und setfacl in der Befehlszeile können Sie auf ACLs zugreifen. DieVerwendung dieser Befehle wird im folgenden Beispiel erläutert:

Bevor Sie das Verzeichnis erstellen, können Sie mit dem Befehl umask festlegen,welche Zugriffsberechtigungen gleich beim Erstellen von Dateiobjekten maskiert werdensollen. Der Befehl umask 027 legt die Standardberechtigungen fest, wobei er demEigentümer sämtliche Berechtigungen (0) gewährt, der Gruppe den Schreibzugriff (2)verweigert und allen anderen Benutzern überhaupt keine Berechtigungen erteilt (7).Die entsprechenden Berechtigungsbits werden von umask maskiert oder deaktiviert.Weitere Informationen hierzu finden Sie auf der Manualpage umask.

mkdir mydir erstellt das Verzeichnis mydir mit den durch umask festgelegtenStandardberechtigungen. Mit dem Befehl ls -dl mydir können Sie prüfen, ob alleBerechtigungen ordnungsgemäß zugewiesen wurden. Die Ausgabe für dieses Beispielsieht wie folgt aus:drwxr-x--- ... tux project3 ... mydir

Mit dem Befehl getfacl mydir prüfen Sie den anfänglichen Status der ACL. Eswerden ähnliche Informationen wie im folgenden Beispiel zurückgegeben:

Zugriffskontrolllisten unter Linux 161

Page 162: Suse 10.1 Linux Reference De

# file: mydir # owner: tux # group: project3 user::rwx group::r-x other::---

Die ersten drei Zeilen der Ausgabe nennen Namen, Eigentümer und Eigentümergruppedes Verzeichnisses. Die drei nächsten Zeilen enthalten die drei ACL-Einträge „owner“,„owning group“ und „other“. Insgesamt liefert Ihnen der Befehl getfacl im Falldieser minimalen ACL keine Informationen, die Sie mit ls nicht auch erhalten hätten.

Ändern Sie die ACL so, dass Sie dem zusätzlichen Benutzergeeko und der zusätzlichenGruppe mascots Lese-, Schreib- und Ausführberechtigungen gewähren, indem Siefolgenden Befehl eingeben:setfacl -m user:geeko:rwx,group:mascots:rwx mydir

Mit der Option -m kann per setfacl die vorhandene ACL geändert werden. Dasnachfolgende Argument gibt an, welche ACL-Einträge geändert werden (mehrereEinträge werden durch Kommas voneinander getrennt). Im letzten Teil geben Sie denNamen des Verzeichnisses an, für das diese Änderungen gelten sollen. Mit dem Befehlgetfacl können Sie sich die resultierende ACL ansehen.# file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-xgroup:mascots:rwx mask::rwx other::---

Zusätzlich zu den von Ihnen erstellten Einträgen für den Benutzer geeko und dieGruppe mascotswurde ein „mask“-Eintrag generiert. Der mask-Eintrag wird automa-tisch gesetzt, sodass alle Berechtigungen wirksam sind. Außerdem passt setfaclvorhandene mask-Einträge automatisch an die geänderten Einstellungen an, es sei denn,Sie deaktivieren diese Funktion mit -n. „mask“ legt die maximal wirksamen Zugriffs-berechtigungen für alle Einträge innerhalb der „group class“ fest. Dazu gehören „nameduser“, „named group“ und „owning group“. Die Berechtigungsbits des Typs „groupclass“, die mit ls -dl mydir ausgegeben werden, entsprechen jetzt demmask-Eintrag.drwxrwx---+ ... tux project3 ... mydir

162 Referenz

Page 163: Suse 10.1 Linux Reference De

Die erste Spalte der Ausgabe enthält ein zusätzliches +, um darauf hinzuweisen, dassfür dieses Objekt eine erweiterte ACL vorhanden ist.

Gemäß der Ausgabe des Befehlsls beinhalten die Berechtigungen für den mask-Eintragauch Schreibzugriff. Solche Berechtigungsbits würden normalerweise bedeuten, dassdie „owning group“ (hier project3) ebenfalls Schreibzugriff auf das Verzeichnismydir hätte. Allerdings sind die wirklich wirksamen Zugriffsberechtigungen für die„owning group“ als die Schnittmenge aus den für „owning group“ und den für „mask“gesetzten Berechtigungen definiert, in unserem Beispiel also r-x (siehe Tabelle 5.2,„Maskierung von Zugriffsberechtigungen“ (S. 160)). Was die wirksamen Berechtigungender „owning group“ in diesem Beispiel betrifft, hat sich also nach dem Hinzufügen derACL-Einträge nichts geändert.

Bearbeiten Sie den mask-Eintrag mit setfacl oder chmod. Geben Sie beispielsweisechmod g-w mydir ein. ls -dl mydir gibt dann Folgendes aus:drwxr-x---+ ... tux project3 ... mydir

getfacl mydir erzeugt folgende Ausgabe:# file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx # effective: r-xgroup::r-x group:mascots:rwx # effective: r-x mask::r-x other::---

Nachdem Sie mit dem Befehl chmod den Schreibzugriff über die „group class“-Bitsdeaktiviert haben, liefert Ihnen bereits die Ausgabe des Befehls ls den Hinweis darauf,dass die mask-Bits entsprechend angepasst wurden: Die Schreibberechtigung ist wiederauf den Eigentümer von mydir beschränkt. Dies wird durch die Ausgabe des Befehlsgetfacl bestätigt. Dieser Befehl fügt allen Einträgen Kommentare hinzu, deren tat-sächlich wirksame Berechtigungsbits nicht mit den ursprünglich gesetzten übereinstim-men, weil sie vom mask-Eintrag herausgefiltert werden. Die ursprünglichen Berechti-gungen können jederzeit mit dem Befehl chmod g+w mydir wiederhergestelltwerden.

Zugriffskontrolllisten unter Linux 163

Page 164: Suse 10.1 Linux Reference De

5.4.3 Ein Verzeichnis mit einer Standard-ACLVerzeichnisse können über eine Standard-ACL verfügen. Dabei handelt es sich umeinen speziellen Typ von ACL, der festlegt, welche Zugriffsberechtigungen neueUnterobjekte dieses Verzeichnisses bei ihrer Erstellung erben. Eine Standard-ACLwirkt sich sowohl auf Unterverzeichnisse als auch auf Dateien aus.

Auswirkungen einer Standard-ACLDie Zugriffsberechtigungen in der Standard-ACL eines Verzeichnisses werden anDateien und Unterverzeichnisse unterschiedlich vererbt:

• Ein Unterverzeichnis erbt die Standard-ACL des übergeordneten Verzeichnissessowohl als seine eigene Standard-ACL als auch als Zugriffs-ACL.

• Eine Datei erbt die Standard-ACL als ihre eigene Zugriffs-ACL.

Alle Systemaufrufe, die Dateisystemobjekte anlegen, verwenden einenmode-Parameter,der die Zugriffsberechtigungen für das neu erstellte Dateisystemobjekt definiert. Hatdas übergeordnete Verzeichnis keine Standard-ACL, werden die mit umask definiertenBerechtigungsbits mit dem mode-Parameter von den Berechtigungen abgezogen unddas Ergebnis wird dem neuen Objekt zugewiesen. Existiert eine Standard-ACL für dasübergeordnete Verzeichnis, entsprechen die dem neuen Objekt zugewiesenen Berechti-gungsbits der Schnittmenge aus den Berechtigungen des mode-Parameters und den inder Standard-ACL festgelegten Berechtigungen. umask wird in diesem Fall nichtbeachtet.

Standard-ACLs in der PraxisDie drei folgenden Beispiele führen Sie an die wichtigsten Operationen an Verzeichnis-sen und Standard-ACLs heran:

1. Fügen Sie dem vorhandenen Verzeichnis mydir eine Standard-ACL hinzu,indem Sie folgenden Befehl eingeben:setfacl -d -m group:mascots:r-x mydir

Die Option -d des Befehls setfacl weist setfacl an, die folgendenÄnderungen (Option -m) an der Standard-ACL vorzunehmen.

164 Referenz

Page 165: Suse 10.1 Linux Reference De

Sehen Sie sich das Ergebnis dieses Befehls genauer an:getfacl mydir

# file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-xgroup:mascots:rwx mask::rwx other::--- default:user::rwxdefault:group::r-x default:group:mascots:r-x default:mask::r-xdefault:other::---

getfacl gibt sowohl die Zugriffs-ACL als auch die Standard-ACL zurück.Die Standard-ACL setzt sich aus allen Zeilen zusammen, die mit defaultbeginnen. Obwohl Sie den Befehl setfacl nur mit einem Eintrag für dieGruppe mascots für die Standard-ACL ausgeführt haben, hat setfaclautomatisch alle anderen Einträge aus der Zugriffs-ACL kopiert, um so einegültige Standard-ACL zu bilden. Standard-ACLs haben keine direkten Auswir-kungen auf Zugriffsberechtigungen. Sie wirken sich nur beim Erstellen vonDateisystemobjekten aus. Diese neuen Objekte übernehmen Berechtigungen nuraus der Standard-ACL ihres übergeordneten Verzeichnisses.

2. Im nächsten Beispiel wird mit mkdir ein Unterverzeichnis in mydir angelegt,das die Standard-ACL übernimmt.mkdir mydir/mysubdir

getfacl mydir/mysubdir

# file: mydir/mysubdir # owner: tux # group: project3 user::rwx group::r-x group:mascots:r-x mask::r-xother::--- default:user::rwx default:group::r-xdefault:group:mascots:r-x default:mask::r-x default:other::---

Zugriffskontrolllisten unter Linux 165

Page 166: Suse 10.1 Linux Reference De

Wie erwartet, hat das neu angelegte Unterverzeichnis mysubdir die Berechti-gungen aus der Standard-ACL des übergeordneten Verzeichnisses geerbt. DieZugriffs-ACL von mysubdir ist ein exaktes Abbild der Standard-ACL vonmydir. Die Standard-ACL, die dieses Verzeichnis an ihre untergeordnetenObjekte weitervererbt, ist ebenfalls dieselbe.

3. Legen Sie mit touch eine Datei im Verzeichnis mydir an. Beispiel: touchmydir/myfile. ls -l mydir/myfile gibt dann Folgendes zurück:-rw-r-----+ ... tux project3 ... mydir/myfile

Die Ausgabe von getfacl mydir/myfile lautet wie folgt:# file: mydir/myfile # owner: tux # group: project3user::rw- group::r-x # effective:r-- group:mascots:r-x # effective:r-- mask::r-- other::---

touch übergibt mode mit dem Wert 0666. Dies bedeutet, dass neue Dateienmit Lese- und Schreibberechtigungen für alle Benutzerklassen angelegt werden,vorausgesetzt,umask oder die Standard-ACL enthalten keine weiteren Einschrän-kungen (siehe „Auswirkungen einer Standard-ACL“ (S. 164)). Am konkretenBeispiel heißt dies, dass alle Zugriffsberechtigungen, die nicht im mode-Wertenthalten sind, aus den entsprechenden ACL-Einträgen entfernt werden. Ausdem ACL-Eintrag der „group class“ wurden keine Berechtigungen entfernt,allerdings wurde der mask-Eintrag dahin gehend angepasst, dass Berechtigungs-bits, die nicht mit mode gesetzt werden, maskiert werden.

Auf diese Weise ist sichergestellt, dass Anwendungen, zum Beispiel Compiler,reibungslos mit ACLs interagieren können. Sie können Dateien mit beschränktenZugriffsberechtigungen erstellen und diese anschließend als ausführbar markieren.Über den mask-Mechanismus ist gewährleistet, dass die richtigen Benutzer undGruppen die Dateien wie gewünscht ausführen können.

5.4.4 Der ACL-AuswertungsalgorithmusBevor ein Prozess oder eine Anwendung Zugriff auf ein durch eine ACL geschütztesDateisystemobjekt erhält, wird ein Auswertungsalgorithmus angewendet. Die ACL-

166 Referenz

Page 167: Suse 10.1 Linux Reference De

Einträge werden grundsätzlich in der folgenden Reihenfolge untersucht: „owner“,„named user“, „owning group“ oder „named group“ und „other“. Über den Eintrag,der am besten auf den Prozess passt, wird schließlich der Zugriff geregelt. Berechtigun-gen werden nicht akkumuliert.

Komplizierter werden die Verhältnisse, wenn ein Prozess zu mehr als einer Gruppegehört, also potenziell auch mehrere group-Einträge dazu passen können. Aus denpassenden Einträgen mit den erforderlichen Berechtigungen wird per Zufallsprinzipein Eintrag ausgesucht. Für das Endresultat „Zugriff gewährt“ ist es natürlich unerheb-lich, welcher dieser Einträge den Ausschlag gegeben hat. Ähnliches gilt, wenn keinerder passenden group-Einträge die erforderlichen Berechtigungen enthält. In diesemFall löst ein per Zufallsprinzip ausgewählter Eintrag das Ergebnis „Zugriff verweigert“aus.

5.5 ACL-Unterstützung inAnwendungen

Mit ACLs können sehr anspruchsvolle Berechtigungsszenarien umgesetzt werden, dieden Anforderungen moderner Anwendungen gerecht werden. Das traditionelleBerechtigungskonzept und ACLs lassen sich geschickt miteinander kombinieren. Diegrundlegenden Dateibefehle (cp, mv, ls usw.) unterstützen ACLs ebenso wie Sambaund Konqueror.

Viele Editoren und Dateimanager bieten jedoch keine ACL-Unterstützung. BeimKopieren von Dateien mit Emacs gehen die ACLs der entsprechenden Dateien beispiels-weise noch verloren. Wenn Dateien mit einer Zugriffs-ACL im Editor bearbeitet werden,hängt es vom Backup-Modus des verwendeten Editors ab, ob die Zugriffs-ACL nachAbschluss der Bearbeitung weiterhin vorliegt. Schreibt der Editor die Änderungen indie Originaldatei, bleibt die Zugriffs-ACL erhalten. Legt der Editor eine neue Datei an,die nach Abschluss der Änderungen in die alte umbenannt wird, gehen die ACLsmöglicherweise verloren, es sei denn, der Editor unterstützt ACLs. Mit Ausnahme vonStar Archiver gibt es derzeit keine Backup-Anwendungen, bei deren Verwendung dieACLs erhalten bleiben.

Zugriffskontrolllisten unter Linux 167

Page 168: Suse 10.1 Linux Reference De

5.6 Weitere InformationenAusführliche Informationen zu ACLs finden Sie unter http://acl.bestbits.at/. Weitere Informationen finden Sie außerdem auf den Manualpages fürgetfacl(1), acl(5) und setfacl(1).

168 Referenz

Page 169: Suse 10.1 Linux Reference De

6Dienstprogramme zurSystemüberwachungIn diesem Kapitel werden verschiedene Programme und Mechanismen vorgestellt, mitdenen Sie den Zustand Ihres Systems untersuchen können. Weiterhin werden einige,für die tägliche Arbeit nützliche Dienstprogramme sowie deren wichtigste Optionenbeschrieben.

Für die vorgestellten Befehle werden jeweils beispielhafte Ausgaben dargestellt. Darinist die erste Zeile der Befehl selbst (nach einem >- oder #-Zeichen als Eingabeaufforde-rung). Auslassungen sind durch eckige Klammern ([...]) gekennzeichnet und langeZeilen werden, falls erforderlich, umgebrochen. Umbrüche langer Zeilen sind durcheinen umgekehrten Schrägstrich (\) gekennzeichnet.# command -x -youtput line 1output line 2output line 3 is annoyingly long, so long that \ we have to break itoutput line 3[...]output line 98output line 99

Damit möglichst viele Dienstprogramme erwähnt werden können, sind die Beschrei-bungen kurz gehalten. Weitere Informationen zu allen Befehlen finden Sie auf denentsprechenden Manualpages. Die meisten Befehle verstehen auch die Option --help,mit der Sie eine kurze Liste der verfügbaren Parameter anzeigen können.

Dienstprogramme zur Systemüberwachung 169

Page 170: Suse 10.1 Linux Reference De

6.1 Liste der geöffneten Dateien:lsof

Um eine Liste aller Dateien anzuzeigen, die für den Prozess mit der Prozess-ID PIDgeöffnet sind, verwenden Sie -p. Um beispielsweise alle von der aktuellen Shell ver-wendeten Dateien anzuzeigen, geben Sie Folgendes ein:tester@linux:~> lsof -p $$COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEbash 5552 tester cwd DIR 3,3 1512 117619 /home/testerbash 5552 tester rtd DIR 3,3 584 2 /bash 5552 tester txt REG 3,3 498816 13047 /bin/bashbash 5552 tester mem REG 0,0 0 [heap] (stat: No such \ file or directory)bash 5552 tester mem REG 3,3 217016 115687 /var/run/nscd/passwdbash 5552 tester mem REG 3,3 208464 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPEbash 5552 tester mem REG 3,3 882134 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATEbash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.sobash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.sobash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1bash 5552 tester mem REG 3,3 54 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERICbash 5552 tester mem REG 3,3 2375 11663 \ /usr/lib/locale/en_GB.utf8/LC_TIMEbash 5552 tester mem REG 3,3 290 11736 \ /usr/lib/locale/en_GB.utf8/LC_MONETARYbash 5552 tester mem REG 3,3 52 11831 \ /usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGESbash 5552 tester mem REG 3,3 34 11862 \ /usr/lib/locale/en_GB.utf8/LC_PAPERbash 5552 tester mem REG 3,3 62 11839 \ /usr/lib/locale/en_GB.utf8/LC_NAMEbash 5552 tester mem REG 3,3 127 11664 \ /usr/lib/locale/en_GB.utf8/LC_ADDRESSbash 5552 tester mem REG 3,3 56 11735 \ /usr/lib/locale/en_GB.utf8/LC_TELEPHONEbash 5552 tester mem REG 3,3 23 11866 \ /usr/lib/locale/en_GB.utf8/LC_MEASUREMENTbash 5552 tester mem REG 3,3 21544 9109 \ /usr/lib/gconv/gconv-modules.cachebash 5552 tester mem REG 3,3 366 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATIONbash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.sobash 5552 tester 0u CHR 136,5 7 /dev/pts/5bash 5552 tester 1u CHR 136,5 7 /dev/pts/5bash 5552 tester 2u CHR 136,5 7 /dev/pts/5bash 5552 tester 255u CHR 136,5 7 /dev/pts/5

Es wurde die spezielle Shell-Variable $$ verwendet, deren Wert die Prozess-ID derShell ist.

Wird der Befehl lsof ohne Parameter eingegeben, werden alle aktuell geöffnetenDateien angezeigt. Da dies in der Regel recht viele sind, wird dieser Befehl selten ver-

170 Referenz

Page 171: Suse 10.1 Linux Reference De

wendet. Die Liste der Dateien kann jedoch mit Suchfunktionen kombiniert werden, umsinnvolle Listen zu generieren. Beispiel: Liste aller verwendeten zeichenorientiertenGeräte:tester@linux:~> lsof | grep CHRbash 3838 tester 0u CHR 136,0 2 /dev/pts/0bash 3838 tester 1u CHR 136,0 2 /dev/pts/0bash 3838 tester 2u CHR 136,0 2 /dev/pts/0bash 3838 tester 255u CHR 136,0 2 /dev/pts/0bash 5552 tester 0u CHR 136,5 7 /dev/pts/5bash 5552 tester 1u CHR 136,5 7 /dev/pts/5bash 5552 tester 2u CHR 136,5 7 /dev/pts/5bash 5552 tester 255u CHR 136,5 7 /dev/pts/5X 5646 root mem CHR 1,1 1006 /dev/memlsof 5673 tester 0u CHR 136,5 7 /dev/pts/5lsof 5673 tester 2u CHR 136,5 7 /dev/pts/5grep 5674 tester 1u CHR 136,5 7 /dev/pts/5grep 5674 tester 2u CHR 136,5 7 /dev/pts/5

6.2 Liste der Benutzer bzw. Prozesse,die auf Dateien zugreifen: fuser

Es kann hilfreich sein, zu ermitteln, welche Prozesse oder Benutzer aktuell aufbestimmte Dateien zugreifen. Angenommen, Sie möchten ein Dateisystem aushängen,das unter /mnt eingehängt ist. unmount gibt „device is busy“ zurück. Mit dem Befehlfuser können Sie anschließend ermitteln, welche Prozesse auf das Gerät zugreifen:tester@linux:~> fuser -v /mnt/*

USER PID ACCESS COMMAND/mnt/notes.txt tester 26597 f.... less

Nach dem Beenden des Prozesses less, der auf einem anderen Terminal ausgeführtwurde, kann das Aushängen des Dateisystems erfolgreich ausgeführt werden.

6.3 Dateieigenschaften: statMit dem Befehl stat zeigen Sie die Eigenschaften einer Datei an:tester@linux:~> stat /etc/profile File: `/etc/profile' Size: 7930 Blocks: 16 IO Block: 4096 regular fileDevice: 303h/771d Inode: 40657 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Dienstprogramme zur Systemüberwachung 171

Page 172: Suse 10.1 Linux Reference De

Access: 2006-01-06 16:45:43.000000000 +0100Modify: 2005-11-21 14:54:35.000000000 +0100Change: 2005-12-19 09:51:04.000000000 +0100

Mit dem Parameter--filesystemwerden Eigenschaften des Dateisystems angezeigt,in dem sich die angegebene Datei befindet:tester@linux:~> stat /etc/profile --filesystem File: "/etc/profile" ID: 0 Namelen: 255 Type: reiserfsBlock size: 4096 Fundamental block size: 4096Blocks: Total: 2622526 Free: 1809771 Available: 1809771Inodes: Total: 0 Free: 0

6.4 USB-Geräte: lsusbMit dem Befehl lsusb werden alle USB-Geräte aufgelistet. Mit der Option -v wirdeine detailliertere Liste ausgegeben. Die detaillierten Informationen werden aus demVerzeichnis /proc/bus/usb/ gelesen. Das folgende ist die Ausgabe von lsusbmit den angeschlossenen USB-Geräten Hub, Memorystick, Festplatte und Maus.linux:/ # lsusbBus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash \ 2.0 / Astone USB DriveBus 004 Device 006: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE \ AdapterBus 004 Device 005: ID 05e3:0605 Genesys Logic, Inc.Bus 004 Device 001: ID 0000:0000Bus 003 Device 001: ID 0000:0000Bus 002 Device 001: ID 0000:0000Bus 001 Device 005: ID 046d:c012 Logitech, Inc. Optical MouseBus 001 Device 001: ID 0000:0000

6.5 Informationen zu einemSCSI-Gerät: scsiinfo

Mit dem Befehl scsiinfo können Sie Informationen zu einem SCSI-Gerät anzeigen.Mit der Option-lwerden alle dem System bekannten SCSI-Geräte aufgelistet (ähnlicheInformationen erhalten Sie über den Befehl lsscsi). Im Folgenden sehen Sie dieAusgabe vonscsiinfo -i /dev/sda, die Informationen zu einer Festplatte enthält.Mit der Option -a erhalten Sie noch ausführlichere Informationen.

172 Referenz

Page 173: Suse 10.1 Linux Reference De

linux:/ # scsiinfo -i /dev/sdaInquiry command---------------Relative Address 0Wide bus 32 0Wide bus 16 1Synchronous neg. 1Linked Commands 1Command Queueing 1SftRe 0Device Type 0Peripheral Qualifier 0Removable? 0Device Type Modifier 0ISO Version 0ECMA Version 0ANSI Version 3AENC 0TrmIOP 0Response Data Format 2Vendor: FUJITSU Product: MAS3367NP Revision level: 0104A0K7P43002BE

Die Option -d gibt eine Defektliste aus, die zwei Tabellen mit fehlerhaften Blöckeneiner Festplatte enthält: die erste stammt vom Hersteller (manufacturer table), diezweite ist die Liste der fehlerhaften Blöcke, die während des Betriebs aufgetreten sind(grown table). Wenn die Anzahl der Einträge in der während des Betriebs generiertenTabelle (grown table) zunimmt, empfiehlt es sich, die Festplatte zu ersetzen.

6.6 Prozesse: topMit dem Befehl top, der für „Table of Processes“ (Tabelle der Prozesse) steht, wirdeine Liste der Prozesse angezeigt, die alle zwei Sekunden aktualisiert wird. Das Pro-gramm wird mit der Taste Q beendet. Mit der Option -n 1 wird das Programm nacheinmaliger Anzeige der Prozessliste beendet. Im Folgenden finden Sie ein Beispiel fürdie Ausgabe des Befehls top -n 1:tester@linux:~> top -n 1top - 17:06:28 up 2:10, 5 users, load average: 0.00, 0.00, 0.00Tasks: 85 total, 1 running, 83 sleeping, 1 stopped, 0 zombieCpu(s): 5.5% us, 0.8% sy, 0.8% ni, 91.9% id, 1.0% wa, 0.0% hi, 0.0% siMem: 515584k total, 506468k used, 9116k free, 66324k buffersSwap: 658656k total, 0k used, 658656k free, 353328k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 16 0 700 272 236 S 0.0 0.1 0:01.33 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

Dienstprogramme zur Systemüberwachung 173

Page 174: Suse 10.1 Linux Reference De

3 root 10 -5 0 0 0 S 0.0 0.0 0:00.27 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 11 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/0 12 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid 472 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush 473 root 15 0 0 0 0 S 0.0 0.0 0:00.06 pdflush 475 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0 474 root 15 0 0 0 0 S 0.0 0.0 0:00.07 kswapd0 681 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod 839 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 reiserfs/0 923 root 13 -4 1712 552 344 S 0.0 0.1 0:00.67 udevd 1343 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd 1587 root 20 0 0 0 0 S 0.0 0.0 0:00.00 shpchpd_event 1746 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_control 1752 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_bus_master1 2151 root 16 0 1464 496 416 S 0.0 0.1 0:00.00 acpid 2165 messageb 16 0 3340 1048 792 S 0.0 0.2 0:00.64 dbus-daemon 2166 root 15 0 1840 752 556 S 0.0 0.1 0:00.01 syslog-ng 2171 root 16 0 1600 516 320 S 0.0 0.1 0:00.00 klogd 2235 root 15 0 1736 800 652 S 0.0 0.2 0:00.10 resmgrd 2289 root 16 0 4192 2852 1444 S 0.0 0.6 0:02.05 hald 2403 root 23 0 1756 600 524 S 0.0 0.1 0:00.00 hald-addon-acpi 2709 root 19 0 2668 1076 944 S 0.0 0.2 0:00.00 NetworkManagerD 2714 root 16 0 1756 648 564 S 0.0 0.1 0:00.56 hald-addon-stor

Wenn Sie die Taste F drücken, während top aktiv ist, wird ein Menü geöffnet, indem das Format der Ausgabe umfassend bearbeitet werden kann.

Um nur die Prozesse eines bestimmten Benutzers zu überwachen, kann der Parameter-U UID verwendet werden. Ersetzen Sie UID durch die Benutzer-ID des Benutzers.Der Befehl top -U `id -u` gibt die UID des Benutzers auf Basis des Benutzerna-mens zurück und zeigt dessen Prozesse an.

6.7 Prozessliste: psMit dem Befehl ps wird eine Liste von Prozessen generiert. Die meisten Parametermüssen ohne Minuszeichen angegeben werden. Über ps --help erhalten Sie einekurze und auf der entsprechenden Manualpage eine ausführliche Hilfe.

Um alle Prozesse mit Benutzer- und Befehlszeileninformation aufzulisten, verwendenSie ps axu:tester@linux:~> ps axuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 696 272 ? S 12:59 0:01 init [5]root 2 0.0 0.0 0 0 ? SN 12:59 0:00 [ksoftirqd/0]root 3 0.0 0.0 0 0 ? S< 12:59 0:00 [events/0][...]

174 Referenz

Page 175: Suse 10.1 Linux Reference De

tester 4047 0.0 6.0 158548 31400 ? Ssl 13:02 0:06 mono-best \ --debug /usr/lib/beagle/Best.exe --autostartedtester 4057 0.0 0.7 9036 3684 ? Sl 13:02 0:00 \ /opt/gnome/sbin/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oatester 4067 0.0 0.1 2204 636 ? S 13:02 0:00 \ /opt/gnome/lib/nautilus/mapping-daemontester 4072 0.0 1.0 15996 5160 ? Ss 13:02 0:00 \ gnome-screensavertester 4114 0.0 3.7 130988 19172 ? SLl 13:06 0:04 sound-juicertester 4818 0.0 0.3 4192 1812 pts/0 Ss 15:59 0:00 -bashtester 4959 0.0 0.1 2324 816 pts/0 R+ 16:17 0:00 ps axu

Um zu prüfen, wie vielesshd-Prozesse laufen, verwenden Sie die Option-p zusammenmit dem Befehl pidof, der die Prozess-IDs der gegebenen Prozesse auflistet.tester@linux:~> ps -p `pidof sshd` PID TTY STAT TIME COMMAND 3524 ? Ss 0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid 4813 ? Ss 0:00 sshd: tester [priv] 4817 ? R 0:00 sshd: tester@pts/0

Sie können die Prozessliste entsprechend Ihren Anforderungen formatieren. Mit derOption-Lwird eine Liste aller Schlüsselwörter zurückgegeben. Geben Sie den folgendenBefehl ein, um eine nach Speichernutzung aller Prozesse sortierte Liste zu erhalten:tester@linux:~> ps ax --format pid,rss,cmd --sort rss PID RSS CMD 2 0 [ksoftirqd/0] 3 0 [events/0] 4 0 [khelper] 5 0 [kthread] 11 0 [kblockd/0] 12 0 [kacpid] 472 0 [pdflush] 473 0 [pdflush][...] 4028 17556 nautilus --no-default-window --sm-client-id default2 4118 17800 ksnapshot 4114 19172 sound-juicer 4023 25144 gnome-panel --sm-client-id default1 4047 31400 mono-best --debug /usr/lib/beagle/Best.exe --autostarted 3973 31520 mono-beagled --debug /usr/lib/beagle/BeagleDaemon.exe \ --bg --autostarted

Dienstprogramme zur Systemüberwachung 175

Page 176: Suse 10.1 Linux Reference De

6.8 Prozessbaum: pstreeMit dem Befehl pstree wird eine Liste der Prozesse in Form einer Baumstrukturgeneriert:tester@linux:~> pstreeinit-+-NetworkManagerD |-acpid |-3*[automount] |-cron |-cupsd |-2*[dbus-daemon] |-dbus-launch |-dcopserver |-dhcpcd |-events/0 |-gpg-agent |-hald-+-hald-addon-acpi | `-hald-addon-stor |-kded |-kdeinit-+-kdesu---su---kdesu_stub---yast2---y2controlcenter | |-kio_file | |-klauncher | |-konqueror | |-konsole-+-bash---su---bash | | `-bash | `-kwin |-kdesktop---kdesktop_lock---xmatrix |-kdesud |-kdm-+-X | `-kdm---startkde---kwrapper[...]

Mit dem Parameter -p werden die Namen durch die jeweiligen Prozess-IDs ergänzt.Damit auch die Befehlszeilen angezeigt werden, verwenden Sie den Parameter -a:

6.9 Wer macht was: wMit dem Befehl w ermitteln Sie, wer beim System angemeldet ist und was die einzelnenBenutzer gerade machen. Beispiel:tester@linux:~> w 16:33:03 up 3:33, 2 users, load average: 0.14, 0.06, 0.02USER TTY LOGIN@ IDLE JCPU PCPU WHATtester :0 16:33 ?xdm? 9.42s 0.15s /bin/sh /opt/kde3/bin/startkdetester pts/0 15:59 0.00s 0.19s 0.00s w

176 Referenz

Page 177: Suse 10.1 Linux Reference De

Wenn sich Benutzer von entfernten Systemen angemeldet haben, können Sie mit demParameter -f anzeigen lassen, von welchen Computern aus diese Verbindungen aufge-baut wurden.

6.10 Speichernutzung: freeDie Nutzung des Arbeitsspeichers (RAM) wird mit dem Dienstprogramm free über-prüft. Es werden Details zum freien und zum verwendeten Speicher (sowie zu denAuslagerungsbereichen) angezeigt:ester@linux:~> free total used free shared buffers cachedMem: 515584 501704 13880 0 73040 334592-/+ buffers/cache: 94072 421512Swap: 658656 0 658656

Die Optionen -b,-k,-m,-g zeigen die Ausgabe in Byte, KB, MB bzw. GB. Der Para-meter -d N gewährleistet, dass die Anzeige alle N Sekunden aktualisiert wird. So wirddie Anzeige mit free -d 1.5 beispielsweise alle 1,5 Sekunden aktualisiert.

6.11 Kernel Ring Buffer: dmesgDer Linux-Kernel hält bestimmte Meldungen in einem Ringpuffer zurück. Um dieseMeldungen anzuzeigen, geben Sie den Befehl dmesg ein:$ dmesg[...]end_request: I/O error, dev fd0, sector 0subfs: unsuccessful attempt to mount media (256)e100: eth0: e100_watchdog: link up, 100Mbps, half-duplexNET: Registered protocol family 17IA-32 Microcode Update Driver: v1.14 <[email protected]>microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004IA-32 Microcode Update Driver v1.14 unregisteredbootsplash: status on console 0 changed to onNET: Registered protocol family 10Disabled Privacy Extensions on device c0326ea0(lo)IPv6 over IPv4 tunneling driverpowernow: This module only works with AMD K7 CPUsbootsplash: status on console 0 changed to on

Ältere Ereignisse werden in den Dateien /var/log/messages und /var/log/warn protokolliert.

Dienstprogramme zur Systemüberwachung 177

Page 178: Suse 10.1 Linux Reference De

6.12 Dateisysteme und ihre Nutzung:mount, df und du

Mit dem Befehl mount können Sie anzeigen, welches Dateisystem (Gerät und Typ)an welchem Einhängepunkt eingehängt ist:tester@linux:~> mount/dev/hda3 on / type reiserfs (rw,acl,user_xattr)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)udev on /dev type tmpfs (rw)devpts on /dev/pts type devpts (rw,mode=0620,gid=5)/dev/hda1 on /boot type ext2 (rw,acl,user_xattr)/dev/hda4 on /local type reiserfs (rw,acl,user_xattr)/dev/fd0 on /media/floppy type subfs (rw,nosuid,nodev,noatime,fs=floppyfss,procuid)

Die Gesamtnutzung der Dateisysteme kann mit dem Befehl df ermittelt werden. DerParameter -h (oder --human-readable) übersetzt die Ausgabe in ein für normaleBenutzer verständliches Format.tester@linux:~> df -hFilesystem Size Used Avail Use% Mounted on/dev/hda3 11G 3.2G 6.9G 32% /udev 252M 104K 252M 1% /dev/dev/hda1 16M 6.6M 7.8M 46% /boot/dev/hda4 27G 34M 27G 1% /local

Die Gesamtgröße aller Dateien in einem bestimmten Verzeichnis und dessen Unterver-zeichnissen lässt sich mit dem Befehl du ermitteln. Der Parameter -s unterdrückt dieAusgabe der detaillierten Informationen. -hwandelt die Daten wieder in normal lesbareForm um:tester@linux:~> du -sh /local1.7M /local

6.13 Das Dateisystem /procDas Dateisystem /proc ist ein Pseudo-Dateisystem, in dem der Kernel wichtige Datenin Form von virtuellen Dateien speichert. Der CPU-Typ kann beispielsweise mit demfolgenden Befehl abgerufen werden:

178 Referenz

Page 179: Suse 10.1 Linux Reference De

ester@linux:~> cat /proc/cpuinfoprocessor : 0vendor_id : AuthenticAMDcpu family : 6model : 8model name : AMD Athlon(tm) XP 2400+stepping : 1cpu MHz : 2009.343cache size : 256 KBfdiv_bug : no[...]

Die Zuordnung und Verwendung der Interrupts kann mit dem folgenden Befehl ermitteltwerden:tester@linux:~> cat /proc/interrupts CPU0 0: 3577519 XT-PIC timer 1: 130 XT-PIC i8042 2: 0 XT-PIC cascade 5: 564535 XT-PIC Intel 82801DB-ICH4 7: 1 XT-PIC parport0 8: 2 XT-PIC rtc 9: 1 XT-PIC acpi, uhci_hcd:usb1, ehci_hcd:usb4 10: 0 XT-PIC uhci_hcd:usb3 11: 71772 XT-PIC uhci_hcd:usb2, eth0 12: 101150 XT-PIC i8042 14: 33146 XT-PIC ide0 15: 149202 XT-PIC ide1NMI: 0LOC: 0ERR: 0MIS: 0

Einige wichtige Dateien und die enthaltenen Informationen sind:

/proc/devicesverfügbare Geräte

/proc/modulesgeladene Kernel-Module

/proc/cmdlineKernel-Befehlszeile

/proc/meminfodetaillierte Informationen zur Arbeitsspeichernutzung

Dienstprogramme zur Systemüberwachung 179

Page 180: Suse 10.1 Linux Reference De

/proc/config.gzgzip-komprimierte Konfigurationsdatei des aktuell aktivierten Kernels

Weitere Informationen finden Sie in der Textdatei /usr/src/linux/Documentation/filesystems/proc.txt. Informationen zu aktuell laufendenProzessen befinden sich in den/proc/NNN-Verzeichnissen, wobeiNNN für die Prozess-ID (PID) des jeweiligen Prozesses steht. Mit /proc/self/ können die zum aktivenProzess gehörenden Eigenschaften abgerufen werden:tester@linux:~> ls -l /proc/selflrwxrwxrwx 1 root root 64 2006-01-09 13:03 /proc/self -> 5356tester@linux:~> ls -l /proc/self/total 0dr-xr-xr-x 2 tester users 0 2006-01-09 17:04 attr-r-------- 1 tester users 0 2006-01-09 17:04 auxv-r--r--r-- 1 tester users 0 2006-01-09 17:04 cmdlinelrwxrwxrwx 1 tester users 0 2006-01-09 17:04 cwd -> /home/tester-r-------- 1 tester users 0 2006-01-09 17:04 environlrwxrwxrwx 1 tester users 0 2006-01-09 17:04 exe -> /bin/lsdr-x------ 2 tester users 0 2006-01-09 17:04 fd-rw-r--r-- 1 tester users 0 2006-01-09 17:04 loginuid-r--r--r-- 1 tester users 0 2006-01-09 17:04 maps-rw------- 1 tester users 0 2006-01-09 17:04 mem-r--r--r-- 1 tester users 0 2006-01-09 17:04 mounts-rw-r--r-- 1 tester users 0 2006-01-09 17:04 oom_adj-r--r--r-- 1 tester users 0 2006-01-09 17:04 oom_scorelrwxrwxrwx 1 tester users 0 2006-01-09 17:04 root -> /-rw------- 1 tester users 0 2006-01-09 17:04 seccomp-r--r--r-- 1 tester users 0 2006-01-09 17:04 smaps-r--r--r-- 1 tester users 0 2006-01-09 17:04 stat-r--r--r-- 1 tester users 0 2006-01-09 17:04 statm-r--r--r-- 1 tester users 0 2006-01-09 17:04 statusdr-xr-xr-x 3 tester users 0 2006-01-09 17:04 task-r--r--r-- 1 tester users 0 2006-01-09 17:04 wchan

Die Adresszuordnung der Programmdateien und Bibliotheken befindet sich in der Dateimaps:tester@linux:~> cat /proc/self/maps08048000-0804c000 r-xp 00000000 03:03 17753 /bin/cat0804c000-0804d000 rw-p 00004000 03:03 17753 /bin/cat0804d000-0806e000 rw-p 0804d000 00:00 0 [heap]b7d27000-b7d5a000 r--p 00000000 03:03 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPEb7d5a000-b7e32000 r--p 00000000 03:03 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATEb7e32000-b7e33000 rw-p b7e32000 00:00 0b7e33000-b7f45000 r-xp 00000000 03:03 8837 /lib/libc-2.3.6.sob7f45000-b7f46000 r--p 00112000 03:03 8837 /lib/libc-2.3.6.sob7f46000-b7f48000 rw-p 00113000 03:03 8837 /lib/libc-2.3.6.so

180 Referenz

Page 181: Suse 10.1 Linux Reference De

b7f48000-b7f4c000 rw-p b7f48000 00:00 0b7f52000-b7f53000 r--p 00000000 03:03 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC[...]b7f5b000-b7f61000 r--s 00000000 03:03 9109 \ /usr/lib/gconv/gconv-modules.cacheb7f61000-b7f62000 r--p 00000000 03:03 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATIONb7f62000-b7f76000 r-xp 00000000 03:03 8828 /lib/ld-2.3.6.sob7f76000-b7f78000 rw-p 00013000 03:03 8828 /lib/ld-2.3.6.sobfd61000-bfd76000 rw-p bfd61000 00:00 0 [stack]ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]

6.13.1 procinfo

Wichtige Informationen zum Dateisystem /procwerden mit dem Befehl procinfozusammengefasst:tester@linux:~> procinfoLinux 2.6.15-rc5-git3-2-default (geeko@buildhost) (gcc 4.1.0 20051129) #1 Wed Dec 14 13:10:38 UTC 2005 1CPU [linux.suse.de]

Memory: Total Used Free Shared BuffersMem: 515584 509472 6112 0 73024Swap: 658656 0 658656

Bootup: Mon Jan 9 12:59:08 2006 Load average: 0.10 0.04 0.05 1/86 5406

user : 0:02:07.98 0.8% page in : 442638 disk 1: 20125r 13476wnice : 0:02:20.91 0.9% page out: 134950system: 0:00:42.93 0.3% page act: 70577IOwait: 0:01:25.40 0.6% page dea: 11696hw irq: 0:00:08.94 0.1% page flt: 1423622sw irq: 0:00:01.29 0.0% swap in : 0idle : 4:06:30.54 97.3% swap out: 0uptime: 4:13:20.72 context : 3813145

irq 0: 3799268 timer irq 8: 2 rtcirq 1: 130 i8042 irq 9: 1 acpi, uhci_hcd:usb1,irq 2: 0 cascade [4] irq 10: 0 uhci_hcd:usb3irq 3: 8 irq 11: 75905 uhci_hcd:usb2, eth0irq 4: 8 irq 12: 101150 i8042irq 5: 564535 Intel 82801DB-ICH4 irq 14: 33733 ide0irq 6: 9 irq 15: 157045 ide1irq 7: 1 parport0 [3]

Dienstprogramme zur Systemüberwachung 181

Page 182: Suse 10.1 Linux Reference De

Verwenden Sie den Parameter -a, wenn Sie alle Informationen sehen möchten. DerParameter -nN aktualisiert die Informationen alle N Sekunden. Beenden Sie in diesemFall das Programm mit der Taste Q .

Standardmäßig werden die kumulativen Werte angezeigt. Mit dem Parameter-dwerdendie Einzelwerte generiert. procinfo -dn5 zeigt die Werte an, die sich in den letztenfünf Sekunden geändert haben:

6.14 PCI-Ressourcen: lspciDer Befehl lspci listet die PCI-Ressourcen auf:linux:~ # lspci00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \ DRAM Controller/Host-Hub Interface (rev 01)00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \ Host-to-AGP Bridge (rev 01)00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)00:1d.7 USB Controller: Intel Corporation 82801DB/DBM \ (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 81)00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) \ LPC Interface Bridge (rev 01)00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE \ Controller (rev 01)00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) \ SMBus Controller (rev 01)00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)01:00.0 VGA compatible controller: Matrox Graphics, Inc. G400/G450 (rev 85)02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) \ Ethernet Controller (rev 81)

Mit der Option -v werden ausführlichere Informationen angezeigt:linux:~ # lspci[...]02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM)\ Ethernet Controller (rev 81) Subsystem: Fujitsu Siemens Computer GmbH: Unknown device 1001 Flags: bus master, medium devsel, latency 66, IRQ 11 Memory at d1000000 (32-bit, non-prefetchable) [size=4K]

182 Referenz

Page 183: Suse 10.1 Linux Reference De

I/O ports at 3000 [size=64] Capabilities: [dc] Power Management version 2

Die Informationen zur Auflösung der Gerätenamen stammen aus der Datei /usr/share/pci.ids. PCI-IDs, die in dieser Datei fehlen, werden als „Unknown device“(Unbekanntes Gerät) markiert.

Der Parameter -vv generiert alle Informationen, die vom Programm abgefragt werdenkönnen. Die reinen numerischen Werte werden mit dem Parameter -n angezeigt.

6.15 Systemaufrufe eines aktivenProgramms: strace

Mit dem Dienstprogramm strace können Sie alle Systemaufrufe eines aktuell ausge-führten Prozesses verfolgen. Geben Sie den Befehl wie üblich ein und fügen Sie amZeilenanfang strace hinzu:tester@linux:~> strace lsexecve("/bin/ls", ["ls"], [/* 61 vars */]) = 0uname({sys="Linux", node="linux", ...}) = 0brk(0) = 0x805c000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY) = 3fstat64(3, {st_mode=S_IFREG|0644, st_size=89696, ...}) = 0mmap2(NULL, 89696, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ef2000close(3) = 0open("/lib/librt.so.1", O_RDONLY) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\36\0"..., 512) \ = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=36659, ...}) = 0[...]stat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0xb7ca7000write(1, "bin Desktop Documents music\tM"..., 55bin Desktop Documents \ \ music Music public_html tmp) = 55close(1) = 0munmap(0xb7ca7000, 4096) = 0exit_group(0) = ?

Um beispielsweise alle Versuche, eine bestimmte Datei zu öffnen, zu verfolgen, gebenSie Folgendes ein:

Dienstprogramme zur Systemüberwachung 183

Page 184: Suse 10.1 Linux Reference De

tester@linux:~> strace -e open ls .bashrcopen("/etc/ld.so.cache", O_RDONLY) = 3open("/lib/librt.so.1", O_RDONLY) = 3open("/lib/libacl.so.1", O_RDONLY) = 3open("/lib/libc.so.6", O_RDONLY) = 3open("/lib/libpthread.so.0", O_RDONLY) = 3open("/lib/libattr.so.1", O_RDONLY) = 3[...]

Um alle untergeordneten Prozesse zu verfolgen, verwenden Sie den Parameter -f. DasVerhalten und das Ausgabeformat von strace können weitgehend gesteuert werden.Weitere Informationen erhalten Sie durch die Eingabe von man strace.

6.16 Bibliotheksaufrufe eines aktivenProgramms: ltrace

Mit dem Befehl ltrace können Sie die Bibliotheksaufrufe eines Prozesses verfolgen.Dieser Befehl wird auf ähnliche Weise wie strace verwendet. Der Parameter -c gibtdie Anzahl und die Dauer der erfolgten Bibliotheksaufrufe aus:tester@linux:~> ltrace -c find ~% time seconds usecs/call calls function------ ----------- ----------- --------- -------------------- 34.37 6.758937 245 27554 __errno_location 33.53 6.593562 788 8358 __fprintf_chk 12.67 2.490392 144 17212 strlen 11.97 2.353302 239 9845 readdir64 2.37 0.466754 27 16716 __ctype_get_mb_cur_max 1.18 0.231189 27 8531 strcpy 1.17 0.230765 27 8358 memcpy[...] 0.00 0.000036 36 1 textdomain------ ----------- ----------- --------- --------------------100.00 19.662715 105717 total

6.17 Erforderliche Bibliothekangeben: ldd

Mit dem Befehl ldd können Sie ermitteln, welche Bibliotheken die als Argumentangegebene dynamische Programmdatei laden würde:

184 Referenz

Page 185: Suse 10.1 Linux Reference De

tester@linux:~> ldd /bin/ls linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib/librt.so.1 (0xb7f97000) libacl.so.1 => /lib/libacl.so.1 (0xb7f91000) libc.so.6 => /lib/libc.so.6 (0xb7e79000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7e67000) /lib/ld-linux.so.2 (0xb7fb6000) libattr.so.1 => /lib/libattr.so.1 (0xb7e63000)

Statische Binärdateien benötigen keine dynamischen Bibliotheken:tester@linux:~> ldd /bin/sash not a dynamic executabletester@linux:~> file /bin/sash/bin/sash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, statically linked, for GNU/Linux 2.6.4, stripped

6.18 Zusätzliche Informationen zuELF-Binärdateien

Der Inhalt von Binärdateien kann mit dem Dienstprogramm readelf gelesen werden.Dies funktioniert auch für ELF-Dateien, die für andere Hardware-Architekturen entwi-ckelt wurden:tester@linux:~> readelf --file-header /bin/lsELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x8049b60 Start of program headers: 52 (bytes into file) Start of section headers: 81112 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 9 Size of section headers: 40 (bytes) Number of section headers: 30 Section header string table index: 29

Dienstprogramme zur Systemüberwachung 185

Page 186: Suse 10.1 Linux Reference De

6.19 ProzessübergreifendeKommunikation: ipcs

Der Befehl ipcs generiert eine Liste der aktuell verwendeten IPC-Ressourcen:------ Shared Memory Segments --------key shmid owner perms bytes nattch status0x00000000 58261504 tester 600 393216 2 dest0x00000000 58294273 tester 600 196608 2 dest0x00000000 83886083 tester 666 43264 20x00000000 83951622 tester 666 192000 20x00000000 83984391 tester 666 282464 20x00000000 84738056 root 644 151552 2 dest

------ Semaphore Arrays --------key semid owner perms nsems0x4d038abf 0 tester 600 8

------ Message Queues --------key msqid owner perms used-bytes messages

6.20 Zeitmessung mit timeDer Zeitaufwand von Befehlen lässt sich mit dem Dienstprogramm time ermitteln.Dieses Dienstprogramm ist in zwei Versionen verfügbar: als Shell-Integration und alsProgramm (/usr/bin/time).tester@linux:~> time find . > /dev/null

real 0m4.051suser 0m0.042ssys 0m0.205s

186 Referenz

Page 187: Suse 10.1 Linux Reference De

Teil III. System

Page 188: Suse 10.1 Linux Reference De
Page 189: Suse 10.1 Linux Reference De

732-Bit- und 64-Bit-Anwendungen ineiner 64-Bit-SystemumgebungSUSE Linux ist für verschiedene 64-Bit-Plattformen verfügbar. Das bedeutet jedochnicht unbedingt, dass alle enthaltenen Anwendungen bereits auf 64-Bit-Plattformenportiert wurden. SUSE Linux unterstützt die Verwendung von 32-Bit-Anwendungenin einer 64-Bit-Systemumgebung. Dieses Kapitel bietet einen kurzen Überblick darüber,wie diese Unterstützung auf SUSE Linux-64-Bit-Plattformen implementiert ist. Es wirderläutert, wie 32-Bit-Anwendungen ausgeführt werden (Laufzeitunterstützung) undwie 32-Bit-Anwendungen kompiliert werden sollten, damit sie sowohl in 32-Bit- alsauch in 64-Bit-Systemanwendungen ausgeführt werden können. Außerdem finden SieInformationen zur Kernel-API und es wird erläutert, wie 32-Bit-Anwendungen untereinem 64-Bit-Kernel ausgeführt werden können.

SUSE Linux für die 64-Bit-Plattformen AMD64 und EM64T ist so konzipiert, dassbestehende 32-Bit-Anwendungen sofort in der 64-Bit-Umgebung ausgeführt werdenkönnen. Diese Unterstützung bedeutet, dass Sie weiterhin Ihre bevorzugten 32-Bit-Anwendungen verwenden können und nicht warten müssen, bis ein entsprechender 64-Bit-Port verfügbar ist.

7.1 LaufzeitunterstützungWICHTIG: Konflikte zwischen Anwendungsversionen

Wenn eine Anwendung sowohl für 32-Bit- als auch für 64-Bit-Umgebungenverfügbar ist, führt die parallele Installation beider Versionen zwangsläufig zuProblemen. Entscheiden Sie sich in diesen Fällen für eine der beiden Versionenund installieren und verwenden Sie nur diese.

32-Bit- und 64-Bit-Anwendungen in einer 64-Bit-Systemumgebung 189

Page 190: Suse 10.1 Linux Reference De

Für eine korrekte Ausführung benötigt jede Anwendung eine Reihe von Bibliotheken.Leider sind die Namen für die 32-Bit- und 64-Bit-Versionen dieser Bibliotheken iden-tisch. Sie müssen auf andere Weise voneinander unterschieden werden.

Um die Kompatibilität mit der 32-Bit-Version aufrechtzuerhalten, werden die Biblio-theken am selben Ort im System gespeichert wie in der 32-Bit-Umgebung. Die 32-Bit-Version von libc.so.6 befindet sich sowohl in der 32-Bit- als auch in der 64-Bit-Umgebung unter /lib/libc.so.6.

Alle 64-Bit-Bibliotheken und Objektdateien befinden sich in Verzeichnissen mit demNamen lib64. Die 64-Bit-Objektdateien, die sich normalerweise unter /lib, /usr/lib und /usr/X11R6/lib befinden, werden nun unter /lib64, /usr/lib64bzw./usr/X11R6/lib64 gespeichert. Unter/lib,/usr/lib und/usr/X11R6/lib ist also Platz für die 32-Bit-Bibliotheken, sodass der Dateiname für beide Versionenunverändert bleiben kann.

Unterverzeichnisse der Objektverzeichnisse, deren Dateninhalt nicht von der Wortgrößeabhängt, werden nicht verschoben. Beispielsweise befinden sich die X11-Schriftartennoch immer am gewohnen Ort unter /usr/X11R6/lib/X11/fonts. Das Schemaentspricht LSB (Linux Standards Base) und FHS (File System Hierarchy Standard).

7.2 Software-EntwicklungEine Doppelarchitektur-Entwicklungswerkzeugkette (Biarch Development Toolchain)ermöglicht die Erstellung von 32-Bit- und 64-Bit-Objekten. Standardmäßig werden 64-Bit-Objekte kompiliert. 32-Bit-Objekte können durch Verwendung spezieller Flagserstellt werden. Bei GCC lautet diese Flag -m32.

Alle Header-Dateien müssen in architekturunabhängiger Form geschrieben werden.Die installierten 32-Bit- und 64-Bit-Bibliotheken müssen eine API (Anwendungspro-grammschnittstelle) aufweisen, die zu den installierten Header-Dateien passt. Die nor-male SUSE-Umgebung wurde nach diesem Prinzip entworfen. Bei manuell aktualisiertenBibliotheken müssen Sie diese Probleme selbst lösen.

190 Referenz

Page 191: Suse 10.1 Linux Reference De

7.3 Software-Kompilierung aufDoppelarchitektur-Plattformen

Um bei einer Doppelarchitektur Binärdateien für die jeweils andere Architektur zuentwickeln, müssen die entsprechenden Bibliotheken für die zweite Architekturzusätzlich installiert werden. Diese Pakete heißen rpmname-32bit. Außerdembenötigen Sie die entsprechenden Header und Bibliotheken aus denrpmname-devel-Paketen und die Entwicklungsbibliotheken für die zweite Architekturaus rpmname-devel-32bit.

Die meisten Open Source-Programme verwenden eine autoconf-basierte Programm-konfiguration. Um mit autoconf ein Programm für die zweite Architektur zu konfi-gurieren, überschreiben Sie die normalen Compiler- und Linker-Einstellungen vonautoconf, indem Sie das Skript configuremit zusätzlichen Umgebungsvariablenausführen.

Das folgende Beispiel bezieht sich auf ein AMD64- bzw. EM64T-System mit x86 alszweiter Architektur:

1. Legen Sie autoconf für die Verwendung des 32-Bit-Compilers fest:CC="gcc -m32"

2. Weisen Sie den Linker an, 32-Bit-Objekte zu verarbeiten:LD="ld -m elf64_i386"

3. Legen Sie den Assembler für die Erstellung von 32-Bit-Objekten fest:AS="gcc -c -m32"

4. Legen Sie fest, dass die Bibliotheken für libtool usw. aus /usr/lib stam-men sollen:LDFLAGS="-L/usr/lib"

5. Legen Sie fest, dass die Bibliotheken im Unterverzeichnis lib gespeichertwerden sollen:--libdir=/usr/lib

32-Bit- und 64-Bit-Anwendungen in einer 64-Bit-Systemumgebung 191

Page 192: Suse 10.1 Linux Reference De

6. Legen Sie fest, dass die 32-Bit-X-Bibliotheken verwendet werden sollen:--x-libraries=/usr/X11R6/lib/

Nicht alle diese Variablen werden für jedes Programm benötigt. Passen Sie sie an dasentsprechende Programm an.CC="gcc -m64" \LDFLAGS="-L/usr/lib64;" \ .configure \ --prefix=/usr \ --libdir=/usr/lib64makemake install

7.4 Kernel-SpezifikationenDie 64-Bit-Kernes für AMD64 und EM64T bieten sowohl eine 64-Bit- als auch eine32-Bit-Kernel-ABI (binäre Anwendungsschnittstelle). Letztere ist mit der ABI für denentsprechenden 32-Bit-Kernel identisch. Das bedeutet, dass die 32-Bit-Anwendung mitdem 64-Bit-Kernel auf die gleiche Weise kommunizieren kann wie mit dem 32-Bit-Kernel.

Die 32-Bit-Emulation der Systemaufrufe für einen 64-Bit-Kernel unterstützt eine Reihevon APIs nicht, die von Systemprogrammen verwendet werden. Dies hängt von derPlattform ab. Aus diesem Grund müssen einige wenige Anwendungen, wie beispiels-weiselspci oder die LVM-Verwaltungsprogramme, als 64-Bit-Programme kompiliertwerden, damit sie ordnungsgemäß funktionieren.

Ein 64-Bit-Kernel kann nur 64-Bit-Kernel-Module laden, die speziell für diesen Kernelkompiliert wurden. 32-Bit-Kernel-Module können nicht verwendet werden.

TIPP

Für einige Anwendungen sind separate, Kernel-ladbare Module erforderlich.Wenn Sie vorhaben, eine solche 32-Bit-Anwendung in einer 64-Bit-Systemum-gebung zu verwenden, wenden Sie sich an den Anbieter dieser Anwendungund an SUSE, um sicherzustellen, dass die 64-Bit-Version des Kernel-ladbarenModuls und die kompilierte 32-Bit-Version der Kernel-API für dieses Modulverfügbar sind.

192 Referenz

Page 193: Suse 10.1 Linux Reference De

8Booten und Konfigurieren einesLinux-SystemsDas Booten eines Linux-Systems umfasst mehrere unterschiedliche Komponenten. Indiesem Kapitel werden die zu Grunde liegenden Prinzipien erläutert und die beteiligtenKomponenten vorgestellt. Außerdem werden in diesem Kapitel das Konzept der Run-level sowie die Systemkonfiguration von SUSE mit sysconfig vorgestellt.

8.1 Der Linux-BootvorgangDer Linux-Bootvorgang besteht aus mehreren Phasen, von denen jede einer anderenKomponente entspricht. In der folgenden Liste werden der Bootvorgang und die daranbeteiligten Komponenten kurz zusammengefasst.

1. BIOS Nach dem Einschalten des Computers initialisiert das BIOS den Bild-schirm und die Tastatur und testet den Arbeitsspeicher. Bis zu dieser Phase greiftder Computer nicht auf Massenspeichergeräte zu. Anschließend werden Infor-mationen zum aktuellen Datum, zur aktuellen Uhrzeit und zu den wichtigstenPeripheriegeräten aus den CMOS-Werten geladen. Wenn die erste Festplatteund deren Geometrie erkannt wurden, geht die Systemsteuerung vom BIOS anden Bootloader über.

2. Bootloader Der erste physische 512 Byte große Datensektor der erstenFestplatte wird in den Arbeitsspeicher geladen und der Bootloader, der sich amAnfang dieses Sektors befindet, übernimmt die Steuerung. Die vom Bootloaderausgegebenen Befehle bestimmen den verbleibenden Teil des Bootvorgangs.Aus diesem Grund werden die ersten 512 Byte auf der ersten Festplatte alsMaster Boot Record (MBR) bezeichnet. Der Bootloader übergibt die Steuerung

Booten und Konfigurieren eines Linux-Systems 193

Page 194: Suse 10.1 Linux Reference De

anschließend an das eigentliche Betriebssystem, in diesem Fall an den Linux-Kernel. Weitere Informationen zu GRUB, dem Linux-Bootloader, finden Sie inKapitel 9, Der Bootloader (S. 211).

3. Kernel und „initramfs“ Um die Systemsteuerung zu übergeben, lädt derBootloader sowohl den Kernel als auch ein initiales RAM-basiertes Dateisystem(das initramfs) in den Arbeitsspeicher. Der Inhalt des initramfs kann vom Kerneldirekt verwendet werden. Das initramfs enthält eine kleine Programmdateinamens „init“, die das Einhängen des eigentlichen Root-Dateisystems ausführt.In früheren Versionen von SUSE Linux wurden diese Tasks von „initrd“ bzw.„linuxrc“ durchgeführt. Weitere Informationen zu initramfs finden Sie inAbschnitt 8.1.1, „initramfs“ (S. 194).

4. init on initramfs Dieses Programm führt alle für das Einhängen des entspre-chenden Root-Dateisystems erforderlichen Aktionen aus, z. B. das Bereitstellender Kernel-Funktionalität für die erforderlichen Dateisystem- und Gerätetreiberder Massenspeicher-Controller mit udev. Nachdem das Root-Dateisystemgefunden wurde, wird es auf Fehler geprüft und eingehängt. Wenn dieser Vorgangerfolgreich abgeschlossen wurde, wird das initramfs bereinigt und das init-Pro-gramm wird für das Root-Dateisystem ausgeführt. Weitere Informationen zuminit-Programm finden Sie in Abschnitt 8.1.2, „init on initramfs“ (S. 195). WeitereInformationen zu udev finden Sie in Kapitel 12, Gerätemanagement über dyna-mischen Kernel mithilfe von udev (S. 273).

5. init Das init-Programm führt den eigentlichen Bootvorgang des Systems übermehrere unterschiedliche Ebenen aus und stellt dabei die unterschiedlichenFunktionalitäten zur Verfügung. Eine Beschreibung des init-Programms findenSie in Abschnitt 8.2, „Der init-Vorgang“ (S. 197).

8.1.1 initramfsinitramfs ist ein kleines cpio-Archiv, das der Kernel auf einen RAM-Datenträger ladenkann. Es stellt eine minimale Linux-Umgebung bereit, die das Ausführen von Program-men ermöglicht, bevor das eigentliche Root-Dateisystem eingehängt wird. Dieseminimale Linux-Umgebung wird von BIOS-Routinen in den Arbeitsspeicher geladenund hat, abgesehen von ausreichend Arbeitsspeicher, keine spezifischen Hardware-Anforderungen. initramfs muss immer eine Programmdatei namens „init“ zur Verfügungstellen, die das eigentliche init-Programm für das Root-Dateisystem ausführt, damitder Bootvorgang fortgesetzt werden kann.

194 Referenz

Page 195: Suse 10.1 Linux Reference De

Bevor das eigentliche Root-Dateisystem eingehängt und das Betriebssystem gestartetwerden kann, ist es für den Kernel erforderlich, dass die entsprechenden Treiber aufdas Gerät zugreifen, auf dem sich das Root-Dateisystem befindet. Diese Treiber könnenspezielle Treiber für bestimmte Arten von Festplatten oder sogar Netzwerktreiber fürden Zugriff auf ein Netzwerk-Dateisystem umfassen. Die erforderlichen Module fürdas Root-Dateisystem können mithilfe von init oder initramfs geladen werden. Nachdemdie Module geladen wurden, stellt udev das initramfs mit den erforderlichen Gerätenbereit. initramfs steht während des gesamten Bootvorgangs zur Verfügung. Dadurchkönnen alle während des Bootvorgangs generierten Gerätereignisse verarbeitet werden.

Wenn in einem installierten System Hardwarekomponenten (Festplatten) ausgetauschtwerden müssen und diese Hardware zur Boot-Zeit andere Treiber im Kernel erfordert,müssen Sie das initramfs aktualisieren. Dies erfolgt auf dieselbe Weise wie die Aktua-lisierung des Vorgängers von initramfs, initrd, nämlich durch den Aufruf vonmkinitrd. Durch das Aufrufen von mkinitrd ohne Argumente wird ein initramfserstellt. Durch das Aufrufen von mkinitrd -Rwird ein initrd erstellt. In SUSE Linuxwerden die zu ladenden Module durch die Variable INITRD_MODULES in /etc/sysconfig/kernel angegeben. Diese Variable wird nach der Installation automa-tisch auf den richtigen Wert gesetzt. Die Module werden genau in der Reihenfolgegeladen, in der sie in INITRD_MODULES erscheinen. Dies ist besonders wichtig, wennmehrere SCSI-Treiber verwendet werden, da andernfalls die Namen der Festplattengeändert würden. Genau genommen wäre es ausreichend, nur die für den Zugriff aufdas Root-Dateisystem erforderlichen Treiber zu laden. Es werden jedoch alle für dieInstallation erforderlichen SCSI-Treiber mit initramfs oder initrd geladen, da das Ladenzu einem späteren Zeitpunkt problematisch sein könnte.

WICHTIG: Aktualisieren von initramfs oder initrd

Der Bootloader lädt initramfs oder initrd auf dieselbe Weise wie den Kernel.Es ist nicht erforderlich, GRUB nach der Aktualisierung von initramfs oder initrdneu zu installieren, da GRUB beim Booten das Verzeichnis nach der richtigenDatei durchsucht.

8.1.2 init on initramfsDer Hauptzweck von init unter initramfs ist es, das Einhängen des eigentlichen Root-Dateisystems sowie den Zugriff darauf vorzubereiten. Je nach aktueller Systemkonfi-guration ist init für die folgenden Tasks verantwortlich.

Booten und Konfigurieren eines Linux-Systems 195

Page 196: Suse 10.1 Linux Reference De

Laden der Kernel-ModuleJe nach Hardwarekonfiguration sind für den Zugriff auf die Hardwarekomponentendes Computers (vor allem auf die Festplatte) spezielle Treiber erforderlich. Für denZugriff auf das eigentliche Root-Dateisystem muss der Kernel die entsprechendenDateisystemtreiber laden.

Bereitstellen spezieller Block-DateienFür jedes geladene Modul generiert der Kernel Geräteergebnisse. udev verarbeitetdiese Ergebnisse und generiert die erforderlichen speziellen Dateien für das Gerätauf einem RAM-Dateisystem in /dev. Ohne diese speziellen Dateien wäre einZugriff auf das Dateisystem nicht möglich.

Verwalten von RAID- und LVM-SetupsWenn Ihr System so konfiguriert ist, dass das Root-Dateisystem sich unter RAIDoder LVM befindet, richtet init LVM oder RAID so ein, dass der Zugriff auf dasRoot-Dateisystem zu einem späteren Zeitpunkt erfolgt. Informationen zu RAIDfinden Sie in Abschnitt 2.2, „Soft-RAID-Konfiguration“ (S. 65). Informationenzu LVM finden Sie in Abschnitt 2.1, „LVM-Konfiguration“ (S. 57).

Verwalten von NetzwerkkonfigurationenWenn Ihr System für die Verwendung eines Netzwerk-eingehängten Root-Datei-systems (über NFS eingehängt) konfiguriert ist, muss init sicherstellen, dass dieentsprechenden Netzwerktreiber geladen und für den Zugriff auf das Root-Datei-system eingerichtet werden.

Wenn init im Rahmen des Installationsvorgangs während des anfänglichen Bootvorgangsaufgerufen wird, unterscheiden sich seine Tasks von den zuvor beschriebenen:

Suchen des InstallationsmediumsWenn Sie den Installationsvorgang starten, lädt Ihr Computer vom Installationsme-dium einen Installations-Kernel und ein spezielles initrd mit dem YaST-Installati-onsprogramm. Das YaST-Installationsprogramm, das in einem RAM-Dateisystemausgeführt wird, benötigt Daten über den aktuellen Speicherort des Installationsme-diums, um auf dieses zugreifen und das Betriebssystem installieren zu können.

Initiieren der Hardware-Erkennung und Laden der entsprechenden Kernel-ModuleWie unter Abschnitt 8.1.1, „initramfs“ (S. 194) beschrieben, startet der Bootvorgangmit einem Mindestsatz an Treibern, die für die meisten Hardwarekonfigurationenverwendet werden können. init startet einen anfänglichen Hardware-Scan-Vorgang,bei dem die für die Hardwarekonfiguration geeigneten Treiber ermittelt werden.

196 Referenz

Page 197: Suse 10.1 Linux Reference De

Diese Werte werden später in INITRD_MODULES in /etc/sysconfig/kernel geschrieben, um allen weiteren Bootvorgängen die Verwedung einesbenutzerdefinierten initrd zu ermöglichen, bzw. in eine Datei namens /etc/sysconfig/hardware/hwconfig-*, wenn das Gerät während des Bootvor-gangs nicht benötigt wird. Während des Installationsvorgangs lädt init die entspre-chenden Modulsätze.

Laden des Installations- oder RettungssystemsSobald die Hardware erfolgreich erkannt und die entsprechenden Treiber geladenwurden und udev die speziellen Gerätedateien erstellt hat, startet init das Installati-onssystem, das das eigentliche YaST-Installationsprogramm bzw. das Rettungssys-tem enthält.

Starten von YaSTinit startet schließlich YaST, das wiederum die Paketinstallation und die System-konfiguration startet.

8.2 Der init-VorgangDas Programm init ist der Prozess mit der Prozess-ID 1. Es ist für die ordnungsgemäßeInitialisierung des Systems verantwortlich. Hierbei nimmt init eine besondere Rolleein. Es wird direkt vom Kernel gestartet und widersteht dem Signal 9, das in der RegelProzesse beendet. Alle anderen Programme werden entweder direkt von init oder voneinem seiner untergeordneten Prozesse gestartet.

init wird zentral in der Datei /etc/inittab konfiguriert, in der auch die Runleveldefiniert werden (siehe Abschnitt 8.2.1, „Runlevel“ (S. 198)). Diese Datei legt auch fest,welche Dienste und Daemons in den einzelnen Levels verfügbar sind. Je nach denEinträgen in /etc/inittab werden von init mehrere Skripts ausgeführt. DieseSkripts, die der Deutlichkeit halber als init-Skripts bezeichnet werden, befinden sichalle im Verzeichnis /etc/init.d (siehe Abschnitt 8.2.2, „Init-Skripts“ (S. 200)).

Der gesamte Vorgang des Startens und Herunterfahrens des Systems wird von initverwaltet. Von diesem Gesichtspunkt aus kann der Kernel als Hintergrundprozessbetrachtet werden, dessen Aufgabe es ist, alle anderen Prozesse zu verwalten und dieCPU-Zeit sowie den Hardwarezugriff entsprechend den Anforderungen anderer Pro-gramme anzupassen.

Booten und Konfigurieren eines Linux-Systems 197

Page 198: Suse 10.1 Linux Reference De

8.2.1 RunlevelUnter Linux definieren Runlevel, wie das System gestartet wird und welche Diensteim laufenden System verfügbar sind. Nach dem Booten startet das System wie in /etc/inittab in der Zeile initdefault definiert. Dies ist in der Regel die Einstellung3 oder 5. Siehe Tabelle 8.1, „Verfügbare Runlevel“ (S. 198). Alternativ kann der Run-level auch zur Boot-Zeit (beispielsweise an der Eingabeaufforderung) angegeben werden.Alle Parameter, die nicht direkt vom Kernel ausgewertet werden können, werden aninit übergeben.

Tabelle 8.1 Verfügbare Runlevel

BeschreibungRunlevel

Systemstopp0

Einzelbenutzer-Modus; über die Boot-Eingabeaufforderung, nurmit der amerikanischen Tastaturbelegung verfügbar

S

Einzelbenutzer-Modus1

Lokaler Mehrbenutzer-Modus mit entferntem Netzwerk (NFSusw.)

2

Mehrbenutzer-Vollmodus mit Netzwerk3

Nicht verwendet4

Mehrbenutzer-Vollmodus mit Netzwerk und X-Display-Manager- KDM, GDM oder XDM

5

Systemneustart6

198 Referenz

Page 199: Suse 10.1 Linux Reference De

WICHTIG: Runlevel 2 mit einer über NFS eingehängten Partition ist zuvermeiden

Sie sollten Runlevel 2 nicht verwenden, wenn Ihr System eine Partition, wie/usr, über NFS einhängt. Das System zeigt möglicherweise unerwartetes Ver-halten, wenn Programmdateien oder Bibliotheken fehlen, da der NFS-Dienstin Runlevel 2 nicht zur Verfügung steht (lokaler Mehrbenutzer-Modus ohneentferntes Netzwerk).

Um die Runlevel während des laufenden Systembetriebs zu ändern, geben Sietelinitund die entsprechende Zahl als Argument ein. Dies darf nur von Systemadministratorenausgeführt werden. In der folgenden Liste sind die wichtigsten Befehle im Runlevel-Bereich aufgeführt.

telinit 1 oder shutdown nowDas System wechselt in den Einzelbenutzer-Modus. Dieser Modus wird für dieSystemwartung und administrative Aufgaben verwendet.

telinit 3Alle wichtigen Programme und Dienste (einschließlich Netzwerkprogramme und-dienste) werden gestartet und reguläre Benutzer können sich anmelden und mitdem System ohne grafische Umgebung arbeiten.

telinit 5Die grafische Umgebung wird aktiviert. Normalerweise wird ein Display-Manager,wie XDM, GDM oder KDM, gestartet. Wenn Autologin aktiviert ist, wird derlokale Benutzer beim vorausgewählten Fenster-Manager (GNOME, KDE odereinem anderem Fenster-Manager) angemeldet.

telinit 0 oder shutdown -h nowDas System wird gestoppt.

telinit 6 oder shutdown -r nowDas System wird gestoppt und anschließend neu gestartet.

Runlevel 5 ist der standardmäßige Runlevel bei allen SUSE Linux-Standardinstallatio-nen. Die Benutzer werden aufgefordert, sich mit einer grafischen Oberfläche anzumelden,oder der Standardbenutzer wird automatisch angemeldet. Wenn 3 der standardmäßigeRunlevel ist, muss das X Window System wie unter Kapitel 14,Das X Window-System(S. 293) beschrieben konfiguriert werden, bevor der Runlevel auf 5 geändert werden

Booten und Konfigurieren eines Linux-Systems 199

Page 200: Suse 10.1 Linux Reference De

kann. Prüfen Sie anschließend, ob das System wie gewünscht funktioniert, indem Sietelinit 5 eingeben. Wenn alles ordnungsgemäß funktioniert, können Sie mithilfevon YaST den standardmäßigen Runlevel auf 5 setzen.

Beim Ändern der Runlevel geschehen in der Regel zwei Dinge. Zunächst werden Stopp-Skripts des aktuellen Runlevel gestartet, die einige der für den aktuellen Runlevelwichtigen Programme schließen. Anschließend werden die Start-Skripts des neuenRunlevel gestartet. Dabei werden in den meisten Fällen mehrere Programme gestartet.Beim Wechsel von Runlevel 3 zu 5 wird beispielsweise Folgendes ausgeführt:

1. Der Administrator (root) fordert init durch die Eingabe des Befehls telinit5 auf, zu einem anderen Runlevel zu wechseln.

2. init prüft seine Konfigurationsdatei (/etc/inittab) und stellt fest, dass es/etc/init.d/rc mit dem neuen Runlevel als Parameter starten soll.

3. Jetzt ruft rc alle Stopp-Skripts des aktuellen Runlevel auf, jedoch nur die, fürdie es im neuen Runlevel keine Start-Skripts gibt. In diesem Beispiel sind diesalle Skripts, die sich in /etc/init.d/rc3.d (alter Runlevel war 3) befindenund mit einem K beginnen. Die Zahl nach K gibt die Reihenfolge für den Startan, da einige Abhängigkeiten zu berücksichtigen sind.

4. Die Start-Skripts des neuen Runlevel werden zuletzt gestartet. In diesem Beispielbefinden sie sich im Verzeichnis /etc/init.d/rc5.d und beginnen miteinem S. Hier wird dasselbe Verfahren hinsichtlich der Startreihenfolge ange-wendet.

Bei dem Wechsel in denselben Runlevel wie der aktuelle Runlevel prüft init nur /etc/inittab auf Änderungen und startet die entsprechenden Schritte, z. B. für das Startenvon getty auf einer anderen Schnittstelle. Dieselbe Funktion kann durch den Befehltelinit q erreicht werden.

8.2.2 Init-SkriptsIm Verzeichnis /etc/init.d gibt es zwei Skripttypen:

200 Referenz

Page 201: Suse 10.1 Linux Reference De

Skripts, die direkt von init ausgeführt werdenDies ist nur während des Bootvorgangs der Fall oder wenn das sofortige Herunter-fahren des Systems initiiert wird (Stromausfall oder ein Benutzer drückt Strg +Alt + Entf ). Die Ausführung dieser Skripts ist in /etc/inittab definiert.

Skripts, die indirekt von init ausgeführt werdenDiese werden beim Wechsel des Runlevel ausgeführt und rufen immer das Master-Skript /etc/init.d/rc auf, das die richtige Reihenfolge der relevanten Skriptsgewährleistet.

Sämtliche Skripts befinden sich im Verzeichnis /etc/init.d. Skripts, die währenddes Bootens ausgeführt werden, werden über symbolische Links aus /etc/init.d/boot.d aufgerufen. Skripts zum Ändern des Runlevel werden jedoch über symbolischeLinks aus einem der Unterverzeichnisse (/etc/init.d/rc0.d bis /etc/init.d/rc6.d) aufgerufen. Dies dient lediglich der Übersichtlichkeit und der Vermeidungdoppelter Skripts, wenn diese in unterschiedlichen Runleveln verwendet werden. Dajedes Skript sowohl als Start- als auch als Stopp-Skript ausgeführt werden kann, müssendiese Skripts die Parameterstart undstop verstehen. Die Skripts erkennen außerdemdie Optionen restart, reload, force-reload und status. Diese unterschied-lichen Optionen werden in Tabelle 8.2, „Mögliche init-Skript-Optionen“ (S. 201)erläutert. Die von init direkt ausgeführten Skripts verfügen nicht über diese Links. Siewerden unabhängig vom Runlevel bei Bedarf ausgeführt.

Tabelle 8.2 Mögliche init-Skript-Optionen

BeschreibungOption

Startet den Dienst.start

Stoppt den Dienst.stop

Wenn der Dienst läuft, wird er gestoppt und anschließendneu gestartet. Wenn der Dienst nicht läuft, wird er gestartet.

restart

Die Konfiguration wird ohne Stoppen und Neustarten desDienstes neu geladen.

reload

Booten und Konfigurieren eines Linux-Systems 201

Page 202: Suse 10.1 Linux Reference De

BeschreibungOption

Die Konfiguration wird neu geladen, sofern der Dienst diesunterstützt. Andernfalls erfolgt dieselbe Aktion wie bei demBefehl restart.

force-reload

Zeigt den aktuellen Status des Dienstes an.status

Mithilfe von Links in den einzelnen Runlevel-spezifischen Unterverzeichnissen könnenSkripts mit unterschiedlichen Runleveln verknüpft werden. Bei der Installation oderDeinstallation von Paketen werden diese Links mithilfe des Programms „insserv“ hin-zugefügt oder entfernt (oder mithilfe von /usr/lib/lsb/install_initd, einSkript, das dieses Programm aufruft). Weitere Informationen hierzu finden Sie auf derManualpage „insserv(8)“.

Im Folgenden finden Sie eine kurze Einführung in die zuerst bzw. zuletzt gestartetenBoot- und Stopp-Skripts sowie eine Erläuterung des Steuerskripts.

bootwird ausgeführt, wenn das System direkt mit init gestartet wird. Es wird unabhängigvom gewählten Runlevel und nur einmalig ausgeführt. Dabei werden die Dateisys-temeproc und pts eingehängt und blogd (Boot Logging Daemon) wird aktiviert.Wenn das System nach einer Aktualisierung oder einer Installation das erste Malgebootet wird, wird die anfängliche Systemkonfiguration gestartet.

Der blogd-Daemon ist ein Dienst, der von boot und rc vor allen anderen Dienstengestartet wird. Er wird gestoppt, wenn alle Aktionen, die durch die oben beschrie-benen Skripts ausgelöst wurden (z. B. das Ausführen einer bestimmten Anzahl vonSubskripts), abgeschlossen sind. blogd schreibt alle auf dem Bildschirm ausgege-benen Informationen in die Protokolldatei/var/log/boot.msg, aber nur dann,wenn /var mit Lese- und Schreibrechten eingehängt wurde. Andernfalls puffertblogd alle Bildschirmdaten, bis /var zur Verfügung steht. Weitere Informationenzu blogd erhalten Sie auf der Manualpage „blogd(8)“.

Das Skript boot ist zudem für das Starten aller Skripts in /etc/init.d/boot.d verantwortlich, deren Name mit S beginnt. Dort werden die Dateisystemeüberprüft und bei Bedarf Loop-Devices konfiguriert. Außerdem wird die Systemzeitfestgelegt. Wenn bei der automatischen Prüfung und Reparatur des Dateisystems

202 Referenz

Page 203: Suse 10.1 Linux Reference De

ein Fehler auftritt, kann der Systemadministrator nach Eingabe des Root-Passwortseingreifen. Zuletzt wird das Skript boot.local ausgeführt.

boot.localHier können Sie zusätzliche Befehle eingeben, die beim Booten ausgeführt werdensollen, bevor Sie zu einem Runlevel wechseln. Dieses Skript ist mit der AUTOEXEC.BAT in DOS-Systemen vergleichbar.

boot.setupDieses Skript wird bei einem Wechsel vom Einzelbenutzer-Modus in einen anderenRunlevel ausgeführt. Es ist verantwortlich für eine Reihe grundlegender Einstellun-gen, z. B. die Tastaturbelegung und die Initialisierung der virtuellen Konsolen.

haltDieses Skript wird nur beim Wechsel zu Runlevel 0 oder 6 ausgeführt. Es wirdentweder als halt oder als reboot ausgeführt. Ob das System heruntergefahrenoder neu gebootet wird, hängt davon ab, wie halt aufgerufen wird.

rcDieses Skript ruft die entsprechenden Stopp-Skripts des aktuellen Runlevel unddie Start-Skripts des neu gewählten Runlevel auf.

Sie können Ihre eigenen Skripts erstellen und diese problemlos in das oben beschriebeneSchema integrieren. Anweisungen zum Formatieren, Benennen und Organisierenbenutzerdefinierter Skripts finden Sie in den Spezifikationen von LSB und auf denManualpages von init, init.d und insserv. Weitere Informationen finden Siezudem auf den Manualpages zu startproc und killproc.

WARNUNG: Fehlerhafte init-Skripts können das System stoppen

Bei fehlerhaften init-Skripts kann es dazu kommen, dass der Computer hängt.Diese Skripts sollten mit großer Vorsicht bearbeitet werden und, wenn möglich,gründlich in der Mehrbenutzer-Umgebung getestet werden. Einige hilfreicheInformationen zu init-Skripts finden Sie in Abschnitt 8.2.1, „Runlevel“ (S. 198).

Sie erstellen ein benutzerdefiniertes init-Skript für ein bestimmtes Programm oder einenDienst, indem Sie die Datei /etc/init.d/skeleton als Schablone verwenden.Speichern Sie eine Kopie dieser Datei unter dem neuen Namen und bearbeiten Sie dierelevanten Programm- und Dateinamen, Pfade und ggf. weitere Details. Sie können

Booten und Konfigurieren eines Linux-Systems 203

Page 204: Suse 10.1 Linux Reference De

das Skript auch mit eigenen Ergänzungen erweitern, sodass die richtigen Aktionen vominit-Prozess ausgelöst werden.

Der Block INIT INFO oben ist ein erforderlicher Teil des Skripts und muss bearbeitetwerden. Siehe Beispiel 8.1, „Ein minimaler INIT INFO-Block“ (S. 204).

Beispiel 8.1 Ein minimaler INIT INFO-Block### BEGIN INIT INFO# Provides: FOO# Required-Start: $syslog $remote_fs# Required-Stop: $syslog $remote_fs# Default-Start: 3 5# Default-Stop: 0 1 2 6# Description: Start FOO to allow XY and provide YZ### END INIT INFO

Geben Sie in der ersten Zeile des INFO-Blocks nach Provides: den Namen desProgramms oder des Dienstes an, das bzw. der mit diesem Skript gesteuert werden soll.Geben Sie in den Zeilen Required-Start: und Required-Stop: alle Dienstean, die gestartet oder gestoppt werden müssen, bevor der Dienst selbst gestartet odergestoppt wird. Diese Informationen werden später zum Generieren der Nummerierungder Skriptnamen verwendet, die in den Runlevel-Verzeichnissen enthalten sind. GebenSie nach Default-Start: und Default-Stop: die Runlevel an, in denen derDienst gestartet oder gestoppt werden soll. Geben Sie für Description: schließlicheine kurze Beschreibung des betreffenden Dienstes ein.

Um in den Runlevel-Verzeichnissen (/etc/init.d/rc?.d/) die Links auf dieentsprechenden Skripts in /etc/init.d/ zu erstellen, geben Sie den Befehlinsserv neuer skriptname ein. Das Programm „insserv“ wertet den INITINFO-Header aus, um die erforderlichen Links für die Start- und Stopp-Skripts in denRunlevel-Verzeichnissen (/etc/init.d/rc?.d/) zu erstellen. Das Programmsorgt zudem für die richtige Start- und Stopp-Reihenfolge für die einzelnen Runlevel,indem es die erforderlichen Nummern in die Namen dieser Links aufnimmt. Wenn Siezum Erstellen der Links ein grafisches Werkzeug bevorzugen, verwenden Sie den vonYaST zur Verfügung gestellten Runlevel-Editor wie in Abschnitt 8.2.3, „Konfigurierenvon Systemdiensten (Runlevel) mit YaST“ (S. 205) beschrieben.

Wenn ein in /etc/init.d/ bereits vorhandenes Skript in das vorhandene Runlevel-Schema integriert werden soll, erstellen Sie die Links in den Runlevel-Verzeichnissendirekt mit insserv oder indem Sie den entsprechenden Dienst im Runlevel-Editor vonYaST aktivieren. Ihre Änderungen werden beim nächsten Neustart wirksam und derneue Dienst wird automatisch gestartet.

204 Referenz

Page 205: Suse 10.1 Linux Reference De

Diese Links dürfen nicht manuell festgelegt werden. Wenn der INFO-Block Fehlerenthält, treten Probleme auf, wenn insserv zu einem späteren Zeitpunkt für einenanderen Dienst ausgeführt wird. Der manuell hinzugefügte Dienst wird bei der nächstenAusführung von insserv entfernt.

8.2.3 Konfigurieren von Systemdiensten(Runlevel) mit YaST

Nach dem Starten dieses YaST-Moduls mit YaST→ System→ Systemdienste (Runlevel)werden ein Überblick über alle verfügbaren Dienste sowie der aktuelle Status der ein-zelnen Dienste (deaktiviert oder aktiviert) angezeigt. Legen Sie fest, ob das Modul imeinfachen Modus oder im Expertenmodus ausgeführt werden soll. Der vorgegebeneeinfache Modus sollte für die meisten Zwecke ausreichend sein. In der linken Spaltewird der Name des Dienstes, in der mittleren Spalte sein aktueller Status und in derrechten Spalte eine kurze Beschreibung angezeigt. Der untere Teil des Fensters enthälteine ausführlichere Beschreibung des ausgewählten Dienstes. Um einen Dienst zuaktivieren, wählen Sie ihn in der Tabelle aus und klicken Sie anschließend aufAktivieren.Führen Sie die gleichen Schritte aus, um einen Dienst zu deaktivieren.

Abbildung 8.1 Systemdienste (Runlevel)

Booten und Konfigurieren eines Linux-Systems 205

Page 206: Suse 10.1 Linux Reference De

Die detaillierte Steuerung der Runlevel, in denen ein Dienst gestartet oder gestopptbzw. die Änderung des vorgegebenen Runlevel erfolgt im Expertenmodus. Der aktuellvorgegebene Runlevel oder „initdefault“ (der Runlevel, in den das System standardmäßigbootet) wird oben angezeigt. Der standardmäßige Runlevel eines SUSE Linux-Systemsist in der Regel Runlevel 5 (Mehrbenutzer-Vollmodus mit Netzwerk und X). Einegeeignete Alternative kann Runlevel 3 sein (Mehrbenutzer-Vollmodus mit Netzwerk).

In diesem YaST-Dialogfeld können Sie einen Runlevel (wie unter Tabelle 8.1, „Verfüg-bare Runlevel“ (S. 198) aufgeführt) als neuen Standard wählen. Zudem können Siemithilfe der Tabelle in diesem Fenster einzelne Dienste und Daemons aktivieren oderdeaktivieren. In dieser Tabelle sind die verfügbaren Dienste und Daemons aufgelistetund es wird angezeigt, ob sie aktuell auf dem System aktiviert sind und wenn ja, fürwelche Runlevel. Nachdem Sie mit der Maus eine der Zeilen ausgewählt haben, klickenSie auf die Kontrollkästchen, die die Runlevel (B, 0, 1, 2, 3, 5, 6 und S) darstellen, umdie Runlevel festzulegen, in denen der ausgewählte Dienst oder Daemon ausgeführtwerden sollte. Runlevel 4 ist anfänglich nicht definiert, um das Erstellen eines benut-zerdefinierten Runlevel zu ermöglichen. Unterhalb der Tabelle wird eine kurzeBeschreibung des aktuell ausgewählten Dienstes oder Daemons angezeigt.

Legen Sie mit den Optionen „Start“, „Anhalten“ oder „Aktualisieren“ fest, ob einDienst aktiviert werden soll. Status aktualisieren prüft den aktuellen Status. Mit„Anwenden“ oder „Zurücksetzen“ können Sie wählen, ob die Änderungen für dasSystem angewendet werden sollen, oder ob die ursprünglichen Einstellungen wieder-hergestellt werden sollen, die vor dem Starten des Runlevel-Editors wirksam waren.Mit Beenden speichern Sie die geänderten Einstellungen.

WARNUNG: Fehlerhafte Runlevel-Einstellungen können das Systembeschädigen

Fehlerhafte Runlevel-Einstellungen können ein System unbrauchbar machen.Stellen Sie vor dem Anwenden der Änderungen sicher, dass Sie deren Auswir-kungen kennen.

206 Referenz

Page 207: Suse 10.1 Linux Reference De

8.3 Systemkonfiguration über/etc/sysconfig

Die Hauptkonfiguration von SUSE Linux wird über die Konfigurationsdateien in/etc/sysconfig gesteuert. Die einzelnen Dateien in /etc/sysconfigwerden nur vonden Skripts gelesen, für die sie relevant sind. Dadurch wird gewährleistet, dass Netz-werkeinstellungen beispielsweise nur von netzwerkbezogenen Skripts analysiert werden.Viele andere Systemkonfigurationsdateien werden gemäß den Einstellungen in /etc/sysconfig generiert. Diese Task wird von SuSEconfig ausgeführt. Wenn Sie bei-spielsweise die Netzwerkkonfiguration ändern, nimmt SuSEconfig ggf. auch Änderungenan der Datei /etc/host.conf vor, da sie eine der für die Netzwerkonfigurationrelevanten Dateien ist. Mithilfe dieses Konzepts können Sie allgemeine Änderungenan der Konfiguration vornehmen, ohne das System neu booten zu müssen.

Sie haben zwei Möglichkeiten, die Systemkonfiguration zu bearbeiten. Entweder ver-wenden Sie den YaST-Editor „sysconfig“ oder Sie bearbeiten die Konfigurationsdateienmanuell.

8.3.1 Ändern der Systemkonfigurationmithilfe des YaST-Editors „sysconfig“

Der YaST-Editor „sysconfig“ bietet ein benutzerfreundliches Frontend für die System-konfiguration. Ohne den eigentlichen Speicherort der zu ändernden Konfigurationsva-riablen zu kennen, können Sie mithilfe der integrierten Suchfunktion dieses Modulsden Wert der Konfigurationsvariable wie erforderlich ändern. YaST wendet dieseÄnderungen an, aktualisiert die Konfigurationen, die von den Werten in sysconfigabhängig sind, und startet die Dienste neu.

WARNUNG: Das Ändern von /etc/sysconfig/*-Dateien kann die Installationbeschädigen

Sie sollten die Dateien /etc/sysconfig-Dateien nur bearbeiten, wenn Sieüber ausreichende Sachkenntnisse verfügen. Das unsachgemäße Bearbeitendieser Dateien kann zu schwerwiegenden Fehlern des Systems führen. DieDateien in /etc/sysconfig enthalten einen kurzen Kommentar zu deneinzelnen Variablen, der erklärt, welche Auswirkungen diese tatsächlich haben.

Booten und Konfigurieren eines Linux-Systems 207

Page 208: Suse 10.1 Linux Reference De

Abbildung 8.2 Systemkonfiguration mithilfe des sysconfig-Editors

Das YaST-Dialogfeld „sysconfig“ besteht aus drei Teilen. Auf der linken Seite desDialogfelds wird eine Baumstruktur aller konfigurierbaren Variablen angezeigt. WennSie eine Variable auswählen, werden auf der rechten Seite sowohl die aktuelle Auswahlals auch die aktuelle Einstellung dieser Variable angezeigt. Unten werden in einemdritten Fenster eine kurze Beschreibung des Zwecks der Variable, mögliche Werte, derStandardwert und die Konfigurationsdatei angezeigt, aus der diese Variable stammt.In diesem Dialogfeld werden zudem Informationen darüber zur Verfügung gestellt,welche Konfigurationsskripts nach dem Ändern der Variable ausgeführt und welcheneuen Dienste als Folge dieser Änderung gestartet werden. YaST fordert Sie zurBestätigung der Änderungen auf und zeigt an, welche Skripts ausgeführt werden, wennSie Beenden wählen. Außerdem können Sie die Dienste und Skripts auswählen, diejetzt übersprungen und zu einem späteren Zeitpunkt gestartet werden sollen. YaSTwendet alle Änderungen automatisch an und startet alle von den Änderungen betroffenenDienste neu, damit die Änderungen wirksam werden.

8.3.2 Manuelles Ändern derSystemkonfiguration

Gehen Sie wie folgt vor, um die Systemkonfiguration manuell zu ändern:

208 Referenz

Page 209: Suse 10.1 Linux Reference De

1 Melden Sie sich als root an.

2 Wechseln Sie mit init 1 in den Einzelbenutzer-Modus (Runlevel 1).

3 Nehmen Sie die erforderlichen Änderungen an den Konfigurationsdateien ineinem Editor Ihrer Wahl vor.

Wenn Sie die Konfigurationsdateien in /etc/sysconfig nicht mit YaSTändern, müssen Sie sicherstellen, dass leere Variablenwerte durch zwei Anfüh-rungszeichen (KEYTABLE="") gekennzeichnet sind und Werte, die Leerzeichenenthalten, in Anführungszeichen gesetzt werden. Werte, die nur aus einem Wortbestehen, müssen nicht in Anführungszeichen gesetzt werden.

4 Führen SieSuSEconfig aus, um sicherzustellen, dass die Änderungen wirksamwerden.

5 Mit einem Befehl wie init default_runlevel stellen Sie den vorherigenRunlevel des Systems wieder her. Ersetzen Sie default_runlevel durchden vorgegebenen Runlevel des Systems. Wählen Sie 5, wenn Sie in den Mehr-benutzer-Vollmodus mit Netzwerk und X zurückkehren möchten, oder wählenSie 3, wenn Sie lieber im Mehrbenutzer-Vollmodus mit Netzwerk arbeitenmöchten.

Dieses Verfahren ist hauptsächlich beim Ändern von systemweiten Einstellungen, z. B.der Netzwerkkonfiguration, relevant. Für kleinere Änderungen ist der Wechsel in denEinzelbenutzer-Modus nicht erforderlich. In diesem Modus können Sie jedoch sicher-stellen, dass alle von den Änderungen betroffenen Programme ordnungsgemäß neugestartet werden.

TIPP: Konfigurieren der automatisierten Systemkonfiguration

Um die automatisierte Systemkonfiguration von SuSEconfig zu deaktivieren,setzen Sie die Variable ENABLE_SUSECONFIG in /etc/sysconfig/suseconfig auf no. Wenn Sie den SUSE-Support für die Installation nutzenmöchten, darf SuSEconfig nicht deaktiviert werden. Es ist auch möglich, dieautomatisierte Konfiguration teilweise zu deaktivieren.

Booten und Konfigurieren eines Linux-Systems 209

Page 210: Suse 10.1 Linux Reference De
Page 211: Suse 10.1 Linux Reference De

9Der BootloaderIn diesem Kapitel wird die Konfiguration von GRUB, dem unter SUSE Linux verwen-deten Bootloader, beschrieben. Zum Vornehmen der Einstellungen steht ein speziellesYaST-Modul zur Verfügung. Wenn Sie mit dem Bootvorgang unter Linux nicht vertrautsind, lesen Sie die folgenden Abschnitte, um einige Hintergrundinformationen zuerhalten. In diesem Kapitel werden zudem einige der Probleme, die beim Booten mitGRUB auftreten können, sowie deren Lösungen beschrieben.

Dieses Kapitel konzentriert sich auf das Bootmanagement und die Konfiguration desBootloaders GRUB. Eine Übersicht über den Bootvorgang finden Sie in Kapitel 8,Booten und Konfigurieren eines Linux-Systems (S. 193). Ein Bootloader stellt dieSchnittstelle zwischen Computer (BIOS) und dem Betriebssystem (SUSE Linux) dar.Die Konfiguration des Bootloaders wirkt sich direkt auf das Starten des Betriebssystemsaus.

In diesem Kapitel werden folgende Begriffe regelmäßig verwendet und werden daherausführlicher beschrieben:

Master Boot RecordDie Struktur des MBR ist durch eine vom Betriebssystem unabhängige Konventionfestgelegt. Die ersten 446 Byte sind für Programmcode reserviert. Sie enthalten inder Regel das Bootloader-Programm, in diesem Fall GRUB Stufe 1. Die nächsten64 Byte bieten Platz für eine Partitionstabelle mit bis zu vier Einträgen (siehe„Partitionstypen“ (Kapitel 1, Installation mit YaST, ↑Start)). Die Partitionstabelleenthält Informationen zur Partitionierung der Festplatte und zum Dateisystemtyp.Das Betriebssystem benötigt diese Tabelle für die Verwaltung der Festplatte. BeiGRUB Stufe 1 im MBR muss genau eine Partition als aktiv markiert sein. Die

Der Bootloader 211

Page 212: Suse 10.1 Linux Reference De

letzten zwei Byte müssen eine statische „magische Zahl“ (AA55) enthalten. EinMBR mit einem anderen Wert wird vom BIOS als ungültig betrachtet.

BootsektorenBootsektoren sind die jeweils ersten Sektoren der Festplattenpartitionen, außer beider erweiterten Partition, die nur ein „Container“ für andere Partitionen ist. DieseBootsektoren reservieren 512 Byte Speicherplatz für Code, der ein auf dieser Par-tition befindliches Betriebssystem starten kann. Dies gilt für Bootsektoren forma-tierter DOS-, Windows- oder OS/2-Partitionen, die zusätzlich noch wichtigeBasisdaten des Dateisystems enthalten. Im Gegensatz dazu sind Bootsektoren vonLinux-Partitionen nach der Einrichtung eines Dateisystems anfänglich leer (mitAusnahme des Dateisystems XFS). Eine Linux-Partition ist daher nicht durch sichselbst bootfähig, auch wenn sie einen Kernel und ein gültiges root-Dateisystementhält. Ein Bootsektor mit gültigem Code für den Systemstart trägt in den letzten2 Byte dieselbe „magische“ Zahl wie der MBR (AA55).

9.1 Auswählen eines BootloadersIn SUSE Linux wird standardmäßig der Bootloader GRUB verwendet. In einigen Fällenund für bestimmte Hardware- und Softwarekonstellationen ist jedoch möglicherweiseLILO erforderlich. Wenn Sie ein Update einer älteren SUSE Linux-Version durchführen,die LILO benutzte, wird auch wieder LILO installiert.

Informationen zur Installation und Konfiguration von LILO finden Sie in der Support-datenbank unter dem Schlüsselwort LILO und in /usr/share/doc/packages/lilo.

9.2 Booten mit GRUBGRUB (Grand Unified Bootloader) besteht aus zwei Stufen. Stufe 1 (stage1) bestehtaus 512 Byte und erfüllt lediglich die Aufgabe, die zweite Stufe des Bootloaders zuladen. Anschließend wird Stufe 2 (stage2) geladen. Diese Stufe enthält den Hauptteildes Bootloaders.

In einigen Konfigurationen gibt es eine zusätzliche Zwischenstufe 1.5, die Stufe 2 voneinem geeigneten Dateisystem lokalisiert und lädt. Wenn diese Methode zur Verfügung

212 Referenz

Page 213: Suse 10.1 Linux Reference De

steht, wird sie bei der Installation oder bei der anfänglichen Einrichtung von GRUBmit YaST standardmäßig gewählt.

stage2 kann auf zahlreiche Dateisysteme zugreifen. Derzeit werden Ext2, Ext3, ReiserFS,Minix und das von Windows verwendete DOS FAT-Dateisystem unterstützt. Bis zueinem gewissen Grad werden auch die von BSD-Systemen verwendeten JFS, XFS,UFS und FFS unterstützt. Seit Version 0.95 kann GRUB auch von einer CD oder DVDbooten, die das ISO 9660-Standarddateisystem nach der „El Torito“-Spezifikationenthält. GRUB kann noch vor dem Booten auf Dateisysteme unterstützter BIOS-Disk-Devices (vom BIOS erkannte Disketten, Festplatten, CD- oder DVD-Laufwerke)zugreifen. Daher erfordern Änderungen an der GRUB-Konfigurationsdatei (menu.lst) keine Neuinstallation des Boot-Managers mehr. Beim Booten des Systems liestGRUB die Menüdatei samt der aktuellen Pfade und Partitionsdaten zur Kernel oder zurInitial RAM-Disk (initrd) neu ein und findet diese Dateien selbständig.

Die eigentliche Konfiguration von GRUB basiert auf den im Folgenden beschriebenendrei Dateien:

/boot/grub/menu.lstDiese Datei enthält sämtliche Informationen zu Partitionen oder Betriebssystemen,die mit GRUB gebootet werden können. Wenn diese Angaben nicht zur Verfügungstehen, wird der Benutzer in der GRUB-Befehlszeile danach gefragt (siehe „Ändernvon Menü-Einträgen während des Bootvorgangs“ (S. 218)).

/boot/grub/device.mapDiese Datei übersetzt Gerätenamen aus der GRUB- und BIOS-Notation in Linux-Gerätenamen.

/etc/grub.confDiese Datei enthält die Befehle, Parameter und Optionen, die die GRUB-Shell fürdas ordnungsgemäße Installieren des Bootloaders benötigt.

GRUB kann auf mehrere Weisen gesteuert werden. Booteinträge aus einer vorhandenenKonfiguration können im grafischen Menü (Eröffnungsbildschirm) ausgewählt werden.Die Konfiguration wird aus der Datei menu.lst geladen.

In GRUB können alle Bootparameter vor dem Booten geändert werden. Auf dieseWeise können beispielsweise Fehler behoben werden, die beim Bearbeiten der Menüdateiaufgetreten sind. Außerdem können über eine Art Eingabeaufforderung (siehe „Ändernvon Menü-Einträgen während des Bootvorgangs“ (S. 218)) Bootbefehle interaktiv ein-

Der Bootloader 213

Page 214: Suse 10.1 Linux Reference De

gegeben werden. GRUB bietet die Möglichkeit, noch vor dem Booten die Position desKernels und voninitrd festzustellen. Auf diese Weise können Sie auch ein installiertesBetriebssystem booten, für das in der Konfiguration des Bootloaders noch kein Eintragvorhanden ist.

GRUB liegt in zwei Versionen vor: als Bootloader und als normales Linux-Programmim Verzeichnis /usr/sbin/grub. Dieses Programm wird als GRUB-Shellbezeichnet. Es stellt auf dem installierten System eine Emulation von GRUB bereit,die zum Installieren von GRUB oder zum Testen neuer Einstellungen verwendet werdenkann. Die Funktionalität, GRUB als Bootloader auf eine Festplatte oder Diskette zuinstallieren, ist in Form der Befehle install und setup in GRUB integriert. DieseBefehle sind in der GRUB-Shell verfügbar, wenn Linux geladen ist.

9.2.1 Das GRUB-BootmenüHinter dem grafischen Eröffnungsbildschirm mit dem Bootmenü steht die GRUB-Konfigurationsdatei /boot/grub/menu.lst, die alle Informationen zu allen Parti-tionen oder Betriebssystemen enthält, die über das Menü gebootet werden können.

GRUB liest bei jedem Systemstart die Menüdatei vom Dateisystem neu ein. Es bestehtalso kein Bedarf, GRUB nach jeder Änderung an der Datei neu zu installieren. Mit demYaST-Bootloader können Sie die GRUB-Konfiguration wie in Abschnitt 9.3, „Konfi-gurieren des Bootloaders mit YaST“ (S. 222) beschrieben ändern.

Die Menüdatei enthält Befehle. Die Syntax ist sehr einfach. Jede Zeile enthält einenBefehl, gefolgt von optionalen Parametern, die wie bei der Shell durch Leerzeichengetrennt werden. Einige Befehle erlauben aus historischen Gründen ein Gleichheitszei-chen (=) vor dem ersten Parameter. Kommentare werden durch ein Rautezeichen (#)eingeleitet.

Zur Erkennung der Menüeinträge in der Menü-Übersicht, müssen Sie für jeden Eintrageinen Namen oder einentitle vergeben. Der nach dem Schlüsselworttitle stehendeText wird inklusive Leerzeichen im Menü als auswählbare Option angezeigt. AlleBefehle bis zum nächstentitlewerden nach Auswahl dieses Menüeintrags ausgeführt.

Der einfachste Fall ist die Umleitung zu Bootloadern anderer Betriebssysteme. DerBefehl lautet chainloader und das Argument ist normalerweise der Bootblock eineranderen Partition in der Blocknotation von GRUB. Beispiel:chainloader (hd0,3)+1

214 Referenz

Page 215: Suse 10.1 Linux Reference De

Die Gerätenamen in GRUB werden in „Namenskonventionen für Festplatten und Par-titionen“ (S. 215) beschrieben. Dieses Beispiel spezifiziert den ersten Block der viertenPartition auf der ersten Festplatte.

Mit dem Befehl kernel wird ein Kernel-Image angegeben. Das erste Argument istder Pfad zum Kernel-Image auf einer Partition. Die restlichen Argumente werden demKernel in seiner Befehlszeile übergeben.

Wenn der Kernel nicht über die erforderlichen Treiber für den Zugriff auf die Root-Partition verfügt oder ein neueres Linux-System mit erweiterten Hotplug-Funktionenverwendet wird, mussinitrdmit einem separaten GRUB-Befehl angegeben werden,dessen einziges Argument der Pfad zu der Datei initrd ist. Da die Ladeadresse voninitrd in das geladene Kernel-Image geschrieben wird, muss der Befehl initrddirekt auf den Befehl kernel folgen.

Der Befehl root vereinfacht die Angabe der Kernel- und initrd-Dateien. Das einzigeArgument von root ist ein Gerät oder eine Partition. Allen Kernel-, initrd- oderanderen Dateipfaden, für die nicht explizit ein Gerät angegeben ist, wird bis zumnächsten root-Befehl das Gerät vorangestellt.

Am Ende jeden Menü-Eintrags steht implizit der boot-Befehl, sodass dieser nicht indie Menüdatei geschrieben werden muss. Wenn Sie GRUB jedoch interaktiv zumBooten verwenden, müssen Sie den boot-Befehl am Ende eingeben. Der Befehl selbsthat keine Argumente. Er führt lediglich das geladene Kernel-Image oder den angegebe-nen Chainloader aus.

Wenn Sie alle Menüeinträge geschrieben haben, müssen Sie einen Eintrag als defaultfestlegen. Anderenfalls wird der erste Eintrag (Eintrag 0) verwendet. Sie haben auchdie Möglichkeit, ein Zeitlimit in Sekunden anzugeben, nach dem der default-Eintraggebootet wird. timeout und default werden den Menüeinträgen in der Regelvorangestellt. Eine Beispieldatei finden Sie in „Beispiel einer Menüdatei“ (S. 216).

Namenskonventionen für Festplatten und PartitionenDie von GRUB für Festplatten und Partitionen verwendeten Namenskonventionenunterscheiden sich von denen, die für normale Linux-Geräte verwendet werden. InGRUB beginnt die Nummerierung der Partitionen mit Null. Daher ist (hd0,0) dieerste Partition auf der ersten Festplatte. Auf einem gewöhnlichen Desktop-Computer,bei dem eine Festplatte als Primary Master angeschlossen ist, lautet der entsprechendeLinux-Gerätename /dev/hda1.

Der Bootloader 215

Page 216: Suse 10.1 Linux Reference De

Die vier möglichen primären Partitionen haben die Partitionsnummern 0 bis 3. Ab 4werden die logischen Partitionen hochgezählt:(hd0,0) erste primäre Partition auf der ersten Festplatte (hd0,1) zweite primäre Partition (hd0,2) dritte primäre Partition (hd0,3) vierte primäre (und meist eine erweiterte) Partition (hd0,4) erste logische Partition (hd0,5) zweite logische Partition

In seiner Abhängigkeit von BIOS-Geräten unterscheidet GRUB nicht zwischen IDE-,SATA-, SCSI- und Hardware RAID-Geräten. Alle Festplatten, die vom BIOS oderanderen Controllern erkannt werden, werden der im BIOS voreingestellten Bootreihen-folge entsprechend nummeriert.

Leider ist eine eindeutige Zuordnung zwischen Linux-Gerätenamen und BIOS-Geräten-amen häufig nicht möglich. Es generiert die Zuordnung mithilfe eines Algorithmus undspeichert sie in der Datei device.map, in der sie bei Bedarf bearbeitet werden kann.Informationen zur Datei device.map finden Sie in Abschnitt 9.2.2, „Die Datei„device.map““ (S. 219).

Ein vollständiger GRUB-Pfad besteht aus einem Gerätenamen, der in Klammerngeschrieben wird, und dem Pfad der Datei im Dateisystem auf der angegebenen Partition.Der Pfad beginnt mit einem Schrägstrich. Auf einem System mit einer einzelnen IDE-Festplatte und Linux auf der ersten Partition könnte der bootbare Kernel beispielsweisewie folgt spezifiziert werden:(hd0,0)/boot/vmlinuz

Beispiel einer MenüdateiDas folgende Beispiel zeigt die Struktur einer GRUB-Menüdatei. Diese Beispiel-Installation beinhaltet eine Linux-Bootpartition unter /dev/hda5, eine Root-Partitionunter /dev/hda7 und eine Windows-Installation unter /dev/hda1.gfxmenu (hd0,4)/messagecolor white/blue black/light-graydefault 0timeout 8

title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd

title windows

216 Referenz

Page 217: Suse 10.1 Linux Reference De

chainloader(hd0,0)+1

title floppy chainloader(fd0)+1

title failsafe kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 initrd (hd0,4)/initrd.shipped

Der erste Block definiert die Konfiguration des Eröffnungsbildschirms:

gfxmenu (hd0,4)/messageDas Hintergrundbild message befindet sich in /dev/hda5.

color white/blue black/light-grayFarbschema: white (Vordergrund), blue (Hintergrund), black (Auswahl) und lightgray (Hintergrund der Markierung). Das Farbschema wirkt sich nicht auf denEröffnungsbildschirm, sondern nur auf das anpassbare GRUB-Menü aus, auf dasSie zugreifen können, wenn Sie den Eröffnungsbildschirm mit Esc beenden.

default 0Der erste Menüeintrag title linux soll standardmäßig gebootet werden.

timeout 8Nach acht Sekunden ohne Benutzereingabe bootet GRUB den Standardeintragautomatisch. Um das automatische Booten zu deaktivieren, löschen Sie die Zeiletimeout. Wenn Sie timeout 0 setzen, bootet GRUB den Standardeintragsofort.

Im zweiten und größten Block sind die verschiedenen bootbaren Betriebssysteme auf-gelistet. Die Abschnitte für die einzelnen Betriebssysteme werden durch title einge-leitet.

• Der erste Eintrag (title linux) ist für das Booten von SUSE Linux zuständig.Der Kernel (vmlinuz) befindet sich in der ersten logischen Partition (die Bootpar-tition) der ersten Festplatte. Hier werden Kernel-Parameter, z. B. die Root-Partitionund der VGA-Modus, angehängt. Die Angabe der Root-Partition erfolgt nach derLinux-Namenskonvention (/dev/hda7/), da diese Information für den Kernelbestimmt ist und nichts mit GRUB zu tun hat. Die initrd befindet sich ebenfallsin der ersten logischen Partition der ersten Festplatte.

Der Bootloader 217

Page 218: Suse 10.1 Linux Reference De

• Der zweite Eintrag ist für das Laden von Windows verantwortlich. Windows wirdvon der ersten Partition der ersten Festplatte aus gebootet (hd0,0). Mittelschainloader +1 wird das Auslesen und Ausführen des ersten Sektors derangegebenen Partition gesteuert.

• Der nächste Eintrag dient dazu, das Booten von Diskette zu ermöglichen, ohne dassdazu die BIOS-Einstellungen geändert werden müssten.

• Die Bootoption failsafe dient dazu, Linux mit einer bestimmten Auswahl anKernel-Parametern zu starten, die selbst auf problematischen Systemen ein Hoch-fahren von Linux ermöglichen.

Die Menüdatei kann jederzeit geändert werden. GRUB verwendet die geänderten Ein-stellungen anschließend für den nächsten Bootvorgang. Sie können diese Datei mit demEditor Ihrer Wahl oder mit YaST permanent editieren und dauerhaft speichern. Alter-nativ können Sie temporäre Änderungen interaktiv über die Bearbeitungsfunktion vonGRUB vornehmen. Siehe „Ändern von Menü-Einträgen während des Bootvorgangs“(S. 218).

Ändern von Menü-Einträgen während desBootvorgangsWählen Sie im grafischen Bootmenü das zu bootende Betriebssystem mit den Pfeiltastenaus. Wenn Sie ein Linux-System wählen, können Sie an der Boot-Eingabeaufforderungzusätzliche Bootparameter eingeben. Um einzelne Menüeinträge direkt zu bearbeiten,drücken Sie die Esc -Taste, um den Eröffnungsbildschirm zu schließen und das textba-sierte GRUB-Menü anzuzeigen, und drücken Sie anschließend die Taste E . Auf dieseWeise vorgenommene Änderungen gelten nur für den aktuellen Bootvorgang undkönnen nicht dauerhaft übernommen werden.

WICHTIG: Tastaturbelegung während des Bootvorgangs

Beim Bootvorgang ist nur die amerikanische Tastaturbelegung verfügbar.

Durch die Möglichkeit, die Menüeinträge zu bearbeiten, kann ein defektes System, dasnicht mehr gebootet werden kann, repariert werden, da die fehlerhafte Konfigurations-datei des Bootloaders mittels der manuellen Eingabe von Parametern umgangen werdenkann. Die manuelle Eingabe vom Parametern während des Bootvorgangs ist zudem

218 Referenz

Page 219: Suse 10.1 Linux Reference De

hilfreich zum Testen neuer Einstellungen, ohne dass diese sich auf das native Systemauswirken.

Aktivieren Sie den Bearbeitungsmodus und wählen Sie mithilfe der Pfeiltasten denMenüeintrag aus, dessen Konfiguration sie ändern möchten. Um die Konfiguration zubearbeiten, drücken Sie die Taste E erneut. Auf diese Weise korrigieren Sie falschePartitions- oder Pfadangaben, bevor sich diese negativ auf den Bootvorgang auswirken.Drücken Sie Eingabe , um den Bearbeitungsmodus zu verlassen und zum Menüzurückzukehren. Drücken Sie anschließend die Taste B , um diesen Eintrag zu booten.Im Hilfetext am unteren Rand werden weitere mögliche Aktionen angezeigt.

Um die geänderten Bootoptionen dauerhaft zu übernehmen und an den Kernel zuübergeben, öffnen Sie die Datei menu.lst als Benutzer root und hängen Sie dieentsprechenden Kernel-Parameter an folgende vorhandene Zeile getrennt durch Leer-zeichen an:title linux kernel (hd0,0)/vmlinuz root=/dev/hda3 additional parameter initrd (hd0,0)/initrd

GRUB übernimmt den neuen Parameter beim nächsten Booten automatisch. Alternativkönnen Sie diese Änderung auch mit dem YaST-Bootloader-Modul vornehmen. HängenSie die neuen Parameter getrennt durch Leerzeichen an die vorhandene Zeile an.

9.2.2 Die Datei „device.map“Die Datei device.map enthält Zuordnungen zwischen den GRUB- und BIOS-Gerä-tenamen und den Linux-Gerätenamen. In einem Mischsystem aus IDE- und SCSI-Festplatten muss GRUB anhand eines bestimmten Verfahrens versuchen, die Bootrei-henfolge zu ermitteln, da die BIOS-Informationen zur Bootreihenfolge für GRUB unterUmständen nicht zugänglich sind. GRUB speichert das Ergebnis dieser Analyse in derDatei /boot/grub/device.map. Auf einem System, für das IDE vor SCSIgebootet werden soll, kann die Datei device.map beispielsweise wie folgt aussehen:(fd0) /dev/fd0(hd0) /dev/hda(hd1) /dev/sda

Da die Reihenfolge von IDE, SCSI und anderen Festplatten abhängig von verschiedenenFaktoren ist und Linux die Zuordnung nicht erkennen kann, besteht die Möglichkeit,die Reihenfolge in der Datei device.map manuell festzulegen. Wenn beim BootenProbleme auftreten sollten, prüfen Sie, ob die Reihenfolge in dieser Datei der BIOS-

Der Bootloader 219

Page 220: Suse 10.1 Linux Reference De

Reihenfolge entspricht und ändern Sie sie notfalls temporär mithilfe der GRUB-Einga-beaufforderung. Ist das Linux-System erst gebootet, können Sie die Änderungen in derDatei device.map mithilfe des YaST Bootloader-Moduls oder eines Editors IhrerWahl dauerhaft übernehmen.

WICHTIG: SATA-Festplatten

Je nach Controller werden SATA-Festplatten als IDE-Geräte (/dev/hdx) oderSCSI-Geräte (/dev/sdx) erkannt.

Installieren Sie nach dem manuellen Bearbeiten von device.map GRUB mithilfedes folgenden Befehls neu. Dieser Befehl führt dazu, dass die Datei device.map neugeladen wird und die in grub.conf aufgelisteten Befehle ausgeführt werden:grub --batch < /etc/grub.conf

9.2.3 Die Datei "/etc/grub.conf"Die drittwichtigste Konfigurationsdatei von GRUB nach menu.lst und device.map ist/etc/grub.conf. Diese Datei enthält die Befehle, Parameter und Optionen,die die GRUB-Shell für das ordnungsgemäße Installieren des Bootloaders benötigt:root (hd0,4) install /grub/stage1 (hd0,3) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst quit

Bedeutung der einzelnen Einträge:

root (hd0,4)Mit diesem Befehl wird GRUB angewiesen, folgende Befehle auf die erste logischePartition der ersten Festplatte anzuwenden. Dort befinden sich die Bootdateien.

install ParameterDer Befehl grub sollte mit dem Parameterinstall ausgeführt werden. stage1des Bootloaders sollte im erweiterten Partitionscontainer (/grub/stage1(hd0,3)) installiert werden. stage2 sollte in die Speicheradresse 0x8000(/grub/stage2 0x8000) geladen werden. Der letzte Eintrag((hd0,4)/grub/menu.lst) weist GRUB an, wo die Menüdatei zu finden ist.

220 Referenz

Page 221: Suse 10.1 Linux Reference De

9.2.4 Festlegen eines BootpasswortsGRUB unterstützt schon vor dem Booten des Betriebssystems den Zugriff auf Dateisys-teme. Dies bedeutet, dass Benutzer ohne root-Berechtigungen auf Dateien des Linux-Systems zugreifen können, auf die sie nach dem Booten keinen Zugriff haben. Umdiese Zugriffe oder das Booten bestimmter Betriebssysteme zu verhindern, können Sieein Bootpasswort festlegen.

WICHTIG: Bootpasswort und Eröffnungsbildschirm

Wenn Sie für GRUB ein Bootpasswort verwenden, wird der übliche Eröffnungs-bildschirm nicht angezeigt.

Legen Sie als Benutzer root das Bootpasswort wie folgt fest:

1 Geben Sie in der Eingabeaufforderung grub ein.

2 Verschlüssen Sie das Passwort in der GRUB-Shell wie folgt:grub> md5cryptPassword: ****Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

3 Fügen Sie die verschlüsselte Zeichenkette in den globalen Abschnitt der Dateimenu.lst ein:gfxmenu (hd0,4)/messagecolor white/blue black/light-graydefault 0timeout 8password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

Jetzt können GRUB-Befehle in der Booteingabeaufforderung nur nach Drückender Taste P und der Eingabe des Passworts ausgeführt werden. Benutzer könnenjedoch über das Bootmenü weiterhin alle Betriebssysteme booten.

4 Um zu verhindern, dass ein oder mehrere Betriebssysteme über das Bootmenügebootet werden, fügen Sie den Eintrag lock zu allen Abschnitten in menu.lst hinzu, die ohne Eingabe eines Passworts nicht gebootet werden sollen.Beispiel:

Der Bootloader 221

Page 222: Suse 10.1 Linux Reference De

title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd lock

Nach dem Neubooten des Systems und der Auswahl des Linux-Eintrags imBootmenü erscheint zunächst folgende Fehlermeldung:Error 32: Must be authenticated

Drücken Sie Eingabe , um das Menü zu öffnen. Drücken Sie anschließend dieTaste P , um die Eingabeaufforderung für das Passwort zu öffnen. Wenn Siedas Passwort eingegeben und Eingabe gedrückt haben, sollte das ausgewählteBetriebssystem (in diesem Fall Linux) gebootet werden.

9.3 Konfigurieren des Bootloaders mitYaST

Mit dem YaST-Modul ist die Konfiguration des Bootloaders auf Ihrem SUSE Linux-System am einfachsten. Wählen Sie im YaST-Kontrollzentrum System→Konfigurationdes Bootloaders. Wie in Abbildung 9.1, „Konfigurieren des Bootloaders mit YaST“(S. 223) zeigt dies die aktuelle Bootloader-Konfiguration des Systems und ermöglichtIhnen, Änderungen vorzunehmen.

222 Referenz

Page 223: Suse 10.1 Linux Reference De

Abbildung 9.1 Konfigurieren des Bootloaders mit YaST

Auf der Registerkarte Abschnittsverwaltung können Sie die Bootloader-Abschnitte fürdie einzelnen Betriebssysteme bearbeiten, ändern und löschen. Klicken Sie zum Hinzu-fügen einer Option auf Hinzufügen. Wenn Sie den Wert einer bestehenden Optionändern möchten, wählen Sie ihn mit der Maus aus und klicken Sie auf Bearbeiten.Wenn Sie eine bestehende Option überhaupt nicht verwenden möchten, wählen Sie sieaus und klicken Sie auf Löschen. Wenn Sie nicht mit den Bootloader-Optionen vertrautsind, lesen Sie zunächst Abschnitt 9.2, „Booten mit GRUB“ (S. 212).

Verwenden Sie die Registerkarte Bootloader-Installation, um die Einstellungen inBezug auf Typ, Speicherort und erweiterte Bootloader-Einstellungen anzuzeigen undzu ändern.

9.3.1 Bootloader-TypDen Bootloader-Typ können Sie unter Bootloader-Installation festlegen. In SUSELinux wird standardmäßig der Bootloader GRUB verwendet. Gehen Sie wie folgt vor,wenn Sie LILO verwenden möchten:

Der Bootloader 223

Page 224: Suse 10.1 Linux Reference De

Prozedur 9.1 Ändern des Bootloader-Typs

1 Wählen Sie die Registerkarte Bootloader-Installation.

2 Wählen Sie unter Bootloader die Option LILO.

3 Wählen Sie in dem sich öffnenden Dialogfeld folgende Aktionen aus:

Neue Konfiguration vorschlagenLässt YaST eine neue Konfiguration erstellen.

Aktuelle Konfiguration konvertierenLässt YaST die aktuelle Konfiguration konvertieren. Es ist möglich, dassbeim Konvertieren der Konfiguration einige Einstellungen verloren gehen.

Neue Konfiguration ohne Vorschlag erstellenErstellt eine benutzerdefinierte Konfiguration. Diese Aktion ist während derInstallation von SUSE Linux nicht verfügbar.

Auf Festplatte gespeicherte Konfiguration einlesenLädt Ihre eigene Datei /etc/lilo.conf. Diese Aktion ist während derInstallation von SUSE Linux nicht verfügbar.

4 Klicken Sie auf OK, um die Änderungen zu speichern.

5 Klicken Sie im Hauptdialogfeld aufBeenden, um die Änderungen zu übernehmen.

Während der Konvertierung wird die alte GRUB-Konfiguration gespeichert. Wenn Siesie verwenden möchten, ändern Sie einfach den Bootloader-Typ zurück in GRUB undwählen Sie Vor der Konvertierung gespeicherte Konfiguration wiederherstellen. DieseAktion ist nur auf einem installierten System verfügbar.

ANMERKUNG: Benutzerdefinierter Bootloader

Wenn Sie einen anderen Bootloader als GRUB oder LILO verwenden möchten,wählen Sie Keinen Bootloader installieren. Lesen Sie die Dokumentation IhresBootloaders sorgfältig durch, bevor Sie diese Option auswählen.

224 Referenz

Page 225: Suse 10.1 Linux Reference De

9.3.2 Speicherort des BootloadersUm den Speicherort des Bootloaders zu ändern, gehen Sie wie folgt vor:

Prozedur 9.2 Speicherort des Bootloaders ändern

1 Wählen Sie die Registerkarte Bootloader-Installation und anschließend eine derfolgenden Optionen für Speicherort des Bootloaders:

Master Boot Record von /dev/hdXDadurch wird der Bootloader im MBR einer Festplatte installiert. X gibt dieFestplatte an, beispielsweise a, b, c oder d:hda => ide0 master hdb => ide0 slavehdc => ide1 master hdd => ide1 slave

Bootsektor der Boot-Partition /dev/hdXYDer Bootsektor der Partition /boot. Dies ist der Standard für die Option,wenn Sie auf Ihrer Festplatte mehrere Betriebssysteme installiert haben. DasY steht für die Partition (1, 2, 3, 4, 5 usw.), wie in:/dev/hda1

Bootsektor der Root-Partition /dev/hdXYDer Bootsektor der / (root)-Partition. Solange keine /boot-Partitionerforderlich ist oder der MBR verwendet werden muss, ist dies der bevorzugteStandardwert.

AndereMit dieser Option können Sie den Speicherort des Bootloaders manuellangeben.

2 Klicken Sie zum Anwenden der Einstellungen auf Beenden.

Der Bootloader 225

Page 226: Suse 10.1 Linux Reference De

9.3.3 StandardsystemUm das System zu ändern, das standardmäßig gebootet wird, gehen Sie wie folgt vor:

Prozedur 9.3 Standardsystem einrichten

1 Öffnen Sie die Registerkarte Abschnittsverwaltung.

2 Wählen Sie das gewünschte System in der Liste aus.

3 Klicken Sie auf Als Standard festlegen.

4 Klicken Sie auf Beenden, um die Änderungen zu aktivieren.

9.3.4 Zeitlimit des BootloadersDer Bootloader bootet das Standardsystem nicht sofort. Während des Zeitlimits könnenSie das zu bootende System auswählen oder einige Kernel-Parameter schreiben. GehenSie wie folgt vor, um das Zeitlimit des Bootloaders festzulegen:

Prozedur 9.4 Ändern des Bootloader-Zeitlimits

1 Öffnen Sie die Registerkarte Bootloader-Installation.

2 Klicken Sie auf Bootloader-Optionen.

3 Aktivieren Sie Boot-Modus.

4 Ändern Sie unter Boot-Modus den Wert für Beim Systemstart, indem Sie einenneuen Wert eingeben, mit der Maus auf den entsprechenden Pfeil klicken oderdie Pfeiltasten der Tastatur verwenden.

5 Klicken Sie auf OK.

6 Klicken Sie auf Beenden, um die Änderungen zu speichern.

Das Bootmenü sollte dauerhaft ohne Zeitlimit angezeigt werden, wenn Bootvorgangnach Zeitüberschreitung fortsetzen deaktiviert ist.

226 Referenz

Page 227: Suse 10.1 Linux Reference De

9.3.5 SicherheitseinstellungenMit diesem YaST-Modul können Sie zum Schutz des Bootvorgangs auch ein Passworteinrichten. Damit wird ein zusätzlicher Grad an Sicherheit geboten.

Prozedur 9.5 Festlegen eines Bootloader-Passworts

1 Öffnen Sie die Registerkarte Bootloader-Installation.

2 Klicken Sie auf Bootloader-Optionen.

3 Aktivieren Sie unter Passwortschutz die Option Bootloader durch Passwortschützen und geben Sie ein Passwort an.

4 Klicken Sie auf OK.

5 Klicken Sie auf Beenden, um die Änderungen zu speichern.

9.3.6 FestplattenreihenfolgeWenn Ihr Computer mehrere Festplatten hat, können Sie die Bootsequenz der Festplattenso festlegen, dass sie dem BIOS-Setup des Computers entsprechen (siehe Abschnitt 9.2.2,„Die Datei „device.map““ (S. 219)). Gehen Sie hierfür wie folgt vor:

Prozedur 9.6 Festlegen der Festplattenreihenfolge

1 Öffnen Sie die Registerkarte Bootloader-Installation.

2 Klicken Sie auf Details zur Bootloader-Installation.

3 Ändern Sie bei mehreren aufgeführten Festplatten deren Reihenfolge mit einemKlick auf Auf oder Ab.

4 Klicken Sie auf OK, um die Änderungen zu speichern.

5 Klicken Sie auf Beenden, um die Änderungen zu speichern.

Mithilfe dieses Moduls können Sie auch den Master Boot Record durch generischenCode ersetzen, mit dem die aktive Partition gebootet wird. Klicken Sie unter Aktualisie-

Der Bootloader 227

Page 228: Suse 10.1 Linux Reference De

rung der Festplattenbereiche auf MBR durch generischen Code ersetzen. Wählen SieBootloader-Partition aktivieren, um die Partition zu aktivieren, die den Bootloaderenthält. Klicken Sie auf Beenden, um die Änderungen zu speichern.

9.4 Deinstallieren desLinux-Bootloaders

Mit YaST können Sie den Linux-Bootloader deinstallieren und den Zustand des MBRwiederherstellen, der vor der Installation von Linux vorlag. YaST erstellt während derInstallation automatisch ein Backup der ursprünglichen MBR-Version und stellt sie beiBedarf wieder her.

Um GRUB zu deinstallieren, starten Sie das YaST-Bootloader-Modul (System →Konfiguration des Bootloaders). Wählen Sie im ersten Dialogfeld Zurücksetzen →MBR von Festplatte wiederherstellen und schließen Sie das Dialogfeld mit Beenden.

9.5 Erstellen von Boot-CDsWenn beim Booten Ihres Systems unter Verwendung eines Bootmanagers Problemeauftreten oder wenn der Bootmanager auf dem MBR Ihrer Festplatte oder einer Diskettenicht installiert werden kann, ist es auch möglich, eine bootfähige CD mit all den fürLinux erforderlichen Startdateien zu erstellen. Hierfür muss ein CD-Brenner in IhremSystem installiert sein.

Für die Erstellung eines bootfähigen CD-ROM mit GRUB ist lediglich eine spezielleForm von stage2 namens stage2_eltorito erforderlich sowie, optional, einebenutzerdefinierte Datei menu.lst. Die klassischen Dateien stage1 und stage2sind nicht erforderlich.

Prozedur 9.7 Erstellen von Boot-CDs

1 Erstellen Sie ein Verzeichnis, in dem das ISO-Image erstellt werden soll, bei-spielsweise:cd /tmpmkdir iso

228 Referenz

Page 229: Suse 10.1 Linux Reference De

2 Erstellen Sie ein Unterverzeichnis für GRUB:mkdir -p iso/boot/grub

3 Kopieren Sie den Kernel, die Dateien stage2_eltorito, initrd, menu.lst und /boot/message nach iso/boot/:cp /boot/vmlinuz iso/boot/cp /boot/initrd iso/boot/cp /boot/message iso/boot/cp /boot/grub/menu.lst iso/boot/grub

4 Passen Sie die Pfadeinträge in iso/boot/menu.lst so an, dass sie auf einCD-ROM-Laufwerk verweisen. Ersetzen Sie hierfür in den Pfadnamen denGerätenamen der Festplatten, die im Format (hd*) aufgeführt sind, mit demGerätenamen des CD-ROM-Laufwerks, das mit (cd) angegeben wird:gfxmenu (cd)/boot/messagetimeout 8default 0

title Linux kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 \ splash=verbose showopts initrd (cd)/boot/initrd

5 Erstellen Sie das ISO-Image mit dem folgenden Befehl:mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \-boot-load-size 4 -boot-info-table -o grub.iso iso

6 Schreiben Sie die so erstellte Datei namens grub.iso unter Verwendung Ihresbevorzugten Dienstprogramms auf eine CD.

9.6 Der grafische SUSE-BildschirmSeit SUSE Linux 7.2 wird der grafische SUSE-Bildschirm auf der ersten Konsoleangezeigt, wenn die Option „vga=<Wert>“ als Kernel-Parameter verwendet wird. Beider Installation mit YaST wird diese Option automatisch in Abhängigkeit von dergewählten Auflösung und der verwendeten Grafikkarte aktiviert. Sie haben bei Bedarfdrei Möglichkeiten, den SUSE-Bildschirm zu deaktivieren:

Der Bootloader 229

Page 230: Suse 10.1 Linux Reference De

Den SUSE-Bildschirm bei Bedarf deaktivierenGeben Sie den Befehl echo 0 >/proc/splash in der Befehlszeile ein, umden grafischen Bildschirm zu deaktivieren. Um ihn wieder zu aktivieren, gebenSie den Befehl echo 1 >/proc/splash ein.

Den SUSE-Bildschirm standardmäßig deaktivierenFügen Sie den Kernel-Parameter splash=0 zur Konfiguration des Bootloadershinzu. Weitere Informationen hierzu finden Sie in Kapitel 9,Der Bootloader (S. 211).Wenn Sie jedoch den Textmodus wie in früheren Versionen bevorzugen, legen SieFolgendes fest: vga=normal.

Den SUSE-Bildschirm vollständig deaktivierenKompilieren Sie einen neuen Kernel und deaktivieren Sie die Option zum Verwen-den des Eröffnungsbildschirms anstelle des Bootlogos im Menü Framebuffer-Unterstützung.

TIPP

Wenn Sie im Kernel die Framebuffer-Unterstützung deaktiviert haben, istder Eröffnungsbildschirm automatisch auch deaktiviert. Wenn Sie eineneigenen Kernel kompilieren, kann SUSE dafür keinen Support garantieren.

9.7 FehlerbehebungIn diesem Abschnitt werden einige der Probleme, die beim Booten mit GRUB auftretenkönnen, sowie deren Lösungen behandelt. Einige der Probleme werden in den Artikelnin der Support-Datenbank unter http://portal.suse.de/sdb/en/index.html beschrieben. Sollte Ihr spezifisches Problem nicht in dieser Liste enthalten sein,empfehlen wir, in der Suchmaske der Support-Datenbank unter https://portal.suse.com/PM/page/search.pm nach den Stichworten GRUB, Booten undBootloader zu suchen.

GRUB und XFSXFS lässt im Partitions-Bootblock keinen Platz für stage1. Sie dürfen also alsSpeicherort des Bootloaders keinesfalls eine XFS-Partition angeben. Um diesenProblem zu beheben, erstellen Sie eine separate Bootpartition, die nicht mit XFSformatiert ist.

230 Referenz

Page 231: Suse 10.1 Linux Reference De

GRUB und JFSObwohl technisch möglich, ist eine Kombination von GRUB mit JFS problematisch.Erstellen Sie in solchen Fällen eine separate Bootpartition (/boot) und formatierenSie sie mit Ext2. Installieren Sie anschließend GRUB auf dieser Partition.

GRUB meldet GRUB Geom ErrorGRUB überprüft die Geometrie der angeschlossenen Festplatten beim Booten desSystems. In seltenen Fällen macht das BIOS hier inkonsistente Angaben, sodassGRUB einen „GRUB Geom Error“ meldet. Verwenden Sie in solchen Fällen LILOoder aktualisieren Sie ggf. das BIOS. Detaillierte Informationen zur Installation,Konfiguration und Wartung von LILO finden Sie in der Support-Datenbank unterdem Stichwort LILO.

GRUB gibt diese Fehlermeldung auch in solchen Fällen aus, wenn Linux auf einerzusätzlichen Festplatte im System installiert wurde, diese aber nicht im BIOSregistriert wurde. Der erste Teil des Bootloadersstage1 wird korrekt gefunden undgeladen, aber die zweite Stufe stage2wird nicht gefunden. Dieses Problem könnenSie umgehen, indem Sie die neue Festplatte unverzüglich im BIOS registrieren.

System, das IDE- und SCSI-Festplatten enthält, bootet nichtMöglicherweise wurde die Bootsequenz der Festplatten während der Installationvon YaST falsch ermittelt. So nimmt GRUB beispielsweise /dev/hda als hd0und /dev/sda als hd1 an, wobei aber im BIOS die umgekehrte Reihenfolge(SCSI vor IDE) angegeben ist.

Korrigieren Sie in solchen Fällen mithilfe der GRUB-Befehlszeile beim Bootendie verwendeten Festplatten. Bearbeiten Sie im gebooteten System die Dateidevice.map, um die neue Zuordnung dauerhaft festzulegen. Anschließendüberprüfen Sie die GRUB-Gerätenamen in den Dateien/boot/grub/menu.lstund /boot/grub/device.map und installieren Sie den Bootloader mit demfolgenden Befehl neu:grub --batch < /etc/grub.conf

Windows von der zweiten Festplatte bootenEinige Betriebssysteme, z. B. Windows, können nur von der ersten Festplattegebootet werden. Wenn ein solches Betriebssystem auf einer anderen als der erstenFestplatte installiert ist, können Sie für den entsprechenden Menüeintrag einenlogischen Tausch veranlassen.

Der Bootloader 231

Page 232: Suse 10.1 Linux Reference De

...title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1...

In diesem Beispiel soll Windows von der zweiten Festplatte gestartet werden. Dazuwird die logische Reihenfolge der Festplatten mit map getauscht. Die Logikinnerhalb der GRUB-Menüdatei ändert sich dadurch jedoch nicht. Daher müssenSie bei chainloader nach wie vor die zweite Festplatte angeben.

9.8 Weitere InformationenUmfassende Informationen zu GRUB finden Sie auf der Webseite unter http://www.gnu.org/software/grub/. Ausführliche Informationen finden Sie auch aufder Infoseite für den Befehl grub. Um weitere Informationen zu bestimmten Themenzu erhalten, können Sie auch „GRUB“ als Suchwort in der Supportdatenbank unterhttp://portal.suse.de/sdb/en/index.html eingeben.

232 Referenz

Page 233: Suse 10.1 Linux Reference De

10Spezielle Funktionen von SUSELinuxIn diesem Kapitel erhalten Sie zunächst Informationen zu den verschiedenen Software-Paketen, zu den Virtuellen Konsolen und zur Tastaturbelegung. Hier finden Sie Hinweisezu Software-Komponenten, wie bash, cron und logrotate, da diese im Laufe derletzten Veröffentlichungszyklen geändert oder verbessert wurden. Selbst wenn sie nurklein sind oder als nicht besonders wichtig eingestuft werden, können die Benutzer ihrStandardverhalten ändern, da diese Komponenten häufig eng mit dem System verbundensind. Das Kapitel endet mit einem Abschnitt zu sprach- und landesspezifischen Einstel-lungen (I18N und L10N).

10.1 Informationen zu speziellenSoftware-Paketen

Die Programme bash, cron, logrotate, locate, ulimit und free sowie dieDatei resolv.conf spielen für Systemadministratoren und viele Benutzer einewichtige Rolle. Manualpages und info-Seiten sind hilfreiche Informationsquellen ZuBefehlen, sind jedoch nicht immer verfügbar. GNU Emacs ist ein beliebter konfigurier-barer Texteditor.

10.1.1 Das Paket bash und /etc/profileBash ist die Standard-Shell in SUSE Linux. Wenn sie als Anmelde-Shell verwendetwird, werden mehrere Initialisierungsdateien gelesen. Bash verarbeitet die entsprechen-den Informationen in der Reihenfolge dieser Liste.

Spezielle Funktionen von SUSE Linux 233

Page 234: Suse 10.1 Linux Reference De

1. /etc/profile

2. ~/.profile

3. /etc/bash.bashrc

4. ~/.bashrc

In ~/.profile oder in ~/.bashrc können benutzerdefinierte Einstellungen vor-genommen werden. Um die richtige Verarbeitung der Dateien zu gewährleisten, müssendie Grundeinstellungen aus /etc/skel/.profile oder /etc/skel/.bashrcin das Home-Verzeichnis des Benutzers kopiert werden. Es empfiehlt sich, die Einstel-lungen aus /etc/skel nach einer Aktualisierung zu kopieren. Führen Sie die folgen-den Shell-Befehle aus, um den Verlust persönlicher Einstellungen zu vermeiden:mv ~/.bashrc ~/.bashrc.oldcp /etc/skel/.bashrc ~/.bashrcmv ~/.profile ~/.profile.oldcp /etc/skel/.profile ~/.profile

Kopieren Sie anschließend die persönlichen Einstellungen erneut aus den*.old-Dateien.

10.1.2 Das cron-PaketWenn Sie Befehle regelmäßig und automatisch im Hintergrund zu bestimmten Zeitpunk-ten ausführen möchten, verwenden Sie in der Regel das Werkzeug cron. cron wirddurch speziell formatierte Zeittabellen gesteuert. Einige sind bereits im Lieferumfangdes Systems enthalten, bei Bedarf können Benutzer jedoch auch eigene Tabellenerstellen.

Die cron-Tabellen befinden sich im Verzeichnis/var/spool/cron/tabs./etc/crontab dient als systemübergreifende cron-Tabelle. Geben Sie den Benutzernamenzur Ausführung des Befehls unmittelbar nach der Zeittabelle und noch vor dem Befehlein. In Beispiel 10.1, „Eintrag in /etc/crontab“ (S. 234), wird root eingegeben. Diepaketspezifischen Tabellen in /etc/cron.d weisen alle dasselbe Format auf. Infor-mationen hierzu finden Sie auf der Manualpage zu cron (man cron).

Beispiel 10.1 Eintrag in /etc/crontab1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun

234 Referenz

Page 235: Suse 10.1 Linux Reference De

/etc/crontab kann nicht durch Aufrufen des Befehls crontab -e bearbeitetwerden. Die Datei muss direkt in einem Editor geladen, geändert und dann gespeichertwerden.

Einige Pakte installieren Shell-Skripts in die Verzeichnisse /etc/cron.hourly,/etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly, derenAusführung durch /usr/lib/cron/run-crons gesteuert wird. /usr/lib/cron/run-crons wird von der Haupttabelle (/etc/crontab) alle 15 Minutenausgeführt. Hiermit wird gewährleistet, dass vernachlässigte Prozesse zum richtigenZeitpunkt ausgeführt werden können.

Zum Ausführen der Skripts hourly, daily oder von anderen Skripts für regelmäßigeWartungsarbeiten zu benutzerdefinierten Zeitpunkten entfernen Sie regelmäßig dieVerwendung der Zeitstempeldateien mithilfe von /etc/crontab-Einträgen (sieheBeispiel 10.2, „/etc/crontab: Entfernen von Zeitstempeldateien“ (S. 235), wodurchhourly vor jeder vollen Stunde und daily einmal täglich um 2.14 Uhr entfernt wirdusw.).

Beispiel 10.2 /etc/crontab: Entfernen von Zeitstempeldateien59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly14 2 * * * root rm -f /var/spool/cron/lastrun/cron.daily29 2 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly44 2 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly

Die täglichen Systemwartungsaufträge wurden zum Zwecke der Übersichtlichkeit aufmehrere Skripts verteilt. Sie sind im Paketaaa_base enthalten./etc/cron.dailyenthält beispielsweise die Komponenten suse.de-backup-rpmdb, suse.de-clean-tmp oder suse.de-cron-local.

10.1.3 Protokolldateien: Paket logrotateMehrere Systemdienste (Daemons) zeichnen zusammen mit dem Kernel selbst regel-mäßig den Systemstatus und spezielle Ereignisse in Protokolldateien auf. Auf dieseWeise kann der Administrator den Status des Systems zu einem bestimmten Zeitpunktregelmäßig überprüfen, Fehler oder Fehlfunktionen erkennen und die Fehler mit Präzi-sion beheben. Die Protokolldateien werden in der Regel, wie von FHS angegeben, unter/var/log gespeichert und werden täglich umfangreicher. Mit dem Paketlogrotatekann der Umfang der Dateien gesteuert werden.

Spezielle Funktionen von SUSE Linux 235

Page 236: Suse 10.1 Linux Reference De

Konfigurieren Sie Logrotate mit der Datei /etc/logrotate.conf. Die Dateien,die zusätzlich gelesen werden sollen, werden insbesondere durch die include-Spezi-fikation konfiguriert. Mit SUSE Linux wird sichergestellt, dass Programme, die Proto-kolldateien erstellen, einzelne Konfigurationsdateien in /etc/logrotate.dinstallieren. Solche Programme sind beispielsweise im Lieferumfang der Paketeapache2 (/etc/logrotate.d/apache2) undsyslogd (/etc/logrotate.d/syslog) enthalten.

Beispiel 10.3 Beispiel für /etc/logrotate.conf# see "man logrotate" for details# rotate log files weeklyweekly

# keep 4 weeks worth of backlogsrotate 4

# create new (empty) log files after rotating old onescreate

# uncomment this if you want your log files compressed#compress

# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d

# no packages own lastlog or wtmp - we'll rotate them here#/var/log/wtmp {# monthly# create 0664 root utmp# rotate 1#}

# system-specific logs may be also be configured here.

logrotate wird über cron gesteuert und täglich durch /etc/cron.daily/logrotate aufgerufen.

WICHTIG

Mit der Option create werden alle vom Administrator in /etc/permissions* vorgenommenen Einstellungen gelesen. Stellen Sie sicher,dass durch persönliche Änderungen keine Konflikte auftreten.

236 Referenz

Page 237: Suse 10.1 Linux Reference De

10.1.4 Der Befehl „locate“Der Befehl „locate“ zum schnellen Suchen von Dateien ist nicht im Standardumfangder installierten Software enthalten. Wenn Sie möchten, installieren Sie das Paketfind-locate. Der Prozess updatedb wird jeden Abend etwa 15 Minuten nach demBooten des Systems gestartet.

10.1.5 Der Befehl „ulimit“Mit dem Befehl ulimit (user limits) können Grenzwerte für die Verwendung derSystemressourcen festgelegt und angezeigt werden. ulimit ist insbesondere für dieBegrenzung des für Anwendungen verfügbaren Speichers hilfreich. Hiermit kann ver-hindert werden, dass eine Anwendung zu viel Speicher belegt, wodurch es zu einemStillstand des Systems kommen kann.

ulimit kann mit verschiedenen Optionen verwendet werden. Verwenden Sie zumBegrenzen der Speicherauslastung die in Tabelle 10.1, „ulimit: Festlegen von Res-sourcen für Benutzer“ (S. 237) aufgeführten Optionen.

Tabelle 10.1 ulimit: Festlegen von Ressourcen für Benutzer

Maximale Größe des physischen Arbeitsspeichers-m

Maximale Größe des virtuellen Arbeitsspeichers-v

Maximale Größe des Stapels-s

Maximale Größe der Core-Dateien-c

Anzeigen der festgelegten Grenzwerte-a

In /etc/profile können Sie systemweite Einträge vornehmen. Aktivieren Sie hierdie Erstellung der Core-Dateien, die Programmierer für die Fehlersuche benötigen. Einnormaler Benutzer kann die in /etc/profile vom Systemadministrator festgelegtenWerte nicht erhöhen, er kann jedoch spezielle Einträge in ~/.bashrc vornehmen.

Spezielle Funktionen von SUSE Linux 237

Page 238: Suse 10.1 Linux Reference De

Beispiel 10.4 ulimit: Einstellungen in ~/.bashrc# Limits of physical memory:ulimit -m 98304

# Limits of virtual memory:ulimit -v 98304

Die Speicherangaben müssen in KB erfolgen. Weitere Informationen erhalten Sie mitman bash.

WICHTIG

ulimit-Anweisungen werden nicht von allen Shells unterstützt. PAM (beispiels-weise pam_limits) bietet umfassende Anpassungsmöglichkeiten, wenn SieEinstellungen für diese Beschränkungen vornehmen müssen.

10.1.6 Der Befehl „free“Der Befehl free ist leicht irreführend, wenn Sie herausfinden möchten, wie vielArbeitsspeicher zurzeit verwendet wird. Die entsprechenden Informationen finden Siein /proc/meminfo. Heute müssen sich Benutzer, die ein modernes Betriebssystemwie Linux verwenden, in der Regel kaum Gedanken über den Arbeitsspeicher machen.Das Konzept des verfügbaren Arbeitsspeichers geht auf Zeiten vor der einheitlichenSpeicherverwaltung zurück. Bei Linux gilt der Grundsatz freier Arbeitsspeicher istschlechter Arbeitsspeicher. Daher wurde bei Linux immer darauf geachtet, die Cachesauszugleichen, ohne freien oder nicht verwendeten Arbeitsspeicher zuzulassen.

Der Kernel verfügt nicht direkt über Anwendungs- oder Benutzerdaten. Stattdessenverwaltet er Anwendungen und Benutzerdaten in einem Seiten-Cache. Falls nicht mehrgenügend Arbeitsspeicher vorhanden ist, werden Teile auf der Swap-Partition oder inDateien gespeichert, von wo aus sie mithilfe des Befehls mmap abgerufen werdenkönnen. (siehe man mmap).

Der Kernel enthält zusätzlich andere Caches, wie beispielsweise den slab-Cache, indem die für den Netzwerkzugriff verwendeten Caches gespeichert werden. Hiermitkönnen die Unterschiede zwischen den Zählern in /proc/meminfo erklärt werden.Die meisten, jedoch nicht alle dieser Zähler können über/proc/slabinfo aufgerufenwerden.

238 Referenz

Page 239: Suse 10.1 Linux Reference De

10.1.7 Die Datei /etc/resolv.confDie Auflösung von Domänennamen erfolgt über die Datei /etc/resolv.conf.Informationen hierzu erhalten Sie in Kapitel 20, Das Domain Name System (DNS)(S. 399).

Diese Datei wird ausschließlich mit dem Skript /sbin/modify_resolvconfaktualisiert. Kein anderes Programm verfügt über direkte Änderungsberechtigungenfür /etc/resolv.conf. Das Erzwingen dieser Regel ist die einzige Möglichkeit,um die Konsistenz der Netzwerkkonfiguration und der relevanten Dateien des Systemszu gewährleisten.

10.1.8 Manualpages und Info-SeitenFür einige GNU-Anwendungen (wie beispielsweise tar) sind keine Manualpages mehrvorhanden. Verwenden Sie für diese Befehle die Option --help, um eine kurzeÜbersicht über die info-Seiten zu erhalten, in der Sie detailliertere Anweisungenerhalten. info befindet sich im Hypertextsystem von GNU. Eine Einführung in diesesSystem erhalten Sie durch Eingabe von info info. Info-Seiten können durch Eingabevon emacs -f info mit Emacs oder mit info direkt in einer Konsole angezeigtwerden. Sie können auch tkinfo, xinfo oder das Hilfesystem von SUSE zum Anzeigenvon info-Seiten verwenden.

10.1.9 Einstellungen für GNU EmacsGNU Emacs ist eine komplexe Arbeitsumgebung. In den folgenden Abschnitten werdendie beim Starten von GNU Emacs verarbeiteten Dateien beschrieben. Weitere Informa-tionen hierzu erhalten Sie online unterhttp://www.gnu.org/software/emacs/.

Beim Starten liest Emacs mehrere Dateien, in denen die Einstellungen für den Benutzer,den Systemadministrator und den Distributor zur Anpassung oder Vorkonfigurationenthalten sind. Die Initialisierungsdatei ~/.emacs ist in den Home-Verzeichnissender einzelnen Benutzer von /etc/skel installiert. .emacswiederum liest die Datei/etc/skel/.gnu-emacs. Zum Anpassen des Programms kopieren Sie.gnu-emacs in das Home-Verzeichnis (mit cp /etc/skel/.gnu-emacs~/.gnu-emacs) und nehmen Sie dort die gewünschten Einstellungen vor.

Spezielle Funktionen von SUSE Linux 239

Page 240: Suse 10.1 Linux Reference De

In .gnu-emacs wird die Datei ~/.gnu-emacs-custom als custom-filedefiniert. Wenn Benutzer in Emacs Einstellungen mit den customize-Optionenvornehmen, werden die Einstellungen in ~/.gnu-emacs-custom gespeichert.

Bei SUSE Linux wird mit dememacs-Paket die Dateisite-start.el im Verzeich-nis /usr/share/emacs/site-lisp installiert. Die Datei site-start.elwird vor der Initialisierungsdatei ~/.emacs geladen. Mit site-start.el wirdunter anderem sichergestellt, dass spezielle Konfigurationsdateien mit Emacs-Zusatz-paketen, wie psgml, automatisch geladen werden. Konfigurationsdateien dieses Typssind ebenfalls unter /usr/share/emacs/site-lisp gespeichert und beginnenimmer mit suse-start-. Der lokale Systemadministrator kann systemweite Einstel-lungen in default.el festlegen.

Weitere Informationen zu diesen Dateien finden Sie in der Info-Datei zu Emacs unterInit File: info:/emacs/InitFile. Informationen zum Deaktivieren des Ladensdieser Dateien (sofern erforderlich) stehen dort ebenfalls zur Verfügung.

Die Komponenten von Emacs sind in mehrere Pakete unterteilt:

• Das Basispaket emacs.

• emacs-x11 (in der Regel installiert): das Programm mit X11-Unterstützung.

• emacs-nox: das Programm ohne X11-Unterstützung.

• emacs-info: Onlinedokumentation im Info-Format.

• emacs-el: Die nicht kompilierten Bibliotheksdateien in Emacs Lisp. Sie sindwährend der Laufzeit nicht erforderlich.

• Falls erforderlich, können mehrere Zusatzpakete installiert werden:emacs-auctex (für LaTeX), psgml (für SGML und XML), gnuserv (für denClient- und Serverbetrieb) und andere.

10.2 Virtuelle KonsolenLinux ist ein Multitasking-System für den Mehrbenutzerbetrieb. Die Vorteile dieserFunktionen können auch auf einem eigenständigen PC-System genutzt werden. ImTextmodus stehen sechs virtuelle Konsolen zur Verfügung. Mit den Tasten Alt + F1

240 Referenz

Page 241: Suse 10.1 Linux Reference De

bis Alt + F6 können Sie zwischen diesen Konsolen umschalten. Die siebte Konsoleist für X und reserviert und in der zehnten Konsole werden Kernel-Meldungen angezeigt.Durch Ändern der Datei /etc/inittab können mehrere oder weniger Konsolenzugewiesen werden.

Wenn Sie von X ohne Herunterfahren zu einer anderen Konsole wechseln möchten,verwenden Sie die Tasten Strg + Alt + F1 bis Strg + Alt + F6 . Mit Alt +F7 kehren Sie zu X zurück.

10.3 TastaturzuordnungUm die Tastaturzuordnung der Programme zu standardisieren, wurden Änderungen anfolgenden Dateien vorgenommen:/etc/inputrc /usr/X11R6/lib/X11/Xmodmap /etc/skel/.Xmodmap /etc/skel/.exrc/etc/skel/.less /etc/skel/.lesskey /etc/csh.cshrc /etc/termcap/usr/lib/terminfo/x/xterm /usr/X11R6/lib/X11/app-defaults/XTerm/usr/share/emacs/<VERSION>/site-lisp/term/*.el

Diese Änderungen betreffen nur Anwendungen, die terminfo-Einträge verwendenoder deren Konfigurationsdateien direkt geändert werden (vi, less usw.). Anwendun-gen, die nicht im Lieferumfang von SUSE Linux enthalten sind, sollten an diese Stan-dards angepasst werden.

Unter X kann auf die Compose-Taste (Multikey) über Strg + Umschalt (rechts)zugegriffen werden. Siehe auch den entsprechenden Eintrag in /usr/X11R6/lib/X11/Xmodmap.

Weitere Einstellungen sind möglich mit der X-Tastaturerweiterung (XKB). DieseErweiterung wird auch von den Desktop-Umgebungen GNOME (gswitchit) und KDE(kxkb) verwendet.

Spezielle Funktionen von SUSE Linux 241

Page 242: Suse 10.1 Linux Reference De

TIPP: Weitere Informationen

Informationen zu XKB finden Sie in /etc/X11/xkb/README und den dortaufgeführten Dokumenten.

Detaillierte Informationen zur Eingabe von Chinese, Japanisch und Koreanisch(CJK) finden Sie auf der Seite von Mike Fabian: http://www.suse.de/~mfabian/suse-cjk/input.html.

10.4 Sprach- und länderspezifischeEinstellungen

SUSE Linux wurde zu einem großen Teil internationalisiert und kann flexibel anlokale Gegebenheiten angepasst werden. Anders ausgedrückt: Die Internationalisierung(I18N) ermöglicht spezielle Lokalisierungen (L10N). Die Abkürzungen I18N und L10Nwurden von den ersten und letzten Buchstaben der englischsprachigen Begriffe undder Anzahl der dazwischen stehenden ausgelassenen Wörter abgeleitet.

Die Einstellungen werden mit LC_-Variablen vorgenommen, die in der Datei /etc/sysconfig/language definiert sind. Dies bezieht sich nicht nur auf die nativeSprachunterstützung, sondern auch auf die KategorienMeldungen (Sprache) Zeichensatz,Sortierreihenfolge,Uhrzeit und Datum, Zahlen undWährung. Diese Kategorien könnendirekt über eine eigene Variable oder indirekt mit einer Master-Variable in der Dateilanguage festgelegt werden (weitere Informationen erhalten Sie auf der Manualpagezu locale).

RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME,RC_LC_NUMERIC, RC_LC_MONETARY

Diese Variablen werden ohne das Präfix RC_ an die Shell weitergegeben und stehenfür die aufgelisteten Kategorien. Die betreffenden Shell-Profile werden unten auf-geführt. Die aktuelle Einstellung lässt sich mit dem Befehl locale anzeigen.

RC_LC_ALLSofern diese Variable festgelegt ist, setzt Sie die Werte der bereits erwähntenVariablen außer Kraft.

242 Referenz

Page 243: Suse 10.1 Linux Reference De

RC_LANGFalls keine der zuvor genannten Variablen festgelegt ist, ist dies das Fallback.Standardmäßig ist in SUSE Linux nur RC_LANG festgelegt. Dadurch wird es fürdie Benutzer einfacher, eigene Werte einzugeben.

ROOT_USES_LANGEine Variable, die entweder den Wert yes oder den Wert no aufweist. Wenn dieVariable auf no gesetzt ist, funktioniert root immer in der POSIX-Umgebung.

Die Variablen können über den sysconfig-Editor von YaST (siehe Abschnitt 8.3.1,„Ändern der Systemkonfiguration mithilfe des YaST-Editors „sysconfig““ (S. 207))festgelegt werden. Der Wert einer solchen Variable enthält den Sprachcode, den Län-dercode, die Codierung und einen Modifier. Die einzelnen Komponenten werden durchSonderzeichen verbunden:LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]

10.4.1 BeispieleSprach- und Ländercode sollten immer gleichzeitig eingestellt werden. Die Sprachein-stellungen entsprechen der Norm ISO 639, die unterhttp://www.evertype.com/standards/iso639/iso639-en.html und http://www.loc.gov/standards/iso639-2/ verfügbar ist. Die in ISO 3166 aufgeführten Ländercodessind unter http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html verfügbar.

Es ist nur sinnvoll, Werte festzulegen, für die verwendbare Beschreibungsdateien unter/usr/lib/locale zu finden sind. Anhand der Dateien in /usr/share/i18nkönnen mit dem Befehl localedef zusätzliche Beschreibungsdateien erstellt werden.Die Beschreibungsdateien sind Bestandteil des Pakets glibc-i18ndata. EineBeschreibungsdatei für en_US.UTF-8 (für Englisch und USA) kann beispielsweisewie folgt erstellt werden:localedef -i en_US -f UTF-8 en_US.UTF-8

LANG=en_US.UTF-8Dies ist die Standardeinstellung, wenn während der Installation US-Englisch aus-gewählt wurde. Wenn Sie eine andere Sprache ausgewählt haben, wird dieseSprache ebenfalls mit der Zeichencodierung UTF-8 aktiviert.

Spezielle Funktionen von SUSE Linux 243

Page 244: Suse 10.1 Linux Reference De

LANG=en_US.ISO-8859-1Hiermit wird als Sprache Englisch, als Land die USA und als ZeichensatzISO-8859-1 festgelegt. In diesem Zeichensatz wird das Eurozeichen nichtunterstützt, es kann jedoch gelegentlich in Programmen nützlich sein, die nicht fürdie UTF-8-Unterstützung aktualisiert wurden. Die Zeichenkette, mit der der Zei-chensatz definiert wird (in diesem Fall ISO-8859-1), wird anschließend vonProgrammen, wie Emacs, ausgewertet.

LANG=en_IE@euroIm oben genannten Beispiel wird das Eurozeichen explizit in die Spracheinstellungaufgenommen. Streng genommen ist diese Einstellung mittlerweile veraltet, da dasEurozeichen jetzt ebenfalls in UTF-8 enthalten ist. Diese Einstellung ist nur sinnvoll,wenn eine Anwendung UTF-8 nicht unterstützt, ISO-8859-15 jedoch unterstützt.

SuSEconfig liest die Variablen in /etc/sysconfig/language und speichert dieerforderlichen Änderungen in /etc/SuSEconfig/profile und /etc/SuSEconfig/csh.cshrc./etc/SuSEconfig/profilevon/etc/profilegelesen oder als Quelle verwendet. /etc/SuSEconfig/csh.cshrc wird von/etc/csh.cshrc als Quelle verwendet. Auf diese Weise werden die Einstellungensystemweit verfügbar.

Die Benutzer können die Standardeinstellungen des Systems außer Kraft setzen, indemSie die Datei ~/.bashrc entsprechend bearbeiten. Wenn Sie die systemübergreifendeEinstellung en_US für Programmmeldungen beispielsweise nicht verwenden möchten,nehmen Sie beispielsweise LC_MESSAGES=es_ES auf, damit die Meldungen statt-dessen auf Spanisch angezeigt werden.

10.4.2 Locale-Einstellungen in ~/.i18n

Wenn Sie nicht mit den Systemeinstellungen für Locale zufrieden sind, ändern Sie dieEinstellungen in ~/.i18n. Die Einträge in ~/.i18n setzen die Systemstandardwerteaus/etc/sysconfig/language außer Kraft. Verwenden Sie dieselben Variablen-namen, jedoch ohne die RC_-Präfixe für den Namespace, also beispielsweise LANGanstatt RC_LANG.

244 Referenz

Page 245: Suse 10.1 Linux Reference De

10.4.3 Einstellungen für dieSprachunterstützung

Die Dateien in der Kategorie Meldungen werden generell im entsprechenden Sprach-verzeichnis (wie beispielsweise en) gespeichert, damit ein Fallback vorhanden ist.Wenn Sie für LANG den Wert en_US festlegen und in /usr/share/locale/en_US/LC_MESSAGES keine Meldungsdatei vorhanden ist, wird ein Fallback auf/usr/share/locale/en/LC_MESSAGES ausgeführt.

Darüber hinaus kann eine Fallback-Kette definiert werden, beispielsweise für Bretonischzu Französisch oder für Galizisch zu Spanisch oder Portugiesisch:

LANGUAGE="br_FR:fr_FR"

LANGUAGE="gl_ES:es_ES:pt_PT"

Wenn Sie möchten, können Sie die norwegischen Varianten Nynorsk und Bokmål (mitzusätzlichem Fallback auf no) verwenden:

LANG="nn_NO"

LANGUAGE="nn_NO:nb_NO:no"

Oder:

LANG="nb_NO"

LANGUAGE="nb_NO:nn_NO:no"

Beachten Sie, das bei Norwegisch auch LC_TIME anders behandelt wird.

Ein mögliches Problem ist, dass ein Trennzeichen, das zum Trennen von Zifferngruppenverwendet wird, nicht richtig erkannt wird. Dies tritt auf, wenn LANG auf einen auszwei Buchstaben bestehenden Sprachcode wie de, gesetzt ist, in der Definitionsdatei,die glibc verwendet, jedoch in/usr/share/lib/de_DE/LC_NUMERIC gespeichertist. Daher muss LC_NUMERIC auf de_DE gesetzt sein, damit das System die Trenn-zeichendefinition erkennen kann.

Spezielle Funktionen von SUSE Linux 245

Page 246: Suse 10.1 Linux Reference De

10.4.4 Weitere Informationen• The GNUC Library ReferenceManual, Kapitel „Locales and Internationalization“.

Dieses Handbuch ist in glibc-info enthalten.

• Markus Kuhn,UTF-8 and Unicode FAQ for Unix/Linux, momentan verfügbar unterhttp://www.cl.cam.ac.uk/~mgk25/unicode.html.

• Unicode-Howto von Bruno Haible: /usr/share/doc/howto/en/html/Unicode-HOWTO.html.

246 Referenz

Page 247: Suse 10.1 Linux Reference De

11DruckerbetriebCUPS ist das Standard-Drucksystem in SUSE Linux. CUPS ist stark benutzerorientiert.In vielen Fällen ist es kompatibel mit LPRng oder kann mit relativ geringem Aufwandangepasst werden. LPRng ist im Lieferumfang von SUSE Linux lediglich aus Kompa-tibilitätsgründen enthalten.

Drucker können nach Schnittstelle, z. B. USB oder Netzwerk, und nach Druckerspracheunterschieden werden. Stellen Sie beim Kauf eines Druckers sicher, dass dieser übereine von der Hardware unterstützte Schnittstelle und über eine geeignete Druckerspracheverfügt. Drucker können basierend auf den folgenden drei Klassen von Druckersprachenkategorisiert werden:

PostScript-DruckerPostScript ist die Druckersprache, in der die meisten Druckaufträge unter Linuxund Unix vom internen Drucksystem generiert und verarbeitet werden. DieseSprache ist bereits sehr alt und sehr effizient. Wenn PostScript-Dokumente direktvom Drucker verarbeitet und im Drucksystem nicht in weiteren Phasen konvertiertwerden müssen, reduziert sich die Anzahl der möglichen Fehlerquellen. Da Post-Script-Drucker immer mit erheblichen Lizenzkosten verbunden sind, sind dieseDrucker in der Regel teurer als Drucker ohne PostScript-Interpreter.

Standarddrucker (Sprachen wie PCL und ESC/P)Obwohl diese Druckersprachen ziemlich alt sind, werden sie immer weiter entwi-ckelt, um neue Druckerfunktionen unterstützen zu können. Bei den bekanntenDruckersprachen kann das Drucksystem PostScript-Druckaufträge mithilfe vonGhostscript in die entsprechende Druckersprache konvertieren. Diese Verarbeitungs-phase wird als „Interpretieren“ bezeichnet. Die gängigsten Sprachen sind PCL, dieam häufigsten auf HP-Druckern und ihren Klonen zum Einsatz kommt, und ESC/P,

Druckerbetrieb 247

Page 248: Suse 10.1 Linux Reference De

die bei Epson-Druckern verwendet wird. Diese Druckersprachen werden in derRegel von Linux unterstützt und liefern ein annehmbares Druckergebnis. Es kannsein, dass Linux einige neue Drucker mit sehr ausgefallenen Funktionen nichtunterstützt, da die Open-Source-Entwickler möglicherweise an diesen Funktionennoch arbeiten. Mit Ausnahme der von HP entwickelten hpijs-Treiber gibt esderzeit keinen Druckerhersteller, der Linux-Treiber entwickelt und diese Linux-Distributoren unter einer Open-Source-Lizenz zur Verfügung stellt. Die meistendieser Drucker finden sich im mittleren Preisbereich.

Proprietäre Drucker (in der Regel GDI-Drucker)Für proprietäre Drucker sind in der Regel nur ein oder mehrere Windows-Treiberverfügbar. Diese Drucker unterstützen die gängigen Druckersprachen nicht unddie von ihnen verwendeten Druckersprachen unterliegen Änderungen, wenn neueVersionen eines Modells auf den Markt gebracht werden. Weitere Informationenhierzu finden Sie in Abschnitt 11.7.1, „Drucker ohne Unterstützung für eine Stan-dard-Druckersprache“ (S. 264).

Vor dem Kauf eines neuen Druckers sollten Sie anhand der folgenden Quellen prüfen,wie gut der Drucker, den Sie zu kaufen beabsichtigen, unterstützt wird:

• http://cdb.suse.de/ - die SUSE Linux Hardwaredatenbank

• http://www.linuxprinting.org/ - die LinuxPrinting.org-Druckerdaten-bank

• http://www.cs.wisc.edu/~ghost/ - die Ghostscript-Webseite

• /usr/share/doc/packages/ghostscript/catalog.devices -Liste der enthaltenen Treiber

In den Online-Datenbanken wird immer der neueste Linux-Supportstatus angezeigt.Eine Linux-Distribution kann jedoch immer nur die zur Produktionszeit verfügbarenTreiber enthalten. Demnach ist es möglich, dass ein Drucker, der aktuell als „vollständigunterstützt“ eingestuft wird, diesen Status bei der Veröffentlichung der neuesten SUSELinux-Version nicht aufgewiesen hat. Die Datenbank gibt daher nicht notwendigerweiseden richtigen Status, sondern nur eine Annäherung an diesen an.

248 Referenz

Page 249: Suse 10.1 Linux Reference De

11.1 Workflow des DrucksystemsDer Benutzer erstellt einen Druckauftrag. Der Druckauftrag besteht aus den zu drucken-den Daten sowie aus Informationen für den Spooler, z. B. dem Namen des Druckersoder dem Namen der Druckwarteschlange und, optional, den Informationen für denFilter, z. B. druckersprezifische Optionen.

Für jeden Drucker ist eine dedizierte Druckwarteschlange verfügbar. Der Spooler hältden Druckauftrag in der Warteschlange, bis der gewünschte Drucker bereit ist, Datenzu empfangen. Wenn der Drucker druckbereit ist, sendet der Spooler die Daten überden Filter und das Backend an den Drucker.

Der Filter konvertiert die zu druckenden Daten (ASCII, PostScript, PDF, JPEG usw.)in die druckerspezifischen Daten (PostScript, PCL, ESC/P usw.). Die Funktionen desDruckers sind in den PPD-Dateien beschrieben. Eine PPD-Datei enthält druckspezifischeOptionen mit den Parametern, die erforderlich sind, um die Optionen auf dem Druckerzu aktivieren. Das Filtersystem stellt sicher, dass die vom Benutzer ausgewähltenOptionen aktiviert werden.

Wenn Sie einen PostScript-Drucker verwenden, konvertiert das Filtersystem die Datenin druckerspezifische PostScript-Daten. Hierzu ist kein Druckertreiber erforderlich.Wenn Sie einen Nicht-PostScript-Drucker verwenden, konvertiert das Filtersystem dieDaten mithilfe von Ghostscript in druckerspezifische Daten. Hierzu ist ein für denDrucker geeigneter Ghostscript-Druckertreiber erforderlich. Das Backend empfängtdie druckerspezifischen Daten vom Filter und leitet diese an den Drucker weiter.

11.2 Methoden und Protokolle zumAnschließen von Druckern

Es gibt mehrere Möglichkeiten, einen Drucker an das System anzuschließen. DieKonfiguration des CUPS-Drucksystems unterscheidet nicht zwischen einem lokalenDrucker und einem Drucker, der über das Netzwerk an das System angeschlossen ist.Unter Linux müssen lokale Drucker wie im Handbuch des Druckerherstellersbeschrieben angeschlossen werden. CUPS unterstützt serielle, USB-, Parallel- undSCSI-Verbindungen. Weitere Informationen zum Anschließen von Druckern findenSie im BeitragCUPS in aller Kürze in der Support-Datenbank unter http://portal.suse.com. Sie finden den Beitrag, indem Sie Cups in das Suchdialogfeld eingeben.

Druckerbetrieb 249

Page 250: Suse 10.1 Linux Reference De

WARNUNG: Kabelverbindung zum Computer

Vergessen Sie beim Anschließen des Druckers an den Computer nicht, dasswährend des Betriebs nur USB-Geräte angeschlossen werden können. Vor demAnschließen anderer Verbindungstypen muss das System heruntergefahrenwerden.

11.3 Installieren der SoftwarePPD (PostScript Printer Description, PostScript-Druckerbeschreibung) ist die Compu-tersprache, die die Eigenschaften, z. B. die Auflösung und Optionen wie die Verfügbar-keit einer Duplexeinheit, beschreibt. Diese Beschreibungen sind für die Verwendungder unterschiedlichen Druckeroptionen in CUPS erforderlich. Ohne eine PPD-Dateiwürden die Druckdaten in einem „rohen“ Zustand an den Drucker weitergeleitet werden,was in der Regel nicht erwünscht ist. Während der Installation von SUSE Linux werdenviele PPD-Dateien vorinstalliert, um den Einsatz von Druckern ohne PostScript-Unterstützung zu ermöglichen.

Um einen PostScript-Drucker zu konfigurieren, sollten Sie sich zunächst eine geeignetePPD-Datei beschaffen. Viele PPD-Dateien sind im Paket manufacturer-PPDsenthalten, das im Rahmen der Standardinstallation automatisch installiert wird. SieheAbschnitt 11.6.3, „PPD-Dateien in unterschiedlichen Paketen“ (S. 261) undAbschnitt 11.7.2, „Für einen PostScript-Drucker ist keine geeignete PPD-Datei verfüg-bar“ (S. 265).

Neue PPD-Dateien können im Verzeichnis/usr/share/cups/model/ gespeichertoder dem Drucksystem mithilfe von YaST hinzugefügt werden (siehe „ManuelleKonfiguration“ (S. 252)). Die PPD-Dateien lassen sich anschließend während derInstallation auswählen.

Seien Sie vorsichtig, wenn ein Druckerhersteller verlangt, dass Sie zusätzlich zumÄndern der Konfigurationsdateien vollständige Softwarepakte installieren sollen. DieseArt der Installation würde erstens dazu führen, dass Sie die Unterstützung von SUSELinux verlieren, und zweitens können Druckbefehle anders funktionieren und dasSystem ist möglicherweise nicht mehr in der Lage, Geräte anderer Hersteller anzuspre-chen. Aus diesem Grund wird das Installieren von Herstellersoftware nicht empfohlen.

250 Referenz

Page 251: Suse 10.1 Linux Reference De

11.4 Konfigurieren des DruckersWenn Sie den Drucker an den Computer angeschlossen und die Software installierthaben, installieren Sie den Drucker im System. Dies sollte mit den von SUSE Linuxzur Verfügung gestellten Werkzeugen ausgeführt werden. Da SUSE Linux großen Wertauf Sicherheit legt, haben Fremdhersteller-Werkzeuge häufig Schwierigkeiten mit denSicherheitseinschränkungen und verursachen mehr Komplikationen als sie Vorteilebieten. Informationen zur Fehlerbehebung finden Sie in Abschnitt 11.6.1, „CUPS-Serverund Firewall“ (S. 258) und Abschnitt 11.6.2, „Änderungen am CUPS-Druckdienst“(S. 259).

11.4.1 Lokale DruckerWenn Sie sich anmelden und ein nicht konfigurierter Drucker erkannt wird, beginntYaST mit dessen Konfiguration. Hierbei werden dieselben Dialogfelder wie in derfolgenden Konfigurationsbeschreibung verwendet.

Um den Drucker zu konfigurieren, wählen Sie im YaST-Kontrollzentrum Hardware→ Drucker. Dadurch wird das Hauptfenster für die Druckerkonfiguration geöffnet, indem im oberen Teil die erkannten Geräte aufgelistet sind. Im unteren Teil werden allebislang konfigurierten Warteschlangen aufgelistet. Wenn Ihr Drucker nicht erkanntwurde, müssen Sie ihn manuell konfigurieren.

WICHTIG

Wenn der Eintrag Drucker im YaST-Kontrollzentrum nicht verfügbar ist, ist dasPaket yast2-printer wahrscheinlich nicht installiert. Um dieses Problem zubeheben, installieren Sie das Paket yast2-printer und starten Sie YaST neu.

Automatische KonfigurationYaST kann den Drucker automatisch konfigurieren, wenn der Parallel- oder USB-Anschluss automatisch eingerichtet werden kann und der angeschlossene Druckererkannt wird. Die Druckerdatenbank muss zudem die ID-Zeichenkette des Druckersenthalten, den YaST während der automatischen Hardware-Erkennung ermittelt. Wennsich die Hardware-ID von der Modellbezeichnung unterscheidet, wählen Sie das Modellmanuell aus.

Druckerbetrieb 251

Page 252: Suse 10.1 Linux Reference De

Um sicherzustellen, dass alles ordnungsgemäß funktioniert, sollte jede Konfigurationmit der YaST-Funktion zum Drucken einer Testseite geprüft werden. Die Testseitebietet zudem wichtige Informationen zur getesteten Konfiguration.

Manuelle KonfigurationWenn die Anforderungen für eine automatische Konfiguration nicht erfüllt sind oderSie eine benutzerdefinierte Konfiguration vorziehen, müssen Sie den Drucker manuellkonfigurieren. Je nachdem, wie erfolgreich die automatische Erkennung ist und wieviele Informationen zum Druckermodell in der Datenbank gefunden werden, kannYaST die richtigen Einstellungen automatisch erkennen oder mindestens eine angemes-sene Vorauswahl treffen.

Die folgenden Parameter müssen konfiguriert werden:

Hardwareverbindung (Anschluss)Die Konfiguration des Hardware-Anschlusses ist davon abhängig, ob YaST währendder automatischen Hardware-Erkennung den Drucker finden konnte. Wenn YaSTdas Druckermodell automatisch erkennen kann, ist davon auszugehen, dass derDrucker auf Hardware-Ebene funktioniert und in dieser Hinsicht keine Einstellungengeändert werden müssen. Wenn YaST das Druckermodell nicht automatischerkennen kann, liegt auf Hardware-Ebene möglicherweise ein Problem mit derVerbindung vor. In diesem Fall muss die Verbindung manuell konfiguriert werden.

Klicken Sie im DialogfeldDruckerkonfiguration aufHinzufügen, um die manuelleKonfiguration zu starten. Wählen Sie den Druckertyp (z. B. Drucker amUSB-Anschluss). Klicken Sie aufWeiter, um das DialogfeldDruckeranschlusszu öffnen, und wählen Sie das gewünschte Gerät aus.

Name der WarteschlangeDer Name der Warteschlange wird bei der Eingabe von Druckbefehlen verwendet.Der Name sollte relativ kurz sein und nur Kleinbuchstaben und Zahlen enthalten.Geben Sie denName für denDruck im nächsten Dialogfeld (Name derWarteschlan-ge) ein.

Druckermodell und PPD-DateiSämtliche druckerspezifischen Parameter, z. B. der zu verwendende Ghostscript-Treiber sowie die Druckerfilter-Parameter für den Treiber, sind in einer PPD-Dateigespeichert. Weitere Informationen zu PPD-Dateien finden Sie in Abschnitt 11.3,„Installieren der Software“ (S. 250).

252 Referenz

Page 253: Suse 10.1 Linux Reference De

Für viele Druckermodelle sind mehrere PPD-Dateien verfügbar, beispielsweise,wenn mehrere Ghostscript-Treiber mit dem entsprechenden Modell funktionieren.Wenn Sie im nächsten Dialogfeld (Druckermodell) einen Hersteller und ein Modellauswählen, wählt YaST die entsprechende PPD-Datei für den Drucker aus. Wennfür das Modell mehrere PPD-Dateien verfügbar sind, wählt YaST standardmäßigeine dieser Dateien aus (normalerweise die als empfohlen markierte Datei). Siekönnen die ausgewählte PPD-Datei im nächsten Dialogfeld mit der Option Bear-beiten ändern.

Für Nicht-PostScript-Modelle werden alle druckerspezifischen Daten vom Ghost-script-Treiber generiert. Aus diesem Grund ist die Treiberkonfiguration der wich-tigste Faktor beim Festlegen der Ausgabequalität. Die Qualität des Ausdrucks istsowohl vom Typ des ausgewählten Ghostscript-Treibers (PPD-Datei) als auch vonden für diesen angegebenen Optionen abhängig. Falls erforderlich, können Sieweitere (durch die PPD-Datei zur Verfügung gestellte) Optionen nach Auswahlvon Bearbeiten ändern.

Abbildung 11.1 Auswählen des Druckermodells

Sie sollten die vorgenommenen Einstellungen immer prüfen, indem Sie die Test-seite drucken. Wenn die Ausgabe nicht akzeptabel ist und beispielsweise mehrereSeiten fast leer sind, sollten Sie zunächst den Drucker anhalten, indem Sie dasgesamte Papier entfernen und anschließend den Test über YaST stoppen.

Druckerbetrieb 253

Page 254: Suse 10.1 Linux Reference De

Wenn die Druckerdatenbank keinen Eintrag für Ihr Modell enthält, können Sieentweder eine neue PPD-Datei hinzufügen, indem Sie PPD-Datei zur Datenbankhinzufügen wählen oder eine Sammlung generischer PPD-Dateien verwenden,damit der Drucker mit einer der Standard-Druckersprachen druckt. Wählen Siehierzu UNKNOWN MANUFACTURER als Druckerhersteller.

Erweiterte EinstellungenDie hier angegebenen Einstellungen müssen in der Regel nicht geändert werden.

11.4.2 NetzwerkdruckerEin Netzwerkdrucker kann unterschiedliche Protokolle - einige von diesen sogargleichzeitig. Obwohl die meisten der unterstützten Protokolle standardisiert sind,erweitern (ändern) einige Hersteller den Standard, weil sie Systeme testen, die in denStandard noch nicht ordnungsgemäß implementiert wurden, oder weil sie bestimmteFunktionen zur Verfügung stellen möchten, die im Standard nicht enthalten sind. Her-steller stellen in diesem Fall nur für wenige Betriebssysteme Treiber zur Verfügungund eliminieren so die Schwierigkeiten mit diesen Systemen. Linux-Treiber werdenleider nur sehr selten zur Verfügung gestellt. Gegenwärtig können Sie nicht davonausgehen, dass alle Protokolle problemlos mit Linux funktionieren. Um dennoch einefunktionale Konfiguration zu erhalten, müssen Sie daher möglicherweise mit den ver-schiedenen Optionen experimentieren.

CUPS unterstützt die Protokolle socket, LPD, IPP und smb. Im Folgenden findenSie einige ausführlichere Informationen zu diesen Protokollen:

socketSocket bezieht sich auf eine Verbindung, in der die Daten an ein Internet-Socketgesendet werden, ohne dass zuvor ein Data-Handshake erfolgt. Einige der amhäufigsten verwendeten Socket-Ports sind 9100 oder 35. Ein Beispiel für einenGeräte-URI ist socket://host-printer:9100/.

LPD (Line Printer Daemon)Das bewährte LPD-Protokoll wird in RFC 1179 beschrieben. Mit diesem Protokollwerden einige druckauftragsbezogene Daten, z. B. die ID der Druckwarteschlange,vor den eigentlichen Druckdaten gesendet. Daher muss die Druckwarteschlangebeim Konfigurieren des LPD-Protokolls für die Datenübertragung angegebenwerden. Die Implementierungen diverser Druckerhersteller sind flexibel genug,um beliebige Namen als Druckwarteschlange zu akzeptieren. Der zu verwendende

254 Referenz

Page 255: Suse 10.1 Linux Reference De

Name müsste ggf. im Druckerhandbuch angegeben sein. Es werden häufigBezeichnungen wie LPT, LPT1, LP1 o. ä. verwendet. Eine LPD-Warteschlangekann auch auf einem anderen Linux- oder Unix-Host im CUPS-System konfiguriertwerden. Die Portnummer für einen LPD-Dienst lautet 515. Ein Beispiel für einenGerät-URI ist lpd://host-printer/LPT1.

IPP (Internet Printing Protocol)IPP ist ein relativ neues Protokoll (1999), das auf dem HTTP-Protokoll basiert.Mit IPP können mehr druckauftragsbezogene Daten übertragen werden als mit denanderen Protokollen. CUPS verwendet IPP für die interne Datenübertragung. Diesist das bevorzugte Protokoll für eine Weiterleitungswarteschlange zwischen zweiCUPS-Servern. Um IPP ordnungsgemäß konfigurieren zu können, ist der Nameder Druckwarteschlange erforderlich. Die Portnummer für IPP lautet631. Beispielefür Geräte-URIs sind ipp://host-printer/ps undipp://host-cupsserver/printers/ps.

SMB (Windows-Freigabe)CUPS unterstützt auch das Drucken auf freigegebenen Druckern unter Windows.Das für diesen Zweck verwendete Protokoll ist SMB. SMB verwendet die Portnum-mern 137, 138 und 139. Beispiele für Geräte-URIs sindsmb://Benutzer:Passwort@Arbeitsgruppe/Server/Drucker,smb://Benutzer:Passwort@Host/Drucker undsmb://Server/Drucker.

Das vom Drucker unterstützte Protokoll muss vor der Konfiguration ermittelt werden.Wenn der Hersteller die erforderlichen Informationen nicht zur Verfügung stellt, könnenSie das Protokoll mit dem Befehl nmap ermitteln, der Bestandteil des Pakets nmap ist.nmap überprüft einen Host auf offene Ports. Beispiel:nmap -p 35,137-139,515,631,9100-10000 printerIP

Konfigurieren von CUPS im Netzwerk unterVerwendung von YaSTNetzwerkdrucker sollten mit YaST konfiguriert werden. YaST vereinfacht die Konfi-guration und ist bestens ausgestattet, um die Sicherheitseinschränkungen in CUPShandzuhaben (siehe Abschnitt 11.6.2, „Änderungen am CUPS-Druckdienst“ (S. 259)).Weitere Informationen und Richtlinien zur Installation von CUPS im Netzwerk findenSie im BeitragCUPS in aller Kürze in der Support-Datenbank unter http://portal.suse.com.

Druckerbetrieb 255

Page 256: Suse 10.1 Linux Reference De

Starten Sie die Druckerkonfiguration und klicken Sie auf Hinzufügen. Falls Sie keineanderen Anweisungen von Ihrem Netzwerkadminstrator erhalten haben, probieren Siedie Option Direkt auf Netzwerkdrucker drucken aus und fahren Sie gemäß den lokalenAnforderungen fort.

Konfigurieren mit BefehlszeilenoptionenCUPS kann alternativ auch mit Befehlszeilenoptionen wie lpadmin und lpoptionskonfiguriert werden. Sie benötigen einen Geräte-URI (Uniform Resource Identifier),der aus einem Backend, z. B. usb, und Parametern wie /dev/usb/lp0 besteht. Dervollständige URI könnte beispielsweise wie folgt lauten: parallel:/dev/lp0 (anden ersten Parallelanschluss angeschlossener Drucker) oder usb:/dev/usb/lp0(erster erkannter Drucker, der an den USB-Anschluss angeschlossen ist).

Mit lpadmin kann der CUPS-Serveradministrator Klassen und Druckwarteschlangenhinzufügen, entfernen und verwalten. Fügen Sie eine Druckwarteschlange unter Ver-wendung der folgenden Syntax hinzu:lpadmin -p queue -v device-URI \-P PPD-file -E

Das Gerät (-v) ist anschließend als Warteschlange (-p) verfügbar und verwendetdie angegebene PPD-Datei (-P). Das bedeutet, dass Sie die PPD-Datei und den Namendes Geräts kennen müssen, wenn Sie den Drucker manuell konfigurieren möchten.

Verwenden Sie nicht -E als erste Option. Für alle CUPS-Befehle legt die Option -Eals erstes Argument die Verwendung einer verschlüsselten Verbindung fest. Zur Akti-vierung des Druckers muss die Option -E wie im folgenden Beispiel dargestellt ver-wendet werden:lpadmin -p ps -v parallel:/dev/lp0 -P \/usr/share/cups/model/Postscript.ppd.gz -E

Im folgenden Beispiel wird ein Netzwerkdrucker konfiguriert:lpadmin -p ps -v socket://192.168.1.0:9100/ -P \/usr/share/cups/model/Postscript-level1.ppd.gz -E

Weitere Informationen hierzu sowie weitere Optionen für lpadmin finden Sie auf derManualpage für den Befehl lpadmin(1).

Während der Druckerkonfiguration werden bestimmte Optionen standardmäßig gesetzt.Diese Optionen können (je nach verwendetem Druckwerkzeug) für jeden Druckauftrag

256 Referenz

Page 257: Suse 10.1 Linux Reference De

geändert werden. Es ist auch möglich, diese Standardoptionen mit YaST zu ändern.Legen Sie die Standardoptionen mithilfe der Befehlszeilenwerkzeuge wie folgt fest:

1 Zeigen Sie zunächst alle Optionen an:lpoptions -p queue -l

Beispiel:Resolution/Output Resolution: 150dpi *300dpi 600dpi

Die aktivierte Standardoption wird durch das vorangehende Sternchen (*)gekennzeichnet.

2 Ändern Sie die Option mit lpadmin:lpadmin -p queue -o Resolution=600dpi

3 Prüfen Sie die neue Einstellung:lpoptions -p queue -l

Resolution/Output Resolution: 150dpi 300dpi *600dpi

Wenn ein normaler Benutzer den Befehl lpoptions ausführt, werden die Einstellun-gen in ~/.lpoptions geschrieben. root-Einstellungen werden in /etc/cups/lpoptions geschrieben.

11.5 Konfiguration für AnwendungenAnwendungen verwenden die vorhandenen Druckwarteschlangen auf dieselbe Weisewie Befehlszeilenwerkzeuge. Es ist nicht erforderlich, den Drucker für eine bestimmteAnwendung neu zu konfigurieren, da Sie unter Verwendung der verfügbaren Warte-schlangen aus der Anwendung heraus drucken können sollten.

Um den Druckvorgang über die Befehlszeile zu starten, geben Sie lp -d Name_derWarteschlange Dateiname ein und ersetzen die entsprechenden Namen fürName_der_Warteschlange und Dateiname.

Einige Anwendungen erfordern für den Druckvorgang den Befehl lp. Geben Sie indiesem Fall den richtigen Befehl in das Druckdialogfeld der Anwendung ohne Angabedes Dateinamens ein, z. B. lp -d Name_der_Warteschlange. Damit dies

Druckerbetrieb 257

Page 258: Suse 10.1 Linux Reference De

in KDE-Programmen funktioniert, aktivieren Sie die Option Über externes Programmdrucken. Andernfalls können Sie den Druckbefehl nicht eingeben.

Werkzeuge wie xpp und das KDE-Programm kprinter bieten eine grafische Oberflächefür die Auswahl der Warteschlangen und zum Festlegen der CUPS-Standardoptionenund druckerspezifischen Optionen, die über die PPD-Datei zur Verfügung gestelltwerden. Sie können kprinter als Standardschnittstelle zum Drucken von Nicht-KDE-Anwendungen verwenden, indem Sie kprinter oder kprinter --stdin alsDruckbefehl in den Druckdiaolgfeldern dieser Anwendungen angeben. Welcher derbeiden Befehle gewählt wird, wird vom Verhalten der Anwendung selbst festgelegt.Wenn die Anwendung ordnungsgemäß koniguriert ist, sollte sie bei jeder Ausgabe einesDruckauftrags das Dialogfeld „kprinter“ öffnen, in dem Sie in diesem Dialogfeld eineWarteschlange wählen und andere Druckoptionen festlegen können. Dies erfordert,dass zwischen den anwendungsspezifischen Druckereinstellungen und denen vonkprinter keine Konflikte auftreten und dass die Druckoptionen nur über kprinter geändertwerden, nachdem es aktiviert wurde.

11.6 Sonderfunktionen in SUSE LinuxFür SUSE Linux wurden mehrere CUPS-Funktionen angepasst. Im Folgenden werdeneinige der wichtigsten Änderungen beschrieben.

11.6.1 CUPS-Server und FirewallEs gibt mehrere Möglichkeiten, CUPS als Client eines Netzwerkservers zu konfigurieren.

1. Sie können für jede Warteschlange auf dem Netzwerkserver eine lokale Warte-schlange konfigurieren, über die alle Druckaufträge an den entsprechendenNetzwerkserver weitergeleitet werden (diese Warteschlange bezeichnet manauch als Weiterleitungswarteschlange). Dieser Ansatz wird in der Regel jedochnicht empfohlen, da alle Client-Computer neu konfiguriert werden müssen, wennsich die Konfiguration des Netzwerkservers ändert.

2. Druckaufträge können auch direkt an einen Netzwerkserver weitergeleitet werden.Für diesen Konfigurationstyp wird kein lokaler CUPS-Daemon ausgeführt. lpoder entsprechende Bibilotheksaufrufe anderer Programme können die Druck-

258 Referenz

Page 259: Suse 10.1 Linux Reference De

aufträge direkt an den Netzwerkserver senden. Diese Konfiguration funktioniertjedoch nicht, wenn Sie gleichzeitig auf einem lokalen Drucker drucken möchten.

3. Der CUPS-Daemon kann auf IPP-Broadcast-Pakete lauschen, die andere Netz-werkserver senden, um die verfügbaren Warteschlangen bekannt zu geben.

Dies ist die beste CUPS-Konfiguration für das Drucken über entfernte CUPS-Server. Es besteht jedoch das Risiko, dass ein Angreifer IPP-Broadcast-Paketemit Warteschlangen sendet und der lokale Daemon auf eine gefälschte Warte-schlange zugreift. Wenn die Warteschlange dann mit demselben Namen wie dieandere Warteschlange auf dem lokalen Server angezeigt wird, glaubt derEigentümer des Auftrags möglicherweise, dass der Auftrag an einen lokalenServer gesendet wird, während er in Wirklichkeit an den Server des Angreifersgeleitet wird.

YaST kann CUPS-Server mit zwei Methoden ermitteln: Durch Durchsuchen der lokalenNetzwerk-Hosts, um festzustellen, ob diese den IPP-Dienst anbieten, oder durch Lau-schen auf IPP-Broadcast-Pakete. Dies setzt jedoch voraus, dass die Firewall für einge-hende Pakete an Port 631/UDP (IPP-Client) durchlässig ist. Diese Voraussetzung istautomatisch erfüllt, wenn Sie Ihren Computer in der internen Firewall-Zone konfigurierthaben. Das Öffnen eines Ports zum Konfigurieren des Zugriffs auf entfernte Warte-schlangen in der externen Zone kann ein Sicherheitsrisiko darstellen, da ein Angreifereinen Server anbieten kann, der dann möglicherweise von den Benutzern angenommenwird. Standardmäßig werden IPP-Broadcasts daher in der externen Zone verweigert.Weitere Informationen zur Firewall-Konfiguration finden Sie unter „Konfiguration mitYaST“ (S. 116).

Alternativ kann der Benutzer CUPS-Server erkennen, indem er die lokalen Netzwerk-Hosts aktiv durchsucht oder alle Warteschlangen manuell konfiguriert. Aufgrund deram Anfang dieses Abschnitts erwähnten Gründe wird diese Methode nicht empfohlen.

11.6.2 Änderungen am CUPS-DruckdienstDiese Änderungen wurden ursprünglich in SUSE Linux 9.1 vorgenommen.

cupsd wird als Benutzer lp ausgeführtBeim Start ändert sich cupsd vom Benutzer root in den Benutzer lp. Dies bieteteinen viel höheren Grad an Sicherheit, da der CUPS-Druckdienst nicht mit uneinge-

Druckerbetrieb 259

Page 260: Suse 10.1 Linux Reference De

schränkten Berechtigungen, sondern nur mit den für den Druckdienst erforderlichenBerechtigungen ausgeführt wird.

Die Authentifizierung (die Passwortüberprüfung) kann nicht über /etc/shadowausgeführt werden, da lp keinen Zugriff auf /etc/shadow hat. Stattdessen mussdie CUPS-spezifische Authentifizierung über /etc/cups/passwd.md5 verwendetwerden. Zu diesem Zweck muss ein CUPS-Administrator mit der CUPS-Administrati-onsgruppesys und einem CUPS-Passwort in/etc/cups/passwd.md5 eingegebenwerden. Geben Sie hierzu als root Folgendes ein:lppasswd -g sys -a CUPS-admin-name

Diese Einstellung ist außerdem wichtig, wenn Sie das Web-Administrations-Frontendvon CUPS oder das Werkzeug für die Druckeradministration von KDE verwendenmöchten.

Wenn cupsd als lp ausgeführt wird, kann /etc/printcap nicht generiert werden,da lp nicht berechtigt ist, Dateien in /etc/ zu erstellen. Daher generiert cupsd dieDatei /etc/cups/printcap. Um sicherzustellen, dass Anwendungen, die Warte-schlangennamen in /etc/printcap nur lesen können, weiter ordnungsgemäßfunktionieren, ist /etc/printcap ein symbolischer Link, der auf /etc/cups/printcap verweist.

Wenn cupsd als lp ausgeführt wird, kann Port 631 nicht geöffnet werden. Daherkann cupsdmit dem Befehl rccups reload nicht neu geladen werden. VerwendenSie stattdessen rccups restart.

Allgemeinere Funktionalität für BrowseAllow undBrowseDeny

Die festgelegten Zugriffsberechtigungen für BrowseAllow und BrowseDeny geltenfür alle Pakettypen, die an cupsd gesendet werden. Die Standardeinstellungen in/etc/cups/cupsd.conf lauten wie folgt:BrowseAllow @LOCALBrowseDeny All

und<Location /> Order Deny,Allow Deny From All

260 Referenz

Page 261: Suse 10.1 Linux Reference De

Allow From 127.0.0.1 Allow From 127.0.0.2 Allow From @LOCAL</Location>

Auf diese Weise können nur LOCAL-Hosts auf cupsd auf einem CUPS-Serverzugreifen.LOCAL-Hosts sind Hosts, deren IP-Adressen zu einer Nicht-PPP-Schnittstelle(Schnittstellen, deren IFF_POINTOPOINT-Flags nicht gesetzt sind) und zum selbenNetzwerk wie der CUPS-Server gehören. Pakete von allen anderen Hosts werden sofortabgelehnt.

cupsd standardmäßig aktiviertIn einer Standardinstallation ist cupsd automatisch aktiviert und ermöglicht so denZugriff auf die Warteschlangen des CUPS-Netzwerkservers, ohne dass ein weiteresEingreifen erforderlich ist. Die Einstellungen in „cupsd wird als Benutzer lp ausgeführt“(S. 259) und „Allgemeinere Funktionalität für BrowseAllow und BrowseDeny“(S. 260) sind wichtige Voraussetzungen für diese Funktion, da andernfalls die Sicherheitfür eine automatische Aktivierung von cupsd nicht ausreichend wäre.

11.6.3 PPD-Dateien in unterschiedlichenPaketen

Die YaST-Druckerkonfiguration richtet die Warteschlangen für CUPS auf dem Systemnur unter Verwendung der in /usr/share/cups/model/ installierten PPD-Dateien ein. Um die geeigneten PPD-Dateien für das Druckermodell zu finden, vergleichtYaST während der Hardware-Erkennung den Hersteller und das Modell mit den Her-stellern und Modellen, die auf dem System in den PPD-Dateien unter /usr/share/cups/model/ enthalten sind. Zu diesem Zweck generiert die YaST-Druckerkonfigu-ration eine Datenbank mit den Hersteller- und Modelldaten, die aus den PPD-Dateienextrahiert werden. Wenn Sie in der Liste der Hersteller und Modelle einen Druckerauswählen, erhalten Sie die PPD-Dateien, die dem Hersteller und dem Modell entspre-chen.

Die Konfiguration, die nur PPD-Dateien und keine weiteren Informationsquellen ver-wendet, hat den Vorteil, dass die PPD-Dateien in /usr/share/cups/model/ nachBedarf geändert werden können. Die YaST-Druckerkonfiguration erkennt die Änderun-gen und generiert die Hersteller- und Modelldatenbank neu. Wenn Sie beispielsweise

Druckerbetrieb 261

Page 262: Suse 10.1 Linux Reference De

nur mit PostScript-Druckern arbeiten, sind die Foomatic-PPD-Dateien im Paketcups-drivers oder die Gimp-Print-PPD-Dateien im Paketcups-drivers-stpin der Regel nicht erforderlich. Die PPD-Dateien für die PostScript-Drucker könnendirekt in /usr/share/cups/model/ kopiert werden (wenn sie nicht bereits imPaket manufacturer-PPDs vorhanden sind), um eine optimale Konfiguration derDrucker zu erzielen.

CUPS-PPD-Dateien im Paket cupsDie generischen PPD-Dateien im Paketcupswurden durch angepasste Foomatic-PPD-Dateien für PostScript-Drucker der Level 1 und Level 2 ergänzt:

• /usr/share/cups/model/Postscript-level1.ppd.gz

• /usr/share/cups/model/Postscript-level2.ppd.gz

PPD-Dateien im Paket cups-driversDer Foomatic-Druckerfilter foomatic-rip wird in der Regel zusammen mitGhostscript für Nicht-PostScript-Drucker verwendet. Die entsprechenden Foomatic-PPD-Dateien haben die Einträge *NickName: ... Foomatic/Ghostscriptdriver und*cupsFilter: ... foomatic-rip. Diese PPD-Dateien befindensich im Paket cups-drivers.

YaST bevorzugt eine Foomatic-PPD-Datei, wenn eine Foomatic-PPD-Datei mit demEintrag*NickName: ... Foomatic ... (recommended) dem Druckermo-dell entspricht und das Paket manufacturer-PPDs keine geeignetere PPD-Dateienthält.

Gimp-Print-PPD-Dateien im Paketcups-drivers-stp

Für viele Nicht-PostScript-Drucker kann an Stelle von foomatic-rip der CUPS-Filter rastertoprinter verwendet werden. Dieser Filter und die entsprechendenGimp-Print-PPD-Dateien befinden sich im Paket cups-drivers-stp. Die Gimp-Print-PPD-Dateien befinden sich in /usr/share/cups/model/stp/ und habendie Einträge *NickName: ... CUPS+Gimp-Print und *cupsFilter: ...rastertoprinter.

262 Referenz

Page 263: Suse 10.1 Linux Reference De

PPD-Dateien von Druckerherstellern im Paketmanufacturer-PPDs

Das Paket manufacturer-PPDs enthält PPD-Dateien von Druckerherstellern, dieunter einer ausreichend freien Lizenz veröffentlicht werden. PostScript-Drucker solltenmit der entsprechenden PPD-Datei des Druckerherstellers konfiguriert werden, da dieseDatei die Verwendung aller Funktionen des PostScript-Druckers ermöglicht. YaSTbevorzugt eine PPD-Datei aus dem Paket manufacturer-PPDs, wenn folgendeBedingungen erfüllt sind:

• Der während der Hardware-Erkennung ermittelte Hersteller und das Modell ent-sprechen dem Hersteller und dem Modell in einer PPD-Datei im Paketmanufacturer-PPDs.

• Die PPD-Datei im Paket manufacturer-PPDs ist die einzige geeignete PPD-Datei für das Druckermodell oder es ist eine Foomatic-PPD-Datei mit dem Eintrag*NickName: ... Foomatic/Postscript (recommended) vorhanden,die dem Druckermodell ebenfalls entspricht.

YaST verwendet demzufolge in den folgenden Fällen keine PPD-Datei aus dem Paketmanufacturer-PPDs:

• Die PPD-Datei im Paket manufacturer-PPDs entspricht nicht dem Herstellerund dem Modell. Dies kann der Fall sein, wenn das Paket manufacturer-PPDsnur eine PPD-Datei für ähnliche Modelle enthält, z. B. wenn für die einzelnenModelle einer Modellserie keine separaten PPD-Dateien vorhanden sind, sonderndie Modellbezeichnungen in der PPD-Datei beispielsweise in Form vonFunprinter 1000 series angegeben werden.

• Die Verwendung der Foomatic-PostScript-PPD-Datei wird nicht empfohlen. DerGrund dafür ist möglicherweise, dass das Druckermodell im PostScript-Modusnicht effizient genug arbeitet, weil es in diesem Modus beispielsweise aufgrundvon zu wenig Speicher unzuverlässig oder wegen seines zu schwachen Prozessorszu langsam arbeitet. Des Weiteren unterstützt der Drucker möglicherweise standard-mäßig kein PostScript, da die PostScript-Unterstützung nur als optionales Modulverfügbar ist.

Wenn eine PPD-Datei im Paket manufacturer-PPDs für einen PostScript-Druckergeeignet ist, YaST diesen aus den genannten Gründen aber nicht konfigurieren kann,müssen Sie das entsprechende Druckermodell manuell in YaST auswählen.

Druckerbetrieb 263

Page 264: Suse 10.1 Linux Reference De

11.7 FehlerbehebungIn den folgenden Abschnitten werden einige der am häufigsten auftretenden Problememit der Druckerhardware und -software sowie deren Lösungen oder Umgehungbeschrieben.

11.7.1 Drucker ohne Unterstützung für eineStandard-Druckersprache

Drucker, die keine der geläufigen Druckersprachen unterstützen und nur mit speziellenSteuersequenzen adressiert werden können, werden alsGDI-Drucker bezeichnet. DieseDrucker funktionieren nur mit den Betriebssystemversionen, für die der Hersteller einenTreiber zur Verfügung stellt. GDI ist eine von Microsoft für Grafikgeräte entwickelteProgrammierschnittstelle. Das eigentliche Problem ist nicht die Programmierschnittstelle,sondern die Tatsache, dass GDI-Drucker nur mit der proprietären Druckersprache desjeweiligen Druckermodells adressiert werden können.

Der Betrieb einiger Drucker kann sowohl im GDI-Modus als auch in einer der Standard-Druckersprachen ausgeführt werden. Einige Hersteller stellen für ihre GDI-Druckerproprietäre Treiber zur Verfügung. Der Nachteil proprietärer Druckertreiber ist, dasses keine Garantie gibt, dass diese mit dem installierten Drucksystem funktionieren undfür die unterschiedlichen Hardwareplattformen geeignet sind. Im Gegensatz dazu sindDrucker, die eine Standard-Druckersprache unterstützen, nicht abhängig von einerspeziellen Drucksystemversion oder einer bestimmten Hardwareplattform.

Anstatt Zeit darauf zu verwenden, einen proprietären Linux-Treiber zum Funktionierenzu bringen, ist es möglicherweise kosteneffektiver, einen unterstützten Drucker zukaufen. Dadurch wäre das Treiberproblem ein für alle Mal aus der Welt geschafft undes wäre nicht mehr erforderlich, spezielle Treibersoftware zu installieren und zu konfi-gurieren oder Treiber-Updates zu beschaffen, die aufgrund neuer Entwicklungen imDrucksystem benötigt würden.

264 Referenz

Page 265: Suse 10.1 Linux Reference De

11.7.2 Für einen PostScript-Drucker ist keinegeeignete PPD-Datei verfügbar

Wenn das Paket manufacturer-PPDs für einen PostScript-Drucker keine geeignetePPD-Datei enthält, sollte es möglich sein, die PPD-Datei von der Treiber-CD desDruckerherstellers zu verwenden, oder eine geeignete PPD-Datei von der Webseite desDruckerherstellers herunterzuladen.

Wenn die PPD-Datei als Zip-Archiv (.zip) oder als selbstextrahierendes Zip-Archiv(.exe) zur Verfügung gestellt wird, entpacken Sie sie mit unzip. Lesen Sie zunächstdie Lizenzvereinbarung für die PPD-Datei. Prüfen Sie anschließend mit dem Dienstpro-gramm cupstestppd, ob die PPD-Datei der „Adobe PostScript-PDF-Format-Spezi-fikation, Version 4.3, “ entspricht. Wenn das Dienstprogramm „FAIL“ zurückgibt, sinddie Fehler in den PPD-Dateien schwerwiegend und verursachen wahrscheinlich größereProbleme. Die von cupstestppd protokollierten Problempunkte müssen behobenwerden. Fordern Sie beim Druckerhersteller ggf. eine geeignete PPD-Datei an.

11.7.3 ParallelanschlüsseDie sicherste Methode ist, den Drucker direkt an den ersten Parallelanschluss anzuschlie-ßen und im BIOS die folgenden Einstellungen für Parallelanschlüsse auszuwählen:

• I/O address: 378 (hexadezimal)

• Interrupt: irrelevant

• Mode: Normal, SPP oder Output Only

• DMA: deaktiviert

Wenn der Drucker trotz dieser Einstellungen über den Parallelanschluss nicht angespro-chen werden kann, geben Sie die E/A-Adresse explizit in Übereinstimmung mit derEinstellung im BIOS in Form von 0x378 in /etc/modprobe.conf ein. Wennzwei Parallelanschlüsse vorhanden sind, die auf die E/A-Adressen 378 und 278(hexadezimal) gesetzt sind, geben Sie diese in Form von 0x378,0x278 ein.

Wenn Interrupt 7 frei ist, kann er mit dem in Beispiel 11.1, „/etc/modprobe.conf:Interrupt-Modus für den ersten Parallelanschluss“ (S. 266) dargestellten Eintrag aktiviert

Druckerbetrieb 265

Page 266: Suse 10.1 Linux Reference De

werden. Prüfen Sie vor dem Aktivieren des Interrupt-Modus die Datei /proc/interrupts, um zu sehen, welche Interrupts bereits verwendet werden. Es werdennur die aktuell verwendeten Interrupts angezeigt. Dies kann sich je nachdem, welcheHardwarekomponenten aktiv sind, ändern. Der Interrupt für den Parallelanschluss darfvon keinem anderen Gerät verwendet werden. Wenn Sie sich diesbezüglich nicht sichersind, verwenden Sie den Polling-Modus mit irq=none.

Beispiel 11.1 /etc/modprobe.conf: Interrupt-Modus für den ersten Parallelanschlussalias parport_lowlevel parport_pcoptions parport_pc io=0x378 irq=7

11.7.4 Netzwerkdrucker-VerbindungenNetzwerkprobleme identifizieren

Schließen Sie den Drucker direkt an den Computer an. Konfigurieren Sie denDrucker zu Testzwecken als lokalen Drucker. Wenn dies funktioniert, werden dieProbleme netzwerkseitig verursacht.

TCP/IP-Netzwerk prüfenDas TCP/IP-Netzwerk und die Namensauflösung müssen funktionieren.

Entfernten lpd prüfenGeben Sie den folgenden Befehl ein, um zu testen, ob zu lpd (Port 515) auf hosteine TCP-Verbindung hergestellt werden kann:netcat -z host 515 && echo ok || echo failed

Wenn die Verbindung zu lpd nicht hergestellt werden kann, ist lpd entwedernicht aktiv oder es liegen grundlegende Netzwerkprobleme vor.

Geben Sie als root den folgenden Befehl ein, um einen (möglicherweise sehrlangen) Statusbericht für queue auf dem entfernten host abzufragen, vorausge-setzt, der entsprechende lpd ist aktiv und der Host akzeptiert Abfragen:echo -e "\004queue" \ | netcat -w 2 -p 722 host 515

Wenn lpd nicht antwortet, ist er entweder nicht aktiv oder es liegen grundlegendeNetzwerkprobleme vor. Wenn lpd reagiert, sollte die Antwort zeigen, warum dasDrucken in der queue auf host nicht möglich ist. Wenn Sie eine Antwort wie

266 Referenz

Page 267: Suse 10.1 Linux Reference De

die in Beispiel 11.2, „Fehlermeldung vom lpd“ (S. 267) erhalten, wird das Problemdurch den entfernten lpd verursacht.

Beispiel 11.2 Fehlermeldung vom lpdlpd: your host does not have line printer accesslpd: queue does not existprinter: spooling disabledprinter: printing disabled

Entfernten cupsd prüfenDer CUPS-Netzwerkserver sollte Informationen über seine Warteschlangen stan-dardmäßig alle 30 Sekunden an UDP-Port 631 via Broadcast senden. Demzufolgekann mit dem folgenden Befehl getestet werden, ob im Netzwerk ein CUPS-Netz-werkserver vorhanden ist.netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

Wenn ein CUPS-Netzwerkserver vorhanden ist, der Informationen über Broadcas-ting sendet, erscheint die Ausgabe wie in Beispiel 11.3, „Broadcast vom CUPS-Netzwerkserver“ (S. 267) dargestellt.

Beispiel 11.3 Broadcast vom CUPS-Netzwerkserveripp://host.domain:631/printers/queue

Mit dem folgenden Befehl können Sie testen, ob mit cupsd (Port 631) auf hosteine TCP-Verbindung hergestellt werden kann:netcat -z host 631 && echo ok || echo failed

Wenn die Verbindung zu cupsd nicht hergestellt werden kann, istcupsd entwedernicht aktiv oder es liegen grundlegende Netzwerkprobleme vor. lpstat -hhost -l -t gibt einen (möglicherweise sehr langen) Statusbericht für alleWarteschlangen auf host zurück, vorausgesetzt, dass der entsprechende cupsdaktiv ist und der Host Abfragen akzeptiert.

Mit dem nächsten Befehl können Sie testen, ob die Warteschlange auf Hosteinen Druckauftrag akzeptiert, der aus einem einzigen CR-Zeichen (Carriage-Return) besteht. In diesem Fall sollte nichts gedruckt werden. Möglicherweise wirdeine leere Seite ausgegeben.echo -en "\r" \ | lp -d queue -h host

Druckerbetrieb 267

Page 268: Suse 10.1 Linux Reference De

Fehlerbehebung für einen Netzwerkdrucker oder eine Print Server BoxSpooler, die in einer Print Server Box ausgeführt werden, verursachen gelegentlichProbleme, wenn sie viele Druckaufträge bearbeiten müssen. Da dies durch denSpooler in der Print Server Box verursacht wird, können Sie nichts dagegen tun.Sie haben aber die Möglichkeit, den Spooler in der Print Server Box zu umgehen,indem Sie den an die Print Server Box angeschlossenen Drucker über TCP-Socketdirekt ansprechen. Siehe Abschnitt 11.4.2, „Netzwerkdrucker“ (S. 254).

Auf diese Weise wird die Print Server Box auf einen Konvertierer zwischen denunterschiedlichen Formen der Datenübertragung (TCP/IP-Netzwerk und lokaleDruckerverbindung) reduziert. Um diese Methode verwenden zu können, müssenSie den TCP-Port der Print Server Box kennen. Wenn der Drucker eingeschaltetund an die Print Server Box angeschlossen ist, kann dieser TCP-Port in der Regelmit dem Dienstprogramm nmap aus dem Paket nmap ermittelt werden, wenn diePrint Server Box einige Zeit eingeschaltet ist. Beispiel: nmap IP-Adresse gibtdie folgende Ausgabe für eine Print Server Box zurück:Port State Service23/tcp open telnet80/tcp open http515/tcp open printer631/tcp open cups9100/tcp open jetdirect

Diese Ausgabe gibt an, dass der an die Print Server Box angeschlossenen Druckerüber TCP-Socket an Port 9100 angesprochen werden kann. nmap prüft standard-mäßig nur eine bestimmte Anzahl der allgemein bekannten Ports, die in /usr/share/nmap/nmap-services aufgeführt sind. Um alle möglichen Ports zuüberprüfen, verwenden Sie den Befehl nmap-p Ausgangs-Port-Ziel-Port IP-Adresse. Dies kann einige Zeitdauern. Weitere Informationen hierzu finden Sie auf der Manualpage für den Befehlnmap.

Geben Sie einen Befehl ein wieecho -en "\rHello\r\f" | netcat -w 1 IP-address portcat file | netcat -w 1 IP-address port

um Zeichenketten oder Dateien direkt an den entsprechenden Port zu senden, umzu testen, ob der Drucker auf diesem Port angesprochen werden kann.

268 Referenz

Page 269: Suse 10.1 Linux Reference De

11.7.5 Fehlerhafte Ausdrucke ohneFehlermeldung

Für das Drucksystem ist der Druckauftrag abgeschlossen, wenn das CUPS-Backenddie Datenübertragung an den Empfänger (Drucker) abgeschlossen hat. Wenn die wei-tere Verarbeitung auf dem Empfänger nicht erfolgt, z. B. wenn der Drucker diedruckerspezifischen Daten nicht drucken kann, wird dies vom Drucksystem nichterkannt. Wenn der Drucker die druckerspezifischen Daten nicht drucken kann, wählenSie eine andere PPD-Datei, die für den Drucker besser geeignet ist.

11.7.6 Deaktivierte WarteschlangenWenn die Datenübertragung zum Empfänger auch nach mehreren Versuchen nichterfolgt, meldet das CUPS-Backend, z. B. usb oder socket, dem Drucksystem (ancupsd) einen Fehler. Das Backend entscheidet, ob und wie viele Versuche sinnvollsind, bis die Datenübertragung als nicht möglich abgebrochen wird. Da weitere Versuchevergeblich wären, deaktiviertcupsd das Drucken für die entsprechende Warteschlange.Nachdem der Systemadministrator das Problem behoben hat, muss er das Drucken mitdem Befehl /usr/bin/enable wieder aktivieren.

11.7.7 Durchsuchen von CUPS: Löschen vonDruckaufträgen

Wenn ein CUPS-Netzwerkserver seine Warteschlangen den Client-Hosts via Brwosingbekannt macht und auf den Host-Clients ein geeigneter lokaler cupsd aktiv ist,akzeptiert der Client-cupsd Druckaufträge von Anwendungen und leitet sie an dencupsd auf dem Server weiter. Wenncupsd einen Druckauftrag akzeptiert, wird diesemeine neue Auftragsnummer zugewiesen. Daher unterscheidet sich die Auftragsnummerauf dem Client-Host von der auf dem Server. Da ein Druckauftrag in der Regel sofortweitergeleitet wird, kann er mit der Auftragsnummer auf dem Client-Host nicht gelöschtwerden, da der Client- cupsd den Druckauftrag als abgeschlossen betrachtet, sobalddieser an den Server-cupsd weitergeleitet wurde.

Um einen Druckauftrag auf dem Server zu löschen, geben Sie einen Befehl wie lpstat-h Print-Server -o ein, um die Auftragsnummer auf dem Server zu ermitteln,

Druckerbetrieb 269

Page 270: Suse 10.1 Linux Reference De

vorausgesetzt, der Server hat den Druckauftrag nicht bereits abgeschlossen (d. h. ihnan den Drucker gesendet). Mithilfe dieser Auftragsnummer kann der Druckauftrag aufdem Server gelöscht werden:cancel -h print-server queue-jobnnumber

11.7.8 Fehlerhafte Druckaufträge und Fehlerbei der Datenübertragung

Druckaufträge verbleiben in den Warteschlangen und das Drucken wird fortgesetzt,wenn Sie den Drucker aus- und wieder einschalten oder den Computer während desDruckvorgangs herunterfahren und neu booten. Fehlerhafte Druckaufträge müssen mitcancel aus der Warteschlange entfernt werden.

Wenn ein Druckauftrag fehlerhaft ist oder während der Kommunikation zwischen demHost und dem Drucker ein Fehler auftritt, druckt der Drucker mehrere Seiten Papiermit unleserlichen Zeichen, da er die Daten nicht ordnungsgemäß verarbeiten kann.Führen Sie die folgenden Schritte aus, um dies zu beheben:

1 Um den Druckvorgang zu beenden, entfernen Sie das Papier aus Tintenstrahldru-ckern oder öffnen Sie die Papierzufuhr bei Laserdruckern. Qualitativ hochwertigeDrucker sind mit einer Taste zum Abbrechen des aktuellen Druckauftrags ausge-stattet.

2 Der Druckauftrag befindet sich möglicherweise noch in der Warteschlange, dadie Aufträge erst dann entfernt werden, wenn sie vollständig an den Druckerübertragen wurden. Geben Sielpstat -o oderlpstat -h Print-Server-o ein, um zu prüfen, über welche Warteschlange aktuell gedruckt wird. LöschenSie den Druckauftrag mit cancel Warteschlange-Auftragsnummeroder mit cancel -h Print-ServerWarteschlange-Auftragsnummer.

3 Auch wenn der Druckauftrag aus der Warteschlange gelöscht wurde, werdeneinige Daten weiter an den Drucker gesendet. Prüfen Sie, ob ein CUPS-Backend-Prozess für die entsprechende Warteschlange ausgeführt wird und wenn ja,beenden Sie ihn. Für einen an den Parallelanschluss angeschlossenen Druckergeben Sie beispielsweise den Befehl fuser -k /dev/lp0 ein, um alle Pro-zesse zu beenden, die aktuell noch auf den Drucker zugreifen (präziser: auf denParallelanschluss).

270 Referenz

Page 271: Suse 10.1 Linux Reference De

4 Setzen Sie den Drucker vollständig zurück, indem Sie ihn für einige Zeit ausschal-ten. Legen Sie anschließend Papier ein und schalten Sie den Drucker wieder ein.

11.7.9 Fehlerbehebung beimCUPS-Drucksystem

Suchen Sie Probleme im CUPS-Drucksystem mithilfe des folgenden generischen Ver-fahrens:

1 Setzen Sie LogLevel debug in /etc/cups/cupsd.conf.

2 Stoppen Sie cupsd.

3 Entfernen Sie /var/log/cups/error_log*, um das Durchsuchen sehrgroßer Protokolldateien zu vermeiden.

4 Starten Sie cupsd.

5 Wiederholen Sie die Aktion, die zu dem Problem geführt hat.

6 Lesen Sie die Meldungen in/var/log/cups/error_log*, um die Ursachedes Problems zu identifizieren.

11.7.10 Weitere InformationenLösungen zu vielen spezifischen Problemen sind in der SUSE-Support-Datenbank(http://portal.suse.com/) enthalten. Die gesuchten Themen finden Sie amschnellsten über Schlüsselwortsuchen.

Druckerbetrieb 271

Page 272: Suse 10.1 Linux Reference De
Page 273: Suse 10.1 Linux Reference De

12Gerätemanagement überdynamischen Kernel mithilfe vonudevSeit Version 2.6 kann der Kernel nahezu jedes Gerät im laufenden System hinzufügenoder entfernen. Änderungen des Gerätestatus (ob ein Gerät angeschlossen oder entferntwird) müssen an den userspace weitergegeben werden. Geräte müssen konfiguriertwerden, sobald sie angeschlossen und erkannt wurden. Benutzer eines bestimmtenGeräts müssen über sämtliche Statusänderungen für das entsprechende Gerät informiertwerden. udev bietet die erforderliche Infrastruktur, um die Geräteknotendateien undsymbolische Links im /dev-Verzeichnis dynamisch zu warten. Mithilfe von udev-Regeln können externe Programme in die Ereignisverarbeitung des Kernel-Geräts ein-gebunden werden. Auf diese Weise können Sie die udev-Gerätebehandlung anpassen.Sie können beispielsweise bestimmte Skripts hinzufügen, die als Teil der Kernel-Gerätebehandlung ausgeführt werden, oder Sie können zusätzliche Daten zur Auswertungbei der Gerätebehandlung anfordern und importieren.

12.1 Das /dev-VerzeichnisDie Geräteknoten im/dev-Verzeichnis ermöglichen den Zugriff auf die entsprechendenKernel-Geräte. Mithilfe von udev spiegelt das /dev-Verzeichnis den aktuellen Statusdes Kernel wider. Jedes Kernel-Gerät verfügt über eine entsprechende Gerätedatei.Falls ein Gerät vom System getrennt wird, wird der Geräteknoten entfernt.

Der Inhalt des /dev-Verzeichnisses wird in einem temporären Dateisystem gespeichertund alle Dateien werden bei jedem Systemstart neu erstellt. Manuell erstellte odergeänderte Dateien überdauern ein erneutes Booten planmäßig nicht. Statische Dateien

Gerätemanagement über dynamischen Kernel mithilfe von udev 273

Page 274: Suse 10.1 Linux Reference De

und Verzeichnisse, die unabhängig vom Status des entsprechenden Kernel-Geräts immerim /dev-Verzeichnis vorhanden sein sollten, können im Verzeichnis /lib/udev/devices platziert werden. Beim Systemstart wird der Inhalt des entsprechendenVerzeichnisses in das /dev-Verzeichnis kopiert und erhält dieselbe Eigentümerschaftund dieselben Berechtigungen wie die Dateien in /lib/udev/devices.

12.2 Kernel-uevents und udevDie erforderlichen Geräteinformationen werden vom sysfs-Dateisystem exportiert. Fürjedes Gerät, das der Kernel erkannt und initialisiert hat, wird ein Verzeichnis mit demGerätenamen erstellt. Es enthält Attributdateien mit gerätespezifischen Eigenschaften.Jedes Mal, wenn ein Gerät hinzugefügt oder entfernt wird, sendet der Kernel ein uevent,um udev über die Änderung zu informieren.

Der udev-Daemon liest und analysiert alle angegebenen Regeln aus den /etc/udev/rules.d/*.rules-Dateien einmalig beim Start und speichert diese. Falls Regelda-teien verändert, hinzugefügt oder entfernt werden, empfängt der Daemon ein Ereignisund aktualisiert die gespeicherten Regeldarstellungen.

Jedes empfangene Ereignis wird mit dem Satz der angegebenen Regeln abgeglichen.Die Regeln können Ereignisergebnisschlüssel hinzufügen oder ändern, einenbestimmten Namen für den zu erstellenden Geräteknoten anfordern, auf den Knotenverweisende Symlinks hinzufügen oder Programme hinzufügen, die ausgeführt werdensollen, nachdem der Geräteknoten erstellt wurde. Die Treiber-Core-uevents werdenvon einem Kernel-Netlink-Socket empfangen.

12.3 Treiber, Kernel-Module undGeräte

Die Kernel-Bus-Treiber prüfen, ob Geräte vorhanden sind. Für jedes erkannte Geräterstellt der Kernel eine interne Gerätestruktur und der Treiber-Core sendet ein ueventan den udev-Daemon. Bus-Geräte identifizieren sich mithilfe einer speziell formatiertenID, die Auskunft über die Art des Geräts gibt. Normalerweise bestehen diese IDs auseiner Hersteller- und einer Produkt-ID und anderen das Subsystem betreffenden Werten.Jeder Bus weist ein eigenes Schema für diese IDs auf, das so genannteMODALIAS-Schema. Der Kernel bedient sich der Geräteinformationen, verfasst daraus

274 Referenz

Page 275: Suse 10.1 Linux Reference De

eine MODALIAS-ID-Zeichenkette und sendet diese Zeichenkette zusammen mit demEreignis. Beispiel für eine USB-Maus:MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02

Jeder Gerätetreiber verfügt über eine Liste bekannter Aliase für Geräte, die er behandelnkann. Die Liste ist in der Kernel-Moduldatei selbst enthalten. Das Programm depmodliest die ID-Listen und erstellt die Datei modules.alias im Verzeichnis /lib/modules des Kernel für alle zurzeit verfügbaren Module. Bei dieser Infrastruktur istdas Laden des Moduls ein ebenso müheloser Vorgang, wie das Aufrufen vonmodprobefür jedes Ereignis, das über einen MODALIAS-Schlüssel verfügt. Falls modprobe$MODALIAS aufgerufen wird, gleicht es den für das Gerät verfassten Geräte-Alias mitden Aliassen von den Modulen ab. Falls ein übereinstimmender Eintrag gefunden wird,wird das entsprechende Modul geladen. Alle diese Vorgänge werden von udev ausgelöstund erfolgen automatisch.

12.4 Booten und erstes Einrichten desGeräts

Alle Geräteereignisse, die während des Boot-Vorgangs stattfinden, bevor der udev-Daemon ausgeführt wird, gehen verloren. Dies liegt daran, dass die Infrastruktur fürdie Behandlung dieser Ereignisse sich in dem Root-Dateisystem befindet und zu diesemZeitpunkt nicht verfügbar ist. Um diesen Verlust auszugleichen, stellt der Kernel eineuevent-Datei für jedes Gerät im sysfs-Dateisystem zur Verfügung. Durch dasSchreiben von add in die entsprechende Datei sendet der Kernel dasselbe Ereignis,das während des Boot-Vorgangs verloren gegangen ist, neu. Eine einfache Schleifeüber alle uevent-Dateien in /sys löst alle Ereignisse erneut aus, um die Geräteknotenzu erstellen und die Geräteeinrichtung durchzuführen.

Beispielsweise kann eine USB-Maus, die während des Boot-Vorgangs vorhanden ist,nicht durch die frühe Boot-Logik initialisiert werden, da der Treiber zum entsprechendenZeitpunkt nicht verfügbar ist. Das Ereignis für die Geräteerkennung ist verlorengegangen und konnte kein Kernel-Modul für das Gerät finden. Anstatt manuell nachmöglicherweise angeschlossenen Geräten zu suchen, fordert udev lediglich alle Gerä-teereignisse aus dem Kernel an, wenn das Root-Dateisystem verfügbar ist. Das Ereignisfür die USB-Maus wird also lediglich erneut ausgeführt. Jetzt wird das Kernel-Modulauf dem eingehängten Root-Dateisystem gefunden und die USB-Maus kann initialisiertwerden.

Gerätemanagement über dynamischen Kernel mithilfe von udev 275

Page 276: Suse 10.1 Linux Reference De

Vom userspace aus gibt es keinen erkennbaren Unterschied zwischen einer coldplug-Gerätesequenz und einer Geräteerkennung während der Laufzeit. In beiden Fällenwerden dieselben Regeln für den Abgleich verwendet und dieselben konfiguriertenProgramme ausgeführt.

12.5 Fehlersuche bei udev-EreignissenDas Programm udevmonitor kann verwendet werden, um die Treiber-Core-Ereig-nisse und das Timing der udev-Ereignisprozesse zu visualisieren.UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0UEVENT[1132632714.309485] add@/class/input/input6UEVENT[1132632714.309511] add@/class/input/input6/mouse2UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12UDEV [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2UDEV [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0UDEV [1132632714.427298] add@/class/input/input6UDEV [1132632714.434223] add@/class/usb_device/usbdev2.12UDEV [1132632714.439934] add@/class/input/input6/mouse2

Die UEVENT-Zeilen zeigen die Ereignisse an, die der Kernel an Netlink gesendet hat.Die UDEV-Zeilen zeigen die fertig gestellten udev-Ereignisbehandlungsroutinen an.Das Timing wird in Mikrosekunden angegeben. Die Zeit zwischen UEVENT und UDEVist die Zeit, die udev benötigt hat, um dieses Ereignis zu verarbeiten oder der udev-Daemon hat eine Verzögerung bei der Ausführung der Synchronisierung dieses Ereig-nisses mit zugehörigen und bereits ausgeführten Ereignissen erfahren. Beispielsweisewarten Ereignisse für Festplattenpartitionen immer, bis das Ereignis für den primärenDatenträger beendet ist, da die Partitionsereignisse möglicherweise auf die Datenangewiesen sind, die das Ereignis für den primären Datenträger von der Hardwareangefordert hat.

udevmonitor --env zeigt die vollständige Ereignisumgebung:UDEV [1132633002.937243] add@/class/input/input7UDEV_LOG=3ACTION=addDEVPATH=/class/input/input7SUBSYSTEM=inputSEQNUM=1043PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0PHYSDEVBUS=usbPHYSDEVDRIVER=usbhidPRODUCT=3/46d/c03e/2000NAME="Logitech USB-PS/2 Optical Mouse"

276 Referenz

Page 277: Suse 10.1 Linux Reference De

PHYS="usb-0000:00:1d.1-2/input0"UNIQ=""EV=7KEY=70000 0 0 0 0 0 0 0 0REL=103

udev sendet auch Meldungen an syslog. Die standardmäßige syslog-Priorität, die steuert,welche Meldungen an syslog gesendet werden, wird in der udev-Konfigurationsdatei/etc/udev/udev.conf angegeben. Die Protokollpriorität des ausgeführten Dae-mons kann mitudevcontrol log_priority=level/number geändert werden.

12.6 Ereignisse für die Kernelgerätemit udev-Regeln steuern

Eine udev-Regel kann mit einer beliebigen Eigenschaft abgeglichen werden, die derKernel der Ereignisliste hinzufügt oder mit beliebigen Informationen, die der Kernelin sysfs exportiert. Die Regel kann auch zusätzliche Informationen aus externenProgrammen anfordern. Jedes Ereignis wird gegen alle angegebenen Regeln abgeglichen.Alle Regeln befinden sich im Verzeichnis /etc/udev/rules.d/.

Jede Zeile in der Regeldatei enthält mindestens ein Schlüsselwertepaar. Es gibt zweiArten von Schlüsseln: die Übereinstimmungsschlüssel und Zuweisungsschlüssel. Wennalle Übereinstimmungsschlüssel mit ihren Werten übereinstimmen, wird diese Regelangewendet und der angegebene Wert wird den Zuweisungsschlüsseln zugewiesen.Eine übereinstimmende Regel kann den Namen des Geräteknotens angeben, auf denKnoten verweisende Symlinks hinzufügen oder ein bestimmtes Programm als Teil derEreignisbehandlung ausführen. Falls keine übereinstimmende Regel gefunden wird,wird der standardmäßige Geräteknotenname verwendet, um den Geräteknoten zuerstellen. Die Regelsyntax und die angegebenen Schlüssel zum Abgleichen oderImportieren von Daten werden auf der Manualpage für udev beschrieben.

12.7 Permanente GerätebenennungDas dynamische Geräteverzeichnis und die Infrastruktur für die udev-Regeln ermögli-chen die Bereitstellung von stabilen Namen für alle Laufwerke unabhängig von ihrerErkennungsreihenfolge oder der für den Anschluss des Geräts verwendeten Verbindung.Jedes geeignete Block-Gerät, das der Kernel erstellt, wird von Werkzeugen mit spezi-

Gerätemanagement über dynamischen Kernel mithilfe von udev 277

Page 278: Suse 10.1 Linux Reference De

ellem Wissen über bestimmte Busse, Laufwerktypen oder Dateisysteme untersucht.Gemeinsam mit dem vom dynamischen Kernel bereitgestellten Geräteknotennamenunterhält udev-Klassen permanenter symbolischer Links, die auf das Gerät verweisen:/dev/disk|-- by-id| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B -> ../../sda| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part1 -> ../../sda1| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part6 -> ../../sda6| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part7 -> ../../sda7| |-- usb-Generic_STORAGE_DEVICE_02773 -> ../../sdd| `-- usb-Generic_STORAGE_DEVICE_02773-part1 -> ../../sdd1|-- by-label| |-- Photos -> ../../sdd1| |-- SUSE10 -> ../../sda7| `-- devel -> ../../sda6|-- by-path| |-- pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part6 -> ../../sda6| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part7 -> ../../sda7| |-- pci-0000:00:1f.2-scsi-1:0:0:0 -> ../../sr0| |-- usb-02773:0:0:2 -> ../../sdd| |-- usb-02773:0:0:2-part1 -> ../../sdd1`-- by-uuid |-- 159a47a4-e6e6-40be-a757-a629991479ae -> ../../sda7 |-- 3e999973-00c9-4917-9442-b7633bd95b9e -> ../../sda6 `-- 4210-8F8C -> ../../sdd1

12.8 Das ersetzte hotplug-PaketDas ehemals verwendete hotplug-Paket wird gänzlich durch die udev- und die udev-bezogene Kernel-Infrastruktur ersetzt. Die folgenden Teile der ehemaligen hotplug-Infrastruktur sind inzwischen überflüssig bzw. ihre Funktionalität wurde von udevübernommen:

/etc/hotplug/*.agentNicht mehr erforderlich oder in /lib/udev verschoben

/etc/hotplug/*.rcDurch den /sys/*/uevent-Auslöser ersetzt

/etc/hotplug/blacklistDurch die blacklist-Option in modprobe.conf ersetzt

278 Referenz

Page 279: Suse 10.1 Linux Reference De

/etc/dev.d/*Durch die udev-Regel im RUN-Schlüssel ersetzt

/etc/hotplug.d/*Durch die udev-Regel im RUN-Schlüssel ersetzt

/sbin/hotplugDurch das Lauschen auf Netlink durch udevd ersetzt; nur im anfänglichen RAM-Dateisystem verwendet, bis das Root-Dateisystem eingehängt werden kann; wirdanschließend deaktiviert

/dev/*Ersetzt durch dynamisches udev und statischen Inhalt in /lib/udev/devices/*

Die folgenden Dateien und Verzeichnisse enthalten die entscheidenden Elemente derudev-Infrastruktur:

/etc/udev/udev.confWichtigste udev-Konfigurationsdatei

/etc/udev/rules.d/*udev-Ereigniszuordnungsregeln

/lib/udev/devices/*Statischer /dev-Inhalt

/lib/udev/*Von den udev-Regeln aufgerufene Helferprogramme

12.9 Weitere InformationenWeitere Informationen zur udev-Infrastruktur finden Sie auf den folgenden Manualpages:

udevAllgemeine Informationen über udev, Schlüssel, Regeln und andere wichtigeKonfigurationsbelange.

Gerätemanagement über dynamischen Kernel mithilfe von udev 279

Page 280: Suse 10.1 Linux Reference De

udevinfoudevinfo kann verwendet werden, um Geräteinformationen aus der udev-Datenbankabzufragen.

udevdInformationen zum udev-Ereignisverwaltungs-Daemon.

udevmonitorudevmonitor gibt die Kernel- und udev-Ereignissequenz an der Konsole aus. DiesesWerkzeug wird hauptsächlich zur Fehlersuche verwendet.

280 Referenz

Page 281: Suse 10.1 Linux Reference De

13Dateisysteme in LinuxLinux unterstützt unterschiedliche Dateisysteme. Dieses Kapitel gibt einen kurzenÜberblick über die gängigsten Linux-Dateisysteme, erläutert deren Designkonzepte,Vorzüge und Anwendungsgebiete. Daneben erhalten Sie einige Zusatzinformation überLFS (Large File Support) in Linux.

13.1 TerminologieMetadaten

Eine Dateisystem-interne Datenstruktur, die sicherstellt, dass alle Daten auf demDatenträger korrekt organisiert und zugreifbar sind. Im Grunde sind es „Daten überdie Daten.“ Nahezu jedes Dateisystem verfügt über seine eigene Struktur anMetadaten. Das ist eine der Ursachen für die unterschiedlichen Leistungsmerkmalevon Dateisystemen. Es ist von größter Wichtigkeit, dass Metadaten intakt bleiben,andernfalls können alle Daten auf dem Dateisystem unzugreifbar werden.

InodeInodes enthalten zahlreiche Informationen über eine Datei, einschließlich Größe,Anzahl an Links, Zeiger auf die Plattenblöcke, auf denen der Dateiinhalt tatsächlichgespeichert wird, sowie Datum und Uhrzeit der Erstellung, der Änderung und desZugriffs.

JournalIm Kontext eines Dateisystems ist ein Journal eine Struktur auf dem Datenträger,die eine Art Protokoll enthält, in dem das Dateisystem speichert, was sich in denMetadaten des Dateisystems ändert. Durch Journaling verringert sich die Wieder-

Dateisysteme in Linux 281

Page 282: Suse 10.1 Linux Reference De

herstellungsdauer für ein Linux-System erheblich, da es den langen Suchvorgangüberflüssig macht, der beim Systemstart das ganze Dateisystem prüft. Stattdessenwird nur das Journal wiedergegeben.

13.2 Wichtige Dateisysteme in LinuxDie Wahl eines Dateisystems für ein Linux-System ist nicht mehr wie noch vor zweioder drei Jahren eine Sache von wenigen Sekunden (Ext2 oder ReiserFS?). Kernels,die mit 2.4 beginnen, stellen eine Vielzahl von Dateisystemen zur Auswahl. Nachfolgenderhalten Sie einen Überblick über die grundlegende Funktionsweise und die Vorzügedieser Dateisysteme.

Denken Sie daran, dass es wahrscheinlich kein Dateisystem gibt, das für alle Arten vonAnwendungen optimal ist. Jedes Dateisystem hat seine Stärken und Schwächen, dieberücksichtigt werden müssen. Selbst das anspruchsvollste Dateisystem kann jedochkeine vernünftige Strategie für Sicherungskopien ersetzen.

Die BegriffeDatenintegrität undDatenkonsistenz beziehen sich in diesem Kapitel nichtauf die Konsistenz der Daten auf Benutzerebene (Daten, die Ihre Anwendung in ihreDateien schreibt). Ob diese Daten konsistent sind, muss die Anwendung selbst prüfen.

WICHTIG: Einrichten von Dateisystemen

Wenn in diesem Kapitel nicht anders angegeben, können alle Schritte für dasEinrichten oder Ändern von Partitionen und Dateisystemen mit YaST ausgeführtwerden.

13.2.1 ReiserFSOffiziell eines der Hauptmerkmale der Kernel-Version 2.4, steht ReiserFS als Kernel-Patch für 2.2.x SUSE-Kernels seit SUSE Linux-Version 6.4 zur Verfügung. ReiserFSwurde von Hans Reiser und dem Namesys-Entwicklungsteam entwickelt. Es hat sichals leistungsstarke Alternative zu Ext2 bewährt. Seine Vorzüge sind eine bessere Nutzungdes Speicherplatzes, bessere Leistung beim Plattenzugriff und schnellere Wiederherstel-lung nach einem Absturz.

282 Referenz

Page 283: Suse 10.1 Linux Reference De

Die Stärken von ReiserFS:

Bessere Nutzung des SpeicherplatzesIn ReiserFS werden alle Daten in einer Struktur namens „B*-balanced Tree“ orga-nisiert. Die Baumstruktur trägt zur besseren Nutzung des Festplattenspeichers bei,da kleine Dateien direkt in den Blättern des B*-Baums gespeichert werden können,statt sie an anderer Stelle zu speichern und einfach den Zeiger auf den tatsächlichenOrt zu verwalten. Zusätzlich wird der Speicher nicht in Einheiten von 1 oder 4 KBzugewiesen, sondern in exakt der benötigten Größe. Ein weiterer Vorteil liegt inder dynamischen Zuweisung von Inodes. Damit bleibt das Dateisystem flexiblerals traditionelle Dateisysteme wie Ext2, bei dem die Inode-Dichte bei der Erstellungdes Dateisystems angegeben werden muss.

Bessere Leistung beim FestplattenzugriffBei kleinen Dateien werden häufig die Dateidaten und die „stat_data“ (Inode)-Informationen nebeneinander gespeichert. Sie lassen sich in einer einzigen E/A-Operation lesen, d. h., ein einziger Festplattenzugriff genügt, um alle benötigtenInformationen abzurufen.

Schnelle Wiederherstellung nach einem AbsturzDurch Verwendung eines Journals zur Nachverfolgung kürzlich erfolgter Metada-tenänderungen reduziert sich die Dateisystemüberprüfung sogar für große Dateisys-teme auf wenige Sekunden.

Zuverlässigkeit durch Daten-JournalingReiserFS unterstützt auch Daten-Journaling und „ordered-data“-Modi ähnlich denKonzepten, die im Ext3-Abschnitt, Abschnitt 13.2.3, „Ext3“ (S. 284), umrissenwerden. Der Standardmodus ist data=ordered, was die Integrität von Datenund Metadaten sicherstellt, aber Journaling nur für Metadaten nutzt.

13.2.2 Ext2Die Ursprünge von Ext2 reichen bis zu den Anfangstagen der Linux-Geschichte zurück.Sein Vorgänger, das Extended File System, wurde im April 1992 implementiert undin Linux 0.96c integriert. Das Extended File System unterzog sich einer Reihe vonÄnderungen und entwickelte sich als Ext2 für viele Jahre zum beliebtesten Linux-Dateisystem. Mit der Erstellung von Journaling File Systemen und ihren verblüffendkurzen Wiederherstellungszeiten verlor Ext2 an Bedeutung.

Dateisysteme in Linux 283

Page 284: Suse 10.1 Linux Reference De

Eine kurze Zusammenfassung der Stärken von Ext2 kann erhellen, warum es bei vielenLinux-Benutzern das bevorzugte Linux-Dateisystem war – und in einigen Bereichenimmer noch ist.

StabilitätAls wahrer „Oldtimer“ erlebte Ext2 viele Verbesserungen und wurde ausgiebiggetestet. Das kann der Grund dafür sein, dass es als „unerschütterlich“ gilt. Wennnach einem Systemausfall kein ordnungsgemäßes Aushängen des Dateisystemsmöglich war, beginnt e2fsck, die Dateisystemdaten zu analysieren. Metadatenwerden in einen konsistenten Zustand gebracht und schwebende Dateien oderDatenblöcke werden in ein ausgewiesenes Verzeichnis geschrieben (genannt lost+found). Im Unterschied zu Journaling File Systemen analysiert e2fsck das ganzeDateisystem und nicht nur die kürzlich geänderten Metadaten. Das dauert erheblichlänger als das Überprüfen der Protokolldaten eines Journaling File Systems.Abhängig von der Größe des Dateisystems kann dies eine halbe Stunde oder längerdauern. Daher sollte Ext2 nicht für einen Server gewählt werden, der auf hoheVerfügbarkeit angewiesen ist. Da Ext2 jedoch kein Journal führt und bedeutendweniger Speicher belegt, ist es manchmal schneller als andere Dateisysteme.

Einfaches UpgradeDer Code für Ext2 bildet die verlässliche Grundlage, auf der sich Ext3 zu einemhoch geschätzten Dateisystem der nächsten Generation entwickeln konnte. SeineZuverlässigkeit und Stabilität wurden geschickt mit den Vorzügen eines JournalingFile Systems kombiniert.

13.2.3 Ext3Ext3 wurde von Stephen Tweedie entwickelt. Im Unterschied zu allen anderen Datei-systemen der nächsten Generation folgt Ext3 keinem komplett neuen Entwicklungsprin-zip. Es basiert auf Ext2. Diese beiden Dateisysteme sind sehr eng miteinander verwandt.Ein Ext3-Dateisystem kann einfach auf einem Ext2-Dateisystem aufgebaut werden.Der wesentlichste Unterschied zwischen Ext2 und Ext3 liegt darin, dass Ext3 Journalingunterstützt. Insgesamt bietet Ext3 drei wesentliche Vorteile:

Einfache und höchst zuverlässige Dateisystem-Upgrades von Ext2Da Ext3 auf dem Ext2-Code basiert und dessen platteneigenes Format sowie seinMetadatenformat teilt, sind Upgrades von Ext2 auf Ext3 unglaublich einfach. ImUnterschied zur Umstellung auf andere Journaling File Systeme, wie z. B. ReiserFSoder XFS, die sich ziemlich langwierig gestalten können (Anlegen von Sicherungs-

284 Referenz

Page 285: Suse 10.1 Linux Reference De

kopien des kompletten Dateisystems und ein kompletter Neuaufbau des Dateisys-tems), ist eine Umstellung auf Ext3 eine Sache von Minuten. Zudem ist es sehrsicher, da die Neuerstellung eines ganzen Dateisystems von Grund auf eventuellnicht reibungslos funktioniert. In Anbetracht der bestehenden Ext2-Systeme, dieauf ein Upgrade auf ein Journaling File System warten, lässt sich leicht ausrechnen,warum Ext3 für viele Systemadministratoren eine gewisse Bedeutung hat. EinDowngrade von Ext3 auf Ext2 ist genauso leicht wie das Upgrade. Führen Sieeinfach ein sauberes Aushängen des Ext3-Dateisystems durch und hängen Sie esneu als ein Ext2-Dateisystem ein.

Zuverlässigkeit und LeistungEinige andere Journaling File Systeme nutzen die Journaling-Methode „nur Meta-daten“. Das bedeutet, Ihre Metadaten bleiben stets in einem konsistenten Zustand,jedoch kann dasselbe nicht automatisch für die eigentlichen Dateisystemdatengarantiert werden. Ext3 ist in der Lage, sich sowohl um die Metadaten als auch dieDaten selbst zu kümmern. Wie eingehend sich Ext3 um Daten und Metadaten„kümmert“, ist individuell einstellbar. Maximale Sicherheit (Datenintegrität) wirddurch den Start von Ext3 im Modus data=journal erreicht; dies kann jedochdas System verlangsamen, da sowohl Metadaten als auch Daten selbst im Journalerfasst werden. Ein relativ neuer Ansatz besteht in der Verwendung des Modusdata=ordered, der sowohl die Daten- als auch die Metadatenintegritätgewährleistet, jedoch das Journaling nur für Metadaten verwendet. Der Dateisys-temtreiber sammelt alle Datenblöcke, die einem Metadaten-Update entsprechen.Diese Datenblöcke werden vor dem Metadaten-Update auf Platte geschrieben. Sowird Konsistenz für Metadaten und Daten erzielt, ohne die Leistung zu beeinträch-tigen. Eine dritte Möglichkeit ist die Verwendung von data=writeback, beider Daten in das Hauptdateisystem geschrieben werden können, nachdem dieMetadaten im Journal festgeschrieben wurden. Diese Option wird häufig als diebeste hinsichtlich der Leistung betrachtet. Sie kann jedoch ermöglichen, dass alteDaten nach einem Absturz und der Wiederherstellung erneut in Dateien auftauchen,während die interne Integrität des Dateisystems bewahrt wird. Sofern nicht andersangegeben, wird Ext3 mit der Standardeinstellung data=ordered gestartet

Dateisysteme in Linux 285

Page 286: Suse 10.1 Linux Reference De

13.2.4 Konvertieren eines Ext2-Dateisystemsin Ext3

Gehen Sie wie folgt vor, um ein Ext2-Dateisystem in Ext3 zu konvertieren:

1 Legen Sie ein Ext3-Journal an, indem Sie tune2fs -j als „root“ ausführen.Dabei wird ein Ext3-Journal mit den Standardparametern erstellt.

Falls Sie selbst die Größe des Journals und dessen Speicherort festlegen möchten,führen Sie stattdessen tune2fs -J zusammen mit den entsprechenden Journa-loptionen size= und device= aus. Weitere Informationen über das Programmtune2fs finden Sie auf der Manualpage „tune2fs“.

2 Um sicherzustellen, dass das Ext3-Dateisystem als solches erkannt wird, bearbei-ten Sie die Datei /etc/fstab als „root“, indem Sie den Dateisystemtyp fürdie entsprechende Partition von ext2 in ext3 ändern. Diese Änderung wirdnach dem nächsten Neustart wirksam.

3 Um ein Root-Dateisystem zu booten, das als Ext3-Partition eingerichtet wurde,nehmen Sie die Module ext3 und jbd in initrd auf. Bearbeiten Sie hierfür/etc/sysconfig/kernel als „root“, indem Sie ext3 und jbd der Varia-blen INITRD_MODULES hinzufügen. Führen Sie nach dem Speichern derÄnderungen den Befehl mkinitrd aus. Damit wird eine neue initrd aufgebautund zur Verwendung vorbereitet.

13.2.5 Reiser4Direkt nach der Veröffentlichung von Kernel 2.6 bekam die Familie der Journaling FileSysteme Zuwachs durch ein weiteres Mitglied: Reiser4. Reiser4 unterscheidet sichgrundlegend von seinem Vorgänger ReiserFS (Version 3.6). Es optimiert die Dateisys-temfunktionalität durch Plugins und bietet ein engmaschigeres Sicherheitskonzept.

Engmaschiges SicherheitskonzeptBei Reiser4 legten die Entwickler besonderen Wert auf die Implementierung vonSicherheitsfunktionen. Reiser4 wird daher mit einem Satz an speziellen Sicherheits-Plugins geliefert. Das wichtigste führt das Konzept von Datei-„Items“ ein. Derzeitwird die Dateizugriffskontrolle pro Datei definiert. Wenn eine umfangreiche Dateirelevante Informationen für mehrere Benutzer, Gruppen oder Anwendungen enthält,

286 Referenz

Page 287: Suse 10.1 Linux Reference De

mussten die Zugriffsrechte ziemlich unpräzise sein, um alle betroffenen Parteienzu berücksichtigen. In Reiser4 können Sie diese Dateien in kleinere Teile (die„Items“) zerlegen. Zugriffsrechte lassen sich dann für jedes Element und jedenBenutzer separat festlegen, was eine viel präzisere Verwaltung der Dateisicherheiterlaubt. Ein perfektes Beispiel ist /etc/passwd. Bisher konnte nur root dieDatei lesen und bearbeiten, während Nicht-root-Benutzer nur Lesezugriff aufdiese Datei erhielten. Mithilfe des Item-Konzepts von Reiser4 können Sie dieseDatei in mehrere Elemente zerlegen (ein Item pro Benutzer) und Benutzern oderAnwendungen erlauben, ihre eigenen Daten zu ändern, aber nicht auf die Datenanderer Benutzer zuzugreifen. Dieses Konzept erhöht sowohl die Sicherheit alsauch die Flexibilität.

Erweiterbarkeit durch PluginsViele Dateisystemfunktionen und externe Funktionen, die ein Dateisystemgewöhnlich nutzt, werden in Reiser4 als Plugins implementiert. Diese Plugins lassensich bequem dem Basissystem hinzufügen. Sie brauchen den Kernel nicht mehrneu zu kompilieren oder die Festplatte neu zu formatieren, um Ihrem Dateisystemneue Funktionen hinzuzufügen.

Besseres Dateisystemlayout durch „Delayed Allocation“Wie XFS unterstützt Reiser4 „Delayed Allocation“ (verzögerte Speicherzuweisung).Siehe Abschnitt 13.2.6, „XFS“ (S. 287). Der Einsatz dieser Technik sogar fürMetadaten kann zu einem besseren Gesamtlayout führen.

13.2.6 XFSUrsprünglich als Dateisystem für ihr IRIX-Betriebssystem gedacht, begann SGI dieEntwicklung von XFS bereits in den frühen 1990er-Jahren. Mit XFS sollte ein leistungs-starkes 64-Bit-Journaling File System geschaffen werden, das den extremen Herausfor-derungen der heutigen Zeit gewachsen ist. XFS eignet sich sehr gut für den Umgangmit großen Dateien und zeigt gute Leistungen auf High-End-Hardware. Jedoch hat auchXFS einen Schwachpunkt. Wie ReiserFS legt XFS großen Wert auf Metadatenintegrität,jedoch weniger auf Datenintegrität.

Ein kurzer Blick auf die Hauptmerkmale von XFS erklärt, warum es sich möglicherweiseals starke Konkurrenz zu anderen Journaling File Systemen in der High-End-Datenver-arbeitung erweisen könnte.

Dateisysteme in Linux 287

Page 288: Suse 10.1 Linux Reference De

Hohe Skalierbarkeit durch den Einsatz von ZuweisungsgruppenBei der Erstellung eines XFS-Dateisystems wird das dem Dateisystem zugrundeliegende Blockgerät in acht oder mehr lineare Bereiche gleicher Größe unterteilt.Diese werden als Zuweisungsgruppen (Allocation Groups) bezeichnet. JedeZuweisungsgruppe verwaltet Inodes und freien Speicher selbst. Zuordnungsgruppenkönnen praktisch als Dateisysteme im Dateisystem betrachtet werden. Da Zuord-nungsgruppen relativ autonom sind, kann der Kernel gleichzeitig mehrere vonihnen adressieren. Diese Funktion ist der Schlüssel zur hohen Skalierbarkeit vonXFS. Das Konzept der autonomen Zuordnungsgruppen kommt natürlicherweiseden Anforderungen von Multiprozessorsystemen entgegen.

Hohe Leistung durch effiziente Verwaltung des FestplattenspeichersFreier Speicher und Inodes werden von B+-Bäumen innerhalb der Zuordnungsgrup-pen verwaltet. Der Einsatz von B+-Bäumen trägt wesentlich zur Leistung undSkalierbarkeit von XFS bei. XFS verwendet Delayed Allocation (verzögerte Spei-cherzuweisung). Es führt die Speicherzuweisung in zwei Schritten durch. Eineausstehende Transaktion wird im RAM gespeichert und der entsprechende Spei-cherplatz reserviert. XFS entscheidet noch nicht, wo genau (d. h. in welchenDateisystemblöcken) die Daten gespeichert werden. Diese Entscheidung wird aufden letztmöglichen Moment hinausgezögert. Einige kurzlebige, temporäre Datenwerden somit niemals auf Platte gespeichert, da sie zum Zeitpunkt der Entscheidungüber ihren Speicherort durch XFS bereits überholt sind. So erhöht XFS die Leistungund verringert die Fragmentierung des Dateisystems. Da jedoch eine verzögerteZuweisung weniger Schreibvorgänge als in anderen Dateisystemen zur Folge hat,ist es wahrscheinlich, dass der Datenverlust nach einem Absturz während einesSchreibvorgangs größer ist.

Vorabzuweisung zur Vermeidung von DateisystemfragmentierungVor dem Schreiben der Daten in das Dateisystem reserviert XFS den benötigtenSpeicherplatz für eine Datei (bzw. weist ihn vorab zu). Damit wird die Dateisys-temfragmentierung erheblich reduziert. Die Leistung wird erhöht, da die Dateiin-halte nicht über das gesamte Dateisystem verteilt werden.

288 Referenz

Page 289: Suse 10.1 Linux Reference De

13.3 Weitere unterstützteDateisysteme

In Tabelle 13.1, „Dateisystemarten unter Linux“ (S. 289) sind weitere von Linuxunterstützte Dateisysteme aufgelistet. Sie werden hauptsächlich unterstützt, um dieKompatibilität und den Datenaustausch zwischen unterschiedlichen Medien oderfremden Betriebssystemen sicherzustellen.

Tabelle 13.1 Dateisystemarten unter Linux

Compressed ROM file system: Ein komprimiertes Dateisystemmit Lesezugriff für ROMs.

cramfs

High Performance File System: Das OS/2-Standarddateisystem– nur im Nur-Lese-Modus unterstützt.

hpfs

Standarddateisystem auf CD-ROMs.iso9660

Dieses Dateisystem wurde ursprünglich für Forschungsprojektezu Betriebssystemen entwickelt und war das erste unter Linux

minix

verwendete Dateisystem. Heute wird es noch für Disketten einge-setzt.

fat, das von DOS stammende Dateisystem, wird heute noch vonverschiedenen Betriebssystemen verwendet.

msdos

Dateisystem zum Einhängen von Novell-Volumes über Netzwerke.ncpfs

Network File System: Hier können Daten auf einem beliebigenvernetzten Rechner gespeichert werden und der Zugriff kann überein Netzwerk erfolgen.

nfs

Server Message Block wird von Produkten wie Windows für denDateizugriff über ein Netzwerk verwendet.

smbfs

Verwendet unter SCO UNIX, Xenix und Coherent (kommerzielleUNIX-Systeme für PCs).

sysv

Dateisysteme in Linux 289

Page 290: Suse 10.1 Linux Reference De

Verwendet von BSD, SunOS und NeXTstep. Nur im Nur-Lese-Modus unterstützt.

ufs

UNIX onMSDOS: Aufgesetzt auf einem normalen fat-Dateisys-tem. Erhält UNIX-Funktionalität (Rechte, Links, lange Datein-amen) durch die Erstellung spezieller Dateien.

umsdos

Virtual FAT: Erweiterung des fat-Dateisystems (unterstütztlange Dateinamen).

vfat

Windows NT File System, Nur-Lese-Modus.ntfs

13.4 Large File Support unter LinuxUrsprünglich unterstützte Linux eine maximale Dateigröße von 2 GB. Mit demzunehmenden Einsatz von Linux für Multimedia und zur Verwaltung riesiger Daten-banken reichte dies nicht mehr aus. Aufgrund des immer häufigeren Einsatzes als Server-Betriebssystem wurden der Kernel und die C Library so angepasst, dass sie auchDateien unterstützen, die größer als 2 GB sind. Dazu wurden neue Schnittstellen einge-führt, die von Anwendungen genutzt werden können. Heutzutage bieten fast allewichtigen Dateisysteme eine Unterstützung von LFS zur High-End-Datenverarbeitung.Tabelle 13.2, „Maximale Größe von Dateisystemen (Festplattenformat)“ (S. 290) bieteteinen Überblick über die derzeitigen Beschränkungen für Linux-Dateien und -Dateisys-teme.

Tabelle 13.2 Maximale Größe von Dateisystemen (Festplattenformat)

Dateisystemgröße(Byte)

Dateigröße (Byte)Dateisystem

241 (2 TB)234 (16 GB)Ext2 oder Ext3 (Blockgröße 1 KB)

243 (8 TB)238 (256 GB)Ext2 oder Ext3 (Blockgröße 2 KB)

243-4096 (16 TB-4096Byte)

241 (2 TB)Ext2 oder Ext3 (Blockgröße 4 KB)

290 Referenz

Page 291: Suse 10.1 Linux Reference De

Dateisystemgröße(Byte)

Dateigröße (Byte)Dateisystem

245 (32 TB)246 (64 TB)Ext2 oder Ext3 (Blockgröße 8 KB)(Systeme mit 8-KB-Seiten, wieAlpha)

245 (32 TB)246 (64 TB)ReiserFS v3

263 (8 EB)263 (8 EB)XFS

263 (8 EB)231 (2 GB)NFSv2 (Client-seitig)

263 (8 EB)263 (8 EB)NFSv3 (Client-seitig)

WICHTIG: Linux-Kernel-Beschränkungen

Tabelle 13.2, „Maximale Größe von Dateisystemen (Festplattenformat)“ (S. 290)beschreibt die Einschränkungen in Abhängigkeit vom Festplattenformat. DerKernel von Version 2.6 hat seine eigenen Einschränkungen für die maximaleGröße von Dateien und Dateisystemen. Dabei handelt es sich um folgende:

DateigrößeDateien können auf 32-Bit-Systemen nicht größer sein als 2 TB (241 Byte).

DateisystemgrößeDateisysteme können bis zu 273 Byte groß sein. Dieses Limit schöpft jedochnoch keine verfügbare Hardware aus.

13.5 Weitere InformationenJedes der oben beschriebenen Dateisystemprojekte unterhält seine eigene Homepage,wo Sie Informationen aus Mailinglisten und weitere Dokumentation sowie FAQerhalten.

• http://e2fsprogs.sourceforge.net/

• http://www.zipworld.com.au/~akpm/linux/ext3/

Dateisysteme in Linux 291

Page 292: Suse 10.1 Linux Reference De

• http://www.namesys.com/

• http://oss.software.ibm.com/developerworks/opensource/jfs/

• http://oss.sgi.com/projects/xfs/

Ein umfassendes mehrteiliges Tutorial zu Linux-Dateisystemen findet sich unterIBM developerWorks: http://www-106.ibm.com/developerworks/library/l-fs.html. Einen Vergleich der verschiedenen Journaling File Systemeunter Linux befindet sich im Beitrag von Juan I. Santos Florido unter Linuxgazette:http://www.linuxgazette.com/issue55/florido.html. Eine ausführ-liche Arbeit zu LFS unter Linux erhalten Sie auf Andreas Jaegers LFS-Site: http://www.suse.de/~aj/linux_lfs.html.

292 Referenz

Page 293: Suse 10.1 Linux Reference De

14Das X Window-SystemDas X Window-System (X11) ist der Industriestandard für grafische Benutzeroberflächenunter UNIX. X ist netzwerkbasiert und ermöglicht es, auf einem Host gestarteteAnwendungen auf einem anderen, über eine beliebige Art von Netzwerk (LAN oderInternet) verbundenen Host anzuzeigen. In diesem Kapitel werden die Einrichtung unddie Optimierung der X Window-Systemumgebung beschrieben. Sie erhalten dabeiHintergrundinformationen über die Verwendung von Schriften unter SUSE Linux underfahren, wie OpenGL und 3D konfiguriert werden.

Der folgende Text enthält mehrere Verweise auf Dokumentation, die sich unter /usr/share/doc/packages/Xorg und /usr/share/doc/howto/en befindet.Dieses Material ist mit den zugehörigen Manualpages nur verfügbar, wenn die entspre-chenden Dokumentationspakete installiert sind (xorg-x11-doc, xorg-x11-manund howtoenh).

14.1 X11-Konfiguration mit SaX2Die grafische Benutzeroberfläche, d. h. der X-Server, ist für die Kommunikation zwi-schen Hardware und Software verantwortlich. Desktops wie KDE und GNOME sowiedie zahlreichen Fenstermanager verwenden den X-Server für die Interaktion mit demBenutzer. Die grafische Benutzeroberfläche wird anfänglich während der Installationkonfiguriert. Um die Einstellungen zu einem späteren Zeitpunkt zu ändern, verwendenSie das entsprechende Modul aus dem YaST-Kontrollzentrum oder starten Sie SaX2manuell über die Befehlszeile mit dem Befehl sax2. Das SaX2-Hauptfenster bieteteine gemeinsame Schnittstelle für die einzelnen Module aus dem YaST-Kontrollzentrum.

Das X Window-System 293

Page 294: Suse 10.1 Linux Reference De

Abbildung 14.1 Das Hauptfenster von SaX2

In der linken Navigationsleiste befinden sich sechs Elemente, die den entsprechendenKonfigurationsdialogfeldern aus dem YaST-Kontrollzentrum entsprechen. Die imFolgenden erwähnten Abschnitte werden in Kapitel Systemkonfiguration mit YaST(↑Start) beschrieben.

MonitorEine Beschreibung der Konfiguration des Monitors und der Grafikkarte finden Siein Abschnitt „Karten- und Monitoreigenschaften“ (Kapitel 2, Systemkonfigurationmit YaST, ↑Start).

MausEine Beschreibung der Mauskonfiguration in der grafischen Umgebung finden Siein Abschnitt „Mauseigenschaften“ (Kapitel 2, Systemkonfiguration mit YaST,↑Start).

TastaturEine Beschreibung der Tastaturkonfiguration in der grafischen Umgebung findenSie in Abschnitt „Tastatureigenschaften“ (Kapitel 2, Systemkonfiguration mit YaST,↑Start).

294 Referenz

Page 295: Suse 10.1 Linux Reference De

GrafiktablettEine Beschreibung der Konfiguration des Grafiktabletts finden Sie inAbschnitt „Tablet-Eigenschaften“ (Kapitel 2, Systemkonfigurationmit YaST, ↑Start).

TouchscreenEine Beschreibung der Konfiguration des Touchscreens finden Sie inAbschnitt „Touchscreen-Eigenschaften“ (Kapitel 2, Systemkonfiguration mit YaST,↑Start).

VNCEine Beschreibung der VNC-Konfiguration finden Sie in Abschnitt „Eigenschaftenfür entfernten Zugriff“ (Kapitel 2, Systemkonfiguration mit YaST, ↑Start).

14.2 Optimierung der X-KonfigurationX.Org ist eine Open-Source-Implementierung des X Window-Systems. Es wird vonder X.Org Foundation weiterentwickelt, die auch für die Entwicklung neuer Technolo-gien und Standards für das X Window-System verantwortlich ist.

Die Konfiguration kann manuell angepasst werden, um eine bestmögliche Nutzung derverfügbaren Hardware wie Maus, Grafikkarte, Monitor und Tastatur zu gewährleisten.Einige Aspekte dieser Optimierung werden im Folgenden erläutert. Detaillierte Infor-mationen zur Konfiguration des X Window-Systems finden Sie in den verschiedenenDateien im Verzeichnis /usr/share/doc/packages/Xorg und erhalten Siedurch Eingabe von man xorg.conf.

WARNUNG

Seien Sie sehr vorsichtig, wenn Sie die Konfiguration des X Window-Systemsändern. Starten Sie auf keinen Fall das X Window-System, bevor die Konfigura-tion abgeschlossen ist. Ein falsch konfiguriertes System kann Ihre Hardwareirreparabel beschädigen (dies gilt insbesondere für Monitore mit fester Fre-quenz). Die Autoren dieses Buchs und die Entwickler von SUSE Linux überneh-men keine Haftung für mögliche Schäden. Die folgenden Informationenbasieren auf sorgfältiger Recherche. Es kann jedoch nicht garantiert werden,dass alle hier aufgeführten Methoden fehlerfrei sind und keinen Schaden anIhrer Hardware verursachen können.

Das X Window-System 295

Page 296: Suse 10.1 Linux Reference De

Die Programme SaX2 und xorgconfig erstellen die Datei xorg.conf standardmäßigunter /etc/X11. Dabei handelt es sich um die primäre Konfigurationsdatei für dasX Window-System. Hier finden Sie alle Einstellungen, die Grafikkarte, Maus undMonitor betreffen.

In den folgenden Abschnitten wird die Struktur der Konfigurationsdatei /etc/X11/xorg.conf beschrieben. Sie ist in mehrere Abschnitte gegliedert, die jeweils fürbestimmte Aspekte der Konfiguration verantwortlich sind. Jeder Abschnitt beginnt mitdem Schlüsselwort Section <Bezeichnung> und endet mit EndSection. DieAbschnitte haben folgende Form:Section designation entry 1 entry 2 entry nEndSection

Die verfügbaren Abschnittstypen finden Sie in Tabelle 14.1, „Abschnitte in/etc/X11/xorg.conf“ (S. 296).

Tabelle 14.1 Abschnitte in /etc/X11/xorg.conf

BedeutungTyp

In diesem Abschnitt werden die Pfade definiert, die für Schriftenund die RGB-Farbtabelle verwendet werden.

Files

Hier werden allgemeine Parameter festgelegt.ServerFlags

Eingabegeräte wie Tastaturen und spezielle Eingabegeräte(Touchpads, Joysticks usw.) werden in diesem Abschnitt konfi-

InputDevice

guriert. Wichtige Parameter in diesem Abschnitt sind Driverund die Optionen für Protocol und Device.

Beschreibt den verwendeten Monitor. Die einzelnen Elementedieses Abschnitts sind der Name, auf den später in der Definition

Monitor

von Screen verwiesen wird, die Bandbreite (bandwidth)und die Grenzwerte für die Synchronisierungsfrequenz(HorizSync und VertRefresh). Die Einstellungen sind inMHz, kHz und Hz angegeben. Normalerweise akzeptiert derServer nur Modeline-Werte, die den Spezifikationen des Moni-

296 Referenz

Page 297: Suse 10.1 Linux Reference De

BedeutungTyp

tors entsprechen. Dies verhindert, dass der Monitor versehentlichmit zu hohen Frequenzen angesteuert wird.

Hier werden Modeline-Parameter für die einzelnen Bildschirm-auflösungen gespeichert. Diese Paramter können von SaX2 auf

Modes

Grundlage der vom Benutzer vorgegebenen Werte berechnetwerden und müssen in der Regel nicht geändert werden. NehmenSie hier beispielsweise dann Änderungen vor, wenn Sie einenMonitor mit fester Frequenz anschließen möchten. Details zurBedeutung der einzelnen Zahlenwerte finden Sie in den HOW-TO-Dateien unter /usr/share/doc/howto/en/XFree86-Video-Timings-HOWTO.

In diesem Abschnitt wird eine bestimmte Grafikkarte definiert.Sie wird mit ihrem beschreibenden Namen angeführt.

Gerät

Hier wird eine Verbindung zwischen einem Monitor und einerGrafikkarte (Device) hergestellt, um alle erforderlichen Ein-

Screen

stellungen für X.Org bereitzustellen. Im UnterabschnittDisplay können Sie die Größe des virtuellen Bildschirms(Virtual), den ViewPort und die Modes für diesen Bild-schirm festlegen.

In diesem Abschnitt wird das Layout einer Single- oder Multi-head-Konfiguration beschrieben. In diesem Abschnitt werden

ServerLayout

Kombinationen aus Eingabegeräten (InputDevice) undAnzeigegeräten (Screen) festgelegt.

Monitor, Device und Screen werden im Folgenden noch genauer erläutert. Wei-tere Informationen zu den anderen Abschnitten finden Sie auf den Manualpages von X.Org und xorg.conf.

Die Datei xorg.conf kann mehrere unterschiedliche Abschnitte vom Typ Monitorund Device enthalten. Manchmal gibt es sogar mehrere Abschnitte vom Typ Screen.In diesem Fall gibt der darauf folgende Abschnitt ServerLayout an, welcher dieserAbschnitte genutzt wird.

Das X Window-System 297

Page 298: Suse 10.1 Linux Reference De

14.2.1 Abschnitt „Screen“Der Abschnitt „Screen“ kombiniert einen Monitor mit einem Device-Abschnitt undlegt fest, welche Auflösung und Farbtiefe verwendet werden sollen. Der Abschnitt„Screen“ kann beispielsweise wie in Beispiel 14.1, „Abschnitt „Screen“ der Datei/etc/X11/xorg.conf“ (S. 298) aussehen.

Beispiel 14.1 Abschnitt „Screen“ der Datei /etc/X11/xorg.confSection „Screen“ DefaultDepth 16 SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" Virtual 1152x864 EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection SubSection "Display" Depth 32 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" EndSubSection Device "Device[0]" Identifier "Screen[0]" Monitor "Monitor[0]"EndSection

In der Zeile Identifier (hier Screen[0]) wird für diesen Abschnitt ein Namevergeben, der als eindeutige Referenz im darauf folgenden Abschnitt ServerLayoutverwendet werden kann. Die Zeilen Device und Monitor geben die Grafikkarteund den Monitor an, die zu dieser Definition gehören. Hierbei handelt es sich nur umVerbindungen zu den Abschnitten Device und Monitor mit ihren entsprechendenNamen bzw. Kennungen (identifiers). Diese Abschnitte werden weiter unten detailliertbeschrieben.

Wählen Sie mit der Einstellung DefaultDepth die Farbtiefe aus, die der Serververwenden soll, wenn er nicht mit einer bestimmten Farbtiefe gestartet wird. Für jedeFarbtiefe gibt es einen Unterabschnitt Display. Das Schlüsselwort Depth weist diefür diesen Unterabschnitt gültige Farbtiefe zu. Mögliche Werte für Depth sind 8, 15,16 und 24. Nicht alle X-Server-Module unterstützen diese Werte.

298 Referenz

Page 299: Suse 10.1 Linux Reference De

Unterhalb der Farbtiefe wird eine Liste der Auflösungen im AbschnittModes festgelegt.Diese Liste wird vom X-Server von links nach rechts gelesen. Zu jeder Auflösung suchtder X-Server eine passende Modeline im Abschnitt Modes. Die Modeline ist vonden Fähigkeiten des Monitors und der Grafikkarte abhängig. Die Einstellungen unterMonitor bestimmen die Modeline.

Die erste passende Auflösung ist der Standardmodus (Default mode). Mit Strg +Alt + + (auf dem Ziffernblock) können Sie zur nächsten Auflösung rechts in derListe wechseln. Mit Strg + Alt + – (auf dem Ziffernblock) können Sie nach linkswechseln. So lässt sich die Auflösung ändern, während X ausgeführt wird.

Die letzte Zeile des Unterabschnitts Display mit Depth 16 bezieht sich auf dieGröße des virtuellen Bildschirms. Die maximal mögliche Größe eines virtuellen Bild-schirms ist von der Menge des Arbeitsspeichers auf der Grafikkarte und dergewünschten Farbtiefe abhängig, nicht jedoch von der maximalen Auflösung desMonitors. Da moderne Grafikkarten über viel Grafikspeicher verfügen, können Sie sehrgroße virtuelle Desktops erstellen. Gegebenenfalls ist es aber nicht mehr möglich, 3-D-Funktionen zu nutzen, wenn ein virtueller Desktop den größten Teil des Grafikspei-chers belegt. Wenn die Grafikkarte beispielsweise über 16 MB RAM verfügt, kann dervirtuelle Bildschirm bei einer Farbtiefe von 8 Bit bis zu 4096 x 4096 Pixel groß sein.Insbesondere bei beschleunigten Grafikkarten ist es nicht empfehlenswert, den gesamtenArbeitsspeicher für den virtuellen Bildschirm zu verwenden, weil dieser Speicher aufder Karte auch für diverse Schrift- und Grafik-Caches genutzt wird.

14.2.2 Abschnitt „Device“Im Abschnitt „Device“ wird eine bestimmte Grafikkarte beschrieben. Es kann einebeliebige Anzahl von Grafikkarteneinträgen in xorg.conf vorhanden sein, solangederen Namen sich unterscheiden, d. h. solange ein eindeutiger Name mithilfe desSchlüsselworts Identifier festgelegt ist. Als generelle Regel gilt, dass bei derInstallation mehrerer Grafikkarten die Abschnitte einfach der Reihe nach nummeriertwerden. Die erste wird als Device[0], die zweite als Device[1] usw. eingetragen.Folgendes ist ein Auszug aus dem AbschnittDevice eines Computers mit einer MatroxMillennium-PCI-Grafikkarte:Section „Device“ BoardName "MGA2064W" BusID "0:19:0" Driver "mga" Identifier "Device[0]" VendorName "Matrox"

Das X Window-System 299

Page 300: Suse 10.1 Linux Reference De

Option "sw_cursor"EndSection

Wenn Sie SaX2 für die Konfiguration einsetzen, sollte der Abschnitt „Device“ in etwawie in diesem Beispiel aussehen. Die Einträge unter Driver und BusID sind von derHardware Ihres Computer abhängig und werden automatisch von SaX2 erkannt. DerWert unter BusID steht für den PCI- oder AGP-Steckplatz, in dem die Grafikkarteinstalliert ist. Dieser entspricht der ID, die bei Eingabe des Befehls „lspci“ angezeigtwird. Der X-Server benötigt Details im Dezimalformat, lspci zeigt diese jedoch imHexadezimalformat an.

Über den Parameter Driver geben Sie den Treiber an, der für diese Grafikkarte ver-wendet werden soll. Wenn es sich um eine Matrox Millennium-Grafikkarte handelt,heißt das Treibermodulmga. Anschließend durchsucht der X-Server denModulePath,der im Abschnitt Files des Unterverzeichnisses drivers angegeben ist. Bei einerStandardinstallation handelt es sich hierbei um das Verzeichnis /usr/X11R6/lib/modules/drivers. _drv.owird an den Namen angehängt, sodass beispielsweiseim Falle des mga-Treibers die Treiberdatei mga_drv.o geladen wird.

Das Verhalten des X-Servers bzw. des Treibers kann außerdem durch weitere Optionenbeeinflusst werden. Ein Beispiel hierfür ist die Option sw_cursor, die im Abschnitt„Device“ festgelegt wird. Diese deaktiviert den Hardware-Mauszeiger und stellt denMauszeiger mithilfe von Software dar. Abhängig vom Treibermodul können verschie-dene Optionen verfügbar sein. Diese finden Sie in den Beschreibungsdateien der Trei-bermodule im Verzeichnis /usr/X11R6/lib/X11/doc. Allgemein gültigeOptionen finden Sie außerdem auf den entsprechenden Manualpages (manxorg.confund man X.Org).

14.2.3 Abschnitte „Monitor“ und „Modes“So wie die Abschnitte vom Typ Device jeweils für eine Grafikkarte verwendet werden,beschreiben die Abschnitte Monitor und Modes jeweils einen Monitor. Die Konfi-gurationsdatei /etc/X11/xorg.conf kann beliebig viele Abschnitte vom TypMonitor enthalten. Der Abschnitt „ServerLayout“ gibt an, welcherMonitor-Abschnitt zu verwenden ist.

Monitordefinitionen sollten nur von erfahrenen Benutzern festgelegt werden. DieModelines stellen einen bedeutenden Teil der Monitor-Abschnitte dar. Modelineslegen die horizontalen und vertikalen Frequenzen für die jeweilige Auflösung fest. Die

300 Referenz

Page 301: Suse 10.1 Linux Reference De

Monitoreigenschaften, insbesondere die zulässigen Frequenzen, werden im AbschnittMonitor gespeichert.

WARNUNG

Wenn Sie nicht über fundierte Kenntnisse zu Monitor- und Grafikkartenfunk-tionen verfügen, sollten Sie an den Modelines keine Änderungen vornehmen,weil dies Ihren Monitor schwer beschädigen kann.

Falls Sie Ihre eigenen Monitorbeschreibungen entwickeln möchten, sollten Sie sichgenauestens mit der Dokumentation unter/usr/X11/lib/X11/doc vertraut machen.In diesem Zusammenhang soll besonders auf den Abschnitt zu den Grafikmodi hinge-wiesen werden. In ihm wird detailliert beschrieben, wie die Hardware funktioniert undwie Modelines zu erstellen sind.

Heutzutage ist es nur sehr selten erforderlich, Modelines manuell festzulegen. WennSie mit einem modernen Multisync-Monitor arbeiten, können die zulässigen Frequenzenund die optimalen Auflösungen in aller Regel vom X-Server direkt per DDC vomMonitor abgerufen werden, wie im SaX2-Konfigurationsabschnitt beschrieben. Ist diesaus irgendeinem Grund nicht möglich, können Sie auf einen der VESA-Modi des X-Servers zurückgreifen. Dies funktioniert in Verbindung mit praktisch allen Kombina-tionen aus Grafikkarte und Monitor.

14.3 Installation und Konfigurationvon Schriften

Die Installation zusätzlicher Schriften unter SUSE Linux ist sehr einfach. Kopieren Sieeinfach die Schriften in ein beliebiges Verzeichnis im X11-Pfad für Schriften (sieheAbschnitt 14.3.1, „X11 Core-Schriften“ (S. 302)). Damit die Schriften verwendet werdenkönnen, sollte das Installationsverzeichnis ein Unterverzeichnis der Verzeichnisse sein,die in /etc/fonts/fonts.conf konfiguriert sind (siehe Abschnitt 14.3.2, „Xft“(S. 303)).

Die Schriftdateien können manuell (vom root) in ein geeignetes Verzeichnis, beispiels-weise /usr/X11R6/lib/X11/fonts/truetype, kopiert werden. Alternativkann diese Aktion auch mithilfe des KDE-Schrift-Installationsprogramms im KDE-Kontrollzentrum durchgeführt werden. Das Ergebnis ist dasselbe.

Das X Window-System 301

Page 302: Suse 10.1 Linux Reference De

Anstatt die eigentlichen Schriften zu kopieren, können Sie auch symbolische Linkserstellen. Beispielsweise kann dies sinnvoll sein, wenn Sie lizenzierte Schriften aufeiner gemounteten Windows-Partition haben und diese nutzen möchten. Führen Sieanschließend SuSEconfig --module fonts aus.

SuSEconfig --module fonts startet das Skript/usr/sbin/fonts-config,das sich um die Konfiguration der Schriften kümmert. Weitere Informationen zurArbeitsweise dieses Skripts finden Sie auf der Manualpage des Skripts (manfonts-config).

Die Vorgehensweise ist für Bitmap-, TrueType- und OpenType-Schriften sowie Type1-Schriften (PostScript) dieselbe. Alle diese Schriften können in einem beliebigen Ver-zeichnis installiert werden. Nur für CID-keyed-Schriften ist eine geringfügig unterschied-liche Vorgehensweise erforderlich. Weitere Informationen hierzu finden Sie inAbschnitt 14.3.3, „CID-keyed-Schriften“ (S. 307).

X.Org enthält zwei völlig unterschiedliche Schriftsysteme: das alte X11 Core-Schrift-system und das neu entwickelte System Xft/fontconfig. In den folgenden Abschnittenwird kurz auf diese beiden Systeme eingegangen.

14.3.1 X11 Core-SchriftenHeute unterstützt das X11 Core-Schriftsystem nicht nur Bitmap-Schriften, sondernauch skalierbare Schriften wie Type1-, TrueType- und OpenType-Schriften sowie CID-keyed-Schriften. Skalierbare Schriften werden nur ohne Antialiasing und Subpixel-Rendering unterstützt und das Laden von großen skalierbaren Schriften mit Zeichenfür zahlreiche Sprachen kann sehr lange dauern. Unicode-Schriften werden ebenfallsunterstützt, aber ihre Verwendung kann mit erheblichem Zeitaufwand verbunden seinund erfordert mehr Speicher.

Das X11 Core-Schriftsystem weist mehrere grundsätzliche Schwächen auf. Es istüberholt und kann nicht mehr sinnvoll erweitert werden. Zwar muss es noch ausGründen der Abwärtskompatibilität beibehalten werden, doch das modernere System„Xft/fontconfig“ sollte immer verwendet werden, wenn es möglich ist.

Der X-Server muss die verfügbaren Schriften und deren Speicherorte im System kennen.Dies wird durch Verwendung der Variablen FontPath erreicht, in der die Pfade zu allengültigen Schriftverzeichnissen des Systems vermerkt sind. In jedem dieser Verzeichnissesind die dort verfügbaren Schriften in einer Datei mit dem Namen fonts.dir aufge-

302 Referenz

Page 303: Suse 10.1 Linux Reference De

führt. Der FontPath wird vom X-Server beim Systemstart erzeugt. Der Server sucht anjedem Speicherort, auf den die FontPath-Einträge der Konfigurationsdatei /etc/X11/xorg.conf verweisen, nach einer gültigenfonts.dir-Datei. Diese Einträgebefinden sich im Abschnitt Files. Der FontPath lässt sich mit dem Befehl xset qanzeigen. Dieser Pfad kann auch zur Laufzeit mit dem Befehl „xset“ geändert werden.Zusätzliche Pfade werden mithilfe vonxset+fp <Pfad> hinzugefügt. UnerwünschtePfade lassen sich mit xset -fp <Pfad> löschen.

Wenn der X-Server bereits aktiv ist, können Sie neu installierte Schriften in gemountetenVerzeichnissen mit dem Befehl xset fp rehash verfügbar machen. Dieser Befehlwird von SuSEconfig --module fonts ausgeführt. Da zur Ausführung desBefehls xset Zugriff auf den laufenden X-Server erforderlich ist, ist dies nur möglich,wennSuSEconfig--module fonts von einer Shell aus gestartet wird, die Zugriffauf den laufenden X-Server hat. Am einfachsten lässt sich dies mitroot-Berechtigungenerreichen. Geben Sie hierzu su und das root-Passwort ein. su überträgt die Zugriffsbe-rechtigungen des Benutzers, der den X-Server gestartet hat, an die root-Shell. WennSie überprüfen möchten, ob die Schriften ordnungsgemäß installiert wurden und überdas X11 Core-Schriftsystem verfügbar sind, geben Sie den Befehl xlsfonts ein, umalle verfügbaren Schriften aufzulisten.

Standardmäßig arbeitet SUSE Linux mit UTF-8-Gebietsschemata. Daher sollten nachMöglichkeit Unicode-Schriften verwendet werden (Schriftnamen, die in der vonxlsfonts ausgegebenen Liste auf iso10646-1 enden). Alle verfügbaren Unicode-Schriften lassen sich über den Befehl xlsfonts | grep iso10646-1 auflisten.Praktisch alle Unicode-Schriften, die unter SUSE Linux zur Verfügung stehen, umfassenzumindest die für europäische Sprachen erforderlichen Schriftzeichen (früher alsiso-8859-* kodiert).

14.3.2 XftDie Programmierer von Xft haben von Anfang an sichergestellt, dass auch skalierbareSchriften, die Antialiasing nutzen, problemlos unterstützt werden. Bei Verwendungvon Xft werden die Schriften von der Anwendung, die die Schriften nutzt, und nichtvom X-Server gerendert, wie es beim X11 Core-Schriftsystem der Fall ist. Auf dieseWeise hat die jeweilige Anwendung Zugriff auf die eigentlichen Schriftdateien undkann genau steuern, wie die Zeichen gerendert werden. Dies bildet eine optimale Basisfür die ordnungsgemäße Textdarstellung für zahlreiche Sprachen. Direkter Zugriff aufdie Schriftdateien ist sehr nützlich, wenn Schriften für die Druckausgabe eingebettet

Das X Window-System 303

Page 304: Suse 10.1 Linux Reference De

werden sollen. So lässt sich sicherstellen, dass der Ausdruck genau der Bildschirmdar-stellung entspricht.

Unter SUSE Linux nutzen die beiden Desktopumgebungen KDE und GNOME sowieMozilla und zahlreiche andere Anwendungen bereits standardmäßig Xft. Xft wirdinwischen von mehr Anwendungen genutzt als das alte X11 Core-Schriftsystem.

Xft greift für die Suche nach Schriften und für deren Darstellung auf die fontconfig-Bibliothek zurück. Die Eigenschaften von „fontconfig“ werden durch die globaleKonfigurationsdatei /etc/fonts/fonts.conf und die benutzerspezifische Kon-figurationsdatei ~/.fonts.conf bestimmt. Jede dieser fontconfig-Konfigurations-dateien muss folgendermaßen beginnen:<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig>

Enden müssen die Dateien wie folgt:</fontconfig>

Wenn Sie möchten, dass weitere Verzeichnisse nach Schriften durchsucht werden sollen,fügen Sie Zeilen in der folgenden Weise hinzu:<dir>/usr/local/share/fonts/</dir>

Dies ist jedoch in der Regel nicht erforderlich. Standardmäßig ist das benutzerspezifischeVerzeichnis~/.fonts bereits in die Datei/etc/fonts/fonts.conf eingetragen.Entsprechend müssen Sie die zusätzlichen Schriften einfach nur nach ~/.fontskopieren, um sie zu installieren.

Außerdem können Sie Regeln angeben, die die Darstellung der Schriften beeinflussen.Geben Sie beispielsweise Folgendes ein:<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit></match>

Hierdurch wird das Antialiasing für alle Schriften aufgehoben. Wenn Sie hingegen<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test>

304 Referenz

Page 305: Suse 10.1 Linux Reference De

<edit name="antialias" mode="assign"> <bool>false</bool> </edit></match>

eingeben, wird das Antialiasing nur für bestimmte Schriften aufgehoben.

Standardmäßig verwenden die meisten Anwendungen die Schriftbezeichnungensans-serif (bzw. sans), serif oder monospace. Hierbei handelt es sich nichtum eigentliche Schriften, sondern nur um Aliasnamen, die je nach Spracheinstellungin eine passende Schrift umgesetzt werden.

Benutzer können problemlos Regeln zur Datei ~/.fonts.conf hinzufügen, damitdiese Aliasnamen in ihre bevorzugten Schriften umgesetzt werden:<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer></alias><alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer></alias><alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer></alias>

Da fast alle Anwendungen standardmäßig mit diesen Aliasnamen arbeiten, betrifftdiese Änderung praktisch das gesamte System. Daher können Sie nahezu überall sehreinfach Ihre Lieblingsschriften verwenden, ohne die Schrifteinstellungen in den einzelnenAnwendungen ändern zu müssen.

Mit dem Befehl fc-list finden Sie heraus, welche Schriften installiert sind undverwendet werden können. Der Befehlfc-list gibt eine Liste aller Schriften zurück.Wenn Sie wissen möchten, welche der skalierbaren Schriften (:scalable=true)alle erforderlichen Zeichen für Hebräisch (:lang=he) enthalten und Sie deren Namen(family), Schnitt (style) und Stärke (weight) sowie die Namen der entsprechendenSchriftdateien anzeigen möchten, geben Sie folgenden Befehl ein:fc-list ":lang=he:scalable=true" family style weight

Das X Window-System 305

Page 306: Suse 10.1 Linux Reference De

Auf diesen Befehl kann beispielsweise Folgendes zurückgegeben werden:

FreeSansBold.ttf: FreeSans:style=Bold:weight=200FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200FreeSerif.ttf: FreeSerif:style=Medium:weight=80FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80FreeMono.ttf: FreeMono:style=Medium:weight=80FreeSans.ttf: FreeSans:style=Medium:weight=80FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

In der folgenden Tabelle finden Sie wichtige Parameter, die mit dem Befehl fc-listabgefragt werden können:

Tabelle 14.2 Parameter zur Verwendung mit fc-list

Bedeutung und zulässige WerteParameter

Der Name der Schriftamilie, z. B. FreeSans.family

Der Hersteller der Schrift, z. B. urw.foundry

Der Schriftschnitt, z. B. Medium, Regular, Bold,Italic oder Heavy.

style

Die Sprache, die von dieser Schrift unterstützt wird, z. B.de für Deutsch, ja für Japanisch, zh-TW für traditionellesChinesisch oder zh-CN für vereinfachtes Chinesisch.

lang

Die Schriftstärke, z. B. 80 für normale Schrift oder 200 fürFettschrift.

weight

Die Schriftneigung, in der Regel 0 für gerade Schrift und100 für Kursivschrift.

slant

Der Name der Schriftdatei.file

306 Referenz

Page 307: Suse 10.1 Linux Reference De

Bedeutung und zulässige WerteParameter

true für Konturschriften oderfalse für sonstige Schriften.outline

true für skalierbare Schriften oder false für sonstigeSchriften.

scalable

true für Bitmap-Schriften oder false für sonstigeSchriften.

bitmap

Schriftgröße in Pixel. In Verbindung mit dem Befehl "fc-list" ist diese Option nur bei Bitmap-Schriften sinnvoll.

pixelsize

14.3.3 CID-keyed-SchriftenIm Gegensatz zu den anderen Schrifttypen können Sie CID-keyed-Schriften nicht einfachin einem beliebigen Verzeichnis installieren. CID-keyed-Schriften müssen in /usr/share/ghostscript/Resource/CIDFont installiert werden. Dies gilt nichtfür Xft/fontconfig, ist jedoch für Ghostscript und das X11 Core-Schriftsystem erforder-lich.

TIPP

Weitere Informationen zu Schriften unter X11 finden Sie unter http://www.xfree86.org/current/fonts.html.

14.4 OpenGL – 3D-Konfiguration

14.4.1 Hardware-UnterstützungSUSE Linux beinhaltet mehrere OpenGL-Treiber zur Unterstützung von 3D-Hardware.Tabelle 14.3, „Unterstützte 3D-Hardware“ (S. 308) bietet eine Übersicht.

Das X Window-System 307

Page 308: Suse 10.1 Linux Reference De

Tabelle 14.3 Unterstützte 3D-Hardware

Unterstützte HardwareOpenGL-Treiber

nVidia-Chips: alle außer einigen veralteten Chipsätzen(GeForce2 und älter)

nVidia

Intel i810/i815/i830M,DRI

Intel 845G/852GM/855GM/865G/915G,915GM/945G

Matrox G200/G400/G450/G550,

ATI Rage 128(Pro)/Radeon (bis 9250)

Wenn Sie das erste Mal mit YaST installieren, kann bei der Installation 3D-Beschleu-nigung aktiviert werden, sofern YaST 3D-Unterstützung erkennt. Für nVidia-Grafikchipsmuss zuvor der nVidia-Treiber installiert werden. Wählen Sie dafür den nVidia-Treiber-Patch in YOU (YaST Online Update) aus. Aus Lizenzgründen ist der nVidia-Treiberin diesem Paket nicht inbegriffen.

Wenn Sie stattdessen Ihr System aktualisieren, ist die Prozedur für das Konfigurierender 3D-Hardware-Unterstützung eine andere. Sie hängt vom verwendeten OpenGL-Treiber ab. Weitere Einzelheiten erhalten Sie im folgenden Abschnitt.

14.4.2 OpenGL-TreiberDie OpenGL-Treiber nVidia und DRI lassen sich einfach mit SaX2 konfigurieren. FürnVidia-Adapter muss zuvor der nVidia-Treiber installiert werden. Geben Sie den Befehl3Ddiag ein, um zu prüfen, ob die Konfiguration für nVidia oder DRI korrekt ist.

Aus Sicherheitsgründen dürfen nur Benutzer, die der Gruppe video angehören, aufdie 3D-Hardware zugreifen. Stellen Sie daher sicher, dass alle lokalen Benutzer Mit-glieder dieser Gruppe sind. Andernfalls wird die langsame Software-Rendering-Aus-weichlösung des OpenGL-Treibers für OpenGL-Anwendungen benutzt. VerwendenSie den Befehl id, um zu prüfen, ob der aktuelle Benutzer der Gruppe video angehört.Wenn dies nicht der Fall ist, nehmen Sie den Benutzer mithilfe von YaST in dieGruppe auf.

308 Referenz

Page 309: Suse 10.1 Linux Reference De

14.4.3 Das Diagnosewerkzeug 3DdiagDas Diagnosewerkzeug 3Ddiag ermöglicht die Überprüfung der 3D-Konfiguration inSUSE Linux. Dabei handelt es sich um ein Befehlszeilenwerkzeug, das in einem Ter-minalfenster gestartet werden muss. Geben Sie 3Ddiag -h ein, um mögliche Optionenfür 3Ddiag aufzulisten.

Um die X.Org-Konfiguration zu verifizieren, prüft das Werkzeug, ob die für 3D-Unterstützung erforderlichen Pakete installiert sind und die korrekte OpenGL-Bibliothekund GLX-Erweiterung verwendet werden. Befolgen Sie die Anweisungen von 3Ddiag,wenn Sie Fehlermeldungen erhalten. Wenn alles korrekt ist, sehen Sie am Bildschirmnur Meldungen mit "done" (fertig).

14.4.4 OpenGL-Test-DienstprogrammeFür das Testen von OpenGL können das Programm glxgears und Spiele wietuxracer und armagetron (Pakete haben denselben Namen) nützlich sein. Wenn3D-Unterstützung aktiviert wurde, sollte es möglich sein, diese drei reibungslos aufeinem relativ neuen Computer auszuführen. Ohne 3D-Unterstützung würden dieseSpiele sehr langsam ablaufen (Diashow-Effekt). Verwenden Sie den Befehl glxinfo,um zu prüfen, ob 3D aktiv ist. Wenn ja, enthält die Ausgabe eine Zeile mit directrendering: Yes (Direktes Rendering: Ja).

14.4.5 FehlerbehebungWenn die OpenGL-3D-Testergebnisse negativ sind (die Spiele laufen nicht reibunglos),verwenden Sie 3Ddiag, um sicherzustellen, dass die Konfiguration keine Fehler enthält(Fehlermeldungen). Wenn die Korrektur nicht hilft oder keine Fehlermeldungen aufge-taucht sind, sehen Sie die X.Org-Protokolldateien an.

Häufig finden Sie in der X.Org-Datei /var/log/Xorg.0.log die Zeile DRI isdisabled (DRI ist deaktiviert). Die genaue Ursache lässt sich nur durch genauePrüfung der Protokolldatei erkennen – eine Aufgabe, die einige Erfahrung voraussetzt.

In solchen Fällen liegt kein Konfigurationsfehler vor, da diesen bereits 3Ddiag erkannthätte. Daher besteht an dieser Stelle nur die Möglichkeit, die Software-Rendering-Ausweichlösung des DRI-Treibers zu verwenden, die keine 3D-Hardwareunterstützung

Das X Window-System 309

Page 310: Suse 10.1 Linux Reference De

bietet. Sie sollten auch bei Auftreten von OpenGL-Darstellungsfehlern oder Instabilitätohne 3D-Unterstützung arbeiten. Verwenden Sie SaX2, um 3D-Unterstützung vollständigzu deaktivieren.

14.4.6 InstallationssupportAbgesehen von derSoftware-Rendering-Ausweichlösung des DRI-Treibersbefinden sich einige OpenGL-Treiber in Linux noch in der Entwicklungsphase undwerden daher als experimentell betrachtet. Diese Treiber sind wegen der hohen Anfor-derung für 3D-Hardwarebeschleunigung in Linux im Paket enthalten. In Anbetrachtdes experimentellen Status von einigen OpenGL-Treibern kann SUSE keinen Installa-tionssupport für die Konfiguration von 3D-Hardwarebeschleunigung geben oder beizugehörigen Problemen weiteren Beistand leisten. Die Basiskonfiguration der grafischenBenutzeroberfläche (X Window System) umfasst keine Konfiguration für 3D-Hardwa-rebeschleunigung. Wenn Sie Probleme mit der 3D-Hardwarebeschleunigung feststellen,wird empfohlen, die 3D-Unterstützung vollständig zu deaktivieren.

14.4.7 Weitere InformationenInformationen erhalten Sie in den README-Dateien unter/usr/X11R6/lib/X11/doc. Weitere Informationen zur nVidia-Treiberinstallation finden Sie unter http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html.

310 Referenz

Page 311: Suse 10.1 Linux Reference De

15FreeNX: Fernsteuerung einesanderen ComputersFreeNX ist eine GPL-Implementierung von NX-Server für entfernten Zugriff auf undAnzeige von einem anderen Computer. Es bietet beinahe die Reaktionsgeschwindigkeiteiner lokalen Anwendung über Verbindungen mit hoher Latenz und geringer Bandbreite.

15.1 Erste Schritte in NXDie folgenden Schritte umreißen das grundlegende Verfahren beim Einrichten von NXfür bis zu 10 Clients, die mit dem NX-Server verbunden sein können:

1 Installieren Sie die folgenden Pakete auf dem Server- und Client-Rechner mithilfedes YaST-Moduls „Software installieren oder löschen“:

Client-RechnerServer-Rechner

• NX• NX

• • knx (für KDE-Sitzungen)FreeNX

• NoMachine nxclient (für Nicht-KDE-Sitzungen)

FreeNX: Fernsteuerung eines anderen Computers 311

Page 312: Suse 10.1 Linux Reference De

2 Richten Sie den NX-Server ein, indem Sie den folgenden Befehl als „root“ ein-geben:nxsetup --install --clean --purge --setup-nomachine-key

Der Server wird entsprechend den Standardeinstellungen in /etc/nxserver/node.conf ausgeführt. Jeder Benutzer kann eine Verbindung von einer anderenArbeitsstation aus aufbauen. Informationen zur erweiterten X-Server-Konfigura-tion finden Sie unter Abschnitt 15.2, „Erweiterte FreeNX-Konfiguration“ (S. 314).

Wenn Sie eine sicherere Einrichtung mit privaten Schlüsseln für jeden Clientwünschen, beachten Sie die Anleitungen unter Abschnitt 15.2.1, „Konfigurierenvon SSH-Authentifizierung mit Client-Schlüsseln“ (S. 314).

3 Konfigurieren Sie die Firewall auf dem Rechner, der den NX-Server bereitstellt,um NX-Verbindungen zu erlauben.

a Melden Sie sich am Server-Rechner als „root“ an und starten Sie das YaST-Firewall-Modul.

b Wählen Sie Erlaubte Dienste, um das Dialogfeld für die Servicekonfigura-tion zu öffnen, und wählen Sie Externe Zone.

c Wählen Sie Erweitert, um die Portdaten für NX einzugeben.

d Öffnen Sie die Ports 22 (SSH), 5000 bis 5009 sowie 7000 bis 7009, um NX-Datenverkehr zu gestatten. Geben Sie hierzu Folgendes in TCP-Ports ein:22 5000:5009 7000:7009

e Speichern Sie Ihre Einstellungen und starten Sie die Firewall neu, indemSie OK → Weiter → Übernehmen wählen.

TIPP

Weitere Informationen über Firewall-Konfiguration für NX finden Sie in /usr/share/doc/packages/FreeNX/NX-Firewall.txt.

Für eine Verbindung zu einer anderen Arbeitsstation und die Verwendung von KDEals Ihren Desktop gehen Sie wie folgt vor:

312 Referenz

Page 313: Suse 10.1 Linux Reference De

1 Starten Sie KNX über das Hauptmenü.

2 Bei Ihrer ersten Anmeldung müssen Sie eine neue Verbindung einrichten. FührenSie folgende Schritte aus, um eine Verbindung einzurichten:

a Klicken Sie inKNXClient Login (KNX-Client-Anmeldung) aufConnectionSettings (Verbindungseinstellungen).

b Geben Sie einen Namen für die Verbindung ein, zum Beispiel den Namendes Servers.

c Geben Sie Hostinformationen, die Portnummer und die Bandbreite für IhreVerbindung ein.

d Wählen Sie aus Sessiontype (Sitzungstyp) die Option UNIX/KDE, um eineKDE-Sitzung zu starten.

e Wählen Sie eine Bildschirmauflösung.

f Klicken Sie auf OK.

3 Sobald die Verbindung besteht und die Fernverbindung an Ihrem Bildschirmangezeigt wird, können Sie auf Anwendungen zugreifen und den entferntenComputer so nutzen, als würden Sie direkt an ihm sitzen.

Für eine Verbindung zu einem anderen Rechner mit GNOME als Ihrem Desktop gehenSie wie folgt vor:

1 Laden Sie das nxclient-Paket von NoMachine überhttp://www.nomachine.com/download_client_linux.php herunter und installieren Sie es.

2 Starten Sie den NX Connection Wizard (NX-Verbindungsassistent) über dasHauptmenü.

3 Gehen Sie in den folgenden drei Schritten vor: Geben Sie den Namen von Ver-bindung, Port- und Hostdaten sowie Verbindungstyp ein. Wählen Sie den Sit-zungstypUnix/Gnome. Entscheiden Sie, ob eine Verknüpfung auf Ihrem Desktoperscheinen soll, und klicken Sie auf Finish (Beenden).

FreeNX: Fernsteuerung eines anderen Computers 313

Page 314: Suse 10.1 Linux Reference De

4 Klicken Sie für eine Verbindung zum entfernten Desktop auf die NX-Verknüpfungauf Ihrem Desktop, geben Sie den Benutzernamen sowie das Passwort an undklicken Sie auf OK.

Der entfernte Desktop wird an Ihrem Bildschirm angezeigt.

15.2 Erweiterte FreeNX-KonfigurationDie folgenden Abschnitte stellen einige erweiterte Funktionen vor, die hauptsächlichin komplexeren NX-Szenarien benötigt werden.

15.2.1 Konfigurieren vonSSH-Authentifizierung mitClient-Schlüsseln

Die in Abschnitt 15.1, „Erste Schritte in NX“ (S. 311) konfigurierte Authentifizierungverlässt sich einzig auf die Angabe von Benutzername und Passwort. Für eine sicherereAuthentifizierung lässt sich NX so konfigurieren, dass es ein Paar von SSH-Schlüsselngeneriert. Der Client-Schlüssel wird dann vom Server-Rechner an einen beliebigenClient kopiert, dem eine Verbindung zum NX-Server erlaubt sein soll. Clients, diediesen Schlüssel nicht angeben, können beim NX-Server nicht authentifiziert werden.Diese Funktion wird nur für die Kombination FreeNX-Server/knx-Client unterstützt.

Gehen Sie wie folgt vor, um den NX-Server für die Verwendung dieser Authentifizie-rungsmethode zu konfigurieren und das geeignete Schlüsselpaar zu generieren:

1 Melden Sie sich als „root“ am Server-Rechner an.

2 Öffnen Sie die Server-Konfigurationsdatei /etc/nxserver/node.confund stellen Sie sicher, dassENABLE_SSH_AUTHENTICATION auf1 eingestelltist. (Das sollte der Standard sein.)

3 Installieren Sie den Server mit folgendem Befehl:nxsetup --install --clean --purge

314 Referenz

Page 315: Suse 10.1 Linux Reference De

4 Ändern Sie die Zugriffsberechtigungen auf /var/lib/nxserver/home/.ssh/authorized_keys2:chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2

5 Melden Sie sich ab.

Gehen Sie wie folgt vor, um knx zur Verwendung dieses Schlüssels zu konfigurieren:

1 Melden Sie sich am Server-Rechner als „root“ an.

2 Kopieren Sie die Schlüsseldatei an den Ort auf dem Client-Rechner, an dem knxsie braucht, und ersetzen Sie client durch die Adresse des Clients.scp /var/lib/nxserver/home/.ssh/client.id_dsa.key client:/usr/share/knx/

3 Melden Sie sich als „root“ am Client-Rechner an.

4 Passen Sie die Zugriffsberechtigungen wie folgt an:chmod 644 /usr/share/knx/client.id_dsa.key

5 Melden Sie sich ab.

15.2.2 Konfigurieren derPAM-Authentifizierung

Standardmäßig gestattet FreeNX jedem Benutzer, eine NX-Sitzung zu öffnen, voraus-gesetzt der Benutzer ist in der Benutzerdatenbank Ihres Servers aufgeführt (lokal oderüber LDAP, NIS usw.). Dieses Verhalten wird durch die VariableENABLE_PAM_AUTHENTICATION in /usr/bin/nxserver auf dem Serverumgeschaltet. Der Standardwert lautet hier 1. Wenn Sie ihn auf 0 setzen, wird die vonPAM vermittelte Benutzerauthentifizierung (PAM_AUTH) für FreeNX deaktiviert.

Wenn ENABLE_PAM_AUTHENTICATION auf 0 gesetzt ist, müssen Sie Benutzer undPasswörter manuell hinzufügen. Zum Hinzufügen von lokalen NX-Benutzern auf demServer gehen Sie wie folgt vor:

1 Melden Sie sich am Server-Rechner als „root“ an.

FreeNX: Fernsteuerung eines anderen Computers 315

Page 316: Suse 10.1 Linux Reference De

2 Stellen Sie sicher, dass jeder Benutzer, den Sie hinzufügen möchten, in der Sys-temdatenbank der lokalen Benutzer aufgeführt ist. Prüfen Sie dazu den Inhaltvon/etc/passwd oder verwenden Sie das YaST-Modul „Benutzerverwaltung“.

3 Fügen Sie für jeden gewünschten Benutzer den Benutzernamen mit dem Befehlnxserver --adduser hinzu. Fügen Sie dann das Passwort des Benutzersmit nxserver --passwd hinzu.

4 Starten Sie den Server mit nxserver --restart neu und melden Sie sichab.

15.2.3 Verwenden von systemweiten undbenutzerspezifischenKonfigurationsdateien

Das Verhalten des FreeNX-Servers wird über/etc/node.conf gesteuert. Sie könneneine globale NX-Server-Konfiguration ausführen oder den Server mit benutzerspezifi-schen Konfigurationen betreiben. Das kommt ins Spiel, wenn verschiedene BenutzerNX auf einem Rechner mit anderen Anforderungen ausführen.

Im folgenden Beispiel wird angenommen, dass der Benutzer joe einen automatischenStart von NX mit einer bestimmten Anwendung möchte, sobald er eine NX-Sitzungöffnet. Gehen Sie wie folgt vor, um dieses Verhalten nur für diesen Benutzer festzulegen:

1 Melden Sie sich als „root“ an.

2 Wechseln Sie in das Verzeichnis /etc/nxserver:cd /etc/nxserver

3 Speichern Sie eine Kopie der Konfigurationsdatei des NX-Servers (node.conf)unter joe.node.conf im selben Verzeichnis.

4 Bearbeiten Sie die entsprechenden Parameter (NODE_AUTOSTART undENABLE_AUTORECONNECT) in joe.node.conf. Weitere Informationenzu diesen Funktionen finden Sie in Abschnitt 15.2.5, „Konfigurieren von auto-matisch gestarteten Tasks und Exportieren von Konfigurationen“ (S. 318) undAbschnitt 15.2.4, „Aussetzen und Wiederaufnehmen von NX-Sitzungen“ (S. 317).

316 Referenz

Page 317: Suse 10.1 Linux Reference De

5 Installieren Sie den NX-Server neu, um die neue Konfiguration zu aktivieren:nxsetup --install --clean --purge --setup-nomachine-key

Die benutzerspezifische Konfiguration überschreibt die globale Konfiguration.

6 Melden Sie sich ab.

15.2.4 Aussetzen undWiederaufnehmen vonNX-Sitzungen

Wie bei Sitzungen auf einem mobilen Computer kann NX auch so konfiguriert werden,dass das Aussetzen und Wiederaufnehmen von Benutzersitzungen möglich ist. Eineausgesetzte Sitzung wird wieder genau in dem Zustand geöffnet, in dem sie verlassenwurde.

Gehen Sie wie folgt vor, um das Aussetzen und Wiederaufnehmen von NX-Sitzungenzu konfigurieren:

1 Melden Sie sich als „root“ an.

2 Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und bearbeiten Sie sie wie folgt:ENABLE_PASSDB_AUTHENTICATION="0"ENABLE_USER_DB="0"ENABLE_AUTORECONNECT="1"

3 Speichern und schließen Sie die Konfigurationsdatei und starten Sie den Servermit nxserver --restart neu.

4 Melden Sie sich ab.

Um eine Sitzung beim Beenden auszusetzen, klicken Sie auf das X in der oberen rechtenEcke Ihres NX-Fensters und wählen Sie Suspend (Aussetzen), um Ihre Sitzung auszu-setzen und den Client zu beenden. Bei der erneuten Verbindung werden Sie gefragt,ob Sie die vorherige Sitzung wiederaufnehmen oder eine neue beginnen möchten.

FreeNX: Fernsteuerung eines anderen Computers 317

Page 318: Suse 10.1 Linux Reference De

15.2.5 Konfigurieren von automatischgestarteten Tasks und Exportierenvon Konfigurationen

FreeNX bietet eine Autostart-Funktion, mit deren Hilfe Sie bestimmte Tasks bei Startoder Wiederaufnahme einer NX-Sitzung starten können, vorausgesetzt die zugrundeliegende Anwendung unterstützt die Eigenschaften für start (Start) und resume(Wiederaufnahme). Beispielsweise können Sie beim Start von FreeNX automatischden Desktop aufräumen oder andere automatisch gestartete Aufgaben ausführen. Diesist besonders nützlich, wenn Sie wieder eine Verbindung zu einer Sitzung aufbauen,selbst von einem anderen NX-Client (auf dem Sie nicht die KDE- oder GNOME-Standardmechanismen nutzen können).

Gehen Sie zur Konfiguration der Autostart-Funktionen wie folgt vor:

1 Melden Sie sich als „root“ am Server-Rechner an.

2 Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und ändern Sie den Wert der Variablen NODE_AUTOSTART, indem Siemyprogram durch den Namen des Programms ersetzen, das bei Start oderWiederaufnahme einer NX-Sitzung ausgeführt werden soll:NODE_AUTOSTART=myprogram

3 Speichern und schließen Sie die Konfigurationsdatei.

4 Starten Sie den Server mit dem Befehlnxserver --restart neu und meldenSie sich ab.

Das angegebene Programm startet nun bei jedem Start und jeder Wiederaufnahmeeiner Sitzung.

Sie können die Variablen NX_USERIP und NX_SESSIONID auch exportieren, damitsie in der Umgebung des Benutzers im Zugriff sind. Damit ist es beispielsweise möglich,ein Symbol mit dem generischen Inhalt auf den Desktop zu platzieren und auf einenSamba-Server zuzugreifen, der auf dem Thin-Client des Benutzers läuft. Gehen Siewie folgt vor, um dem Benutzer den Inhalt einer Diskette im Diskettenlaufwerk desThin-Clients zur Verfügung zu stellen:

318 Referenz

Page 319: Suse 10.1 Linux Reference De

1 Aktivieren Sie den Export der Variablen NX_USERIP und NX_SESSIONIDauf der Serverseite:

a Melden Sie sich als „root“ am Server an.

b Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und setzen Sie die folgenden Variablen:EXPORT_USERIP="1"EXPORT_SESSIONID="1"

c Speichern und schließen Sie die Server-Konfigurationsdatei und starten Sieden Server mit dem Befehl nxserver --restart neu.

d Melden Sie sich ab.

2 Öffnen Sie auf der Client-Seite eine Sitzung, exportieren Sie das Diskettenlauf-werk über SMB und legen Sie ein Symbol auf dem Desktop an:

a Exportieren Sie den Inhalt Ihres Diskettenlaufwerks mithilfe Ihres Dateima-nagers (Nautilus oder Konqueror) über Samba.

b Erstellen Sie die Datei floppy.desktop im Verzeichnis Desktop undgeben Sie die folgende Zeile ein:Exec=smb://$NX_USERIP/floppy

Der Server exportiert die IP-Adresse des Thin-Clients und ermöglicht Ihnen,in der NX-Sitzung über das Diskettensymbol auf das Diskettenlaufwerk desThin-Clients zuzugreifen.

15.2.6 Erstellen einer NX-ServerketteMithilfe einer Kette von NX-Servern können Sie Firewalls überqueren und IP-Masquer-ading durchführen. Ein externer „Gateway“-Server kann verwendet werden, um einge-hende Verbindungen an einen internen Server weiterzuleiten, der hinter einer (maskier-ten) Firewall verborgen ist.

Gehen Sie wie folgt vor, um eine NX-Serverkette zu konfigurieren:

FreeNX: Fernsteuerung eines anderen Computers 319

Page 320: Suse 10.1 Linux Reference De

1 Konfigurieren Sie den internen Server wie in Abschnitt 15.2.1, „Konfigurierenvon SSH-Authentifizierung mit Client-Schlüsseln“ (S. 314) beschrieben undverteilen Sie den privaten Schlüssel des Servers (client.id_dsa.key) an/usr/NX/share/ auf dem Gateway.

2 Gehen Sie am Gateway-Server wie folgt vor:

a Melden Sie sich als „root“ an.

b Setzen Sie die folgenden Variablen in /etc/nxserver/node.confund ersetzen Sie myinternalhost durch die IP-Adresse des internenNX-Servers:ENABLE_SERVER_FORWARD="1"SERVER_FORWARD_HOST="myinternalhost"SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"

c Starten Sie den externen Server mit dem Befehl nxserver --restartneu, um die geänderte Konfiguration zuzuweisen, und melden Sie sich ab.

Jede eingehende Verbindung wird an den internen Server weitergeleitet.

15.2.7 Installieren und Ausführen vonFreeNX und NoMachine aufdemselben Server

Sie können FreeNX und den kommerziellen NoMachine NX-Server ohne Konflikteauf demselben Rechner ausführen. Die Implementierung erfolgt in FreeNX durchWeiterleiten der Verbindung an NoMachine, das auf demselben Rechner installiert ist.

Gehen Sie zur Aktivierung dieser Funktion wie folgt vor:

1 Melden Sie sich als „root“ am Server-Rechner an.

2 Öffnen Sie die Konfigurationsdatei des Servers für FreeNX unter /etc/nxserver/node.conf und setzen Sie die folgende Variable:ENABLE_NOMACHINE_FORWARD="1"

320 Referenz

Page 321: Suse 10.1 Linux Reference De

3 Speichern Sie diese Datei und starten Sie den FreeNX-Server mit dem Befehlnserver --restart neu.

4 Melden Sie sich ab.

Verwenden Sie für die Verbindung zum NoMachine-Server die Standarddaten fürBenutzername und Passwort. Stellen Sie für eine Verbindung zum FreeNX-Server demnormalen Benutzernamen die Angabe freenx. voran (zum Beispiel:freenx.joedoe) und verwenden Sie das normale Passwort.

15.3 FehlerbehebungDie folgenden Abschnitte führen die häufigsten Probleme auf, die beim Einsatz vonFreeNX auftreten können, und bieten entsprechende Lösungsmöglichkeiten.

15.3.1 knx bleibt beim Versuch einesVerbindungsaufbaus hängen

Sie versuchen, mit knx eine Verbindung zu Ihrem NX-Server aufzubauen. Beim Initi-ieren der Verbindung kann knx den Benutzer nicht authentifizieren und es wird nie eineentfernte Sitzung gestartet.

Gehen Sie wie folgt vor, um die Ursache dafür festzustellen und eine Lösung des Pro-blems zu finden:

1 Prüfen Sie, ob Novell AppArmor auf dem Server-Rechner läuft, und verfahrenSie wie in Abschnitt 15.3.2, „Verbindung zum NX-Server kann nicht aufgebautwerden“ (S. 322) beschrieben.

2 Versuchen Sie erneut, eine Verbindung zwischen knx und dem Server aufzubauen.

3 Prüfen Sie, ob die Firewall auf der Client-Seite SSH-Datenverkehr gestattet,indem Sie das YaST Firewall-Modul starten und prüfen, ob SSH unter ErlaubteDienste für die Externe Zone aufgelistet ist. Aktivieren Sie SSH, wenn es nochnicht aktiviert ist.

FreeNX: Fernsteuerung eines anderen Computers 321

Page 322: Suse 10.1 Linux Reference De

4 Prüfen Sie die Firewall auf der Server-Seite nach SSH und die NX-Ports, die inAbschnitt 15.1, „Erste Schritte in NX“ (S. 311) aufgeführt sind. Öffnen Sie diesePorts, wenn sie zuvor geschlossen wurden.

5 Versuchen Sie erneut, eine Verbindung zwischen knx und dem Server aufzubauen.

6 Melden Sie sich als „root“ am Server an und gehen Sie wie folgt vor:

a Wechseln Sie in das Verzeichnis /tmp und prüfen Sie, ob Sperrdateien vonNX-Server vorhanden sind:cd /ls -ltr .nX*

b Wenn welche von diesen alten Sperrdateien vorhanden sind, entfernen Siesie.

c Melden Sie sich ab.

7 Versuchen Sie erneut, eine Verbindung zwischen knx und dem Server aufzubauen.

8 Löschen und installieren Sie den knx-Client auf dem Client-Rechner neu mithilfedes YaST-Moduls „Software installieren oder löschen“.

Sie sollten nun in der Lage sein, eine Verbindung zum Server aufzubauen, vor-ausgesetzt Sie haben alle obigen Anweisungen befolgt.

15.3.2 Verbindung zum NX-Server kannnicht aufgebaut werden

Nach dem Start von knx und Initiieren der Verbindung erhalten Sie folgende Fehlermel-dung:Connection to NX server could not be established. Connection timed out.(Verbindung zu NX-Server war nicht möglich. Zeitüberschreitung der Verbindung.)

Gehen Sie wie folgt vor, um die Ursache dieses Problems zu ermitteln:

1 Melden Sie sich am Server als „root“ an.

322 Referenz

Page 323: Suse 10.1 Linux Reference De

2 Prüfen Sie die Ausgabe des Befehls dmesg auf einen Eintrag wie den folgenden:SubDomain: REJECTING r access to /var/lib/nxserver/home/.ssh/authorized_keys2 (sshd(31247) profile /usr/sbin/sshd active /usr/sbin/sshd)

Dieser Eintrag teilt Ihnen mit, dass Novell AppArmor, das auf dem Server läuft,dem ssh-Daemon den Zugriff auf einige NX-spezifische Dateien nicht gestattet.

3 Stoppen Sie AppArmor auf dem Server-Rechner.

Oder:

Bringen Sie das sshd-Profil in den Lernmodus und fügen Sie Berechtigungen fürden Zugriff auf NX-Dateien in das bestehende Profil ein. Eine ausführlichereBeschreibung erhalten Sie im Novell AppArmor 2.0 Administrationshandbuch.

4 Bauen Sie wieder eine Verbindung zum Server auf.

15.3.3 Benutzerauthentifizierungerfolgreich, Fernverbindung nichtaufgebaut

Nachdem Sie knx ausgeführt und die Sitzung initiiert haben, kann knx den Benutzerauthentifizieren, aber anstelle eines Terminalfensters, das mit einer neuen Sitzunggeöffnet wird, erhalten Sie eine Fehlermeldung wie die folgende:Could not yet establish the connection to the remote proxy. Do you want to terminate the current session? (Verbindung zu Remote-Proxy noch nicht möglich. Aktuelle Sitzung beenden?)

Die Verbindung ist fehlgeschlagen, weil die höheren Ports, die beim Verhandeln derNX-Fernsitzung verwendet wurden, nicht an der Firewall des Servers geöffnet sind.Um die Firewall-Einstellungen am Server anzupassen, gehen Sie vor wie inAbschnitt 15.1, „Erste Schritte in NX“ (S. 311) beschrieben.

FreeNX: Fernsteuerung eines anderen Computers 323

Page 324: Suse 10.1 Linux Reference De

15.4 Weitere InformationenNeueste Informationen über das aktuelle FreeNX-Paket finden Sie in der README-Datei unter /usr/share/doc/packages/FreeNX/README.SUSE. WeitereInformationen über NX-Server erhalten Sie über den Befehl nxserver --help.

324 Referenz

Page 325: Suse 10.1 Linux Reference De

16Authentifizierung mit PAMWährend des Authentifizierungsprozesses verwendet Linux PAM (Pluggable Authen-tication Modules, einfügbare Authentifizierungsmodule) als Schicht für die Vermittlungzwischen Benutzer und Anwendung. PAM-Module sind systemweit verfügbar, sodasssie von jeder beliebigen Anwendung angefordert werden können. In diesem Kapitelwird beschrieben, wie der modulare Authentifizierungsmechanismus funktioniert undwie er konfiguriert wird.

Häufig möchten Systemadministratoren und Programmierer den Zugriff auf bestimmteTeile des Systems einschränken oder die Nutzung bestimmter Funktionen einerAnwendung begrenzen. Ohne PAM müssen die Anwendungen bei jedem neu eingeführ-ten Authentifizierungsmechanismus, wie LDAP oder SAMBA, angepasst werden.Dieser Prozess ist jedoch sehr zeitaufwändig und fehleranfällig. Eine Möglichkeit,diese Nachteile zu vermeiden, ist eine Trennung zwischen den Anwendungen und demAuthentifizierungsmechanismus und das Delegieren der Authentifizierung an zentralverwaltete Module. Wenn ein neues Authentifizierungsschema erforderlich ist, genügtes, ein geeigneterf PAM-Modus für die Verwendung durch das betreffende Programmanzupassen oder zu schreiben.

Jedes Programm, das mit dem PAM-Mechanismus arbeitet, verfügt über eine eigeneKonfigurationsdatei im Verzeichnis /etc/pam.d/programmname. Mit diesenDateien werden die für die Authentifizierung verwendeten PAM-Module definiert.Darüber hinaus sind im Verzeichnis /etc/security globale Konfigurationsdateienfür die meisten PAM-Module gespeichert, in denen die genaue Verhaltensweise derModule definiert ist (Beispiele:pam_env.conf,pam_pwcheck.conf,pam_unix2.conf und time.conf). Jede Anwendung, die ein PAM-Modul verwendet, ruft eineReihe von PAM-Funktionen auf, mit denen dann die Informationen in den verschiedenen

Authentifizierung mit PAM 325

Page 326: Suse 10.1 Linux Reference De

Konfigurationsdateien verarbeitet und das Ergebnis an die anfordernde Anwendungzurückgegeben wird.

16.1 Struktur einerPAM-Konfigurationsdatei

Jede Zeile in einer PAM-Konfigurationsdatei enthält maximal vier Spalten:<Modultyp> <Steuerflag> <Modulpfad> <Optionen>

PAM-Module werden als Stapel verarbeitet. Die unterschiedlichen Modultypen dienenverschiedenen Zwecken. So wird beispielsweise mit einem Modul das Passwort undmit einem anderen Modul der Standort überprüft, von dem aus auf das System zugegrif-fen wird. Mit einem dritten Modul können beispielsweise benutzerspezifische Einstel-lungen abgelesen werden. PAM sind ungefähr vier verschiedene Modultypen bekannt:

authDieser Modultyp dient der Überprüfung der Authentizität des Benutzers. Dieserfolgt in der Regel über die Abfrage des Passworts, es kann jedoch auch mithilfeeiner Chipkarte oder biometrischer Daten (Fingerabdruck oder Scannen der Iris)erreicht werden.

accountMit Modulen dieses Typs wird überprüft, ob der Benutzer allgemein zur Verwen-dung des angeforderten Diensts berechtigt ist. Solch eine Prüfung sollte beispiels-weise durchgeführt werden, um sicherzustellen, dass keine Anmeldung mit einemBenutzernamen eines nicht mehr gültigen Kontos erfolgen kann.

passwordMit diesem Modultyp kann die Änderung eines Authentifizierungs-Token aktiviertwerden. In den meisten Fällen handelt es sich hierbei um ein Passwort.

sessionMit diesem Modultyp werden Benutzersitzungen verwaltet und konfiguriert. Siewerden vor und nach der Authentifizierung gestartet, um Anmeldeversuche inSystemprotokollen aufzuzeichnen und die spezielle Umgebung des Benutzers (wieMailkonten, Home-Verzeichnis, Systemgrenzen usw.) zu konfigurieren.

326 Referenz

Page 327: Suse 10.1 Linux Reference De

Die zweite Spalte enthält Steuerflags, mit denen das Verhalten der gestarteten Modulebeeinflusst wird:

requiredEin Modul mit dieser Flag muss erfolgreich verarbeitet werden, damit dieAuthentifizierung fortgesetzt werden kann. Wenn ein Modul mit der Flagrequired ausfällt, werden alle anderen Module mit derselben Flag verarbeitet,bevor der Benutzer eine Meldung bezüglich des Fehlers beim Authentifizierungs-versuch erhält.

requisiteModule mit dieser Flag müssen ebenfalls erfolgreich verarbeitet werden, ähnlichwie Module mit der Flag required. Falls jedoch ein Modul mit dieser Flag aus-fällt, erhält der Benutzer sofort eine entsprechende Rückmeldung und es werdenkeine weiteren Module verarbeitet. Bei einem erfolgreichen Vorgang werden dieanderen Module nachfolgend verarbeitet genau wie alle Module mit der Flagrequired. Die Flag requisite kann als Basisfilter verwendet werden, um zuüberprüfen, ob bestimmte Bedingungen erfüllt sind, die für die richtige Authentifi-zierung erforderlich sind.

sufficientWenn ein Modul mit dieser Flag erfolgreich verarbeitet wurde, erhält die anfordern-de Anwendung sofort eine Nachricht bezüglich des erfolgreichen Vorgangs undkeine weiteren Module werden verarbeitet, vorausgesetzt, es ist zuvor kein Fehlerbei einem Modul mit der Flag required aufgetreten. Ein Fehler eines Modulsmit der Flag sufficient hat keine direkten Auswirkungen auf die Verarbeitungoder die Verarbeitungsreihenfolge nachfolgender Module.

optionalEin Fehler oder die erfolgreiche Verarbeitung hat bei diesem Modul keine direktenFolgen. Dies kann für Module sinnvoll sein, die nur der Anzeige einer Meldung(beispielsweise um dem Benutzer mitzuteilen, dass er eine E-Mail erhalten hat)dienen, ohne weitere Aktionen auszuführen.

includeWenn diese Flag festgelegt ist, wird die als Argument angegebene Datei an dieserStelle eingefügt.

Der Modulpfad muss nicht explizit angegeben werden, solange das Modul sich imStandardverzeichnis/lib/security befindet (für alle von SUSE Linux unterstützten

Authentifizierung mit PAM 327

Page 328: Suse 10.1 Linux Reference De

64-Bit-Plattformen lautet das Verzeichnis /lib64/security). Die vierte Spaltekann eine Option für das angegebene Modul enthalten, wie beispielsweise debug (zumAktivieren der Fehlersuche) oder nullok (um die Verwendung leerer Passwörter zuermöglichen).

16.2 PAM-Konfiguration von sshdBetrachten Sie zum Verständnis der Theorie, auf der PAM basiert, die PAM-Konfigu-ration von sshd als praktisches Beispiel:

Beispiel 16.1 PAM-Konfiguration für sshd#%PAM-1.0auth include common-authauth required pam_nologin.soaccount include common-accountpassword include common-passwordsession include common-session# Enable the following line to get resmgr support for# ssh sessions (see /usr/share/doc/packages/resmgr/README.SuSE)#session optional pam_resmgr.so fake_ttyname

Die typische PAM-Konfiguration einer Anwendung (in diesem Fall sshd) enthält vierinclude-Anweisungen, die auf die Konfigurationsdateien von vier Modultypen verweisen:common-auth,common-account,common-passwordundcommon-session.In diesen vier Dateien ist die Standardkonfiguration für die einzelnen Modultypengespeichert. Wenn Sie diese Dateien aufnehmen, anstatt jedes Modul für die einzelnenPAM-Awendungen separat aufzurufen, erhalten Sie automatisch eine aktualisiertePAM-Konfiguration, wenn der Administrator die Standardeinstellungen ändert. Vorhermussten alle Konfigurationsdateien für alle Anwendungen manuell angepasst werden,wenn Änderungen an PAM vorgenommen oder neue Anwendungen installiert wurden.Jetzt wird die PAM-Konfiguration mithilfe von zentralen Konfigurationsdateien ausge-führt und alle Änderungen werden automatisch über die PAM-Konfiguration der ein-zelnen Dienste weitergegeben.

Mit der ersten include-Datei (common-auth) werden zwei Module vom Typ authaufgerufen: pam_env und pam_unix2. Siehe Beispiel 16.2, „Standardkonfigurationfür den Abschnitt auth“ (S. 329).

328 Referenz

Page 329: Suse 10.1 Linux Reference De

Beispiel 16.2 Standardkonfiguration für den Abschnitt authauth required pam_env.soauth required pam_unix2.so

Mit dem ersten Modul,pam_env, wird die Datei/etc/security/pam_env.confgeladen, um die in dieser Datei angegebenen Variablen festzulegen. Hiermit kann dieVariable DISPLAY auf den richtigen Wert gesetzt werden, da dem Modul pam_envder Standort bekannt ist, an dem der Anmeldevorgang stattfindet. Mit dem zweitenModul, pam_unix2, werden der Anmeldename und das Passwort des Benutzers mit/etc/passwd und /etc/shadow abgeglichen.

Wenn die in common-auth angegebenen Dateien erfolgreich aufgerufen wurden,wird mit dem dritten Modul pam_nologin überprüft, ob die Datei /etc/nologinvorhanden ist. Ist dies der Fall, darf sich kein anderer Benutzer außer root anmelden.Der gesamte Stapel der auth-Module wird verarbeitet, bevor sshd eine Rückmeldungdarüber erhält, ob der Anmeldevorgang erfolgreich war. Wenn alle Module des Stapelsdie Flag required aufweisen, müssen sie alle erfolgreich verarbeitet werden, bevorsshd eine Meldung bezüglich des positiven Ergebnisses erhält. Falls bei einem derModule ein Fehler auftritt, wird der vollständige Modulstapel verarbeitet und erst dannwird sshd bezüglich des negativen Ergebnisses benachrichtigt.

Nachdem alle Module vom Typ auth erfolgreich verarbeitet wurden, wird eine weitereinclude-Anweisung verarbeitet, in diesem Fall die in Beispiel 16.3, „Standardkonfigu-ration für den Abschnitt account“ (S. 329). Die Datei common-account enthältlediglich ein Modul, pam_unix2. Wenn pam_unix2 als Ergebnis zurückgibt, dassder Benutzer vorhanden ist, erhält sshd eine Meldung mit dem Hinweis auf diesenerfolgreichen Vorgang und der nächste Modulstapel (password) wird verarbeitet,wie in Beispiel 16.4, „Standardkonfiguration für den Abschnitt password“ (S. 329)dargestellt.

Beispiel 16.3 Standardkonfiguration für den Abschnitt accountaccount required pam_unix2.so

Beispiel 16.4 Standardkonfiguration für den Abschnitt passwordpassword required pam_pwcheck.so nullokpassword required pam_unix2.so nullok use_first_pass use_authtok#password required pam_make.so /var/yp

Auch hier beinhaltet die PAM-Konfiguration von sshd nur eine include-Anweisung,die auf die Standardkonfiguration für passwordModule in der Datei

Authentifizierung mit PAM 329

Page 330: Suse 10.1 Linux Reference De

common-password verweist. Diese Module müssen erfolgreich abgeschlossenwerden (Steuerflag required), wenn die Anwendung die Änderung eines Authenti-fizierungs-Token anfordert. Für die Änderung eines Passworts oder eines anderenAuthentifizierungs-Token ist eine Sicherheitsprüfung erforderlich. Dies erfolgt überdas Modulpam_pwcheck. Das anschließend verwendete Modulpam_unix2 überträgtalle alten und neuen Paswörter von pam_pwcheck, sodass der Benutzer die Authen-tifizierung nicht erneut ausführen muss. Dadurch ist es zudem unmöglich, die von pam_pwcheck durchgeführten Prüfungen zu umgehen. Die Module vom Typ passwordsollten immer dann verwendet werden, wenn die vorherigen Module vom Typaccountoder auth so konfiguriert sind, dass bei einem abgelaufenen Passwort eine Fehlermel-dung angezeigt wird.

Beispiel 16.5 Standardkonfiguration für den Abschnitt sessionsession required pam_limits.sosession required pam_unix2.so

Im letzten Schritt werden die in der Datei common-session gespeicherten Modulevom Typ session aufgerufen, um die Sitzung gemäß den Einstellungen für denbetreffenden Benutzer zu konfigurieren. pam_unix2 wird zwar erneut verarbeitet,hat jedoch aufgrund der Option none, die in der entsprechenden Konfigurationsdateides Moduls pam_unix2.conf angegeben ist, keine praktischen Konsequenzen. Mitdem Modulpam_limitswird die Datei/etc/security/limits.conf geladen,mit der Nutzungseinschränkungen für bestimmte Systemressourcen definiert werdenkönnen. Diesession-Module werden beim Abmelden des Benutzers ein zweites Malaufgerufen.

16.3 Konfiguration von PAM-ModulenEinige PAM-Module können konfiguriert werden. Die entsprechenden Konfigurations-dateien sind im Verzeichnis/etc/security gespeichert. In diesem Abschnitt werdendie für das sshd-Beispiel relevanten Konfigurationsdateien, pam_unix2.conf, pam_env.conf, pam_pwcheck.conf und limits.conf, kurz beschrieben.

16.3.1 pam_unix2.confDie herkömmliche passwortbasierte Authentifizierungsmethode wird durch das PAM-Modul pam_unix2 gesteuert. Hiermit können die erforderlichen Daten aus /etc/

330 Referenz

Page 331: Suse 10.1 Linux Reference De

passwd, /etc/shadow, NIS-Zuordnungen, NIS+-Tabellen oder aus einer LDAP-Datenbank gelesen werden. Das Verhalten des Moduls kann durch die Konfigurationder PAM-Optionen der einzelnen Anwendung selbst oder global durch Bearbeiten derDatei /etc/security/pam_unix2.conf beeinflusst werden. Eine ganz grund-legende Konfigurationsdatei für das Modul wird in Beispiel 16.6, „pam_unix2.conf“(S. 331) dargestellt.

Beispiel 16.6 pam_unix2.confauth: nullokaccount:password: nulloksession: none

Mit der Option nullok für die Modultypen auth und password wird angegeben,dass leere Passwörter für den entsprechenden Kontotyp zulässig sind. Die Benutzersind zudem berechtigt, die Passwörter für ihre Konten zu ändern. Die Option none fürden Modultyp session gibt an, dass für dieses Modul keine Meldungen protokolliertwerden sollen (dies ist die Standardeinstellung). Informationen zu zusätzlichen Konfi-gurationsoptionen erhalten Sie in den Kommentaren in der Datei selbst und auf derHandbuchseite pam_unix2(8).

16.3.2 pam_env.confDiese Datei kann verwendet werden, um eine standardisierte Umgebung für Benutzerzu definieren, die beim Aufrufen des pam_env-Moduls festgelegt wird. Hiermit legenSie Umgebungsvariablen mit folgender Syntax fest:VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]

VARIABLEName der festzulegenden Umgebungsvariablen.

[DEFAULT=[value]]Der Standardwert, den der Administrator festlegen möchte.

[OVERRIDE=[value]]Werte, die von pam_env abgefragt und festgelegt werden können und die denStandardwert außer Kraft setzen.

Authentifizierung mit PAM 331

Page 332: Suse 10.1 Linux Reference De

Ein typisches Beispiel für eine Verwendungsmöglichkeit von pam_env ist dieAnpassung der Variable DISPLAY, die immer dann geändert wird, wenn eine entfernteAnmeldung stattfindet. Dies ist in Beispiel 16.7, „pam_env.conf“ (S. 332) dargestellt.

Beispiel 16.7 pam_env.confREMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

In der ersten Zeile wird der Wert der Variable REMOTEHOST auf localhost gesetzt,der immer dann verwendet wird, wenn mit pam_env kein anderer Wert bestimmtwerden kann. Die Variable DISPLAY hingegen enthält den Wert REMOTEHOST.Weitere Informationen hierzu finden Sie in den Kommentaren der Datei /etc/security/pam_env.conf.

16.3.3 pam_pwcheck.confDiese Konfigurationsdatei ist für das Modul pam_pwcheck bestimmt, das darausOptionen für alle Module vom Typ password abliest. Die in dieser Datei gespeichertenEinstellungen haben Vorrang vor den PAM-Einstellungen der einzelnen Anwendungen.Wenn keine anwendungsspezifischen Einstellungen definiert wurden, verwendet dieAnwendung die globalen Einstellungen. Über Beispiel 16.8, „pam_pwcheck.conf“(S. 332) erhält pam_pwcheck die Anweisung, leere Passwörter und die Änderung vonPasswörtern zuzulassen. Weitere Optionen für das Modul werden der Datei /etc/security/pam_pwcheck.conf beschrieben.

Beispiel 16.8 pam_pwcheck.confpassword: nullok

16.3.4 limits.confSystemgrenzen können auf Benutzer- oder Gruppenbasis in der Datei limits.conffestgelegt werden, die vom Modul pam_limits gelesen wird. In der Datei könnenSie Festgrenzen, die niemals überschritten werden dürfen, und Softgrenzen festlegen,die vorübergehend überschritten werden können. Informationen zur Syntax und zu denverfügbaren Optionen erhalten Sie in den in der Datei enthaltenen Kommentaren.

332 Referenz

Page 333: Suse 10.1 Linux Reference De

16.4 Weitere InformationenIm Verzeichnis/usr/share/doc/packages/pam des installierten Systems findenSie folgende zusätzliche Dokumentation:

READMEsAuf der obersten Ebene dieses Verzeichnisses finden Sie einige allgemeineREADME-Dateien. Im Unterverzeichnis modules sind README-Dateien zuden verfügbaren PAM-Modulen gespeichert.

Linux-PAM-Handbuch für SystemadministratorenDieses Dokument enthält alle Informationen zu PAM, die ein Systemadministratorbenötigt. Hier werden mehrere Themen von der Syntax der Konfigurationsdateienbis hin zu Sicherheitsaspekten von PAM behandelt. Das Dokument ist als PDF-Datei, im HTML-Format oder im reinen Textformat verfügbar.

Linux-PAM-Handbuch für ModulprogrammiererIn diesem Dokument wird das Thema aus der Sicht der Entwickler zusammengefasst.Hier erhalten Sie Informationen zum Programmieren standardkompatibler PAM-Module. Es ist als PDF-Datei, im HTML-Format oder im reinen Textformat ver-fügbar.

Linux-PAM-Handbuch für AnwendungsentwicklerDieses Dokument enthält alle Informationen, die ein Anwendungsentwicklerbenötigt, der die PAM-Bibliotheken verwenden möchte. Es ist als PDF-Datei, imHTML-Format oder im reinen Textformat verfügbar.

Thorsten Kukuk hat mehrere PAM-Module für SUSE Linux entwickelt. Er hat unterhttp://www.suse.de/~kukuk/pam/ einige Informationen zur Verfügunggestellt.

Authentifizierung mit PAM 333

Page 334: Suse 10.1 Linux Reference De
Page 335: Suse 10.1 Linux Reference De

17Virtualisierung mit XenMit Xen ist es möglich, mehrere Linux-Systeme auf einem einzigen Computer auszu-führen. Die Hardware für die einzelnen Systeme wird virtuell bereitgestellt. In diesemKapitel finden Sie einen Überblick über die Möglichkeiten und die Grenzen dieserTechnologie. Sie erhalten eine Einführung in die Thematik sowie Informationen zumInstallieren, Konfigurieren und Ausführen von Xen.

Virtuelle Computer müssen in der Regel die Hardware emulieren, die für das jeweiligeSystem erforderlich ist. Der Nachteil dabei ist, dass die emulierte Hardware viel lang-samer als echte Hardware ist. Xen geht daher einen anderen Weg. Es beschränkt dieEmulierung auf so wenige Elemente wie möglich. Um dies zu erzielen, arbeitet Xenmit Paravirtualisierung. Hierbei handelt es sich um ein Verfahren, das virtuelle Com-puter der zu Grunde liegenden Hardware gegenüber ähnlich, aber nicht identisch prä-sentiert. Daher werden Host- und Gastbetriebssystem auf Kernel-Ebene angepasst.Anwendungen auf Benutzerebene bleiben unverändert. Xen steuert die Hardware mit-hilfe eines Hypervisors und eines steuernden Gastsystems, das auch als Domain-0bezeichnet wird. Diese stellen alle erforderlichen virtuellen Block- und Netzwerkgerätebereit. Die Gastsysteme nutzen diese virtuellen Block- und Netzwerkgeräte, um dasSystem auszuführen und um Verbindungen zu anderen Gastsystemen oder dem lokalenNetzwerk herzustellen. Wenn mehrere physische Computer, auf denen Xen ausgeführtwird, so konfiguriert werden, dass die virtuellen Block- und Netzwerkgeräte verfügbarsind, ist es sogar möglich, ein Gastsystem im laufenden Betrieb von einem physischenComputer auf einen anderen zu migrieren. Ursprünglich wurde Xen entwickelt, um biszu 100 Gastsysteme auf einem einzelnen Computer auszuführen. Diese Anzahl istjedoch stark von den Systemanforderungen der laufenden Gastsysteme abhängig, ins-besondere von der Arbeitspeicherauslastung.

Virtualisierung mit Xen 335

Page 336: Suse 10.1 Linux Reference De

Um die Prozessorlast so gering wie möglich zu halten, bietet der Xen-Hypervisor dreiunterschiedlicher Ablaufplaner. Der Ablaufplaner kann auch geändert werden, währenddas Gastsystem ausgeführt wird, wodurch sich die Priorität des laufenden Gastsystemsändern lässt. Auf einer höheren Ebene kann die Nutzung der verfügbaren Prozessorleis-tung auch durch Migrieren eines Gastsystems optimiert werden.

Das XEN-Virtualisierungssystem hat jedoch auch einige negative Auswirkungen hin-sichtlich der unterstützten Hardware. Verschiedene proprietäre Treiber, beispielsweisevon Nvidia oder ATI, funktionieren nicht erwartungsgemäß. In diesen Fällen müssenSie, soweit verfügbar, die Open-Source-Treiber verwenden, auch wenn diese ggf. nichtdie volle Chip-Funktionalität unterstützen. Auch diverse WLAN-Chips und Cardbus-Bridges werden von Xen nicht unterstützt. Die Version 2 von Xen bietet keine Unter-stützung für PAE (Physical Address Extension), weshalb maximal 4 GB Arbeitsspeicherunterstützt werden. ACPI wird nicht unterstützt. Die Energieverwaltung und andereModi, die von ACPI abhängig sind, funktionieren nicht. Eine weitere Einschränkungvon Xen ist, dass es zurzeit nicht möglich ist, ein Block-Gerät lediglich zu booten. ZumBooten ist es grundsätzlich erforderlich, in Domain-0 über den richtigen Kernel unddie richtige initrd zu verfügen.

Abbildung 17.1 Überblick über Xen

Host OSManagement

VerwaltungAnwendung zur

Physische Hardware (CPU, Speicher, Netzwerk, Blockgeräte)

PhysischeGerätetreiber

virt.CPU

virt.Speicher

virt.Netzwerk

virt.BlockgerätXen

virt.Konsole

Linux-Kernel(Paravirtualisiert)

Linux-Kernel(Paravirtualisiert)

NetWare-Kernel(Paravirtualisiert)

UserspaceAnwendung

UserspaceAnwendung

UserspaceAnwendung

EA

EA CPU Speicher

ServiceGuest OS

ServiceGuest OS

-

336 Referenz

Page 337: Suse 10.1 Linux Reference De

17.1 Installation von XenDie Installation von Xen umfasst die Einrichtung einer Domain-0-Domäne und dieInstallation von Xen-Gästen. Stellen Sie zunächst sicher, dass alle erforderlichenPakete installiert sind. Bei diesen handelt es sich um python, bridge-utils, xen,xen-tools, xen-tools-ioemu und ein kernel-xen-Paket. Wenn Sie Xen beider Installation auswählen, wird Xen zur GRUB-Konfiguration hinzugefügt. In anderenFällen machen Sie einen Eintrag in boot/grub/menu.lst. Dieser Eintrag solltein etwa folgendermaßen aussehen:title Xen3 kernel (hd0,0)/boot/xen.gz module (hd0,0)/boot/vmlinuz-xen <parameters> module (hd0,0)/boot/initrd-xen

Ersetzen Sie (hd0,0) durch die Partition, auf der sich Ihr /boot-Verzeichnis befindet.Weitere Informationen hierzu finden Sie in Kapitel 9,Der Bootloader (S. 211). ErsetzenSie <parameters> durch die Parameter, die normalerweise zum Booten eines Linux-Kernel verwendet werden. Booten Sie anschließend im Xen-Modus neu. Dadurch wirdder Xen-Hypervisor und ein geringfügig geänderter Linux-Kernel als Domain-0gebootet, der den größten Teil der Hardware steuert. Abgesehen von den bereitserwähnten Ausnahmen sollte alles wie gewohnt funktionieren.

17.2 DomäneninstallationJede Gastdomäne muss einzeln installiert werden. Führen Sie zu diesem Zweck dieInstallation der Virtual Machine (XEN) des YaST-Moduls in der Softwaregruppe aus.Geben Sie in der folgenden Schnittstelle alle Informationen an, die für die Ausführungdes Installationsprogramms benötigt werden. Diese Informationen sind in vier Katego-rien unterteilt:

OptionenLegen Sie hier den Namen der Gastdomäne, ihre Speicherressource sowie Bootop-tionen für das Installationsprogramm fest.

FestplattenWählen Sie diese Option, um ein Dateisystem-Image oder eine reale physischePartition zu erstellen. Die Dateisystem-Images werden im Verzeichnis /var/

Virtualisierung mit Xen 337

Page 338: Suse 10.1 Linux Reference De

lib/xen/images gespeichert. Stellen Sie sicher, dass Sie über genügend Fest-plattenspeicher in diesem Verzeichnis verfügen.

BetriebssystemDas Betriebssystem, das zum Installieren der Gastdomäne verwendet werden soll.Dieses System wird in der Installationsquelle für das YaST-Modul ausgewählt undkann nicht in diesem Workflow festgelegt werden.

NetzwerkVon diesem Modul werden nur Bridge-Netzwerke unterstützt. Fügen Sie die Anzahlder benötigten virtuellen Netzwerkkarten hinzu.

Das nächste Dialogfeld startet das Installationssystem, nachdem verschiedene Einrich-tungsaufgaben durchgeführt wurden. Dieses System ist mit einer Standardinstallationim Textmodus gemäß der Beschreibung in Abschnitt „YaST im Textmodus“ (Kapitel 2,Systemkonfiguration mit YaST, ↑Start) identisch.

Falls Sie die Konfiguration einer Gastdomäne ändern müssen, müssen Sie das direktin der Konfigurationsdatei tun. Die Datei befindet sich in /etc/xen und hat einenNamen, der mit dem Namen der Gastdomäne übereinstimmt.

17.3 Starten und Steuern vonXen-Domänen mit xm

Xen reduziert den Speicherplatz in Domain-0 automatisch, damit die Anforderungender neu gestarteten Gastdomäne erfüllt werden. Falls nicht genügend Speicher verfügbarist, wird die Gastdomäne nicht gestartet. Sie können den verfügbaren Speicher vonDomain-0 stets mit dem Befehl free überprüfen.

Es ist jederzeit möglich, die Verbindung zu einer Konsole zu trennen bzw. die Konsoleneu mit einem anderen Terminal zu verbinden. Zum Trennen der Verbindung dient derBefehl Strg + ] . Wenn Sie eine neue Verbindung herstellen möchten, überprüfenSie zunächst die ID des erforderlichen Gastsystems mit dem Befehl xm list undstellen Sie anschließend mit dem Befehl xm console ID eine Verbindung zu dieserID her.

338 Referenz

Page 339: Suse 10.1 Linux Reference De

Das xm-Werkzeug von Xen lässt sich mit zahlreichen Parametern verwenden. Mit demBefehl xm help können Sie eine Liste mit einer kurzen Erläuterung aufrufen. InTabelle 17.1, „xm-Befehle“ (S. 339) finden Sie einige der wichtigsten Befehle.

Tabelle 17.1 xm-Befehle

Hiermit rufen Sie eine Liste der Befehle auf, die für dasxm-Werkzeug verfügbar sind.

xm help

Mit diesem Befehl stellen Sie eine Verbindung zur erstenKonsole (tty1) des Gastsystems mit der ID ID her.

xm console ID

Hiermit legen Sie die Arbeitsspeichermenge für dieDomäne mit der ID ID auf den Wert Mem in MB fest.

xm mem-set IDMem

Dieser Befehl startet die Domäne mit der Konfigurationsda-tei domname. Der optionale Parameter -c verbindet dasaktuelle Terminal mit der ersten tty des neuen Gastsystems.

xm createdomname [-c]

Hiermit fahren Sie das Gastsystem mit der ID ID normalherunter.

xm shutdown ID

Dieser Befehl beendet das Gastsystem mit der ID ID sofort.xm destroy ID

Mit diesem Befehl geben Sie eine Liste aller laufendenDomänen mit ihren jeweiligen IDs sowie Arbeitsspeicher-und CPU-Zeit-Werten aus.

xm list

Hiermit zeigen Sie Informationen zum Xen-Host einschließ-lich CPU- und Arbeitsspeicherinformationen an.

xm info

17.4 FehlerbehebungDieser Abschnitt enthält einige Hinweise zum Lösen häufiger Probleme. Diese Hinweisedienen nicht als vollständige schrittweise Anweisungen, sondern helfen Ihnen, dieLösung einiger Probleme zu finden.

Virtualisierung mit Xen 339

Page 340: Suse 10.1 Linux Reference De

Es gibt Netzwerkprobleme in Xen3.Das Netzwerkkonzept hat sich in Xen3 verglichen mit Xen2 erheblich geändert.Domain-0 ist nicht mehr direkt an die Bridge angeschlossen, um eine Blockadeder Bridge zu vermeiden. Leider können die Initialisierungsskripts des Systemsdie aktuelle Konfiguration nicht behandeln. Führen Sie /etc/init.d/xendrestart aus, um das Netzwerk neu zu starten.

Ich muss das Dateisystem überprüfen.Falls die Überprüfung des Dateisystems nicht automatisch erfolgt, führen Sie siemanuell über Domain-0 aus. Fahren Sie Ihr Gastsystem herunter und führen Siefsck für das Image aus, solange es nicht eingehängt ist. Wenn fsckmeldet, dassdas Dateisystem eingehängt ist, überprüfen Sie dies mithilfe des Befehls mount.

DHCP kann keine IP-Adresen abrufen.DHCP erfordert, dass mehrere iptables-Kernel-Module ausgeführt werden. Diesewurden entweder nicht installiert oder Sie haben Ihren Kernel aktualisiert undvergessen, die Kernel-Module im Gastsystem zu aktualisieren.

Beim Booten des Hypervisors tritt ein Problem auf und die Meldungen werden zuschnell ausgeblendet

Schließen Sie Ihren Xen-Computer an eine andere Arbeitsstation mit einem seriellenNullmodem-Kabel an. Fügen Sie dann auf der Xen-Seite der Zeile folgendenParameter hinzukernel (hd0,0)/boot/xen.gz com1=115200,8n1

Bevor Sie Xen booten, starten Sie ein Terminalprogramm auf Ihrer Arbeitsstation.Beispiel:screen /dev/ttyS0 115200

Ändern Sie das Gerät und die Geschwindigkeit gemäß Ihren Bedürfnissen.

17.5 Weitere InformationenWeitere Informationen zu Xen finden Sie auf den folgenden Websites:

• /usr/share/doc/packages/xen/user/html/index.html – OffizielleInformationen für Xen-Benutzer. Hierfür ist das Paket xen-doc-html erforder-lich.

340 Referenz

Page 341: Suse 10.1 Linux Reference De

• /usr/share/doc/packages/xen/interface/html/index.html –Zusätzliche technische Schnittstellendokumentation. Auch hierfür ist das Paketxen-doc-html erforderlich.

• http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html – Xen-Webseite mit zahlreichen weiteren Dokumentations-Links.

• http://lists.xensource.com/ – Diverse Mailing-Listen zu Xen.

• http://wiki.xensource.com/xenwiki – Xen-Wiki für die Open Source-Community.

Virtualisierung mit Xen 341

Page 342: Suse 10.1 Linux Reference De
Page 343: Suse 10.1 Linux Reference De

Teil IV. Dienste

Page 344: Suse 10.1 Linux Reference De
Page 345: Suse 10.1 Linux Reference De

18Grundlegendes zu NetzwerkenLinux stellt die erforderlichen Netzwerkwerkzeuge und -funktionen für die Integrationin alle Arten von Netzwerkstrukturen zur Verfügung. Das üblicherweise von Linuxverwendete Protokoll, TCP/IP, verfügt über unterschiedliche Dienste und Sonderfunk-tionen, die im Folgenden beschrieben werden. Der Netzwerkzugriff über eine Netzwerk-karte, ein Modem oder ein anderes Gerät kann mit YaST konfiguriert werden. Diemanuelle Konfiguration ist ebenfalls möglich. In diesem Kapitel werden nur diegrundlegenden Mechanismen sowie die zugehörigen Netzwerkkonfigurationsdateienbeschrieben.

Linux und andere Unix-Betriebssysteme verwenden das TCP/IP-Protokoll. Hierbeihandelt es sich nicht um ein einzelnes Netzwerkprotokoll, sondern um eine Familievon Netzwerkprotokollen, die unterschiedliche Dienste zur Verfügung stellen. Die inTabelle 18.1, „Verschiedene Protokolle aus der TCP/IP-Familie“ (S. 346) aufgelistetenProtokolle dienen dem Datenaustausch zwischen zwei Computern über TCP/IP. ÜberTCP/IP verbundene Netzwerke bilden zusammen ein weltweites Netzwerk, das in seinerGesamtheit auch als „das Internet“ bezeichnet wird.

RFC ist das Akronym für Request for Comments. RFCs sind Dokumente, die unter-schiedliche Internetprotokolle und Implementierungsverfahren für das Betriebssystemund seine Anwendungen beschreiben. Die RFC-Dokumente beschreiben das Einrichtender Internetprotokolle. Weitere Informationen zu diesen Protokollen finden Sie in denentsprechenden RFC-Dokumenten. Diese sind online unter http://www.ietf.org/rfc.html verfügbar.

Grundlegendes zu Netzwerken 345

Page 346: Suse 10.1 Linux Reference De

Tabelle 18.1 Verschiedene Protokolle aus der TCP/IP-Familie

BeschreibungProtokoll

Transmission Control Protocol: ein verbindungsorientiertes, sicheresProtokoll. Die zu übertragenden Daten werden von der Anwendung

TCP

zunächst als Datenstrom gesendet und anschließend vom Betriebssystemin das richtige Format konvertiert. Die entsprechende Anwendung aufdem Zielhost empfängt die Daten im ursprünglichen Datenstromformat,in dem sie anfänglich gesendet wurden. TCP ermittelt, ob Daten währendder Übertragung verloren gegangen sind, und stellt sicher, dass keineVerwechslungen der Daten vorliegen. TCP wird immer dann implemen-tiert, wenn die Datensequenz eine Rolle spielt.

User Datagram Protocol: ein verbindungsloses, unsicheres Protokoll.Die zu übertragenden Daten werden in Form von anwendungsseitig

UDP

generierten Paketen gesendet. Es ist nicht garantiert, in welcher Reihen-folge die Daten beim Empfänger eingehen, und ein Datenverlust istimmer möglich. UDP ist geeignet für datensatzorientierte Anwendungen.Es verfügt über eine kürzere Latenzzeit als TCP.

Internet Control Message Protocol: Dies ist im Wesentlichen kein Pro-tokoll für den Endbenutzer, sondern ein spezielles Steuerungsprotokoll,

ICMP

das Fehlerberichte ausgibt und das Verhalten von Computern, die amTCP/IP-Datentransfer teilnehmen, steuern kann. Außerdem bietet eseinen speziellen Echomodus, der mit dem Programm „ping“ angezeigtwerden kann.

Internet Group Management Protocol: Dieses Protokoll steuert dasVerhalten des Computers bei der Implementierung von IP-Multicast.

IGMP

Der Datenaustausch findet wie in Abbildung 18.1, „Vereinfachtes Schichtmodell fürTCP/IP“ (S. 347) dargestellt in unterschiedlichen Schichten statt. Die eigentliche Netz-werkschicht ist der unsichere Datentransfer über IP (Internet Protocol). Oberhalb vonIP gewährleistet TCP (Transmission Control Protocol) bis zu einem gewissen Grad dieSicherheit des Datentransfers. Die IP-Schicht wird vom zugrunde liegenden Hardware-abhängigen Protokoll, z. B. Ethernet, unterstützt.

346 Referenz

Page 347: Suse 10.1 Linux Reference De

Abbildung 18.1 Vereinfachtes Schichtmodell für TCP/IP

Host Sun

Anwendungsebene

Transportebene

Datenverknüpfungsebene

Physische Ebene

Netzwerkebene

Host Earth

Anwendungsebene

Transportebene

Netzwerkebene

Datenverknüpfungsebene

Physische Ebene

TCP, UDP

IP

Ethernet, FDDI, ISDN

Kabel, Glasfaser

Anwendungen

Datenübertragung

Dieses Diagramm bietet für jede Schicht ein oder zwei Beispiele. Die Schichten sindnach Abstraktionsstufen sortiert. Die unterste Schicht ist sehr Hardware-nah. Dieoberste Schicht ist beinahe vollständig von der Hardware losgelöst. Jede Schicht hatihre eigene spezielle Funktion. Die speziellen Funktionen der einzelnen Schichten gehenbereits aus ihrer Bezeichnung hervor. Die Datenverbindungs- und die physische Schichtrepräsentieren das verwendete physische Netzwerk, z. B. das Ethernet.

Fast alle Hardwareprotokolle arbeiten auf einer paketorientierten Basis. Die zu übertra-genden Daten werden in Pakete unterteilt, da sie nicht alle auf einmal gesendet werdenkönnen. Die maximale Größe eines TCP/IP-Pakets beträgt ca. 64 KB. Die Pakete sindin der Regel jedoch sehr viel kleiner, da die Netzwerkhardware ein einschränkenderFaktor sein kann. Die maximale Größe eines Datenpakets in einem Ethernet beträgt ca.1500 Byte. Die Größe eines TCP/IP-Pakets ist auf diesen Wert begrenzt, wenn dieDaten über ein Ethernet gesendet werden. Wenn mehr Daten übertragen werden, müssenvom Betriebssystem mehr Datenpakete gesendet werden.

Damit die Schichten ihre vorgesehenen Funktionen erfüllen können, müssen imDatenpaket zusätzliche Informationen über die einzelnen Schichten gespeichert sein.Diese Informationen werden im Header des Pakets gespeichert. Jede Schicht stelltjedem ausgehenden Paket einen kleinen Datenblock voran, den so genannten Protokoll-

Grundlegendes zu Netzwerken 347

Page 348: Suse 10.1 Linux Reference De

Header. Ein Beispiel für ein TCP/IP-Datenpaket, das über ein Ethernetkabel gesendetwird, ist in Abbildung 18.2, „TCP/IP-Ethernet-Paket“ (S. 348) dargestellt. Die Prüfsummebefindet sich am Ende des Pakets, nicht am Anfang. Dies erleichtert die Arbeit für dieNetzwerkhardware.

Abbildung 18.2 TCP/IP-Ethernet-Paket

Verwendungsdaten (maximal 1460 Byte)

Ethernet (Ebene 2)-Protokoll-Header (ca. 14 Byte) + Prüfsumme (2 Byte)Physische Ebene

IP (Ebene 3)-Protokoll-Header (ca. 20 Byte)

TCP (Ebene 4)-Protokoll-Header (ca. 20 Byte)

Wenn eine Anwendung Daten über das Netzwerk sendet, werden diese Daten durchalle Schichten geleitet, die mit Ausnahme der physischen Schicht alle im Linux-Kernelimplementiert sind. Jede Schicht ist für das Vorbereiten der Daten zur Weitergabe andie nächste Schicht verantwortlich. Die unterste Schicht ist letztendlich für das Sendender Daten verantwortlich. Bei eingehenden Daten erfolgt die gesamte Prozedur inumgekehrter Reihenfolge. Die Protokoll-Header werden von den transportierten Datenin den einzelnen Schichten wie die Schalen einer Zwiebel entfernt. Die Transportschichtist schließlich dafür verantwortlich, die Daten den Anwendungen am Ziel zur Verfügungzu stellen. Auf diese Weise kommuniziert eine Schicht nur mit der direkt darüber bzw.darunter liegenden Schicht. Für Anwendungen ist es irrelevant, ob die Daten über ein100 MBit/s schnelles FDDI-Netzwerk oder über eine 56-KBit/s-Modemleitung übertra-gen werden. Ähnlich spielt es für die Datenverbindung keine Rolle, welche Art vonDaten übertragen wird, solange die Pakete das richtige Format haben.

18.1 IP-Adressen und RoutingDie in diesem Abschnitt enthaltenen Informationen beziehen sich nur auf IPv4-Netz-werke. Informationen zum IPv6-Protokoll, dem Nachfolger von IPv4, finden Sie inAbschnitt 18.2, „IPv6 – Das Internet der nächsten Generation“ (S. 351).

348 Referenz

Page 349: Suse 10.1 Linux Reference De

18.1.1 IP-AdressenJeder Computer im Internet verfügt über eine eindeutige 32-Bit-Adresse. Diese 32 Bit(oder 4 Byte) werden in der Regel wie in der zweiten Zeile in Beispiel 18.1, „IP-Adressen schreiben“ (S. 349) dargestellt geschrieben.

Beispiel 18.1 IP-Adressen schreibenIP-Adresse (binär): 11000000 10101000 00000000 00010100 IP-Adresse (dezimal): 192. 168. 0. 20

Im Dezimalformat werden die vier Byte in Dezimalzahlen geschrieben und durchPunkte getrennt. Die IP-Adresse wird einem Host oder einer Netzwerkschnittstellezugewiesen. Diese Adresse kann weltweit nur einmal verwendet werden. Es gibt zwarAusnahmen zu dieser Regel, diese sind jedoch für die folgenden Abschnitte nicht rele-vant.

Die Punkte in IP-Adressen geben das hierarchische System an. Bis in die 1990er-Jahrewurden IP-Adressen strikt in Klassen organisiert. Dieses System erwies sich jedoch alszu wenig flexibel und wurde eingestellt. Heute wird das klassenlose Routing (CIDR,Classless Interdomain Routing) verwendet.

18.1.2 Netzmasken und RoutingMit Netzmasken werden Adressräume eines Subnetzes definiert. Wenn sich zwei Hostsim selben Subnetz befinden, können sie direkt kommunizieren. Anderenfalls benötigensie die Adresse eines Gateways, das den gesamten Verkehr zwischen dem Subnetz unddem Rest der Welt handhabt. Um zu prüfen, ob sich zwei IP-Adressen im selben Subnetzbefinden, wird jede Adresse bitweise mit der Netzmaske „UND“-verknüpft. Sind dieErgebnisse identisch, befinden sich beide IP-Adressen im selben lokalen Netzwerk.Wenn unterschiedliche Ergebnisse ausgegeben werden, kann die entfernte IP-Adresse,und somit die entfernte Schnittstelle, nur über ein Gateway erreicht werden.

Weitere Informationen zur Funktionsweise von Netzmasken finden Sie in Beispiel 18.2,„Verknüpfung von IP-Adressen mit der Netzmaske“ (S. 350). Die Netzmaske bestehtaus 32 Bit, die festlegen, welcher Teil einer IP-Adresse zum Netzwerk gehört. Alle Bitsmit dem Wert1 kennzeichnen das entsprechende Bit in der IP-Adresse als zum Netzwerkgehörend. Alle Bits mit dem Wert 0 kennzeichnen Bits innerhalb des Subnetzes. Dasbedeutet, je mehr Bits den Wert 1 haben, desto kleiner ist das Netzwerk. Da die Netz-maske immer aus mehreren aufeinander folgenden Bits mit dem Wert 1 besteht, ist es

Grundlegendes zu Netzwerken 349

Page 350: Suse 10.1 Linux Reference De

auch möglich, einfach die Anzahl der Bits in der Netzmaske zu zählen. In Beispiel 18.2,„Verknüpfung von IP-Adressen mit der Netzmaske“ (S. 350) könnte das erste Netz mit24 Bit auch als 192.168.0.0/24 geschrieben werden.

Beispiel 18.2 Verknüpfung von IP-Adressen mit der NetzmaskeIP-Adresse (192.168.0.20): 11000000 10101000 00000000 00010100 Netzmaske (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Ergebnis der Verbindung: 11000000 10101000 00000000 00000000 Im Dezimalsystem: 192. 168. 0. 0

IP-Adresse (213.95.15.200): 11010101 10111111 00001111 11001000 Netzmaske (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Ergebnis der Verbindung: 11010101 10111111 00001111 00000000 Im Dezimalsystem: 213. 95. 15. 0

Ein weiteres Beispiel: Alle Computer, die über dasselbe Ethernetkabel angeschlossensind, befinden sich in der Regel im selben Subnetz und der Zugriff auf sie erfolgt direkt.Selbst wenn das Subnetz physisch durch Switches oder Bridges unterteilt ist, könnendiese Hosts weiter direkt erreicht werden.

IP-Adressen außerhalb des lokalen Subnetzes können nur erreicht werden, wenn fürdas Zielnetzwerk ein Gateway konfiguriert ist. In den meisten Fällen wird der gesamteexterne Verkehr über lediglich ein Gateway gehandhabt. Es ist jedoch auch möglich,für unterschiedliche Subnetze mehrere Gateways zu konfigurieren.

Wenn ein Gateway konfiguriert wurde, werden alle externen IP-Pakete an das entspre-chende Gateway gesendet. Dieses Gateway versucht anschließend, die Pakete auf die-selbe Weise – von Host zu Host – weiterzuleiten, bis sie den Zielhost erreichen oderihre TTL-Zeit (Time to Live) abgelaufen ist.

Tabelle 18.2 Spezifische Adressen

BeschreibungAdresstyp

Dies ist die Netzmaske, die durch UND mit einer Netzwerkadres-se verknüpft ist, wie in Beispiel 18.2, „Verknüpfung von IP-

Netzwerkbasis-adresse

Adressen mit der Netzmaske“ (S. 350) unter Ergebnis darge-stellt. Diese Adresse kann keinem Host zugewiesen werden.

350 Referenz

Page 351: Suse 10.1 Linux Reference De

BeschreibungAdresstyp

Dies bedeutet im Wesentlichen „Senden an alle Hosts in diesemSubnetz“. Um die Broadcast-Adresse zu generieren, wird die

Broadcast-Adres-se

Netzmaske in die binäre Form invertiert und mit einem logischenODER mit der Netzwerkbasisadresse verknüpft. Das Ergebnisim obigen Beispiel würde 192.168.0.255 lauten. Diese Adressekann keinem Host zugewiesen werden.

Die Adresse 127.0.0.1 ist auf jedem Host dem „Loopback-Device“ zugewiesen. Mit dieser Adresse kann eine Verbindungzu Ihrem Computer hergestellt werden.

Lokaler Host

Da IP-Adressen weltweit eindeutig sein müssen, können Sie nicht einfach eine Adressenach dem Zufallsprinzip wählen. Zum Einrichten eines privaten IP-basierten Netzwerksstehen drei Adressdomänen zur Verfügung. Diese können keine Verbindung zumInternet herstellen, da sie nicht über das Internet übertragen werden können. DieseAdressdomänen sind in RFC 1597 festgelegt und werden in Tabelle 18.3, „Private IP-Adressdomänen“ (S. 351) aufgelistet.

Tabelle 18.3 Private IP-Adressdomänen

DomäneNetzwerk/Netzmaske

10.x.x.x10.0.0.0/255.0.0.0

172.16.x.x – 172.31.x.x172.16.0.0/255.240.0.0

192.168.x.x192.168.0.0/255.255.0.0

18.2 IPv6 – Das Internet der nächstenGeneration

Aufgrund der Entstehung des WWW (World Wide Web) hat das Internet in den letzten15 Jahren ein explosives Wachstum mit einer immer größer werdenden Anzahl vonComputern erfahren, die über TCP/IP kommunizieren. Seit Tim Berners-Lee bei CERN

Grundlegendes zu Netzwerken 351

Page 352: Suse 10.1 Linux Reference De

(http://public.web.cern.ch) 1990 das WWW erfunden hat, ist die Anzahlder Internethosts von ein paar tausend auf ca. 100 Millionen angewachsen.

Wie bereits erwähnt, besteht eine IPv4-Adresse nur aus 32 Bit. Außerdem gehen zahl-reiche IP-Adressen verloren, da sie aufgrund der organisatorischen Bedingtheit derNetzwerke nicht verwendet werden können. Die Anzahl der in Ihrem Subnetz verfüg-baren Adressen ist zwei hoch der Anzahl der Bits minus zwei. Ein Subnetz verfügt alsobeispielsweise über 2, 6 oder 14 Adressen. Um beispielsweise 128 Hosts mit demInternet zu verbinden, benötigen Sie ein Subnetz mit 256 IP-Adressen, von denen nur254 verwendbar sind, da zwei IP-Adressen für die Struktur des Subnetzes selbst erfor-derlich sind: die Broadcast- und die Netzwerkbasisadresse.

Unter dem aktuellen IPv4-Protokoll sind DHCP oder NAT (Network Address Transla-tion) die typischen Mechanismen, um einem potenziellen Adressmangel vorzubeugen.Kombiniert mit der Konvention, private und öffentliche Adressräume getrennt zu halten,können diese Methoden den Adressmangel sicherlich mäßigen. Das Problem liegt inder Konfiguration der Adressen, die schwierig einzurichten und zu verwalten ist. Umeinen Host in einem IPv4-Netzwerk einzurichten, benötigen Sie mehrere Adressen, z.B. die IP-Adresse des Hosts, die Subnetzmaske, die Gateway-Adresse und möglicher-weise die Adresse des Namenservers. Alle diese Einträge müssen bekannt sein undkönnen nicht von anderer Stelle her abgeleitet werden.

Mit IPv6 gehören sowohl der Adressmangel als auch die komplizierte Konfigurationder Vergangenheit an. Die folgenden Abschnitte enthalten weitere Informationen zuden Verbesserungen und Vorteilen von IPv6 sowie zum Übergang vom alten zumneuen Protokoll.

18.2.1 VorteileDie wichtigste und augenfälligste Verbesserung durch das neue Protokoll ist der enormeZuwachs des verfügbaren Adressraums. Eine IPv6-Adresse besteht aus 128-Bit-Wertenund nicht aus den herkömmlichen 32 Bit. Dies ermöglicht mehrere Billiarden IP-Adressen.

IPv6-Adressen unterscheiden sich nicht nur hinsichtlich ihrer Länge gänzlich von ihrenVorgängern. Sie verfügen auch über eine andere interne Struktur, die spezifischereInformationen zu den Systemen und Netzwerken enthalten kann, zu denen sie gehören.Weitere Informationen hierzu finden Sie in Abschnitt 18.2.2, „Adresstypen und -struktur“ (S. 354).

352 Referenz

Page 353: Suse 10.1 Linux Reference De

In der folgenden Liste werden einige der wichtigsten Vorteile des neuen Protokollsaufgeführt:

Automatische KonfigurationIPv6 macht das Netzwerk „Plug-and-Play“-fähig, d. h., ein neu eingerichtetesSystem wird ohne jegliche manuelle Konfiguration in das (lokale) Netzwerk inte-griert. Der neue Host verwendet die automatischen Konfigurationsmechanismen,um seine eigene Adresse aus den Informationen abzuleiten, die von den benachbar-ten Routern zur Verfügung gestellt werden. Dabei nutzt er ein Protokoll, das alsND-Protokoll (Neighbor Discovery) bezeichnet wird. Diese Methode erfordertkein Eingreifen des Administrators und für die Adresszuordnung muss kein zentralerServer verfügbar sein. Dies ist ein weiterer Vorteil gegenüber IPv4, bei dem fürdie automatische Adresszuordnung ein DHCP-Server erforderlich ist.

MobilitätIPv6 ermöglicht es, einer Netzwerkschnittstelle gleichzeitig mehrere Adressenzuzuordnen. Dadurch können Benutzer problemlos auf mehrere Netzwerkezugreifen, was beispielsweise mit den von Mobilfunkunternehmen angeboteneninternationalen Roaming-Diensten vergleichbar ist. Wenn Sie Ihr Mobiltelefon mitins Ausland nehmen, meldet sich das Telefon automatisch bei dem fremden Dienstan, sobald Sie dessen Bereich betreten, sodass Sie überall unter Ihrer Rufnummererreichbar sind und Anrufe genauso wie in Ihrem Heimatland tätigen können.

Sichere KommunikationBei IPv4 ist die Netzwerksicherheit eine Zusatzfunktion. IPv6 umfasst IPSec alseine seiner Kernfunktionen und ermöglicht es Systemen, über einen sicheren Tunnelzu kommunizieren, um das Ausspionieren durch Außenstehende über das Internetzu verhindern.

AbwärtskompatibilitätRealistisch gesehen, ist es unmöglich, das gesamte Internet auf einmal von IPv4auf IPv6 umzustellen. Daher ist es wichtig, dass beide Protokolle nicht nur imInternet, sondern auf einem System koexistieren können. Dies wird durch kompa-tible Adressen (IPv4-Adressen können problemlos in IPv6-Adressen konvertiertwerden) und die Verwendung von Tunnels gewährleistet. Siehe Abschnitt 18.2.3,„Koexistenz von IPv4 und IPv6“ (S. 359). Außerdem können Systeme eine Dual-Stack-IP-Technik verwenden, um beide Protokolle gleichzeitig unterstützen zukönnen. Dies bedeutet, dass sie über zwei Netzwerk-Stacks verfügen, die vollständigunabhängig voneinander sind, sodass zwischen den beiden Protokollversionenkeine Konflikte auftreten.

Grundlegendes zu Netzwerken 353

Page 354: Suse 10.1 Linux Reference De

Bedarfsgerechte Dienste über MulticastingMit IPv4 müssen einige Dienste, z. B. SMB, ihre Pakete via Broadcast an alle Hostsim lokalen Netzwerk verteilen. IPv6 erlaubt einen sehr viel feineren Ansatz, indemes Servern ermöglicht, Hosts über Multicasting anzusprechen, d. h., sie sprechenmehrere Hosts als Teile einer Gruppe an. Dies unterscheidet sich von der Adressie-rung aller Hosts über Broadcasting oder der Einzeladressierung der Hosts überUnicasting. Welche Hosts als Gruppe adressiert werden, kann je nach Anwendungunterschiedlich sein. Es gibt einige vordefinierte Gruppen, mit der beispielsweisealle Namenserver (dieMulticast-Gruppe „all name servers“) oder alle Router (dieMulticast-Gruppe „all routers“) angesprochen werden können.

18.2.2 Adresstypen und -strukturWie bereits erwähnt weist das aktuelle IP-Protokoll zwei wichtige Aspekte nicht auf:Es gibt einen zunehmenden Mangel an IP-Adressen und das Konfigurieren des Netz-werks sowie die Verwaltung der Routing-Tabellen wird immer komplexer undarbeitsintensiver. IPv6 löst das erste Problem durch die Erweiterung des Adressraumsauf 128 Bit. Das zweite Problem wird durch die Einführung einer hierarchischenAdressstruktur behoben, die mit weiteren hoch entwickelten Techniken zum Zuordnenvon Netzwerkadressen sowie mit demMultihoming (der Fähigkeit, einem Gerät mehrereAdressen zuzuordnen und so den Zugriff auf mehrere Netzwerke zu ermöglichen)kombiniert wird.

Bei der Arbeit mit IPv6 ist es hilfreich, die drei unterschiedlichen Adresstypen zukennen:

UnicastAdressen dieses Typs werden genau einer Netzwerkschnittstelle zugeordnet.Pakete mit derartigen Adressen werden nur einem Ziel zugestellt. Unicast-Adressenwerden dementsprechend zum Übertragen von Paketen an einzelne Hosts imlokalen Netzwerk oder im Internet verwendet.

MulticastAdressen dieses Typs beziehen sich auf eine Gruppe von Netzwerkschnittstellen.Pakete mit derartigen Adressen werden an alle Ziele zugestellt, die dieser Gruppeangehören. Multicast-Adressen werden hauptsächlich von bestimmten Netzwerk-diensten für die Kommunikation mit bestimmten Hostgruppen verwendet, wobeidiese gezielt adressiert werden.

354 Referenz

Page 355: Suse 10.1 Linux Reference De

AnycastAdressen dieses Typs beziehen sich auf eine Gruppe von Schnittstellen. Pakete miteiner derartigen Adresse werden gemäß den Prinzipien des zugrunde liegendenRouting-Protokolls dem Mitglied der Gruppe gesendet, das dem Absender amnächsten ist. Anycast-Adressen werden verwendet, damit Hosts Informationen zuServern schneller abrufen können, die im angegebenen Netzwerkbereichbestimmte Dienste anbieten. Sämtliche Server desselben Typs verfügen über die-selbe Anycast-Adresse. Wann immer ein Host einen Dienst anfordert, erhält er eineAntwort von dem vom Routing-Protokoll ermittelten nächstgelegenen Server.Wenn dieser Server aus irgendeinem Grund nicht erreichbar ist, wählt das Protokollautomatisch den zweitnächsten Server, dann den dritten usw. aus.

Eine IPv6-Adresse besteht aus acht vierstelligen Feldern, wobei jedes 16 Bit repräsen-tiert, und wird in hexadezimaler Notation geschrieben. Die Felder werden ebenfallsdurch Doppelpunkte (:) getrennt. Alle führenden Null-Byte innerhalb eines bestimmtenFelds können ausgelassen werden, alle anderen Nullen jedoch nicht. Eine weitereKonvention ist, dass mehr als vier aufeinander folgenden Null-Byte mit einem doppeltenDoppelpunkt zusammengefasst werden können. Pro Adresse ist jedoch nur ein ::zulässig. ***DELETE***. Diese Art der Kurznotation wird in Beispiel 18.3, „Beispieleiner IPv6-Adresse“ (S. 355) dargestellt, in dem alle drei Zeilen derselben Adresse ent-sprechen.

Beispiel 18.3 Beispiel einer IPv6-Adressefe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4fe80 : : 10 : 1000 : 1a4

Jeder Teil einer IPv6-Adresse hat eine festgelegte Funktion. Die ersten Byte bilden dasPräfix und geben den Typ der Adresse an. Der mittlere Teil ist der Netzwerkteil derAdresse, der möglicherweise nicht verwendet wird. Das Ende der Adresse bildet derHostteil. Bei IPv6 wird die Netzmaske definiert, indem die Länge des Präfixes nacheinem Schrägstrich am Ende der Adresse angegeben wird. Adressen wie in Beispiel 18.4,„IPv6-Adressen mit Angabe der Präfix-Länge“ (S. 355) enthalten Informationen zumNetzwerk (die ersten 64 Bit) und zum Hostteil (die letzten 64 Bit). Die 64 bedeutet,dass die Netzmaske mit 64 1-Bit-Werten von links gefüllt wird. Wie bei IPv4 wird dieIP-Adresse mit den Werten aus der Netzmaske durch UND verknüpft, um zu ermitteln,ob sich der Host im selben oder einem anderen Subnetz befindet.

Beispiel 18.4 IPv6-Adressen mit Angabe der Präfix-Längefe80::10:1000:1a4/64

Grundlegendes zu Netzwerken 355

Page 356: Suse 10.1 Linux Reference De

IPv6 kennt mehrere vordefinierte Präfixtypen. Einige von diesen sind in Tabelle 18.4,„Unterschiedliche IPv6-Präfixe“ (S. 356) aufgeführt.

Tabelle 18.4 Unterschiedliche IPv6-Präfixe

DefinitionPräfix (hexadezi-mal)

IPv4-über-IPv6-Kompatibilitätsadressen. Diese werden zurErhaltung der Kompatibilität mit IPv4 verwendet. Für diesen

00

Adresstyp wird ein Router benötigt, der IPv6-Pakete in IPv4-Pakete konvertieren kann. Mehrere spezielle Adressen, z. B. diefür das Loopback-Device, verfügen ebenfalls über dieses Präfix.

Aggregierbare globale Unicast-Adressen. Wie bei IPv4 kann eineSchnittstelle zugewiesen werden, um einen Teil eines bestimmten

2 oder 3 als ersteStelle

Subnetzes zu bilden. Aktuell gibt es folgende Adressräume:2001::/16 (Production Quality Address Space) und2002::/16 (6to4 Address Space).

Link-local-Adressen. Adressen mit diesem Präfix dürfen nichtgeroutet werden und können daher nur im gleichen Subnetzerreicht werden.

fe80::/10

Site-local-Adressen. Diese Adressen dürfen zwar geroutet werden,aber nur innerhalb des Organisationsnetzwerks, dem sie angehö-

fec0::/10

ren. Damit entsprechen diese Adressen den bisherigen privatenNetzen (beispielsweise 10.x.x.x.

Dies sind Multicast-Adressen.ff

Eine Unicast-Adresse besteht aus drei grundlegenden Komponenten:

Öffentliche TopologieDer erste Teil, der unter anderem auch eines der oben erwähnten Präfixe enthält,dient dem Routing des Pakets im öffentlichen Internet. Hier sind Informationenzum Provider oder der Institution kodiert, die den Netzwerkzugang bereitstellen.

356 Referenz

Page 357: Suse 10.1 Linux Reference De

Site-TopologieDer zweite Teil enthält Routing-Informationen über das Subnetz, in dem das Paketzugestellt werden soll.

Schnittstellen-IDDer dritte Teil identifiziert eindeutig die Schnittstelle, an die das Paket gerichtetist. Dies erlaubt, die MAC-Adresse als Adressbestandteil zu verwenden. Da dieseweltweit nur einmal vorhanden und zugleich vom Hardwarehersteller fest vorgege-ben ist, vereinfacht sich die Konfiguration auf diese Weise sehr. Die ersten 64 Bitwerden zu einem so genannten EUI-64-Token zusammengefasst. Dabei werdendie letzten 48 Bit der MAC-Adresse entnommen und die restlichen 24 Bit enthaltenspezielle Informationen, die etwas über den Typ des Tokens aussagen. Dasermöglicht dann auch, Geräten ohne MAC-Adresse (z. B. PPP- und ISDN-Verbin-dungen) ein EUI-64-Token zuzuweisen.

Abgeleitet aus diesem Grundaufbau werden bei IPv6 fünf verschiedene Typen vonUnicast-Adressen unterschieden:

:: (nicht spezifiziert)Diese Adresse verwendet ein Host als Quelladresse, wenn seine Netzwerkschnitt-stelle zum ersten Mal initialisiert wird und die Adresse noch nicht anderweitigermittelt werden kann.

::1 (Loopback)Adresse des Loopback-Device.

IPv4-kompatible AdressenDie IPv6-Adresse setzt sich aus der IPv4-Adresse und einem Präfix von 96 0-Bitszusammen. Dieser Typ der Kompatibilitätsadresse wird beim Tunneling verwendet(siehe Abschnitt 18.2.3, „Koexistenz von IPv4 und IPv6“ (S. 359)). IPv4/IPv6-Hostskönnen so mit anderen kommunizieren, die sich in einer reinen IPv4-Umgebungbefinden.

IPv6-gemappte IPv4-AdressenDieser Adresstyp gibt die Adresse in IPv6-Notation an.

Lokale AdressenEs gibt zwei Typen von Adressen zum rein lokalen Gebrauch:

Grundlegendes zu Netzwerken 357

Page 358: Suse 10.1 Linux Reference De

link-localDieser Adresstyp ist ausschließlich für den Gebrauch im lokalen Subnetzbestimmt. Router dürfen Pakete mit solcher Ziel- oder Quelladresse nicht andas Internet oder andere Subnetze weiterreichen. Diese Adressen zeichnen sichdurch ein spezielles Präfix (fe80::/10) und die Schnittstellen-ID der Netz-werkkarte aus. Der Mittelteil der Adresse besteht aus Null-Bytes. Diese ArtAdresse wird von den Autokonfigurationsmethoden verwendet, um Hosts imselben Subnetz anzusprechen.

site-localPakete mit diesem Adresstyp dürfen zwischen einzelnen Subnetzen geroutetwerden, aber nicht außerhalb einer Organisation ins Internet gelangen. SolcheAdressen werden für Intranets eingesetzt und sind ein Äquivalent zu den priva-ten IPv4-Adressen. Neben einem definierten Präfix (fec0::/10) und derSchnittstellen-ID enthalten diese Adressen ein 16-Bit-Feld, in dem die Subnetz-ID kodiert ist. Der Rest wird wieder mit Null-Bytes aufgefüllt.

Zusätzlich gibt es in IPv6 eine grundsätzlich neue Funktion: Einer Netzwerkschnittstellewerden üblicherweise mehrere IP-Adressen zugewiesen. Das hat den Vorteil, dassmehrere verschiedene Netze zur Verfügung stehen. Eines davon kann mithilfe derMAC-Adresse und einem bekannten Präfix vollautomatisch konfiguriert werden, sodassgleich nach Aktivierung von IPv6 alle Hosts im lokalen Netz über Link-local-Adressenerreichbar sind. Durch die MAC-Adresse als Bestandteil der IP-Adresse ist jede dieserAdressen global eindeutig. Einzig die Teile der Site-Topologie und der öffentlichenTopologie können variieren, je nachdem in welchem Netz dieser Host aktuell zu errei-chen ist.

Bewegt sich ein Host zwischen mehreren Netzen hin und her, braucht er mindestenszwei Adressen. Die eine, seine Home-Adresse, beinhaltet neben der Schnittstellen-IDdie Informationen zu dem Heimatnetz, in dem der Computer normalerweise betriebenwird, und das entsprechende Präfix. Die Home-Adresse ist statisch und wird in derRegel nicht verändert. Alle Pakete, die für diesen Host bestimmt sind, werden ihmsowohl im eigenen als auch in fremden Netzen zugestellt. Möglich wird die Zustellungim Fremdnetz über wesentliche Neuerungen des IPv6-Protokolls, z. B. Stateless Auto-configuration und Neighbor Discovery. Der mobile Rechner hat neben seiner Home-Adresse eine oder mehrere weitere Adressen, die zu den fremden Netzen gehören, indenen er sich bewegt. Diese Adressen heißen Care-of-Adressen. Im Heimatnetz desmobilen Rechners muss eine Instanz vorhanden sein, die an seine Home-Adressegerichtete Pakete nachsendet, sollte er sich in einem anderen Netz befinden. DieseFunktion wird in einer IPv6-Umgebung vomHome-Agenten übernommen. Er stellt alle

358 Referenz

Page 359: Suse 10.1 Linux Reference De

Pakete, die an die Home-Adresse des mobilen Rechners gerichtet sind, über einenTunnel zu. Pakete, die als Zieladresse die Care-of-Adresse tragen, können ohne Umwegüber den Home-Agenten zugestellt werden.

18.2.3 Koexistenz von IPv4 und IPv6Die Migration aller mit dem Internet verbundenen Hosts von IPv4 auf IPv6 wird nichtauf einen Schlag geschehen. Vielmehr werden das alte und das neue Protokoll nocheine ganze Weile nebeneinanderher existieren. Die Koexistenz auf einem Rechner istdann möglich, wenn beide Protokolle im Dual Stack-Verfahren implementiert sind. Esbleibt aber die Frage, wie IPv6-Rechner mit IPv4-Rechnern kommunizieren könnenund wie IPv6-Pakete über die momentan noch vorherrschenden IPv4-Netze transportiertwerden sollen. Tunneling und die Verwendung von Kompatibilitätsadressen (sieheAbschnitt 18.2.2, „Adresstypen und -struktur“ (S. 354)) sind hier die besten Lösungen.

Einzelne IPv6-Hosts im (weltweiten) IPv4-Netz tauschen ihre Daten über Tunnel aus.Beim Tunneling werden IPv6-Pakete in IPv4-Pakete verpackt, um sie über ein IPv4-Netzwerk transportieren zu können. Ein Tunnel ist definiert als die Verbindung zwischenzwei IPv4-Endpunkten. Hierbei müssen die Pakete die IPv6-Zieladresse (oder das ent-sprechende Präfix) und die IPv4-Adresse des entfernten Hosts am Tunnelendpunktenthalten. Einfache Tunnel können von den Administratoren zwischen ihren Netzwerkenmanuell und nach Absprache konfiguriert werden. Ein solches Tunneling wird statischesTunneling genannt.

Trotzdem reicht manuelles Tunneling oft nicht aus, um die Menge der zum täglichenvernetzten Arbeiten nötigen Tunnel aufzubauen und zu verwalten. Aus diesem Grundwurden für IPv6 drei verschiedene Verfahren entwickelt, die das dynamische Tunnelingerlauben:

6over4IPv6-Pakete werden automatisch in IPv4-Pakete verpackt und über ein IPv4-Netzwerk versandt, in dem Multicasting aktiviert ist. IPv6 wird vorgespiegelt, dasgesamte Netzwerk (Internet) sei ein einziges, riesiges LAN (Local Area Network).So wird der IPv4-Endpunkt des Tunnel automatisch ermittelt. Nachteile dieserMethode sind die schlechte Skalierbarkeit und die Tatsache, dass IP-Multicastingkeineswegs im gesamten Internet verfügbar ist. Diese Lösung eignet sich für klei-nere Netzwerke, die die Möglichkeit von IP-Multicasting bieten. Die zugrundeliegenden Spezifikationen sind in RFC 2529 enthalten.

Grundlegendes zu Netzwerken 359

Page 360: Suse 10.1 Linux Reference De

6to4Bei dieser Methode werden automatisch IPv4-Adressen aus IPv6-Adressen generiert.So können isolierte IPv6-Hosts über ein IPv4-Netz miteinander kommunizieren.Allerdings gibt es einige Probleme, die die Kommunikation zwischen den isoliertenIPv6-Hosts und dem Internet betreffen. Diese Methode wird in RFC 3056beschrieben.

IPv6 Tunnel BrokerDieser Ansatz sieht spezielle Server vor, die für IPv6 automatisch dedizierte Tunnelanlegen. Diese Methode wird in RFC 3053 beschrieben.

WICHTIG: Die 6Bone-Initiative

Mitten im „altmodischen“ Internet existiert ein weltweit verteiltes Netzwerkvon IPv6-Subnetzen, die über Tunnel miteinander verbunden sind. Dies ist das6Bone-Netzwerk (http://www.6bone.net), eine IPv6-Testumgebung, dievon Programmierern und ISPs genutzt werden kann, die IPv6-basierte Diensteentwickeln und anbieten möchten, um Erfahrungen mit dem neuen Protokollzu sammeln. Weitere Informationen finden Sie auf den Projektseiten von 6Boneim Internet.

18.2.4 IPv6 konfigurierenUm IPv6 zu konfigurieren, müssen Sie auf den einzelnen Arbeitsstationen in der Regelkeine Änderungen vornehmen. Dazu muss jedoch die IPv6-Unterstützung geladenwerden. Geben Sie hierzu den Befehl modprobe ipv6 als root ein.

Aufgrund des Konzepts der automatischen Konfiguration von IPv6 wird der Netzwerk-karte eine Adresse im Link-local-Netzwerk zugewiesen. In der Regel werden Routing-Tabellen nicht auf Arbeitsstationen verwaltet. Bei Netzwerkroutern kann von derArbeitsstation unter Verwendung desRouter-Advertisement-Protokolls abgefragt werden,welches Präfix und welche Gateways implementiert werden sollen. Zum Einrichteneines IPv6-Routers kann das radvd-Programm verwendet werden. Dieses Programminformiert die Arbeitsstationen darüber, welches Präfix und welche Router für die IPv6-Adressen verwendet werden sollen. Alternativ können Sie die Adressen und das Routingauch mit zebra automatisch konfigurieren.

360 Referenz

Page 361: Suse 10.1 Linux Reference De

Weitere Informationen zum Einrichten der unterschiedlichen Tunneltypen mithilfe derDateien im Verzeichnis/etc/sysconfig/network finden Sie auf der Manualpage„ifup(8)“.

18.2.5 Weitere InformationenDas komplexe IPv6-Konzept wird im obigen Überblick nicht vollständig abgedeckt.Weitere ausführliche Informationen zu dem neuen Protokoll finden Sie in den folgendenOnline-Dokumentationen und -Büchern:

http://www.ngnet.it/e/cosa-ipv6.phpEine Artikelserie mit einer gut geschriebenen Einführung in das IPv6-Konzept.Eine gute Grundlage für das Thema.

http://www.bieringer.de/linux/IPv6/Hier finden Sie den Beitrag „Linux IPv6 HOWTO“ und viele verwandte Linkszum Thema.

http://www.6bone.net/Besuchen Sie diese Site, wenn Sie eine Verbindung zu einem getunnelten IPv6-Netzwerk benötigen.

http://www.ipv6.org/Alles rund um IPv6.

RFC 2640Die grundlegenden IPv6-Spezifikationen.

IPv6 EssentialsEin Buch, in dem alle wichtigen Aspekte zum Thema enthalten sind, ist IPv6Essentials von Silvia Hagen (ISBN 0-596-00125-8).

18.3 NamensauflösungMithilfe von DNS kann eine IP-Adresse einem oder sogar mehreren Namen zugeordnetwerden und umgekehrt auch ein Name einer IP-Adresse. Unter Linux erfolgt dieseUmwandlung üblicherweise durch eine spezielle Software namens bind. Der Computer,der diese Umwandlung dann erledigt, nennt sichNamenserver. Dabei bilden die Namen

Grundlegendes zu Netzwerken 361

Page 362: Suse 10.1 Linux Reference De

wieder ein hierarchisches System, in dem die einzelnen Namensbestandteile durchPunkte getrennt sind. Die Namenshierarchie ist aber unabhängig von der obenbeschriebenen Hierarchie der IP-Adressen.

Schauen wir uns einmal einen vollständigen Namen an, z. B.earth.example.com,geschrieben im Format hostname.domain. Ein vollständiger Name, der als FullyQualified Domain Name oder kurz als FQDN bezeichnet wird, besteht aus einem Host-und einem Domänennamen (example.com). Ein Bestandteil des Domänennamensist die Top Level Domain oder TLD (com).

Aus historischen Gründen ist die Zuteilung der TLDs etwas verwirrend. So werden inden USA traditionell dreibuchstabige TLDs verwendet, woanders aber immer die auszwei Buchstaben bestehenden ISO-Länderbezeichnungen. Seit 2000 stehen zusätzlicheTLDs für spezielle Sachgebiete mit zum Teil mehr als drei Buchstaben zur Verfügung(z. B. .info, .name, .museum).

In der Frühzeit des Internets (vor 1990) gab es die Datei/etc/hosts, in der dieNamen aller im Internet vertretenen Rechner gespeichert waren. Dies erwies sich beider schnell wachsenden Menge der mit dem Internet verbundenen Computer alsunpraktikabel. Deshalb wurde eine dezentralisierte Datenbank entworfen, die dieHostnamen verteilt speichern kann. Diese Datenbank, eben jener oben erwähnteNamenserver, hält also nicht die Daten aller Computer im Internet vorrätig, sondernkann Anfragen an ihm nachgeschaltete, andere Namenserver weiterdelegieren.

An der Spitze der Hierarchie befinden sich die Root-Namenserver. Die Root-Namen-server verwalten die Domänen der obersten Ebene (Top Level Domains) und werdenvom Network Information Center (NIC) verwaltet. Der Root-Namenserver kennt diejeweils für eine Top Level Domain zuständigen Namenserver. Weitere Informationenzu TLD-NICs finden Sie unter http://www.internic.net.

DNS kann noch mehr als nur Hostnamen auflösen. Der Namenserver weiß auch, welcherHost für eine ganze Domäne E-Mails annimmt, der so genannteMail Exchanger (MX).

Damit auch Ihr Rechner einen Namen in eine IP-Adresse auflösen kann, muss ihmmindestens ein Namenserver mit einer IP-Adresse bekannt sein. Die Konfigurationeines Namenservers erledigen Sie komfortabel mithilfe von YaST. Falls Sie eine Einwahlüber Modem vornehmen, kann es sein, dass die manuelle Konfiguration eines Namen-servers nicht erforderlich ist. Das Einwahlprotokoll liefert die Adresse des Namenserversbei der Einwahl gleich mit. Die Konfiguration des Namenserverzugriffs unter SUSELinux ist in Kapitel 20, Das Domain Name System (DNS) (S. 399) beschrieben.

362 Referenz

Page 363: Suse 10.1 Linux Reference De

Eng verwandt mit DNS ist das Protokoll whois. Mit dem gleichnamigen Programmwhois können Sie schnell ermitteln, wer für eine bestimmte Domäne verantwortlichist.

18.4 Konfigurieren vonNetzwerkverbindungen mit YaST

Unter Linux gibt es viele unterstützte Netzwerktypen. Die meisten von diesen verwendenunterschiedliche Gerätenamen und die Konfigurationsdateien sind im Dateisystem anunterschiedlichen Speicherorten verteilt. Einen detaillierten Überblick über dieAspekte der manuellen Netzwerkkonfiguration finden Sie in Abschnitt 18.6, „ManuelleNetzwerkkonfiguration“ (S. 378).

Während der Installation können sämtliche erkannte Schnittstellen mit YaST automatischkonfiguriert werden. Zusätzliche Hardware kann nach Abschluss der Installationjederzeit konfiguriert werden. In den folgenden Abschnitten wird die Netzwerkkonfi-guration für alle von SUSE Linux unterstützten Netzwerkverbindungen beschrieben.

18.4.1 Konfigurieren der Netzwerkkarte mitYaST

Nach dem Starten des YaST-Moduls gelangen Sie in eine allgemeine Übersicht zurNetzwerkkonfiguration. Entscheiden Sie, ob YaST oder NetworkManager für die Ver-waltung all Ihrer Netzwerkgeräte verwendet werden soll. Um NetworkManager zuverwenden, aktivieren Sie Benutzergesteuert mithilfe von NetworkManager. DetaillierteInformationen zu NetworkManager finden Sie in Abschnitt 18.5, „Verwalten derNetzwerkverbindungen mit NetworkManager“ (S. 375). Wenn Sie Ihr Netzwerk auftraditionelle Weise mit YaST konfigurieren möchten, aktivieren Sie TraditionelleMethode mit ifup.

Im oberen Teil der traditionellen Konfiguration wird eine Liste mit allen für die Konfi-guration verfügbaren Netzwerkkarten angezeigt. Alle ordnungsgemäß erkannten Kartenwerden mit ihren Namen aufgeführt. Nicht erkannte Geräte können über Hinzufügenwie in „Manuelle Konfiguration einer nicht erkannten Netzwerkkarte“ (S. 364)beschrieben konfiguriert werden. Konfigurieren Sie eine neue Netzwerkkarte oderändern Sie die Konfiguration eines bereits konfigurierten Geräts.

Grundlegendes zu Netzwerken 363

Page 364: Suse 10.1 Linux Reference De

Manuelle Konfiguration einer nicht erkanntenNetzwerkkarteZur Konfiguration einer Netzwerkkarte, die nicht erkannt wurde, nehmen Sie folgendeGrundeinstellungen vor:

NetzwerkkonfigurationWählen Sie den Gerätetyp der Schnittstelle aus und legen Sie den Konfigurations-namen fest. Informationen zu den Namenskonventionen für Konfigurationsnamenfinden Sie auf der Manualpage getcfg(8).

KernelmodulName der Hardwarekonfiguration gibt den Namen der Datei/etc/sysconfig/hardware/hwcfg-* an, in der die Hardware-Einstellungen der Netzwerkkarteenthalten sind. Dazu gehören der Name des entsprechenden Kernelmoduls sowiedie zum Initialisieren der Hardware erforderlichen Optionen. YaST schlägt fürPCMCIA- und USB-Hardware in den meisten Fällen sinnvolle Namen vor. Füralle anderen Hardwarekomponenten ist hwcfg-static-0 nur dann sinnvoll,wenn die Karte mit dem Konfigurationsnamen 0 konfiguriert ist.

Wenn es sich bei der Netzwerkkarte um ein PCMCIA- oder USB-Gerät handelt,aktivieren Sie die entsprechenden Kontrollkästchen und schließen Sie das Dialogfelddurch Klicken auf Weiter. Wählen Sie anderenfalls über die Option Auswahl ausListe das Modell Ihrer Netzwerkkarte aus. YaST wählt dann automatisch dasgeeignete Kernelmodul für die Karte aus. Schließen Sie das Dialogfeld mitWeiter.

364 Referenz

Page 365: Suse 10.1 Linux Reference De

Abbildung 18.3 Konfiguration der Netzwerkkarte

Festlegen der NetzwerkadresseLegen Sie den Gerätetyp der Schnittstelle und den Konfigurationsnamen fest. WählenSie den Gerätetyp aus. Den Konfigurationsnamen können Sie nach Bedarf festlegen.Die Voreinstellungen sind in der Regel sinnvoll und können übernommen werden.Informationen zu den Namenskonventionen für Konfigurationsnamen finden Sie aufder Manualpage getcfg(8).

Wenn Sie als Gerätetyp der SchnittstelleDrahtlos gewählt haben, konfigurieren Sie imnächsten Dialogfeld Konfiguration der drahtlosen Netzwerkkarte den Betriebsmodus,den Netzwerknamen (ESSID) und die Verschlüsselung. Klicken Sie auf OK, um dieKonfiguration der Karte abzuschließen. Eine ausführliche Beschreibung der Konfigu-ration von WLAN-Karten finden Sie in Abschnitt 34.1.3, „Konfiguration mit YaST“(S. 661). Für alle anderen Schnittstellentypen fahren Sie mit der Art der Adressvergabefür Ihre Netzwerkkarte fort:

Automatische Adressenkonfiguration (mit DHCP)Wenn Ihr Netzwerk einen DHCP-Server enthält, können Sie sich von dort automa-tisch die Konfigurationsdaten Ihrer Netzwerkkarte übermitteln lassen. Diese Optionsollten Sie auch aktivieren, wenn Sie eine DSL-Leitung verwenden, Ihr ISP Ihnen

Grundlegendes zu Netzwerken 365

Page 366: Suse 10.1 Linux Reference De

aber keine statische IP-Adresse zugewiesen hat. Wenn Sie DHCP nutzen möchten,gelangen Sie über die OptionOptionen für DHCP-Client zur Client-Konfiguration.Legen Sie fest, ob der DHCP-Server immer auf Broadcast-Anforderungen antwortensoll. Außerdem können Sie optional eine Kennung angeben. Schnittstellen werdenvon DHCP-Servern standardmäßig anhand der Hardware-Adresse der Netzwerk-karte identifiziert. In einer virtuellen Hostumgebung, in der unterschiedliche Hostsüber dieselbe Schnittstelle kommunizieren, werden diese anhand einer Kennungunterschieden.

Konfiguration der statischen AdresseAktivieren Sie diese Option, wenn Sie eine statische Adresse haben. Geben Sieanschließend die Adresse und Subnetzmaske für das Netzwerk ein. Die Voreinstel-lung für die Subnetzmaske ist so gewählt, dass sie für ein typisches Heimnetzausreicht.

Schließen Sie dieses Dialogfeld, indem Sie Weiter wählen, oder fahren Sie mit derKonfiguration des Hostnamens, des Namenservers und der Routing-Details fort (sieheAbschnitte zu DNS-Server (↑Start) und Routing (↑Start)).

Erweitert ermöglicht das Festlegen komplexerer Einstellungen. Unter Besondere Ein-stellungen bietet die Option Benutzergesteuert die Möglichkeit, die Steuerung derNetzwerkkarte vom Administrator (root) an den normalen Benutzer zu delegieren.Im mobilen Einsatz erlaubt dies dem Benutzer, die Netzwerkverbindungen schnellerzu wechseln, da er dann das Aktivieren oder Deaktivieren der Schnittstelle selbst steuernkann. Die MTU (Maximum Transmission Unit, maximale Übertragungsgröße) und derTyp der Geräte-Aktivierung können ebenfalls in diesem Dialogfeld festgelegt werden.

18.4.2 ModemIm YaST-Kontrollzentrum finden Sie unterNetzwerkgeräte die Modem-Konfiguration.Falls die automatische Erkennung fehlschlägt, öffnen Sie das Dialogfeld für diemanuelle Konfiguration. Geben Sie in diesem Dialogfeld unterModem die Schnittstellean, mit der das Modem verbunden ist.

366 Referenz

Page 367: Suse 10.1 Linux Reference De

Abbildung 18.4 Modemkonfiguration

Wenn eine Telefonanlage zwischengeschaltet ist, müssen Sie ggf. eine Vorwahl für dieAmtsholung eingeben. Dies ist in der Regel die Null. Sie können diese aber auch in derBedienungsanleitung der Telefonanlage finden. Zudem können Sie festlegen, ob Ton-oder Impulswahl verwendet, der Lautsprecher eingeschaltet und der Wählton abgewartetwerden soll. Letztere Option sollte nicht verwendet werden, wenn Ihr Modem an einerTelefonanlage angeschlossen ist.

Legen Sie unter Details die Baudrate und die Zeichenketten zur Modeminitialisierungfest. Ändern Sie die vorhandenen Einstellungen nur, wenn das Modem nicht automatischerkannt wird oder es spezielle Einstellungen für die Datenübertragung benötigt. Diesist vor allem bei ISDN-Terminaladaptern der Fall. Schließen Sie das Dialogfeld mitOK. Um die Steuerung des Modems an den normalen Benutzer ohne root-Berechtigungenzu delegieren, aktivieren Sie Benutzergesteuert. Auf diese Weise kann ein Benutzerohne Administratorberechtigungen eine Schnittstelle aktivieren oder deaktivieren.Geben Sie unter Regulärer Ausdruck für Vorwahl zur Amtsholung einen regulärenAusdruck an. Dieser muss der vom Benutzer unter Dial Prefix (Vorwahl) in KInternetbearbeitbaren Vorwahl entsprechen. Wenn dieses Feld leer ist, kann ein Benutzer ohneAdministratorberechtigungen keine andere Vorwahl festlegen.

Wählen Sie im folgenden Dialogfeld den ISP (Internet Service Provider). Wenn SieIhren Provider aus einer Liste der für Ihr Land verfügbaren Provider auswählen möchten,

Grundlegendes zu Netzwerken 367

Page 368: Suse 10.1 Linux Reference De

aktivieren Sie Land. Sie können auch auf Neu klicken, um ein Dialogfeld zu öffnen, indem Sie die Daten Ihres ISPs eingeben können. Dazu gehören ein Name für die Ein-wahlverbindung und den ISP sowie die vom ISP zur Verfügung gestellten Benutzer-und Kennwortdaten für die Anmeldung. Aktivieren Sie Immer Passwort abfragen,damit immer eine Passwortabfrage erfolgt, wenn Sie eine Verbindung herstellen.

Im letzten Dialogfeld können Sie zusätzliche Verbindungsoptionen angeben:

Dial-On-DemandWenn Sie diese Option aktivieren, müssen Sie mindestens einen Namenserverangeben.

Während Verbindung DNS ändernDiese Option ist standardmäßig aktiviert, d. h. die Adresse des Namenservers wirdbei jeder Verbindung mit dem Internet automatisch aktualisiert.

DNS automatisch abrufenWenn der Provider nach dem Herstellen der Verbindung seinen DNS-Server nichtüberträgt, deaktivieren Sie diese Option und geben Sie die DNS-Daten manuellein.

Ignoranz-ModusDiese Option ist standardmäßig aktiviert. Eingabeaufforderungen vom ISP-Serverwerden ignoriert, um den Verbindungsaufbau zu erleichtern.

Externe Firewall-Schnittstelle und Firewall neu startenMit diesen Optionen aktivieren Sie SUSEfirewall2 und sind für die Dauer derInternetverbindung vor Angriffen von außen geschützt.

Idle-Time-Out (Sekunden)Mit dieser Option legen Sie fest, nach welchem Zeitraum der Netzwerkinaktivitätdie Modemverbindung automatisch getrennt wird.

IP-DetailsDiese Option öffnet das Dialogfeld für die Adresskonfiguration. Wenn Ihr ISPIhrem Host keine dynamische IP-Adresse zuweist, deaktivieren Sie die OptionDynamische IP-Adresse und geben Sie die lokale IP-Adresse des Hosts undanschließend die entfernte IP-Adresse ein. Diese Informationen erhalten Sie vonIhrem ISP. Lassen Sie die Option Standard-Route aktiviert und schließen Sie dasDialogfeld mit OK.

368 Referenz

Page 369: Suse 10.1 Linux Reference De

Durch Auswahl von Weiter gelangen Sie zum ursprünglichen Dialogfeld zurück, indem eine Zusammenfassung der Modemkonfiguration angezeigt wird. Schließen Siedieses Dialogfeld mit Beenden.

18.4.3 ISDNDieses Modul ermöglicht die Konfiguration einer oder mehrerer ISDN-Karten in IhremSystem. Wenn YaST Ihre ISDN-Karte nicht erkennt, wählen Sie sie manuell aus.Theoretisch können Sie mehrere Schnittstellen einrichten, im Normalfall ist dies abernicht notwendig, da Sie für eine Schnittstelle mehrere Provider einrichten können. Dienachfolgenden Dialogfelder dienen dann dem Festlegen der verschiedenen ISDN-Optionen für den ordnungsgemäßen Betrieb der Karte.

Abbildung 18.5 ISDN-Konfiguration

Wählen Sie im nächsten Dialogfeld, das in Abbildung 18.5, „ISDN-Konfiguration“(S. 369) dargestellt ist, das zu verwendende Protokoll. Der Standard ist Euro-ISDN(EDSS1), aber für ältere oder größere Telefonanlagen wählen Sie 1TR6. Für die USAgilt NI1. Wählen Sie das Land in dem dafür vorgesehenen Feld aus. Die entsprechendeLandeskennung wird im Feld daneben angezeigt. Geben Sie dann noch die Ortsnetz-kennzahl und ggf. die Vorwahl zur Amtsholung ein.

Grundlegendes zu Netzwerken 369

Page 370: Suse 10.1 Linux Reference De

Startmodus legt fest, wie die ISDN-Schnittstelle gestartet werden soll: Bei Systemstartbewirkt, dass der ISDN-Treiber bei jedem Systemstart initialisiert wird. Manuellerfordert, dass Sie den ISDN-Treiber als rootmit dem Befehl rcisdn start laden.Falls hot-plugged wird für PCMCIA- oder USB-Geräte verwendet. Diese Option lädtden Treiber, nachdem das Gerät eingesteckt wurde. Wenn Sie alle Einstellungen vorge-nommen haben, klicken Sie auf OK.

Im nächsten Dialogfeld können Sie den Schnittstellentyp für die ISDN-Karte angebenund weitere ISPs zu einer vorhandenen Schnittstelle hinzufügen. Schnittstellen könnenin den Betriebsarten SyncPPP oder RawIP angelegt werden. Die meisten ISPs ver-wenden jedoch den SyncPPP-Modus, der im Folgenden beschrieben wird.

Abbildung 18.6 Konfiguration der ISDN-Schnittstelle

Die Nummer, die Sie unter Eigene Telefonnummer eingeben, ist vom jeweiligenAnschlussszenario abhängig:

ISDN-Karte direkt an der TelefondoseEine standardmäßige ISDN-Leitung bietet Ihnen drei Rufnummern (sogenannteMSNs, Multiple Subscriber Numbers). Auf Wunsch können (auch) bis zu zehnRufnummern zur Verfügung gestellt werden. Eine dieser MSNs muss hier eingege-ben werden, allerdings ohne Ortsnetzkennzahl. Sollten Sie eine falsche Nummer

370 Referenz

Page 371: Suse 10.1 Linux Reference De

eintragen, wird Ihr Netzbetreiber die erste Ihrem ISDN-Anschluss zugeordneteMSN verwenden.

ISDN-Karte an einer TelefonanlageAuch hier kann die Konfiguration je nach installierten Komponenten variieren:

1. Kleinere Telefonanlagen für den Hausgebrauch verwenden für interne Anrufein der Regel das Euro-ISDN-Protokoll (EDSS1). Diese Telefonanlagen habeneinen internen S0-Bus und verwenden für die angeschlossenen Geräte interneRufnummern.

Für die Angabe der MSN verwenden Sie eine der internen Rufnummern. Eineder möglichen MSNs Ihrer Telefonanlage sollte funktionieren, sofern fürdiese der Zugriff nach außen freigeschaltet ist. Im Notfall funktioniert eventuellauch eine einzelne Null. Weitere Informationen dazu entnehmen Sie bitte derDokumentation Ihrer Telefonanlage.

2. Größere Telefonanlagen (z. B. in Unternehmen) verwenden für die internenAnschlüsse das Protokoll 1TR6. Die MSN heißt hier EAZ und ist üblicherweisedie Durchwahl. Für die Konfiguration unter Linux ist die Eingabe der letztendrei Stellen der EAZ in der Regel ausreichend. Im Notfall probieren Sie dieZiffern 1 bis 9.

Wenn die Verbindung vor der nächsten zu zahlenden Gebühreneinheit getrennt werdensoll, aktivieren Sie ChargeHUP. Dies funktioniert unter Umständen jedoch nicht mitjedem ISP. Durch Auswahl der entsprechenden Option können Sie auch die Kanalbün-delung (Multilink-PPP) aktivieren. Sie können SuSEfirewall2 für die Verbindungaktivieren, indem SieExterne Firewall-Schnittstelle undFirewall neu starten auswählen.Um dem normalen Benutzer ohne Administratorberechtigung das Aktivieren oderDeaktivieren der Schnittstelle zu ermöglichen, wählen Sie Benutzergesteuert.

Details öffnet ein Dialogfeld, das für die Implementierung komplexerer Verbindungs-szenarien ausgelegt und aus diesem Grund für normale Heimbenutzer nicht relevantist. Schließen Sie das Dialogfeld Details mit OK.

Im nächsten Dialogfeld legen Sie die Einstellungen für die Vergabe der IP-Adressenfest. Wenn Ihr Provider Ihnen keine statische IP-Adresse zugewiesen hat, wählen SieDynamische IP-Adresse. Anderenfalls tragen Sie gemäß den Angaben Ihres Providersdie lokale IP-Adresse Ihres Rechners sowie die entfernte IP-Adresse in die dafür vorge-sehenen Felder ein. Soll die anzulegende Schnittstelle als Standard-Route ins Internetdienen, aktivieren Sie Standard-Route. Beachten Sie, dass jeweils nur eine Schnittstelle

Grundlegendes zu Netzwerken 371

Page 372: Suse 10.1 Linux Reference De

pro System als Standard-Route in Frage kommt. Schließen Sie das Dialogfeld mitWeiter.

Im folgenden Dialogfeld können Sie Ihr Land angeben und einen ISP wählen. Bei denin der Liste aufgeführten ISPs handelt es sich um Call-By-Call-Provider. Wenn Ihr ISPin der Liste nicht aufgeführt ist, wählen SieNeu. Dadurch wird das Dialogfeld Provider-Parameter geöffnet, in dem Sie alle Details zu Ihrem ISP eingeben können. Die Tele-fonnummer darf keine Leerzeichen oder Kommas enthalten. Geben Sie dann denBenutzernamen und das Passwort ein, den bzw. das Sie von Ihrem ISP erhalten haben.Wählen Sie anschließend Weiter.

Um auf einer Einzelplatz-Arbeitsstation Dial-On-Demand verwenden zu können,müssen Sie auf jeden Fall den Namenserver (DNS-Server) angeben. Die meisten Pro-vider unterstützen heute die dynamische DNS-Vergabe, d. h. beim Verbindungsaufbauwird die IP-Adresse eines Namenservers übergeben. Bei einer Einzelplatz-Arbeitsstationmüssen Sie dennoch eine Platzhalteradresse wie 192.168.22.99 angeben. WennIhr ISP keine dynamischen DNS-Namen unterstützt, tragen Sie die IP-Adressen derNamenserver des ISPs ein. Ferner können Sie festlegen, nach wie vielen Sekunden dieVerbindung automatisch getrennt werden soll, falls in der Zwischenzeit kein Datenaus-tausch stattgefunden hat. Bestätigen Sie die Einstellungen mit Weiter. YaST zeigt eineZusammenfassung der konfigurierten Schnittstellen an. Wählen Sie zum Aktivierendieser Einstellungen Beenden.

18.4.4 KabelmodemIn einigen Ländern, z. B. in Österreich und in den USA, ist es nicht ungewöhnlich, dassder Zugriff auf das Internet über TV-Kabelnetzwerke erfolgt. Der TV-Kabel-Abonnenterhält in der Regel ein Modem, das auf der einen Seite an die TV-Kabelbuchse und aufder anderen Seite (mit einem 10Base-TG Twisted-Pair-Kabel) an die Netzwerkkartedes Computers angeschlossen wird. Das Kabelmodem stellt dann eine dedizierteInternetverbindung mit einer statischen IP-Adresse zur Verfügung.

Wählen Sie beim Konfigurieren der Netzwerkkarte je nach Anweisungen Ihres ISPsentweder Automatische Adressenkonfiguration (mit DHCP) oder Konfiguration derstatischen Adresse. Die meisten Provider verwenden heute DHCP. Eine statische IP-Adresse ist oft Teil eines speziellen Firmenkontos.

372 Referenz

Page 373: Suse 10.1 Linux Reference De

18.4.5 DSLWählen Sie zum Konfigurieren des DSL-Geräts das YaST-ModulDSL unterNetzwerk-geräte aus. Dieses YaST-Modul besteht aus mehreren Dialogfeldern, in denen Sie dieParameter des DSL-Zugangs basierend auf den folgenden Protokollen festlegen können:

• PPP über Ethernet (PPPoE)

• PPP über ATM (PPPoATM)

• CAPI für ADSL (Fritz-Karten)

• Tunnel-Protokoll für Point-to-Point (PPTP) - Österreich

Beachten Sie bitte, dass die Konfiguration Ihres DSL-Zugangs mit PPPoE und PPTPeine korrekte Konfiguration der Netzwerkkarte voraussetzt. Falls dies nicht schongeschehen ist, konfigurieren Sie zunächst die Karte, indem Sie Netzwerkkarten konfi-gurieren (siehe Abschnitt 18.4.1, „Konfigurieren der Netzwerkkarte mit YaST“ (S. 363))auswählen. Die automatische IP-Adressvergabe erfolgt bei DSL zwar automatisch, abernicht mit dem DHCP-Protokoll. Deshalb dürfen Sie auch nicht die Option AutomatischeAdressenkonfiguration (mit DHCP) aktivieren. Geben Sie stattdessen eine statischeDummy-Adresse für die Schnittstelle ein, z. B. 192.168.22.1. Geben Sie unterSubnetzmaske 255.255.255.0 ein. Wenn Sie eine Einzelplatz-Arbeitsstation konfi-gurieren, lassen Sie das Feld Standard-Gateway leer.

TIPP

Die Werte in den Feldern IP-Adresse und Subnetzmaske sind lediglich Platzhalter.Sie haben für den Verbindungsaufbau mit DSL keine Bedeutung und werdennur zur Initialisierung der Netzwerkkarte benötigt.

Grundlegendes zu Netzwerken 373

Page 374: Suse 10.1 Linux Reference De

Abbildung 18.7 DSL-Konfiguration

Zu Beginn der DSL-Konfiguration (siehe Abbildung 18.7, „DSL-Konfiguration“ (S. 374))wählen Sie zunächst den PPP-Modus und die Ethernetkarte, mit der das DSL-Modemverbunden ist (in den meisten Fällen ist dies eth0). Geben Sie anschließend unterGeräte-Aktivierung an, ob die DSL-Verbindung schon beim Booten des Systems gest-artet werden soll. Klicken Sie auf Benutzergesteuert, um dem normalen Benutzer ohneroot-Berechtigungen das Aktivieren und Deaktivieren der Schnittstelle mit KInternetzu ermöglichen. In diesem Dialogfeld können Sie außerdem Ihr Land und einen derdort ansässigen ISPs auswählen. Die Inhalte der danach folgenden Dialogfelder derDSL-Konfiguration hängen stark von den bis jetzt festgelegten Optionen ab und werdenin den folgenden Abschnitten daher nur kurz angesprochen. Weitere Informationen zuden verfügbaren Optionen erhalten Sie in der ausführlichen Hilfe in den einzelnenDialogfeldern.

Um auf einer Einzelplatz-Arbeitsstation Dial-On-Demand verwenden zu können,müssen Sie auf jeden Fall den Namenserver (DNS-Server) angeben. Die meisten Pro-vider unterstützen heute die dynamische DNS-Vergabe, d. h. beim Verbindungsaufbauwird die IP-Adresse eines Namenservers übergeben. Bei einer Einzelplatz-Arbeitsstationmüssen Sie jedoch eine Platzhalteradresse wie 192.168.22.99 angeben. Wenn IhrISP keine dynamische DNS-Namen unterstützt, tragen Sie die IP-Adressen derNamenserver des ISPs ein.

374 Referenz

Page 375: Suse 10.1 Linux Reference De

Idle-Timeout (Sekunden) definiert, nach welchem Zeitraum der Netzwerkinaktivität dieVerbindung automatisch getrennt wird. Hier sind Werte zwischen 60 und 300 Sekundenempfehlenswert. Wenn Dial-On-Demand deaktiviert ist, kann es hilfreich sein, dasZeitlimit auf Null zu setzen, um das automatische Trennen der Verbindung zu vermeiden.

Die Konfiguration von T-DSL erfolgt ähnlich wie die DSL-Konfiguration. DurchAuswahl von T-Online als Provider gelangen Sie in das YaST-Konfigurationsdialogfeldfür T-DSL. In diesem Dialogfeld geben Sie einige zusätzliche Informationen ein, diefür T-DSL erforderlich sind: die Anschlusskennung, die T-Online-Nummer, dieBenutzerkennung und Ihr Passwort. Diese Informationen finden Sie in den T-DSL-Anmeldeunterlagen.

18.5 Verwalten derNetzwerkverbindungen mitNetworkManager

NetworkManager ist die ideale Lösung für eine mobile Arbeitsstation. Wenn Sie vielunterwegs sind und NetworkManager verwenden, brauchen Sie keine Gedanken mehran die Konfiguration von Netzwerkschnittstellen und den Wechsel zwischen Netzwerkenzu verschwenden. NetworkManager stellt automatisch Verbindungen mit den ihmbekannten WLAN-Netzwerken her. Bei zwei oder gar mehreren Verbindungsmöglich-keiten stellt NetworkManager die Verbindung zum schnelleren Netzwerk her.

ANMERKUNG: NetworkManager und SCPM

Verwenden Sie NetworkManager nicht gemeinsam mit SCPM, wenn die Netz-werkeinstellungen durch SCPM-Profile geändert werden. Möchten Sie SCPMund NetworkManager zur gleichen Zeit verwenden, müssen Sie die Netzwer-kressource in der SCPM-Konfiguration deaktivieren.

In den folgenden Fällen ist NetworkManager ungeeignet:

• Ihr Computer hat eine statische Adresse

• Sie möchten für eine Schnittstelle mehrere Einwahlanbieter verwenden

• Sie möchten Ihre WLAN-Verbindung mit WPA-EAP verschlüsseln

Grundlegendes zu Netzwerken 375

Page 376: Suse 10.1 Linux Reference De

• Ihr Computer ist ein Netzwerk-Router

• Ihr Computer stellt Netzwerkdienste für andere Computer in Ihrem Netzwerk bereit(es handelt sich zum Beispiel um einen DHCP- oder DNS-Server)

18.5.1 Steuern von NetworkManagerNetworkManager aktivieren Sie im YaST-Modul Ihres Netzwerkgeräts. Da für Network-Manager keine Standardnetzwerkkonfiguration erforderlich ist, wird die YaST-Konfi-guration deaktiviert. KNetworkManager wählt automatisch das beste verfügbare Netz-werk aus, kann aber nur automatisch eine Verbindung zu einem bekannten Netzwerkherstellen. Für die erste Verbindung mit einem Netzwerk müssen Sie daher das Net-workManager-Applet verwenden. Vom Netzwerk angeforderte Informationen, wie derName, das Passwort oder der Verschlüsselungsschlüssel, werden von NetworkManagerautomatisch abgefragt.

Sowohl KDE also auch GNOME verfügen über eigene Applets für NetworkManager.Ein passendes Applet sollte automatisch mit der Desktopumgebung gestartet werden.Das Applet wird dann als Symbol in der Kontrollleiste angezeigt. Die Funktionen beiderApplets sind ähnlich, aber ihre Schnittstellen sind verschieden. Sie können auch inanderen grafischen Umgebungen verwendet werden, die die standardmäßige Kontroll-leiste unterstützen.

Das KNetworkManager-AppletKNetworkManager ist ein KDE-Applet für die Steuerung von NetworkManager. Fallses nicht ausgeführt wird, starten Sie es mit dem Befehl knetworkmanager. Wennes ausgeführt wird, wird ein blaues Globussymbol in der Kontrollleiste angezeigt. WennSie mit der rechten Maustaste auf das Symbol klicken, wird das KNetworkManager-Menü mit verschiedenen Befehlen für die Verwaltung der Netzwerkverbindungengeöffnet.

Das Menü enthält die verfügbaren Netzwerkverbindungen, sowohl für verkabelte alsauch für drahtlose Geräte. Wenn Sie mit dem Cursor auf diese zeigen, werden Detailsangezeigt. Die zurzeit verwendete Verbindung ist im Menü aktiviert. Die Signalstärkeder drahtlosen Netzwerke wird ebenfalls im Menü angezeigt. Verschlüsselte drahtloseNetzwerke sind mit einem blauen Schlosssymbol gekennzeichnet. Um eine Verbindungmit einem verschlüsselten Netzwerk herzustellen, wählen Sie es im Menü aus. Wählen

376 Referenz

Page 377: Suse 10.1 Linux Reference De

Sie im nun geöffneten Dialogfeld den Typ der Verschlüsselung, den das Netzwerkverwendet, und geben Sie den passenden Passwortsatz oder Schlüssel ein.

Um eine Verbindung mit einem Netzwerk herzustellen, das seinen ESSID (Service SetIdentifier) nicht sendet und demzufolge nicht automatisch erkannt werden kann, wählenSie Verbindung zu anderem drahtlosen Netzwerk herstellen. Geben Sie in dem daraufhinangezeigten Dialogfeld den ESSID ein und legen Sie gegebenenfalls die Verschlüsse-lungsparameter fest.

Um auf Einwahlverbindungen zuzugreifen, wählen Sie Einwahlverbindungen. Wennbereits Einwahlverbindungen definiert wurden, starten Sie die Verbindung durch Klickenauf die zu verwendende Verbindung. Einwahlverbindungen konfigurieren öffnet YaST.Hier können Sie eine neue Einwahlverbindung definieren.

Um eine aktive Netzwerkverbindung zu deaktivieren, wählen SieOptionen→ In Offline-Modus wechseln im KNetworkManager-Menü aus. Um die Verbindung wieder zuaktivieren, wählen SieOptionen→ In Online-Modus wechseln. Um drahtlose Netzwerk-verbindungen zu deaktivieren, wählen SieOptionen→Drahtlose Netzwerke deaktivierenim KNetworkManager-Menü. Um drahtlose Verbindungen erneut zu aktivieren, wählenSieOptionen→Drahtlose Netzwerke aktivieren. Das Aktivieren der Netzwerke nimmteinige Sekunden in Anspruch.

Das GNOME-NetworkManager-AppletGNOME verfügt zudem über sein eigenes Applet für NetworkManager. Falls es nichtausgeführt wird, starten Sie es mit dem Befehl nm-applet. Wenn es ausgeführt wird,wird ein Symbol in der Kontrollleiste angezeigt. Wie das Symbol aussieht, hängt vomStatus der Netzwerkverbindung ab. Wenn Sie nicht sicher sind, was das Symbolbedeutet, zeigen Sie mit dem Cursor darauf, bis eine Erklärung angezeigt wird.

Klicken Sie mit der linken Maustaste auf das Applet-Symbol, um ein Menü mit verfüg-baren Netzwerken anzuzeigen. Die zurzeit verwendete Verbindung ist im Menü aktiviert.Die Siganalstärke der drahtlosen Netzwerke wird ebenfalls im Menü angezeigt. Ver-schlüsselte drahtlose Netzwerke sind mit einem blauen Schildsymbol gekennzeichnet.Um eine Verbindung mit einem verschlüsselten Netzwerk herzustellen, wählen Sie esim Menü aus. Wählen Sie im nun geöffneten Dialogfeld den Typ der Verschlüsselung,den das Netzwerk verwendet und geben Sie den passendenPasswortsatz oder Schlüsselein.

Grundlegendes zu Netzwerken 377

Page 378: Suse 10.1 Linux Reference De

Um eine Verbindung mit einem Netzwerk herzustellen, das seinen ESSID (Service SetIdentifier) nicht sendet und demzufolge nicht automatisch erkannt werden kann, klickenSie mit der linken Maustaste auf das Symbol und wählen Sie Verbindung zu anderemdrahtlosen Netzwerk herstellen. Geben Sie in dem daraufhin angezeigten Dialogfeldden ESSID ein und legen Sie gegebenenfalls die Verschlüsselungsparameter fest.

Um Netzwerkverbindungen zu deaktivieren, klicken Sie mit der rechten Maustaste aufdas Applet-Symbol und deaktivieren Sie die Option Enable Networking (Netzwerkaktivieren). Um drahtlose Netzwerkverbindungen zu deaktivieren, klicken Sie mit derrechten Maustaste auf das Applet-Symbol und deaktivieren Sie die Option DrahtloseNetzwerke aktivieren.

Um Informationen zur aktuellen Verbindung (z. B. verwendete Schnittstelle, IP-Adresse und Hardwareadresse) abzurufen, klicken Sie mit der rechten Maustaste aufdas Applet-Symbol und wählen Sie Verbindungsinformationen im Menü aus.

18.5.2 Weitere InformationenWeitere Informationen über NetworkManager und d-bus erhalten Sie auf den folgendenWebsites bzw. in den folgenden Verzeichnissen:

• http://www.gnome.org/projects/NetworkManager/ (Projektseitevon NetworkManager)

• http://www.freedesktop.org/Software/dbus (Projektseite von d-bus)

• /usr/share/doc/packages/NetworkManager

18.6 Manuelle NetzwerkkonfigurationDie manuelle Konfiguration der Netzwerksoftware sollte immer die letzte Alternativesein. Wir empfehlen, YaST zu benutzen. Die folgenden Hintergrundinformationen zurNetzwerkkonfiguration können Ihnen jedoch auch bei der Arbeit mit YaST behilflichsein.

Alle integrierten Netzwerkkarten und Hotplug-Netzwerkkarten (PCMCIA, USB undeinige PCI-Karten) werden über Hotplug erkannt und konfiguriert. Das System erkennt

378 Referenz

Page 379: Suse 10.1 Linux Reference De

eine Netzwerkkarte auf zwei unterschiedliche Weisen: erstens als physisches Gerät undzweitens als Schnittstelle. Das Einstecken eines Geräts löst ein Hotplug-Ereignis aus.Dieses Hotplug-Ereignis löst dann die Initialisierung des Geräts mithilfe des Skriptshwup aus. Wenn die Netzwerkkarte als neue Netzwerkschnittstelle initialisiert wird,generiert der Kernel ein weiteres Hotplug-Ereignis, das das Einrichten der Schnittstellemit ifup auslöst.

Der Kernel nummeriert die Schnittstellennamen gemäß der zeitlichen Reihenfolge ihrerRegistrierung. Die Initialisierungsreihenfolge ist für die Zuordnung der Namen entschei-dend. Falls eine von mehreren Netzwerkkarten ausfallen sollte, wird die Nummerierungaller danach initialisierten Karten verschoben. Für echte Hotplug-fähige Karten ist dieReihenfolge, in der die Geräte angeschlossen werden, wichtig.

Um eine flexible Konfiguration zu ermöglichen, wurde die Konfiguration der Geräte(Hardware) und der Schnittstellen voneinander getrennt und die Zuordnung der Konfi-gurationen zu Geräten und Schnittstellen erfolgt nicht mehr auf Basis der Schnittstel-lennamen. Die Gerätekonfigurationen befinden sich im Verzeichnis /etc/sysconfig/hardware/hwcfg-*. Die Schnittstellenkonfigurationen befindensich im Verzeichnis /etc/sysconfig/network/ifcfg-*. Die Namen derKonfigurationen werden so zugewiesen, dass sie die Geräte und die damit verknüpftenSchnittstellen beschreiben. Da bei der früheren Zuordnung von Treibern zu Schnittstel-lennamen statische Schnittstellennamen erforderlich waren, kann diese Zuordnung nichtmehr in der Datei /etc/modprobe.conf erfolgen. Im neuen Konzept würden dieAliaseinträge in dieser Datei Probleme verursachen.

Die Konfigurationsnamen – d. h., die Einträge hinter hwcfg- oder ifcfg- –beschreiben die Geräte anhand des Steckplatzes, der gerätesspezifischen ID oder desSchnittstellennamens. Der Konfigurationsname für eine PCI-Karte kann beispielsweisebus-pci-0000:02:01.0 (PCI-Steckplatz) odervpid-0x8086-0x1014-0x0549 (Hersteller- und Produkt-ID) lauten. Der Nameder zugeordneten Schnittstelle kann bus-pci-0000:02:01.0 oderwlan-id-00:05:4e:42:31:7a (MAC-Adresse) lauten.

Um eine bestimmte Netzwerkkonfiguration einer Karte eines bestimmten Typs zuzu-ordnen (von der immer nur jeweils eine eingesetzt ist), wählen Sie anstelle einerbestimmten Karte weniger spezifische Konfigurationsnamen. So würdebus-pcmciabeispielsweise für alle PCMCIA-Karten verwendet werden. Die Namen können ande-rerseits auch durch einen vorangestellten Schnittstellentyp eingeschränkt werden. Sowürde wlan-bus-usb beispielsweise WLAN-Karten zugeordnet werden, die aneinen USB-Anschluss angeschlossen sind.

Grundlegendes zu Netzwerken 379

Page 380: Suse 10.1 Linux Reference De

Das System verwendet immer die Konfiguration, die eine Schnittstelle oder das Gerät,das die Schnittstelle zur Verfügung stellt, am besten beschreibt. Die Suche nach deram besten geeigneten Konfiguration erfolgt mit dem Befehl getcfg. Die Ausgabevongetcfg enthält alle Informationen, die für die Beschreibung eines Geräts verwendetwerden können. Weitere Informationen zur Spezifikation von Konfigurationsnamenfinden Sie auf der Manualpage für den Befehl getcfg.

Mit der beschriebenen Methode wird eine Netzwerkschnittstelle auch dann mit derrichtigen Konfiguration eingestellt, wenn die Netzwerkgeräte nicht immer in derselbenReihenfolge initialisiert werden. Der Name der Schnittstelle ist jedoch weiter von derInitialisierungsreihenfolge abhängig. Es gibt zwei Möglichkeiten, den zuverlässigenZugriff auf die Schnittstelle einer bestimmten Netzwerkkarte sicherzustellen:

• getcfg-interface Konfigurationsname gibt den Namen der zugeord-neten Netzwerkschnittstelle zurück. Daher kann in einigen Konfigurationsdateiender Konfigurationsname, z. B. Firewall, DHCPD, Routing oder eine virtuelleNetzwerkschnittstelle (Tunnel), anstelle des Schnittstellennamens eingegebenwerden, da Letzterer nicht persistent ist.

• Persistente Schnittstellennamen werden automatisch jeder Schnittstelle zugewiesen.Sie können diese Ihren Anforderungen anpassen. Gehen Sie zum Erstellen vonSchnittstellennamen vor wie in/etc/udev/rules.d/30-net_persistent_names.rules beschrieben. Der persistente Name pname muss sich jedochvon dem Namen unterscheiden, den der Kernel automatisch zuweisen würde. Ausdiesem Grund sind eth*, tr*, wlan* usw. nicht zulässig. Verwenden Sie statt-dessen net* oder beschreibende Namen wie extern, intern oder dmz. StellenSie sicher, dass jeder Schnittstellenname nur einmal benutzt wird. Erlaubte Zeichenin Schnittstellennamen sind auf [a-zA-Z0-9] beschränkt. Ein persistenter Namekann einer Schnittstelle nur direkt nach deren Registrierung zugewiesen werden,d. h., der Treiber der Netzwerkkarte muss neu geladen oderhwupGerätebeschreibungmuss ausgeführt werden. Der Befehlrcnetworkrestart reicht für diesen Zweck nicht aus.

WICHTIG: Verwendung persistenter Schnittstellennamen

Die Verwendung persistenter Schnittstellennamen wurde noch nicht füralle Bereiche getestet. Daher sind einige Anwendungen möglicherweisenicht in der Lage, frei ausgewählte Schnittstellennamen handzuhaben.

380 Referenz

Page 381: Suse 10.1 Linux Reference De

ifup erfordert eine vorhandene Schnittstelle, da es die Hardware nicht initialisiert.Die Initialisierung der Hardware erfolgt über den Befehl hwup (wird von hotplugodercoldplug ausgeführt). Bei der Initialisierung eines Geräts wirdifup automatischfür die neue Schnittstelle über hotplug ausgeführt und die Schnittstelle wird einge-richtet, wenn der Startmodus onboot, hotplug oder auto ist und der Dienstnetwork gestartet wurde. Früher wurde die Hardware-Initialisierung durch den Befehlifup Schnittstellenname ausgelöst. Jetzt ist die Vorgehensweise genauumgekehrt. Zuerst wird eine Hardwarekomponente initialisiert und anschließend werdenalle anderen Aktionen ausgeführt. Auf diese Weise kann eine variierende Anzahl anGeräten mit einem vorhandenen Satz an Konfigurationen immer bestmöglich konfiguriertwerden.

Tabelle 18.5, „Skripts für die manuelle Netzwerkkonfiguration“ (S. 381) zeigt diewichtigsten an der Netzwerkkonfiguration beteiligten Skripts. Die Skripts werden, wannimmer möglich, nach Hardware und Schnittstelle unterschieden.

Tabelle 18.5 Skripts für die manuelle Netzwerkkonfiguration

FunktionBefehlKonfigu-rations-phase

Die hw*-Skripts werden vom Hotplug-Subsystem ausgeführt, um ein Gerät zu

hw{up,down,status}Hardware

initialisieren, die Initialisierung rückgängigzu machen oder den Status eines Gerätsabzufragen. Weitere Informationen hierzufinden Sie auf der Manualpage für denBefehl hwup.

getcfg kann zum Abfragen des Namensder Schnittstelle verwendet werden, die

getcfgSchnittstel-le

mit einem Konfigurationsnamen oder einerHardwarebeschreibung verknüpft ist.Weitere Informationen hierzu finden Sieauf der Manualpage für den Befehlgetcfg.

Grundlegendes zu Netzwerken 381

Page 382: Suse 10.1 Linux Reference De

FunktionBefehlKonfigu-rations-phase

Die if*-Skripts starten vorhandeneNetzwerkschnittstellen oder setzen den

if{up,down,status}Schnittstel-le

Status der angegebenen Schnittstellezurück. Weitere Informationen hierzu fin-den Sie auf der Manualpage für den Befehlifup.

Weitere Informationen zu Hotplug und persistenten Gerätenamen finden Sie in Kapi-tel 12, Gerätemanagement über dynamischen Kernel mithilfe von udev (S. 273).

18.6.1 KonfigurationsdateienDieser Abschnitt bietet einen Überblick über die Netzwerkkonfigurationsdateien underklärt ihren Zweck sowie das verwendete Format.

/etc/syconfig/hardware/hwcfg-*

Diese Dateien enthalten die Hardwarekonfigurationen der Netzwerkkarten und weitererGeräte. Sie enthalten die erforderlichen Parameter, z. B. das Kernelmodul, den Startmo-dus und Skriptverknüpfungen. Weitere Informationen hierzu finden Sie auf der Manu-alpage für den Befehl hwup. Die hwcfg-static-*-Konfigurationen werden unab-hängig von der Hardware angewendet, wenn coldplug gestartet wird.

/etc/sysconfig/network/ifcfg-*

Diese Dateien enthalten die Konfigurationsdaten, die spezifisch für eine Netzwerkschnitt-stelle sind. Sie enthalten Informationen wie den Startmodus und die IP-Adresse. Mög-liche Parameter sind auf der Manualpage für den Befehl ifup beschrieben. Wenn nureine einzelne allgemeine Einstellung nur für eine bestimmte Schnittstelle verwendetwerden soll, können außerdem alle Variablen aus den Dateien dhcp, wireless undconfig in den ifcfg-*-Dateien verwendet werden.

382 Referenz

Page 383: Suse 10.1 Linux Reference De

/etc/sysconfig/network/config, dhcp,wireless

Die Datei config enthält allgemeine Einstellungen für das Verhalten von ifup,ifdown und ifstatus. dhcp enthält DHCP-Einstellungen und wirelessEinstel-lungen für Wireless-LAN-Karten. Die Variablen in allen drei Konfigurationsdateiensind kommentiert und können auch in den ifcfg-*-Dateien verwendet werden, wosie mit einer höheren Priorität verarbeitet werden.

/etc/sysconfig/network/routes,ifroute-*

Hier wird das statische Routing von TCP/IP-Paketen festgelegt. Sämtliche statischeRouten, die für die unterschiedlichen System-Tasks erforderlich sind, können in dieDatei/etc/sysconfig/network/routes eingegeben werden: Routen zu einemHost, Routen zu einem Host über ein Gateway sowie Routen zu einem Netzwerk.Definieren Sie für jede Schnittstelle, für die ein separates Routing erforderlich ist, einezusätzliche Konfigurationsdatei: /etc/sysconfig/network/ifroute-*.Ersetzen Sie * durch den Namen der Schnittstelle. Die Einträge in der Routing-Konfi-gurationsdatei sehen wie folgt aus:# Destination Dummy/Gateway Netmask Device#127.0.0.0 0.0.0.0 255.255.255.0 lo204.127.235.0 0.0.0.0 255.255.255.0 eth0default 204.127.235.41 0.0.0.0 eth0207.68.156.51 207.68.145.45 255.255.255.255 eth1192.168.0.0 207.68.156.51 255.255.0.0 eth1

Das Routenziel steht in der ersten Spalte. Diese Spalte kann die IP-Adresse einesNetzwerks oder Hosts bzw., im Fall von erreichbaren Namenservern, den voll qualifi-zierten Netzwerk- oder Hostnamen enthalten.

Die zweite Spalte enthält das Standard-Gateway oder ein Gateway, über das der Zugriffauf einen Host oder ein Netzwerk erfolgt. Die dritte Spalte enthält die Netzmaske fürNetzwerke oder Hosts hinter einem Gateway. Die Maske 255.255.255.255 giltbeispielsweise für einen Host hinter einem Gateway.

Die vierte Spalte ist nur für Netzwerke relevant, die mit dem lokalen Host verbundensind, z. B. Loopback-, Ethernet-, ISDN-, PPP- oder Dummy-Geräte. In diese Spaltemuss der Gerätename eingegeben werden.

Grundlegendes zu Netzwerken 383

Page 384: Suse 10.1 Linux Reference De

In einer (optionalen) fünften Spalte kann der Typ einer Route angegeben werden. Nichtbenötigte Spalten sollten ein Minuszeichen - enthalten, um sicherzustellen, dass derParser den Befehl korrekt interpretiert. Weitere Informationen hierzu finden Sie aufder Manualpage für den Befehl routes(5).

/etc/resolv.conf

In dieser Datei wird die Domäne angegeben, zu der der Host gehört (Schlüsselwortsearch). Ebenfalls aufgeführt ist der Status des Namenservers, auf den der Zugrifferfolgt (Schlüsselwort nameserver). Es können mehrere Domänennamen angegebenwerden. Bei der Auflösung eines Namens, der nicht voll qualifiziert ist, wird versucht,einen solchen zu generieren, indem die einzelnen search-Einträge angehängt werden.Wenn Sie mehrere Namenserver verwenden, geben Sie mehrere Zeilen ein, wobei jedeZeile mitnameserver beginnt. Stellen Sie Kommentaren ein#-Zeichen voran. YaSTträgt den angegebenen Namenserver in diese Datei ein. Beispiel 18.5, „/etc/resolv.conf“ (S. 384) zeigt, wie /etc/resolv.conf aussehen könnte.

Beispiel 18.5 /etc/resolv.conf# Our domainsearch example.com## We use sun (192.168.0.20) as nameservernameserver 192.168.0.20

Einige Dienste, z. B. pppd (wvdial), ipppd (isdn), dhcp (dhcpcd unddhclient), pcmcia und hotplug ändern die Datei /etc/resolv.conf mitdem Skript modify_resolvconf. Wenn die Datei /etc/resolv.conf vondiesem Skript vorübergehend geändert wurde, enthält sie einen vordefinierten Kommen-tar mit Informationen zu dem Dienst, der sie geändert hat, dem Speicherort, an dem dieursprüngliche Datei gesichert wurde, sowie Informationen darüber, wie der automatischeÄnderungsmechanismus deaktiviert werden kann. Wenn /etc/resolv.confmehrmals geändert wird, enthält die Datei die Änderungen in verschachtelter Form.Diese können auf saubere Weise auch dann wieder rückgängig gemacht werden, wenndieser Umkehrvorgang in einer anderen Reihenfolge ausgeführt wird, als die Änderungenvorgenommen wurden. Dienste, die diese Flexibilität möglicherweise benötigen, sindbeispielsweise isdn, pcmcia und hotplug.

Wenn ein Dienst auf unnormale Weise beendet wurde, kann die ursprüngliche Dateimit modify_resolvconf wiederhergestellt werden. Zudem wird beispielsweisenach einem Systemabsturz beim Booten des Systems ein Test ausgeführt, um zu

384 Referenz

Page 385: Suse 10.1 Linux Reference De

ermitteln, ob eine unsaubere, geänderte resolv.conf vorhanden ist (z. B. durcheinen Systemabsturz), in welchem Fall die ursprüngliche (unveränderte)resolv.confwiederhergestellt wird.

YaST ermittelt mit dem Befehl modify_resolvconf check, ob resolv.confgeändert wurde, und warnt den Benutzer, dass Änderungen nach dem Wiederherstellender Datei verloren gehen. Abgesehen davon verlässt sich YaST nicht auf modify_resolvconf, d. h., die Auswirkungen der Änderung von resolv.conf überYaST sind identisch mit allen anderen manuellen Änderungen. Die Änderungen sindin beiden Fällen permanent. Die von den genannten Diensten vorgenommenen Ände-rungen sind nur temporärer Natur.

/etc/hosts

In dieser Datei werden, wie in Beispiel 18.6, „/etc/hosts“ (S. 385) gezeigt, IP-Adressen zu Hostnamen zugewiesen. Wenn kein Namenserver implementiert ist, müssenalle Hosts, für die IP-Verbindungen eingerichtet werden sollen, hier aufgeführt sein.Geben Sie für jeden Host in die Datei eine Zeile ein, die aus der IP-Adresse, dem vollqualifizierten Hostnamen und dem Hostnamen besteht. Die IP-Adresse muss am Anfangder Zeile stehen und die Einträge müssen durch Leerzeichen und Tabulatoren getrenntwerden. Kommentaren wird immer das #-Zeichen vorangestellt.

Beispiel 18.6 /etc/hosts127.0.0.1 localhost192.168.0.20 sun.example.com sun192.168.0.0 earth.example.com earth

/etc/networks

Hier werden Netzwerknamen in Netzwerkadressen umgesetzt. Das Format ähnelt demder hosts-Datei, jedoch stehen hier die Netzwerknamen vor den Adressen. SieheBeispiel 18.7, „/etc/networks“ (S. 385).

Beispiel 18.7 /etc/networksloopback 127.0.0.0localnet 192.168.0.0

Grundlegendes zu Netzwerken 385

Page 386: Suse 10.1 Linux Reference De

/etc/host.conf

Das Auflösen von Namen, d. h. das Übersetzen von Host- bzw. Netzwerknamen überdie resolver-Bibliothek, wird durch diese Datei gesteuert. Diese Datei wird nur fürProgramme verwendet, die mit libc4 oder libc5 gelinkt sind. Weitere Informationen zuaktuellen glibc-Programmen finden Sie in den Einstellungen in /etc/nsswitch.conf. Jeder Parameter muss in einer eigenen Zeile stehen. Kommentare werden durchein #-Zeichen eingeleitet. Die verfügbaren Parameter sind in Tabelle 18.6, „Parameterfür /etc/host.conf“ (S. 386) aufgeführt. Ein Beispiel für /etc/host.conf wird inBeispiel 18.8, „ /etc/host.conf “ (S. 387) gezeigt.

Tabelle 18.6 Parameter für /etc/host.conf

Legt fest, in welcher Reihenfolge die Dienste zum Auflöseneines Namens angesprochen werden sollen. Mögliche Argumen-te (getrennt durch Leerzeichen oder Kommas):

order hosts, bind

hosts: Durchsuchen der Datei /etc/hosts

bind: Greift auf einen Namenserver zu

nis: Über NIS

Legt fest, ob ein in /etc/hosts eingegebener Host mehrereIP-Adressen haben kann.

multi on/off

Diese Parameter beeinflussen das spoofing des Namenservers,haben aber weiter keinen Einfluss auf die Netzwerkkonfigurati-on.

nospoof onspoofalert on/off

Der angegebene Domänenname wird vor dem Auflösen desHostnamens von diesem abgeschnitten (insofern der Hostname

trim Domänenna-me

diesen Domänennamen enthält). Diese Option ist dann vonNutzen, wenn in der Datei /etc/hosts nur Namen aus derlokalen Domäne stehen, diese aber auch mit angehängtemDomänennamen erkannt werden sollen.

386 Referenz

Page 387: Suse 10.1 Linux Reference De

Beispiel 18.8 /etc/host.conf# We have named runningorder hosts bind# Allow multiple addrsmulti on

/etc/nsswitch.conf

Mit der GNU C Library 2.0 wurde Name Service Switch (NSS) eingeführt. WeitereInformationen hierzu finden Sie auf der Manualpage für nsswitch.conf(5) undin dem Dokument The GNU C Library Reference Manual.

In der Datei /etc/nsswitch.conf wird festgelegt, in welcher Reihenfolgebestimmte Informationen abgefragt werden. Ein Beispiel für nsswitch.conf ist inBeispiel 18.9, „/etc/nsswitch.conf“ (S. 387) dargestellt. Kommentare werdendurch ein #-Zeichen eingeleitet. Der Eintrag unter der hosts-Datenbank bedeutet,dass Anfragen über DNS an /etc/hosts (files) gehen (siehe Kapitel 20, DasDomain Name System (DNS) (S. 399)).

Beispiel 18.9 /etc/nsswitch.confpasswd: compatgroup: compat

hosts: files dnsnetworks: files dns

services: db filesprotocols: db files

netgroup: filesautomount: files nis

Die über NSS verfügbaren „Datenbanken“ sind in Tabelle 18.7, „Über /etc/nsswitch.confverfügbare Datenbanken“ (S. 388) aufgelistet. Zusätzlich sind in Zukunft zudemautomount, bootparams, netmasks und publickey zu erwarten. Die Konfi-gurationsoptionen für NSS-Datenbanken sind in Tabelle 18.8, „Konfigurationsoptionenfür NSS-„Datenbanken““ (S. 389) aufgelistet.

Grundlegendes zu Netzwerken 387

Page 388: Suse 10.1 Linux Reference De

Tabelle 18.7 Über /etc/nsswitch.conf verfügbare Datenbanken

Mail-Aliasse, die von sendmail implementiert werden. Sieheman 5 aliases.

aliases

Ethernet-Adressenethers

Für Benutzergruppen, die von getgrent verwendet werden.Weitere Informationen hierzu finden Sie auch auf der Manualpagefür den Befehl group.

group

Für Hostnamen und IP-Adressen, die von gethostbynameund ähnlichen Funktionen verwendet werden.

hosts

Im Netzwerk gültige Host- und Benutzerlisten zum Steuern vonZugriffsrechten. Weitere Informationen hierzu finden Sie aufder Manualpage für netgroup(5).

netgroup

Netzwerknamen und -adressen, die von getnetent verwendetwerden.

networks

Benutzerpasswörter, die von getpwent verwendet werden.Weitere Informationen hierzu finden Sie auf der Manualpagepasswd(5).

passwd

Netzwerkprotokolle, die vongetprotoent verwendet werden.Weitere Informationen hierzu finden Sie auf der Manualpage fürprotocols(5).

protocols

Remote Procedure Call-Namen und -Adressen, die vongetrpcbyname und ähnlichen Funktionen verwendet werden.

rpc

Netzwerkdienste, die von getservent verwendet werden.services

Shadow-Passwörter der Benutzer, die vongetspnam verwendetwerden. Weitere Informationen hierzu finden Sie auf der Manu-alpage für shadow(5).

shadow

388 Referenz

Page 389: Suse 10.1 Linux Reference De

Tabelle 18.8 Konfigurationsoptionen für NSS-„Datenbanken“

Direkter Dateizugriff, z. B. /etc/aliasesfiles

Zugriff über eine Datenbankdb

NIS, siehe auch Kapitel 21, Arbeiten mit NIS (S. 423)nis, nisplus

Nur bei hosts und networks als Erweiterung verwend-bar

dns

Nur bei passwd, shadow und group als Erweiterungverwendbar

compat

/etc/nscd.conf

Mithilfe dieser Datei wird nscd (Name Service Cache Daemon) konfiguriert. WeitereInformationen hierzu finden Sie auf den Manualpagesnscd(8) undnscd.conf(5).Standardmäßig werden die Systemeinträge vonpasswd undgroups von nscd gecacht.Dies ist wichtig für die Leistung der Verzeichnisdienste, z. B. NIS und LDAP, daanderenfalls die Netzwerkverbindung für jeden Zugriff auf Namen oder Gruppen ver-wendet werden muss. hosts wird standardmäßig nicht gecacht, da der Mechanismusin nscd dazu führen würde, dass das lokale System keine Trust-Forward- und Reverse-Lookup-Tests mehr ausführen kann. Statt nscd das Cachen der Namen zu übertragen,sollten Sie einen DNS-Server für das Cachen einrichten.

Wenn das Caching für passwd aktiviert wird, dauert es in der Regel 15 Sekunden, bisein neu angelegter lokaler Benutzer dem System bekannt ist. Durch das Neustarten vonnscd mit dem Befehl rcnscd restart kann diese Wartezeit verkürzt werden.

/etc/HOSTNAME

Hier steht der Name des Computers, also nur der Hostname ohne den Domänennamen.Diese Datei wird von verschiedenen Skripts beim Booten des Computers gelesen. Siedarf nur eine Zeile enthalten, in der der Hostname steht.

Grundlegendes zu Netzwerken 389

Page 390: Suse 10.1 Linux Reference De

18.6.2 Startup-SkriptsNeben den beschriebenen Konfigurationsdateien gibt es noch verschiedene Skripts, diebeim Booten des Computers die Netzwerkprogramme starten. Diese werden gestartet,sobald das System in einen der Mehrbenutzer-Runlevel wechselt. Einige der Skriptssind in Tabelle 18.9, „Einige Start-Skripts für Netzwerkprogramme“ (S. 390) beschrieben.

Tabelle 18.9 Einige Start-Skripts für Netzwerkprogramme

Dieses Skript übernimmt die Konfiguration der Netz-werkschnittstellen. Die Hardware muss bereits von

/etc/init.d/network

/etc/init.d/coldplug (überHotplug) initia-lisiert worden sein. Wenn der Dienst network nichtgestartet wurde, werden keine Netzwerkschnittstellenbeim Einstecken über Hotplug implementiert.

Startet xinetd. xinetd kann verwendet werden, um beiBedarf Serverdienste auf dem System zur Verfügung

/etc/init.d/inetd

zu stellen. Beispielsweise kann er vsftpd starten, sobaldeine FTP-Verbindung initiiert wird.

Startet den Portmapper, der für einen RPC-Serverbenötigt wird, z. B. für einen NFS-Server.

/etc/init.d/portmap

Startet den NFS-Server./etc/init.d/nfsserver

Steuert den sendmail-Prozess./etc/init.d/sendmail

Startet den NIS-Server./etc/init.d/ypserv

Startet den NIS-Client./etc/init.d/ypbind

390 Referenz

Page 391: Suse 10.1 Linux Reference De

18.7 smpppd als EinwählhelferDie meisten Heimanwender besitzen keine gesonderte Leitung für das Internet, sondernwählen sich bei Bedarf ein. Je nach Einwählart (ISDN oder DSL) wird die Verbindungvon ipppd oder pppd gesteuert. Im Prinzip müssen nur diese Programme korrekt gest-artet werden, um online zu sein.

Sofern Sie über eine Flatrate verfügen, die bei der Einwahl keine zusätzlichen Kostenverursacht, starten Sie einfach den entsprechenden Daemon. Sie können die Einwähl-verbindung über ein KDE-Applet oder eine Befehlszeilen-Schnittstelle steuern. Wenndas Internet-Gateway nicht der eigentliche Arbeitscomputer ist, besteht die Möglichkeit,die Einwählverbindung über einen Host im Netzwerk zu steuern.

An dieser Stelle kommt smpppd ins Spiel. Der Dienst bietet den Hilfsprogrammen eineeinheitliche Schnittstelle, die in zwei Richtungen funktioniert. Zum einen programmierter den jeweils erforderlichen pppd oder ipppd und steuert deren Einwählverhalten. Zumanderen stellt er den Benutzerprogrammen verschiedene Provider zur Verfügung undübermittelt Informationen über den aktuellen Status der Verbindung. Da der smpppd-Dienst auch über das Netzwerk gesteuert werden kann, eignet er sich für die Steuerungvon Einwählverbindungen ins Internet von einer Arbeitsstation in einem privaten Sub-netzwerk.

18.7.1 Konfigurieren von smpppdDie von smpppd bereitgestellten Verbindungen werden automatisch von YaST konfi-guriert. Die eigentlichen Einwählprogramme KInternet und cinternet werden ebenfallsvorkonfiguriert. Manuelle Einstellungen sind nur notwendig, wenn Sie zusätzlicheFunktionen von smpppd, z. B. die Fernsteuerung, einrichten möchten.

Die Konfigurationsdatei von smpppd ist /etc/smpppd.conf. Sie ist so eingestellt,dass standardmäßig keine Fernsteuerung möglich ist. Die wichtigsten Optionen dieserKonfigurationsdatei sind:

open-inet-socket = yes|noWenn smpppd über das Netzwerk gesteuert werden soll, muss diese Option aufyes (ja) gesetzt werden. Der Port, auf dem smpppd lauscht, ist 3185. Wenn dieserParameter auf yes (ja) gesetzt ist, sollten auch die Parameter bind-address,host-range und password entsprechend eingestellt werden.

Grundlegendes zu Netzwerken 391

Page 392: Suse 10.1 Linux Reference De

bind-address = IPWenn ein Host mehrere IP-Adressen hat, können Sie mit dieser Einstellung festle-gen, über welche IP-Adresse smpppd Verbindungen akzeptiert.

host-range = Anfangs-IP End-IPDer Parameterhost-range definiert einen Netzbereich. Hosts, deren IP-Adresseninnerhalb dieses Bereichs liegen, wird der Zugriff auf smpppd gewährt. Alle Hosts,die außerhalb dieses Bereichs liegen, werden abgewiesen.

password = PasswortMit der Vergabe eines Passworts wird der Client-Zugriff auf autorisierte Hostsbeschränkt. Da es lediglich ein reines Textpasswort ist, sollte die Sicherheit, die esbietet, nicht überbewertet werden. Wenn kein Passwort vergeben wird, sind alleClients berechtigt, auf smpppd zuzugreifen.

slp-register = yes|noMit diesem Parameter kann der smpppd-Dienst per SLP im Netzwerk bekanntgegeben werden.

Weitere Informationen über smpppd finden Sie in den Manualpages zu smpppd(8)und smpppd.conf(5).

18.7.2 Konfigurieren von KInternet,cinternet und qinternet für dieFernsteuerung

Mit den Programmen KInternet, cinternet und qinternet kann sowohl ein lokaler alsauch ein entfernter smpppd-Dienst gesteuert werden. cinternet ist die Befehlszeilenva-riante von KInternet, das eine grafische Oberfläche bietet. qinternet ist im Grunde dasGleiche wie KInternet, verwendet aber nicht die KDE-Bibliotheken, sodass es ohneKDE verwendet werden kann und separat installiert werden muss. Wenn Sie dieseDienstprogramme zum Einsatz mit einem entfernten smpppd-Dienst vorbereitenmöchten, bearbeiten Sie die Konfigurationsdatei /etc/smpppd-c.conf manuelloder mithilfe von KInternet. Diese Datei enthält nur drei Optionen:

sites = Liste der SitesHier weisen Sie die Frontends an, wo sie nach smpppd suchen sollen. Die Frontendstesten die Optionen in der hier angegebenen Reihenfolge. Die Option localweist

392 Referenz

Page 393: Suse 10.1 Linux Reference De

den Verbindungsaufbau dem lokalen smpppd-Dienst zu und gateway verweistauf einen smpppd-Dienst auf dem Gateway. Die Verbindung wird nach den in derDatei config-file unter server spezifizierten Einstellungen hergestellt. slpweist die Frontends an, sich mit einem per SLP gefundenen smpppd-Dienst zuverbinden.

server = ServerGeben Sie hier den Host an, auf dem smpppd läuft.

password = PasswortGeben Sie das Passwort für smpppd ein.

Sofern der smpppd-Dienst aktiv ist, können Sie jetzt versuchen, auf ihn zuzugreifen,z. B. mit dem Befehl cinternet --verbose --interface-list. Sollten Siean dieser Stelle Schwierigkeiten haben, finden Sie weitere Informationen in denManualpages zu smpppd-c.conf(5) und cinternet(8).

Grundlegendes zu Netzwerken 393

Page 394: Suse 10.1 Linux Reference De
Page 395: Suse 10.1 Linux Reference De

19SLP-Dienste im NetzwerkDas Service Location Protocol (SLP) wurde entwickelt, um die Konfiguration vernetzterClients innerhalb eines lokalen Netzwerks zu vereinfachen. Zur Konfiguration einesNetzwerk-Clients inklusive aller erforderlichen Dienste benötigt der Administratortraditionell detailliertes Wissen über die im Netzwerk verfügbaren Server. SLP teiltallen Clients im lokalen Netzwerk die Verfügbarkeit ausgewählter Dienste mit.Anwendungen mit SLP-Unterstützung können diese Informationen verarbeiten undkönnen automatisch konfiguriert werden.

SUSE Linux unterstützt die Installation von per SLP bekannt gegebenen Installations-quellen und beinhaltet viele Systemdienste mit integrierter Unterstützung für SLP.YaST und Konqueror verfügen beide über SLP-fähige Frontends. Nutzen Sie SLP, umvernetzten Clients zentrale Funktionen wie Installationsserver, YOU-Server, Dateiserveroder Druckserver auf Ihrem SUSE Linux-System zur Verfügung zu stellen.

19.1 Registrieren eigener DiensteViele Anwendungen unter SUSE Linux verfügen durch dielibslp-Bibliothek bereitsüber eine integrierte SLP-Unterstützung. Falls ein Dienst ohne SLP-Unterstützungkompiliert wurde, können Sie ihn mit einer der folgenden Methoden per SLP verfügbarmachen:

Statische Registrierung über /etc/slp.reg.dLegen Sie für jeden neuen Dienst eine separate Registrierungsdatei an. Dies ist einBeispiel einer solchen Datei für die Registrierung eines Scannerdiensts:

SLP-Dienste im Netzwerk 395

Page 396: Suse 10.1 Linux Reference De

## Register a saned service on this system## en means english language## 65535 disables the timeout, so the service registration does## not need refreshesservice:scanner.sane://$HOSTNAME:6566,en,65535watch-port-tcp=6566description=SANE scanner daemon

Die wichtigste Zeile dieser Datei ist die Dienst-URL, die mit service: beginnt.Sie enthält den Diensttyp (scanner.sane) und die Adresse, unter der der Dienstauf dem Server verfügbar ist. $HOSTNAME wird automatisch durch den vollstän-digen Hostnamen ersetzt. Abgetrennt durch einen Doppelpunkt folgt nun der Namedes TCP-Ports, auf dem der entsprechende Dienst gefunden werden kann. GebenSie nun die Sprache an, in der der Dienst angekündigt werden soll, und die Gültig-keitsdauer der Registrierung in Sekunden. Diese Angaben müssen durch Kommasvon der Dienst-URL getrennt werden. Wählen Sie für die Registrierungsdauereinen Wert zwischen 0 und 65535. 0 verhindert die Registrierung. Mit 65535werden alle Einschränkungen aufgehoben.

Die Registrierungsdatei enthält außerdem die beiden Variablenwatch-tcp-portund description. watch-tcp-port koppelt die SLP-Dienstankündigungdaran, ob der entsprechende Dienst aktiv ist, indem slpd den Status des Dienstsüberprüft. Die zweite Variable enthält eine genauere Beschreibung des Diensts,die in den entsprechenden Browsern angezeigt wird.

Statische Registrierung über /etc/slp.regDer einzige Unterschied zum Verfahren mit /etc/slp.reg.d ist die Gruppie-rung aller Dienste innerhalb einer zentralen Datei.

Dynamische Registrierung über slptoolVerwenden Sie zur SLP-Registrierung eines Diensts aus proprietären Skripts dasBefehlszeilen-Frontend slptool.

19.2 SLP-Frontends in SUSE LinuxSUSE Linux enthält mehrere Frontends, um SLP-Informationen über ein Netzwerk zuüberprüfen und zu verwenden:

396 Referenz

Page 397: Suse 10.1 Linux Reference De

slptoolslptool ist ein einfaches Befehlszeilenprogramm, mit dem proprietäre Dienste oderSLP-Anfragen im Netzwerk bekannt gegeben werden können. Mitslptool --helpwerden alle verfügbaren Optionen und Funktionen aufgelistet.slptool kann auch aus Skripts heraus aufgerufen werden, die SLP-Informationenverarbeiten.

SLP-Browser von YaSTYaST enthält unterNetzwerkdienste→ SLP-Browser einen separaten SLP-Browser,der alle im lokalen Netzwerk über SLP bekannt gegebenen Dienste in einer Bau-mansicht darstellt.

KonquerorWird Konqueror als Netzwerkbrowser eingesetzt und mit slp:/ aufgerufen,werden alle im lokalen Netz verfügbaren SLP-Dienste angezeigt. Klicken Sie aufdie Symbole im Hauptfenster, um ausführlichere Informationen zum entsprechendenDienst zu erhalten. Wenn Sie Konqueror mit service:/ aufrufen, können Siemit einem Klick auf das entsprechende Symbol im Browserfenster eine Verbindungzum ausgewählten Dienst aufbauen.

19.3 SLP aktivierenslpd muss auf Ihrem System laufen, wenn Sie Dienste anbieten möchten. Für das bloßeAbfragen von Diensten ist ein Start dieses Daemons nicht erforderlich. Wie die meistenSystemdienste unter SUSE Linux wird der slpd-Daemon über ein separates init-Skriptgesteuert. Standardmäßig ist der Daemon inaktiv. Wenn Sie ihn für die Dauer einerSitzung aktivieren möchten, führen Sie rcslpd start as root aus, um ihn zustarten. Mit dem Befehl rcslpd stop können Sie ihn stoppen. Mit restart oderstatus lösen Sie einen Neustart bzw. eine Statusabfrage aus. Soll slpd standardmäßigaktiv sein, führen Sie den Befehl insserv slpd einmalig als root aus. Dadurchwird slpd automatisch zu den Diensten hinzugefügt, die beim Booten eines Systemsgestartet werden.

SLP-Dienste im Netzwerk 397

Page 398: Suse 10.1 Linux Reference De

19.4 Weitere InformationenWeitere Informationen zu SLP finden Sie in folgenden Quellen:

RFC 2608, 2609, 2610RFC 2608 befasst sich mit der Definition von SLP im Allgemeinen. RFC 2609geht näher auf die Syntax der verwendeten Dienst-URLs ein und RFC 2610 thema-tisiert DHCP über SLP.

http://www.openslp.comDie Homepage des OpenSLP-Projekts.

/usr/share/doc/packages/openslpDieses Verzeichnis enthält alle zu SLP verfügbaren Dokumentationen einschließlicheiner README.SuSE-Datei mit Details zu SUSE Linux, den oben genannten RFCsund zwei einleitenden HTML-Dokumenten. Programmierer, die SLP-Funktionenverwenden möchten, sollten das Paket openslp-devel installieren und imdarin enthaltenen Programmers Guide nachschlagen.

398 Referenz

Page 399: Suse 10.1 Linux Reference De

20Das Domain Name System (DNS)DNS (Domain Name System, Domänennamensystem) ist zur Auflösung der Domänen-und Hostnamen in IP-Adressen erforderlich. So wird die IP-Adresse 192.168.0.0 bei-spielsweise dem Hostnamenearth zugewiesen. Bevor Sie Ihren eigenen Namenservereinrichten, sollten Sie die allgemeinen Informationen zu DNS in Abschnitt 18.3,„Namensauflösung“ (S. 361) lesen. Die folgenden Konfigurationsbeispiele beziehensich auf BIND.

20.1 DNS-TerminologieZone

Der Domänen-Namespace wird in Regionen, so genannte Zonen, unterteilt. So istbeispielsweise opensuse.org der Bereich bzw. die Zone opensuse der Domäneorg.

DNS-ServerDer DNS-Server ist ein Server, auf dem der Name und die IP-Informationen füreine Domäne gespeichert sind. Sie können einen primären DNS-Server für dieMasterzone, einen sekundären Server für die Slave-Zone oder einen Slave-Serverohne jede Zone für das Caching besitzen.

DNS-Server der MasterzoneDie Masterzone beinhaltet alle Hosts aus Ihrem Netzwerk und der DNS-Serverder Masterzone speichert die aktuellen Einträge für alle Hosts in Ihrer Domäne.

Das Domain Name System (DNS) 399

Page 400: Suse 10.1 Linux Reference De

DNS-Server der Slave-ZoneEine Slave-Zone ist eine Kopie der Masterzone. Der DNS-Server der Slave-Zone erhält seine Zonendaten mithilfe von Zonentransfers von seinem Master-server. Der DNS-Server der Slave-Zone antwortet autorisiert für die Zone,solange er über gültige (nicht abgelaufene) Zonendaten verfügt. Wenn derSlave keine neue Kopie der Zonendaten erhält, antwortet er nicht mehr für dieZone.

ForwarderForwarders sind DNS-Server, an die der DNS-Server Abfragen sendet, die er nichtbearbeiten kann.

EintragDer Eintrag besteht aus Informationen zu Namen und IP-Adresse. Die unterstütztenEinträge und ihre Syntax sind in der BIND-Dokumentation beschrieben. Einigespezielle Einträge sind beispielsweise:

NS-EintragEin NS-Eintrag informiert die Namenserver darüber, welche Computer füreine bestimmte Domänenzone zuständig sind.

MX-EintragDie MX (Mailaustausch)-Einträge beschreiben die Computer, die für dieWeiterleitung von Mail über das Internet kontaktiert werden sollen.

SOA-EintragDer SOA (Start of Authority)-Eintrag ist der erste Eintrag in einer Zonendatei.Der SOA-Eintrag wird bei der Synchronisierung von Daten zwischen mehrerenComputern über DNS verwendet.

20.2 Konfiguration mit YaSTMit dem DNS-Modul von YaST können Sie einen DNS-Server für Ihr lokales Netzwerkkonfigurieren. Beim ersten Starten des Moduls werden Sie von einem Assistenten auf-gefordert, einige grundlegende Entscheidungen hinsichtlich der Serveradministrationzu treffen. Nach Abschluss der anfänglichen Konfiguration ist eine grundlegende Ser-verkonfiguration verfügbar, die für einfache Szenarien ausreichend ist. KomplexereKonfigurationsaufgaben können im Expertenmodus ausgeführt werden.

400 Referenz

Page 401: Suse 10.1 Linux Reference De

20.2.1 AssistentenkonfigurationDer Assistent besteht aus drei Schritten bzw. Dialogfeldern. An den entsprechendenStellen in den Dialogfeldern haben Sie die Möglichkeit, in den Expertenkonfigurations-modus zu wechseln.

1 Wenn Sie das Modul zum ersten Mal starten, wird das Dialogfeld Forwarder-Einstellungen (siehe Abbildung 20.1, „DNS-Server-Installation: Forwarder-Einstellungen“ (S. 401)) geöffnet. Legen Sie hier fest, ob der PPP-Daemon eineListe von Forwarders bei der Einwahl über DSL oder ISDN eine Liste von For-warders bereitstellen soll (PPP-Daemon legt Forwarders fest) oder ob Sie Ihreeigene Liste angeben möchten (Forwarders manuell festlegen).

Abbildung 20.1 DNS-Server-Installation: Forwarder-Einstellungen

2 Das Dialogfeld DNS-Zonen besteht aus mehreren Teilen und ist für die Verwal-tung von Zonendateien zuständig, wie in Abschnitt 20.5, „Zonendateien“ (S. 415)beschrieben. Bei einer neuen Zone müssen Sie unterName der Zone einen Namenangeben. Um eine Reverse Zone hinzuzufügen, muss der Name auf.in-addr.arpa enden. Wählen Sie schließlich den Zonetyp (Master oderSlave) aus. Siehe Abbildung 20.2, „DNS-Server-Installation: DNS-Zonen“(S. 402). Klicken Sie auf Zone bearbeiten, um andere Einstellungen für eine

Das Domain Name System (DNS) 401

Page 402: Suse 10.1 Linux Reference De

bestehende Zone zu konfigurieren. Zum Entfernen einer Zone klicken Sie aufZone löschen.

Abbildung 20.2 DNS-Server-Installation: DNS-Zonen

3 Im abschließenden Dialogfeld können Sie die Ports für den DNS-Dienst in derFirewall öffnen, die während der Installation aktiviert wird, und angeben, obDNS gestartet werden soll. Die Expertenkonfiguration lässt sich ebenfalls überdieses Dialogfeld aufrufen. Siehe Abbildung 20.3, „DNS-Server-Installation:Wizard beenden“ (S. 403).

402 Referenz

Page 403: Suse 10.1 Linux Reference De

Abbildung 20.3 DNS-Server-Installation: Wizard beenden

20.2.2 Konfiguration für ExpertenNach dem Starten des Moduls öffnet YaST ein Fenster, in dem mehrere Konfigurati-onsoptionen angezeigt werden. Nach Abschluss dieses Fensters steht eine DNS-Server-Konfiguration mit Grundfunktionen zur Verfügung:

Starten des DNS-ServersLegen Sie unter Systemstart fest, ob der DNS-Server beim Booten des Systems odermanuell gestartet werden soll. Um den DNS-Server sofort zu starten, wählen SieDNS-Server nun starten. Um den DNS-Server anzuhalten, wählen Sie DNS-Server nunanhalten. Zum Speichern der aktuellen Einstellungen wählen SieEinstellungen speichernund DNS-Server nun neu starten. Sie können den DNS-Anschluss in der Firewall mitFirewall-Port öffnen öffnen und die Firewall-Einstellungen mit Firewall-Details bear-beiten.

Das Domain Name System (DNS) 403

Page 404: Suse 10.1 Linux Reference De

ProtokollierenUm festzulegen, was und wie der DNS-Server protokollieren soll, wählen Sie Protokol-lieren aus. Geben Sie unter Protokolltyp an, wohin der DNS-Server die Protokolldatenschreiben soll. Verwenden Sie die systemweite Protokolldatei/var/log/messagesdurch Auswahl von In Systemprotokoll protokollieren oder geben Sie durch Auswahlvon In Datei protokollieren eine andere Datei an. In letzterem Fall müssen Sie außerdemdie maximale Dateigröße in Megabyte und die Anzahl der zu speichernden Protokoll-dateien angeben.

Weitere Optionen sind unter Zusätzliches Protokollieren verfügbar. Durch Aktivierenvon Alle DNS-Abfragen protokollieren wird jede Abfrage protokolliert. In diesem Fallkann die Protokolldatei extrem groß werden. Daher sollte diese Option nur zur Fehler-suche aktiviert werden. Um den Datenverkehr zu protokollieren, der während Zonenak-tualisierungen zwischen dem DHCP- und dem DNS-Server stattfindet, aktivieren SieZonen-Updates protokollieren. Um den Datenverkehr während eines Zonentransfersvon Master zu Slave zu protokollieren, aktivieren Sie Zonen-Transfer protokollieren.Siehe Abbildung 20.4, „DNS-Server: Protokollieren“ (S. 404).

Abbildung 20.4 DNS-Server: Protokollieren

404 Referenz

Page 405: Suse 10.1 Linux Reference De

Hinzufügen einer Slave-ZoneWenn Sie eine Slave-Zone hinzufügen möchten, klicken Sie auf DNS-Zonen, wählenSie den Zonentyp Slave aus und klicken Sie auf Hinzufügen.

Geben Sie im Zonen-Editor unter Master DNS Server (Master-DNS-Server), denMaster an, von dem der Slave die Daten abrufen soll. Um den Zugriff auf den Serverzu beschränken, wählen Sie eine der ACLs aus der Liste aus. Siehe Abbildung 20.5,„DNS-Server: Zonen-Editor des Slave“ (S. 405).

Abbildung 20.5 DNS-Server: Zonen-Editor des Slave

Hinzufügen einer MasterzoneWenn Sie eine Masterzone hinzufügen möchten, klicken Sie auf DNS-Zonen, wählenSie den Zonentyp Master aus, geben Sie den Namen der neuen Zone ein und klickenSie auf Hinzufügen.

Bearbeiten einer MasterzoneWenn Sie eine Masterzone bearbeiten möchten, klicken Sie auf DNS-Zonen, wählenSie den ZonentypMaster aus, wählen Sie die Masterzone in der Tabelle aus und klicken

Das Domain Name System (DNS) 405

Page 406: Suse 10.1 Linux Reference De

Sie auf Bearbeiten. Das Dialogfeld besteht aus mehreren Seiten: Basic (Grundlagen)(die zuerst geöffnete Seite), NS-Einträge, MX-Einträge, SOA und Einträge.

Zonen-Editor (NS-Einträge)In diesem Dialogfeld können Sie alternative Namenserver für die angegebenenZonen definieren. Vergewissern Sie sich, dass Ihr eigener Namenserver in derListe enthalten ist. Um einen Eintrag hinzuzufügen, geben Sie seinen Namen unterHinzuzufügender Namenserver ein und bestätigen Sie den Vorgang anschließendmitHinzufügen. Siehe Abbildung 20.6, „DNS-Server: Zonen-Editor (NS-Einträge)“(S. 406).

Abbildung 20.6 DNS-Server: Zonen-Editor (NS-Einträge)

Zonen-Editor (MX-Einträge)Um einen Mailserver für die aktuelle Zone zur bestehenden Liste hinzuzufügen,geben Sie die entsprechende Adresse und den entsprechenden Prioritätswert ein.Bestätigen Sie den Vorgang anschließend durch Auswahl von Hinzufügen. SieheAbbildung 20.7, „DNS-Server: Zonen-Editor (MX-Einträge)“ (S. 407).

406 Referenz

Page 407: Suse 10.1 Linux Reference De

Abbildung 20.7 DNS-Server: Zonen-Editor (MX-Einträge)

Zonen-Editor (SOA)Auf dieser Seite können Sie SOA (Start of Authority)-Einträge erstellen. EineErklärung der einzelnen Optionen finden Sie in Beispiel 20.6, „Datei/var/lib/named/world.zone“ (S. 415).

Das Domain Name System (DNS) 407

Page 408: Suse 10.1 Linux Reference De

Abbildung 20.8 DNS-Server: Zonen-Editor (SOA)

Zonen-Editor (Einträge)In diesem Dialogfeld wird die Namenauflösung verwaltet. Geben Sie unter Eintrag-schlüssel den Hostnamen an und wählen Sie anschließend den Typ aus. A-Recordsteht für den Haupteintrag. Der Wert hierfür sollte eine IP-Adresse sein. CNAMEist ein Alias. Verwenden Sie die Typen NS und MX für detaillierte oder partielleEinträge, mit denen die Informationen aus den Registerkarten NS-Einträge undMX-Einträge erweitert werden. Diese drei Typen werden in einen bestehenden A-Eintrag aufgelöst. PTR dient für Reverse Zones. Es handelt sich um das Gegenteileines A-Eintrags.

20.3 Starten des Namenservers BINDBei SUSE Linux-Systemen ist der Namenserver BIND (Berkeley Internet NameDomain)vorkonfiguriert, sodass er problemlos unmittelbar nach der Installation gestartet werdenkann. Wenn Sie bereits über eine funktionierende Internetverbindung verfügen und127.0.0.1 als Namenserveradresse für localhost in /etc/resolv.confeingegeben haben, verfügen Sie normalerweise bereits über eine funktionierendeNamenauflösung, ohne dass Ihnen der DNS des Anbieters bekannt sein muss. BINDführt die Namenauflösung über den Root-Namenserver durch. Dies ist ein wesentlichlangsamerer Prozess. Normalerweise sollte der DNS des Anbieters zusammen mit der

408 Referenz

Page 409: Suse 10.1 Linux Reference De

zugehörigen IP-Adresse in die Konfigurationsdatei /etc/named.conf unterforwarders eingegeben werden, um eine effektive und sichere Namenauflösung zugewährleisten. Wenn dies so weit funktioniert, wird der Namenserver als reiner Nur-Cache-Namenserver ausgeführt. Nur wenn Sie seine eigenen Zonen konfigurieren, wirder ein richtiger DNS. Ein einfaches Beispiel hierfür ist in der Dokumentation unter/usr/share/doc/packages/bind/sample-config enthalten.

TIPP: Automatische Anpassung der Namenserverinformationen

Je nach Typ der Internet- bzw. Netzwerkverbindung können die Namenserver-informationen automatisch an die aktuellen Bedingungen angepasst werden.Setzen Sie hierfür die Variable MODIFY_NAMED_CONF_DYNAMICALLY in derDatei/etc/sysconfig/network/config auf yes.

Richten Sie jedoch noch keine offiziellen Domänen ein. Warten Sie, bis Ihnen eine vonder verantwortlichen Institution zugewiesen wird. Selbst wenn Sie eine eigene Domänebesitzen und diese vom Anbieter verwaltet wird, sollten Sie sie besser nicht verwenden,da BIND ansonsten keine Anforderungen für diese Domäne weiterleitet. Beispielsweisekönnte in diesem Fall für diese Domäne der Zugriff auf den Webserver beim Anbieternicht möglich sein.

Geben Sie zum Starten des Namenservers den Befehl rcnamed start als root ein.Falls rechts in grüner Schrift „done“ angezeigt wird, wurde named, wie der Namenser-verprozess hier genannt wird, erfolgreich gestartet. Testen Sie den Namenserverumgehend auf dem lokalen System mit den Programmen host bzw. dig. Diese solltenlocalhost als Standardserver mit der Adresse 127.0.0.1 zurückgeben. Ist diesnicht der Fall, enthält/etc/resolv.conf vermutlich einen falschen Namenserver-eintrag oder die Datei ist überhaupt nicht vorhanden. Beim ersten Test geben Siehost 127.0.0.1 ein. Dies sollte immer funktionieren. Wenn Sie eine Fehlermeldungerhalten, sollten Sie mit rcnamed status überprüfen, ob der Server tatsächlichausgeführt wird. Wenn der Namenserver sich nicht starten lässt oder unerwartetesVerhalten zeigt, finden Sie die Ursache normalerweise in der Protokolldatei /var/log/messages.

Um den Namenserver des Anbieters oder einen bereits in Ihrem Netzwerk ausgeführtenServer als Forwarder zu verwenden, geben Sie die entsprechende IP-Adresse(n) imAbschnitt options unter forwarders ein. Bei den Adressen in Beispiel 20.1,„Weiterleitungsoptionen in named.conf“ (S. 410) handelt es sich lediglich um Beispiele.Passen Sie diese Einträge an Ihr eigenes Setup an.

Das Domain Name System (DNS) 409

Page 410: Suse 10.1 Linux Reference De

Beispiel 20.1 Weiterleitungsoptionen in named.confoptions { directory "/var/lib/named"; forwarders { 10.11.12.13; 10.11.12.14; }; listen-on { 127.0.0.1; 192.168.0.99; }; allow-query { 127/8; 192.168.0/24; }; notify no; };

Auf den Eintrag options folgen Einträge für die Zone, localhost und0.0.127.in-addr.arpa. Der Eintragtype hint unter „.“ sollte immer vorhan-den sein. Die entsprechenden Dateien müssen nicht bearbeitet werden und sollten sofunktionieren, wie sie sind. Achten Sie außerdem darauf, dass jeder Eintrag mit einem„;“ abgeschlossen ist und dass sich die geschweiften Klammern an der richtigen Positionbefinden. Nach dem Ändern der Konfigurationsdatei /etc/named.conf oder derZonendateien müssen Sie BIND anweisen, diese erneut zu lesen. Dies geschieht mitdem Befehl rcnamed reload. Dieselbe Wirkung erzielen Sie, wenn Sie denNamenserver mit rcnamed restart anhalten und erneut starten. Sie können denServer jederzeit durch Eingabe von rcnamed stop anhalten.

20.4 Die Konfigurationsdatei/etc/dhcpd.conf

Alle Einstellungen für den BIND-Namenserver selbst sind in der Datei /etc/named.conf gespeichert. Die Zonendaten für die zu bearbeitenden Domänen, die aus Host-namen, IP-Adressen usw. bestehen, sind jedoch in gesonderten Dateien im Verzeichnis/var/lib/named gespeichert. Einzelheiten hierzu werden weiter unten beschrieben.

/etc/named.conf lässt sich grob in zwei Bereiche untergliedern. Der eine ist derAbschnitt options für allgemeine Einstellungen und der zweite besteht auszone-Einträgen für die einzelnen Domänen. Der Abschnitt logging und die Einträgeunter acl (access control list, Zugriffssteuerungsliste) sind optional. Kommentarzeilenbeginnen mit # oder mit //. Eine Minimalversion von /etc/named.conf findenSie in Beispiel 20.2, „Eine Grundversion von /etc/named.conf“ (S. 411).

410 Referenz

Page 411: Suse 10.1 Linux Reference De

Beispiel 20.2 Eine Grundversion von /etc/named.confoptions { directory "/var/lib/named"; forwarders { 10.0.0.1; }; notify no;};

zone "localhost" in { type master; file "localhost.zone";};

zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone";};

zone "." in { type hint; file "root.hint";};

20.4.1 Wichtige Konfigurationsoptionendirectory „Dateiname“;

Gibt das Verzeichnis an, in dem BIND die Dateien mit den Zonendaten findenkann. In der Regel ist dies /var/lib/named.

forwarders { ip-adresse; };Gibt die Namenserver (zumeist des Anbieters) an, an die DNS-Anforderungenweitergeleitet werden sollen, wenn sie nicht direkt aufgelöst werden können.Ersetzen Sie ip-adresse durch eine IP-Adresse wie 10.0.0.1.

forward first;Führt dazu, dass DNS-Anforderungen weitergeleitet werden, bevor versucht wird,sie über die Root-Namenserver aufzulösen. Anstatt forward first kannforward only verwendet werden. Damit werden alle Anforderungen weiterge-leitet, ohne dass sie an die Root-Namenserver gesendet werden. Dies ist bei Firewall-Konfigurationen sinnvoll.

listen-on port 53 { 127.0.0.1; ip-adresse; };Informiert BIND darüber, an welchen Netzwerkschnittstellen und Ports Client-Abfragen akzeptiert werden sollen. port 53 muss nicht explizit angegeben wer-

Das Domain Name System (DNS) 411

Page 412: Suse 10.1 Linux Reference De

den, da 53 der Standard-Port ist. Geben Sie 127.0.0.1 ein, um Anforderungenvom lokalen Host zuzulassen. Wenn Sie diesen Eintrag ganz auslassen, werdenstandardmäßig alle Schnittstellen verwendet.

listen-on-v6 port 53 {any; };Informiert BIND darüber, welcher Port auf IPv6-Client-Anforderungen überwachtwerden soll. Die einzige Alternative zu any ist none. Bei IPv6 akzeptiert derServer nur Wildcard-Adressen.

query-source address * port 53;Dieser Eintrag ist erforderlich, wenn eine Firewall ausgehende DNS-Anforderungenblockiert. Dadurch wird BIND angewiesen, Anforderungen extern von Port 53 undnicht von einem der Ports mit den hohen Nummern über 1024 aufzugeben.

query-source-v6 address * port 53;Informiert BIND darüber, welcher Port für IPv6-Abfragen verwendet werden soll.

allow-query { 127.0.0.1; netz; };Definiert die Netzwerke, von denen aus Clients DNS-Anforderungen aufgebenkönnen. Ersetzen Sie netz durch Adressinformationen wie 192.168.1/24.Der Wert /24 am Ende ist ein abgekürzter Ausdruck für die Netzmaske, hier255.255.255.0.

allow-transfer ! *;;Legt fest, welche Hosts Zonentransfers anfordern können. Im vorliegenden Beispielwerden solche Anforderungen durch ! * vollständig verweigert. Ohne diesenEintrag können Zonentransfer ohne Einschränkungen von jedem beliebigen Ortaus angefordert werden.

statistics-interval 0;Ohne diesen Eintrag generiert BIND in der Datei/var/log/messagesmehrereZeilen mit statistischen Informationen pro Stunde. Setzen Sie diesen Wert auf „0“,um diese Statistiken vollständig zu unterdrücken, oder legen Sie ein Zeitintervallin Minuten fest.

cleaning-interval 720;Diese Option legt fest, in welchen Zeitabständen BIND den Cache leert. Jedes Mal,wenn dies geschieht, wird ein Eintrag in /var/log/messages ausgelöst. Dieverwendete Einheit für die Zeitangabe ist Minuten. Der Standardwert ist 60 Minuten.

412 Referenz

Page 413: Suse 10.1 Linux Reference De

interface-interval 0;BIND durchsucht die Netzwerkschnittstellen regelmäßig nach neuen oder nichtvorhandenen Schnittstellen. Wenn dieser Wert auf 0 gesetzt ist, wird dieser Vorgangnicht durchgeführt und BIND überwacht nur die beim Start erkannten Schnittstellen.Anderenfalls wird das Zeitintervall in Minuten angegeben. Der Standardwert ist60 Minuten.

notify no;no verhindert, dass anderen Namenserver informiert werden, wenn Änderungenan den Zonendaten vorgenommen werden oder wenn der Namenserver neu gestartetwird.

20.4.2 ProtokollierenDer Umfang, die Art und Weise und der Ort der Protokollierung kann in BIND extensivkonfiguriert werden. Normalerweise sollten die Standardeinstellungen ausreichen. InBeispiel 20.3, „Eintrag zur Deaktivierung der Protokollierung“ (S. 413) sehen Sie dieeinfachste Form eines solchen Eintrags, bei dem jegliche Protokollierung unterdrücktwird.

Beispiel 20.3 Eintrag zur Deaktivierung der Protokollierunglogging { category default { null; };};

20.4.3 ZoneneinträgeBeispiel 20.4 Zoneneintrag für meine-domaene.dezone "meine-domaene.de" in { type master; file "meine-domaene.zone"; notify no; };

Geben Sie nach zone den Namen der zu verwaltenden Domäne(meine-domaene.de) an, gefolgt von in und einem Block relevanter Optionen ingeschweiften Klammern, wie in Beispiel 20.4, „Zoneneintrag für meine-domaene.de“(S. 413) gezeigt. Um eine Slave-Zone zu definieren, ändern Sie den Wert von type inslave und geben Sie einen Namenserver an, der diese Zone als master verwaltet

Das Domain Name System (DNS) 413

Page 414: Suse 10.1 Linux Reference De

(dieser kann wiederum ein Slave eines anderen Masters sein), wie in Beispiel 20.5,„Zoneneintrag für andere-domaene.de“ (S. 414) gezeigt.

Beispiel 20.5 Zoneneintrag für andere-domaene.dezone "andere-domaene.de" in { type slave; file "slave/andere-domaene.zone"; masters { 10.0.0.1; }; };

Zonenoptionen:

type master;Durch die Angabe master wird BIND darüber informiert, dass der lokaleNamenserver für die Zone zuständig ist. Dies setzt voraus, dass eine Zonendateiim richtigen Format erstellt wurde.

type slave;Diese Zone wird von einem anderen Namenserver übertragen. Sie muss zusammenmit masters verwendet werden.

type hint;Die Zone. vom Typhintwird zur Festlegung der Root-Namenserver verwendet.Diese Zonendefinition kann unverändert beibehalten werden.

file meine-domaene.zone oder file „slave/andere-domaene.zone“;In diesem Eintrag wird die Datei angegeben, in der sich die Zonendaten für dieDomäne befinden. Diese Datei ist für einen Slave nicht erforderlich, da die betref-fenden Daten von einem anderen Namenserver abgerufen werden. Um zwischenMaster- und Slave-Dateien zu unterscheiden, verwenden Sie das Verzeichnisslavefür die Slave-Dateien.

masters { server-ip-adresse; };Dieser Eintrag ist nur für Slave-Zonen erforderlich. Er gibt an, von welchemNamenserver die Zonendatei übertragen werden soll.

allow-update {! *; };Mit dieser Option wird der externe Schreibzugriff gesteuert, der Clients das Anlegenvon DNS-Einträgen gestatten würde. Dies ist in der Regel aus Sicherheitsgründennicht erstrebenswert. Ohne diesen Eintrag sind überhaupt keine Zonenaktualisie-

414 Referenz

Page 415: Suse 10.1 Linux Reference De

rungen zulässig. Der oben stehende Eintrag hat dieselbe Wirkung, da ! * solcheAktivitäten effektiv unterbindet.

20.5 ZonendateienZwei Arten von Zonendateien sind erforderlich. Eine weist den Hostnamen IP-Adressenzu und die andere macht genau das Gegenteil: Sie stellt einen Hostnamen für eine IP-Adresse bereit.

TIPP: Verwenden des Punktes in Zonendateien

Der Punkt (.) ist in den Zonendateien von entscheidender Bedeutung. WennHostnamen ohne . am Ende angegeben werden, wird die Zone angefügt.Vollständige Hostnamen, die mit einem vollständigen Domänennamen angege-ben werden, müssen mit . abgeschlossen werden, um zu verhindern, dass dieDomäne ein weiteres Mal angefügt wird. Ein fehlender oder falsch platzierterPunkt ist wahrscheinlich die häufigste Ursache von Fehlern bei der Namenser-verkonfiguration.

Der erste zu betrachtende Fall ist die Zonendatei world.zone, die für die Domäneworld.cosmos zuständig ist (siehe Beispiel 20.6, „Datei /var/lib/named/world.zone“(S. 415)).

Beispiel 20.6 Datei /var/lib/named/world.zone$TTL 2Dworld.cosmos. IN SOA gateway root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum

IN NS gateway IN MX 10 sun

gateway IN A 192.168.0.1 IN A 192.168.1.1sun IN A 192.168.0.2moon IN A 192.168.0.3earth IN A 192.168.1.2mars IN A 192.168.1.3www IN CNAME moon

Das Domain Name System (DNS) 415

Page 416: Suse 10.1 Linux Reference De

Zeile 1:$TTL legt die Standardlebensdauer fest, die für alle Einträge in dieser Datei geltensoll. In diesem Beispiel sind die Einträge zwei Tage lang gültig (2 D).

Zeile 2:Hier beginnt der SOA (Start of Authority)-Steuereintrag:

• Der Name der zu verwaltenden Datei ist world.cosmos an der ersten Stelle.Dieser Eintrag endet mit ., da anderenfalls die Zone ein zweites Mal angefügtwürde. Alternativ kann hier @ eingegeben werden. In diesem Fall wird die Zoneaus dem entsprechenden Eintrag in /etc/named.conf extrahiert.

• Nach IN SOA befindet sich der Name des Namenservers, der als Master fürdiese Zone fungiert. Der Name wird von gateway zugateway.world.cosmos erweitert, da er nicht mit . endet.

• Es folgt die E-Mail-Adresse der für diesen Namenserver zuständigen Person. Dadas Zeichen @ bereits eine besondere Bedeutung hat, wird hier stattdessen . ein-gegeben. Statt [email protected] muss der Eintragroot.world.cosmos. lauten. Der Punkt (.) am Ende muss stehen, damitnicht die Zone angefügt wird.

• Durch ( werden alle Zeilen bis einschließlich ) in den SOA-Eintrag aufgenom-men.

Zeile 3:Die Seriennummer (serial) ist eine beliebige Nummer, die sich bei jederÄnderung der Datei erhöht. Sie wird benötigt, um die sekundären Namenserver(Slave-Server) über Änderungen zu informieren. Hierfür hat sich eine 10-stelligeNummer aus Datum und Ausführungsnummer in der Form JJJJMMMTTNN alsübliches Format etabliert.

Zeile 4:Die Aktualisierungsrate (refresh) gibt das Zeitintervall an, in dem die sekundärenNamenserver die Seriennummer (serial) der Zone überprüfen. In diesem Fallbeträgt dieses Intervall einen Tag.

416 Referenz

Page 417: Suse 10.1 Linux Reference De

Zeile 5:Die Wiederholungsrate (retry) gibt das Zeitintervall an, nach dem ein sekundärerNamenserver bei einem Fehler erneut versucht, Kontakt zum primären Serverherzustellen. In diesem Fall sind dies zwei Stunden.

Zeile 6:Die Ablaufzeit (expiry) gibt den Zeitraum an, nach dem ein sekundärer Serverdie im Cache gespeicherten Daten verwirft, wenn er keinen erneuten Kontakt zumprimären Server herstellen konnte. In diesem Fall ist dies eine Woche.

Zeile 7:Die letzte Angabe im SOA-Eintrag gibt die negative Cache-Lebensdauernegativecaching TTL an – die Zeitdauer, die Ergebnisse nicht aufgelöster DNS-Abfragenvon anderen Servern im Cache gespeichert werden können.

Zeile 9:IN NS gibt den für diese Domäne verantwortlichen Namenserver an. gatewaywird zu gateway.world.cosmos erweitert, da es nicht mit . endet. Es kannmehrere solche Zeilen geben – eine für den primären und jeweils eine für jedensekundären Namenserver. Wenn notify in /etc/named.conf nicht auf nogesetzt ist, werden alle hier aufgeführten Namenserver über die Änderungen anden Zonendaten informiert.

Zeile 10:Der MX-Eintrag gibt den Mailserver an, der E-Mails für die Domäneworld.cosmos annimmt, verarbeitet und weiterleitet. In diesem Beispiel ist diesder Host sun.world.cosmos. Die Zahl vor dem Hostnamen ist der Präferenz-wert. Wenn mehrere MX-Einträge vorhanden sind, wird zunächst der Mailservermit dem kleinsten Wert verwendet. Wenn die Mailzustellung an diesen Server nichtmöglich ist, wird ein Versuch mit dem nächsthöheren Wert unternommen.

Zeilen 12–17:Dies sind die eigentlichen Adresseinträge, in denen den Hostnamen eine odermehrere IP-Adressen zugewiesen werden. Die Namen sind hier ohne . aufgeführt,da sie ihre Domäne nicht enthalten. Daher werden sie alle um world.cosmosergänzt. Dem Host-Gateway (gateway) werden zwei IP-Adressen zugewiesen,weil er zwei Netzwerkkarten aufweist. Bei jeder traditionellen Hostadresse (IPv4)wird der Eintrag mitA gekennzeichnet. Wenn es sich um einer IPv6-Adresse handelt,wird der Eintrag mit A6 gekennzeichnet. Das frühere Token für IPv6-Adressenwar AAAA. Dieses ist inzwischen veraltet.

Das Domain Name System (DNS) 417

Page 418: Suse 10.1 Linux Reference De

ANMERKUNG: A6-Syntax

Der A6-Eintrag weicht in seiner Syntax ein wenig vom AAAA-Eintrag ab.Aufgrund der Möglichkeit einer Fragmentierung müssen Informationen zufehlenden Bits vor der Adresse angegeben werden. Sie müssen dieseInformationen angeben, selbst wenn Sie vorhaben, eine völlig unfragmen-tierte Adresse zu verwenden. Beispiel: Ein alter AAAA-Datensatz mit folgen-der Syntax:pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

Hier müssen Sie im A6-Format Informationen zu fehlenden Bits hinzufügen.Da das obige Beispiel vollständig ist (es fehlen keine Bits), lautet das A6-Format des Eintrags:pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

Verwenden Sie keine IPv4-Adressen mit IPv6-Zuordnung. Wenn ein Hosteine IPv4-Adresse aufweist. verwendet er einen A- und keinen A6-Eintrag.

Zeile 18:Der Alias www kann zur Adressierung von mond (CNAME steht für canonical name(kanonischer Name)) verwendet werden.

Die Pseudodomäne in-addr.arpa wird für Reverse-Lookups zur Auflösung vonIP-Adressen in Hostnamen verwendet. Sie wird in umgekehrter Notation an den Netz-werk-Teil der Adresse angehängt. 192.168.1 wird also in1.168.192.in-addr.arpa aufgelöst. Siehe Beispiel 20.7, „Reverse-Lookup“(S. 419).

418 Referenz

Page 419: Suse 10.1 Linux Reference De

Beispiel 20.7 Reverse-Lookup

$TTL 2D1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum

IN NS gateway.world.cosmos.

1 IN PTR gateway.world.cosmos.2 IN PTR earth.world.cosmos.3 IN PTR mars.world.cosmos.

Zeile 1:$TTL definiert die Standard-TTL, die für alle Einträge hier gilt.

Zeile 2:Die Konfigurationsdatei sollte Reverse-Lookup für das Netzwerk 192.168.1.0aktivieren. Angenommen, die Zone heißt 1.168.192.in-addr.arpa, solltesie nicht zu den Hostnamen hinzugefügt werden. Daher werden alle Hostnamen inihrer vollständigen Form eingegeben – mit ihrer Domäne und mit einem Punkt (.)am Ende. Die restlichen Einträge entsprechen den im vorherigen Beispiel(world.cosmos) beschriebenen Einträgen.

Zeilen 3–7:Siehe vorheriges Beispiel für world.cosmos.

Zeile 9:Diese Zeile gibt wieder den für diese Zone verantwortlichen Namenserver an.Diesmal wird der Name allerdings in vollständiger Form mit Domäne und . amEnde eingegeben.

Zeilen 11–13:Dies sind die Zeigereinträge, die auf die IP-Adressen auf den entsprechenden Hostsverweisen. Am Anfang der Zeile wird nur der letzte Teil der IP-Adresse eingegeben,ohne . am Ende. Wenn daran die Zone angehängt wird (ohne .in-addr.arpa),ergibt sich die vollständige IP-Adresse in umgekehrter Reihenfolge.

Das Domain Name System (DNS) 419

Page 420: Suse 10.1 Linux Reference De

Normalerweise sollten Zonentransfers zwischen verschiedenen Versionen von BINDproblemlos möglich sein.

20.6 Dynamische Aktualisierung vonZonendaten

Der Ausdruck dynamische Aktualisierung bezieht sich auf Vorgänge, bei denen Einträgein den Zonendateien eines Masterservers hinzugefügt, geändert oder gelöscht werden.Dieser Mechanismus wird in RFC 2136 beschrieben. Die dynamische Aktualisierungwird individuell für jeden Zoneneintrag durch Hinzufügen einer optionalenallow-update- bzw. update-policy-Regel konfiguriert. Dynamisch zu aktua-lisierende Zonen sollten nicht von Hand bearbeitet werden.

Die zu aktualisierenden Einträge werden mit dem Befehl nsupdate an den Serverübermittelt. Die genaue Syntax dieses Befehls können Sie der Manual Page für nsupdate(man 8 nsupdate) entnehmen. Aus Sicherheitsgründen sollten solche Aktualisierun-gen mithilfe von TSIG-Schlüsseln durchgeführt werden, wie in Abschnitt 20.7,„Sichere Transaktionen“ (S. 420) beschrieben.

20.7 Sichere TransaktionenSichere Transaktionen können mithilfe von Transaktionssignaturen (TSIGs) durchgeführtwerden, die auf gemeinsam genutzten geheimen Schlüsseln (auch TSIG-Schlüsselgenannt) beruhen. In diesem Abschnitt wird die Erstellung und Verwendung solcherSchlüssel beschrieben.

Sichere Transaktionen werden für die Kommunikation zwischen verschiedenen Servernund für die dynamische Aktualisierung von Zonendaten benötigt. Die Zugriffssteuerungvon Schlüsseln abhängig zu machen, ist wesentlich sicherer, als sich lediglich auf IP-Adressen zu verlassen.

Erstellen Sie einen TSIG-Schlüssel mit folgendem Befehl (Einzelheiten finden Sie unterman dnssec-keygen):dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2

Dadurch werden zwei Schlüssel mit ungefähr folgenden Namen erstellt:

420 Referenz

Page 421: Suse 10.1 Linux Reference De

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key

Der Schlüssel selbst (eine Zeichenkette, wie beispielsweiseejIkuCyyGJwwuN3xAteKgg==) ist in beiden Dateien enthalten. Um ihn fürTransaktionen zu verwenden, muss die zweite Datei (Khost1-host2.+157+34265.key) auf den entfernten Host übertragen werden, möglichst auf eine sichere Weise(z. B. über SCP). Auf dem entfernten Server muss der Schlüssel in der Datei /etc/named.conf enthalten sein, damit eine sichere Kommunikation zwischen host1und host2 möglich ist:key host1-host2. { algorithm hmac-md5; secret ";ejIkuCyyGJwwuN3xAteKgg==;};

WARNUNG: Dateiberechtigungen von /etc/named.conf

Vergewissern Sie sich, dass die Berechtigungen von /etc/named.conf ord-nungsgemäß eingeschränkt sind. Der Standardwert für diese Datei lautet 0640,mit root als Eigentümer und named als Gruppe. Alternativ können Sie dieSchlüssel in eine gesonderte Datei mit speziell eingeschränkten Berechtigungenverschieben, die dann aus /etc/named.conf aufgenommen wird.

Damit Server host1 den Schlüssel für host2 verwenden kann (in diesem Beispielmit der Adresse 192.168.2.3), muss die Datei /etc/named.conf des Serversfolgende Regel enthalten:server 192.168.2.3 { keys { host1-host2. ;};};

Analoge Einträge müssen in die Konfigurationsdateien von host2 aufgenommenwerden.

Fügen Sie TSIG-Schlüssel für alle ACLs (Access Control Lists, Zugriffssteuerungslisten,nicht zu verwechseln mit Dateisystem-ACLs) hinzu, die für IP-Adressen und -Adress-bereiche definiert sind, um Transaktionssicherheit zu gewährleisten. Der entsprechendeEintrag könnte wie folgt aussehen:allow-update { key host1-host2. ;};

Dieses Thema wird eingehender imReferenzhandbuch für BIND-Administratoren (unterupdate-policy) erörtert.

Das Domain Name System (DNS) 421

Page 422: Suse 10.1 Linux Reference De

20.8 DNS-SicherheitDNSSEC (DNS-Sicherheit) wird in RFC 2535 beschrieben. Die für DNSSEC verfüg-baren Werkzeuge werden im BIND-Handbuch erörtert.

Einer als sicher betrachteten Zone müssen ein oder mehrere Zonenschlüssel zugeordnetsein. Diese werden mit dnssec-keygen erstellt, genau wie die Host-Schlüssel.Zurzeit wird der DSA-Verschlüsselungsalgorithmus zum Erstellen dieser Schlüsselverwendet. Die generierten öffentlichen Schlüssel sollten mithilfe einer$INCLUDE-Regel in die entsprechende Zonendatei aufgenommen werden.

Mit dem Befehl dnssec-makekeyset werden alle erstellten Schlüssel zu einemSatz zusammengefasst, der dann auf sichere Weise in die übergeordnete Zone übertragenwerden muss. In der übergeordneten Zone wird der Satz mit dnssec-signkeysigniert. Die durch diesen Befehl erstellten Dateien werden anschließend verwendet,um die Zonen mit dnssec-signzone zu signieren, wodurch wiederum die Dateienerstellt werden, die für die einzelnen Zonen in /etc/named.conf aufgenommenwerden sollen.

20.9 Weitere InformationenWeitere Informationen können Sie dem Referenzhandbuch für BIND-Administratorenaus Paketbind-doc entnehmen, das unter/usr/share/doc/packages/bind/installiert ist. Außerdem könnten Sie die RFCs zurate ziehen, auf die im Handbuchverwiesen wird, sowie die in BIND enthaltenen Manualpages. /usr/share/doc/packages/bind/README.SuSE enthält aktuelle Informationen zu BIND in SUSELinux.

422 Referenz

Page 423: Suse 10.1 Linux Reference De

21Arbeiten mit NISSobald mehrere Unix-Systeme in einem Netzwerk auf gemeinsame Ressourcenzugreifen, muss sichergestellt sein, dass alle Benutzer- und Gruppen-IDs auf allenComputern in diesem Netzwerk identisch sind. Das Netzwerk soll für die Benutzertransparent sein: Sie sollten unabhängig vom verwendeten Computer immer die gleicheUmgebung vorfinden. Möglich wird dies durch die NIS- und NFS-Dienste. NFS dientder Verteilung von Dateisystemen im Netzwerk und wird in Kapitel 22,Verteilte Nutzungvon Dateisystemen mit NFS (S. 433) beschrieben.

NIS (Network Information Service) kann als datenbankähnlicher Dienst verstandenwerden, der den netzwerkübergreifenden Zugriff auf den Inhalt der Dateien /etc/passwd, /etc/shadow und /etc/group ermöglicht. NIS kann auch für andereZwecke eingesetzt werden (beispielsweise, um den Inhalt von Dateien wie /etc/hosts oder /etc/services verfügbar zu machen). Darauf wird hier jedoch nichtim Detail eingegangen, da dies den Rahmen dieser Einführung sprengen würde. FürNIS wird vielfach synonym der Begriff YP (Yellow Pages) verwendet, da es sich beidem Dienst quasi um die „Gelben Seiten“ des Netzwerks handelt.

21.1 Konfigurieren von NIS-ServernZur Verteilung von NIS-Informationen in Netzwerken können Sie entweder einen ein-zelnen Server (einen Master) verwenden, der allen Clients Daten bereitstellt, oder Sieverwenden NIS-Slave-Server, die diese Informationen vom Master anfordern und dannan ihre jeweiligen Clients weiterleiten.

Arbeiten mit NIS 423

Page 424: Suse 10.1 Linux Reference De

• Um nur einen NIS-Server für Ihr Netzwerk zu konfigurieren, fahren Sie mitAbschnitt 21.1.1, „Konfigurieren eines NIS-Master-Servers“ (S. 424) fort.

• Wenn Ihr NIS-Master-Server seine Daten an Slave-Server in anderen Subnetzenexportieren soll, richten Sie den Master-Server ein, wie unter Abschnitt 21.1.1,„Konfigurieren eines NIS-Master-Servers“ (S. 424) beschrieben, und richten Siedie Slave-Server in den Subnetzen ein, wie unter Abschnitt 21.1.2, „Konfiguriereneines NIS-Slave-Servers“ (S. 429) beschrieben.

21.1.1 Konfigurieren einesNIS-Master-Servers

Gehen Sie wie folgt vor, um einen NIS-Master-Server für Ihr Netzwerk zu konfigurieren:

1 Starten Sie YaST → Netzwerkdienste → NIS-Server.

2 Falls Sie nur einen NIS-Server in Ihrem Netzwerk benötigen oder dieser Serverals Master für NIS-Slave-Server fungieren soll, wählen Sie NIS Master Serverinstallieren und einrichten. YaST installiert die erforderlichen Pakete.

TIPP

Wenn bereits NIS-Serversoftware auf Ihrem Computer installiert ist, kli-cken Sie auf NIS Master Server einrichten, um die Erstellung eines NIS-Master-Servers zu initiieren.

424 Referenz

Page 425: Suse 10.1 Linux Reference De

Abbildung 21.1 NIS-Serverkonfiguration

3 Legen Sie die grundlegenden Optionen für das NIS-Setup fest:

a Geben Sie den NIS-Domänennamen ein.

b Definieren Sie, ob der Host auch ein NIS-Client sein soll, an dem sichBenutzer anmelden und auf Daten vom NIS-Server zugreifen können, indemSie Dieser Rechner ist zugleich NIS-Client auswählen.

Wählen Sie Ändern der Passwörter zulassen, um Benutzern in IhremNetzwerk (sowohl lokalen als auch den vom NIS-Server verwaltetenBenutzern) das Ändern ihres Passworts auf dem NIS-Server zu ermöglichen(mit dem Befehl yppasswd).

Dadurch werden die Optionen Ändern des GECOS-Eintrags zulassen undÄndern der Login-SHELL zulassen verfügbar. „GECOS“ bedeutet, dassBenutzer mit dem Befehl ypchfn auch ihre Namens- und Adresseinstel-lungen ändern können. „SHELL“ erlaubt Benutzern, mit dem Befehlypchsh ihre Standard-Shell zu ändern, z. B. von bash zu sh. Die neue Shellmuss einer der vordefinierten Einträge in /etc/shells sein.

Arbeiten mit NIS 425

Page 426: Suse 10.1 Linux Reference De

c Wenn Ihr NIS-Server als Master-Server für NIS-Slave-Server in anderenSubnetzen fungieren soll, wählen Sie Aktiver Slave-Server für NIS vorhan-den.

d Wählen Sie Firewall-Ports öffnen, damit YaST die Firewall-Einstellungenfür den NIS-Server anpasst.

Abbildung 21.2 Konfiguration des Masterservers

e Schließen Sie dieses Dialogfeld mit Weiter oder klicken Sie auf Andereglobale Einstellungen, um zusätzliche Einstellungen vorzunehmen. Andereglobale Einstellungen umfassen das Ändern des Quellverzeichnisses fürden NIS-Server (standardmäßig /etc). Außerdem können hier Passwörterzusammengeführt werden. Die Einstellung sollte auf Ja gesetzt sein, damitdie Dateien (/etc/passwd, /etc/shadow und /etc/group) zumErstellen der Benutzerdatenbank verwendet werden. Legen Sie auch diekleinste Benutzer- und Gruppen-ID fest, die NIS anbieten soll. Klicken Sieauf OK, um Ihre Einstellungen zu bestätigen und in das vorherige Fensterzurückzukehren.

426 Referenz

Page 427: Suse 10.1 Linux Reference De

Abbildung 21.3 Ändern des Verzeichnisses und Synchronisieren von Dateien füreinen NIS-Server

4 Wenn Sie zuvor die Option Aktiver Slave-Server für NIS vorhanden aktivierthaben, geben Sie die entsprechenden Hostnamen der Slaves ein und klicken Sieauf Weiter.

5 Werden keine Slave-Server verwendet, wird die Slave-Konfiguration übersprun-gen und Sie gelangen direkt zum Dialogfeld für die Datenbankkonfiguration.Hier geben Sie die Maps an, d. h. die Teildatenbanken, die vom NIS-Server aufden jeweiligen Client übertragen werden sollen. Die hier angezeigten Voreinstel-lungen sind für die meisten Fälle ausreichend. Schließen Sie das Dialogfeld mitWeiter.

6 Legen Sie fest, welche Maps (Teildatenbanken) verfügbar sein sollen, und klickenSie auf Weiter, um fortzufahren.

Arbeiten mit NIS 427

Page 428: Suse 10.1 Linux Reference De

Abbildung 21.4 Konfiguration der NIS Server Maps

7 Geben Sie die Hosts ein, die den NIS-Server abfragen dürfen. Mithilfe der ent-sprechenden Schaltflächen können Sie Hosts hinzufügen, bearbeiten oder entfer-nen. Legen Sie fest, aus welchen Netzwerken Anforderungen an den NIS-Servergesendet werden dürfen. Dies ist in der Regel nur das interne Netzwerk. In diesemFall sollten die beiden folgenden Einträge vorhanden sein:255.0.0.0 127.0.0.00.0.0.0 0.0.0.0

Der erste Eintrag ermöglicht Verbindungen vom eigenen Host, bei dem es sichum den NIS-Server handelt. Der zweite erlaubt allen Hosts, Anforderungen anden Server zu senden.

428 Referenz

Page 429: Suse 10.1 Linux Reference De

Abbildung 21.5 Einrichten von Anforderungsberechtigungen für einen NIS-Server

8 Klicken Sie auf Beenden, um die Änderungen zu speichern und das Setup abzu-schließen.

21.1.2 Konfigurieren eines NIS-Slave-ServersGehen Sie wie folgt vor, um zusätzliche NIS-Slave-Server in Ihrem Netzwerk zu kon-figurieren:

1 Starten Sie YaST → Netzwerkdienste → NIS-Server.

2 Wählen Sie NIS Slave Server installieren und einrichten und klicken Sie aufWeiter.

TIPP

Wenn bereits NIS-Serversoftware auf Ihrem Computer installiert ist, kli-cken Sie auf NIS Slave Server einrichten, um die Erstellung eines NIS-Slave-Servers zu initiieren.

3 Vervollständigen Sie das grundlegende Setup Ihres NIS-Slave-Servers:

Arbeiten mit NIS 429

Page 430: Suse 10.1 Linux Reference De

Geben Sie die NIS-Domäne ein.a

b Geben Sie den Hostnamen oder die IP-Adresse des Master-Servers ein.

c Aktivieren SieDieser Rechner ist zugleich NIS-Client, wenn Sie Benutzeran-meldungen auf diesem Server ermöglichen möchten.

d Passen Sie die Firewall-Einstellungen mit Ports in Firewall öffnen an.

e Klicken Sie auf Weiter.

4 Geben Sie die Hosts ein, die den NIS-Server abfragen dürfen. Mithilfe der ent-sprechenden Schaltflächen können Sie Hosts hinzufügen, bearbeiten oder entfer-nen. Legen Sie fest, aus welchen Netzwerken Anforderungen an den NIS-Servergesendet werden dürfen. Gewöhnlich sind das alle Hosts. In diesem Fall solltendie beiden folgenden Einträge vorhanden sein:255.0.0.0 127.0.0.00.0.0.0 0.0.0.0

Der erste Eintrag ermöglicht Verbindungen vom eigenen Host, bei dem es sichum den NIS-Server handelt. Der zweite Eintrag ermöglicht allen Hosts, die Zugriffauf das Netzwerk haben, Anforderungen an den Server zu senden.

5 Klicken Sie auf Beenden, um die Änderungen zu speichern und das Setup abzu-schließen.

21.2 Konfigurieren von NIS-ClientsVerwenden Sie das Modul NIS-Client, um eine Arbeitsstation für den Einsatz von NISzu konfigurieren. Legen Sie fest, ob der Host eine statische IP-Adresse hat oder ob ereine Adresse vom DHCP-Server erhält. DHCP kann auch die NIS-Domäne und denNIS-Server angeben. Weitere Informationen zu DHCP finden Sie in Kapitel 23,DHCP(S. 439). Falls eine statische IP-Adresse verwendet wird, geben Sie die NIS-Domäneund den NIS-Server manuell an. Siehe Abbildung 21.6, „Festlegen der Domäne undAdresse eines NIS-Servers“ (S. 431). Suchenweist YaST an, in Ihrem ganzen Netzwerknach einem aktiven NIS-Server zu suchen. Abhängig von der Größe Ihres lokalenNetzwerks kann das ein sehr zeitraubendes Verfahren sein. Broadcast verlangt einenNIS-Server im lokalen Netzwerk, wenn der angegebene Server nicht reagiert.

430 Referenz

Page 431: Suse 10.1 Linux Reference De

Sie können auch mehrere Server angeben, indem Sie ihre Adressen durch Leerzeichengetrennt unter Adressen der NIS-Server angeben.

Abhängig von Ihrer lokalen Installation können Sie auch den Automounter aktivieren.Diese Option installiert bei Bedarf auch zusätzliche Software.

Deaktivieren Sie in den Experteneinstellungen die Option Entfernten Hosts antworten,wenn Hosts nicht abfragen dürfen, welchen Server Ihr Client verwendet. Wenn SieFehlerhafter Server aktivieren, wird der Client für das Empfangen von Antworten voneinem Server aktiviert, der über einen nicht berechtigten Port kommuniziert. WeitereInformationen finden Sie auf der Manualpage man ypbind.

Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie auf Beenden, um sie zuspeichern und zum YaST-Kontrollzentrum zurückzukehren.

Abbildung 21.6 Festlegen der Domäne und Adresse eines NIS-Servers

Arbeiten mit NIS 431

Page 432: Suse 10.1 Linux Reference De
Page 433: Suse 10.1 Linux Reference De

22Verteilte Nutzung vonDateisystemen mit NFSWie bereits in Kapitel 21, Arbeiten mit NIS (S. 423) erwähnt, dient NFS neben NISdazu, ein Netzwerk für den Benutzer transparent zu machen. Durch NFS lassen sichDateisysteme im Netzwerk verteilen. Unabhängig davon, an welchem Terminal dieAnwender angemeldet sind, finden sie stets die gleiche Umgebung vor.

Wie NIS ist NFS ein Client-Server-System. Ein Computer kann beides gleichzeitig sein– er kann Dateisysteme im Netzwerk zur Verfügung stellen (exportieren) und Dateisys-teme anderer Hosts einhängen (importieren).

WICHTIG: DNS-Bedarf

Im Prinzip können alle Exporte allein mit IP-Adressen vorgenommen werden.Es ist jedoch ratsam, über ein funktionierendes DNS-System zu verfügen, umZeitüberschreitungen zu vermeiden. Dies ist zumindest für die Protokollierungerforderlich, weil der mountd-Daemon Reverse-Lookups ausführt.

22.1 Importieren von Dateisystemenmit YaST

Autorisierte Benutzer können NFS-Verzeichnisse von NFS-Servern in ihre eigenenDateibäume einhängen. Dies geschieht am einfachsten mit dem YaST-Modul NFS-Client. Geben Sie nur den Hostnamen des NFS-Servers, das zu importierende Verzeich-nis und den Einhängepunkt an, an dem das Verzeichnis lokal eingehängt werden soll.Diese Eingaben werden im ersten Dialogfeld nach einem Klick auf Hinzufügen einge-

Verteilte Nutzung von Dateisystemen mit NFS 433

Page 434: Suse 10.1 Linux Reference De

geben. Klicken Sie auf Firewall-Port öffnen, um die Firewall zu öffnen und entferntenComputern den Zugriff auf den Dienst zu gewähren. Der Status der Firewall wird nebendem Kontrollkästchen angezeigt. Mit einem Klick auf OK werden Ihre Änderungengespeichert. Siehe Abbildung 22.1, „Konfiguration des NFS-Clients mit YaST“ (S. 434).

Abbildung 22.1 Konfiguration des NFS-Clients mit YaST

22.2 Manuelles Importieren vonDateisystemen

Das manuelle Importieren von Dateisystemen von einem NFS-Server ist sehr einfach.Die einzige Voraussetzung ist, dass ein RPC-Portmapper läuft, der durch die Eingabedes Befehls rcportmap start vom root gestartet werden kann. Sobald dieseVoraussetzung erfüllt ist, können auf den entsprechenden Computer exportierte entfernteDateisysteme analog zu lokalen Festplatten über den Befehl mount im Dateisystemeingehängt werden. Die Syntax ist wie folgt:mount host:remote-path local-path

Wenn beispielsweise Benutzerverzeichnisse vom Rechner sun importiert werden sollen,lautet der Befehl:mount sun:/home /home

434 Referenz

Page 435: Suse 10.1 Linux Reference De

22.3 Exportieren von Dateisystemenmit YaST

Mit YaST können Sie einen Rechner Ihres Netzwerks zu einem NFS-Server machen.Dies ist ein Server, der Verzeichnisse und Dateien an alle Hosts exportiert, die ihmZugriff gewähren. Auf diese Weise können Anwendungen für alle Mitglieder einerGruppe zur Verfügung gestellt werden, ohne dass sie lokal auf deren Hosts installiertwerden müssen. Starten Sie YaST zum Installieren eines solchen Servers und wählenSieNetzwerkdienste→NFS-Server. Es erscheint ein Dialogfeld wie in Abbildung 22.2,„Konfiguration des NFS-Servers“ (S. 435).

Abbildung 22.2 Konfiguration des NFS-Servers

Aktivieren Sie im nächsten Schritt NFS-Server starten und klicken Sie auf Weiter.Geben Sie im oberen Textfeld die zu exportierenden Verzeichnisse an. Legen Sie dar-unter Hosts fest, die darauf Zugriff erhalten sollen. Dieses Dialogfeld ist in Abbil-dung 22.3, „Konfigurieren eines NFS-Servers mit YaST“ (S. 436) abgebildet. Für jedenHost können vier Optionen eingestellt werden: single host, netgroups,wildcards und IP networks. Nähere Erklärungen zu diesen Optionen erhaltenSie durch Eingabe von man exports. Beenden schließt die Konfiguration ab.

Verteilte Nutzung von Dateisystemen mit NFS 435

Page 436: Suse 10.1 Linux Reference De

Abbildung 22.3 Konfigurieren eines NFS-Servers mit YaST

WICHTIG: Automatische Firewall-Konfiguration

Wenn auf Ihrem System eine Firewall aktiviert ist (SuSEfirewall2), passt YaSTderen Konfiguration für den NFS-Server an, indem der nfs-Dienst aktiviertwird, wenn Firewall-Ports öffnen ausgewählt ist.

22.4 Manuelles Exportieren vonDateisystemen

Wenn Sie auf die Unterstützung von YaST verzichten möchten, stellen Sie sicher, dassfolgende Systeme auf dem NFS-Server laufen:

• RPC-Portmapper (portmap)

• RPC-Mount-Daemon (rpc.mountd)

• RPC-NFS-Daemon (rpc.nfsd)

436 Referenz

Page 437: Suse 10.1 Linux Reference De

Damit beim Booten des Systems diese Dienste mithilfe der Skripts/etc/init.d/portmap und /etc/init.d/nfsserver gestartet werden,geben Sie die Befehle insserv /etc/init.d/nfsserver undinsserv /etc/init.d/portmap ein. Definieren Sie zudem in der Konfigura-tionsdatei /etc/exports, welche Dateisysteme an welchen Computer exportiertwerden sollen.

Für jedes zu exportierende Verzeichnis wird eine Zeile für die Informationen dazubenötigt, welche Computer mit welchen Berechtigungen darauf zugreifen dürfen. AlleUnterverzeichnisse eines Verzeichnisses werden ebenfalls automatisch exportiert.Autorisierte Computer werden üblicherweise mit ihren vollständigen Namen (inklusiveder Domänennamen) angegeben, aber es können auch Platzhalter wie * oder ? (dieähnlich wie in der Bash-Shell vervollständigt werden) verwendet werden. Wenn hierkein Computer angegeben wird, kann jeder Computer das Dateisystem mit den angege-benen Rechten importieren.

Die Berechtigungen für das zu exportierende Dateisystem werden nach dem Namendes Computers in Klammern festgelegt. Die wichtigsten Optionen sind in Tabelle 22.1,„Berechtigungen für exportierte Dateisysteme“ (S. 437) beschrieben.

Tabelle 22.1 Berechtigungen für exportierte Dateisysteme

BedeutungOption

Das Dateisystem wird schreibgeschützt exportiert (Standard).ro

Das Dateisystem wird mit Schreib- und Leserechten expor-tiert.

rw

Diese Option bewirkt, dass der Benutzer root eines impor-tierenden Computers für das Dateisystem keine

root_squash

root-Berechtigungen hat. Erreicht wird dies, indem Benut-zern mit der Benutzer-ID 0 (root) die Benutzer-ID 65534zugewiesen wird. Diese Benutzer-ID sollte dem Benutzernobody (Standardeinstellung) zugewiesen sein.

Dem Benutzer mit der ID 0 wird nicht die Benutzer-ID65534 zugewiesen, dieroot-Berechtigungen bleiben gültig.

no_root_squash

Verteilte Nutzung von Dateisystemen mit NFS 437

Page 438: Suse 10.1 Linux Reference De

BedeutungOption

Absolute Links (beginnend mit /) werden in eine Folge von../ umgesetzt. Dies ist nur dann sinnvoll, wenn das gesamteDateisystem eines Computers eingehängt wurde (Standard).

link_relative

Symbolische Links bleiben unverändert.link_absolute

Auf dem Client werden die gleichen Benutzer-IDs verwendetwie auf dem Server (Standard).

map_identity

Client und Server haben keine übereinstimmenden Benutzer-IDs. Durch diese Option wird nfsd angewiesen, eine Konver-

map_daemon

tierungstabelle für die Benutzer-IDs zu erstellen. Vorausset-zung hierfür ist der Daemon ugidd.

Ihre exports-Datei sieht möglicherweise aus wie in Beispiel 22.1, „/etc/exports“(S. 438). /etc/exports wird von mountd und nfsd gelesen. Wenn Sie in dieserDatei eine Änderung vornehmen, starten Sie mountd und nfsd erneut, damit IhreÄnderungen wirksam werden. Dies geschieht ganz einfach überrcnfsserver restart.

Beispiel 22.1 /etc/exports## /etc/exports#/home sun(rw) venus(rw)/usr/X11 sun(ro) venus(ro)/usr/lib/texmf sun(ro) venus(rw)/ earth(ro,root_squash)/home/ftp (ro)# End of exports

22.5 Weitere InformationenInformationen über das Konfigurieren eines NFS-Servers finden Sie in /usr/share/doc/packages/nfs-utils/README und den dort aufgeführten Dokumenten.Die ausführliche technische Dokumentation steht online unter http://nfs.sourceforge.net/ zur Verfügung.

438 Referenz

Page 439: Suse 10.1 Linux Reference De

23DHCPDasDHCP (Dynamic Host Configuration Protocol) dient dazu, Einstellungen in einemNetzwerk zentral von einem Server aus zuzuweisen. Einstellungen müssen also nichtdezentral an einzelnen Arbeitsplatzcomputern konfiguriert werden. Ein für DHCPkonfigurierter Host verfügt nicht über eine eigene statische Adresse. Er konfiguriertsich stattdessen vollständig und automatisch nach den Vorgaben des DHCP-Servers.Wenn Sie auf der Client-Seite den NetworkManager verwenden, brauchen Sie denClient überhaupt nicht zu konfigurieren. Das ist nützlich, wenn Sie in wechselndenUmgebungen arbeiten und nur jeweils eine Schnittstelle aktiv ist. Verwenden Sie Net-workManager nie auf einem Computer, der einen DHCP-Server ausführt.

Zum einen kann ein DHCP-Server so konfiguriert werden, dass er jeden Client anhandder Hardware-Adresse seiner Netzwerkkarte (die in den meisten Fällen unveränderlichist) identifiziert und ständig mit denselben Einstellungen versorgt, sobald der Clienteine Verbindung herstellt. Zum anderen kann DHCP aber auch so konfiguriert werden,dass der Server jedem Client, der eine Verbindung zu ihm herstellt, eine Adresse auseinem dafür vorgesehenen Adresspool dynamisch zuweist. In diesem Fall versucht derDHCP-Server, dem Client bei jeder Anforderung dieselbe Adresse zuzuweisen - auchüber einen längeren Zeitraum hinweg. Das ist nur möglich, wenn die Anzahl der Clientsim Netzwerk nicht die Anzahl der Adressen übersteigt.

DHCP erleichtert Systemadministratoren das Leben. Alle (selbst umfangreiche)Änderungen der Netzwerkadressen oder der -konfiguration können zentral in derKonfigurationsdatei des DHCP-Servers vorgenommen werden. Dies ist sehr viel kom-fortabler als das Neukonfigurieren zahlreicher Arbeitsstationen. Außerdem können vorallem neue Computer sehr einfach in das Netzwerk integriert werden, indem sie ausdem Adresspool eine IP-Adresse zugewiesen bekommen. Das Abrufen der entsprechen-

DHCP 439

Page 440: Suse 10.1 Linux Reference De

den Netzwerkeinstellungen von einem DHCP-Server ist auch besonders interessant fürNotebooks, die regelmäßig in unterschiedlichen Netzwerken verwendet werden.

Neben IP-Adresse und Netzmaske werden dem Client nicht nur der Computer- undDomänenname, sondern auch das zu verwendende Gateway und die Adressen derNamenserver mitgeteilt. Im Übrigen können auch etliche andere Parameter zentralkonfiguriert werden, z. B. ein Zeitserver, von dem die Clients die aktuelle Uhrzeitabrufen können, oder ein Druckserver.

23.1 Konfigurieren einesDHCP-Servers mit YaST

Beim ersten Starten des Moduls werden Sie von einem Assistenten aufgefordert, einigegrundlegende Entscheidungen hinsichtlich der Serveradministration zu treffen. NachAbschluss der anfänglichen Konfiguration ist eine grundlegende Serverkonfigurationverfügbar, die für einfache Szenarien ausreichend ist. Komplexere Konfigurationsauf-gaben können im Expertenmodus ausgeführt werden.

KartenauswahlIm ersten Schritt ermittelt YaST die in Ihr System eingebundenen Netzwerkschnitt-stellen und zeigt sie anschließend in einer Liste an. Wählen Sie in dieser Liste dieSchnittstelle aus, auf der der DHCP-Server lauschen soll, und klicken Sie aufHinzufügen. Wählen Sie anschließend die OptionFirewall für gewählte Schnittstelleöffnen, um die Firewall für diese Schnittstelle zu öffnen. Siehe Abbildung 23.1,„DHCP-Server: Kartenauswahl“ (S. 441).

440 Referenz

Page 441: Suse 10.1 Linux Reference De

Abbildung 23.1 DHCP-Server: Kartenauswahl

Globale EinstellungenIn den Eingabefeldern legen Sie die Netzwerkinformationen fest, die jeder vondiesem DHCP-Server verwaltete Client erhalten soll. Diese sind: Domänenname,Adresse eines Zeitservers, Adressen der primären und sekundären Namenserver,Adressen eines Druck- und WINS-Servers (für gemischte Netzwerkumgebungenmit Windows- und Linux-Clients), Gateway-Adressen und Leasing-Zeit. SieheAbbildung 23.2, „DHCP-Server: Globale Einstellungen“ (S. 442).

DHCP 441

Page 442: Suse 10.1 Linux Reference De

Abbildung 23.2 DHCP-Server: Globale Einstellungen

Dynamisches DHCPIn diesem Schritt konfigurieren Sie die Vergabe der dynamischen IP-Adressen anClients. Hierzu legen Sie einen Bereich von IP-Adressen fest, in dem die zu verge-benden Adressen der DHCP-Clients liegen dürfen. Alle zu vergebenden Adressenmüssen unter eine gemeinsame Netzmaske fallen. Legen Sie abschließend dieLeasing-Zeit fest, für die ein Client seine IP-Adresse behalten darf, ohne eineVerlängerung der Leasing-Zeit beantragen zu müssen. Legen Sie optional auch diemaximale Leasing-Zeit fest, für die eine bestimmte IP-Adresse auf dem Server füreinen bestimmten Client reserviert bleibt. Siehe Abbildung 23.3, „DHCP-Server:Dynamisches DHCP“ (S. 443).

442 Referenz

Page 443: Suse 10.1 Linux Reference De

Abbildung 23.3 DHCP-Server: Dynamisches DHCP

Fertigstellen der Konfiguration und Auswahl des StartmodusNachdem Sie den dritten Teil des Konfigurationsassistenten abgeschlossen haben,gelangen Sie in ein letztes Dialogfeld, das sich mit den Startoptionen des DHCP-Servers befasst. Hier können Sie festgelegen, ob der DHCP-Server automatischbeim Booten des Systems oder bei Bedarf manuell (z. B. zu Testzwecken) gestartetwerden soll. Klicken Sie aufBeenden, um die Konfiguration des Servers abzuschlie-ßen. Siehe Abbildung 23.4, „DHCP-Server: Start“ (S. 444).

DHCP 443

Page 444: Suse 10.1 Linux Reference De

Abbildung 23.4 DHCP-Server: Start

23.2 DHCP-SoftwarepaketeFür SUSE Linux stehen sowohl ein DHCP-Server als auch -Clients bereit. Der vomInternet Software Consortium (ISC) herausgegebene DHCP-Server dhcpd stellt dieServerfunktionalität zur Verfügung. Client-seitig können Sie zwischen zwei unterschied-lichen DHCP-Clientprogrammen wählen: dhclient (ebenfalls vom ISC) und der DHCPClient Daemon im Paket dhcpcd.

dhcpcd wird von SUSE Linux standardmäßig installiert. Das Programm ist sehr einfachin der Handhabung und wird beim Booten des Computers automatisch gestartet, umnach einem DHCP-Server zu suchen. Es kommt ohne eine Konfigurationsdatei aus undfunktioniert im Normalfall ohne weitere Konfiguration. Für komplexere Situationengreifen Sie auf dhclient von ISC zurück, das sich über die Konfigurationsdatei /etc/dhclient.conf steuern lässt.

23.3 Der DHCP-Server dhcpdDas Kernstück des DHCP-Systems ist der dhcpd-Daemon. Dieser Server leastAdressenund überwacht deren Nutzung gemäß den Vorgaben in der Konfigurationsdatei /etc/

444 Referenz

Page 445: Suse 10.1 Linux Reference De

dhcpd.conf. Über die dort definierten Parameter und Werte stehen dem Systemadmi-nistrator eine Vielzahl von Möglichkeiten zur Verfügung, das Verhalten des Programmsanforderungsgemäß zu beeinflussen. Sehen Sie sich die einfache Beispieldatei /etc/dhcpd.conf in Beispiel 23.1, „Die Konfigurationsdatei „/etc/dhcpd.conf““ (S. 445)an.

Beispiel 23.1 Die Konfigurationsdatei „/etc/dhcpd.conf“default-lease-time 600; # 10 minutesmax-lease-time 7200; # 2 hours

option domain-name "cosmos.all";option domain-name-servers 192.168.1.1, 192.168.1.2;option broadcast-address 192.168.1.255;option routers 192.168.1.254;option subnet-mask 255.255.255.0;

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; range 192.168.1.100 192.168.1.200; }

Diese einfache Konfigurationsdatei reicht bereits aus, damit der DHCP-Server imNetzwerk IP-Adressen zuweisen kann. Bitte achten Sie insbesondere auf die Semikolonsam Ende jeder Zeile, ohne die dhcpd nicht startet.

Die Beispieldatei lässt sich in drei Abschnitte unterteilen. Im ersten Abschnitt wirddefiniert, wie viele Sekunden eine IP-Adresse standardmäßig an einen anfragendenClient geleast wird, bevor dieser eine Verlängerung anfordern sollte(default-lease-time). Hier wird auch festgelegt, wie lange ein Computermaximal eine vom DHCP-Server vergebene IP-Adresse behalten darf, ohne für dieseeine Verlängerung anfordern zu müssen (max-lease-time).

Im zweiten Abschnitt werden einige grundsätzliche Netzwerkparameter global festgelegt:

• Die Zeile option domain-name enthält die Standarddomäne des Netzwerks.

• Mit dem Eintrag option domain-name-servers können Sie bis zu dreiWerte für die DNS-Server angeben, die zur Auflösung von IP-Adressen in Hostna-men (und umgekehrt) verwendet werden sollen. Idealerweise sollten Sie vor demEinrichten von DHCP einen Namenserver auf dem Computer oder im Netzwerkkonfigurieren. Dieser Namenserver sollte für jede dynamische Adresse jeweilseinen Hostnamen und umgekehrt bereithalten. Weitere Informationen zum Konfi-

DHCP 445

Page 446: Suse 10.1 Linux Reference De

gurieren eines eigenen Namenservers finden Sie in Kapitel 20, Das Domain NameSystem (DNS) (S. 399).

• Die Zeile option broadcast-address definiert die Broadcast-Adresse, dieder anfragende Client verwenden soll.

• Mit option routers wird festgelegt, wohin der Server Datenpakete schickensoll, die (aufgrund der Adresse von Quell- und Zielhost sowie der Subnetzmaske)nicht im lokalen Netzwerk zugestellt werden können. Gerade bei kleineren Netz-werken ist dieser Router auch meist mit dem Internet-Gateway identisch.

• Mit option subnet-mask wird die den Clients zugewiesene Netzmaskeangegeben.

Im letzten Abschnitt der Datei werden ein Netzwerk und eine Subnetzmaske angegeben.Abschließend muss noch ein Adressbereich gewählt werden, aus dem der DHCP-DaemonIP-Adressen an anfragende Clients vergeben darf. In Beispiel 23.1, „Die Konfigurati-onsdatei „/etc/dhcpd.conf““ (S. 445) können Clients Adressen zwischen192.168.1.10und 192.168.1.20 sowie 192.168.1.100 und 192.168.1.200 zugewiesenwerden.

Nach dem Bearbeiten dieser wenigen Zeilen sollten Sie bereits in der Lage sein, denDHCP-Daemon mit dem Befehl rcdhcpd start zu aktivieren. Der DHCP-Daemonist sofort einsatzbereit. Mit dem Befehl rcdhcpd check-syntax können Sie einekurze Überprüfung der Konfigurationsdatei vornehmen lassen. Sollte wider Erwartenein Problem mit der Konfiguration auftreten (z. B. der Server bricht mit einem Fehlerab oder gibt beim Starten nicht done zurück), finden Sie in der zentralen Systemproto-kolldatei/var/log/messagesmeist ebenso Informationen dazu wie auf Konsole 10( Strg + Alt + F10 ).

Auf einem SUSE Linux-Standardsystem wird der DHCP-Daemon aus Sicherheitsgrün-den in einer chroot-Umgebung gestartet. Damit der Daemon die Konfigurationsdateienfinden kann, müssen diese in die chroot-Umgebung kopiert werden. In der Regel müssenSie dazu nur den Befehl rcdhcpd start eingeben, um die Dateien automatisch zukopieren.

446 Referenz

Page 447: Suse 10.1 Linux Reference De

23.3.1 Clients mit statischen IP-AdressenDHCP lässt sich auch verwenden, um einem bestimmten Client eine vordefinierte sta-tische Adresse zuzuweisen. Solche expliziten Adresszuweisungen haben Vorrang vordynamischen Adressen aus dem Pool. Im Unterschied zu den dynamischen verfallendie statischen Adressinformationen nie, z. B. wenn nicht mehr genügend freie Adressenzur Verfügung stehen und deshalb eine Neuverteilung unter den Clients erforderlichist.

Zur Identifizierung eines mit einer statischen Adresse konfigurierten Clients verwendetdhcpd die Hardware-Adresse. Dies ist eine global eindeutige, fest definierte Zahl aussechs Oktettpaaren, über die jedes Netzwerkgerät verfügt, z. B.00:00:45:12:EE:F4.Werden die entsprechenden Zeilen, wie z. B. in Beispiel 23.2, „Ergänzungen zur Kon-figurationsdatei“ (S. 447) zur Konfigurationsdatei von Beispiel 23.1, „Die Konfigurati-onsdatei „/etc/dhcpd.conf““ (S. 445) hinzugefügt, weist der DHCP-Daemon dem ent-sprechenden Client immer dieselben Daten zu.

Beispiel 23.2 Ergänzungen zur Konfigurationsdateihost earth {hardware ethernet 00:00:45:12:EE:F4;fixed-address 192.168.1.21;}

Der Name des entsprechenden Clients (host Hostname, hier earth) wird in dieerste Zeile und die MAC-Adresse wird in die zweite Zeile eingegeben. Auf Linux-Hostskann die MAC-Adresse mit dem Befehl iplink show gefolgt vom Netzwerkgerät(z. B. eth0) ermittelt werden. Die Ausgabe sollte in etwa wie folgt aussehen:link/ether 00:00:45:12:EE:F4

Im vorherigen Beispiel wird also dem Client, dessen Netzwerkkarte die MAC-Adresse00:00:45:12:EE:F4 hat, automatisch die IP-Adresse 192.168.1.21 und derHostname „earth“ zugewiesen. Als Hardwaretyp kommt heutzutage in aller Regelethernet zum Einsatz, wobei durchaus auch das vor allem bei IBM-Systemen häufigzu findende token-ring unterstützt wird.

DHCP 447

Page 448: Suse 10.1 Linux Reference De

23.3.2 Besonderheiten bei der SUSELinux-Version

Aus Sicherheitsgründen enthält bei SUSE Linux der DHCP-Server von ISC den non-root/chroot-Patch von Ari Edelkind. Damit kann dhcpd unter der Benutzer-ID nobodyund in einer chroot-Umgebung (/var/lib/dhcp) ausgeführt werden. Um dies zuermöglichen, muss sich die Konfigurationsdateidhcpd.conf im Verzeichnis/var/lib/dhcp/etc befinden. Sie wird vom Init-Skript beim Start automatisch dorthinkopiert.

Dieses Verhalten lässt sich über Einträge in der Datei /etc/sysconfig/dhcpdsteuern. Um den dhcpd ohne chroot-Umgebung laufen zu lassen, setzen Sie die VariableDHCPD_RUN_CHROOTED in der Datei /etc/sysconfig/dhcpd auf „no“.

Damit der dhcpd auch in der chroot-Umgebung Hostnamen auflösen kann, müssenaußerdem einige weitere Konfigurationsdateien kopiert werden:

• /etc/localtime

• /etc/host.conf

• /etc/hosts

• /etc/resolv.conf

Diese Dateien werden beim Starten des Init-Skripts in das Verzeichnis /var/lib/dhcp/etc/ kopiert. Diese Dateien müssen aktualisiert gehalten werden, wenn siedurch ein Skript wie /etc/ppp/ip-up dynamisch modifiziert werden. Falls in derKonfigurationsdatei anstelle von Hostnamen nur IP-Adressen verwendet werden, sindjedoch keine Probleme zu erwarten.

Wenn in Ihrer Konfiguration weitere Dateien in die chroot-Umgebung kopiert werdenmüssen, können Sie diese mit der Variablen DHCPD_CONF_INCLUDE_FILES in derDatei /etc/sysconfig/dhcpd festlegen. Damit der dhcp-Daemon aus der chroot-Umgebung heraus auch nach einem Neustart des Syslog-ng-Daemons weiter protokol-lieren kann, befindet sich der zusätzliche EintragSYSLOGD_ADDITIONAL_SOCKET_DHCP in der Datei /etc/sysconfig/syslog.

448 Referenz

Page 449: Suse 10.1 Linux Reference De

23.4 Weitere InformationenWeitere Informationen zu DHCP finden Sie auf der Website des Internet SoftwareConsortium (http://www.isc.org/products/DHCP/). Weitere Informationenfinden Sie zudem auf den Manualpagesdhcpd,dhcpd.conf,dhcpd.leases unddhcp-options.

DHCP 449

Page 450: Suse 10.1 Linux Reference De
Page 451: Suse 10.1 Linux Reference De

24Zeitsynchronisierung mit NTPDer NTP-(Network Time Protocol-)Mechanismus ist ein Protokoll für die Synchroni-sierung der Systemzeit über das Netzwerk. Erstens kann ein Computer die Zeit voneinem Server abrufen, der als zuverlässige Zeitquelle gilt. Zweitens kann ein Computerselbst für andere Computer im Netzwerk als Zeitquelle fungieren. Es gibt zwei Ziele –das Aufrechterhalten der absoluten Zeit und das Synchronisieren der Systemzeit allerComputer im Netzwerk.

Das Aufrechterhalten der genauen Systemzeit ist in vielen Situationen wichtig. Dieintegrierte Hardware-Uhr (BIOS-Uhr) erfüllt häufig nicht die Anforderungenbestimmter Anwendungen, beispielsweise Datenbanken. Die manuelle Korrektur derSystemzeit würde schwerwiegende Probleme nach sich ziehen; das Zurückstellen kannbeispielsweise zu Fehlfunktionen wichtiger Anwendungen führen. In einem Netzwerkmuss in der Regel die Systemzeit aller Computer synchronisiert werden, von dermanuellen Zeitanpassung wird jedoch dringend abgeraten. xntp stellt einen Mechanismuszur Lösung dieser Probleme bereit. Er passt die Systemzeit ständig anhand zuverlässigerZeitserver im Netzwerk an. Zudem ermöglicht er die Verwaltung lokaler Referenzuhren,beispielsweise funkgesteuerter Uhren.

24.1 Konfigurieren eines NTP-Clientmit YaST

xntp ist so voreingestellt, dass die lokale Computeruhr als Zeitreferenz verwendet wird.Das Verwenden der (BIOS-) Uhr ist jedoch nur eine Ausweichlösung, wenn keinegenauere Zeitquelle verfügbar ist. SUSE Linux ermöglicht die Konfiguration eines

Zeitsynchronisierung mit NTP 451

Page 452: Suse 10.1 Linux Reference De

NTP-Client mit YaST. Für Clients, die SuSEfirewall ausführen, haben Sie die Wahlzwischen der Schnellkonfiguration und der komplexen Konfiguration, da diese Teileines geschützten Intranets sind. Beide Konfigurationstypen werden nachfolgenderläutert.

24.1.1 Schnelle NTP-Client-KonfigurationDie einfache NTP-Client-Konfiguration (Network Services (Netzwerkdienste) → NTPClientNTP-Client) umfasst zwei Dialogfelder. Im ersten Dialogfeld legen Sie den Start-Modus für xntpd und den abzufragenden Server fest. Wenn xntpd automatisch beimBooten des Systems gestartet werden soll, klicken Sie auf Beim Systemstart. Geben Siedann die NTP-Server-Konfiguration an. Klicken Sie auf Use Random Server...(Zufallsserver verwenden), wenn Sie keinen lokalen Zeitserver verwenden können,oder auf Wählen, um in einem zweites Dialogfeld einen geeigneten Zeitserver für IhrNetzwerk auszuwählen.

Abbildung 24.1 YaST: Konfigurieren eines NTP-Client

Geben Sie im Dialogfeld für die detaillierte Serverauswahl an, ob die Zeitsynchronisie-rung anhand eines Zeitservers in Ihrem lokalen Netzwerk (Lokaler NTP-Server) odereines Zeitservers im Internet erfolgen soll, der Ihre Zeitzone verwaltet (ÖffentlicherNTP-Server). Bei einem lokalen Zeitserver klicken Sie auf Lookup, um eine SLP-

452 Referenz

Page 453: Suse 10.1 Linux Reference De

Abfrage für verfügbare Zeitserver in Ihrem Netzwerk zu starten. Wählen Sie den ambesten geeigneten Zeitserver in der Liste der Suchergebnisse aus und schließen Sie dasDialogfeld mit OK. Bei einem öffentlichen Zeitserver wählen Sie in der Liste unterÖffentlicher NTP-Server Ihr Land (Ihre Zeitzone) sowie einen geeigneten Server ausund schließen das Dialogfeld dann mit OK. Im Hauptdialogfeld testen Sie die Verfüg-barkeit des ausgewählten Servers mit Test und schließen das Dialogfeld mit Beenden.

24.1.2 Komplexe NTP-Client-KonfigurationDer Zugriff auf die komplexe Konfiguration eines NTP-Client ist unter KomplexeKonfiguration im Hauptdialogfeld des Moduls NTP-Client möglich (siehe Abbil-dung 24.1, „YaST: Konfigurieren eines NTP-Client“ (S. 452)); zunächst muss jedochwie in der schnellen Konfiguration beschrieben ein Start-Modus ausgewählt werden.

Abbildung 24.2 YaST: Komplexe NTP-Client-Konfiguration

Legen Sie unter Komplexe Konfiguration des NTP-Clients fest, ob xntpd in Chroot-Jailgestartet werden soll. Hierdurch wird die Sicherheit im Falle eines Angriffs über xntpderhöht, da der Angreifer daran gehindert wird, das gesamte System zu beeinträchtigen.MitNTP-Daemon über DHCP konfigurierenwird der NTP-Client so eingerichtet, dasseine Liste der in Ihrem Netzwerk verfügbaren NTP-Server über DHCP (Dynamic HostConfiguration Protocol) abgerufen wird.

Zeitsynchronisierung mit NTP 453

Page 454: Suse 10.1 Linux Reference De

Die Server und anderen Zeitquellen für die Abfrage durch den Client sind im unterenBereich aufgelistet. Bearbeiten Sie diese Liste nach Bedarf mithilfe der Optionen Hin-zufügen, Bearbeiten und Löschen. Mit Protokoll anzeigen können die ProtokolldateienIhres Clients angezeigt werden.

Klicken Sie aufHinzufügen, um eine neue Quelle für Zeitinformationen hinzuzufügen.Wählen Sie im nachfolgenden Dialogfeld den Quellentyp aus, mit dem die Zeitsynchro-nisierung vorgenommen werden soll. Die folgenden Optionen stehen zur Verfügung:

ServerIn einem anderen Dialogfeld können Sie einen NTP-Server auswählen (sieheBeschreibung unter Abschnitt 24.1.1, „Schnelle NTP-Client-Konfiguration“ (S. 452)).Aktivieren Sie Für initiale Synchronisierung verwenden, um die Synchronisierungder Zeitinformationen zwischen dem Server und dem Client auszulösen, wenn dasSystem gebootet wird. In einem Eingabefeld können Sie zusätzliche Optionen fürxntpd angeben. Ziehen Sie bezüglich detaillierter Informationen /usr/share/doc/packages/xntp-doc zurate (Bestandteil des xntp-doc-Pakets).

PeerEin Peer ist ein Computer, mit dem eine symmetrische Beziehung eingerichtetwird: Er fungiert sowohl als Zeitserver wie auch als Client. Wenn Sie einen Peerim selben Netzwerk anstelle eines Servers verwenden möchten, geben Sie dieAdresse des Systems ein. Der Rest des Dialogfelds ist mit dem Dialogfeld Serveridentisch.

FunkuhrWenn eine Funkuhr für die Zeitsynchronisierung in Ihrem System verwendetwerden soll, geben Sie Uhrtyp, Gerätezahl, Gerätename und weitere Optionen indiesem Dialogfeld ein. Klicken Sie auf Treiber-Kalibirierung, um den Treibergenauer einzustellen. Detaillierte Informationen zum Betrieb einer lokalen Funkuhrfinden Sie in/usr/share/doc/packages/xntp-doc/html/refclock.htm.

Ausgangs-BroadcastZeitinformationen und Abfragen können im Netzwerk auch per Broadcast übermit-telt werden. Geben Sie in diesem Dialogfeld die Adresse ein, an die Broadcastsgesendet werden sollen. Die Option für Broadcasts sollte nur aktiviert werden,wenn Ihnen eine zuverlässige Zeitquelle, etwa eine funkgesteuerte Uhr, zur Verfü-gung steht.

454 Referenz

Page 455: Suse 10.1 Linux Reference De

Eingangs-BroadcastWenn Ihr Client die entsprechenden Informationen per Broadcast erhalten soll,geben Sie in diesen Feldern die Adresse ein, von der die jeweiligen Pakete akzeptiertwerden sollen.

24.2 Konfigurieren von xntp imNetzwerk

Die einfachste Art der Verwendung eines Zeitservers im Netzwerk besteht darin, Ser-verparameter festzulegen. Wenn beispielsweise ein Zeitserver mit der Bezeichnungntp.example.com vom Netzwerk aus erreichbar ist, ergänzen Sie die Datei/etc/ntp.conf um seinen Namen, indem Sie die Zeile server ntp.example.comhinzufügen. Wenn Sie weitere Zeitserver hinzufügen möchten, fügen Sie zusätzlicheZeilen mit dem Schlüsselwortserver hinzu. Nach der Initialisierung von xntpd mit demBefehl rcntpd start dauert es etwa eine Stunde, bis die Zeit stabil ist und die Drift-Datei für das Korrigieren der lokalen Computeruhr erstellt wird. Mithilfe der Drift-Datei kann der systematische Fehler der Hardware-Uhr berechnet werden, sobald derComputer eingeschaltet wird. Die Korrektur kommt umgehend zum Einsatz und führtzu einer größeren Stabilität der Systemzeit.

Der NTP-Mechanismus kann auf zwei unterschiedliche Arten als Client verwendetwerden: Erstens kann der Client die Zeit in regelmäßigen Intervallen von einembekannten Server abfragen. Wenn viele Clients vorhanden sind, kann dies zu einerstarken Auslastung des Servers führen. Zweitens kann der Client auf NTP-Broadcastswarten, die von Broadcast-Zeitservern im Netzwerk gesendet werden. Dieser Ansatzhat den Nachteil, dass die Qualität des Servers unbekannt ist und dass ein Server, derfalsche Informationen sendet, zu schwerwiegenden Problemen führen kann.

Wenn die Zeit per Broadcast ermittelt wird, ist der Servername nicht erforderlich. GebenSie in diesem Fall die Zeile broadcastclient in der Konfigurationsdatei /etc/ntp.conf ein. Wenn ein oder mehrere bekannte Zeitserver exklusiv verwendet werdensollen, geben Sie die Namen in der Zeile ein, die mit servers beginnt.

Zeitsynchronisierung mit NTP 455

Page 456: Suse 10.1 Linux Reference De

24.3 Einrichten einer lokalenReferenzuhr

Das Software-Paket xntp enthält Treiber für das Verbinden lokaler Referenzuhren. EineListe unterstützter Uhren steht im Paket xntp-doc in der Datei /usr/share/doc/packages/xntp-doc/html/refclock.htm zur Verfügung. Jeder Treiber istmit einer Nummer verknüpft. In xntp erfolgt die eigentliche Konfiguration mithilfe vonPseudo-IPs. Die Uhren werden so in die Datei /etc/ntp.conf eingegeben, als obsie im Netzwerk vorhanden wären. Zu diesem Zweck werden Ihnen spezielle IP-Adressen im Format 127.127.t.u zugewiesen. Hierbei steht t für den Uhrentypund bestimmt, welcher Treiber verwendet wird; u steht für die Einheit (unit), die dieverwendete Schnittstelle bestimmt.

Im Regelfall verfügen die einzelnen Treiber über spezielle Parameter, die die Konfigu-rationsdetails beschreiben. Die Datei/usr/share/doc/packages/xntp-doc/html/driverNN.htm (NN steht für die Anzahl der Treiber) bietet Informationenzu dem bestimmten Uhrentyp. Für die Uhr vom „Typ 8“ (Funkuhr über serielleSchnittstelle) ist ein zusätzlicher Modus erforderlich, der die Uhr genauer angibt. DasConrad DCF77-Empfängermodul weist beispielsweise Modus 5 auf. Wenn diese Uhrals bevorzugte Referenz verwendet werden soll, geben Sie das Schlüsselwort preferan. Die vollständige server-Zeile für ein Conrad DCF77-Empfängermodul siehtfolgendermaßen aus:server 127.127.8.0 mode 5 prefer

Für andere Uhren gilt dasselbe Muster. Im Anschluss an die Installation desxntp-doc-Pakets steht die Dokumentation für xntp im Verzeichnis /usr/share/doc/packages/xntp-doc/html zur Verfügung. Die Datei/usr/share/doc/packages/xntp-doc/html/refclock.htm enthält Links zu den Treiberseiten,auf denen die Treiberparameter beschrieben werden.

456 Referenz

Page 457: Suse 10.1 Linux Reference De

25LDAP – Ein VerzeichnisdienstBei Lightweight Directory Access Protocol (LDAP) handelt es sich um eine Reihe vonProtokollen für den Zugriff auf und die Verwaltung von Datenverzeichnissen. LDAPkann für viele Zwecke, wie Benutzer- und Gruppenverwaltung, Systemkonfigurations-verwaltung und Adressverwaltung eingesetzt werden. Dieses Kapitel enthält dieGrundlagen zum Verständnis der Funktionsweise von OpenLDAP und zur Verwaltungvon LDAP-Daten mit YaST. Es sind zwar mehrere Implementierungen des LDAP-Protokolls möglich, in diesem Kapitel wird jedoch ausschließlich die OpenLDAP-Implementierung behandelt.

In einer Netzwerkumgebung ist es entscheidend, die wichtigen Informationen strukturiertanzuordnen und schnell zur Verfügung zu stellen. Dies kann mit einem Verzeichnisdiensterreicht werden, der Informationen wie die Gelben Seiten in gut strukturierter undschnell durchsuchbarer Form enthält.

Im Idealfall sind die Daten auf einem zentralen Server in einem Verzeichnis gespeichert,von dem aus sie über ein bestimmtes Protokoll an alle Clients verteilt werden. DieDaten sind so strukturiert, dass zahlreiche Anwendungen darauf zugreifen können. Soist es nicht erforderlich, für jedes einzelne Kalenderwerkzeug und jeden E-Mail-Clienteine eigene Datenbank zu speichern, da stattdessen auf ein zentrales Repository zuge-griffen werden kann. Dadurch wird der Verwaltungsaufwand für die Daten erheblichreduziert. Mithilfe eines offenen und standardisierten Protokolls wie LDAP wirdsichergestellt, das so viele verschiedene Client-Anwendungen wie möglich auf dieseInformationen zugreifen können.

In diesem Kontext ist ein Verzeichnis eine Art Datenbank, die für schnelle und effektiveLese- und Suchvorgänge optimiert wurde:

LDAP – Ein Verzeichnisdienst 457

Page 458: Suse 10.1 Linux Reference De

• Damit mehrere (gleichzeitige) Lesevorgänge möglich sind, ist der Schreibzugriffnur auf eine geringe Anzahl an Aktualisierungen durch den Administratorbeschränkt. Herkömmliche Datenbanken sind speziell dafür bestimmt, ein möglichstgroßes Datenvolumen in kurzer Zeit verarbeiten zu können.

• Da der Schreibzugriff nur eingeschränkt möglich ist, wird ein Verzeichnisdienstzur Verwaltung der statischen Informationen eingesetzt, die sich normalerweisenicht ändern. Daten in einer herkömmlichen Datenbank werden in der Regel häufiggeändert (dynamischeDaten). So werden die Telefonnummern in einem Unterneh-mensverzeichnis beispielsweise nicht so häufig geändert wie die in der Buchhaltungverwalteten Zahlen.

• Bei der Verwaltung statischer Daten werden die vorhandenen Datengruppen nurselten aktualisiert. Beim Arbeiten mit dynamischen Daten, insbesondere wenndaran Datengruppen wie Bankkonten oder Buchhaltung beteiligt sind, kommt derDatenkonsistenz höchste Priorität zu. Wenn ein Betrag an einer Stelle subtrahiertund an einer anderen Stelle addiert werden soll, müssen beide Vorgänge innerhalbeiner Transaktion gleichzeitig erfolgen, um das Gleichgewicht des Datenbestandesaufrecht zu erhalten. Diese Art von Transaktionen wird von Datenbanken unterstützt.In Verzeichnissen ist dies jedoch nicht der Fall. Kurzfristige Inkonsistenzen derDaten sind in Verzeichnissen in gewissem Maße akzeptabel.

Das Design eines Verzeichnisdiensts wie LDAP ist nicht für die Unterstützung solchkomplexer Aktualisierungs- und Abfragemechanismen bestimmt. Alle Anwendungen,die auf diesen Dienst zugreifen, müssen ihn schnell und einfach aufrufen können.

In Unix und außerhalb von Unix gibt es zahlreiche Verzeichnisdienste. Novell NDS,Microsoft ADS, Banyan's Street Talk und der OSI-Standard X.500 sind nur einigeBeispiele. LDAP sollte ursprünglich als schlankere Version von DAP, dem für denZugriff auf X.500 entwickelten Verzeichniszugriffsprotokoll, dienen. Mit dem X.500-Standard wird die hierarchische Anordnung von Verzeichniseinträgen gesteuert.

LDAP ist eine weniger umfassende Version von DAP. Sie können die plattformüber-greifenden Funktionen von LDAP nutzen und Ressourcen sparen, ohne die X.500-Eintragshierarchie zu verlieren. Mithilfe von TCP/IP können Schnittstellen zwischeneiner Anwendung und dem LDAP-Dienst wesentlich leichter hergestellt werden.

In der Zwischenzeit wurde LDAP weiter entwickelt und vermehrt als eigenständigeLösung ohne X.500-Unterstützung eingesetzt. LDAP unterstützt Verweisemit LDAPv3(die Protokollversion im Paket openldap2), sodass die Verwendung von verteilten

458 Referenz

Page 459: Suse 10.1 Linux Reference De

Datenbanken unterstützt wird. Auch die Verwendung von SASL (Simple Authenticationand Security Layer) wurde neu eingeführt.

LDAP ist nicht, wie ursprünglich vorgesehen, auf die Datenabfrage von X.500-Servernbeschränkt. Es ist ein Open Source-Server, slapd, vorhanden, auf dem Objektdaten ineiner lokalen Datenbank gespeichert werden können. Darüber hinaus können über dieErweiterung slurpd mehrere LDAP-Server reproduziert werden.

Das openldap2-Paket besteht aus folgenden Komponenten:

slapdEin eigenständiger LDAPv3-Server, mit dem Objektdaten in einer BerkeleyDB-basierten Datenbank verwaltet werden.

slurpdDieses Programm ermöglicht die Reproduktion von Datenänderungen auf demlokalen LDAP-Server auf anderen im Netzwerk installierten LDAP-Servern.

Zusätzliche Tools für die Systemwartungslapcat, slapadd, slapindex

25.1 LDAP und NISDer Unix-Systemadministrator verwendet für die Namenauflösung und die Datenver-teilung in einem Netzwerk in der Regel NIS. Die in den Dateien unter /etc und inden Verzeichnissen group, hosts, mail, netgroup, networks, passwd,printcap, protocols, rpc und services enthaltenen Konfigurationsdatenwerden über Clients im ganzen Netzwerk verteilt. Diese Dateien können ohne größerenAufwand verwaltet werden, da es sich hierbei um einfache Textdateien handelt. DieVerarbeitung größerer Datenmengen wird aufgrund der fehlenden Strukturierung jedochimmer schwieriger. NIS ist nur für Unix-Plattformen bestimmt. Es eignet sich nicht alsTool zur zentralen Datenadministration in heterogenen Netzwerken.

Im Gegensatz zu NIS ist die Verwendung des LDAP-Diensts nicht auf reine Unix-Netzwerke beschränkt. Windows-Server (ab 2000) unterstützten LDAP als Verzeich-nisdienst. Auch Novell bietet einen LDAP-Dienst an. Die oben erwähnten Anwendungs-aufgaben werden zusätzlich in Nicht-Unix-Systemen unterstützt.

LDAP – Ein Verzeichnisdienst 459

Page 460: Suse 10.1 Linux Reference De

Das LDAP-Prinzip lässt sich auf jede beliebige Datenstruktur anwenden, die zentralverwaltet werden soll. Nachfolgend einige Anwendungsbeispiele:

• Verwendung als Ersatz für den NIS-Dienst

• Mail-Routing (postfix, sendmail)

• Adressbücher für Mail-Clients, wie Mozilla, Evolution und Outlook

• Verwaltung von Zonenbeschreibungen für einen BIND9-Namenserver

• Benutzerauthentifizierung mit Samba in heterogenen Netzwerken

Diese Liste lässt sich erweitern, da LDAP im Gegensatz zu NIS erweiterungsfähig ist.Durch die klar definierte hierarchische Datenstruktur wird die Verwaltung großerDatenmengen erleichtert, da die Daten besser durchsucht werden können.

25.2 Struktur einesLDAP-Verzeichnisbaums

Ein LDAP-Verzeichnis weist eine Baumstruktur auf. Alle Einträge (auch „Objekte“genannt) des Verzeichnisses verfügen über eine festgelegte Position innerhalb dieserHierarchie. Diese Hierarchie wird als Verzeichnisinformationsbaum (DIT, DirectoryInformation Tree) bezeichnet. Der vollständige Pfad zum gewünschten Eintrag, durchden der Eintrag eindeutig identifiziert wird, wird als eindeutiger Name oder DN (Dis-tinguished Name) bezeichnet. Ein einzelner Knoten im Pfad dieses Eintrags wird rela-tiver eindeutiger Name oder RDN (relative distinguished name) genannt. Objektekönnen im Allgemeinen einem von zwei möglichen Typen zugewiesen werden:

ContainerDiese Objekte können wiederum andere Objekte enthalten. Solche Objektklassensind beispielsweise root (das Stammelement des Verzeichnisbaums, das in derRegel nicht vorhanden ist), c (Land), ou (organisatorische Einheit) und dc(Domänenkomponente). Dieses Modell ist mit Verzeichnissen (Ordnern) in einemDateisystem vergleichbar.

460 Referenz

Page 461: Suse 10.1 Linux Reference De

BlattDiese Objekte befinden sich am Ende einer Verzweigung und verfügen nicht überuntergeordnete Objekte. Beispiele: person, InetOrgPerson odergroupofNames.

Auf der obersten Ebene in der Verzeichnishierarchie steht das Stammelement root.Hierin können die untergeordneten Elemente c (Land), dc (Domänenkomponente)oder o (Organisation) enthalten sein. Die Bezüge innerhalb eines LDAP-Verzeichnis-baums werden im folgenden Beispiel verdeutlicht, das in Abbildung 25.1, „Struktureines LDAP-Verzeichnisses“ (S. 461) gezeigt wird.

Abbildung 25.1 Struktur eines LDAP-Verzeichnisses

Das vollständige Diagramm umfasst einen Beispiel-Verzeichnisbaum. Die Einträgeauf allen drei Ebenen werden dargestellt. Jeder Eintrag entspricht einem Feld im Bild.Der vollständige gültige eindeutige Name für den fiktiven SUSE-Mitarbeiter GeekoLinux lautet in diesem Fall cn=Geeko Linux,ou=doc,dc=suse,dc=de. Erwird zusammengesetzt, indem dem RDN cn=Geeko Linux der DN des vorherge-henden Eintrags ou=doc,dc=suse,dc=de hinzugefügt wird.

Die allgemeine Festlegung der Objekttypen, die im DIT gespeichert werden sollen,erfolgt anhand eines Schemas. Der Objekttyp wird durch die Objektklasse bestimmt.Mit der Objektklasse wird festgelegt, welche Attribute des betreffenden Objekts zuge-wiesen werden müssen bzw. können. Daher muss ein Schema die Definitionen allerObjektklassen und Attribute enthalten, die im gewünschten Anwendungsszenario ver-wendet werden. Es gibt einige häufig verwendeten Schemata (siehe RFC 2252 und2256). Es besteht jedoch die Möglichkeit, benutzerdefinierte Schemata zu erstellen

LDAP – Ein Verzeichnisdienst 461

Page 462: Suse 10.1 Linux Reference De

oder mehrere einander ergänzende Schemata zu verwenden, sofern die Umgebung, inder der LDAP-Server verwendet werden soll, dies erfordert.

In Tabelle 25.1, „Häufig verwendete Objektklassen und Attribute“ (S. 462) erhalten Sieeinen kurzen Überblick über die Objektklassen von core.schema undinetorgperson.schema, die im Beispiel verwendet werden, und über die erfor-derlichen Attribute und gültigen Attributwerte.

Tabelle 25.1 Häufig verwendete Objektklassen und Attribute

ErforderlicheAttribute

Beispielein-trag

BedeutungObjektklasse

dcsusedomainComponent (Name derDomänenkomponenten)

dcObject

oudocorganizationalUnit (organisato-rische Einheit)

organizationalU-nit

sn und cnGeeko LinuxinetOrgPerson (personenbezoge-ne Daten für das Intranet oderInternet)

inetOrgPerson

In Beispiel 25.1, „Ausschnitt aus schema.core“ (S. 463) wird ein Ausschnitt einerSchemadirektive mit entsprechenden Erklärungen dargestellt (die Zeilen sind fürErklärungszwecke nummeriert).

462 Referenz

Page 463: Suse 10.1 Linux Reference De

Beispiel 25.1 Ausschnitt aus schema.core#1 attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName')#2 DESC 'RFC2256: organizational unit this object belongs to'#3 SUP name )

...#4 objectclass ( 2.5.6.5 NAME 'organizationalUnit'#5 DESC 'RFC2256: an organizational unit'#6 SUP top STRUCTURAL#7 MUST ou#8 MAY (userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description) )...

Der Attributtyp organizationalUnitName und die entsprechende ObjektklasseorganizationalUnit dienen hier als Beispiel. Zeile 1 enthält den Namen desAttributs, den eindeutigen OID (Object Identifier) (numerisch) und die Abkürzung desAttributs.

Zeile 2 enthält eine kurze mit DESC gekennzeichnete Beschreibung des Attributs. Hierwird der entsprechende RFC, auf dem die Definitition basiert, erwähnt. Der AusdruckSUP in Zeile 3 weist auf einen untergeordneten Attributtyp an, dem das Attribut ange-hört.

Die Definition der Objektklasse organizationalUnit beginnt in Zeile 4 wie dieDefinition des Attributs mit einem OID und dem Namen der Objektklasse. Zeile 5enthält eine kurze Beschreibung der Objektklasse. In Zeile 6 mit dem Eintrag SUPtopwird angegeben, dass diese Objektklasse keiner anderen Objektklasse untergeordnetist. In Zeile 7 werden, mit MUST beginnend, alle Attributtypen aufgeführt, die in Ver-bindung mti einem Objekt vom Typ organizationalUnit verwendet werdenmüssen. In der mit MAY beginnenden Zeile 8 werden die Attribute aufgeführt, die imZusammenhang mit dieser Objektklasse zulässig sind.

Eine sehr gute Einführung in die Verwendung von Schemata finden Sie in der Doku-mentation zu OpenLDAP. Wenn Sie OpenLDAP installiert haben, ist sie unter /usr/share/doc/packages/openldap2/admin-guide/index.html zu finden.

LDAP – Ein Verzeichnisdienst 463

Page 464: Suse 10.1 Linux Reference De

25.3 Serverkonfiguration mitslapd.conf

Das installierte System enthält unter/etc/openldap/slapd.conf eine vollstän-dige Konfigurationsdatei für den LDAP-Server. Die einzelnen Einträge und die erfor-derlichen Anpassungen werden hier kurz beschrieben. Einträge, denen ein Rautenzeichen(#) vorangestellt wurde, sind nicht aktiv. Dieses Kommentarzeichen muss entferntwerden, um sie zu aktivieren.

25.3.1 Globale Direktiven in slapd.confBeispiel 25.2 slapd.conf: Include-Direktive für Schematainclude /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/inetorgperson.schemainclude /etc/openldap/schema/rfc2307bis.schemainclude /etc/openldap/schema/yast.schema

Diese erste in Beispiel 25.2, „slapd.conf: Include-Direktive für Schemata“ (S. 464)dargestellte Direktive in slapd.conf gibt das Schema an, anhand dessen das LDAP-Verzeichnis organisiert wird. Der Eintrag core.schema ist erforderlich. DieserDirektive werden zusätzliche erforderliche Schemata angefügt. Die entsprechendenInformationen finden Sie in der vorhandenen Dokumentation zu OpenLDAP.

Beispiel 25.3 slapd.conf: pidfile und argsfilepidfile /var/run/slapd/slapd.pidargsfile /var/run/slapd/slapd.args

Diese beiden Dateien enthalten die PID (Prozess-ID) und einige Argumente, mit denender slapd-Prozess gestartet wird. Hier müssen keine Änderungen vorgenommenwerden.

464 Referenz

Page 465: Suse 10.1 Linux Reference De

Beispiel 25.4 slapd.conf: Zugriffssteuerung# Sample Access Control# Allow read access of root DSE# Allow self write access# Allow authenticated users read access# Allow anonymous users to authenticate# access to dn="" by * read access to * by self write by users read by anonymous auth## if no access controls are present, the default is:# Allow read by all## rootdn can always write!

In Beispiel 25.4, „slapd.conf: Zugriffssteuerung“ (S. 465) ist der Ausschnitt der Dateislapd.conf dargestellt, mit dem die Zugriffsberechtigungen für das LDAP-Verzeich-nis auf dem Server gesteuert werden. Die hier im globalen Abschnitt von slapd.confvorgenommenen Einträge sind gültig, sofern keine benutzerdefinierten Zugriffsregelnim datenbankspezifischen Abschnitt festgelegt werden. Durch diese Regeln würdendie globalen Deklarationen außer Kraft gesetzt. Wie hier dargestellt, verfügen alleBenutzer über Lesezugriff auf das Verzeichnis, nur der Administrator (rootdn) hatjedoch Schreibberechtigung für dieses Verzeichnis. Die Zugriffssteuerung in LDAP istein hochkomplexer Prozess. Folgende Tipps dienen als Unterstützung:

• Jede Zugriffsregel weist folgende Struktur auf:access to <what> by <who> <access>

• what ist ein Platzhalter für das Objekt oder Attribut, auf das Zugriff gewährt wird.Einzelne Verzweigungen des Verzeichnisses können explizit mit separaten Regelngeschützt werden. Darüber hinaus besteht die Möglichkeit, Bereiche des Verzeich-nisbaums mit einer Regel durch die Verwendung regulärer Ausdrücke zu verarbeiten.slapdwertet alle Regeln in der Reihenfolge aus, in der sie in der Konfigurations-datei angegeben sind. Allgemeine Regeln sollten nach den spezifischeren Regelnangegeben werden – die erste von slapd als gültig eingestufte Regel wirdbewertet und alle folgenden Einträge werden ignoriert.

• Mit who wird festgelegt, wer Zugriff auf die mit what angegebenen Bereicherhalten soll. Hier können reguläre Ausdrücke verwendet werden. Auch hier brichtslapd die Bewertung nach der ersten Übereinstimmung ab, sodass die spezifische-ren Regeln vor den allgemeineren Regeln angegeben werden sollten. Die in

LDAP – Ein Verzeichnisdienst 465

Page 466: Suse 10.1 Linux Reference De

Tabelle 25.2, „Benutzergruppen und ihre Zugriffsberechtigungen“ (S. 466) darge-stellten Einträge sind möglich.

Tabelle 25.2 Benutzergruppen und ihre Zugriffsberechtigungen

UmfangTag

Alle Benutzer ohne Ausnahme*

Nicht authentifizierte („anonyme“) Benutzeranonymous

Authentifizierte Benutzerusers

Mit dem Zielobjekt verbundene Benutzerself

Alle Benutzer, die mit dem regulären Ausdruckübereinstimmen

dn.regex=<regex>

• Mit access wird der Zugriffstyp angegeben. Verwenden Sie die in Tabelle 25.3,„Zugriffstypen“ (S. 466) angegebenen Optionen.

Tabelle 25.3 Zugriffstypen

Umfang des ZugriffsTag

Kein Zugriffnone

Für die Verbindung zum Serverauth

Für Objekt für Vergleichszugriffcompare

Für den Einsatz von Suchfilternsearch

Lesezugriffread

Schreibzugriffwrite

466 Referenz

Page 467: Suse 10.1 Linux Reference De

slapd vergleicht das vom Client angeforderte Zugriffsrecht mit den in slapd.conf gewährten Rechten. Dem Client wird Zugriff gewährt, wenn in den Regelnein höheres als das angeforderte Recht oder gleichwertiges Recht festgelegt ist.Wenn der Client ein höheres Recht als die in den Regeln deklarierten Rechteanfordert, wird ihm der Zugriff verweigert.

In Beispiel 25.5, „slapd.conf: Beispiel für die Zugriffssteuerung“ (S. 467) ist ein Beispieleiner einfachen Zugriffssteuerung dargestellt, die mithilfe von regulären Ausdrückenbeliebig entwickelt werden kann.

Beispiel 25.5 slapd.conf: Beispiel für die Zugriffssteuerungaccess to dn.regex="ou=([^,]+),dc=suse,dc=de" by dn.regex="cn=administrator,ou=$1,dc=suse,dc=de" write by user read by * none

Mit dieser Regel wird festgelegt, dass nur der jeweilige Administrator Schreibzugriffauf einen einzelnen ou-Eintrag erhält. Alle anderen authentifizierten Benutzer verfügenüber Lesezugriff und alle sonstigen Benutzer haben kein Zugriffsrecht.

TIPP: Festlegen von Zugriffsregeln

Falls keine access to-Regel oder keine passende by-Direktive vorhandenist, wird der Zugriff verweigert. Nur explizit deklarierte Zugriffsrechte werdenerteilt. Wenn gar keine Regeln deklariert sind, wird das Standardprinzip mitSchreibzugriff für den Administrator und Lesezugriff für alle anderen Benutzerangewendet.

Detaillierte Informationen hierzu und eine Beispielkonfiguration für LDAP-Zugriffs-rechte finden Sie in der Online-Dokumentation zum installierten openldap2-Paket.

Neben der Möglichkeit, Zugriffsberechtigungen über die zentrale Serverkonfigurations-datei (slapd.conf) zu verwalten, stehen Zugriffssteuerungsinformationen (ACI,Access Control Information) zur Verfügung. Mit ACI können Zugriffsdaten für einzelneObjekte innerhalb des LDAP-Baums gespeichert werden. Diese Art der Zugriffssteue-rung wird noch selten verwendet und von Entwicklern als experimentell betrachtet.Weitere Informationen hierzu erhalten Sie unter http://www.openldap.org/faq/data/cache/758.html.

LDAP – Ein Verzeichnisdienst 467

Page 468: Suse 10.1 Linux Reference De

25.3.2 Datenbankspezifische Direktiven inslapd.conf

Beispiel 25.6 slapd.conf: Datenbankspezifische Direktivendatabase bdb checkpoint 1024 5cachesize 10000suffix "dc=suse,dc=de" rootdn "cn=admin,dc=suse,dc=de" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged.rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq

Der Datenbanktyp, in diesem Fall eine Berkeley-Datenbank, wird in der ersten Zeiledieses Abschnitts festgelegt (siehe Beispiel 25.6, „slapd.conf: DatenbankspezifischeDirektiven“ (S. 468)). Mit checkpointwird die Datenmenge (in KB) festgelegt, dieim Transaktionsprotokoll gespeichert wird, bevor die Daten in die tatsächliche Datenbankgeschrieben werden. Hiermit wird auch die Zeit (in Minuten) bestimmt, die zwischenzwei Schreibvorgängen vergeht. Mit cachesize wird die Anzahl der im Zwischen-speicher der Datenbank gespeicherten Objekte festgelegt. Mit suffixwird angegeben,für welchen Teil des LDAP-Baums dieser Server verantwortlich sein soll. Mit demdarauf folgenden rootdn wird festgelegt, wer für diesen Server über Administrator-rechte verfügt. Der hier angegebene Benutzer muss nicht über einen LDAP-Eintragverfügen und nicht als regulärer Benutzer vorhanden sein. Das Administratorpasswortwird mit rootpw festgelegt. Anstelle von secret kann hier auch der mitslappasswd erstellte Hash-Wert des Administratorpassworts eingegeben werden.Die directory-Direktive gibt das Verzeichnis (im Dateisystem) an, in dem dieDatenbankverzeichnisse auf dem Server gespeichert sind. Die letzte Direktive, indexobjectClass eq veranlasst die Wartung eines Indizes aller Objektklassen. Attribute,nach denen die Benutzer am häufigsten suchen, können hier je nach Erfahrung hinzu-gefügt werden. Die an dieser Stelle für die Datenbank festgelegten benutzerdefiniertenRegeln für Access können anstelle der globalen Access-Regeln verwendet werden.

468 Referenz

Page 469: Suse 10.1 Linux Reference De

25.3.3 Starten und Anhalten der ServerNachdem der LDAP-Server vollständig konfiguriert und alle gewünschten Einträgegemäß dem in Abschnitt 25.4, „Datenbehandlung im LDAP-Verzeichnis“ (S. 469)beschriebenen Muster vorgenommen wurden, starten Sie den LDAP-Server als root,indem Sie den Befehl rcldap start eingeben. Durch Eingabe des Befehls rcldapstop können Sie den Server manuell anhalten. Den Status des laufenden LDAP-Serversfragen Sie mit rcldap status ab.

Mit dem in Abschnitt 8.2.3, „Konfigurieren von Systemdiensten (Runlevel) mit YaST“(S. 205) beschriebenen Runlevel-Editor von YaST kann der Server automatisch beimBooten und Anhalten des Systems gestartet bzw. angehalten werden. Darüber hinausbesteht die Möglichkeit, wie in Abschnitt 8.2.2, „Init-Skripts“ (S. 200) beschrieben, dieentsprechenden Verknüpfungen zu den Start- und Anhaltskripts mit dem Befehlinsserv über die Befehlszeile zu erstellen.

25.4 Datenbehandlung imLDAP-Verzeichnis

In OpenLDAP stehen eine Reihe von Werkzeugen für die Datenverwaltung im LDAP-Verzeichnis zur Verfügung. Die vier wichtigsten Werkzeuge für Hinzufüge-, Lösch-,Such- und Änderungsvorgänge im Datenbestand werden im Folgenden kurz beschrieben.

25.4.1 Einfügen von Daten in einLDAP-Verzeichnis

Sobald die Konfiguration des LDAP-Servers in /etc/openldap/lsapd.confrichtig und einsatzbereit ist (sie enthält die richtigen Einträge fürsuffix,directory,rootdn, rootpw und index), fahren Sie mit der Eingabe von Datensätzen fort. InOpenLDAP steht hierfür der Befehl ldapadd zur Verfügung. Wenn möglich, solltenSie aus praktischen Gründen die Objekte als Bundle in der Datenbank hinzufügen. Zudiesem Zweck kann LDAP das LDIF-Format (LDAP Data Interchange Format) verar-beiten. Bei einer LDIF-Datei handelt es sich um eine einfache Textdatei, die einebeliebige Anzahl an Attribut-Wert-Paaren enthalten kann. In den in slapd.confdeklarierten Schemadateien finden Sie die verfügbaren Objektklassen und Attribute.

LDAP – Ein Verzeichnisdienst 469

Page 470: Suse 10.1 Linux Reference De

Die LDIF-Datei zur Erstellung eines groben Framework für das Beispiel in Abbil-dung 25.1, „Struktur eines LDAP-Verzeichnisses“ (S. 461) würde der Datei in Bei-spiel 25.7, „Beispiel für eine LDIF-Datei“ (S. 470) ähneln.

Beispiel 25.7 Beispiel für eine LDIF-Datei# The SUSE Organizationdn: dc=suse,dc=deobjectClass: dcObjectobjectClass: organizationo: SUSE AG dc: suse

# The organizational unit development (devel)dn: ou=devel,dc=suse,dc=deobjectClass: organizationalUnitou: devel

# The organizational unit documentation (doc)dn: ou=doc,dc=suse,dc=deobjectClass: organizationalUnitou: doc

# The organizational unit internal IT (it)dn: ou=it,dc=suse,dc=deobjectClass: organizationalUnitou: it

WICHTIG: Codierung von LDIF-Dateien

LDAP arbeitet mit UTF-8 (Unicode). Umlaute müssen richtig kodiert werden.Verwenden Sie einen Editor mit UTF-8-Unterstützung, wie beispielsweise Kateoder neuere Versionen von Emacs. Ansonsten sollten Sie Umlaute und andereSonderzeichen vermeiden oder recode verwenden, um die Eingabe in UTF-8neu zu kodieren.

Speichern Sie die Datei mit der Erweiterung .ldif und geben Sie sie mit folgendemBefehl an den Server weiter:ldapadd -x -D <dn of the administrator> -W -f <file>.ldif

-x deaktiviert in diesem Fall die Authentifizierung mit SASL. -D deklariert denBenutzer, der den Vorgang aufruft. Der gültige DN des Administrators wird hier soeingegeben, wie er in slapd.conf konfiguriert wurde. Im aktuellen Beispiel lauteter cn=admin,dc=suse,dc=de. Mit -W wird die Passworteingabe in der Befehls-zeile (unverschlüsselt) umgangen und eine separate Passworteingabeaufforderungaktiviert. Das Passwort wurde zuvor in slapd.confmit rootpw festgelegt. Mit -f

470 Referenz

Page 471: Suse 10.1 Linux Reference De

wird der Dateiname weitergegeben. Detaillierte Informationen zum Ausführen vonldapadd erhalten Sie in Beispiel 25.8, „ldapadd mit example.ldif“ (S. 471).

Beispiel 25.8 ldapadd mit example.ldifldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif

Enter LDAP password: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"

Die Benutzerdaten einzelner Personen können in separaten LDIF-Dateien vorbereitetwerden.In Beispiel 25.9, „LDIF-Daten für Tux“ (S. 471) wird dem neuen LDAP-Ver-zeichnis Tux hinzugefügt.

Beispiel 25.9 LDIF-Daten für Tux# coworker Tuxdn: cn=Tux Linux,ou=devel,dc=suse,dc=deobjectClass: inetOrgPersoncn: Tux LinuxgivenName: Tuxsn: Linuxmail: [email protected]: tuxtelephoneNumber: +49 1234 567-8

Eine LDIF-Datei kann eine beliebige Anzahl an Objekten enthalten. Es können ganzeVerzeichnisverzweigungen oder nur Teile davon in einem Vorgang an den Serverweitergegeben werden, wie im Beispiel der einzelnen Objekte dargestellt. Wennbestimmte Daten relativ häufig geändert werden müssen, wird eine detaillierte Unter-teilung der einzelnen Objekte empfohlen.

25.4.2 Ändern von Daten imLDAP-Verzeichnis

Mit dem Werkzeug ldapmodify kann der Datenbestand geändert werden. Am ein-fachsten können Sie dies durch die Änderung der entsprechenden LDIF-Datei und derWeiterleitung der geänderten Datei an den LDAP-Server erreichen. Wenn Sie dieTelefonnummer des Kollegen Tux von +49 1234 567-8 in +49 1234 567-10

LDAP – Ein Verzeichnisdienst 471

Page 472: Suse 10.1 Linux Reference De

ändern möchten, bearbeiten Sie die LDIF-Datei, wie in Beispiel 25.10, „GeänderteLDIF-Datei tux.ldif“ (S. 472) angegeben.

Beispiel 25.10 Geänderte LDIF-Datei tux.ldif# coworker Tuxdn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modifyreplace: telephoneNumber telephoneNumber: +49 1234 567-10

Importieren Sie die geänderte Datei mit folgendem Befehl in das LDAP-Verzeichnis:ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif

Alternativ können Sie die zu ändernden Attribute direkt an ldapmodifyweitergeben.Die entsprechende Vorgehensweise wird nachfolgend beschrieben:

1. Starten Sie ldapmodify und geben Sie Ihr Passwort ein:ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:

2. Geben Sie die Änderungen ein und halten Sie sich dabei genau in die untenangegebene Syntax-Reihenfolge:dn: cn=Tux Linux,ou=devel,dc=suse,dc=dechangetype: modifyreplace: telephoneNumbertelephoneNumber: +49 1234 567-10

Detaillierte Informationen zu ldapmodify und der zugehörigen Syntax finden Sieauf der Manualpage ldapmodify(1).

25.4.3 Suchen und Lesen von Daten ineinem LDAP-Verzeichnis

Mit ldapsearch steht in OpenLDAP ein Befehlszeilenwerkzeug zum Suchen vonDaten innerhalb eines LDAP-Verzeichnisses und zum Lesen von Daten aus dem Ver-zeichnis zur Verfügung. Eine einfache Abfrage weist folgende Syntax auf:ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"

472 Referenz

Page 473: Suse 10.1 Linux Reference De

Mit der Option -b wird die Suchbasis festgelegt – der Abschnitt des Baums, in demdie Suche durchgeführt werden soll. Im aktuellen Fall lautet er dc=suse,dc=de.Wenn Sie eine feiner abgestufte Suche in speziellen Unterabschnitten des LDAP-Ver-zeichnisses durchführen möchten (beispielsweise nur innerhalb der Abteilung devel),geben Sie diesen Abschnitt mit -b an ldapsearch weiter. Mit -x wird die Aktivie-rung der einfachen Authentifizierung angefordert. (objectClass=*) deklariert,dass alle im Verzeichnis enthaltenen Objekte gelesen werden sollen. Diese Befehlsop-tion kann nach der Erstellung eines neuen Verzeichnisbaums verwendet werden, umzu prüfen, ob alle Einträge richtig aufgezeichnet wurden und ob der Server wiegewünscht reagiert. Weitere Informationen zur Verwendung von ldapsearch findenSie auf der entsprechenden Manualpage (ldapsearch(1)).

25.4.4 Löschen von Daten in einemLDAP-Verzeichnis

Mit ldapdeletewerden unerwünschte Einträge gelöscht. Die Syntax ist ähnlich wiedie der oben beschriebenen Befehle. Wenn Sie beispielsweise den vollständigen Eintragfür Tux Linux löschen möchten, erteilen Sie folgenden Befehl:ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \Linux,ou=devel,dc=suse,dc=de

25.5 YaST LDAP-ClientYaST enthält ein Modul zum Einrichten der LDAP-basierten Benutzerverwaltung.Wenn Sie diese Funktion bei der Installation nicht aktiviert haben, starten Sie das Moduldurch Auswahl von Netzwerkdienste → LDAP-Client. YaST aktiviert alle PAM- undNSS-bezogenen Änderungen, die für LDAP erforderlich sind (siehe nachfolgendeBeschreibung) und installiert die benötigten Dateien.

25.5.1 StandardverfahrenHintergrundwissen über die Prozesse, die auf einem Client-Computer im Hintergrundausgeführt werden, erleichtert Ihnen das Verständnis der Funktionsweise des YaST-Moduls LDAP-Client. Wenn LDAP für die Netzwerkauthentifizierung aktiviert oderdas YaST-Modul aufgerufen wird, werden die Pakete pam_ldap und nss_ldap

LDAP – Ein Verzeichnisdienst 473

Page 474: Suse 10.1 Linux Reference De

installiert und die beiden entsprechenden Konfigurationsdateien angepasst. pam_ldapist das PAM-Modul, das für die Verhandlung zwischen den Anmeldeprozessen unddem LDAP-Verzeichnis als Quelle der Authentifizierungsdaten verantwortlich ist. Dasdedizierte Modul pam_ldap.sowird installiert und die PAM-Konfiguration entspre-chend angepasst (siehe Beispiel 25.11, „An LDAP angepasste Datei pam_unix2.conf“(S. 474)).

Beispiel 25.11 An LDAP angepasste Datei pam_unix2.confauth: use_ldap account: use_ldappassword: use_ldap session: none

Bei der manuellen Konfiguration zusätzlicher Dienste für die Verwendung von LDAPnehmen Sie das PAM-LDAP-Modul in die entsprechende PAM-Konfigurationsdateifür den Dienst in /etc/pam.d auf. Konfigurationsdateien, die bereits für einzelneDienste angepasst sind, finden Sie unter /usr/share/doc/packages/pam_ldap/pam.d/. Kopieren Sie die entsprechenden Dateien in /etc/pam.d.

Die glibc-Namenauflösung über den nsswitch-Mechanismus wird an den Einsatzvon LDAP mit nss_ldap angepasst. Bei der Installation dieses Pakets wird eine neueangepasste Datei nsswitch.conf in /etc/ erstellt. Weitere Informationen zurFunktionsweise von nsswitch.conf finden Sie in Abschnitt 18.6.1, „Konfigurati-onsdateien“ (S. 382). In der Dateinsswitch.confmüssen für die Benutzerverwaltungund -authentifizierung mit LDAP folgende Zeilen vorhanden sein: Siehe Beispiel 25.12,„Anpassungen in nsswitch.conf“ (S. 474).

Beispiel 25.12 Anpassungen in nsswitch.confpasswd: compatgroup: compat

passwd_compat: ldapgroup_compat: ldap

Mit diesen Zeilen wird die Resolver-Bibliothek von glibc angewiesen, zuerst dieentsprechenden Dateien in /etc zu bewerten und zusätzlich die LDAP-Server aufzu-rufen, die als Quellen für Authentifizierungs- und Benutzerdaten dienen. DiesenMechanismus können Sie testen, indem Sie beispielsweise die Inhalte der Benutzerda-tenbank mit dem Befehl getent passwd abrufen. Der zurückgegebene Datensatzenthält eine Übersicht über die lokalen Benutzer des Systems und über alle auf demLDAP-Server gespeicherten Benutzer.

474 Referenz

Page 475: Suse 10.1 Linux Reference De

Um zu verhindern, dass sich reguläre über LDAP verwaltete Benutzer mit ssh oderlogin beim Server anmelden, müssen die Dateien/etc/passwd und/etc/groupeine zusätzliche Zeile enthalten. Hierbei handelt es sich um die Zeile+::::::/sbin/nologin in /etc/passwd und +::: in /etc/group.

25.5.2 Konfiguration des LDAP-ClientNachdem YaST die ersten Anpassungen vonnss_ldap,pam_ldap,/etc/passwdund /etc/group vorgenommen hat, können Sie einfach eine Verbindung zwischendem Client und dem Server herstellen und die Benutzerverwaltung von YaST überLDAP ausführen lassen. Das grundlegende Setup wird in „Grundlegende Konfiguration“(S. 475) beschrieben.

Verwenden Sie für die weitere Konfiguration der YaST-Gruppe und der Benutzerkon-figurationsmodule den YaST LDAP-Client. Dies beinhaltet die Änderung der Standar-deinstellungen für neue Benutzer und Gruppen und der Anzahl und Art von Attributen,die einem Benutzer bzw. einer Gruppe zugewiesen sind. Mit der LDAP-Benutzerver-waltung können Sie Benutzern und Gruppen mehrere und verschiedene Attributezuweisen als bei herkömmlichen Lösungen zur Gruppen- oder Benutzerverwaltung.Dies wird ausführlich in „Konfigurieren des YaST-Moduls zur Benutzer- und Gruppen-verwaltung“ (S. 479) beschrieben.

Grundlegende KonfigurationDas Dialogfeld für die grundlegende Konfiguration des LDAP-Client (Abbildung 25.2,„YaST: Konfiguration des LDAP-Client“ (S. 476)) wird während der Installationgeöffnet, wenn Sie die LDAP-Benutzerverwaltung oder Netzwerkdienste → LDAP-Client im YaST-Kontrollzentrum des installierten Systems auswählen.

LDAP – Ein Verzeichnisdienst 475

Page 476: Suse 10.1 Linux Reference De

Abbildung 25.2 YaST: Konfiguration des LDAP-Client

Gehen Sie wie folgt vor, um die Benutzer Ihres Computers bei einem OpenLDAP-Server zu authentifizieren und die Benutzerverwaltung über OpenLDAP zu aktivieren:

1 Klicken Sie zum Aktivieren von LDAP auf LDAP verwenden. Wählen Sie LDAPverwenden, jedoch Anmeldungen deaktivieren aus, wenn LDAP für die Authen-tifizierung verwendet werden soll, Sie jedoch verhindern möchten, dass sichBenutzer bei diesem Client anmelden.

2 Geben Sie die IP-Adresse des zu verwendenden LDAP-Servers ein.

3 Geben Sie den LDAP Base DN ein, um die Suchbasis auf dem LDAP-Serverauszuwählen.

Wenn Sie den „Base DN“ automatisch abrufen möchten, klicken Sie auf DNholen. YaST prüft dann, ob eine oder mehrere LDAP-Datenbanken an der obenangegebenen Serveradresse vorhanden sind. Wählen Sie den geeigneten „BaseDN“ aus den Suchergebnissen, die YaST liefert.

4 Wenn eine durch TLS oder SSL geschützte Kommunikation mit dem Servererforderlich ist, wählen Sie LDAP TLS/SSL.

476 Referenz

Page 477: Suse 10.1 Linux Reference De

5 Falls auf dem LDAP-Server noch LDAPv2 verwendet wird, muss die Verwendungdieser Protokollversion durch Auswahl von LDAPVersion 2 ausdrücklich aktiviertwerden.

6 Wählen Sie Automounter starten aus, um die entfernten Verzeichnisse, wie bei-spielsweise ein entfernt verwaltetes /home-Verzeichnis auf dem Client einzu-hängen.

7 Klicken Sie zum Anwenden der Einstellungen auf Beenden.

Abbildung 25.3 YaST: Erweiterte Konfiguration

Wenn Sie als Administrator Daten auf einem Server ändern möchten, klicken Sie aufErweiterte Konfiguration. Das folgende Dialogfeld verfügt über zwei Registerkarten.Siehe Abbildung 25.3, „YaST: Erweiterte Konfiguration“ (S. 477):

1 Passen Sie auf der RegisterkarteClient-Einstellungen die folgenden Einstellungenje nach Bedarf an:

a Wenn sich die Suchbasis für Benutzer, Passwörter und Gruppen von der imLDAP Base DN angegebenen globalen Suchbasis unterscheidet, geben Siediese anderen Benennungskontexte unter Benutzerzuordnung, Passwortzu-ordnung und Gruppenzuordnung ein.

LDAP – Ein Verzeichnisdienst 477

Page 478: Suse 10.1 Linux Reference De

b Geben Sie das Passwortänderungsprotokoll an. Die Standardmethode, diebei Passwortänderungen verwendet wird, lautet crypt. Dies bedeutet, dassmit crypt erstellte Passwort-Hashes verwendet werden. DetaillierteInformationen zu dieser und anderen Optionen finden Sie auf der Manual-page pam_ldap.

c Geben Sie die LDAP-Gruppe an, die mit Attribut für Gruppenmitglied ver-wendet werden soll. Der Standardwert ist member.

2 Passen Sie unter Verwaltungseinstellungen folgende Einstellungen an:

a Legen Sie die Basis zum Speichern der Benutzerverwaltungsdaten mitKonfigurations-Base DN fest.

b Geben Sie die entsprechenden Werte für Administrator-DN ein. Dieser DNmuss dem in /etc/openldap/slapd.conf angegebenen Wert fürrootdn entsprechen, damit dieser spezielle Benutzer die auf einem LDAP-Server gespeicherten Daten bearbeiten kann. Geben Sie den vollen DN ein(z. B. cn=admin,dc=suse,dc=de) oder aktivieren Sie Basis-DNanhängen, damit der Basis-DN automatisch angehängt wird, wenn Siecn=admin eingeben.

c Aktivieren Sie die Option Standardkonfigurationsobjekte erzeugen, um dieStandardkonfigurationsobjekte auf dem Server zu erstellen und so dieBenutzerverwaltung über LDAP zu ermöglichen.

d Wenn der Client-Computer als Dateiserver für die Home-Verzeichnisse inIhrem Netzwerk fungieren soll, aktivieren Sie Home-Verzeichnisse aufdiesem Computer.

e Klicken Sie zum Verlassen der Erweiterten Konfiguration aufÜbernehmenund anschließend zum Zuweisen der Einstellungen auf Beenden.

Mit Einstellungen für die Benutzerverwaltung konfigurieren bearbeiten Sie Einträgeauf dem LDAP-Server. Der Zugriff auf die Konfigurationsmodule auf dem Server wirdanschließend entsprechend den auf dem Server gespeicherten ACLs und ACIs gewährt.Befolgen Sie die in „Konfigurieren des YaST-Moduls zur Benutzer- und Gruppenver-waltung“ (S. 479) beschriebenen Schritte.

478 Referenz

Page 479: Suse 10.1 Linux Reference De

Konfigurieren des YaST-Moduls zur Benutzer- undGruppenverwaltungVerwenden Sie den YaST LDAP-Client, um die YaST-Module für die Benutzer- undGruppenverwaltung anzupassen und sie nach Bedarf zu erweitern. Definieren Sie dieVorlagen mit Standardwerten für die einzelnen Attribute, um die Datenregistrierungzu vereinfachen. Die hier vorgenommenen Voreinstellungen werden als LDAP-Objekte im LDAP-Verzeichnis gespeichert. Die Registrierung von Benutzerdaten erfolgtweiterhin über reguläre YaST-Module für die Benutzer- und Gruppenverwaltung. Dieregistrierten Daten werden als LDAP-Objekte auf dem Server gespeichert.

Abbildung 25.4 YaST: Modulkonfiguration

Im Dialogfeld für die Modulkonfiguration (Abbildung 25.4, „YaST: Modulkonfigura-tion“ (S. 479)) können Sie neue Module erstellen, vorhandene Konfigurationsmoduleauswählen und ändern sowie Vorlagen für solche Module entwerfen und ändern.

Zum Erstellen eines neuen Konfigurationsmoduls gehen Sie wie folgt vor:

1 Klicken Sie auf Neu und wählen Sie den gewünschten Modultyp aus. WählenSie für ein Benutzerkonfigurationsmodul suseuserconfiguration undfür eine Gruppenkonfiguration susegroupconfiguration aus.

LDAP – Ein Verzeichnisdienst 479

Page 480: Suse 10.1 Linux Reference De

2 Legen Sie einen Namen für die neue Vorlage fest.

In der Inhaltsansicht wird dann eine Tabelle mit allen in diesem Modul zulässigenAttributen und den entsprechenden zugewiesenen Werten angezeigt. Neben allenfestgelegten Attributen enthält die Liste auch alle anderen im aktuellen Schemazulässigen jedoch momentan nicht verwendeten Attribute.

3 Akzeptieren Sie die voreingestellten Werte oder passen Sie die Standardwertean, die in der Gruppen- und Benutzerkonfiguration verwendet werden sollen,indem Sie Bearbeiten wählen und den neuen Wert eingeben. Ein Modul könnenSie umbenennen, indem Sie einfach das Attribut cn des Moduls ändern. DurchKlicken auf Löschen wird das ausgewählte Modul gelöscht.

4 Mit OK fügen Sie das neue Modul dem Auswahlmenü hinzu.

Mit den YaST-Modulen für die Gruppen- und Benutzerverwaltung werden Vorlagenmit sinnvollen Standardwerten eingebettet. Zum Bearbeiten einer Vorlage für einKonfigurationsmodul führen Sie folgende Schritte aus:

1 Klicken Sie im DialogfeldKonfiguration vonModulen aufVorlage konfigurieren.

2 Legen Sie die Werte der allgemeinen dieser Vorlage zugewiesenen Attributegemäß Ihren Anforderungen fest oder lassen Sie einige nicht benötigte Attributeleer. Leere Attribute werden auf dem LDAP-Server gelöscht.

3 Ändern, löschen oder fügen Sie neue Standardwerte für neue Objekte hinzu(Benutzer- oder Gruppenkonfigurationsobjekte im LDAP-Baum).

480 Referenz

Page 481: Suse 10.1 Linux Reference De

Abbildung 25.5 YaST: Konfiguration einer Objektvorlage

Verbinden Sie die Vorlage mit dem entsprechenden Modul, indem Sie den Wert desAttributs susedefaulttemplate für das Modul auf den DN der angepasstenVorlage setzen.

TIPP

Die Standardwerte für ein Attribut können anhand von anderen Attributenmithilfe einer Variablen anstelle eines absoluten Werts erstellt werden. WennSie beispielsweise einen neuen Benutzer erstellen, wird cn=%sn %givenNameautomatisch anhand der Attributwerte für sn und givenName erstellt.

Nachdem alle Module und Vorlage richtig konfiguriert wurden und zum Ausführenbereit sind, können neue Gruppen und Benutzer wie gewohnt mit YaST registriertwerden.

LDAP – Ein Verzeichnisdienst 481

Page 482: Suse 10.1 Linux Reference De

25.6 Konfigurieren vonLDAP-Benutzern und -Gruppen

Die tatsächliche Registrierung der Benutzer- und Gruppendaten weicht nur geringfügigvon dem Vorgang ohne Verwendung von LDAP ab. Die folgenden kurzen Anweisungenbetreffen die Benutzerverwaltung. Das Verfahren für die Gruppenverwaltung entsprichtdieser Vorgehensweise.

1 Rufen Sie die YaST-Benutzerverwaltung über Sicherheit und Benutzer →Benutzerverwaltung auf.

2 Mit Filter festlegen können Sie die Anzeige der Benutzer auf LDAP-Benutzerbeschränken und das Passwort für „Root-DN“ eingeben.

3 Klicken Sie auf Hinzufügen und geben Sie die Konfiguration für einen neuenBenutzer ein. Daraufhin wird ein Dialogfeld mit vier Registerkarten geöffnet:

a Geben Sie auf der Registerkarte Benutzerdaten den Benutzernamen, dieAnmeldeinformationen und das Passwort an.

b Wählen Sie die Registerkarte Details aus, um die Gruppenmitgliedschaft,die Anmelde-Shell und das Home-Verzeichnis für den neuen Benutzeranzugeben. Falls erforderlich, ändern Sie den Standardwert entsprechendIhren Anforderungen. Die Standardwerte und die Passworteinstellungenkönnen mit den unter „Konfigurieren des YaST-Moduls zur Benutzer- undGruppenverwaltung“ (S. 479) beschriebenen Schritten definiert werden.

c Ändern oder akzeptieren Sie die standardmäßigen Passworteinstellungen.

d Rufen Sie die Registerkarte Plug-Ins auf, wählen Sie das LDAP-Plugin undklicken Sie zum Konfigurieren zusätzlicher LDAP-Attribute für den neuenBenutzer auf Starten (siehe Abbildung 25.6, „YaST: Zusätzliche LDAP-Einstellungen“ (S. 483)).

4 Klicken Sie zum Zuweisen der Einstellungen und zum Beenden der Benutzerkon-figuration auf Übernehmen.

482 Referenz

Page 483: Suse 10.1 Linux Reference De

Abbildung 25.6 YaST: Zusätzliche LDAP-Einstellungen

Im ersten Eingabeformular der Benutzerverwaltung stehen LDAP-Optionen zur Verfü-gung. Hier haben Sie die Möglichkeit, LDAP-Suchfilter auf die Gruppe der verfügbarenBenutzer anzuwenden oder das Modul zur Konfiguration von LDAP-Benutzern und -Gruppen durch die Auswahl von Verwaltung von Benutzern und Gruppen aufzurufen.

25.7 Weitere InformationenKomplexere Themen, wie die SASL-Konfiguration oder das Einrichten eines LDAP-Servers für die Reproduktion, der die Auslastung auf mehrere Slaves verteilt, wurdenin diesem Kapitel bewusst nicht behandelt. Detaillierte Informationen zu diesen beidenThemen erhalten Sie imOpenLDAP 2.2 Administrator's Guide (Verweise siehe unten).

Auf der Website des OpenLDAP-Projekt stehen umfangreiche Dokumentationen fürEinsteiger und fortgeschrittene LDAP-Benutzer zur Verfügung:

OpenLDAP Faq-O-MaticEine umfangreiche Sammlung von Fragen und Antworten zur Installation, Konfi-guration und Verwendung von OpenLDAP. Sie steht unter http://www.openldap.org/faq/data/cache/1.html zur Verfügung.

LDAP – Ein Verzeichnisdienst 483

Page 484: Suse 10.1 Linux Reference De

Quick Start GuideKurze Schritt-für-Schritt-Anleitung zur Installation des ersten LDAP-Servers.Dieses Dokument finden Sie unter http://www.openldap.org/doc/admin22/quickstart.html oder in einem installierten System unter /usr/share/doc/packages/openldap2/admin-guide/quickstart.html.

OpenLDAP 2.2 Administrator's GuideEine detaillierte Einführung in alle wichtigen Aspekte der LDAP-Konfigurationeinschließlich der Zugriffssteuerung und der Verschlüsselung. Dieses Dokumentfinden Sie unter http://www.openldap.org/doc/admin22/ oder ineinem installierten System unter/usr/share/doc/packages/openldap2/admin-guide/index.html.

Informationen zu LDAPDetaillierte allgemeine Einführung in die Grundlagen von LDAP: http://www.redbooks.ibm.com/redbooks/pdfs/sg244986.pdf.

Literatur zu LDAP:

• LDAP System Administration von Gerald Carter (ISBN 1-56592-491-6)

• Understanding and Deploying LDAP Directory Services von Howes, Smith undGood (ISBN 0-672-32316-8)

Das ausführlichste und wichtigste Referenzmaterial zum Thema LDAP sind die entspre-chenden RFCs (Request for Comments), 2251 bis 2256.

484 Referenz

Page 485: Suse 10.1 Linux Reference De

26Der HTTP-Server ApacheMit einem Marktanteil von mehr als 70 % ist der Apache HTTP-Server (Apache) lauteiner http://www.netcraft.com/-Umfrage im November 2005 der weltweitam häufigsten eingesetzte Webserver. Der von Apache Software Foundation (http://www.apache.org/) entwickelte Apache-Server läuft auf fast allen Betriebssystemen.SUSE Linux enthält Apache Version 2.2. In diesem Kapitel erfahren Sie, wie Apacheinstalliert, konfiguriert und eingerichtet wird. Sie lernen SSL, CGI und weitere Modulekennen und erfahren, wie Sie bei Problemen mit dem Webserver vorgehen.

26.1 SchnellstartIn diesem Abschnitt erfahren Sie, wie Sie Apache in kürzester Zeit installieren undeinrichten. Zur Installation und Konfiguration von Apache müssen Sie alsRoot-Benutzer angemeldet sein.

26.1.1 VoraussetzungenVergewissern Sie sich, dass folgende Voraussetzungen erfüllt sind, bevor Sie denApache-Webserver einrichten:

1. Das Netzwerk des Computers ist ordnungsgemäß konfiguriert. Weitere Informa-tionen zu diesem Thema finden Sie unter Kapitel 18,Grundlegendes zu Netzwer-ken (S. 345).

Der HTTP-Server Apache 485

Page 486: Suse 10.1 Linux Reference De

2. Durch Synchronisierung mit einem Zeitserver ist sichergestellt, dass die System-zeit des Computers genau ist. Die exakte Uhrzeit ist für Teile des HTTP-Proto-kolls nötig. Weitere Informationen zu diesem Thema finden Sie unter Kapitel 24,Zeitsynchronisierung mit NTP (S. 451).

3. Die neuesten Sicherheitsaktualisierungen sind installiert. Falls Sie sich nichtsicher sind, führen Sie YaST-Online-Update aus.

4. In der Firewall ist der Standardport des Webservers (Port 80) geöffnet. LassenSie dazu in SUSEFirewall2 den Service HTTP Server (HTTP-Server) in derexternen Zone zu. Diese Konfiguration können Sie in YaST vornehmen. WeitereInformationen erhalten Sie unter „Konfiguration mit YaST“ (S. 116).

26.1.2 InstallationApache ist in der Standardinstallation von SUSE Linux nicht enthalten. Zur Installationstarten Sie YaST und wählen Sie Software → Software Management (Software-Management) aus. Wählen Sie dann Filters (Filter) → Selections (Selektionen) undschließlich Einfacher Webserver mit Apache2 aus. Bestätigen Sie die Installation derabhängigen Pakete, um den Installationsvorgang abzuschließen.

Apache wird mit einer voreingestellten Standardkonfiguration installiert. Hierzu zähltsowohl das Multiprocessing-Modul (MPM) apache2-prefork als aus das ModulPHP5. Weitere Informationen über Module erhalten Sie unter Abschnitt 26.4, „Instal-lieren, Aktivieren und Konfigurieren von Modulen“ (S. 505).

26.1.3 StartUm Apache zu starten und sicherzustellen, dass Apache automatisch bei jedem System-start gestartet wird, öffnen Sie YaST und wählen Sie System → System Services (Run-level) (Systemdienste (Runlevel)) aus. Suchen Sie dann nach apache2 und aktivierenSie den Service. Der Webserver wird sofort gestartet. Wenn Sie Ihre Änderungen nunmit Beenden speichern, wird Apache beim Systemstart automatisch in Runlevel 3 und5 gestartet. Weitere Informationen zu den Runlevels in SUSE Linux und eineBeschreibung des YaST-Runlevel-Editors finden Sie in Abschnitt 8.2.3, „Konfigurierenvon Systemdiensten (Runlevel) mit YaST“ (S. 205).

486 Referenz

Page 487: Suse 10.1 Linux Reference De

Über die Shell starten Sie Apache mit dem Befehl rcapache2 start. Mit demBefehl chkconfig -a apache2 stellen Sie sicher, dass Apache beim Systemstartautomatisch in Runlevel 3 und 5 gestartet wird.

Sofern Sie beim Start von Apache keine Fehlermeldungen erhalten haben, müsste derWebserver nun laufen. Starten Sie einen Webbrowser und öffnen Sie http://localhost/. Nun sollte eine Apache-Testseite mit folgendem Text geöffnet werden:„If you can see this, it means that the installation of the Apache Web server softwareon this system was successful“ (Wenn diese Seite angezeigt wird, wurde die Apache-Webserver-Software erfolgreich auf diesem System installiert). Wenn diese Seite nichtangezeigt wird, lesen Sie den Abschnitt Abschnitt 26.8, „Fehlerbehebung“ (S. 526).

Nachdem der Webserver nun läuft, können Sie eigene Dokumente hinzufügen, dieKonfiguration an Ihre Anforderungen anpassen und weitere Module mit den benötigtenFunktionen installieren.

26.2 Konfigurieren von ApacheIn SUSE Linux kann Apache auf zweierlei Weisen konfiguriert werden: mit YaST odermanuell. Bei der manuellen Konfiguration können Sie mehr Details einstellen, allerdingsmüssen Sie ohne den Komfort der Benutzeroberfläche von YaST zurechtkommen.

WICHTIG: Konfigurationsänderungen

Die meisten Konfigurationsänderungen werden erst nach einem Neustart bzw.nach dem Neuladen von Apache wirksam. Wenn Sie YaST zur Konfigurationverwenden und die Konfiguration mit aktiviertem HTTP-Dienst abschließen,wird der Computer automatisch neu gestartet. Der manuelle Neustart wirdunter Abschnitt 26.3, „Starten und Beenden von Apache“ (S. 503) beschrieben.Für die meisten Konfigurationsänderungen ist allerdings nur eine Aktualisierungmit rcapache2 reload erforderlich.

26.2.1 Manuelle Konfiguration von ApacheWenn Sie den Apache-Webserver manuell konfigurieren möchten, müssen Sie dieKlartext-Konfigurationsdateien als Root-Benutzer bearbeiten.

Der HTTP-Server Apache 487

Page 488: Suse 10.1 Linux Reference De

KonfigurationsdateienDie Konfigurationsdateien von Apache befinden sich in zwei verschiedenen Verzeich-nissen:

• /etc/sysconfig/apache2

• /etc/apache2/

/etc/sysconfig/apache2

/etc/sysconfig/apache2 steuert einige globale Einstellungen von Apache,beispielsweise die zu ladenden Module, die einzuschließenden Konfigurationsdateien,die beim Serverstart zu verwendenden Flags sowie Flags, die der Befehlszeile hinzuge-fügt werden sollen. Die Konfigurationsoptionen dieser Datei sind hinreichend dokumen-tiert und werden daher an dieser Stelle nicht näher erläutert. Für die Konfigurationsan-forderungen eines typischen Webservers dürften die Einstellungen der Datei /etc/sysconfig/apache2 ausreichen.

WICHTIG: Kein SuSEconfig-Modul für Apache

Das SuSEconfig-Modul für Apache wurde in SUSE Linux entfernt. SuSEconfigmuss nach einer Änderung von /etc/sysconfig/apache2 nicht mehrausgeführt werden.

/etc/apache2/

/etc/apache2/ enthält alle Konfigurationsdateien für Apache. In diesem Abschnittwird der Zweck jeder einzelnen Datei erklärt. Jede Datei enthält mehrere Konfigurati-onsoptionen (auch als Direktiven bezeichnet). Die Konfigurationsoptionen dieserDateien sind hinreichend dokumentiert und werden daher an dieser Stelle nicht nähererläutert.

Die Apache-Konfigurationsdateien gliedern sich wie folgt:/etc/apache2/ | |- charset.conv |- conf.d/ | | | |- *.conf

488 Referenz

Page 489: Suse 10.1 Linux Reference De

| |- default-server.conf |- errors.conf |- httpd.conf |- listen.conf |- magic |- mime.types |- mod_*.conf |- server-tuning.conf |- ssl-global.conf |- ssl.* |- sysconfig.d | | | |- global.conf | |- include.conf | |- loadmodule.conf . . | |- uid.conf |- vhosts.d | |- *.conf

Apache-Konfigurationsdateien in /etc/apache2/

charset.convIn dieser Datei ist festgelegt, welche Zeichensätze für die verschiedenen Sprachenverwendet werden. Bearbeiten Sie diese Datei nicht.

conf.d/*.confDies sind Konfigurationsdateien anderer Module. Bei Bedarf können die Konfigu-rationsdateien in Ihre virtuellen Hostkonfigurationen eingeschlossen werden. Bei-spiele finden Sie in vhosts.d/vhost.template. Sie können damit unter-schiedliche Modulsätze für verschiedene virtuelle Hosts bereitstellen.

default-server.confDiese Datei enthält eine globale Konfiguration für virtuelle Hosts mit vernünftigenStandardeinstellungen. Statt die Werte in dieser Datei zu ändern, sollten Sie sie inder virtuellen Hostkonfiguration überschreiben.

errors.confDiese Datei legt fest, wie Apache auf Fehler reagiert. Wenn Sie die Meldungen füralle virtuellen Hosts ändern möchten, können Sie diese Datei bearbeiten. Anderen-falls sollten Sie die entsprechenden Direktiven in den virtuellen Hostkonfigurationenüberschreiben.

Der HTTP-Server Apache 489

Page 490: Suse 10.1 Linux Reference De

httpd.confDies ist die Hauptkonfigurationsdatei des Apache-Servers. Diese Datei sollten Sienicht bearbeiten. Sie enthält in erster Linie Include-Anweisungen und globaleEinstellungen. Globale Einstellungen können Sie in den in diesem Abschnitt auf-gelisteten Konfigurationsdateien ändern. Host-spezifische Einstellungen wieDocumentRoot (absoluter Pfad) ändern Sie in der virtuellen Hostkonfiguration.

listen.confDiese Datei bindet Apache an bestimmte IP-Adressen und Ports. Außerdem konfi-guriert diese Datei das namensbasierte virtuelle Hosting (siehe „Namensbasiertevirtuelle Hosts“ (S. 492)).

magicDiese Datei enthält Daten für das Modul mime_magic, mit dessen Hilfe Apacheden MIME-Typ unbekannter Dateien ermittelt. Bearbeiten Sie diese Datei nicht.

mime.typesDiese Datei enthält die dem System bekannten MIME-Typen (genau genommenist diese Datei eine Verknüpfung mit /etc/mime.types). Bearbeiten Sie dieseDatei nicht. MIME-Typen, die hier nicht aufgelistet sind, sollten Sie der Datei mod_mime-defaults.conf hinzufügen.

mod_*.confDies sind die Konfigurationsdateien der in der Standardinstallation enthaltenenModule. Einzelheiten finden Sie unter Abschnitt 26.4, „Installieren, Aktivierenund Konfigurieren von Modulen“ (S. 505). Die Konfigurationsdateien optionalerModule befinden sich im Verzeichnis conf.d.

server-tuning.confDiese Datei enthält Konfigurationsdirektiven für verschiedene MPMs (sieheAbschnitt 26.4.4, „Multiprocessing-Module“ (S. 510)) und allgemeine Konfigura-tionsoptionen, die sich auf die Leistung von Apache auswirken. Sie können dieseDatei bearbeiten, sollten den Webserver anschließend aber gründlich testen.

ssl-global.conf und ssl.*Diese Dateien enthalten die globale SSL-Konfiguration und die SSL-Zertifikatdaten.Einzelheiten finden Sie unter Abschnitt 26.6, „Einrichten eines sicheren Webserversmit SSL“ (S. 517).

490 Referenz

Page 491: Suse 10.1 Linux Reference De

sysconfig.d/*.confDiese Konfigurationsdateien werden automatisch aus /etc/sysconfig/apache2 konfiguriert. Ändern Sie diese Dateien nicht. Bearbeiten Sie stattdessendie Dateien unter /etc/sysconfig/apache2. Fügen Sie diesem Verzeichnisauch keine weiteren Konfigurationsdateien hinzu.

uid.confDiese Datei gibt die Benutzer- und Gruppen-ID an, unter der Apache läuft. Bear-beiten Sie diese Datei nicht.

vhosts.d/*.confIn diese Dateien sollte Ihre virtuelle Hostkonfiguration gespeichert werden. DasVerzeichnis enthält Vorlagen für virtuelle Hosts mit und ohne SSL. Jede Datei indiesem Verzeichnis mit der Erweiterung .conf ist automatisch Bestandteil derApache-Konfiguration. Einzelheiten finden Sie unter „Virtuelle Hostkonfiguration“(S. 491).

Virtuelle HostkonfigurationVirtueller Host bezieht sich auf die Fähigkeit von Apache, mehrere URIs (UniversalResource Identifiers) vom gleichen physischen Computer aus bedienen zu können. Inanderen Worten: Mehrere Domänen wie www.beispiel.com und www.beispiel.netkönnen von einem einzigen Webserver auf einem physischen Computer ausgeführtwerden.

Virtuelle Hosts werden häufig eingesetzt, um Verwaltungsaufwand (nur ein Webservermuss verwaltet werden) und Hardware-Kosten (für die einzelnen Domänen ist keindedizierter Server erforderlich) zu sparen. Virtuelle Hosts können auf Namen, IP-Adressen oder Ports basieren.

Virtuelle Hosts können mit YaST (siehe „Virtual Hosts (Virtuelle Hosts)“ (S. 499)) odermanuell durch Bearbeitung einer Konfigurationsdatei konfiguriert werden. In SUSELinux ist Apache unter /etc/apache2/vhosts.d/ standardmäßig für eine Kon-figurationsdatei pro virtuellen Host vorbereitet. Alle Dateien in diesem Verzeichnis mitder Erweiterung .conf sind automatisch Bestandteil der Konfiguration. Außerdementhält dieses Verzeichnis eine grundlegende Vorlage für virtuelle Hosts (vhost.template bzw. vhost-ssl.template für einen virtuellen Host mit SSL-Unterstützung).

Der HTTP-Server Apache 491

Page 492: Suse 10.1 Linux Reference De

TIPP: Erstellen Sie immer eine virtuelle Hostkonfiguration.

Es empfiehlt sich, immer eine virtuelle Hostkonfiguration zu erstellen, selbstdann, wenn der Webserver nur eine Domäne enthält. Dadurch fassen Sie nichtnur die gesamte domänenspezifische Konfiguration in einer einzigen Dateizusammen, sondern Sie können auch jederzeit auf eine funktionierende Basis-konfiguration zurückgreifen, indem Sie einfach die Konfigurationsdatei desvirtuellen Hosts verschieben, löschen oder umbenennen. Aus dem gleichenGrund sollten Sie auch für jeden virtuellen Host eine eigene Konfigurationsdateierstellen.

Der <VirtualHost></VirtualHost>-Block enthält die Informationen zu einerbestimmten Domäne. Wenn Apache eine Client-Anforderung für einen definiertenvirtuellen Host empfängt, verwendet es die in diesem Block angegebenen Direktiven.Nahezu alle Direktiven können auch im Kontext eines virtuellen Hosts verwendetwerden. Weitere Informationen über die Konfigurationsdirektiven von Apache findenSie unterhttp://httpd.apache.org/docs/2.0/mod/quickreference.html.

Namensbasierte virtuelle Hosts

Namensbasierte virtuelle Hosts können an jeder IP-Adresse mehrere Websites bedienen.Apache verwendet das Hostfeld in dem vom Client übersandten HTTP-Header, um dieAnforderung mit einem übereinstimmenden ServerName-Eintrag der virtuellenHostdeklarationen zu verbinden. Wird kein übereinstimmenderServerName gefunden,dann wird der erste angegebene virtuelle Host als Standard verwendet.

Die Direktive NameVirtualHost teilt Apache mit, welche IP-Adresse (und optionalwelcher Port) auf Client-Anforderungen mit dem Domänennamen im HTTP-Headerüberwacht werden soll. Diese Option wird in der Konfigurationsdatei/etc/apache2/listen.conf konfiguriert.

Als erstes Argument kann der vollständig qualifizierte Domänenname eingegebenwerden – empfohlen wird aber die IP-Adresse. Das zweite, optionale Argument ist derPort. Dieser ist standardmäßig Port 80 und wird mit der Listen-Direktive konfiguriert.

Sowohl für die IP-Adresse als auch für die Port-Nummer kann ein Platzhalterzeichen(*) eingegeben werden. In diesem Fall werden die Anforderungen an allen Schnittstellenempfangen. IPv6-Adressen müssen in eckigen Klammern eingeschlossen sein.

492 Referenz

Page 493: Suse 10.1 Linux Reference De

Beispiel 26.1 Beispiele für namensbasierte VirtualHost-Einträge# NameVirtualHost IP-Adresse[:Port] NameVirtualHost 192.168.1.100:80 NameVirtualHost 192.168.1.100 NameVirtualHost *:80 NameVirtualHost * NameVirtualHost [2002:c0a8:164::]:80

In einer namensbasierten virtuellen Hostkonfiguration übernimmt dasVirtualHost-Anfangstag die zuvor unter NameVirtualHost deklarierte IP-Adresse (bzw. den vollständig qualifizierten Domänennamen) als Argument. Eine mitder NameVirtualHost-Direktive deklarierte Port-Nummer ist optional.

Anstelle der IP-Adresse wird auch ein Platzhalterzeichen (*) akzeptiert. Diese Syntaxist allerdings nur in Verbindung mit einem Platzhalter in NameVirtualHost *zulässig. IPv6-Adressen müssen in eckige Klammern eingeschlossen werden.

Beispiel 26.2 Namensbasierte VirtualHost-Direktiven<VirtualHost 192.168.1.100:80> ...</VirtualHost>

<VirtualHost 192.168.1.100> ...</VirtualHost>

<VirtualHost *:80> ...</VirtualHost>

<VirtualHost *> ...</VirtualHost>

<VirtualHost [2002:c0a8:164::]> ...</VirtualHost>

IP-basierte virtuelle Hosts

Bei dieser alternativen virtuellen Hostkonfiguration werden auf einem Computer meh-rere IPs eingerichtet. Auf einer Apache-Instanz befinden sich mehrere Domänen, denenjeweils eine eigene IP zugewiesen ist.

Auf dem physischen Server muss für jeden IP-basierten virtuellen Host eine eigene IP-Adresse eingerichtet sein. Falls der Computer nicht über die entsprechende Anzahl an

Der HTTP-Server Apache 493

Page 494: Suse 10.1 Linux Reference De

Netzwerkkarten verfügt, können auch virtuelle Netzwerkschnittstellen verwendet werden(IP-Aliasing).

Das folgende Beispiel zeigt Apache auf einem Computer mit der IP 192.168.0.10,auf dem sich zwei Domänen mit den zusätzlichen IPs 192.168.0.20 und192.168.0.10 befinden. Für jeden virtuellen Server wird ein eigenerVirtualHost-Block benötigt.

Beispiel 26.3 IP-basierte VirtualHost-Direktiven<VirtualHost 192.168.0.20> ...</VirtualHost>

<VirtualHost 192.168.0.30> ...</VirtualHost>

In diesem Beispiel sind nur für die beiden zusätzlichen IP-Adressen (also nicht für192.168.0.10)VirtualHost-Direktiven angegeben. Sollte für192.168.0.10auch eine Listen-Direktive konfiguriert sein, müsste ein eigener IP-basierter Hostfür die HTTP-Anforderungen an diese Schnittstelle eingerichtet werden. Anderenfallsfänden die Direktiven aus der Standardserverkonfiguration (/etc/apache2/default-server.conf) Anwendung.

Basiskonfiguration eines virtuellen Hosts

Die Konfiguration eines virtuellen Hosts sollte mindestens die folgenden Direktivenenthalten. Weitere Optionen finden Sie in /etc/apache2/vhosts.d/vhost.template.

ServerNameDer vollständig qualifizierte Domänenname, unter dem der Host angesprochenwird.

DocumentRootDer absolute Pfad des Verzeichnisses, aus dem Apache die Dateien für diesen Hostbedient. Aus Sicherheitsgründen ist standardmäßig auf das gesamte Dateisystemkein Zugriff möglich. Sie müssen dieses Verzeichnis daher explizit innerhalb einesDirectory-Containers entsperren.

494 Referenz

Page 495: Suse 10.1 Linux Reference De

ServerAdminDie E-Mail-Adresse des Serveradministrators. Diese Adresse ist beispielsweiseauf den von Apache erstellten Fehlerseiten angegeben.

ErrorLogDas Fehlerprotokoll dieses virtuellen Hosts. Ein eigenes Fehlerprotokoll für jedenvirtuellen Host ist zwar nicht zwingend erforderlich, jedoch durchaus üblich, dadies die Fehlersuche erleichtert./var/log/apache2/ ist das Standardverzeich-nis für die Protokolldateien von Apache.

CustomLogDas Zugriffsprotokoll dieses virtuellen Hosts. Ein eigenes Zugriffsprotokoll fürjeden virtuellen Host ist zwar nicht zwingend erforderlich, jedoch durchaus üblich,da dies eine separate Analyse der Zugriffsdaten für jeden einzelnen Host ermöglicht./var/log/apache2/ ist das Standardverzeichnis für die Protokolldateien vonApache.

Wie bereits erwähnt, ist standardmäßig auf das gesamte Dateisystem kein Zugriffmöglich. Daher müssen Sie das DocumentRoot-Verzeichnis, in dem Sie die vonApache zu bedienenden Dateien abgelegt haben, explizit entsperren:<Directory "/srv/www/beispiel.com_htdocs"> Order allow,deny Allow from all </Directory>

Die vollständige Basiskonfiguration eines virtuellen Hosts sieht wie folgt aus:

Beispiel 26.4 Basiskonfiguration eines virtuellen Hosts<VirtualHost 192.168.0.10> ServerName www.beispiel.com DocumentRoot /srv/www/beispiel.com_htdocs ServerAdmin [email protected] ErrorLog /var/log/apache2/www.beispiel.com_log CustomLog /var/log/apache2/www.beispiel.com-access_log common <Directory "/srv/www/beispiel.com"> Order allow,deny Allow from all </Directory> </VirtualHost>

Der HTTP-Server Apache 495

Page 496: Suse 10.1 Linux Reference De

26.2.2 Konfigurieren von Apache mit YaSTZur Konfiguration des Webservers mit YaST starten Sie YaST und wählen Sie NetworkServices (Netzwerkdienste)→HTTP Server (HTTP-Server) aus. Wenn Sie dieses Modulzum ersten Mal starten, wird der HTTP Server Wizard (HTTP-Server-Assistent)geöffnet. Dort müssen Sie einige administrative Einstellungen vornehmen. Nach Aus-führung des Assistenten wird das unter „HTTP Server Configuration (HTTP-Server-Konfiguration)“ (S. 501) beschriebene Dialogfeld geöffnet, sobald Sie das HTTP-Ser-ver-Modul aufrufen.

HTTP Server Wizard (HTTP-Server-Assistent)Der HTTP-Server-Assistent besteht aus fünf Schritten. Im letzten Schritt des Assistentenhaben Sie die Möglichkeit, den Expertenkonfigurationsmodus aufzurufen, in dem Sieweitere spezielle Einstellungen vornehmen können.

Network Device Selection (Netzwerkgeräteauswahl)

Geben Sie hier die Netzwerkschnittstellen und -ports an, die von Apache auf eingehendeAnfragen überwacht werden. Sie können eine beliebige Kombination aus bestehendenNetzwerkschnittstellen und zugehörigen IP-Adressen auswählen. Sie können Ports ausallen drei Bereichen (Well-Known-Ports, registrierte Ports und dynamische oder privatePorts) verwenden, sofern diese nicht für andere Dienste reserviert sind. Die Standarde-instellung ist die Überwachung aller Netzwerkschnittstellen (IP-Adressen) an Port 80.

Aktivieren SieOpen Firewall for Selected Ports (Firewall für ausgewählte Ports öffnen),um die vom Webserver überwachten Ports in der Firewall zu öffnen. Dies ist erforderlich,um den Webserver im Netzwerk (LAN, WAN oder Internet) verfügbar zu machen. DasSchließen der Ports ist nur in Testsituationen sinnvoll, in denen kein externer Zugriffauf den Webserver erforderlich ist.

Klicken Sie auf Weiter, um mit der Konfiguration fortzufahren.

Module

Mit dieser Konfigurationsoption aktivieren bzw. deaktivieren Sie die vom Webserverunterstützten Skriptsprachen. Informationen zur Aktivierung bzw. Deaktivierunganderer Module erhalten Sie unter „Server Modules (Server-Module)“ (S. 502). KlickenSie auf Weiter, um das nächste Dialogfeld zu öffnen.

496 Referenz

Page 497: Suse 10.1 Linux Reference De

Default Host (Standardhost)

Diese Option betrifft den Standard-Webserver. Wie in „Virtuelle Hostkonfiguration“(S. 491) beschrieben, kann Apache von einem einzigen Computer mehrere virtuelleHosts bedienen. Der erste in der Konfigurationsdatei deklarierte virtuelle Host wird imAllgemeinen als Standardhost bezeichnet. Alle nachfolgenden virtuellen Hosts über-nehmen die Konfiguration des Standardhosts.

Wenn Sie die Hosteinstellungen (auch als Direktiven bezeichnet) bearbeiten möchten,wählen Sie den entsprechenden Eintrag in der Tabelle aus und klicken Sie auf Bearbei-ten. Zum Hinzufügen neuer Direktiven klicken Sie aufHinzufügen. Zum Löschen einerDirektive wählen Sie die Direktive aus und klicken Sie auf Löschen.

Abbildung 26.1 HTTP-Server-Assistent: Default Host (Standardhost)

Für den Server gelten folgende Standardeinstellungen:

Document Root (Document Root)Der absolute Pfad des Verzeichnisses, aus dem Apache die Dateien für diesen Hostbedient. Dies ist standardmäßig /srv/www/htdocs.

Der HTTP-Server Apache 497

Page 498: Suse 10.1 Linux Reference De

AliasMithilfe von Alias-Direktiven können URL-Adressen physischen Speicherortenim Dateisystem zugeordnet werden. Dies bedeutet, dass über eine URL sogar aufPfade im Dateisystem außerhalb des Document Root zugegriffen werden kann,sofern die URL via Aliasing auf diesen Pfad verweist.

Der vorgegebene SUSE Linux-Alias für die in der Verzeichnisindex-Ansichtangezeigten Apache-Symbole,/icons, verweist auf /usr/share/apache2/icons.

ScriptAliasÄhnlich wie dieAlias-Direktive ordnet dieScriptAlias-Direktive eine URLeinem Speicherort im Dateisystem zu. Der Unterschied besteht darin, dassScriptAlias als Zielverzeichnis einen CGI-Speicherort für die Ausführungvon CGI-Skripts festlegt.

Directory (Verzeichnis)Unter dieser Einstellung können Sie mehrere Konfigurationsoptionen zusammen-fassen, die nur für das angegebene Verzeichnis gelten.

Hier werden auch die Zugriffs- und Anzeigeoptionen für die Verzeichnisse /usr/share/apache2/icons und /srv/www/cgi-bin konfiguriert. EineÄnderung dieser Standardeinstellungen sollte nicht erforderlich sein.

IncludeHier können weitere Konfigurationsdateien hinzugefügt werden. Im Verzeichnis/etc/apache2/conf.d/ befinden sich z. B. die Konfigurationsdateien derexternen Module. Standardmäßig sind alle Dateien in diesem Verzeichnis (*.conf)eingeschlossen. Das Verzeichnis/etc/apache2/conf.d/apache2-manual?conf enthält hingegen alle apache2-manual-Konfigurationsdateien.

Server Name (Servername)Hier wird die Standard-URL festgelegt, über die Clients den Webserver kontaktieren.Verwenden Sie einen qualifizierten Domänennamen (FQDN), um den Webserverunter http://FQDN/ zu erreichen. Alternativ können Sie auch die IP-Adresseverwenden. Geben Sie hier keinen willkürlichen Namen ein – der Server mussunter diesem Namen „bekannt“ sein.

498 Referenz

Page 499: Suse 10.1 Linux Reference De

Server Administrator E-mail (E-Mail desServeradministrators)

Hier geben Sie die E-Mail-Adresse des Serveradministrators ein. Diese Adresseist beispielsweise auf den von Apache erstellten Fehlerseiten angegeben.

Server Resolution (Server-Auflösung)Diese Option bezieht sich auf „Virtuelle Hostkonfiguration“ (S. 491). WennDetermine Request Server by HTTPHeaders (Anfrage-Server durch HTTP-Headerbestimmen) aktiviert ist, kann ein virtueller Host die an seinen Servernamengerichteten Anforderungen beantworten (siehe „Namensbasierte virtuelle Hosts“(S. 492)). Wenn Determine Request Server by HTTP Headers (Anfrage-Serverdurch Server-IP-Adresse bestimmen) aktiviert ist, wählt Apache den angefordertenHost entsprechend der vom Client gesendeten HTTP-Header-Informationen aus.Weitere Informationen über IP-basierte virtuelle Hosts erhalten Sie in „IP-basiertevirtuelle Hosts“ (S. 493).

Klicken Sie am Ende der Seite Default Host (Standardhost) auf Weiter, um mit derKonfiguration fortzufahren.

Virtual Hosts (Virtuelle Hosts)

In diesem Schritt zeigt der Assistent eine Liste der bereits konfigurierten virtuellenHosts an (siehe „Virtuelle Hostkonfiguration“ (S. 491)). Falls Sie vor Ausführung desHTTP-Assistenten keine manuellen Konfigurationsänderungen vorgenommen haben,wird nur ein virtueller Host angezeigt. Dieser ist identisch mit dem im vorangegangenenSchritt konfigurierten Standardhost. Durch einen Stern neben seinem Servernamen ister als Standard gekennzeichnet.

Zum Hinzufügen eines Hosts klicken Sie auf Hinzufügen und geben Sie im daraufhingeöffneten Dialogfeld die grundlegenden Informationen über den neuen Host ein. UnterServer-Identifikation geben Sie den Servernamen, das Root-Verzeichnis für die Serve-rinhalte (DocumentRoot) und die E-Mail-Adresse des Administrators an. UnterServer-Auflösung legen Sie fest, wie der Host identifiziert wird (nach seinem Namenoder nach seiner IP-Adresse). Diese Optionen werden in „Default Host (Standardhost)“(S. 497) näher erläutert.

Klicken Sie auf Weiter, um mit dem zweiten Teil der virtuellen Hostkonfigurationfortzufahren.

Der HTTP-Server Apache 499

Page 500: Suse 10.1 Linux Reference De

Im zweiten Teil der virtuellen Hostkonfiguration legen Sie fest, ob CGI-Skripts zuge-lassen sind und welches Verzeichnis für diese Skripts verwendet wird. Dort könnenSie auch SSL aktivieren. Wenn Sie SSL aktivieren, müssen Sie auch den Zertifikatpfadangeben. Informationen über SSL und Zertifikate finden Sie in Abschnitt 26.6.2,„Konfigurieren von Apache mit SSL“ (S. 523). Mit der Option Verzeichnisindex gebenSie an, welche Datei angezeigt wird, wenn der Client ein Verzeichnis anfordert (stan-dardmäßig ist dies die Datei index.html). Statt der Standardeinstellung können Sie aberauch ein oder mehrere andere Dateinamen (jeweils getrennt durch ein Leerzeichen)angeben. Mit Enable Public HTML (Öffentliches HTML aktivieren) stellen Sie denInhalt der öffentlichen Benutzerverzeichnisse (~user/public_html/) auf demServer unter http://www.beispiel.com/~user bereit.

WICHTIG: Erstellen virtueller Hosts

Virtuelle Hosts können Sie nicht völlig willkürlich hinzufügen. Wenn Sienamensbasierte virtuelle Hosts hinzufügen möchten, müssen die Hostnamenim Netzwerk aufgelöst sein. Bei IP-basierten virtuellen Hosts darf jeder verfüg-baren IP-Adresse nur ein Host zugewiesen sein.

Zusammenfassung

Dies ist der abschließende Schritt des Assistenten. Hier können Sie festlegen, wie undwann der Apache-Server gestartet werden soll: beim Systemstart oder manuell.Außerdem erhalten Sie in diesem Schritt eine kurze Zusammenfassung Ihrer bisherigenKonfiguration. Wenn Sie mit den Einstellungen zufrieden sind, schließen Sie die Kon-figuration mit Beenden ab. Möchten Sie Einstellungen ändern, dann klicken Sie so oftauf Zurück, bis das entsprechende Dialogfeld angezeigt wird. ÜberHTTP Server ExpertConfiguration (Expertenkonfiguration für HTTP-Server) können Sie hier auch das in„HTTP Server Configuration (HTTP-Server-Konfiguration)“ (S. 501) beschriebeneDialogfeld öffnen.

500 Referenz

Page 501: Suse 10.1 Linux Reference De

Abbildung 26.2 HTTP-Server-Assistent: Zusammenfassung

HTTP Server Configuration(HTTP-Server-Konfiguration)Im Dialogfeld HTTP Server Configuration (HTTP-Server-Konfiguration) können Sieweitaus mehr Einstellungen vornehmen als im Assistenten (dieser wird ohnehin nurbei der Anfangskonfiguration des Webservers ausgeführt). Das Dialogfeld enthält vierRegisterkarten, die nachfolgend beschrieben werden. Keine der in diesem Dialogfeldvorgenommenen Konfigurationsänderungen wird sofort wirksam. Dies geschieht erst,wenn Sie das Dialogfeld mit Beenden schließen. Klicken Sie hingegen auf Abbrechen,so werden Ihre Konfigurationsänderungen verworfen.

Listen Ports and Addresses (Überwachte Ports und Adressen)

Geben Sie unter HTTP Service (HTTP-Service) an, ob Apache laufen soll (Aktiviert)oder beendet werden soll (Deaktiviert). Mit den Schaltflächen Hinzufügen, Bearbeitenund Löschen geben Sie unter Listen on Ports (Ports überwachen) die Adressen undPorts an, die vom Server überwacht werden sollen. Standardmäßig werden alleSchnittstellen an Port 80 überwacht. Vergessen Sie nicht, das Kontrollkästchen Firewallauf gewählten Ports öffnen zu aktivieren. Anderenfalls wäre der Webserver von außen

Der HTTP-Server Apache 501

Page 502: Suse 10.1 Linux Reference De

nicht erreichbar. Das Schließen des Ports ist nur in Testsituationen sinnvoll, in denenkein externer Zugriff auf den Webserver erforderlich ist.

Über die Schaltfläche Log Files (Protokolldateien) können Sie das Zugriffs- oder dasFehlerprotokoll überwachen. Diese Funktion ist besonders beim Testen der Konfigura-tion hilfreich. Die Protokolldatei wird in einem eigenen Fenster geöffnet, aus dem Sieden Webserver auch neu starten oder neu laden können (siehe Abschnitt 26.3, „Startenund Beenden von Apache“ (S. 503)). Diese Befehle werden sofort ausgeführt.

Abbildung 26.3 HTTP-Server-Konfiguration: Listen Ports and Addresses(Überwachte Ports und Adressen)

Server Modules (Server-Module)

Über Toggle Status (Status ändern) können Sie Apache2-Module aktivieren und deak-tivieren. Über AddModule (Modul hinzufügen) können Sie weitere Module hinzufügen,die zwar bereits installiert, aber noch nicht in dieser Liste aufgeführt sind. WeitereInformationen über Module finden Sie in Abschnitt 26.4, „Installieren, Aktivieren undKonfigurieren von Modulen“ (S. 505).

502 Referenz

Page 503: Suse 10.1 Linux Reference De

Abbildung 26.4 HTTP-Server-Konfiguration: Server Modules (Server-Module)

„Default Host“ (Standardhost) und „Hosts“ (Hosts)

Diese Registerkarten sind identisch mit den in „Default Host (Standardhost)“ (S. 497)und „Virtual Hosts (Virtuelle Hosts)“ (S. 499) beschriebenen Dialogfeldern.

26.3 Starten und Beenden von ApacheWenn Apache in YaST konfiguriert wurde (siehe Abschnitt 26.2.2, „Konfigurieren vonApache mit YaST“ (S. 496)), wird Apache beim Systemstart in Runlevel 3 und 5 gest-artet und in Runlevel 0, 1, 2 und 6 beendet. Dieses Verhalten können Sie im Runlevel-Editor von YaST oder mit dem Befehlszeilenprogramm chkconfig ändern.

Zum Starten, Beenden oder Manipulieren von Apache auf einem laufenden Systemverwenden Sie das init-Skript /usr/sbin/rcapache2 (allgemeine Informationenüber init-Skripts erhalten Sie unter Abschnitt 8.2.2, „Init-Skripts“ (S. 200)). Der Befehlrcapache2 akzeptiert folgende Parameter:

startStartet Apache, sofern es noch nicht läuft.

Der HTTP-Server Apache 503

Page 504: Suse 10.1 Linux Reference De

startsslStartet Apache mit SSL-Unterstützung, sofern es noch nicht läuft. Weitere Infor-mationen über die SSL-Unterstützung finden Sie unter Abschnitt 26.6, „Einrichteneines sicheren Webservers mit SSL“ (S. 517).

restartBeendet Apache und startet es danach neu. Falls der Webserver noch nicht gelaufenist, wird er nun gestartet.

try-restartBeendet Apache und startet es danach neu, sofern der Webserver bereits gelaufenist.

reload oder gracefulBeendet den Webserver erst, nachdem alle durch Forking erstellten Apache-Prozesseaufgefordert wurden, ihre Anforderungen vor dem Herunterfahren zu Ende zuführen. Anstelle der beendeten Prozesse werden neue Prozesse gestartet. Dies führtzu einem vollständigen „Neustart“ von Apache.

TIPP

In Produktionsumgebungen ist rcapache2 reload die bevorzugteMethode für einen Neustart von Apache (der z. B. ausgeführt wird, damiteine Konfigurationsänderung wirksam wird). Für die Clients kommt es dabeizu keinen Verbindungsabbrüchen.

configtestÜberprüft die Syntax der Konfigurationsdateien, ohne den laufenden Webserverzu beeinträchtigen. Da dieser Test beim Starten, Neuladen oder Neustarten desServers automatisch durchgeführt wird, ist eine explizite Ausführung des Tests inder Regel nicht notwendig. Bei einem Konfigurationsfehler wird der Webserverohnehin nicht gestartet, neu geladen oder neu gestartet.

probeÜberprüft, ob ein Neuladen des Webservers erforderlich ist (d. h., ob sich dieKonfiguration geändert hat), und schlägt die erforderlichen Argumente für denBefehl rcapache2 vor.

504 Referenz

Page 505: Suse 10.1 Linux Reference De

server-status und full-server-statusErstellt einen Dump des kurzen oder vollständigen Statusfensters. Zur Ausführungdes rcapache2-Befehls mit diesem Parameter muss entweder lynx oder w3minstalliert sein und das mod_status-Modul muss aktiviert sein. Außerdem muss/etc/sysconfig/apache2 unter APACHE_SERVER_FLAGS das Flagstatus enthalten.

TIPP: Weitere Flags

Weitere Flags, die Sie mit dem Befehl rcapache2 angeben, werden direkt anden Webserver weitergeleitet.

26.4 Installieren, Aktivieren undKonfigurieren von Modulen

Die Apache-Software ist modulartig aufgebaut. Sämtliche Funktionen mit Ausnahmeder wichtigsten Aufgaben werden in Modulen zur Verfügung gestellt. Dies geht sogarso weit, dass selbst HTTP durch ein Modul verarbeitet wird (http_core).

Apache-Module können bei der Entwicklung in die Apache-Binaries kompiliert oderwährend der Laufzeit dynamisch geladen werden. Informationen zum dynamischenLaden von Modulen erhalten Sie unter Abschnitt 26.4.2, „Aktivieren und Deaktivierenvon Modulen“ (S. 506).

Apache-Module lassen sich in vier Kategorien einteilen:

BasismoduleBasismodule sind standardmäßig in Apache enthalten. In Apache von SUSE Linuxsind nur die Basismodule mod_so und http_core kompiliert. Alle anderen Basismo-dule stehen als gemeinsame Objekte zur Verfügung: Sie sind zwar nicht im Server-Binary enthalten, können jedoch während der Laufzeit hinzugefügt werden.

ErweiterungsmoduleIm Allgemeinen sind Erweiterungsmodule im Apache-Softwarepaket enthalten,jedoch nicht statisch im Server kompiliert. In SUSE Linux stehen diese Moduleals gemeinsame Objekte zur Verfügung, die während der Laufzeit in Apachegeladen werden können.

Der HTTP-Server Apache 505

Page 506: Suse 10.1 Linux Reference De

Externe ModuleExterne Module sind nicht in der offiziellen Apache-Distribution enthalten. SUSELinux bietet jedoch einige externe Module an, die ohne großen Aufwand sofortverwendet werden können.

Multiprocessing-ModuleMultiprocessing-Module (MPMs) sind dafür verantwortlich, Anforderungen anden Webserver anzunehmen und zu verarbeiten, und stellen damit das Kernstückder Webserver-Software dar.

26.4.1 Installieren von ModulenWenn Sie das Standardinstallationsverfahren für Apache durchgeführt haben (sieheAbschnitt 26.1.2, „Installation“ (S. 486)), wird Apache mit allen Basis- und Erweite-rungsmodulen sowie dem Multiprocessing-Modul Prefork und dem externen ModulPHP5 installiert.

In YaST können Sie weitere externe Module installieren. Starten Sie dazu YaST undwählen Sie Software → Software Management (Software-Management). Wählen Siedanach Filter → Search (Suche) und suchen Sie nach apache. Die Ergebnisliste zeigtnun neben anderen Paketen alle verfügbaren externen Apache-Module an.

26.4.2 Aktivieren und Deaktivieren vonModulen

Die Skriptsprachenmodule PHP5, Perl, Python und Ruby können Sie in YaST mit derim Abschnitt „HTTP Server Wizard (HTTP-Server-Assistent)“ (S. 496) beschriebenenModulkonfiguration aktivieren oder deaktivieren. Alle anderen Module werden, wieim Abschnitt „Server Modules (Server-Module)“ (S. 502) beschrieben, aktiviert oderdeaktiviert.

Manuell können Sie die Module mit dem Befehla2enmod mod_foo bzw.a2dismodmod_foo aktivieren bzw. deaktivieren. a2enmod -l gibt eine Liste aller zurzeitaktiven Module aus.

506 Referenz

Page 507: Suse 10.1 Linux Reference De

WICHTIG: Einschließen der Konfigurationsdateien externer Module

Wenn Sie externe Module manuell aktivieren, müssen Sie sicherstellen, dassauch ihre Konfigurationsdateien in allen virtuellen Hostkonfigurationen geladenwerden. Die Konfigurationsdateien externer Module befinden sich im Verzeichnis/etc/apache2/conf.d/ und werden standardmäßig nicht geladen. WennSie auf allen virtuellen Hosts die gleichen Module benötigen, können Sie dieKonfigurationsdateien aus diesem Verzeichnis mit *.conf einschließen.Anderenfalls müssen Sie die Dateien einzeln einschließen. Beispiele hierzu findenSie in der Datei /etc/apache2/vhosts.d/vhost.template.

26.4.3 Basis- und ErweiterungsmoduleAlle Basis- und Erweiterungsmodule werden ausführlich in der Apache-Dokumentationbeschrieben. An dieser Stelle gehen wir daher nur kurz auf die wichtigsten Module ein.Informationen zu den einzelnen Modulen erhalten Sie auch unterhttp://httpd.apache.org/docs/2.2/mod/.

mod_aliasDieses Modul stellt die Direktiven Alias und Redirect bereit. Damit könnenSie eine URI einem bestimmten Verzeichnis zuordnen (Alias) bzw. eine angefor-derte URL umleiten. Dieses Modul ist standardmäßig aktiviert.

mod_auth*Die Authentifizierungsmodule stellen zwei Authentifizierungsmethoden bereit:Die Standardauthentifizierung mit mod_auth_basic und die Digest-Authentifizierungmit mod_auth_digest. Die Digest-Authentifizierung in Apache 2.2 befindet sichnoch im Versuchsstadium.

mod_auth_basic und mod_auth_digest funktionieren nur gemeinsam mit demAuthentifizierungsanbietermodul mod_authn_* (z. B. mod_authn_file für dieAuthentifizierung auf Basis einer Textdatei) und mit dem Autorisierungsmodulmod_authz_* (z. B. mod_authz_user für die Benutzerautorisierung).

Weitere Informationen zu diesem Thema erhalten Sie im Artikel „Gewusst wie:Authentifizierung“ unterhttp://httpd.apache.org/docs/2.2/howto/auth.html

Der HTTP-Server Apache 507

Page 508: Suse 10.1 Linux Reference De

mod_autoindexWenn keine Indexdatei vorhanden ist (z. B. index.html), generiert mod_auto-index Verzeichnislisten. Das Aussehen dieser Indizes kann konfiguriert werden.Dieses Modul ist standardmäßig aktiviert. Allerdings sind Verzeichnislisten durchdie Options-Direktive standardmäßig deaktiviert – Sie müssen diese Einstellungdaher in Ihrer virtuellen Hostkonfiguration ändern. Die Standardkonfigurationsdateidieses Moduls befindet sich unter /etc/apache2/ und heißt mod_autoindex-defaults.conf.

mod_cgimod_cgi wird zur Ausführung von CGI-Skripts benötigt. Dieses Modul ist standard-mäßig aktiviert.

mod_deflateMit diesem Modul kann Apache so konfiguriert werden, dass bestimmte Dateitypenautomatisch vor der Bereitstellung komprimiert werden.

mod_dirmod_dir stellt die DirectoryIndex-Direktive bereit, mit der Sie festlegenkönnen, welche Dateien bei Anforderung eines Verzeichnisses automatischzurückgegeben werden (standardmäßig index.html). Außerdem leitet diesesModul automatisch zur korrekten URI um, wenn in einer Verzeichnisanforderungder nachgestellte Schrägstrich fehlt. Dieses Modul ist standardmäßig aktiviert.

mod_expiresMit mod_expires legen Sie fest, wie häufig Ihre Dokumente über Proxy- undBrowser-Caches durch Zustellung eines Expires-Header aktualisiert werden.Dieses Modul ist standardmäßig aktiviert.

mod_includemod_include ermöglicht die Verwendung von serverseitigen Includes (SSI), diedie grundlegende Funktionalität für die dynamische Generierung von HTML-Seitenbereitstellen. Dieses Modul ist standardmäßig aktiviert.

mod_infoDieses Modul stellt unter http://localhost/server-info/ eine umfassende Übersichtüber die Serverkonfiguration bereit. Aus Sicherheitsgründen sollte der Zugriff aufdiese URL generell eingeschränkt sein. Standardmäßig erhält nur localhostZugriff auf diese URL. mod_info wird in der Datei/etc/apache2/mod_info.conf konfiguriert.

508 Referenz

Page 509: Suse 10.1 Linux Reference De

mod_log_configMit diesem Modul konfigurieren Sie den Aufbau der Apache-Protokolldateien.Dieses Modul ist standardmäßig aktiviert.

mod_mimeDieses Modul sorgt dafür, dass eine Datei auf Basis seiner Dateinamenerweiterungmit dem korrekten MIME-Header bereitgestellt wird (z. B.text/html für HTML-Dokumente). Dieses Modul ist standardmäßig aktiviert.

mod_negotiationDieses Modul ist für die Inhaltsverhandlung erforderlich. Weitere Informationenerhalten Sie unterhttp://httpd.apache.org/docs/2.2/content-negotiation.html.Dieses Modul ist standardmäßig aktiviert.

mod_rewriteDieses Modul stellt die gleiche Funktionalität wie mod_alias bereit, bietet abermehr Funktionen und ist somit flexibler. Mit mod_rewrite können Sie URLs aufBasis verschiedener Regeln umleiten, Header anfordern und einiges mehr.

mod_spelingmod_speling versucht, typografische Fehler in URLs, beispielsweise die Groß-/Kleinschreibung, automatisch zu korrigieren.

mod_sslDieses Modul ermöglicht verschlüsselte Verbindungen zwischen dem Webserverund den Clients. Weitere Einzelheiten finden Sie unter Abschnitt 26.6, „Einrichteneines sicheren Webservers mit SSL“ (S. 517). Dieses Modul ist standardmäßigaktiviert.

mod_statusDieses Modul stellt unter http://localhost/server-status/ Informationen über dieAktivität und Leistung des Servers bereit. Aus Sicherheitsgründen sollte der Zugriffauf diese URL generell eingeschränkt sein. Standardmäßig erhält nur localhostZugriff auf diese URl. mod_status wird in der Datei /etc/apache2/mod_status.conf konfiguriert.

mod_suexecDieses Modul ermöglicht die Ausführung von CGI-Skripts unter einem anderenBenutzer oder einer anderen Gruppe. Dieses Modul ist standardmäßig aktiviert.

Der HTTP-Server Apache 509

Page 510: Suse 10.1 Linux Reference De

mod_userdirDieses Modul ermöglicht benutzerspezifische Verzeichnisse unter ~user/. In derKonfiguration muss die UserDir-Direktive angegeben sein. Dieses Modul iststandardmäßig aktiviert.

26.4.4 Multiprocessing-ModuleSUSE Linux bietet zwei Multiprocessing-Module (MPMs) für Apache.

Prefork-MPMDas Prefork-MPM implementiert einen Prefork-Webserver, der keine Threads verwendet.Mit diesem Modul verhält sich der Webserver, was die Handhabung von Anforderungenbetrifft, ähnlich wie Apache Version 1.x: Er isoliert jede einzelne Anforderung undverarbeitet sie in einem separaten untergeordneten Prozess (Forking). Eine Beeinträch-tigung aller Anforderungen durch wenige problematische Anforderungen und somiteine Sperre des Webservers lassen sich dadurch vermeiden.

Die prozessbasierte Vorgehensweise des Prefork-MPM bietet zwar Stabilität, konsumiertaber mehr Systemressourcen wie das Worker-MPM. Für UNIX-basierte Betriebssystemegilt das Prefork-MPM als Standard-MPM.

WICHTIG: MPMs in diesem Dokument

In diesem Dokument wird davon ausgegangen, dass Apache mit dem Prefork-MPM verwendet wird.

Worker-MPMDas Worker-MPM implementiert einen Multithread-Webserver. Ein Thread ist die„Lightweight-Version“ eines Prozesses. Der Vorteil von Threads gegenüber Prozessenist deren geringerer Ressourcenkonsum. Anstatt lediglich untergeordnete Prozesse zuerstellen (Forking), verarbeitet das Worker-MPM Anforderungen durch Threads mitServerprozessen. Die untergeordneten Prefork-Prozesse sind auf mehrere Threads auf-geteilt (Multithreading). Diese Ansatzweise macht den Apache-Server durch dengeringeren Ressourcenkonsum leistungsfähiger als mit dem Prefork-MPM.

510 Referenz

Page 511: Suse 10.1 Linux Reference De

Ein gravierender Nachteil ist allerdings die geringere Stabilität des Worker-MPM: Einbeschädigter Thread kann sich auf alle Threads des Prozesses auswirken. Imschlimmsten Fall fällt der Server dadurch aus. Besonders bei gleichzeitiger Verwendungder Common Gateway Interface (CGI) auf einem überlasteten Apache-Server kann eszu internen Serverfehlern kommen, da Threads in diesem Fall unter Umständen nichtin der Lage sind, mit den Systemressourcen zu kommunizieren. Gegen die Verwendungdes Worker-MPM in Apache spricht auch die Tatsache, dass nicht alle verfügbarenApache-Module Thread-sicher sind und daher nicht in Verbindung mit dem Worker-MPM eingesetzt werden können.

WARNUNG: Verwendung von PHP-Modulen mit MPMs

Nicht alle verfügbaren PHP-Module sind Thread-sicher. Von einer Verwendungdes Worker-MPM in Verbindung mit mod_php wird daher abgeraten.

26.4.5 Externe ModuleNachfolgend finden Sie eine Liste aller externen Module, die mit SUSE Linux ausge-liefert werden. Die Dokumentation zu den einzelnen Modulen finden Sie in den jeweilsgenannten Verzeichnissen.

FastCGIFastCGI ist eine sprachunabhängige, skalierbare Erweiterung zu CGI, die erstklas-sige Leistung ohne die Einschränkungen serverspezifischer APIs bietet. FastCGI-Anwendungen liegen persistent vor und sind daher äußerst schnell. Bei einerAnforderung kommt es zu keiner Verzögerung durch den Start und die Initialisierungder Anwendung.

Paketname: apache2-mod_fastcgiKonfigurationsdatei: /etc/apache2/conf.d/mod_fastcgi.confWeitere Informationen: /usr/share/doc/packages/apache2-mod_fastcgi

mod_perlmod_perl ermöglicht die Ausführung von Perl-Skripts in einem eingebettetenInterpreter. Durch den persistenten, im Server eingebetteten Interpreter lassen sichVerzögerungen durch den Start eines externen Interpreters und den Start von Perlvermeiden.

Der HTTP-Server Apache 511

Page 512: Suse 10.1 Linux Reference De

Paketname: apache2-mod_perlKonfigurationsdatei: /etc/apache2/conf.d/mod_perl.confWeitere Informationen:/usr/share/doc/packages/apache2-mod_perl

mod_php5PHP ist eine serverseitige, plattformübergreifende, in HTML eingebettete Skript-sprache.

Paketname: apache2-mod_php5Konfigurationsdatei: /etc/apache2/conf.d/php5.confWeitere Informationen:/usr/share/doc/packages/apache2-mod_php5

mod_pythonmod_python bettet Python in den Apache-Webserver ein. Dies bringt Ihnen einenerheblichen Leistungsgewinn und zusätzliche Flexibilität bei der Entwicklungwebbasierter Anwendungen.

Paketname: apache2-mod_pythonWeitere Informationen: /usr/share/doc/packages/apache2-mod_python

mod_rubymod_ruby bettet den Ruby-Interpreter in den Apache-Webserver ein. Dadurchkönnen Ruby CGI-Skripts in Originalversion ausgeführt werden. Diese Skriptswerden mit mod_ruby wesentlich schneller ausgeführt.

Paketname: apache2-mod_rubyWeitere Informationen:/usr/share/doc/packages/apache2-mod_ruby

mod_jk-ap20Dieses Modul stellt Konnektoren zwischen Apache und einem Tomcat Servlet-Container bereit.

Paketname: mod_jk-ap20Weitere Informationen: /usr/share/doc/packages/mod_jk-ap20

512 Referenz

Page 513: Suse 10.1 Linux Reference De

26.4.6 Kompilieren von ModulenApache kann von erfahrenen Benutzern durch selbst entwickelte Module erweitertwerden. Für die Entwicklung eigener Apache-Module und für die Kompilierung vonDrittanbieter-Modulen sind neben dem Paket apache2-devel auch die entsprechen-den Entwicklungstools erforderlich. apache2-devel enthält unter anderem dieapxs2-Tools, die zur Kompilierung von Apache-Erweiterungsmodulen erforderlichsind.

apxs2 ermöglicht die Kompilierung und Installation von Modulen aus dem Quellcode(einschließlich der erforderlichen Änderungen an den Konfigurationsdateien). Dadurchergeben sich Dynamic Shared Objects (DSOs), die während der Laufzeit in Apachegeladen werden können.

Die Binaries von apxs2 befinden sich unter /usr/sbin:

• /usr/sbin/apxs2: Für die Entwicklung von Erweiterungsmodulen, die mitallen MPMs verwendbar sind. Die Module werden im Verzeichnis /usr/lib/apache2 installiert.

• /usr/sbin/apxs2-prefork: Für die Entwicklung von Prefork-MPM-Modulen. Die Module werden im Verzeichnis /usr/lib/apache2-preforkinstalliert.

• /usr/sbin/apxs2-worker: Für die Entwicklung von Worker-MPM-Modulen.

Die von apxs2 installierten Module können für alle MPMs verwendet werden. Dieanderen beiden Programme installieren ihre Module so, dass sie nur für die jeweiligenMPMs (also „Prefork“ bzw. „Worker“) verwendet werden können. apxs2 installiertseine Module in /usr/lib/apache2. apxs2-prefork und apxs2-workerinstallieren ihre Module hingegen in/usr/lib/apache2-prefork bzw. in/usr/lib/apache2-worker.

Zur Installation und Aktivierung eines Moduls aus dem Quellcode verwenden Sie denBefehl cd /Pfad/der/Modulquelle; apxs2 -cia mod_foo.c (-ckompiliert das Modul, -i installiert es und -a aktiviert es). Alle weiteren Optionenvon apxs2 werden auf der Manualpage apxs2(1) beschrieben.

Der HTTP-Server Apache 513

Page 514: Suse 10.1 Linux Reference De

26.5 Aktivieren von CGI-SkriptsDie Common Gateway Interface (CGI) von Apache ermöglicht die dynamischeErstellung von Inhalten mit Programmen bzw. so genannten CGI-Skripts. CGI-Skriptskönnen in jeder beliebigen Programmiersprache geschrieben sein. In der Regel werdenaber die Skriptsprachen Perl oder PHP verwendet.

Damit Apache in der Lage ist, die von CGI-Skripts erstellten Inhalte bereitzustellen,muss das Modul mod_cgi aktiviert sein. Außerdem ist mod_alias erforderlich. BeideModule sind standardmäßig aktiviert. Informationen zur Aktivierung von Modulenfinden Sie unter Abschnitt 26.4.2, „Aktivieren und Deaktivieren von Modulen“ (S. 506).

WARNUNG: CGI-Sicherheit

Die Zulassung der CGI-Skriptausführung auf dem Server ist ein Sicherheitsrisiko.Weitere Informationen hierzu erhalten Sie unter Abschnitt 26.7, „Vermeidenvon Sicherheitsproblemen“ (S. 524).

26.5.1 Konfiguration in ApacheIn SUSE Linux ist die Ausführung von CGI-Skripts nur im Verzeichnis /srv/www/cgi-bin/ erlaubt. Dieses Verzeichnis ist bereits für die Ausführung von CGI-Skriptskonfiguriert. Wenn Sie eine virtuelle Hostkonfiguration erstellt haben (siehe „VirtuelleHostkonfiguration“ (S. 491)) und Ihre CGI-Skripts in einem Host-spezifischen Verzeich-nis ablegen möchten, müssen Sie das betreffende Verzeichnis entsperren und für CGI-Skripts konfigurieren.

514 Referenz

Page 515: Suse 10.1 Linux Reference De

Beispiel 26.5 CGI-Konfiguration für virtuelle Hosts

ScriptAlias /cgi-bin/ "/srv/www/beispiel.com_cgi-bin/"❶

<Directory "/srv/www/beispiel.com_cgi-bin/">

Options +ExecCGI❷

AddHandler cgi-script .cgi .pl❸

Order allow,deny❹ Allow from all </Directory>

❶ Fordert Apache auf, alle Dateien in diesem Verzeichnis als CGI-Skripts zubehandeln

❷ Aktiviert die Ausführung von CGI-Skripts

❸ Fordert den Server auf, Dateien mit den Erweiterungen .pl und .cgi als CGI-Skriptszu behandeln; passen Sie diese Anweisung entsprechend Ihren Anforderungen an

❹ Die Order- und Allow-Direktiven legen den Standardzugriffsstatus sowie dieReihenfolge fest, in der Allow- und Deny-Direktiven ausgewertet werden; indiesem Beispiel werden „deny“-Anweisungen vor „allow“-Anweisungen ausge-wertet und der Zugriff ist von jedem Ort aus möglich.

26.5.2 Ausführen eines BeispielskriptsDie CGI-Programmierung unterscheidet sich von der herkömmlichen Programmierunginsoweit, als CGI-Programmen und -Skripts ein MIME-Typ-Header wieContent-type: text/html vorangestellt sein muss. Dieser Header wird an denClient gesendet, damit er weiß, welchen Inhaltstyp er empfängt. Darüber hinaus mussdie Skriptausgabe vom Client, in der Regel einem Webbrowser, verstanden werden –dies ist in den meisten Fällen HTML, aber auch Klartext, Bilder oder Ähnliches.

Unter /usr/share/doc/packages/apache2/test-cgi stellt Apache eineinfaches Testskript bereit. Dieses Skript gibt den Inhalt einiger Umgebungsvariablenals Klartext aus. Wenn Sie dieses Skript ausprobieren möchten, kopieren Sie es in dasVerzeichnis /srv/www/cgi-bin/ bzw. in das Skriptverzeichnis Ihres virtuellenHosts (/srv/www/beispiel.com_cgi-bin/) und benennen Sie es in test.cgi um.

Über den Webserver zugängliche Dateien sollten dem root-Benutzer gehören (sieheauch Abschnitt 26.7, „Vermeiden von Sicherheitsproblemen“ (S. 524)). Da der

Der HTTP-Server Apache 515

Page 516: Suse 10.1 Linux Reference De

Webserver unter einem anderen Benutzer ausgeführt wird, müssen CGI-Skripts vonjedermann ausgeführt und gelesen werden können. Wechseln Sie daher in das CGI-Verzeichnis und führen Sie den Befehl chmod 755 test.cgi aus, um die entspre-chenden Berechtigungen einzurichten.

Rufen Sie danach http://localhost/cgi-bin/test.cgi oderhttp://example.com/cgi-bin/test.cgi auf. Nun sollte der „CGI/1.0-Testskriptbericht“ angezeigt werden.

26.5.3 FehlerbehebungWenn Sie nach der Ausführung des CGI-Testskripts statt des Testskriptberichts eineFehlermeldung erhalten, überprüfen Sie Folgendes:

CGI-Fehlerbehebung

• Haben Sie den Server nach der Konfigurationsänderung neu geladen? ÜberprüfenSie dies mit rcapache2 probe.

• Falls Sie ein benutzerdefiniertes CGI-Verzeichnis eingerichtet haben, ist diesesrichtig konfiguriert? Falls Sie sich nicht sicher sind, führen Sie das Skript im CGI-Standardverzeichnis /srv/www/cgi-bin/ aus. Rufen Sie das Skript dazu mithttp://localhost/cgi-bin/test.cgi auf.

• Wurden die richtigen Berechtigungen zugewiesen? Wechseln Sie in das CGI-Ver-zeichnis und führen Sie ls -l test.cgi aus. Die Befehlsausgabe sollte mitfolgender Zeile beginnen:-rwxr-xr-x 1 root root

• Überprüfen Sie das Skript auf Programmierfehler. Wenn Sie die Datei test.cgi nichtbearbeitet haben, dürfte sie keine Programmierfehler enthalten. Falls Sie abereigene Programme verwenden, sollten Sie diese immer auf Programmierfehleruntersuchen.

516 Referenz

Page 517: Suse 10.1 Linux Reference De

26.6 Einrichten eines sicherenWebservers mit SSL

Vertrauliche Daten wie Kreditkarteninformationen sollten nur über eine sichere, ver-schlüsselte Verbindung mit Authentifizierung zwischen Webserver und Client übertragenwerden. mod_ssl bietet mittels der Protokolle Secure Sockets Layer (SSL) und TransportLayer Security (TLS) eine sichere Verschlüsselung für die HTTP-Kommunikationzwischen einem Client und dem Webserver. Wenn Sie SSL/TSL verwenden, wirdzwischen dem Webserver und dem Client eine private Verbindung eingerichtet. DieDatenintegrität bleibt dadurch gewährleistet und Client und Server können sichgegenseitig authentifizieren.

Zu diesem Zweck sendet der Server vor der Beantwortung von Anforderungen an eineURL ein SSL-Zertifikat mit Informationen, die die Identität des Servers nachweisen.Dies garantiert, dass der Server eindeutig der richtige Endpunkt der Kommunikationist. Außerdem wird durch das Zertifikat eine verschlüsselte Verbindung zwischen demClient und dem Server hergestellt, die sicherstellt, dass Informationen ohne das Risikoder Freigabe sensitiver Klartextinhalte übertragen werden.

mod_ssl implementiert die SSL/TSL-Protokolle nicht selbst, sondern fungiert alsSchnittstelle zwischen Apache und einer SSL-Bibliothek. In SUSE Linux wird dieOpenSSL-Bibliothek verwendet. OpenSSL wird bei der Installation von Apache auto-matisch installiert.

Die Verwendung von mod_ssl in Apache erkennen Sie in URLs am Präfix https://(statt http://).

26.6.1 Erstellen eines SSL-ZertifikatsWenn Sie SSL/TSL mit dem Webserver einsetzen möchten, müssen Sie ein SSL-Zerti-fikat erstellen. Dieses Zertifikat ist für die Autorisierung zwischen Webserver und Clienterforderlich, damit beide Endpunkte jeweils die Identität des anderen Endpunkts über-prüfen können. Zum Nachweis der Zertifikatintegrität muss das Zertifikat von einerOrganisation signiert sein, der jeder der beteiligten Benutzer vertraut.

Sie können drei verschiedene Zertifikattypen erstellen: ein „Dummy“-Zertifikat, dasallein zum Testen verwendet wird, ein selbst signiertes Zertifikat für einen bestimmten

Der HTTP-Server Apache 517

Page 518: Suse 10.1 Linux Reference De

Benutzerkreis, der Ihnen vertraut, und ein Zertifikat, das von einer unabhängigen,öffentlich bekannten Zertifizierungsstelle (CA) signiert wurde.

Die Zertifikaterstellung besteht im Grunde nur aus zwei Schritten: Zunächst wird einprivater Schlüssel für die Zertifizierungsstelle generiert und danach wird das Serverzer-tifikat mit diesem Schlüssel signiert.

TIPP: Weitere Informationen

Weitere Informationen über das Konzept von SSL/TSL und diesbezüglicheFestlegungen finden Sie unterhttp://httpd.apache.org/docs/2.2/ssl/ssl_intro.html.

Erstellen eines „Dummy“-ZertifikatsDie Erstellung eines Dummy-Zertifikats ist einfach. Sie brauchen dazu lediglich dasSkript /usr/bin/gensslcert aufzurufen. Dieses Skript erstellt oder überschreibtdie folgenden Dateien:

• /etc/apache2/ssl.crt/ca.crt

• /etc/apache2/ssl.crt/server.crt

• /etc/apache2/ssl.key/server.key

• /etc/apache2/ssl.csr/server.csr

Außerdem wird eine Kopie der Datei ca.crt im Verzeichnis /srv/www/htdocs/CA.crt zum Herunterladen bereitgestellt.

WICHTIG

Verwenden Sie Dummy-Zertifikate niemals in Produktionsumgebungen, sondernnur zum Testen.

518 Referenz

Page 519: Suse 10.1 Linux Reference De

Erstellen eines selbst signierten ZertifikatsWenn Sie einen sicheren Webserver für Ihr Intranet oder einen bestimmten Benutzerkreiseinrichten, reicht unter Umständen ein von Ihrer eigenen Zertifizierungsstelle signiertesZertifikat aus.

Die Erstellung eines selbst signierten Zertifikats ist ein interaktiver Vorgang, der ausneun Schritten besteht. Wechseln Sie dazu zunächst in das Verzeichnis /usr/share/doc/packages/apache2 und führen Sie den folgenden Befehl aus:./mkcert.shmake --no-print-directory /usr/bin/openssl /usr/sbin/custom. Diesen Befehl sollten Sie keinesfalls außerhalb dieses Verzeichnisses ausfüh-ren. Das Programm gibt eine Reihe von Eingabeaufforderungen aus, von denen einigeBenutzereingaben erfordern.

Prozedur 26.1 Erstellen eines selbst signierten Zertifikats mit mkcert.sh

1 Decide the signature algorithm used for certificates(Signaturalgorithmus für Zertifikat auswählen)

Wählen Sie RSA aus ( R , die Standardeinstellung), da einige ältere BrowserProbleme mit DSA haben.

2 Generating RSA private key for CA (1024 bit) (PrivatenRSA-Schlüssel für CA (1024 Bit) erstellen)

Keine Eingabe erforderlich.

3 Generating X.509 certificate signing request for CA(X.509-Zertifikatsignierungsanforderung für CAerstellen)

Hier erstellen Sie den DN (Distinguished Name) der Zertifizierungsstelle. Dazumüssen Sie einige Fragen, z. B. nach dem Land oder der Organisation, beantwor-ten. Geben Sie an dieser Stelle nur gültige Daten ein. Schließlich wird alles, wasSie hier eingeben, später im Zertifikat angezeigt. Sie müssen nicht alle Fragenbeantworten. Wenn eine Frage nicht auf Sie zutrifft oder Sie eine Antwort offenlassen möchten, geben Sie „.“ ein. Unter Common Name (allgemeiner Name)müssen Sie den Namen der Zertifizierungsstelle eingeben. Geben Sie hier einenaussagekräftigen Namen ein, beispielsweise Zertifizierungsstelle von Mycompany.

Der HTTP-Server Apache 519

Page 520: Suse 10.1 Linux Reference De

4 Generating X.509 certificate for CA signed by itself(Von CA selbst signiertes X.509-Zertifikat für CAerstellen)

Wählen Sie Zertifikatversion 3 aus (die Standardeinstellung).

5 Generating RSA private key for SERVER (1024 bit)(Privaten RSA-Schlüssel für SERVER (1024 Bit)erstellen)

Keine Eingabe erforderlich.

6 Generating X.509 certificate signing request for SERVER(X.509-Zertifikatsignierungsanforderung für SERVERerstellen)

Hier erstellen Sie den DN für den Serverschlüssel. Es werden nahezu die gleichenFragen gestellt wie für den DN der Zertifizierungsstelle. Ihre Antworten betreffenjedoch den Webserver und müssen nicht unbedingt identisch mit den für dieZertifizierungsstelle eingegebenen Daten sein (der Server kann sich z. B. aneinem anderen Standort befinden).

WICHTIG: Auswahl eines Common Name

Als Common Name (allgemeiner Name) müssen Sie hier den vollständigqualifizierten Hostnamen des sicheren Servers eingeben (z. B. www.bei-spiel.com). Anderenfalls gibt der Browser beim Zugriff auf den Webservereine Warnung mit dem Hinweis aus, dass das Zertifikat nicht mit demServer übereinstimmt.

7 Generating X.509 certificate signed by own CA (Voneigener CA signiertes X.509-Zertifikat erstellen)

Wählen Sie Zertifikatversion 3 aus (die Standardeinstellung).

8 Encrypting RSA private key of CA with a pass phrasefor security (Privaten RSA-Schlüssel der CA ausSicherheitsgründen mit einem Passwort verschlüsseln)

520 Referenz

Page 521: Suse 10.1 Linux Reference De

Aus Sicherheitsgründen empfiehlt es sich, den privaten Schlüssel der Zertifizie-rungsstelle mit einem Passwort zu verschlüsseln. Wählen Sie daher J aus undgeben Sie ein Passwort ein.

9 Encrypting RSA private key of SERVER with a pass phrasefor security (Privaten RSA-Schlüssel des SERVERS ausSicherheitsgründen mit einem Passwort verschlüsseln)

Wenn Sie den Serverschlüssel mit einem Passwort verschlüsseln, müssen Siedieses Passwort bei jedem Start des Webservers eingeben. Dies macht den auto-matischen Start des Webservers beim Hochfahren des Computers oder einenNeustart des Webservers nahezu unmöglich. Aus diesem Grund sollten Sie dieseFrage mit N beantworten. Denken Sie aber daran, dass Ihr Schlüssel in diesemFall ungeschützt ist, und stellen Sie sicher, dass nur autorisierte Personen Zugriffauf den Schlüssel haben.

WICHTIG: Verschlüsseln des Serverschlüssels

Wenn Sie sich dennoch entscheiden, den Serverschlüssel mit einemPasswort zu verschlüsseln, sollten Sie den APACHE_TIMEOUT-Wert in/etc/sysconfig/apache2 heraufsetzen. Anderenfalls bleibt Ihnenunter Umständen nicht genügend Zeit für die Eingabe des Passworts,bevor der Startversuch des Servers wegen Zeitüberschreitung abgebrochenwird.

Die Ergebnisseite des Skripts enthält eine Liste der generierten Zertifikate und Schlüssel.Die Dateien wurden allerdings nicht, wie im Skript angegeben, im lokalen Verzeichnisconf erstellt, sondern in den passenden Verzeichnissen unter /etc/apache2/.

Der letzte Schritt besteht darin, die Zertifikatdatei der Zertifizierungsstelle aus demVerzeichnis /etc/apache2/ssl.crt/ca.crt in ein Verzeichnis zu kopieren,in dem die Benutzer auf die Datei zugreifen können. Aus diesem Verzeichnis könnendie Benutzer die Zertifizierungsstelle in ihren Webbrowsern der Liste der bekanntenund vertrauenswürdigen Zertifizierungsstellen hinzufügen. Wäre die Zertifizierungsstellenicht in dieser Liste enthalten, würde der Browser melden, dass das Zertifikat von einerunbekannten Zertifizierungsstelle ausgegeben wurde. Das neu erstellte Zertifikat ist einJahr lang gültig.

Der HTTP-Server Apache 521

Page 522: Suse 10.1 Linux Reference De

WICHTIG: Selbst signierte Zertifikate

Verwenden Sie selbst signierte Zertifikate nur auf einem Webserver, auf denBenutzer zugreifen, denen Sie bekannt sind und die Ihnen als Zertifizierungs-stelle vertrauen. Für einen öffentlichen Online-Versand wäre ein solches Zerti-fikat z. B. nicht geeignet.

Anfordern eines offiziell signierten ZertifikatsEs gibt verschiedene offizielle Zertifizierungsstellen, die Ihre Zertifikate signieren.Zertifizierungsstellen sind vertrauenswürdige unabhängige Parteien. Einem Zertifikat,das durch eine solche Zertifizierungsstelle signiert wurde, kann daher voll und ganzvertraut werden. Sichere Webserver, deren Inhalte für die Öffentlichkeit bereitstehen,verfügen in der Regel über ein offiziell signiertes Zertifikat.

Die bekanntesten offiziellen Zertifizierungsstellen sind Thawte (http://www.thawte.com/) und Verisign (www.verisign.com). Diese und andere Zertifizierungsstellensind bereits in Browsern kompiliert. Zertifikate, die von diesen Zertifizierungsstellensigniert wurden, werden daher von Browsern automatisch akzeptiert.

Zur Anforderung eines offiziell signierten Zertifikats senden Sie kein unsigniertesZertifikat an die Zertifizierungsstelle, sondern eine CSR (Certificate Signing Request,Zertifikatsignierungsanforderung). Zur Erstellung einer CSR rufen Sie das Skript/usr/share/ssl/misc/CA.sh -newreq auf.

Das Skript fragt zunächst nach dem Passwort für die Verschlüsselung der CSR. Danachmüssen Sie einen Distinguished Name (DN) eingeben. Dazu müssen Sie einige Fragen,z. B. nach dem Land oder der Organisation, beantworten. Geben Sie an dieser Stellenur gültige Daten ein. Schließlich wird alles, was Sie hier eingeben, überprüft undspäter im Zertifikat angezeigt. Sie müssen nicht alle Fragen beantworten. Wenn eineFrage nicht auf Sie zutrifft oder Sie eine Antwort offen lassen möchten, geben Sie „.“ein. Unter Common Name (allgemeiner Name) müssen Sie den Namen der Zertifizie-rungsstelle eingeben. Geben Sie hier einen aussagekräftigen Namen ein, beispielsweiseZertifizierungsstelle von My company. Zum Schluss müssen Sie noch ein ChallengePasswort (zur Vernichtung des Zertifikats, falls der Schlüssel kompromittiert wird) undeinen alternativen Unternehmensnamen eingeben.

Die CSR wird in dem Verzeichnis erstellt, aus dem Sie das Skript aufgerufen haben.Der Name der CSR-Datei lautet newreq.pem.

522 Referenz

Page 523: Suse 10.1 Linux Reference De

26.6.2 Konfigurieren von Apache mit SSLPort 443 ist auf dem Webserver der Standardport für SSL- und TLS-Anforderungen.Zwischen einem „normalen“ Apache-Webserver, der Port 80 überwacht, und einemSSL/TLS-aktivierten Apache-Server, der Port 443 überwacht, kommt es zu keinenKonflikten. In der Tat kann die gleiche Apache-Instanz sowohl HTTP als auch HTTPSausführen. In der Regel verteilen separate virtuelle Hosts die Anforderungen für Port80 und Port 443 an separate virtuelle Server.

WICHTIG: Firewall-Konfiguration

Vergessen Sie nicht, die Firewall für den SSL-aktivierten Apache-Webserver anPort 443 zu öffnen. Sie können dazu YaST verwenden (siehe „Konfigurationmit YaST“ (S. 116)).

Zur Verwendung von SSL muss SSL in der globalen Serverkonfiguration aktiviert sein.Zur Aktivierung öffnen Sie/etc/sysconfig/apache2 in einem Editor und suchenSie nach APACHE_MODULES. Fügen Sie der Modulliste „ssl“ hinzu, sofern dieserEintrag noch nicht vorhanden ist (mod_ssl ist standardmäßig aktiviert). Suchen Sieanschließend nach APACHE_SERVER_FLAGS und fügen Sie „SSL“ hinzu. Wenn Siesich zuvor entschieden haben, Ihr Serverzertifikat durch ein Passwort zu verschlüsseln,sollten Sie nun den Wert von APACHE_TIMEOUT heraufsetzen, damit Ihnen beimStart von Apache genügend Zeit für die Eingabe des Passworts bleibt. Starten Sie denServer anschließend neu, damit die Änderungen wirksam werden. Ein Neuladen desServers reicht dazu nicht aus.

Das Verzeichnis der virtuellen Hostkonfiguration enthält die Vorlage/etc/apache2/vhosts.d/vhost-ssl.template. Diese enthält SSL-spezifische Direktiven,die bereits an anderer Stelle hinreichend dokumentiert sind. Informationen über dieBasiskonfiguration eines virtuellen Hosts finden Sie unter „Virtuelle Hostkonfiguration“(S. 491).

Für den Anfang sollte es ausreichen, die Werte der folgenden Direktiven einzustellen:

• DocumentRoot

• ServerName

• ServerAdmin

Der HTTP-Server Apache 523

Page 524: Suse 10.1 Linux Reference De

• ErrorLog

• TransferLog

WICHTIG: Namensbasierte virtuelle Hosts und SSL

Auf einem Server mit nur einer IP-Adresse können nicht mehrere SSL-aktiviertevirtuelle Hosts laufen. Benutzer, die versuchen, eine Verbindung mit einer sol-chen Konfiguration herzustellen, erhalten bei jedem Besuch der URL eineWarnung mit dem Hinweis, dass das Zertifikat nicht mit dem Namen des Serversübereinstimmt. Für die Kommunikation auf Grundlage eines gültigen SSL-Zerti-fikats ist eine separate IP-Adresse bzw. ein separater Port für jede SSL-aktivierteDomäne erforderlich.

26.7 Vermeiden vonSicherheitsproblemen

Ein dem öffentlichen Internet ausgesetzter Webserver erfordert ständige Wartungs-und Verwaltungsarbeiten. Sicherheitsprobleme, verursacht durch die Software wie auchdurch versehentliche Fehlkonfigurationen, sind kaum zu vermeiden. Im Folgendeneinige Tipps zur Verbesserung der Sicherheit.

26.7.1 Stets aktuelle SoftwareBei Bekanntwerden von Sicherheitsrisiken in der Apache-Software veröffentlicht SUSEsofort einen entsprechenden Sicherheitshinweis. Dieser enthält Anleitungen zur Behe-bung der Risiken, die möglichst frühzeitig ausgeführt werden sollten. Die Sicherheits-ankündigungen von SUSE stehen unter folgenden Adressen zur Verfügung:

• Webseite http://www.suse.com/us/private/support/online_help/mailinglists/

• Mailingliste http://www.suse.com/us/private/support/online_help/mailinglists/

524 Referenz

Page 525: Suse 10.1 Linux Reference De

• RSS-Newsticker http://www.novell.com/linux/security/suse_security.xml

26.7.2 DocumentRoot-BerechtigungenIn SUSE Linux sind dasDocumentRoot-Verzeichnis/srv/www/htdocs (absoluterPfad) und das CGI-Verzeichnis /srv/www/cgi-bin standardmäßig dem Benutzerbzw. der Grupperoot zugeordnet. Diese Berechtigungen sollten nicht geändert werden.Wenn diese Verzeichnisse für alle Benutzer modifizierbar wären, könnte jeder BenutzerDateien darin ablegen. Diese Dateien würden dann von Apache mit wwwrun-Berechti-gungen ausgeführt werden, was wiederum dem Benutzer unbeabsichtigt Zugriff aufdie Ressourcen des Dateisystems gewähren würde. Das DocumentRoot-Verzeichnisund die CGI-Verzeichnisse Ihrer virtuellen Hosts sollten Sie als Unterverzeichnisse imVerzeichnis /srv/www anlegen. Stellen Sie auch bei diesen Verzeichnissen sicher,dass die Verzeichnisse und die darin enthaltenen Dateien dem Benutzer bzw. derGruppe root zugeordnet sind.

26.7.3 Zugriff auf das Dateisystem/etc/apache2/httpd.conf verweigert standardmäßig den Zugriff auf dasgesamte Dateisystem. Diese Direktiven sollten Sie nicht überschreiben. Stattdessensollten Sie explizit den Zugriff auf die Verzeichnisse aktivieren, die Apache lesen muss(siehe „Basiskonfiguration eines virtuellen Hosts“ (S. 494)). Achten Sie dabei darauf,dass keine unbefugten Personen auf kritische Dateien wie Passwort- oder Systemkonfi-gurationsdateien zugreifen können.

26.7.4 CGI-SkriptsInteraktive Skripts in Perl, PHP, SSI oder anderen Programmiersprachen können imPrinzip jeden beliebigen Befehl ausführen und stellen damit generell ein Sicherheitsri-siko dar. Skripts, die vom Server ausgeführt werden, sollten nur aus Quellen stammen,denen der Serveradministrator vertraut. Keine gute Idee ist es, den Benutzern die Aus-führung ihrer eigenen Skripts zu erlauben. Zusätzlich empfiehlt es sich, die Sicherheitaller Skripts zu überprüfen.

Der HTTP-Server Apache 525

Page 526: Suse 10.1 Linux Reference De

Es ist durchaus üblich, sich die Skriptverwaltung durch eine Einschränkung derSkriptausführung zu vereinfachen. Dabei wird die Ausführung von CGI-Skripts aufbestimmte Verzeichnisse eingeschränkt, statt sie global zuzulassen. Die DirektivenScriptAlias und Option ExecCGIwerden zur Konfiguration verwendet. In derStandardkonfiguration von SUSE Linux ist es generell nicht gestattet, CGI-Skripts vonjedem beliebigen Ort aus auszuführen.

Alle CGI-Skripts werden unter dem gleichen Benutzer ausgeführt. Es kann daher zuKonflikten zwischen verschiedenen Skripts kommen. Abhilfe schafft hier das ModulsuEXEC, das die Ausführung von CGI-Skripts unter einem anderen Benutzer oder eineranderen Gruppe ermöglicht.

26.7.5 BenutzerverzeichnisseBei der Aktivierung von Benutzerverzeichnissen (mit mod_userdir oder mod_rewrite)sollten Sie unbedingt darauf achten, keine .htaccess-Dateien zuzulassen. Durchdiese Dateien wäre es den Benutzern möglich, die Sicherheitseinstellungen zu über-schreiben. Zumindest sollten Sie die Möglichkeiten des Benutzers durch die DirektiveAllowOverRide einschränken. In SUSE Linux sind .htaccess-Dateien standard-mäßig aktiviert. Den Benutzern ist es allerdings nicht erlaubt, mit mod_userdirOption-Direktiven zu überschreiben (sehen Sie sich hierzu die Konfigurationsdatei/etc/apache2/mod_userdir.conf an).

26.8 FehlerbehebungWenn sich Apache nicht starten lässt, eine Webseite nicht angezeigt werden kann oderBenutzer keine Verbindung zum Webserver herstellen können, müssen Sie die Ursachedes Problems herausfinden. Im Folgenden werden einige nützliche Ressourcen vorge-stellt, die Ihnen bei der Fehlersuche behilflich sein können.

An erster Stelle sei hier das Skript rcapache2 (siehe Abschnitt 26.3, „Starten undBeenden von Apache“ (S. 503)) genannt, das sich sehr ausführlich mit Fehlern und derenUrsachen befasst und bei Problemen mit Apache wirklich hilfreich ist. Manchmal istes eine Versuchung, die Binärdatei /usr/sbin/httpd2 zum Starten oder Beendendes Webservers zu verwenden. Vermeiden Sie dies aber und verwenden Sie stattdessenbesser das Skript rcapache2. rcapache2 gibt sogar Tipps und Hinweise zurBehebung von Konfigurationsfehlern.

526 Referenz

Page 527: Suse 10.1 Linux Reference De

An zweiter Stelle möchten wir auf die Bedeutung von Protokolldateien hinweisen.Sowohl bei geringfügigen als auch bei schwerwiegenden Fehlern sind die Protokollda-teien von Apache, in erster Linie das Fehlerprotokoll, der beste Ort, um nach Fehlerur-sachen zu fahnden. Mit der Direktive LogLevel können Sie im Übrigen die Ausführ-lichkeit der protokollierten Meldungen einstellen. Dies ist z. B. nützlich, wenn Sie mehrDetails benötigen. Standardmäßig befindet sich das Fehlerprotokoll in /var/log/apache2/error_log.

TIPP: Ein einfacher Test

Die Apache-Protokollmeldungen können Sie mit dem Befehl tail -F/var/log/apache2/my_error_log überwachen. Führen Sie danach denBefehl rcapache2 restart aus. Versuchen Sie anschließend eine Verbindungmit einem Browser herzustellen und überprüfen Sie dort die Ausgabe.

Häufig wird vergessen, die Ports für Apache in der Firewall-Konfiguration des Serverszu öffnen. YaST bietet bei der Konfiguration von Apache eine eigene Option, die sichdieses speziellen Themas annimmt (siehe Abschnitt 26.2.2, „Konfigurieren von Apachemit YaST“ (S. 496)). Bei der manuellen Konfiguration von Apache können Sie die Portsfür HTTP und HTTPS in der Firewall über das Firewall-Modul von YaST öffnen.

Falls sich Ihr Problem nicht mithilfe der vorgenannten Ressourcen beheben lässt, findenSie weitere Informationen in der Apache-Fehlerdatenbank, die online unter http://httpd.apache.org/bug_report.html zur Verfügung steht. Sie können sichauch an die Apache-Benutzercommunity wenden, die Sie via Mailingliste unterhttp://httpd.apache.org/userslist.html erreichen. Des Weiterenempfehlen wir die Newsgroup comp.infosystems.www.servers.unix.

26.9 Weitere InformationenDas Paket apache2-doc, das an verschiedenen Orten bereitgestellt wird, enthält dasvollständige Apache-Handbuch für die lokale Installation und Referenz. Das Handbuchist nicht in der Standardinstallation enthalten. Am schnellsten installieren Sie es mitdem Befehl yast -i apache2-doc. Nach der Installation steht das Apache-Handbuch unter http://localhost/manual/ zur Verfügung. Unterhttp://httpd.apache.org/docs-2.2/ können Sie auch im Web daraufzugreifen. SUSE-spezifische Konfigurationstipps finden Sie im Verzeichnis /usr/share/doc/packages/apache2/README.*.

Der HTTP-Server Apache 527

Page 528: Suse 10.1 Linux Reference De

26.9.1 Apache 2.2Eine Liste der neuen Funktionen in Apache 2.2 finden Sie unter http://httpd.apache.org/docs/2.2/new_features_2_2.html. Upgrade-Informationenvon Version 2.0 auf Version 2.2 erhalten Sie unter http://httpd.apache.org/docs-2.2/upgrading.html.

26.9.2 Apache-ModuleWeitere Informationen über die in Abschnitt 26.4.5, „Externe Module“ (S. 511)beschriebenen, externen Apache-Module finden Sie unter folgenden Adressen:

FastCGIhttp://www.fastcgi.com/

mod_perlhttp://perl.apache.org/

mod_php5http://www.php.net/manual/en/install.unix.apache2.php

mod_pythonhttp://www.modpython.org/

mod_rubyhttp://www.modruby.net/

26.9.3 EntwicklungWeitere Informationen zur Entwicklung von Apache-Modulen sowie zur Teilnahmeam Apache-Webserver-Projekt finden Sie unter folgenden Adressen:

Informationen für Apache-Entwicklerhttp://httpd.apache.org/dev/

Dokumentation für Apache-Entwicklerhttp://httpd.apache.org/docs/2.2/developer/

528 Referenz

Page 529: Suse 10.1 Linux Reference De

Entwickeln von Apache-Modulen mit Perl und Chttp://www.modperl.com/

26.9.4 Verschiedene InformationsquellenWenn Sie in SUSE Linux Probleme mit Apache haben, werfen Sie einen Blick auf dieSUSE-Supportdatenbank unter http://portal.suse.com/sdb/en/index.html. Die Entstehungsgeschichte von Apache finden Sie unter http://httpd.apache.org/ABOUT_APACHE.html. Auf dieser Seite erfahren Sie auch, weshalbdieser Server Apache genannt wird.

Der HTTP-Server Apache 529

Page 530: Suse 10.1 Linux Reference De
Page 531: Suse 10.1 Linux Reference De

27DateisynchronisierungViele Menschen benutzen heutzutage mehrere Computer: einen Computer zu Hause,einen oder mehrere Computer am Arbeitsplatz und eventuell noch einen Laptop oderPDA für unterwegs. Viele Dateien werden auf allen diesen Computern benötigt. DaSie mit allen Computern arbeiten und die Dateien ändern möchten, sollten alle Datenüberall in aktueller Version zur Verfügung stehen.

27.1 Verfügbare Software zurDatensynchronisierung

Auf Computern, die ständig miteinander über ein schnelles Netzwerk in Verbindungstehen, ist die Datensynchronisierung kein Problem. In diesem Fall wählen Sie einNetzwerkdateisystem, wie zum Beispiel NFS, und speichern die Dateien auf einemServer. Alle Rechner greifen dabei über das Netzwerk auf ein und dieselben Daten zu.Dieser Ansatz ist unmöglich, wenn die Netzverbindung schlecht oder teilweise garnicht vorhanden ist. Wer mit einem Laptop unterwegs ist, ist darauf angewiesen, vonallen benötigten Dateien Kopien auf der lokalen Festplatte zu haben. Wenn Dateienbearbeitet werden, stellt sich aber schnell das Problem der Synchronisierung. WennSie eine Datei auf einem Computer ändern, stellen Sie sicher, dass die Kopie der Dateiauf allen anderen Computern aktualisiert wird. Dies kann bei gelegentlichen Kopiervor-gängen manuell mithilfe von scp oder rsync erledigt werden. Bei vielen Dateien wirddas jedoch schnell aufwändig und erfordert hohe Aufmerksamkeit vom Benutzer, umFehler, wie etwa das Überschreiben einer neuen mit einer alten Datei, zu vermeiden.

Dateisynchronisierung 531

Page 532: Suse 10.1 Linux Reference De

WARNUNG: Risiko des Datenverlusts

Bevor Sie Ihre Daten mit einem Synchronisierungssystem verwalten, sollten Siemit dem verwendeten Programm vertraut sein und dessen Funktionalität testen.Für wichtige Dateien ist das Anlegen einer Sicherungskopie unerlässlich.

Zur Vermeidung der zeitraubenden und fehlerträchtigen manuellen Arbeit bei derDatensynchronisierung gibt es Programme, die diese Aufgabe mit verschiedenenAnsätzen automatisieren. Die folgenden Zusammenfassungen sollen dem Benutzer eineVorstellung davon liefern, wie diese Programme funktionieren und genutzt werdenkönnen. Vor dem tatsächlichen Einsatz sollten Sie die Programmdokumentation sorg-fältig lesen.

27.1.1 UnisonUnison ist kein Netzwerkdateisystem. Die Dateien werden einfach lokal gespeichertund bearbeitet. Das Programm Unison kann manuell aufgerufen werden, um Dateienzu synchronisieren. Bei der ersten Synchronisierung wird auf den beteiligten beidenHosts eine Datenbank angelegt, in der Prüfsummen, Zeitstempel und Berechtigungender ausgewählten Dateien gespeichert sind. Beim nächsten Aufruf kann Unison erkennen,welche Dateien geändert wurden und die Übertragung vom oder zum anderen Hostvorschlagen. Für gewöhnlich können Sie alle Vorschläge annehmen.

27.1.2 CVSCVS, das meistens zur Versionsverwaltung von Quelltexten von Programmen benutztwird, bietet die Möglichkeit, Kopien der Dateien auf mehreren Computern zu führen.Damit eignet es sich auch für die Datensynchronisierung. CVS führt ein zentralesRepository auf dem Server, das nicht nur die Dateien, sondern auch die Änderungenan ihnen speichert. Lokal erfolgte Änderungen werden an das Repository übermitteltund können von anderen Computern durch ein Update abgerufen werden. Beide Proze-duren müssen vom Benutzer initiiert werden.

Dabei ist CVS bei gleichzeitigen Änderungen einer Datei auf mehreren Computernsehr fehlertolerant. Die Änderungen werden zusammengeführt und nur, wenn in gleichenZeilen Änderungen stattfanden, gibt es einen Konflikt. Die Datenbank bleibt im Kon-

532 Referenz

Page 533: Suse 10.1 Linux Reference De

fliktfall in einem konsistenten Zustand. Der Konflikt ist nur am Client-Host sichtbarund muss dort gelöst werden.

27.1.3 SubversionIm Gegensatz zu CVS, das sich im Laufe der Zeit „entwickelt“ hat, ist Subversion eindurchgängig konzipiertes Projekt. Subversion wurde als technisch verbesserter Nach-folger von CVS entwickelt.

Subversion wurde gegenüber seinem Vorgänger in vielen Bereichen deutlich verbessert.CVS verwaltet aufgrund seiner Geschichte nur Dateien und „weiß“ nichts von Verzeich-nissen. In Subversion dagegen besitzen auch Verzeichnisse eine Versionshistorie undkönnen wie Dateien kopiert und umbenannt werden. Des Weiteren können jeder Dateiund jedem Verzeichnis Metadaten hinzugefügt werden. Diese Metadaten könnenebenfalls der Versionsverwaltung unterliegen. Im Gegensatz zu CVS bietet Subversiontransparenten Netzwerkzugriff über einige Protokolle, wie zum Beispiel WebDAV(Web-based Distributed Authoring and Versioning). WebDAV erweitert das HTTP-Protokoll für verteiltes Arbeiten an Dateien auf entfernten Webservern.

Subversion wurde weitgehend auf der Grundlage von existierenden Programmpaketenzusammengestellt. Daher wird zum Einsatz von Subversion immer auch der WebserverApache mit der Erweiterung WebDAV verwendet.

27.1.4 mailsyncIm Unterschied zu den bisher erwähnten Synchronisierungswerkzeugen dient mailsynceinzig und allein der Synchronisierung von E-Mails zwischen verschiedenen Mailboxen.Es kann sich sowohl um lokale Mailbox-Dateien als auch um Mailboxen handeln, dieauf einem IMAP-Server untergebracht sind.

Dabei wird für jede Nachricht aufgrund der im E-Mail-Header enthaltenen Message-ID einzeln entschieden, ob sie synchronisiert bzw. gelöscht werden muss. Synchroni-sierung ist sowohl zwischen einzelnen Mailboxen als auch zwischen Hierarchien vonMailboxen möglich.

Dateisynchronisierung 533

Page 534: Suse 10.1 Linux Reference De

27.1.5 rsyncWenn Sie keine Versionskontrolle benötigen, aber große Dateistrukturen über langsameNetzwerkverbindungen synchronisieren möchten, bietet das Tool rsync ausgefeilteMechanismen an, um ausschließlich Änderungen an Dateien zu übertragen. Dies betrifftnicht nur Textdateien sondern auch binäre Dateien. Um die Unterschiede zwischenDateien zu erkennen, teilt rsync die Dateien in Blöcke auf und berechnet Prüfsummenzu diesen Blöcken.

Der Aufwand beim Erkennen der Änderungen hat seinen Preis. Für den Einsatz vonrsync sollten die Computer, die synchronisiert werden sollen, großzügig dimensioniertsein. RAM ist besonders wichtig.

27.1.6 Novell iFolderMit Novell iFolder können Sie jederzeit von überall auf Ihre Dateien zugreifen. WennSie Ihre Dateien in Ihrem iFolder-Verzeichnis ablegen, wird dieses sofort auf demServer synchronisiert. Mit dieser Methode können Sie überall arbeiten.

Novell iFolder erlaubt Ihnen auch, offline zu arbeiten. Das ist praktisch, wenn Sie z.B. bei der Arbeit an einem Notebook unterwegs keine Internet-Verbindung haben. Nacheiner erfolgreichen Verbindung mit dem Internet werden die Änderungen an Ihrer Arbeitan den Server übertragen.

Das Arbeiten mit iFolder umfasst die folgenden Schritte:

1. Melden Sie sich an, bevor Sie mit iFolder arbeiten.

2. Ändern Sie Ihre Einstellungen für die gewünschte Häufigkeit der Synchronisie-rung.

3. Synchronisieren Sie Ihre Dateien und beobachten Sie die Aktivität zwischenIhrem Client und dem iFolder-Server.

4. Lösen Sie alle etwaigen Konflikte, die bei der Synchronisierung auftreten.Konflikte treten auf, wenn Sie dieselbe Datei auf zwei verschiedenen Computernändern. iFolder speichert Konfliktdateien in einem separaten Verzeichnis, umDatenverlust zu vermeiden.

534 Referenz

Page 535: Suse 10.1 Linux Reference De

Weitere Informationen über iFolder erhalten Sie unter http://www.novell.com/en-en/documentation/. Tipps und Tricks zu iFolder siehe unter http://www.novell.com/coolsolutions/ifmag/.

27.2 Kriterien für die Auswahl einesProgramms

Bei der Entscheidung für ein Programm müssen einige wichtige Kriterien berücksichtigtwerden.

27.2.1 Client-Server oder Peer-to-PeerZur Verteilung von Daten sind zwei verschiedene Modelle verbreitet. Im ersten Modellgleichen alle Clients ihre Dateien mit einem zentralen Server ab. Der Server musszumindest zeitweise von allen Clients erreichbar sein. Dieses Modell wird von Subver-sion, CVS und WebDAV verwendet.

Die andere Möglichkeit ist, dass alle Hosts gleichberechtigt (als Peers) vernetzt sindund ihre Daten gegenseitig abgleichen. Diesen Ansatz verfolgt Unison. rsync arbeiteteigentlich im Client-Modus, jedoch kann jeder Client auch als Server fungieren.

27.2.2 PortabilitätSubversion, CVS und Unison sind auch für viele andere Betriebssysteme, wie verschie-dene Unix- und Windows-Systeme, erhältlich.

27.2.3 Interaktiv oder automatischIn Subversion, CVS, WebDAV und Unison startet der Benutzer die Datensynchronisie-rung manuell. Dies erlaubt die genaue Kontrolle über die abzugleichenden Dateien undeinen einfachen Umgang mit Konflikten. Andererseits können sich durch zu langeSynchronisierungsintervalle die Chancen für Konflikte erhöhen.

Dateisynchronisierung 535

Page 536: Suse 10.1 Linux Reference De

27.2.4 Konflikte: Auftreten und LösungKonflikte treten bei Subversion oder CVS nur selten auf, selbst wenn mehrere Leutean einem umfangreichen Programmprojekt arbeiten. Das liegt daran, dass die Dokumentezeilenweise zusammengeführt werden. Wenn ein Konflikt auftritt, ist davon immer nurein Client betroffen. In der Regel lassen sich Konflikte in Subversion oder CVS einfachlösen.

Unison meldet Konflikte und Sie können dann die betroffenen Dateien einfach von derSynchronisierung ausschließen. Jedoch lassen sich Änderungen nicht so einfachzusammenführen wie bei Subversion oder CVS.

Während in Subversion oder CVS im Konfliktfall Änderungen auch teilweise übernom-men werden können, wird bei WebDAV ein Checkin nur dann vollzogen, wenn diegesamte Änderung erfolgreich ist.

In rsync gibt es keine Konfliktbehandlung. Der Benutzer muss selbst darauf achten,dass er nicht versehentlich Dateien überschreibt, und alle etwaigen Konflikte manuelllösen. Zur Sicherheit können Sie zusätzlich ein Versionierungssystem, wie RCS, ver-wenden.

27.2.5 Auswählen und Hinzufügen vonDateien

In seiner Standardkonfiguration synchronisiert Unison eine ganze Verzeichnisstruktur.Neue Dateien in der Struktur werden automatisch in die Synchronisierung einbezogen.

Bei Subversion oder CVS müssen neue Verzeichnisse und Dateien explizit über denBefehl svn add bzw. cvs add hinzugefügt werden. Daraus resultiert eine genauereKontrolle über die zu synchronisierenden Dateien. Andererseits werden neue Dateienhäufig übersehen, vor allem, wenn aufgrund einer großen Anzahl von Dateien die Fra-gezeichen in der Ausgabe von svn update und svn status oder cvs updateignoriert werden.

536 Referenz

Page 537: Suse 10.1 Linux Reference De

27.2.6 ChronikSubversion und CVS bieten eine Rekonstruktion alter Dateiversionen als zusätzlicheFunktion. Bei jeder Änderung kann ein kurzer Bearbeitungsvermerk hinzugefügt werden.Damit lässt sich später die Entwicklung der Dateien aufgrund des Inhalts und der Ver-merke gut nachvollziehen. Für Diplomarbeiten und Programmtexte ist dies eine wert-volle Hilfe.

27.2.7 Datenmenge und SpeicherbedarfAuf jedem der beteiligten Computer ist für alle verteilten Daten genügend Speicherplatzauf der Festplatte erforderlich. Bei Subversion bzw. CVS fällt zusätzlich der Platzbedarffür die Repository-Datenbank auf dem Server an. Da auf dem Server auch die Dateihis-torie gespeichert wird, ist dort deutlich mehr Speicherplatz nötig. Bei Dateien imTextformat müssen nur geänderte Zeilen neu gespeichert werden. Bei binären Dateienwächst hingegen der Platzbedarf bei jeder Änderung um die Größe der Datei.

27.2.8 GUIUnison bietet eine grafische Benutzeroberfläche (GUI), die anzeigt, welche Synchroni-sierungsvorgänge Unison ausführen möchte. Nehmen Sie den Vorschlag an oderschließen Sie einzelne Dateien aus der Synchronisierung aus. Im Textmodus bestätigenSie die einzelnen Vorgänge interaktiv.

Erfahrene Benutzer führen Subversion bzw. CVS gewöhnlich über die Befehlszeileaus. Es gibt jedoch grafische Benutzeroberflächen für Linux (z. B. cervisia) und fürandere Betriebssysteme (z. B. wincvs). Viele Entwicklungswerkzeuge (z. B. kdevelop)und Texteditoren (z. B. emacs) unterstützen CVS oder Subversion. Die Behebung vonKonflikten wird mit diesen Frontends oft sehr vereinfacht.

27.2.9 BenutzerfreundlichkeitUnison und rsync sind ziemlich einfach zu benutzen und bieten sich auch für Anfängeran. CVS und Subversion sind etwas schwieriger zu bedienen. Benutzer sollten zu derenVerwendung das Zusammenspiel zwischen Repository und lokalen Daten verstehen.Änderungen der Daten sollten zunächst immer lokal mit dem Repository zusammenge-

Dateisynchronisierung 537

Page 538: Suse 10.1 Linux Reference De

führt werden. Dies erfolgt gewöhnlich mit dem Befehlcvsupdate bzw.svnupdate.Anschließend müssen die Daten über den Befehl cvs commit bzw. svn commitwieder in das Repository zurückgeschickt werden. Wenn dieser Vorgang verstandenwurde, ist CVS bzw. Subversion auch für Anfänger leicht zu benutzen.

27.2.10 Sicherheit vor AngriffenIdealerweise sollten die Daten bei der Übertragung vor Abhören oder Änderungengeschützt sein. Unison, CVS, rsync und Subversion lassen sich einfach über SSH(Secure Shell) benutzen und sind dann gut gegen derartige Angriffe gesichert. Es solltevermieden werden, CVS oder Unison über rsh (Remote Shell) einzusetzen. Zugriffeauf CVS mit dem Mechanismus pserver sind in ungeschützten Netzwerken ebenfallsnicht empfehlenswert. Subversion stellt bereits durch die Verwendung von Apache diebenötigten Sicherheitsmechanismen zur Verfügung.

27.2.11 Schutz vor DatenverlustCVS wird schon sehr lange von vielen Entwicklern zur Verwaltung ihrer Programmpro-jekte benutzt und ist äußerst stabil. Durch das Speichern der Entwicklungsgeschichtebietet CVS sogar Schutz vor bestimmten Benutzerfehlern, wie irrtümliches Löscheneiner Datei. Obwohl Subversion im Vergleich zu CVS noch nicht sehr weit verbreitetist, wird es bereits im produktiven Einsatz verwendet (z. B. vom Subversion-Projektselbst).

Unison ist noch relativ neu, weist aber eine hohe Stabilität auf. Es ist jedoch empfind-licher gegen Benutzerfehler. Wenn die Synchronisierung eines Löschvorgangs bei einerDatei einmal bestätigt wurde, ist die Datei nicht mehr zu retten.

Tabelle 27.1 Funktionen der Werkzeuge zur Datensynchronisierung: -- = sehrschlecht, - = schlecht bzw. nicht verfügbar, o = mittelmäßig, + = gut,

++ = ausgezeichnet, x = verfügbar

mailsyncrsyncCVS/SVNUnison

gleichC-SC-S/C-SgleichClient/Server

Lin,Un*xLin,Un*x,WinLin,Un*x,WinLin,Un*x,WinPortabilität

538 Referenz

Page 539: Suse 10.1 Linux Reference De

mailsyncrsyncCVS/SVNUnison

-xx/xxInteraktivität

++o/+-Geschwindigkeit

+o++/++oKonflikte

MailboxVerz.Ausw./Datei,Verz.

Verz.Dateiauswahl

--x/x-Chronik

+o--oSpeicherbedarf

--o/o+GUI

o+o/o+Schwierigkeit

+(SSL)+(ssh)+/+(ssh)+(ssh)Angriffe

++++/+++Datenverlust

27.3 Einführung in UnisonUnison eignet sich hervorragend für Synchronisierung und Transfer ganzer Verzeich-nisstrukturen. Die Synchronisierung erfolgt in beide Richtungen und lässt sich intuitivüber eine grafische Oberfläche steuern. Eine Konsolenversion kann ebenfalls verwendetwerden. Die Synchronisierung lässt sich auch automatisieren, damit keine Interaktionmit dem Benutzer anfällt. Dazu ist jedoch einige Erfahrung nötig.

27.3.1 AnforderungenUnison muss sowohl auf dem Client als auch auf dem Server installiert sein. Hier istmit Server ein zweiter, entfernter Host gemeint (im Unterschied zu CVS, sieheAbschnitt 27.1.2, „CVS“ (S. 532)).

Dateisynchronisierung 539

Page 540: Suse 10.1 Linux Reference De

Im folgenden Abschnitt wird Unison zusammen mit ssh verwendet. In diesem Fall mussein SSH-Client auf dem Client und ein SSH-Server auf dem Server installiert sein.

27.3.2 Verwendung von UnisonDas Grundprinzip bei Unison ist, zwei Verzeichnisse (so genannte roots) aneinanderzu binden. Diese Bindung ist symbolisch - es handelt sich nicht um eine Online-Verbin-dung. In diesem Beispiel ist das Verzeichnis-Layout wie folgt:

/home/tux/dir1Client:

/home/geeko/dir2Server:

Diese beiden Verzeichnisse sollen synchronisiert werden. Auf dem Client ist derBenutzer als tux bekannt, auf dem Server dagegen als geeko. Als Erstes soll getestetwerden, ob die Kommunikation zwischen Client und Server funktioniert:unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

Die häufigsten Probleme, die hierbei auftreten können:

• Die auf dem Client und Server eingesetzten Versionen von Unison sind nichtkompatibel.

• Der Server lässt keine SSH-Verbindung zu.

• Keiner der angegebenen beiden Pfade existiert.

Wenn alles funktioniert, lassen Sie die Option -testserver weg. Bei der erstenSynchronisierung kennt Unison die Beziehung zwischen den beiden Verzeichnissennoch nicht und macht von daher Vorschläge für die Übertragungsrichtung der einzelnenDateien und Verzeichnisse. Die Pfeile in der Spalte Action geben die Übertragungsrich-tung an. Ein Fragezeichen bedeutet, dass Unison keinen Vorschlag zur Übertragungs-richtung machen kann, da beide Versionen in der Zwischenzeit geändert wurden bzw.neu sind.

Mit den Pfeiltasten können Sie die Übertragungsrichtung für jeden Eintrag einstellen.Stimmen die Übertragungsrichtungen für alle angezeigten Einträge, dann klicken Sieeinfach auf Go.

540 Referenz

Page 541: Suse 10.1 Linux Reference De

Das Verhalten von Unison (z. B., ob in eindeutigen Fällen die Synchronisierung auto-matisch durchgeführt werden soll) lässt sich beim Programmstart mithilfe vonBefehlszeilenparametern steuern. Eine komplette Liste aller Parameter liefertunison --help.

Beispiel 27.1 Die Datei ~/.unison/example.prefsroot=/home/tux/dir1root=ssh://wilber@server//homes/wilber/dir2batch=true

Für jede Bindung wird im Benutzerverzeichnis~/.unison ein Synchronisierungspro-tokoll geführt. Konfigurationssets, wie ~/.unison/example.prefs, könnenebenfalls in diesem Verzeichnis gespeichert werden. Um die Synchronisierung zustarten, geben Sie diese Datei als Befehlszeilenparameter an, wie inunison example.prefs.

27.3.3 Weitere InformationenDie offizielle Dokumentation zu Unison ist äußerst nützlich. Daher gibt dieser Abschnittnur eine kurze Einführung. Das vollständige Handbuch steht unter http://www.cis.upenn.edu/~bcpierce/unison/ und mit dem SUSE-Paket unison zurVerfügung.

27.4 Einführung in CVSCVS bietet sich zur Synchronisierung an, wenn einzelne Dateien häufig bearbeitetwerden und in einem Dateiformat vorliegen, wie ASCII-Text oder Programmquelltext.Die Verwendung von CVS für die Synchronisierung von Daten in anderen Formaten,wie z. B. JPEG-Dateien, ist zwar möglich, führt aber schnell zu großen Datenmengen,da jede Variante einer Datei dauerhaft auf dem CVS-Server gespeichert wird. Zudembleiben in solchen Fällen die meisten Möglichkeiten von CVS ungenutzt. Die Verwen-dung von CVS zur Dateisynchronisierung ist nur möglich, wenn alle Arbeitsstationenauf denselben Server zugreifen können.

Dateisynchronisierung 541

Page 542: Suse 10.1 Linux Reference De

27.4.1 Konfigurieren eines CVS-ServersDer Server ist der Ort, an dem sich alle gültigen Dateien befinden, einschließlich derneuesten Version jeder Datei. Jede stationäre Arbeitsstation kann als Server benutztwerden. Wünschenswert ist, dass die Daten des CVS-Repository in regelmäßige Backupseinbezogen werden.

Beim Konigurieren eines CVS-Servers ist es sinnvoll, Benutzern über SSH Zugangzum Server zu gestatten. Ist auf diesem Server der Benutzer als tux bekannt und sowohlauf dem Server als auch auf dem Client die CVS-Software installiert, müssen auf derClient-Seite die folgenden Umgebungsvariablen gesetzt sein:CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir

Mit dem Befehl cvs init lässt sich der CVS-Server von der Client-Seite aus initiali-sieren. Das ist nur einmal erforderlich.

Abschließend muss ein Name für die Synchronisierung festgelegt werden. Wählen odererzeugen Sie auf dem Client ein Verzeichnis, das ausschließlich Dateien enthält, dievon CVS verwaltet werden sollen (es darf auch leer sein). Der Name des Verzeichnissesist auch der Name der Synchronisierung. In diesem Beispiel wird das Verzeichnissynchome genannt. Wechseln Sie in dieses Verzeichnis. Um den Synchronisationsna-men auf synchome zu setzen, geben Sie Folgendes ein:cvs import synchome tux wilber

Viele Befehle von CVS erfordern einen Kommentar. Zu diesem Zweck startet CVSeinen Editor (den in der Umgebungsvariable $EDITOR definierten, ansonsten vi). DenAufruf des Editors können Sie umgehen, indem Sie den Kommentar bereits in derBefehlszeile eingeben, wie in folgendem Beispiel:cvs import -m 'Das ist ein Test' synchome tux wilber

27.4.2 Verwenden von CVSDas Synchronisierungsrepository kann jetzt mit cvs co synchome von allen Hostsgespeichert ("ausgecheckt") werden. Dadurch wird auf dem Client das neue Unterver-zeichnis synchome angelegt. Um Ihre Änderungen an den Server zu übermitteln,wechseln Sie in das Verzeichnis synchome (oder eines seiner Unterverzeichnisse)und geben Sie cvs commit ein.

542 Referenz

Page 543: Suse 10.1 Linux Reference De

Standardmäßig werden alle Dateien (einschließlich Unterverzeichnisse) an den Serverübermittelt. Um nur einzelne Dateien oder Verzeichnisse zu übermitteln, geben Siediese folgendermaßen an: cvs commit datei1 verzeichnis1. Neue Dateienund Verzeichnisse müssen dem Repository mit einem Befehl, wie cvs add datei1verzeichnis1, hinzugefügt werden, bevor sie an den Server übermittelt werden.Übermitteln Sie anschließend die neu hinzugefügten Dateien und Verzeichnisse mitcvs commit datei1 verzeichnis1.

Wenn Sie zu einer anderen Arbeitsstation wechseln, speichern Sie das Synchronisie-rungsrepository, falls dies nicht in einer früheren Sitzung an derselben Arbeitsstationerfolgt ist (siehe oben).

Starten Sie die Synchronisierung mit dem Server über cvs update. Aktualisieren Sieeinzelne Dateien oder Verzeichnisse, wie incvsupdate datei1 verzeichnis1.Den Unterschied zwischen den aktuellen Dateien und den auf dem Server gespeichertenVersionen sehen Sie mithilfe des Befehls cvs diff oder cvs diff datei1verzeichnis1. Verwenden Sie cvs -nq update, um zu sehen, welche Dateienvon einer Aktualisierung betroffen sind.

Hier sind einige der Statussymbole, die während einer Aktualisierung angezeigt werden:

UDie lokale Version wurde aktualisiert. Dies betrifft alle Dateien, die vom Serverbereitgestellt werden und auf dem lokalen System fehlen.

MDie lokale Version wurde geändert. Falls Änderungen am Server erfolgt sind, wares möglich, die Unterschiede mit der lokalen Kopie zusammenzuführen.

PDie lokale Version wurde durch einen Patch der Server-Version aktualisiert.

CDie lokale Datei hat einen Konflikt mit der aktuellen Version im Repository.

?Die Datei existiert nicht in CVS.

Der Status M kennzeichnet eine lokal geänderte Datei. Entweder übermitteln Sie dielokale Kopie an den Server oder Sie entfernen die lokale Datei und führen die Aktuali-sierung erneut durch. In diesem Fall wird die fehlende Datei vom Server abgerufen.

Dateisynchronisierung 543

Page 544: Suse 10.1 Linux Reference De

Wenn von verschiedenen Benutzern die gleiche Datei in derselben Zeile editiert unddann übermittelt wurde, entsteht ein Konflikt, der mit C gekennzeichnet wird.

Beachten Sie in diesem Fall die Konfliktmarkierungen (»> und «<) in der Datei undentscheiden Sie sich für eine der beiden Versionen. Da dies eine ziemlich unangenehmeAufgabe sein kann, könnten Sie sich entscheiden, Ihre Änderungen zu verwerfen, dielokale Datei zu löschen und dann mit der Eingabe cvs up die aktuelle Version vomServer abzurufen.

27.4.3 Weitere InformationenDieser Abschnitt gibt nur eine kurze Einführung in die vielen Möglichkeiten von CVS.Ausführliche Dokumentation steht unter den folgenden URLs zur Verfügung:http://www.cvshome.org/http://www.gnu.org/manual/

27.5 Einführung in SubversionSubversion ist ein freies Open Source-System zur Versionskontrolle und wird häufigals Nachfolger von CVS betrachtet, d. h. bereits vorgestellte Eigenschaften von CVStreffen auch zum großen Teil auf Subversion zu. Es bietet sich vor allem an, wenn Siedie Vorteile von CVS genießen möchten, ohne dessen Nachteile in Kauf nehmen zumüssen. Viele dieser Eigenschaften wurden bereits ansatzweise in Abschnitt 27.1.3,„Subversion“ (S. 533) erwähnt.

27.5.1 Installieren eines Subversion-ServersDie Installation einer Repository-Datenbank auf einem Server ist eine relativ einfacheProzedur. Subversion bietet dafür ein einfaches Administrationswerkzeug. Geben Siezum Anlegen eines neuen Repositorys den folgenden Befehl ein:svnadmin create /path/to/repository

Weitere Optionen erhalten Sie mitsvnadminhelp. Im Unterschied zu CVS verwendetSubversion nicht RCS als Basis, sondern andere Arten von Repository. Für gewöhnlichwird die Berkeley-Datenbank oder FSFS (ein Repository, welches das Dateisystemdirekt verwendet) verwendet. Legen Sie ein Repository nicht auf entfernten Dateisyste-

544 Referenz

Page 545: Suse 10.1 Linux Reference De

men, wie NFS, AFS oder Windows SMB, an. Die Datenbank benötigt POSIX-Sperrme-chanismen, die diese Dateisysteme nicht unterstützen.

Der Befehl svnlook bietet Informationen über ein bestehendes Repository.svnlook info /path/to/repository

Ein Server muss konfiguriert werden, um verschiedenen Benutzern den Zugriff auf dasRepository zu erlauben. Verwenden Sie dafür entweder den Apache-Webserver mitWebDAV oder svnserve, der Server, der mit Subversion geliefert wird. Sobald svnserveeingerichtet ist und läuft, kann über eine URL mit svn:// oder svn+ssh:// aufdas Repository zugegriffen werden. Benutzer, die sich beim Aufruf von svn authenti-fizieren sollten, können in /etc/svnserve.conf eingerichtet werden.

Die Entscheidung für Apache oder svnserve hängt von vielen Faktoren ab. Sie solltendas Subversion-Handbuch studieren. Weitere Informationen dazu finden Sie inAbschnitt 27.5.3, „Weitere Informationen“ (S. 547).

27.5.2 Benutzung und BetriebVerwenden Sie den Befehl svn (ähnlich wie cvs) für den Zugriff auf ein Subversion-Repository. Mit svn help erhalten Sie die Beschreibung von Befehlsparametern:checkout (co): Speichern einer Arbeitskopie aus einem Repository auf dem Client. Syntax: checkout URL[@REV]... [PATH]

Sofern angegeben, bestimmt REV, in welcher Revision die URL zuerst nachgeschlagen wird.

Wenn PATH weggelassen wird, wird der URL-Basisname als Ziel verwendet. Sind mehrere URLs angegeben, wird jede in einem Unterverzeichnis von PATH gespeichert, wobei der Name des Unterverzeichnisses dem Basisnamen der URL entspricht. ...

Auf den Inhalt, den ein korrekt konfigurierter Server mit einem entsprechenden Repo-sitory liefert, kann jeder Client mit einem der folgenden Befehle zugreifen:svn list http://svn.example.com/path/to/project

Oder:svn list svn://svn.example.com/path/to/project

Dateisynchronisierung 545

Page 546: Suse 10.1 Linux Reference De

Speichern Sie ein bestehendes Projekt im aktuellen Verzeichnis mit dem Befehlsvn checkout:svn checkout http://svn.example.com/path/to/project nameofproject

Dadurch wird auf dem Client das neue Unterverzeichnis nameofproject angelegt.Anschließend können Operationen (Hinzufügen, Kopieren, Umbenennen, Löschen)daran ausgeführt werden:svn add filesvn copy oldfile newfilesvn move oldfile newfilesvn delete file

Diese Befehle können auch auf Verzeichnisse angewendet werden. Subversion kannzusätzlich Eigenschaften einer Datei oder eines Verzeichnisses aufzeichnen:svn propset license GPL foo.txt

Das vorangehende Beispiel setzt den Wert GPL für die Eigenschaft license. ZeigenSie Eigenschaften an mit svn proplist:svn proplist --verbose foo.txt Properties on 'foo.txt': license : GPL

Speichern Sie die Änderungen mit svn commit auf dem Server. Ein anderer Benutzerkann Ihre Änderungen in sein Arbeitsverzeichnis übernehmen, indem er mithilfe vonsvn update eine Synchronisierung mit dem Server ausführt.

Im Unterschied zu CVS kann der Status eines Arbeitsverzeichnisses in Subversion ohneZugriff auf das Repository über den Befehl svn status angezeigt werden. LokaleÄnderungen werden in fünf Spalten angezeigt. Die erste Spalte ist dabei die wichtigste:

' 'Keine Änderungen.

'A'Objekt ist zum Hinzufügen markiert.

'D'Objekt ist zum Löschen markiert.

'M'Objekt wurde geändert.

546 Referenz

Page 547: Suse 10.1 Linux Reference De

'C'Objekt ist in einem Konflikt.

'I'Objekt wurde ignoriert.

'?'Objekt unterliegt nicht der Versionskontrolle.

'!'Objekt wird vermisst. Diese Markierung erscheint, wenn das Objekt ohne denBefehl svn gelöscht oder verschoben wurde.

'~'Objekt wurde als Datei verwaltet, wurde jedoch mittlerweile durch ein Verzeichnisersetzt, oder umgekehrt.

Die zweite Spalte zeigt den Status der Eigenschaften. Die Bedeutung aller übrigenSpalten kann im Subversion-Handbuch nachgeschlagen werden.

27.5.3 Weitere InformationenErste Quelle ist die Homepage von Subversion unterhttp://subversion.tigris.org/. Ein sehr empfehlenswertes, komplett englischsprachiges Buch finden Sie nachder Installation des Pakets subversion-doc im Verzeichnis file:///usr/share/doc/packages/subversion/html/book.html. Es ist auch unterhttp://svnbook.red-bean.com/svnbook/index.html verfügbar.

27.6 Einführung in rsyncrsync bietet sich immer dann an, wenn große Datenmengen, die sich nicht wesentlichändern, regelmäßig übertragen werden müssen. Dies ist z. B. bei der Erstellung vonSicherungskopien häufig der Fall. Ein weiteres Einsatzgebiet sind so genannte Staging-Server. Dabei handelt es sich um Server, auf denen komplette Verzeichnisstrukturenvon Webservern gespeichert werden, die regelmäßig auf den eigentlichen Webserverin einer „DMZ“ gespiegelt werden.

Dateisynchronisierung 547

Page 548: Suse 10.1 Linux Reference De

27.6.1 Konfiguration und Betriebrsync lässt sich in zwei verschiedenen Modi benutzen. Zum einen kann rsync zumArchivieren oder Kopieren von Daten verwendet werden. Dazu ist auf dem Zielsystemnur eine Remote-Shell, wie z. B. SSH, erforderlich. Jedoch kann rsync auch als Daemonverwendet werden und Verzeichnisse im Netz zur Verfügung stellen.

Die grundlegende Verwendung von rsync erfordert keine besondere Konfiguration.Mit rsync ist es direkt möglich, komplette Verzeichnisse auf ein anderes System zuspiegeln. Beispielsweise kann mit folgendem Befehl ein Backup des Home-Verzeich-nisses von „tux“ auf einem Backupserver „sun“ angelegt werden:rsync -baz -e ssh /home/tux/ tux@sun:backup

Mit dem folgenden Befehl wird das Verzeichnis zurückgespielt:rsync -az -e ssh tux@sun:backup /home/tux/

Bis hierher unterscheidet sich die Benutzung kaum von einem normalen Kopierpro-gramm, wie scp.

Damit rsync seine Funktionen voll ausnutzen kann, sollte das Programm im „rsync“-Modus betrieben werden. Dazu wird auf einem der Systeme der Daemon rsyncd gest-artet. Konfigurieren Sie rsync in der Datei/etc/rsyncd.conf. Wenn beispielsweisedas Verzeichnis/srv/ftp über rsync zugänglich sein soll, verwenden Sie die folgendeKonfiguration:gid = nobodyuid = nobodyread only = trueuse chroot = notransfer logging = truelog format = %h %o %f %l %blog file = /var/log/rsyncd.log

[FTP] path = /srv/ftp comment = An Example

Starten Sie dann rsyncd mit rcrsyncd start. rsyncd kann auch automatisch beimBootvorgang gestartet werden. Hierzu muss entweder dieser Dienst in YaST im Runle-vel-Editor aktiviert oder manuell der Befehl insserv rsyncd eingegeben werden.Alternativ kann rsyncd auch von xinetd gestartet werden. Dies empfiehlt sich aber nurbei Servern, auf denen rsyncd nicht allzu oft verwendet wird.

548 Referenz

Page 549: Suse 10.1 Linux Reference De

Im obigen Beispiel wird auch eine Protokolldatei über alle Verbindungen angelegt.Diese Datei wird unter /var/log/rsyncd.log abgelegt.

Dann kann die Übertragung von einem Clientsystem aus getestet werden. Das geschiehtmit folgendem Befehl:rsync -avz sun::FTP

Dieser Befehl listet alle Dateien auf, die auf dem Server im Verzeichnis /srv/ftpliegen. Diese Anfrage wird auch in der Protokolldatei unter/var/log/rsyncd.logaufgezeichnet. Um die Übertragung tatsächlich zu starten, geben Sie ein Zielverzeichnisan. Verwenden Sie . für das aktuelle Verzeichnis. Beispiel:rsync -avz sun::FTP .

Standardmäßig werden bei der Synchronisierung mit rsync keine Dateien gelöscht.Wenn dies erzwungen werden soll, muss zusätzlich die Option --delete angegebenwerden. Um sicherzustellen, dass keine neueren Dateien überschrieben werden, kannstattdessen die Option --update angegeben werden. Dadurch entstehende Konfliktemüssen manuell aufgelöst werden.

27.6.2 Weitere InformationenWichtige Informationen zu rsync finden Sie in den Manualpages man rsync undman rsyncd.conf. Eine technische Dokumentation zur Vorgehensweise von rsyncfinden Sie unter /usr/share/doc/packages/rsync/tech_report.ps.Aktuelles zu rsync finden Sie auf der Projekt-Website unter http://rsync.samba.org/.

27.7 Einführung in mailsyncmailsync eignet sich vor allem für die folgenden drei Aufgaben:

• Synchronisierung von lokal gespeicherten E-Mails mit E-Mails, die auf einemServer gespeichert sind

• Migration von Mailboxen in ein anderes Format bzw. auf einen anderen Server

• Integritätsprüfung einer Mailbox bzw. Suche nach Duplikaten

Dateisynchronisierung 549

Page 550: Suse 10.1 Linux Reference De

27.7.1 Konfiguration und Verwendungmailsync unterscheidet zwischen der Mailbox an sich (einem so genannten Store) undder Verknüpfung zwischen zwei Mailboxen (einem so genannten Channel). Die Defi-nitionen der Stores und Channels sind in der ~/.mailsync abgelegt. Die folgendenAbschnitte geben einige Beispiele für Stores.

Eine einfache Definition kann wie folgt aussehen:store saved-messages { pat Mail/saved-messagesprefix Mail/}

Mail/ ist ein Unterverzeichnis im Home-Verzeichnis des Benutzers, das Ordner mitE-Mails enthält, unter anderem den Ordner saved-messages. Wird nun mailsyncmit dem Befehl mailsync -m saved-messages gestartet, wird ein Index allerNachrichten in saved-messages aufgelistet. Für die folgende Definition:store localdir { pat Mail/* prefix Mail/ }

listet der Befehl mailsync -m localdir alle Nachrichten auf, die unter Mail/gespeichert sind. Der Befehl mailsync localdir listet dagegen die Ordnernamenauf. Die Spezifikation eines Store auf einem IMAP-Server sieht wie folgt aus:store imapinbox {server {mail.edu.harvard.com/user=gulliver}ref {mail.edu.harvard.com}pat INBOX }

Das obige Beispiel adressiert nur den Hauptordner auf dem IMAP-Server. Ein Storefür die Unterordner würde wie folgt aussehen:store imapdir {server {mail.edu.harvard.com/user=gulliver}ref {mail.edu.harvard.com}pat INBOX.*prefix INBOX.}

Unterstützt der IMAP-Server verschlüsselte Verbindungen, sollte die Server-Spezifi-kation wie folgt geändert werden:

550 Referenz

Page 551: Suse 10.1 Linux Reference De

server {mail.edu.harvard.com/ssl/user=gulliver}

oder, falls das Server-Zertifikat nicht bekannt ist, wie folgt:server {mail.edu.harvard.com/ssl/novalidate-cert/user=gulliver}

Das Präfix wird später erklärt.

Nun sollen die Ordner unter Mail/mit den Unterverzeichnissen auf dem IMAP-Serververbunden werden:channel folder localdir imapdir {msinfo .mailsync.info}

mailsync verfolgt mithilfe der Dateimsinfo, welche Nachrichten bereits synchronisiertwurden.

Der Befehl mailsync folder bewirkt Folgendes:

• Auf beiden Seiten wird das Mailbox-Muster erweitert.

• Von den resultierenden Ordnernamen wird jeweils das Präfix entfernt.

• Die Ordner werden paarweise synchronisiert (bzw. angelegt, falls noch nicht vor-handen).

Der Ordner INBOX.sent-mail auf dem IMAP-Server wird also mit dem lokalenOrdner Mail/sent-mail synchronisiert (obige Definitionen vorausgesetzt). DieSynchronisierung zwischen den einzelnen Ordnern wird wie folgt durchgeführt:

• Existiert eine Nachricht schon auf beiden Seiten, geschieht nichts.

• Fehlt die Nachricht auf einer Seite und ist neu (d. h. nicht in der Datei msinfoprotokolliert), wird sie dorthin übertragen.

• Existiert die Nachricht nur auf einer Seite und ist alt (d. h. bereits in der Dateimsinfo protokolliert), wird sie dort gelöscht (da sie offenbar auf der anderenSeite existiert hatte und dort gelöscht wurde).

Um im Voraus ein Bild davon zu erhalten, welche Nachrichten bei einer Synchronisie-rung übertragen und welche gelöscht werden, starten Sie mailsync mit einem Channelund einem Store gleichzeitig: mailsync folder localdir. Dadurch erhaltenSie eine Liste aller Nachrichten, die auf dem lokalen Host neu sind, sowie eine Liste

Dateisynchronisierung 551

Page 552: Suse 10.1 Linux Reference De

aller Nachrichten, die bei einer Synchronisierung auf der IMAP-Seite gelöscht werdenwürden. Ähnlich erhalten Sie mit mailsync folder imapdir sowohl eine Listealler Nachrichten, die auf der IMAP-Seite neu sind, als auch eine Liste aller Nachrichten,die bei einer Synchronisierung auf dem lokalen Host gelöscht werden würden.

27.7.2 Potenzielle ProblemeIm Fall eines Datenverlusts ist es das sicherste Vorgehen, die zugehörige Channel-Protokolldatei msinfo zu löschen. Dadurch gelten alle Nachrichten, die nur auf jeweilseiner Seite existieren, als neu und werden bei der nächsten Synchronisierung übertragen.

Nur Nachrichten mit einer Message-ID werden in die Synchronisierung einbezogen.Nachrichten ohne Message-ID werden einfach ignoriert, d. h. sie werden weder über-tragen noch gelöscht. Das Fehlen einer Message-ID wird in der Regel durch fehlerhafteProgramme beim Senden oder Schreiben einer Nachricht verursacht.

Auf bestimmten IMAP-Servern werden der Hauptordner mit INBOX und Unterordnermit einem beliebigen Namen angesprochen (im Gegensatz zu INBOX undINBOX.name). Dadurch ist es bei solchen IMAP-Servern nicht möglich, ein Musterausschließlich für die Unterordner anzugeben.

Die von mailsync benutzten Mailbox-Treiber (c-client) setzen nach der erfolgreichenÜbertragung der Nachrichten an einen IMAP-Server ein spezielles Status-Flag. Daherkönnen einige E-Mail-Programme, wie z. B. mutt, diese Nachrichten nicht als neuerkennen. Sie können das Setzen dieses speziellen Status-Flags mithilfe der Option -nverhindern.

27.7.3 Weitere InformationenDie im Paket mailsync enthaltene README-Datei unter /usr/share/doc/packages/mailsync/ bietet weitere Informationen. Von besonderem Interesse istin diesem Zusammenhang auch RFC 2076 „Common Internet Message Headers“.

552 Referenz

Page 553: Suse 10.1 Linux Reference De

28SambaMit Samba kann ein Unix-Computer als Datei- und Druckserver für DOS-, Windows-und OS/2-Computer konfiguriert werden. Samba ist mittlerweile ein sehr umfassendesund komplexes Produkt. Konfigurieren Sie Samba mit YaST, SWAT (eine Web-Schnittstelle) oder der Konfigurationsdatei.

28.1 TerminologieSMB-Protokoll

Samba verwendet das SMB-Protokoll (Server Message Block), das auf den NetBI-OS-Diensten basiert. Auf Drängen von IBM gab Microsoft das Protokoll frei,sodass auch andere Softwarehersteller Anbindungen an ein Microsoft-Domänen-netzwerk einrichten konnten. Samba setzt das SMB- auf das TCP/IP-Protokoll auf.Entsprechend muss auf allen Clients das TCP/IP-Protokoll installiert sein.

CIFS-ProtokollDas CIFS-Protokoll (Common Internet File System) ist ein weiteres Protokoll, dasvon Samba unterstützt wird. CIFS definiert ein Standardprotokoll für den Fernzugriffauf Dateisysteme über das Netzwerk, das Benutzergruppen die netzwerkweiteZusammenarbeit und gemeinsame Dokumentbenutzung ermöglicht.

NetBIOSNetBIOS ist eine Softwareschnittstelle (API), die die Kommunikation zwischenComputern ermöglicht. Dabei wird ein Namensdienst bereitgestellt. Mit diesemDienst können die an das Netzwerk angeschlossenen Computer Namen für sichreservieren. Nach dieser Reservierung können die Computer anhand ihrer Namen

Samba 553

Page 554: Suse 10.1 Linux Reference De

adressiert werden. Für die Überprüfung der Namen gibt es keine zentrale Instanz.Jeder Computer im Netzwerk kann beliebig viele Namen reservieren, solange dieNamen noch nicht Gebrauch sind. Die NetBIOS-Schnittstelle kann in unterschied-lichen Netzwerkarchitekturen implementiert werden. Eine Implementierung, dierelativ nah an der Netzwerkhardware arbeitet, nennt sich NetBEUI, wird aberhäufig auch als NetBIOS bezeichnet. Mit NetBIOS implementierte Netzwerkpro-tokolle sind IPX (NetBIOS über TCP/IP) von Novell und TCP/IP.

Die per TCP/IP übermittelten NetBIOS-Namen haben nichts mit den in der Datei/etc/hosts oder per DNS vergebenen Namen zu tun. NetBIOS ist ein eigener,vollständig unabhängiger Namensraum. Es empfiehlt sich jedoch, für einfachereAdministration NetBIOS-Namen zu vergeben, die den jeweiligen DNS-Hostnamenentsprechen. Für einen Samba-Server ist dies die Voreinstellung.

Samba-ServerSamba-Server ist ein Server, der SMB/CIFS-Dienste sowie NetBIOS over IP-Namensdienste für Clients zur Verfügung stellt. Für Linux gibt es zwei Daemonsfür Samba-Server: smnd für SMB/CIFS-Dienste und nmbd für Namensdienste.

Samba-ClientSamba-Client ist ein System, das Samba-Dienste von einem Samba-Server überdas SMB-Protokoll nutzt. Das Samba-Protokoll wird von allen gängigenBetriebssystemen wie Mac OS X, Windows und OS/2 unterstützt. Auf den Compu-tern muss das TCP/IP-Protokoll installiert sein. Für die verschiedenen UNIX-Ver-sionen stellt Samba einen Client zur Verfügung. Für Linux gibt es zudem einDateisystem-Kernel-Modul für SMB, das die Integration von SMB-Ressourcenauf Linux-Systemebene ermöglicht. Sie brauchen für Samba-Client keinen Daemonauszuführen.

FreigabenSMB-Server stellen den Clients Plattenplatz in Form von Freigaben (Shares) zurVerfügung. Freigaben sind Drucker und Verzeichnisse mit ihren Unterverzeichnissenauf dem Server. Eine Freigabe wird unter einem eigenen Namen exportiert undkann von Clients unter diesem Namen angesprochen werden. Der Freigabenamekann frei vergeben werden. Er muss nicht dem Namen des exportierten Verzeich-nisses entsprechen. Ebenso wird einem Drucker ein Name zugeordnet. Unter diesemNamen können die Clients auf den Drucker zugreifen.

554 Referenz

Page 555: Suse 10.1 Linux Reference De

28.2 Starten und Stoppen von SambaSie können den Samba-Server automatisch beim Booten oder manuell starten bzw.stoppen. Start- und Stopprichtlinien sind Teil der Samba-Serverkonfiguration mit YaST,die in Abschnitt 28.3.1, „Konfigurieren eines Samba-Servers mit YaST“ (S. 555)beschrieben ist.

Um die Ausführung von Samba-Diensten mit YaST zu starten oder zu stoppen, verwen-den Sie System→ Systemdienste (Runlevel). In der Befehlszeile stoppen Sie für Sambaerforderliche Dienste mitrcsmb stop && rcnmb stop und starten sie mitrcnmbstart && rcsmb start.

28.3 Konfigurieren einesSamba-Servers

Ein Samba-Server in SUSE Linux kann auf zwei Arten konfiguriert werden: mit YaSToder manuell. Bei der manuellen Konfiguration können Sie mehr Details einstellen,allerdings müssen Sie ohne den Komfort der Benutzeroberfläche von YaST zurecht-kommen.

28.3.1 Konfigurieren eines Samba-Serversmit YaST

Um einen Samba-Server zu konfigurieren, starten Sie YaST und wählen Sie Netzwerk-dienste → Samba-Server. Beim ersten Start des Moduls wird das Dialogfeld Samba-Server-Installation geöffnet, das Sie auffordert, ein paar grundlegende Entscheidungenhinsichtlich der Serveradministration zu treffen, und Sie am Ende der Konfigurationnach dem Passwort für Samba-root fragt. Bei späteren Starts wird das DialogfeldSamba-Server-Konfiguration geöffnet.

Das Dialogfeld Samba-Server-Installation besteht aus zwei Teilen:

Arbeitsgruppe oder DomäneWählen Sie unter Arbeitsgruppe oder Domäne eine Arbeitsgruppe oder Domäneaus oder geben Sie eine neue ein und klicken Sie auf Weiter.

Samba 555

Page 556: Suse 10.1 Linux Reference De

Samba-ServertypGeben Sie im nächsten Schritt an, ob Ihr Server als PDC fungieren soll, und klickenSie auf Weiter.

Sie können später alle Einstellungen von Samba-Server-Installation im DialogfeldSamba-Server-Konfiguration auf der Registerkarte Identität ändern.

Beim ersten Start des Samba-Servermoduls wird das Dialogfeld Samba-Server-Konfi-guration unmittelbar nach dem Dialogfeld Samba-Server-Installation geöffnet. Esbesteht aus drei Registerkarten:

StartAuf der Registerkarte Start können Sie den Start des Samba-Servers einstellen.Um den Dienst bei jedem Systemboot zu starten, wählen Sie During Boot (BeimSystemstart). Um den manuellen Start zu aktivieren, wählen SieManually (Manuell).Weitere Informationen über das Starten eines Samba-Servers erhalten Sie inAbschnitt 28.2, „Starten und Stoppen von Samba“ (S. 555).

Auf dieser Registerkarte können Sie auch Ports in Ihrer Firewall öffnen. WählenSie hierfürOpen Port in Firewall (Firewall-Port öffnen). Wenn mehrere Netzwerk-schnittstellen vorhanden sind, wählen Sie die Netzwerkschnittstelle für Samba-Dienste, indem Sie auf Firewall-Details klicken, die Schnittstellen auswählen unddann auf OK klicken.

FreigabenLegen Sie auf dieser Registerkarte die zu aktivierenden Samba-Freigaben fest. Esgibt einige vordefinierte Freigaben wie Home-Verzeichnisse und Drucker. MitStatus wechseln können Sie zwischen den Statuswerten Aktiviert und Deaktiviertwechseln. Klicken Sie aufHinzufügen, um neue Freigaben hinzuzufügen, bzw. aufLöschen, um die ausgewählte Freigabe zu entfernen.

IdentitätAuf der Registerkarte Identität legen Sie fest, zu welcher Domäne der Host gehört(Grundeinstellungen) und ob ein alternativer Hostname im Netzwerk (NetBIOS-Hostname) verwendet werden soll. Globale Einstellungen für Experten oder dieBenutzerauthentifizierung können Sie festlegen, wenn Sie auf Erweiterte Einstel-lungen klicken.

Klicken Sie zum Abschließen der Konfiguration auf Beenden.

556 Referenz

Page 557: Suse 10.1 Linux Reference De

28.3.2 Web-Administration mit SWATEin alternatives Werkzeug für die Administrationsaufgaben von Samba-Server istSWAT (Samba Web Administration Tool). Es stellt eine einfache Webschnittstelle zurVerfügung, mit der Sie den Samba-Server konfigurieren können. Sie können SWATverwenden, indem Sie in einem Webbrowser http://localhost:901 aufrufenund sich als root anmelden. Wenn Sie über kein spezielles root-Konto für Sambaverfügen, verwenden Sie das root-Systemkonto.

ANMERKUNG: Aktivieren von SWAT

Nach der Installation von Samba-Server ist SWAT nicht aktiviert. Öffnen Sie zurAktivierung in YaST Netzwerkdienste→ Netzwerkdienste (xinetd), aktivieren Siedie Konfiguration der Netzwerkdienste, wählen Sie swat aus der Tabelle undklicken Sie auf Status wechseln (Ein oder Aus).

28.3.3 Manuelles Konfigurieren des ServersWenn Sie Samba als Server einsetzen möchten, installieren Sie samba. Die Hauptkon-figurationsdatei von Samba ist /etc/samba/smb.conf. Diese Datei kann in zweilogische Bereiche aufgeteilt werden. Der Abschnitt [global] enthält die zentralenund globalen Einstellungen. Die Abschnitte [share] enthalten die einzelnen Datei-und Druckerfreigaben. Mit dieser Vorgehensweise können Details der Freigabenunterschiedlich oder im Abschnitt[global] übergreifend festgelegt werden. Letzteresträgt zur Übersichtlichkeit der Konfigurationsdatei bei.

Der Abschnitt „global“Die folgenden Parameter im Abschnitt [global] sind den Gegebenheiten IhresNetzwerkes anzupassen, damit Ihr Samba-Server in einer Windows-Umgebung vonanderen Computern über SMB erreichbar ist.

workgroup = TUX-NETMit dieser Zeile wird der Samba-Server einer Arbeitsgruppe zugeordnet. ErsetzenSie TUX-NET durch eine entsprechende Arbeitsgruppe Ihrer Netzwerkumgebung.Der Samba-Server erscheint mit seinem DNS-Namen, sofern der Name noch nichtvergeben ist. Sollte der Name bereits vergeben sein, kann der Servername mithilfe

Samba 557

Page 558: Suse 10.1 Linux Reference De

von netbiosname=MEINNAME festgelegt werden. Weitere Informationen zudiesem Parameter finden Sie auf der Manualpage mansmb.conf.

os level = 2Anhand dieses Parameters entscheidet Ihr Samba-Server, ob er versucht, LMB(Local Master Browser) für seine Arbeitsgruppe zu werden. Wählen Sie bewussteinen niedrigen Wert, damit ein vorhandenes Windows-Netz nicht durch einenfalsch konfigurierten Samba-Server gestört wird. Weitere Informationen zu diesemwichtigen Thema finden Sie in den Dateien BROWSING.txt undBROWSING-Config.txt im Unterverzeichnis textdocs der Paketdokumen-tation.

Wenn im Netzwerk kein anderer SMB-Server (z. B. ein Windows NT- oder 2000-Server) vorhanden ist und der Samba-Server eine Liste aller in der lokalen Umge-bung vorhandenen Systeme verwalten soll, setzen Sie den Parameter os levelauf einen höheren Wert (z. B. 65). Der Samba-Server wird dann als LMB für daslokale Netzwerk ausgewählt.

Beim Ändern dieses Werts sollten Sie besonders vorsichtig sein, da dies den Betriebeiner vorhandenen Windows-Netzwerkumgebung stören könnte. Testen SieÄnderungen zuerst in einem isolierten Netzwerk oder zu unkritischen Zeiten.

wins support und wins serverWenn Sie den Samba-Server in ein vorhandenes Windows-Netzwerk integrierenmöchten, in dem bereits ein WINS-Server betrieben wird, aktivieren Sie denParameter wins server und setzen Sie seinen Wert auf die IP-Adresse desWINS-Servers.

Sie müssen einen WINS-Server einrichten, wenn Ihre Windows-Systeme ingetrennten Subnetzen betrieben werden und sich gegenseitig erkennen sollen. Umeinen Samba-Server als WINS-Server festzulegen, setzen Sie die Option winssupport = Yes. Stellen Sie sicher, dass diese Einstellung nur auf einem einzigenSamba-Server im Netzwerk aktiviert wird. Die Optionen wins server undwins support dürfen in der Datei smb.conf niemals gleichzeitig aktiviertsein.

FreigabenIn den folgenden Beispielen werden einerseits das CD-ROM-Laufwerk und andererseitsdie Verzeichnisse der Nutzer (homes) für SMB-Clients freigegeben.

558 Referenz

Page 559: Suse 10.1 Linux Reference De

[cdrom]Um die versehentliche Freigabe eines CD-ROM-Laufwerks zu verhindern, sindalle erforderlichen Zeilen dieser Freigabe durch Kommentarzeichen – hier Semiko-lons – deaktiviert. Entfernen Sie die Semikolons in der ersten Spalte, um das CD-ROM-Laufwerk für Samba freizugeben.

Beispiel 28.1 Eine CD-ROM-Freigabe;[cdrom]; comment = Linux CD-ROM; path = /media/cdrom; locking = No

[cdrom] und commentDer Eintrag [cdrom] ist der Name der Freigabe, die von allen SMB-Clientsim Netzwerk gesehen werden kann. Zur Beschreibung dieser Freigabe kannein zusätzlicher comment hinzugefügt werden.

path = /media/cdrompath exportiert das Verzeichnis /media/cdrom.

Diese Art der Freigabe ist aufgrund einer bewusst restriktiv gewählten Voreinstel-lung lediglich für die auf dem System vorhandenen Benutzer verfügbar. Soll dieFreigabe für alle Benutzer bereitgestellt werden, fügen Sie der Konfiguration dieZeile guest ok = yes hinzu. Durch diese Einstellung erhalten alle Benutzerim Netzwerk Leseberechtigungen. Es wird empfohlen, diesen Parameter sehr vor-sichtig zu verwenden. Dies gilt umso mehr für die Verwendung dieses Parametersim Abschnitt [global].

[homes]Eine besondere Stellung nimmt die Freigabe [homes] ein. Hat der Benutzer aufdem Linux-Dateiserver ein gültiges Konto und ein eigenes Home-Verzeichnis, sokann er eine Verbindung zu diesem herstellen.

Beispiel 28.2 homes-Freigabe[homes] comment = Home Directories valid users = %S browseable = No read only = No create mask = 0640 directory mask = 0750

Samba 559

Page 560: Suse 10.1 Linux Reference De

[homes]Insoweit keine ausdrückliche Freigabe mit dem Freigabenamen des Benutzersexistiert, der die Verbindung zum SMB-Server herstellt, wird aufgrund der[homes]-Freigabe dynamisch eine Freigabe erzeugt. Dabei ist der Freigabena-me identisch mit dem Benutzernamen.

valid users = %S%S wird nach erfolgreichem Verbindungsaufbau durch den konkreten Freiga-benamen ersetzt. Bei einer [homes]-Freigabe ist dies immer der Benutzerna-me. Aus diesem Grund werden die Zugriffsberechtigungen auf die Freigabeeines Benutzers immer exklusiv auf den Eigentümer des Benutzerverzeichnissesbeschränkt.

browseable = NoDurch diese Einstellung wird die Freigabe in der Netzwerkumgebungunsichtbar gemacht.

read only = NoSamba untersagt Schreibzugriff auf exportierte Freigaben standardmäßig mitdem Parameter read only = Yes. Soll also ein Verzeichnis als schreibbarfreigegeben werden, muss der Wert read only = No festgesetzt werden,was dem Wert writeable = Yes entspricht.

create mask = 0640Nicht auf MS Windows NT basierende Systeme kennen das Konzept der Unix-Zugriffsberechtigungen nicht, sodass sie beim Erstellen einer Datei keineBerechtigungen zuweisen können. Der Parameter create mask legt fest,welche Zugriffsberechtigungen neu erstellten Dateien zugewiesen werden.Dies gilt jedoch nur für Freigaben mit Schreibberechtigung. Konkret wird hierdem Eigentümer das Lesen und Schreiben und den Mitgliedern der primärenGruppe des Eigentümers das Lesen erlaubt.valid users = %S verhindertden Lesezugriff auch dann, wenn die Gruppe über Leseberechtigungen verfügt.Um der Gruppe Lese- oder Schreibzugriff zu gewähren, deaktivieren Sie dieZeile valid users = %S.

Sicherheitsstufen (Security Levels)Jeder Zugriff auf eine Freigabe kann für mehr Sicherheit durch ein Passwort geschütztwerden. SMB kennt drei verschiedene Möglichkeiten der Berechtigungsprüfung:

560 Referenz

Page 561: Suse 10.1 Linux Reference De

Share Level Security (security = share)Einer Freigabe wird ein Passwort fest zugeordnet. Jeder Benutzer, der diesesPasswort kennt, hat Zugriff auf die Freigabe.

User Level Security (security = user)Diese Variante führt das Konzept des Benutzers in SMB ein. Jeder Benutzer musssich bei einem Server mit einem Passwort anmelden. Nach der Authentifizierungkann der Server dann abhängig vom Benutzernamen Zugriff auf die einzelnenexportierten Freigaben gewähren.

Server Level Security (security = server):Seinen Clients gibt Samba vor, im User Level Mode zu arbeiten. Allerdings übergibtes alle Passwortanfragen an einen anderen User Level Mode Server, der dieAuthentifizierung übernimmt. Diese Einstellung erwartet einen weiteren Parameter(password server).

Die Sicherheit auf Freigabe-, Benutzer- und Serverebene (Share, User und Server LevelSecurity) gilt für den gesamten Server. Es ist nicht möglich, einzelne Freigaben einerServerkonfiguration mit Share Level Security und andere mit User Level Security zuexportieren. Sie können jedoch auf einem System für jede konfigurierte IP-Adresseeinen eigenen Samba-Server ausführen.

Weitere Informationen zu diesem Thema finden Sie in der Samba-HOWTO-Collection.Wenn sich mehrere Server auf einem System befinden, beachten Sie die Optioneninterfaces und bind interfaces only.

28.4 Konfigurieren der ClientsClients können auf den Samba-Server nur über TCP/IP zugreifen. NetBEUI oder Net-BIOS über IPX können mit Samba nicht verwendet werden.

28.4.1 Konfigurieren eines Samba-Clientsmit YaST

Konfigurieren Sie einen Samba-Client, um auf Ressourcen (Dateien oder Drucker) aufdem Samba-Server zuzugreifen. Geben Sie im Dialogfeld SAMBA-Arbeitsgruppe dieDomäne oder Arbeitsgruppe an. Klicken Sie auf Durchsuchen, um alle verfügbaren

Samba 561

Page 562: Suse 10.1 Linux Reference De

Gruppen und Domänen anzuzeigen, und wählen Sie die gewünschte Gruppe bzw.Domäne mit einem Mausklick aus. Wenn Sie Zusätzlich SMB-Informationen für Linux-Authentifikation verwenden aktivieren, erfolgt die Benutzerauthentifizierung über denSamba-Server. Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie aufBeenden, um die Konfiguration abzuschließen.

28.4.2 Windows 9x und MEDie Unterstützung für TCP/IP ist in Windows 9x und ME bereits integriert. Sie wirdjedoch nicht standardmäßig installiert. Um TCP/IP zu installieren, wählen Sie System-steuerung→ System und wählen Sie anschließendHinzufügen→ Protokolle→ TCP/IPvon Microsoft. Nach dem Neustart des Windows-Computers finden Sie den Samba-Server durch Doppelklicken auf das Desktopsymbol für die Netzwerkumgebung.

TIPP

Um einen Drucker auf dem Samba-Server zu nutzen, sollten Sie den Standard-oder den Apple-PostScript-Druckertreiber der entsprechendenWindows-Versioninstallieren. Am besten verbinden Sie diesen anschließend mit der Linux-Druckwarteschlange, die PostScript als Eingabeformat akzeptiert.

28.5 Samba als AnmeldeserverIn Netzwerken, in denen sich überwiegend Windows-Clients befinden, ist es oft wün-schenswert, dass sich Benutzer nur mit einem gültigen Konto und zugehörigem Passwortanmelden dürfen. In einem Windows-basierten Netzwerk wird diese Aufgabe von einemWindows NT-Server erledigt, der als Primary Domain Controller (PDC) konfiguriertist, sie kann aber auch mithilfe eines Samba-Servers ausgeführt werden. Es müssenEinträge im Abschnitt [global] von smb.conf vorgenommen werden. Diesewerden in Beispiel 28.3, „Abschnitt „global“ in smb.conf“ (S. 562) beschrieben.

Beispiel 28.3 Abschnitt „global“ in smb.conf[global] workgroup = TUX-NET domain logons = Yes domain master = Yes

562 Referenz

Page 563: Suse 10.1 Linux Reference De

Werden zur Verifizierung verschlüsselte Passwörter genutzt (Standard bei gepflegtenMS Windows 9x-Installationen, MS Windows NT 4.0 ab Service Pack 3 und allenspäteren Produkten), muss der Samba Server damit umgehen können. Dies wird durchden Eintrag encrypt passwords = yes im Abschnitt [global] aktiviert (abSamba Version 3 ist dies Standard). Außerdem müssen die Benutzerkonten bzw. diePasswörter in eine Windows-konforme Verschlüsselungsform gebracht werden. Dieserfolgt mit dem Befehlsmbpasswd-a name. Da nach dem Windows NT-Domänen-konzept auch die Computer selbst ein Domänenkonto benötigen, wird dieses mit denfolgenden Befehlen angelegt:

Beispiel 28.4 Einrichten eines Computerkontosuseradd hostname\$ smbpasswd -a -m hostname

Mit dem Befehluseraddwird ein Dollarzeichen hinzugefügt. Der Befehlsmbpasswdfügt dieses bei der Verwendung des Parameters -m automatisch hinzu. In der kommen-tierten Beispielkonfiguration (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE) sind Einstellungen enthalten, die diese Arbeiten automatisieren.

Beispiel 28.5 Automatisiertes Einrichten eines Computerkontosadd machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \ -s /bin/false %m\$

Damit dieses Skript von Samba richtig ausgeführt werden kann, benötigen Sie nocheinen Samba-Benutzer mit Administratorrechten. Fügen Sie hierzu der Gruppentadmineinen entsprechenden Benutzer hinzu. Anschließend können Sie allen Mitgliedern derLinux-Gruppe den Status Domain Admin zuweisen, indem Sie folgenden Befehleingeben:net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

Weitere Informationen zu diesem Thema finden Sie in Kapitel 12 der Samba-HOWTO-Collection (/usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf).

28.6 Weitere InformationenAusführliche Informationen zu Samba finden Sie in der digitalen Dokumentation. WennSamba installiert ist, können Sie in der Befehlszeile apropos samba eingeben, um

Samba 563

Page 564: Suse 10.1 Linux Reference De

einige Manualpages aufzurufen. Alternativ dazu finden Sie im Verzeichnis /usr/share/doc/packages/samba weitere Online-Dokumentationen und Beispiele.Eine kommentierte Beispielkonfiguration (smb.conf.SuSE) finden Sie im Unterver-zeichnis examples.

Das Samba-Team liefert in der Samba-HOWTO-Collection einen Abschnitt zur Fehler-behebung. In Teil V ist außerdem eine ausführliche Anleitung zum Überprüfen derKonfiguration enthalten. Nach der Installation des Pakets samba-doc finden Sie dieHOWTO-Informationen im Verzeichnis /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

564 Referenz

Page 565: Suse 10.1 Linux Reference De

29Der Proxyserver SquidSquid ist ein häufig verwendeter Proxy-Cache für Linux- und UNIX-Plattformen. Dasbedeutet, dass er angeforderte Internetobjekte, wie beispielsweise Daten auf einemWeb- oder FTP-Server, auf einem Computer speichert, der sich näher an der Arbeits-station befindet, die die Anforderung ausgegeben hat, als der Server. In diesem Kapitelwerden seine Konfiguration, die für die Inbetriebnahme erforderlichen Einstellungen,die Konfiguration des Systems für transparentes Proxying, die Sammlung von statisti-schen Informationen zur Verwendung des Cache mithilfe von Programmen, wie Cala-maris und cachemgr, und die Filterung von Webinhalten mit squidGuard erörtert.

Squid dient als Proxy-Cache. Er leitet Objektanforderungen von Clients (in diesemFall: von Webbrowsern) an den Server weiter. Wenn die angeforderten Objekte vomServer eintreffen, stellt er die Objekte dem Client zu und behält eine Kopie davon imFestplatten-Cache. Einer der Vorteile des Cachings besteht darin, dass mehrere Clients,die dasselbe Objekt anfordern, aus dem Festplatten-Cache versorgt werden können.Dadurch können die Clients die Daten wesentlich schneller erhalten als aus dem Internet.Durch dieses Verfahren wird außerdem der Datenverkehr im Netzwerk reduziert.

Neben dem eigentlichen Caching bietet Squid eine breite Palette von Funktionen, wiedie Verteilung der Last auf mehrere miteinander kommunizierende Hierarchien vonProxyservern, die Definition strenger Zugriffssteuerungslisten für alle Clients, die aufden Proxy zugreifen, das Zulassen oder Verweigern des Zugriffs auf bestimmte Web-seiten mithilfe anderer Anwendungen und das Erstellen von Statistiken zu häufigbesuchten Webseiten zur Bewertung der Internetgewohnheiten des Benutzers. Squidist kein generischer Proxy. Er fungiert normalerweise nur bei HTTP-Verbindungen alsProxy. Außerdem unterstützt er die Protokolle FTP, Gopher, SSL und WAIS, nichtjedoch andere Internetprotokolle, wie Real Audio, News oder Video-Konferenzen. DaSquid nur das UDP-Protokoll für die Bereitstellung von Kommunikation zwischen

Der Proxyserver Squid 565

Page 566: Suse 10.1 Linux Reference De

verschiedenen Caches unterstützt, werden zahlreiche andere Multimedia-Programmenicht unterstützt.

29.1 Einige Tatsachen zuProxy-Caches

Als Proxy-Cache kann Squid auf verschiedene Weise verwendet werden. In Kombina-tion mit einer Firewall kann er die Sicherheit unterstützen. Mehrere Proxies könnengemeinsam verwendet werden. Außerdem kann er ermitteln, welche Objekttypen fürwie lange im Cache gespeichert werden sollen.

29.1.1 Squid und SicherheitSquid kann zusammen mit einer Firewall verwendet werden, um interne Netzwerkemithilfe eines Proxy-Caches gegen Zugriffe von außen zu schützen. Die Firewall ver-weigert allen Clients Zugriff auf externe Dienste mit Ausnahme von Squid. Alle Web-verbindungen müssen vom Proxy erstellt werden. Bei dieser Konfiguration steuertSquid den gesamten Webzugriff.

Wenn zur Firewall-Konfiguration eine DMZ gehört, sollte der Proxy in dieser Zonebetrieben werden. In Abschnitt 29.5, „Konfigurieren eines transparenten Proxy“ (S. 578)wird die Implementierung eines transparenten Proxy beschrieben. Dadurch wird dieKonfiguration der Clients erleichtert, da sie in diesem Fall keine Informationen zumProxy benötigen.

29.1.2 Mehrere CachesMehrere Instanzen von Squid können für den Austausch von Objekten konfiguriertwerden. Dadurch verringert sich die Gesamtlast im System und die Wahrscheinlichkeit,ein Objekt zu finden, das bereits im lokalen Netzwerk vorhanden ist, erhöht sich.Außerdem können Cache-Hierarchien konfiguriert werden, sodass ein Cache Objektan-forderungen an gleichgeordnete Caches oder einen übergeordneten Cache weiterleitenkann, sodass er Objekte aus einem anderen Cache im lokalen Netzwerk oder direkt vonder Quelle erhält.

566 Referenz

Page 567: Suse 10.1 Linux Reference De

Die Auswahl einer geeigneten Topologie für die Cache-Hierarchie ist von entscheidenderBedeutung, da es nicht erstrebenswert ist, das Gesamtaufkommen an Datenverkehr imNetzwerk zu erhöhen. Bei sehr großen Netzwerken ist es sinnvoll, einen Proxyserverfür jedes Subnetzwerk zu konfigurieren und mit einem übergeordneten Proxy zu ver-binden, der wiederum mit dem Proxy-Cache des ISP verbunden ist.

Diese gesamte Kommunikation wird über das ICP (Internet Cache Protocol) abgewickelt,das über dem UDP-Protokoll ausgeführt wird. Die Übertragungen zwischen den Cacheserfolgen über HTTP (Hypertext Transmission Protocol) auf der Grundlage von TCP.

Um den geeignetsten Server zum Abrufen der Objekte zu finden, sendet ein Cache eineICP-Anforderung an alle gleichgeordneten Proxies. Diese beantworten die Anforderun-gen über ICP-Antworten mit einem HIT-Code, wenn das Objekt erkannt wurde bzw.mit einem MISS-Code, wenn es nicht erkannt wurde. Wenn mehrere HIT-Antwortengefunden wurden, legt der Proxyserver fest, von welchem Server heruntergeladenwerden soll. Diese Entscheidung ist unter anderem davon abhängig, welcher Cache dieschnellste Antwort gesendet hat bzw. welcher näher ist. Wenn keine zufrieden stellendenAntworten eingehen, wird die Anforderung an den übergeordneten Cache gesendet.

TIPP

Um eine Verdopplung der Objekte in verschiedenen Caches im Netzwerk zuvermeiden, werden andere ICP-Protokolle verwendet, wie beispielsweise CARP(Cache Array Routing Protocol) oder HTCP (Hypertext Cache Protocol). Je mehrObjekte sich im Netzwerk befinden, desto größer ist die Wahrscheinlichkeit,das gewünschte zu finden.

29.1.3 Caching von InternetobjektenNicht alle im Netzwerk verfügbaren Objekte sind statisch. Es gibt eine Vielzahl dyna-misch erstellter CGI-Seiten, Besucherzähler und verschlüsselter SSL-Inhaltsdokumente.Derartige Objekte werden nicht im Cache gespeichert, da sie sich bei jedem Zugriffändern.

Es bleibt die Frage, wie lange alle anderen im Cache gespeicherten Objekte dort ver-bleiben sollten. Um dies zu ermitteln, wird allen Objekten im Cache einer von mehrerenmöglichen Zuständen zugewiesen. Web- und Proxyserver ermitteln den Status einesObjekts, indem sie Header zu diesen Objekten hinzufügen, beispielsweise „Zuletzt

Der Proxyserver Squid 567

Page 568: Suse 10.1 Linux Reference De

geändert“ oder „Läuft ab“, und das entsprechende Datum. Andere Header, die angeben,dass Objekte nicht im Cache gespeichert werden dürfen, werden ebenfalls verwendet.

Objekte im Cache werden normalerweise aufgrund mangelnden Festplattenspeichersersetzt. Dazu werden Algorithmen, wie beispielsweise LRU (last recently used), ver-wendet. Dies bedeutet im Wesentlichen, dass der Proxy die Objekte löscht, die amlängsten nicht mehr angefordert wurden.

29.2 SystemvoraussetzungenDie wichtigste Aufgabe besteht darin, die maximale Netzwerklast zu ermitteln, die dasSystem tragen muss. Daher muss besonders auf die Belastungsspitzen geachtet werden,die mehr als das Vierfache des Tagesdurchschnitts betragen können. Im Zweifelsfallist es vorzuziehen, die Systemanforderungen zu hoch einzuschätzen, da es zu erheblichenEinbußen in der Qualität des Diensts führen kann, wenn Squid an der Grenze seinerLeistungsfähigkeit arbeitet. Die folgenden Abschnitte widmen sich den einzelnen Sys-temfaktoren in der Reihenfolge ihrer Wichtigkeit.

29.2.1 FestplattenDa Geschwindigkeit beim Caching eine wichtige Rolle spielt, muss diesem Faktorbesondere Aufmerksamkeit gewidmet werden. Bei Festplatten wird dieser Parameterals random seek time (Zufallszugriffszeit, gemessen in Millisekunden) beschrieben. Dadie Datenblöcke, die Squid von der Festplatte liest oder auf die Festplatte schreibt, eherklein zu sein scheinen, ist die Zugriffszeit der Festplatte entscheidender als ihr Daten-durchsatz. Für die Zwecke von Proxies sind Festplatten mit hoher Rotationsgeschwin-digkeit wohl die bessere Wahl, da bei diesen der Lese-Schreib-Kopf schneller an diegewünschte Stelle gebracht werden kann. Eine Möglichkeit zur Systembeschleunigungbesteht in der gleichzeitigen Verwendung mehrerer Festplatten oder im Einsatz vonStriping-RAID-Arrays.

29.2.2 Größe des Festplatten-CacheBei einem kleinen Cache ist die Wahrscheinlichkeit eines HIT (Auffinden des angefor-derten Objekts, das sich bereits dort befindet) gering, da der Cache schnell voll ist unddie weniger häufig angeforderten Objekte durch neuere ersetzt werden. Wenn beispiels-

568 Referenz

Page 569: Suse 10.1 Linux Reference De

weise 1 GB für den Cache zur Verfügung steht und die Benutzer nur Datenverkehr imUmfang von 10 MB pro Tag in Anspruch nehmen, dauert es mehrere hundert Tage,um den Cache zu füllen.

Die einfachste Methode zur Ermittlung der benötigten Cache-Größe geht von dermaximalen Übertragungsrate der Verbindung aus. Bei einer Verbindung mit 1 Mbit/sbeträgt die maximale Übertragungsrate 125 KB/s. Wenn dieser Datenverkehr vollständigim Cache gespeichert wird, ergeben sich in einer Stunde 450 MB. Dadurch würden bei8 Arbeitsstunden 3,6 GB an einem einzigen Tag erreicht. Da normalerweise nicht dasgesamte Volumen der Verbindung ausgeschöpft wird, kann angenommen werden, dassdas Gesamtdatenvolumen, das auf den Cache zukommt, bei etwa 2 GB liegt. Dahersind bei diesem Beispiel 2 GB Festplattenspeicher erforderlich, damit Squid diedurchsuchten Daten eines Tags im Cache speichern kann.

29.2.3 RAMDer von Squid benötigte Arbeitsspeicher (RAM) steht in direktem Verhältnis zur Anzahlder Objekte im Cache. Außerdem speichert Squid Cache-Objekt-Bezüge und häufigangeforderte Objekte im Hauptspeicher, um das Abrufen dieser Daten zu beschleunigen.RAM ist wesentlich schneller als eine Festplatte.

Außerdem gibt es andere Daten, die Squid im Arbeitsspeicher benötigt, beispielsweiseeine Tabelle mit allen IP-Adressen, einen exakten Domänennamen-Cache, die amhäufigsten angeforderten Objekte, Zugriffssteuerungslisten, Puffer usw.

Es ist sehr wichtig, dass genügend Arbeitsspeicher für den Squid-Vorgang zur Verfügungsteht, da die Systemleistung erheblich eingeschränkt ist, wenn ein Wechsel auf dieFestplatte erforderlich ist. Das Werkzeug cachemgr.cgi kan für die Arbeitsspeicherver-waltung des Cache verwendet werden. Dieses Werkzeug wird in Abschnitt 29.6,„cachemgr.cgi“ (S. 581) behandelt. Bei Sites mit extrem hohem Netzwerkverkehr solltedie Verwendung eines AMD64- oder Intel EM64T-Systems mit mehr als 4 GBArbeitsspeicher in Erwägung gezogen werden.

29.2.4 CPUDie Verwendung von Squid bringt keine intensive CPU-Auslastung mit sich. Die Pro-zessorlast wird nur erhöht, während die Inhalte des Cache geladen oder überprüft werden.Durch die Verwendung eines Computers mit mehreren Prozessoren wird die System-

Der Proxyserver Squid 569

Page 570: Suse 10.1 Linux Reference De

leistung nicht erhöht. Um die Effizienz zu steigern, sollten vielmehr schnellere Festplat-ten oder ein größerer Arbeitsspeicher verwendet werden.

29.3 Starten von SquidSquid ist in SUSE Linux bereits vorkonfiguriert. Sie können das Programm unmittelbarnach der Installation starten. Um einen reibungslosen Start zu gewährleisten, sollte dasNetzwerk so konfiguriert werden, dass mindestens ein Namenserver und das Interneterreicht werden können. Es können Probleme auftreten, wenn eine Einwahlverbindungzusammen mit einer dynamischen DNS-Konfiguration verwendet wird. In diesem Fallsollte zumindest der Namenserver eingegeben werden, da Squid nicht startet, wennkein DNS-Server in /etc/resolv.conf gefunden wird.

29.3.1 Befehle zum Starten und Stoppen vonSquid

Geben Sie zum Starten von Squid als root in der Befehlszeile den Befehlrcsquid start ein. Beim ersten Start muss zunächst die Verzeichnisstruktur desCache in /var/cache/squid definiert werden. Dies geschieht automatisch überdas Startskript /etc/init.d/squid und kann einige Sekunden oder sogar Minutenin Anspruch nehmen. Wenn rechts in grüner Schrift done angezeigt wird, wurde Squiderfolgreich geladen. Um die Funktionsfähigkeit von Squid im lokalen System zu testen,geben Sie localhost als Proxy und 3128 als Port im Browser an.

Um Benutzern aus dem lokalen System und anderen Systemen den Zugriff auf Squidund das Internet zu ermöglichen, müssen Sie den Eintrag in den Konfigurationsdateien/etc/squid/squid.conf von http_access deny all in http_accessallow all ändern. Beachten Sie dabei jedoch, dass dadurch jedem der vollständigeZugriff auf Squid ermöglicht wird. Daher sollten Sie ACLs definieren, die den Zugriffauf den Proxy steuern. Weitere Informationen hierzu finden Sie in Abschnitt 29.4.2,„Optionen für die Zugriffssteuerung“ (S. 576).

Nach der Bearbeitung der Konfigurationsdatei /etc/squid/squid.conf mussSquid die Konfigurationsdatei erneut laden. Verwenden Sie hierfür rcsquid reload.Alternativ können Sie mit rcsquid restart einen vollständigen Neustart von Squiddurchführen.

570 Referenz

Page 571: Suse 10.1 Linux Reference De

Mit dem Befehl rcsquid status kann überprüft werden, ob der Proxy ausgeführtwird. Mit dem Befehl rcsquid stop wird Squid heruntergefahren. Dieser Vorgangkann einige Zeit in Anspruch nehmen, da Squid bis zu einer halben Minute (Optionshutdown_lifetime in /etc/squid/squid.conf) wartet, bevor es die Ver-bindungen zu den Clients trennt und seine Daten auf die Festplatte schreibt.

WARNUNG: Beenden von Squid

Das Beenden von Squid mit kill oder killall kann zur Beschädigung desCache führen. Damit Squid neu gestartet werden kann, muss der beschädigteCache gelöscht werden.

Wenn Squid nach kurzer Zeit nicht mehr funktioniert, obwohl das Programm erfolgreichgestartet wurde, überprüfen Sie, ob ein fehlerhafter Namenservereintrag vorliegt oderob die Datei /etc/resolv.conf fehlt. Squid protokolliert die Ursache einesStartfehlers in der Datei /var/log/squid/cache.log. Wenn Squid beim Bootendes Systems automatisch geladen werden soll, müssen Sie Squid mithilfe des YaST-Runlevel-Editors für die gewünschten Runlevels aktivieren. Siehe Abschnitt „System-dienste (Runlevel)“ (Kapitel 2, Systemkonfiguration mit YaST, ↑Start).

Durch eine Deinstallation von Squid werden weder die Cache-Hierarchie noch dieProtokolldateien entfernt. Um diese zu entfernen, müssen Sie das Verzeichnis /var/cache/squid manuell löschen.

29.3.2 Lokaler DNS-ServerDie Einrichtung eines lokalen DNS-Servers ist sinnvoll, selbst wenn er nicht seineeigene Domäne verwaltet. Er fungiert dann einfach als Nur-Cache-Namenserver undkann außerdem DNS-Anforderungen über die Root-Namenserver auflösen, ohne dassirgendeine spezielle Konfiguration erforderlich ist (siehe Abschnitt 20.3, „Starten desNamenservers BIND“ (S. 408)). Wie dies durchgeführt werden kann, hängt davon ab,ob Sie bei der Konfiguration der Internetverbindung dynamisches DNS auswählen.

Dynamisches DNSNormalerweise wird bei dynamischem DNS der DNS-Server während des Aufbausder Internetverbindung vom Anbieter festgelegt und die lokale Datei /etc/resolv.conf wird automatisch angepasst. Dieses Verhalten wird in der Datei/etc/sysconfig/network/config mit der sysconfig-Variablen

Der Proxyserver Squid 571

Page 572: Suse 10.1 Linux Reference De

MODIFY_RESOLV_CONF_DYNAMICALLY gesteuert, die auf „yes“ gesetzt ist.Setzen Sie diese Variable mit dem sysconfig-Editor von YaST auf „no“ (sie-heAbschnitt 8.3.1, „Ändern der Systemkonfiguration mithilfe des YaST-Editors„sysconfig““ (S. 207)). Geben Sie anschließend den lokalen DNS-Server in dieDatei /etc/resolv.conf ein. Verwenden Sie die IP-Adresse 127.0.0.1für localhost. Auf diese Weise kann Squid immer den lokalen Namenserverfinden, wenn er gestartet wird.

Um den Zugriff auf den Namenserver des Anbieters zu ermöglichen, geben Sieihn zusammen mit seiner IP-Adresse in die Konfigurationsdatei /etc/named.conf unter forwarders ein. Mit dynamischem DNS kann dies automatischwährend des Verbindungsaufbaus erreicht werden, indem die sysconfig-VariableMODIFY_NAMED_CONF_DYNAMICALLY auf YES gesetzt wird.

Statisches DNSBeim statischen DNS finden beim Verbindunsgsaufbau keine automatischen DNS-Anpassungen statt, sodass auch keine sysconfig-Variablen geändert werden müssen.Sie müssen jedoch den lokalen DNS-Server in die Datei /etc/resolv.confeingeben, wie oben beschrieben. Außerdem muss der statische Namenserver desAnbieters zusammen mit seiner IP-Adresse manuell in die Datei /etc/named.conf unter forwarders eingegeben werden.

TIPP: DNS und Firewall

Wenn eine Firewall ausgeführt wird, müssen Sie sicherstellen, dass DNS-Anforderungen durchgelassen werden.

29.4 Die Konfigurationsdatei/etc/squid/squid.conf

Alle Einstellungen für den Squid-Proxyserver werden in der Datei /etc/squid/squid.conf vorgenommen. Beim ersten Start von Squid sind keine Änderungen indieser Datei erforderlich, externen Clients wird jedoch ursprünglich der Zugriff verwei-gert. Der Proxy ist für localhost verfügbar. Der Standardport ist 3128. Die vorin-stallierte Konfigurationsdatei /etc/squid/squid.conf bietet detaillierte Infor-mationen zu den Optionen sowie zahlreiche Beispiele. Fast alle Einträge beginnen mit# (kommentierte Zeilen) und die relevanten Spezifikationen befinden sich am Ende der

572 Referenz

Page 573: Suse 10.1 Linux Reference De

Zeile. Die angegebenen Werte korrelieren fast immer mit den Standardwerten, sodassdas Entfernen der Kommentarzeichen ohne Ändern der Parameter in den meisten Fällenkaum Auswirkungen hat. Lassen Sie die Beispiele nach Möglichkeit unverändert undgeben Sie die Optionen zusammen mit den geänderten Parametern in der Zeile darunterein. Auf diese Weise können die Standardwerte problemlos wiederhergestellt und mitden Änderungen verglichen werden.

TIPP: Anpassen der Konfigurationsdatei nach einer Aktualisierung

Wenn Sie eine Aktualisierung einer früheren Squid-Version durchgeführt haben,sollten Sie die neue Datei /etc/squid/squid.conf bearbeiten und nurdie in der vorherigen Datei vorgenommenen Änderungen übernehmen. WennSie versuchen, die alte squid.conf zu verwenden, besteht das Risiko, dassdie Konfiguration nicht mehr funktioniert, da die Optionen manchmal bearbeitetund neue Änderungen hinzugefügt werden.

29.4.1 Allgemeine Konfigurationsoptionen(Auswahl)

http_port 3128Dies ist der Port, den Squid auf Client-Anforderungen überwacht. Der Standard-Port ist 3128, 8080 wird jedoch ebenfalls häufig verwendet. Sie können auchmehrere Portnummern durch Leerzeichen getrennt eingeben.

cache_peer hostname type proxy-port icp-portGeben Sie hier einen übergeordneten Proxy ein, beispielsweise wenn Sie den ProxyIhres ISP verwenden möchten. Geben Sie als hostname den Namen und die IP-Adresse des zu verwendenden Proxy und als type parent ein. Geben Sie alsproxy-port die Portnummer ein, die ebenfalls vom Operator des Parent für dieVerwendung im Browser angegeben wurde, in der Regel 8080. Setzen Sieicp-port auf 7 oder 0, wenn der ICP-Port des übergeordneten Proxy nichtbekannt ist und seine Verwendung für den Anbieter nicht wichtig ist. Außerdemkönnen default und no-query nach den Portnummern angegeben werden,um die Verwendung des ICP-Protokolls zu verhindern. Squid verhält sich dann inBezug auf den Proxy des Anbieters wie ein normaler Browser.

Der Proxyserver Squid 573

Page 574: Suse 10.1 Linux Reference De

cache_mem 8 MBDieser Eintrag legt fest, wie viel Arbeitsspeicher Squid für besonders beliebteAntworten verwenden kann. Der Standardwert ist 8 MB. Dieser Wert gibt nichtdie Arbeitsspeichernutzung von Squid an und kann überschritten werden.

cache_dir ufs /var/cache/squid/ 100 16 256Der Eintrag cache_dir legt das Verzeichnis fest, in dem alle Objekte auf demDatenträger gespeichert werden. Die Zahlen am Ende geben den maximal zu ver-wendenden Festplattenspeicher in BM und die Anzahl der Verzeichnisse auf derersten und zweiten Ebene an. Der Parameter ufs sollte nicht geändert werden.Standardmäßig werden 100 MB Speicherplatz im Verzeichnis /var/cache/squid belegt und 16 Unterverzeichnisse erstellt, die wiederum jeweils 256Unterverzeichnisse aufweisen. Achten Sie bei der Angabe des zu verwendendenSpeicherplatzes darauf, genügend Reserve einzuplanen. Werte von mindestens 50bis maximal 80 % des verfügbaren Speicherplatzes erscheinen hier am sinnvollsten.Die letzten beiden Werte für die Verzeichnisse sollten nur nach reiflicher Überle-gung erhöht werden, da zu viele Verzeichnisse ebenfalls zu Leistungsproblemenführen können. Wenn der Cache von mehreren Datenträgern gemeinsam verwendetwird, müssen Sie mehrere cache_dir-Zeilen eingeben.

cache_access_log /var/log/squid/access.log, cache_log /var/log/squid/cache.log,cache_store_log /var/log/squid/store.log

Diese drei Einträge geben die Pfade an, unter denen Squid alle Aktionen protokol-liert. Normalerweise werden hier keine Änderungen vorgenommen. Bei hoherAuslastung von Squid kann es sinnvoll sein, Cache und Protokolldateien auf meh-rere Datenträger zu verteilen.

emulate_httpd_log offWenn der Eintrag auf on gesetzt ist, erhalten Sie lesbare Protokolldateien. EinigeEvaluierungsprogramme können solche Dateien jedoch nicht interpretieren.

client_netmask 255.255.255.255Mit diesem Eintrag werden die IP-Adressen von Clients in den Protokolldateienmaskiert. Die letzte Ziffer der IP-Adresse wird auf 0 gesetzt, wenn Sie hier255.255.255.0 eingeben. Auf diese Weise können Sie den Datenschutz fürdie Clients gewährleisten.

574 Referenz

Page 575: Suse 10.1 Linux Reference De

ftp_user Squid@Mit dieser Option wird das Passwort festgelegt, das Squid für die anonyme FTP-Anmeldung verwenden soll. Es kann sinnvoll sein, hier eine gültige E-Mail-Adresse anzugeben, da einige FTP-Server die Adressen auf Gültigkeit prüfen.

cache_mgr webmasterEine E-Mail-Adresse, an die Squid eine Meldung sendet, wenn es plötzlich abstürzt.Der Standardwert ist webmaster.

logfile_rotate 0Bei Ausführung von squid -k rotate kann Squid ein Rotationssystem fürgesicherte Protokolldateien einführen. Bei diesem Prozess werden die Dateiennummeriert und nach dem Erreichen des angegebenen Werts wird die älteste Dateiüberschrieben. Der Standardwert ist 0, da das Archivieren und Löschen von Proto-kolldateien in SUSE Linux von einem in der Konfigurationsdatei /etc/logrotate/squid festgelegten Cronjob durchgeführt wird.

append_domain <Domaene>Mit append_domain können Sie angeben, welche Domäne automatisch angefügtwird, wenn keine angegeben wurde. Normalerweise wird hier die eigene Domäneangegeben, sodass bei der Eingabe von www im Browser ein Zugriff auf Ihreneigenen Webserver erfolgt.

forwarded_for onWenn Sie den Eintrag auf off setzen, entfernt Squid die IP-Adresse und den Sys-temnamen des Client aus den HTTP-Anforderungen. Andernfalls wird eine Zeilezum Header hinzugefügt, beispielsweise:X-Forwarded-For: 192.168.0.0

negative_ttl 5 minutes; negative_dns_ttl 5 minutesDie hier angegebenen Werte müssen in der Regel nicht geändert werden. Bei einerEinwahlverbindung kann das Internet jedoch zeitweise nicht verfügbar sein. Squidprotokolliert die nicht erfolgreichen Anforderungen und lässt dann keine weiterenzu, auch wenn die Internetverbindung zwischenzeitlich wieder hergestellt wurde.In solchen Fällen sollten Sie minutes in seconds ändern. Danach sollte nach demKlicken auf Neu laden im Browser der Einwahlvorgang nach wenigen Sekundenwieder aktiviert werden.

Der Proxyserver Squid 575

Page 576: Suse 10.1 Linux Reference De

never_direct allow ACL-NameUm zu verhindern, dass Squid Anforderungen direkt aus dem Internet entgegen-nimmt, müssen Sie mit dem oben stehenden Befehl die Verbindung mit einemanderen Proxy erzwingen. Dieser muss zuvor unter cache_peer eingegeben wordensein. Wenn als ACL-Name all angegeben wird, werden alle Anforderungenzwangsweise direkt an den übergeordneten Proxy (parent) weitergeleitet. Dieskann beispielsweise dann erforderlich sein, wenn Sie einen Anbieter verwenden,der die Verwendung der eigenen Proxies strikt vorschreibt oder der durch seineFirewall direkten Internetzugriff verweigert.

29.4.2 Optionen für die ZugriffssteuerungSquid bietet ein detailliertes System für die Steuerung des Zugriffs auf den Proxy. Durchdie Implementierung von ACLs kann es problemlos und umfassend konfiguriert werden.Dazu gehören Listen mit Regeln, die nacheinander verarbeitet werden. Die ACLsmüssen zuerst definiert werden, bevor sie verwendet werden können. Einige Standard-ACLs, wie beispielsweise all und localhost, sind bereits vorhanden. Die bloße Defini-tion einer ACL bedeutet jedoch noch nicht, dass sie tatsächlich angewendet wird. Diesgeschieht nur in Verbindung mit http_access-Regeln.

acl <ACL-Name> <Typ> <Daten>Für die Definition einer ACL sind mindestens drei Spezifikationen erforderlich.Der Name <ACL-Name> kann frei gewählt werden. Als <Typ> können Sie auseiner Vielzahl verschiedener Optionen wählen, die Sie im Abschnitt ACCESSCONTROLS in der Datei/etc/squid/squid.conf finden. Die Spezifikationfür <Daten> hängt vom einzelnen ACL-Typ ab und kann auch aus einer Dateigelesen werden, beispielsweise über Hostnamen, IP-Adressen oder URLs. ImFolgenden finden Sie einige einfache Beispiele:acl mysurfers srcdomain .my-domain.comacl teachers src 192.168.1.0/255.255.255.0acl students src 192.168.7.0-192.168.9.0/255.255.255.0acl lunch time MTWHF 12:00-15:00

http_access allow <ACL-Name>http_access legt fest, wer den Proxy verwenden kann und wer auf welche Seitenim Internet zugreifen kann. Hierfür müssen ACLs angegeben werden. localhostund all wurden bereits oben definiert. Diese Optionen können den Zugriff überdeny bzw. allow verweigern bzw. zulassen. Es können Listen mit einer beliebigenAnzahl von http_access- Einträgen erstellt und von oben nach unten verarbeitet

576 Referenz

Page 577: Suse 10.1 Linux Reference De

werden. Je nachdem, was zuerst vorkommt, wird der Zugriff auf die betreffendeURL gestattet oder verweigert. Der letzte Eintrag sollte immer http_access denyall lauten. Im folgenden Beispiel hat localhost freien Zugriff auf alle Elemente,während allen anderen Hosts der Zugriff vollständig verweigert wird.http_access allow localhosthttp_access deny all

In einem anderen Beispiel, bei dem diese Regeln verwendet werden, hat dieGruppe teachers immer Zugriff auf das Internet. Die Gruppe students erhältnur montags bis freitags während der Mittagspause Zugriff.http_access deny localhosthttp_access allow teachershttp_access allow students lunch timehttp_access deny all

Die Liste mit den http_access-Einträgen sollte um der besseren Lesbarkeit willennur an der angegebenen Position in der Datei /etc/squid/squid.conf ein-gegeben werden. Also zwischen dem Text# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR# CLIENTS

und dem letztenhttp_access deny all

redirect_program /usr/bin/squidGuardMit dieser Option können Sie eine Umleitungsfunktion, wie beispielsweise squid-Guard, angeben, die das Blockieren unerwünschter URLs ermöglicht. Der Internet-zugang kann mithilfe der Proxy-Authentifizierung und der entsprechenden ACLsindividuell für verschiedene Benutzergruppen gesteuert werden. squidGuard istein gesondertes Paket, das installiert und konfiguriert werden kann.

auth_param basic program /usr/sbin/pam_authWenn die Benutzer auf dem Proxy authentifiziert werden müssen, geben Sie einentsprechendes Programm an, beispielsweise pam_auth. Beim ersten Zugriff aufpam_auth wird dem Benutzer ein Anmeldefenster angezeigt, in das er den Benut-zernamen und das Passwort eingeben muss. Außerdem ist noch immer eine ACLerforderlich, sodass nur Clients mit einer gültigen Anmeldung das Internet benutzenkönnen.

Der Proxyserver Squid 577

Page 578: Suse 10.1 Linux Reference De

acl password proxy_auth REQUIRED

http_access allow passwordhttp_access deny all

Das REQUIRED nach proxy_auth kann durch eine Liste der zulässigen Benutzer-namen oder durch den Pfad zu einer solchen Liste ersetzt werden.

ident_lookup_access allow <ACL-Name>Lassen Sie damit eine ident-Anforderung für alle ACL-definierten Clients ausführen,um die Identität der einzelnen Benutzer zu ermitteln. Wenn Sie all auf <ACL-Name> anwenden, gilt dies für alle Clients. Außerdem muss ein ident-Daemon aufallen Clients ausgeführt werden. Bei Linux installieren Sie für diesen Zweck dasPaket „pidentd“. Für Microsoft Windows steht kostenlose Software zum Herunter-laden aus dem Internet zur Verfügung. Um sicherzustellen, dass nur Clients miteinem erfolgreichen ident-Lookup zulässig sind, definieren Sie hier eine entspre-chende ACL:acl identhosts ident REQUIRED

http_access allow password http_access deny all

Ersetzen Sie auch hier REQUIRED durch eine Liste der zulässigen Benutzernamen.Durch die Verwendung von ident kann die Zugriffszeit erheblich reduziert werden,da die ident-Lookups für jede Anforderung wiederholt werden.

29.5 Konfigurieren einestransparenten Proxy

Normalerweise läuft die Arbeit mit Proxyservern folgendermaßen ab: Der Webbrowsersendet Anforderungen an einen bestimmten Port im Proxyserver und der Proxy stelltdie angeforderten Objekte bereit, unabhängig davon, ob sie sich in seinem Cachebefinden oder nicht. Bei der Arbeit in einem Netzwerk können verschiedene Situationenentstehen:

• Aus Sicherheitsgründen sollten alle Clients einen Proxy für den Zugriff auf dasInternet verwenden.

578 Referenz

Page 579: Suse 10.1 Linux Reference De

• Alle Clients müssen einen Proxy verwenden, unabhängig davon, ob sie sich dessenbewusst sind.

• Der Proxy in einem Netzwerk wird verschoben, die vorhandenen Clients solltenjedoch ihre alte Konfiguration beibehalten.

In all diesen Fällen kann ein transparenter Proxy verwendet werden. Das Prinzip istextrem einfach: Der Proxy fängt die Anforderungen des Webbrowsers ab und beantwortetsie, sodass der Webbrowser die angeforderten Seiten erhält, ohne dass bekannt ist,woher sie kommen. Wie der Name schon andeutet, verläuft der gesamte Prozesstransparent.

29.5.1 Konfigurationsoptionen in/etc/squid/squid.conf

Folgende Optionen müssen in der Datei/etc/squid/squid.conf aktiviert werden,um den transparenten Proxy in Betrieb zu nehmen:

• httpd_accel_host virtual

• httpd_accel_port 80

Die Portnummer des eigentlichen HTTP-Servers

• httpd_accel_with_proxy on

• httpd_accel_uses_host_header on

29.5.2 Firewall-Konfiguration mitSuSEfirewall2

Leiten Sie nun alle eingehenden Anforderungen über die Firewall mithilfe einer Port-Weiterleitungsregel an den Squid-Port um. Verwenden Sie dazu das eingeschlosseneWerkzeug SuSEfirewall2 (in „Konfiguration mit YaST“ (S. 116) beschrieben). DieKonfigurationsdatei dieses Programms finden Sie in /etc/sysconfig/SuSEfirewall2. Die Konfigurationsdatei besteht aus gut dokumentierten Einträgen.

Der Proxyserver Squid 579

Page 580: Suse 10.1 Linux Reference De

Um einen transparenten Proxy festzulegen, müssen Sie mehrere Firewall-Optionenkonfigurieren:

• Gerät, das auf das Internet verweist: FW_DEV_EXT="eth1"

• Gerät, das auf das Netzwerk verweist: FW_DEV_INT="eth0"

Ports und Dienste (siehe /etc/services) auf der Firewall definieren, auf die einZugriff von nicht verbürgten (externen) Netzwerken, wie beispielsweise dem Internet,erfolgt. In diesem Beispiel werden nur Webdienste für den Außenbereich angeboten:FW_SERVICES_EXT_TCP="www"

Definieren Sie Ports und Dienste (siehe /etc/services) auf der Firewall, auf dievom sicheren (internen) Netzwerk aus zugegriffen wird (sowohl über TCP als auchüber UDP):FW_SERVICES_INT_TCP="domain www 3128"FW_SERVICES_INT_UDP=„domain“

Dies ermöglicht den Zugriff auf Webdienste und Squid (Standardport: 3128). DerDienst „domain“ steht für DNS (Domain Name Service, Domänennamen-Dienst).Dieser Dienst wird häufig verwendet. Andernfalls nehmen Sie einfach die oben stehen-den Einträge heraus und setzten Sie die folgende Option auf no:FW_SERVICE_DNS="yes"

Die wichtigste Option ist Option Nummer 15:

Beispiel 29.1 Firewall-Konfiguration: Option 15# 15.)# Which accesses to services should be redirected to a local port# on the firewall machine?## This can be used to force all internal users to surf via your# Squid proxy, or transparently redirect incoming Web traffic to# a secure Web server.## Choice: leave empty or use the following explained syntax of# redirecting rules, separated with spaces.# A redirecting rule consists of 1) source IP/net,# 2) destination IP/net, 3) original destination port and# 4) local port to redirect the traffic to, separated by a colon,# e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"

580 Referenz

Page 581: Suse 10.1 Linux Reference De

Die oben angegebenen Kommentare geben die zu verwendende Syntax an. Geben Siezuerst die IP-Adresse und die Netzmaske der internen Netzwerke ein, die auf die Proxy-Firewall zugreifen. Geben Sie als Zweites die IP-Adresse und die Netzmaske ein, andie diese Clients ihre Anforderungen senden. Geben Sie bei Webbrowsern die Netzwerke0/0 an. Dieser Platzhalter bedeutet „überallhin“. Geben Sie anschließend denursprünglichen Port ein, an den diese Anforderungen gesendet werden, und schließlichden Port, an den alle diese Anforderungen umgeleitet werden. Da Squid andere Proto-kolle als HTTP unterstützt, müssen Anforderungen von anderen Ports an den Proxyumgeleitet werden, beispielsweise FTP (Port 21), HTTPS oder SSL (Port 443). In diesemBeispiel werden Webdienste (Port 80) an den Proxy-Port (Port 3128) umgeleitet.Wenn mehrere Netzwerke bzw. Dienste hinzugefügt werden sollen, müssen diese imentsprechenden Eintrag durch ein Leerzeichen getrennt sein.FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"

Um die Firewall mit der neuen Konfiguration zu starten, müssen Sie einen Eintrag inder Datei /etc/sysconfig/SuSEfirewall2 ändern. Der Eintrag START_FWmuss auf „yes“ gesetzt werden.

Starten Sie Squid, wie in Abschnitt 29.3, „Starten von Squid“ (S. 570) gezeigt. Um zuüberprüfen, ob alles ordnungsgemäß funktioniert, müssen Sie die Squid-Protokolle in/var/log/squid/access.log überprüfen. Um sicherzustellen, dass alle Portskorrekt konfiguriert sind, müssen Sie eine Portabsuche auf dem Computer von einembeliebigen Computer außerhalb Ihres Netzwerks aus durchführen. Nur die Webdienste(Port 80) sollten verfügbar sein. Die Befehlssyntax für das Absuchen der Ports mitnmap lautet nmap -O IP_address.

29.6 cachemgr.cgiDer Cache-Manager (cachemgr.cgi) ist ein CGI-Dienstprogramm für die Anzeige derStatistiken zur Arbeitsspeichernutzung eines laufenden Squid-Prozesses. Außerdembietet er eine bequemere Methode zur Verwaltung des Cache und zur Anzeige derStatistiken ohne Anmeldung beim Server.

Der Proxyserver Squid 581

Page 582: Suse 10.1 Linux Reference De

29.6.1 SetupZunächst muss ein Webserver in Ihrem System ausgeführt werden. Konfigurieren SieApache, wie in Kapitel 26, Der HTTP-Server Apache (S. 485) beschrieben. Um zuüberprüfen, ob Apache bereits ausgeführt wird, geben Sie als root den Befehlrcapache status ein. Wenn eine Meldung der folgenden Art angezeigt wird:Checking for service httpd: OK Server uptime: 1 day 18 hours 29 minutes 39 seconds

wird Apache auf dem Rechner angezeigt. Andernfalls geben Sie rcapache startein, um Apache mit den Standardeinstellungen von SUSE Linux zu starten. Der letzteSchritt besteht darin, die Datei cachemgr.cgi in das Apache-Verzeichnis cgi-binzu kopieren:cp /usr/share/doc/packages/squid/scripts/cachemgr.cgi /srv/www/cgi-bin/

29.6.2 Cache-Manager-ACLs in/etc/squid/squid.conf

Es gibt einige Standardeinstellungen in der Originaldatei, die für den Cache-Managererforderlich sind. Zuerst werden zwei ACLs definiert. Anschließend verwenden diehttp_access-Optionen diese ACLs, um Zugriff vom CGI-Script auf Squid zu gewähren.Die erste ACL ist die wichtigste, da der Cache-Manager versucht, über das cache_object-Protokoll mit Squid zu kommunizieren.acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255

Folgende Regeln gewähren Apache Zugriffsrechte auf Squid:http_access allow manager localhosthttp_access deny manager

Diese Regeln setzen voraus, dass der Webserver und Squid auf demselben Computerausgeführt werden. Wenn die Kommunikation zwischen Cache-Manager und Squidvon dem Webserver auf einem anderen Computer ihren Ausgang nimmt, müssen Sieeine zusätzliche ACL aufnehmen, wie in Beispiel 29.2, „Zugriffsregeln“ (S. 583)beschrieben.

582 Referenz

Page 583: Suse 10.1 Linux Reference De

Beispiel 29.2 Zugriffsregelnacl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl webserver src 192.168.1.7/255.255.255.255 # webserver IP

Fügen Sie dann die Regeln in Beispiel 29.3, „Zugriffsregeln“ (S. 583) hinzu, um denZugriff vom Webserver zu gestatten.

Beispiel 29.3 Zugriffsregelnhttp_access allow manager localhosthttp_access allow manager webserverhttp_access deny manager

Konfigurieren Sie ein Passwort für den Manager für den Zugriff auf weitere Optionen,wie das Schließen des Cache über entfernten Zugriff oder die Anzeige weiterer Infor-mationen zum Cache. Konfigurieren Sie hierfür den Eintrag cachemgr_passwdmiteinem Passwort für den Manager und der Liste der anzuzeigenden Optionen. DieseListe wird als Teil des Eintragskommentars in/etc/squid/squid.conf angezeigt.

Starten Sie Squid nach jeder Änderung der Konfigurationsdatei neu. Verwenden Siehierfür einfach rcsquid reload.

29.6.3 Anzeige der StatistikenRufen Sie die entsprechende Website auf: http://webserver.example.org/cgi-bin/cachemgr.cgi. Drücken Sie continue (Fortsetzen) und blättern Sie durchdie verschiedenen Statistiken. Weitere Details für die einzelnen, vom Cache-Managerangezeigten Einträge finden Sie in den Squid FAQ unter http://www.squid-cache.org/Doc/FAQ/FAQ-9.html.

29.7 squidGuardDieser Abschnitt dient nicht zur Erläuterung einer umfassenden Konfiguration vonsquidGuard. Er soll lediglich eine Einführung und einige Hinweise für die Verwendungbieten: Eine Behandlung tiefer gehender Konfigurationsfragen finden Sie auf dersquidGuard-Website unter http://www.squidguard.org.

Der Proxyserver Squid 583

Page 584: Suse 10.1 Linux Reference De

squidGuard ist ein kostenloses (GPL), flexibles und schnelles Filter-, Umleitungs- undZugriffssteuerungs-Plugin für Squid. Damit können Sie mehrere Zugriffsregeln mitverschiedenen Einschränkungen für verschiedene Benutzergruppen in einem Squid-Cache erstellen. squidGuard verwendet die Standard-Umleitungsschnittstelle von Squidund bietet folgende Möglichkeiten:

• Einschränken des Webzugriffs für einige Benutzer auf eine Liste akzeptierter odergut bekannter Webserver bzw. URLs.

• Blockieren des Zugriffs auf einige gelistete oder in einer Blacklist stehendeWebserver bzw. URLs für einige Benutzer.

• Blockieren des Zugriffs bestimmter Benutzer auf URLs, die reguläre Ausdrückeoder Wörter aus einer entsprechenden Liste enthalten.

• Umleiten blockierter URLs an eine „intelligente“ CGI-basierte Informationsseite.

• Umleiten nicht registrierter Benutzer zu einem Registrierungsformular.

• Umleiten von Bannern in eine leere GIF-Datei.

• Verwenden verschiedener Zugriffsregeln je nach Tageszeit, Wochentag, Datumusw.

• Verwenden verschiedener Regeln für verschiedene Benutzergruppen.

squidGuard und Squid können nicht zu folgenden Zwecken eingesetzt werden:

• Bearbeiten, Filtern oder Zensieren von Text in Dokumenten.

• Bearbeiten, Filtern oder Zensieren von in HTML eingebetteten Skriptsprachen, wieJavaScript oder VBscript.

Vor der Verwendung muss squidGuard zunächst installiert werden. Geben Sie eineDatei mit der Minimalkonfiguration als /etc/squidguard.conf an. Konfigurati-onsbeispiele finden Sie unterhttp://www.squidguard.org/config/. Späterkönnen Sie mit komplizierteren Konfigurationseinstellungen experimentieren.

Erstellen Sie als Nächstes eine Dummy-Seite mit „Zugriff verweigert“ oder eine mehroder weniger komplexe CGI-Seite, um Squid umzuleiten, wenn der Client eine Websiteanfordert, die auf der schwarzen Liste steht. Die Verwendung von Apache wird dringendempfohlen.

584 Referenz

Page 585: Suse 10.1 Linux Reference De

Konfigurieren Sie nun Squid für die Verwendung von squidGuard. Verwenden Siefolgenden Eintrag in der Datei /etc/squid/squid.conf:redirect_program /usr/bin/squidGuard

Eine weitere Option, redirect_children, dient zur Konfiguration der Anzahl der„Umleitungs“-Prozesse (in diesem Fall squidGuard-Prozesse), die auf dem Computerausgeführt werden. squidGuard ist schnell genug, um mit einer große Anzahl vonAnforderungen umgehen zu können: bei einem Pentium-Prozessor mit 500 MHz, 5.900Domänen und 7.880 URLs (insgesamt 13.780) können 100.000 Anforderungen innerhalbvon 10 Sekunden verarbeitet werden. Daher wird nicht empfohlen, mehr als vier Pro-zesse festzulegen, da die Zuordnung dieser Prozesse übermäßig viel Speicher verbrau-chen würde.redirect_children 4

Lassen Sie Squid abschließend die neue Konfiguration laden, indem Siercsquid reload ausführen. Testen Sie nun Ihre Einstellungen mit einem Browser.

29.8 Erstellung von Cache-Berichtenmit Calamaris

Calamaris ist ein Perl-Skript, mit dem Berichte über die Cache-Aktivität im ASCII-oder HTML-Format erstellt werden können. Es arbeitet mit nativen Squid-Zugriffsprotokolldateien. Die Calamaris-Homepage befindet sich unter http://Calamaris.Cord.de/. Das Programm ist recht benutzerfreundlich.

Melden Sie sich als root an und geben Sie cat access.log.files |calamaris Optionen > reportfile ein. Beim Piping mehrerer Protokoll-dateien ist darauf zu achten, dass die Protokolldateien chronologisch (die ältestenDateien zuerst) geordnet sind. Im Folgenden finden Sie einige Optionen des Programms:

-aAusgabe aller verfügbaren Berichte

-wAusgabe als HTML-Bericht

Der Proxyserver Squid 585

Page 586: Suse 10.1 Linux Reference De

-lEinschließen einer Meldung oder eines Logos in den Berichtsheader

Weitere Informationen zu den verschiedenen Optionen finden Sie auf der Manualpagedes Programms (man calamaris).

Typisches Beispiel:cat access.log.2 access.log.1 access.log | calamaris -a -w \ > /usr/local/httpd/htdocs/Squid/squidreport.html

Dadurch wird der Bericht im Verzeichnis des Webservers gespeichert. Zur Anzeigedes Berichts ist Apache erforderlich.

Ein weiteres leistungsstarkes Werkzeug zum Erstellen von Berichten ist SARG (SquidAnalysis Report Generator). Weitere Informationen hierzu finden Sie unter: http://sarg.sourceforge.net/.

29.9 Weitere InformationenBesuchen Sie die Squid-Homepage unterhttp://www.squid-cache.org/. Hierfinden Sie das Squid-Benutzerhandbuch und eine umfassende Sammlung mit FAQ zuSquid.

Nach der Installation ist eine kleine HOWTO-Datei zu transparenten Proxies inhowtoenhverfügbar:/usr/share/doc/howto/en/txt/TransparentProxy.gz. Außerdem sind Sie unter [email protected] Squid verfügbar. Das zugehörige Archiv finden Sie unter http://www.squid-cache.org/mail-archive/squid-users/.

586 Referenz

Page 587: Suse 10.1 Linux Reference De

Teil V. Mobilität

Page 588: Suse 10.1 Linux Reference De
Page 589: Suse 10.1 Linux Reference De

30Mobile Computernutzung mit LinuxDie mobile Computernutzung wird meist mit Notebooks, PDAs, Mobiltelefonen unddem Datenaustausch zwischen diesen Geräten in Verbindung gebracht. An Notebooksoder Desktop-Systeme können aber auch mobile Hardware-Komponenten, wie externeFestplatten, Flash-Laufwerke und Digitalkameras, angeschlossen sein. Ebenso zählenzahlreiche Software-Komponenten zu den Bestandteilen mobiler Computerszenariosund einige Anwendungen sind sogar speziell für die mobile Verwendung vorgesehen.

30.1 NotebooksDie Hardware von Notebooks unterscheidet sich von der eines normalen Desktopsystems.Dies liegt daran, dass hier Kriterien wie Austauschbarkeit, Platzbedarf und Stromver-brauch wichtige Eigenschaften sind. Die Hersteller von mobiler Hardware haben denPCMCIA-Standard (Personal Computer Memory Card International Association) ent-wickelt. Dieser Standard bezieht sich auf Speicherkarten, Netzwerkschnittstellenkarten,ISDN- und Modemkarten sowie externe Festplatten. Die Implementierung der Unter-stützung für diese Hardware, die während der Konfiguration zu berücksichtigendenAspekte, die für die Steuerung von PCMCIA verfügbare Software und die Möglichkeitenzur Fehlersuche bei etwaigen Problemen werden in Kapitel 31, PCMCIA (S. 601)beschrieben.

30.1.1 EnergieeinsparungDurch die Integration von energieoptimierten Systemkomponenten bei der Herstellungvon Notebooks erhöht sich die Eignung der Geräte für die Verwendung ohne Zugang

Mobile Computernutzung mit Linux 589

Page 590: Suse 10.1 Linux Reference De

zum Stromnetz. Ihr Beitrag zur Energieeinsparung ist mindestens so wichtig wie derdes Betriebssystems. SUSE Linux unterstützt verschiedene Methoden, die den Energie-verbrauch eines Notebooks beeinflussen und sich auf die Betriebsdauer bei Akkubetriebauswirken. In der folgenden Liste werden die Möglichkeiten zur Energieeinsparung inabsteigender Reihenfolge ihrer Wirksamkeit angegeben:

• Drosselung der CPU-Geschwindigkeit

• Ausschalten der Anzeigebeleuchtung während Pausen

• Manuelle Anpassung der Anzeigebeleuchtung

• Ausstecken nicht verwendeter, Hotplug-fähiger Zubehörteile (USB-CD-ROM,externe Maus, nicht verwendete PCMCIA-Karten usw.)

• Ausschalten der Festplatte im Ruhezustand

Detaillierte Hintergrundinformationen zur Energieverwaltung unter SUSE Linux undzum Betrieb des YaST-Energieverwaltungsmoduls finden Sie in Kapitel 33, Energie-verwaltung (S. 627).

30.1.2 Integration in unterschiedlichenBetriebsumgebungen

Ihr System muss sich an unterschiedliche Betriebsumgebungen anpassen können, wennes für mobile Computernutzung verwendet werden soll. Viele Dienste hängen von derUmgebung ab und die zu Grunde liegenden Clients müssen neu konfiguriert werden.SUSE Linux übernimmt diese Konfiguration für Sie.

590 Referenz

Page 591: Suse 10.1 Linux Reference De

Abbildung 30.1 Integrieren eines Notebooks in ein Netzwerk

??

?

?

??

?

?

DruckenMail

Proxy

Netzwerk

X-Konfiguration

Bei einem Notebook beispielsweise, das zwischen einem kleinen Heimnetzwerk zuHause und einem Firmennetzwerk hin und her pendelt, sind folgende Dienste betroffen:

NetzwerkDazu gehören IP-Adresszuweisung, Namensauflösung, Internet-Konnektivität undKonnektivität mit anderen Netzwerken.

DruckenDie aktuelle Datenbank der verfügbaren Drucker und ein verfügbarer Druckserver(abhängig vom Netzwerk) müssen vorhanden sein.

E-Mail und ProxysWie beim Drucken muss die Liste der entsprechenden Server immer aktuell sein.

XWenn das Notebook zeitweise an einen Beamer oder einen externen Monitorangeschlossen ist, müssen die verschiedenen Anzeigekonfigurationen verfügbarsein.

Mobile Computernutzung mit Linux 591

Page 592: Suse 10.1 Linux Reference De

SUSE Linux bietet verschiedene Möglichkeiten zur Integration eines Notebooks inbestehende Betriebsumgebungen:

SCPMSCPM (System Configuration Profile Management, Verwaltung der Systemkonfi-gurationsprofile) ermöglicht die Speicherung beliebiger Konfigurationszuständeeines Systems in einer Art „Snapshot“, die alsProfil bezeichnet wird. Profile könnenfür verschiedene Situationen erstellt werden. Sie sind nützlich, wenn ein Systemin unterschiedlichen Umgebungen (Heimnetzwerk, Firmennetzwerk) eingesetztwird. Ein Umschalten zwischen den Profilen ist jederzeit möglich. Informationenüber SCPM finden Sie in Kapitel 32, Verwaltung der Systemkonfigurationsprofile(S. 611). In KDE können Sie für den Wechsel zwischen Profilen das Kicker-Applet„Profil-Auswahl“ verwenden. Die Anwendung benötigt das Root-Passwort, bevorumgeschaltet werden kann.

NetworkManagerNetworkManager wurde speziell für die mobile Verbindung von Notebooks mitNetzwerken entwickelt. Dieses Verwaltungsprogramm ermöglicht einen einfachenund automatischen Wechsel zwischen verschiedenen Netzwerkumgebungen oderNetzwerktypen wie WLAN und Ethernet. NetworkManager unterstützt WEP- undWPA-PSK-Verschlüsselung in WLANs mit Einwählverbindungen (mit smpppd).Beide Desktop-Umgebungen von SUSE Linux (GNOME und KDE) bieten einFront-End zu NetworkManager.

Tabelle 30.1 Anwendungsbeispiele für NetworkManager

Verwendung von Net-workManager

Computer

JaDer Computer ist ein Notebook.

JaDer Computer wird mit verschiedenen Netzwerkenverbunden.

NeinDer Computer stellt Netzwerkdienste bereit (z. B.DNS oder DHCP).

NeinDer Computer hat eine statische IP-Adresse.

592 Referenz

Page 593: Suse 10.1 Linux Reference De

Verwenden Sie die Werkzeuge von YaST zur Konfiguration der Netzwerkverbin-dungen, wenn die Netzwerkkonfiguration nicht automatisch von NetworkManagerübernommen werden soll.

SLPDas Service Location Protocol (SLP) vereinfacht die Verbindung eines Notebooksmit einem bestehenden Netzwerk. Ohne SLP benötigt der Administrator einesNotebooks normalerweise detaillierte Kenntnisse über die im Netzwerk verfügbarenDienste. SLP sendet die Verfügbarkeit eines bestimmten Diensttyps an alle Clientsin einem lokalen Netzwerk. Anwendungen, die SLP unterstützen, können die vonSLP weitergeleiteten Informationen verarbeiten und automatisch konfiguriertwerden. SLP kann sogar für die Installation eines Systems verwendet werden,wodurch sich die Suche nach einer geeigneten Installationsquelle erübrigt. WeitereInformationen zu SLP finden Sie unter Kapitel 19, SLP-Dienste imNetzwerk (S. 395).

Der Schwerpunkt von SCPM liegt auf der Aktivierung und Aufrechterhaltung reprodu-zierbarer Systembedingungen. SLP erleichtert die Konfiguration eines vernetztenComputers erheblich, indem es einen Großteil der Konfiguration automatisiert.

30.1.3 Software-OptionenEs gibt verschiedene Sonderaufgabenbereiche bei der mobilen Verwendung, die vondedizierter Software abgedeckt werden: Systemüberwachung (insbesondere der Lade-zustand des Akkus), Datensysnchronisation und drahtlose Kommunikation mit Periphe-riegeräten und dem Internet. In den folgenden Abschnitten werden die wichtigstenAnwendungen behandelt, die SUSE Linux für jede Aufgabe bietet.

SystemüberwachungSUSE Linux bietet zwei KDE-Werkzeuge zur Systemüberwachung:

KPowersaveKPowersave ist ein Applet, das den Zustand des Akkus in der Systemsteuerunganzeigt. Das Symbol wird entsprechend der Art der Energieversorgung angepasst.Bei Arbeit mit Wechselstrom wird ein kleines Steckersymbol angezeigt. Bei Arbeitmit Akkustrom wird als Symbol eine Batterie angezeigt. Das zugehörige Menüöffnet das YaST-Modul für die Energieverwaltung nach der Anforderung desStammpassworts. Damit können Sie das Verhalten des Systems bei verschiedenenArten der Energieversorgung festlegen. Weitere Informationen über die Energie-

Mobile Computernutzung mit Linux 593

Page 594: Suse 10.1 Linux Reference De

verwaltung und die entsprechenden YaST-Module finden Sie in Kapitel 33, Ener-gieverwaltung (S. 627).

KSysguardKSysguard ist eine unabhängige Anwendung, die alle messbaren Parameter desSystems in eine einzige Überwachungsumgebung sammelt. KSysguard weistMonitore für ACPI (Akkustatus), CPU-Last, Netzwerk, Partitionierung undArbeitsspeicherauslastung. Außerdem kann diese Anwendung alle Systemprozesseüberwachen und anzeigen. Die Darstellung und Filterung der gesammelten Datenkann benutzerdefiniert angepasst werden. Es ist möglich, verschiedene Systempa-rameter auf verschiedenen Datenseiten zu überwachen oder die Daten von mehrerenComputern parallel über das Netzwerk zu sammeln. KSysguard kann außerdemals Daemon auf Computern ohne KDE-Umgebung ausgeführt werden. WeitereInformationen zu diesem Programm finden Sie in der zugehörigen integriertenHilfefunktion bzw. auf den SUSE-Hilfeseiten.

Abbildung 30.2 Überwachen des Akkuzustands mit KSysguard

Auf dem GNOME-Desktop verwenden Sie zur Systemüberwachung das Kontrollleisten-Applet GNOME ACPI und die Anwendung Systemmonitor.

DatensynchronisierungBeim ständigen Wechsel zwischen der Arbeit auf einem mobilen Computer, der vomNetzwerk getrennt ist, und der Arbeit an einer vernetzten Arbeitsstation in einem Büromüssen die verarbeiteten Daten stets auf allen Instanzen synchronisiert sein. Dazu

594 Referenz

Page 595: Suse 10.1 Linux Reference De

gehören E-Mail-Ordner, Verzeichnisse und einzelne Dateien, die sowohl für die Arbeitunterwegs als auch im Büro vorliegen müssen. Die Lösung sieht für beide Fälle folgen-dermaßen aus:

Synchronisieren von E-MailVerwenden Sie ein IMAP-Konto zum Speichern der E-Mails im Firmennetzwerk.Der Zugriff auf die E-Mails von der Arbeitsstation aus erfolgt dann über einenbeliebigen, nicht verbundenen IMAP-fähigen E-Mail-Client, wie Mozilla Thunder-bird Mail, Evolution oder KMail, wie unterAnwendungen beschrieben. Der E-Mail-Client muss so konfiguriert sein, dass für Sent Messages (Gesendete Nachrich-ten) immer derselbe Ordner aufgerufen wird. Dadurch wird gewährleistet, dassnach Abschluss der Synchronisierung alle Nachrichten mit den zugehörigen Status-informationen verfügbar sind. Verwenden Sie zum Senden von Nachrichten einenim Mail-Client implementierten SMTP-Server anstatt des systemweiten MTA-Postfix oder Sendmail, um zuverlässige Rückmeldungen über nicht gesendete Mailzu erhalten.

Synchronisieren von Dateien und VerzeichnissenEs gibt mehrere Dienstprogramme, die sich für die Synchronisierung von Datenzwischen Notebook und Arbeitsstation eignen. Detaillierte Informationen findenSie in Kapitel 27, Dateisynchronisierung (S. 531).

Drahtlose KommunikationNeben einem Anschluss an ein Heim- oder Firmennetzwerk über ein Kabel kann einNotebook auch drahtlos mit anderen Computern, Peripheriegeräten, Mobiltelefonenoder PDAs verbunden sein. Linux unterstützt drei Typen von drahtloser Kommunikation:

WLANWLAN weist die größte Reichweite dieser drahtlosen Technologien auf und istdaher als einziges für den Betrieb großer und zuweilen sogar räumlich geteilterNetzwerke geeignet. Einzelne Computer können untereinander eine Verbindungherstellen und so ein unabhängiges drahtloses Netzwerk bilden oder auf das Internetzugreifen. Als Zugriffspunkte bezeichnete Geräte können als Basisstationen fürWLAN-fähige Geräte und als Zwischengeräte für den Zugriff auf das Internetfungieren. Ein mobiler Benutzer kann zwischen verschiedenen Zugriffspunktenumschalten, je nachdem, welcher Zugriffspunkt die beste Verbindung aufweist.Wie bei der Mobiltelefonie steht WLAN-Benutzern ein großes Netzwerk zur Ver-fügung, ohne dass sie für den Zugriff an einen bestimmten Standort gebunden sind.Informationen über WLAN finden Sie in Abschnitt 34.1, „Wireless LAN“ (S. 655).

Mobile Computernutzung mit Linux 595

Page 596: Suse 10.1 Linux Reference De

BluetoothBluetooth weist das breiteste Anwendungsspektrum von allen drahtlosen Techno-logien auf. Es kann, ebenso wie IrDA, für die Kommunikation zwischen Computern(Notebooks) und PDAs oder Mobiltelefonen verwendet werden. Außerdem kannes zur Verbindung mehrerer Computer innerhalb des Sichtbereichs verwendetwerden. Des Weiteren wird Bluetooth zum Anschluss drahtloser Systemkomponen-ten, beispielsweise Tastatur und Maus, verwendet. Die Reichweite dieser Techno-logie reicht jedoch nicht aus, um entfernte Systeme über ein Netzwerk zu verbinden.WLAN ist die optimale Technologie für die Kommunikation durch physischeHindernisse, wie Wände. Weitere Informationen über Bluetooth, zugehörigeAnwendungen und seine Konfiguration finden Sie in Abschnitt 34.2, „Bluetooth“(S. 668).

IrDAIrDA ist die drahtlose Technologie mit der kürzesten Reichweite. Beide Kommu-nikationspartner müssen sich in Sichtweite voneinander befinden. Hindernisse, wieWände, können nicht überwunden werden. Eine mögliche Anwendung von IrDAist die Übertragung einer Datei von einem Notebook auf ein Mobiltelefon. Diekurze Entfernung zwischen Notebook und Mobiltelefon wird mit IrDa überbrückt.Der Langstreckentransport der Datei zum Empfänger erfolgt über das Mobilfun-knetz. Ein weiterer Anwendungsbereich von IrDA ist die drahtlose Übertragungvon Druckaufträgen im Büro. Weitere Informationen zu IrDA finden Sie inAbschnitt 34.3, „Infrarot-Datenübertragung“ (S. 680).

30.1.4 DatensicherheitIdealerweise schützen Sie die Daten auf Ihrem Notebook mehrfach gegen unbefugtenZugriff. Mögliche Sicherheitsmaßnahmen können in folgenden Bereichen ergriffenwerden:

Schutz gegen DiebstahlSchützen Sie Ihr System stets nach Möglichkeit gegen Diebstahl. Im Einzelhandelist verschiedenes Sicherheitszubehör, wie beispielsweise Ketten, verfügbar.

Sichern der Daten auf dem SystemWichtige Daten sollten nicht nur während der Übertragung, sondern auch auf derFestplatte verschlüsselt sein. Dies gewährleistet die Sicherheit der Daten im Falleeines Diebstahls. Die Erstellung einer verschlüsselten Partition mit SUSE Linux

596 Referenz

Page 597: Suse 10.1 Linux Reference De

wird in Abschnitt 4.3, „Verschlüsseln von Partitionen und Dateien“ (S. 127)beschrieben.

WICHTIG: Datensicherheit und Suspend to Disk

Verschlüsselte Partitionen werden bei Suspend to Disk nicht ausgehängt.Daher sind alle Daten auf diesen Partitionen für jeden verfügbar, dem esgelingt, die Hardware zu stehlen und einen Resume-Vorgang für die Fest-platte durchführt.

NetzwerksicherheitJegliche Datenübertragung sollte gesichert werden, gleichgültig auf welche Weisesie erfolgt. Allgemeine, Linux und Netzwerke betreffende Sicherheitsrisiken sindin Abschnitt 4.5, „Sicherheit und Vertraulichkeit“ (S. 140) beschrieben. Sicherheits-maßnahmen für drahtlose Netzwerke finden Sie im Kapitel 34,Drahtlose Kommu-nikation (S. 655).

30.2 Mobile HardwareSUSE Linux unterstützt die automatische Erkennung mobiler Speichergeräte überFirewire (IEEE 1394) oder USB. Der Ausdruckmobiles Speichergerät bezieht sich aufjegliche Art von Firewire- oder USB-Festplatten, USB-Flash-Laufwerken oder Digital-kameras. Alle Geräte werden automatisch über Hotplug erkannt und konfiguriert, sobaldsie mit dem System über die entsprechende Schnittstelle verbunden sind. Durch subfsund submount wird gewährleistet, dass die Geräte auf den entsprechenden Speicherortenim Dateisystem eingehängt werden. Dem Benutzer bleibt das manuelle Einhängen undAushängen, das bei früheren Versionen von SUSE Linux erforderlich war, nun völligerspart. Ein Gerät kann einfach getrennt werden, sobald kein Programm mehr daraufzugreift.

Externe Festplatten (USB und Firewire)Sobald eine externe Festplatte ordnungsgemäß vom System erkannt wurde, wirddas zugehörige Symbol in My Computer (Arbeitsplatz) (KDE) bzw. Computer(Computer) (GNOME) in der Liste der eingehängten Laufwerke aufgeführt. DurchKlicken auf das Symbol wird der Inhalt des Laufwerks angezeigt. Sie können hierOrdner und Dateien erstellen, bearbeiten und löschen. Um einer Festplatte einenanderen Namen zu geben als den vom System zugeteilten, wählen Sie das entspre-chende Menüelement aus dem Menü aus, das beim Rechtsklicken auf das Symbol

Mobile Computernutzung mit Linux 597

Page 598: Suse 10.1 Linux Reference De

geöffnet wird. Die Namensänderung wird nur im Dateimanager angezeigt. DerDeskriptor, durch den das Gerät in /media eingehängt wurde, bleibt davonunbeeinflusst.

USB-Flash-LaufwerkeDiese Geräte werden vom System genau wie externe Festplatten behandelt. Ebensokönnen Sie die Einträge im Dateimanager umbenennen.

Digitalkameras (USB und Firewire)Vom Gerät erkannte Digitalkameras werden ebenfalls im Dateimanager-Überblickals externe Laufwerke angezeigt. Mit KDE können Sie die Bilder unter der URLcamera:/ lesen und darauf zugreifen. Diese Bilder können dann mithilfe vonDigikam oder GIMP verarbeitet werden. Bei der Verwendung von GNOME zeigtNautilus die Bilder in ihrem eigenen Ordner an. Ein einfaches Dienstprogrammzur Bildbearbeitung und -verwaltung ist f-spot. Erweiterte Fotobearbeitung ist überGIMP möglich. Weitere Einzelheiten zu Digitalkameras und Bildverwaltung findenSie in Kapitel Digitalkameras und Linux (↑Anwendungen).

30.3 Mobiltelefone und PDAsEin Desktopsystem oder Notebook kann über Bluetooth oder IrDA mit einem Mobilte-lefon kommunizieren. Einige Modelle unterstützen beide Protokolle, andere nur einesvon beiden. Die Anwendungsbereiche für die beiden Protokolle und die entsprechendeerweiterte Dokumentation wurde bereits in „Drahtlose Kommunikation“ (S. 595) erwähnt.Die Konfiguration dieser Protokolle auf den Mobiltelefonen selbst wird in den entspre-chenden Handbüchern beschrieben. Die Konfiguration seitens Linux wird inAbschnitt 34.2, „Bluetooth“ (S. 668) und Abschnitt 34.3, „Infrarot-Datenübertragung“(S. 680) beschrieben.

Unterstützung für die Synchronisierung mit Handheld-Geräten von Palm, Inc., ist bereitsin Evolution und Kontact integriert. Die erstmalige Verbindung mit dem Gerät erfolgtin beiden Fällen problemlos mit der Unterstützung durch einen Assistenten. Sobald dieUnterstützung für Palm Pilots konfiguriert wurde, müssen Sie bestimmen, welche Artvon Daten synchronisiert werden soll (Adressen, Termine usw.). Beide Groupware-Anwendungen werden unter Anwendungen beschrieben.

598 Referenz

Page 599: Suse 10.1 Linux Reference De

Das in Kontact integrierte Programm KPilot steht auch als unabhängiges Dienstpro-gramm zur Verfügung. Diese Methode wird unter Anwendungen beschrieben. Für dieSynchronisierung von Adressdaten steht außerdem das Programm KitchenSync zurVerfügung.

30.4 Weitere InformationenDie zentrale Informationsquelle für alle Fragen in Bezug auf mobile Geräte und Linuxist http://tuxmobil.org/. Verschiedene Bereiche dieser Website befassen sichmit den Hardware- und Software-Aspekten von Notebooks, PDAs, Mobiltelefonen undanderer mobiler Hardware.

Einen ähnlichen Ansatz wie den unter http://tuxmobil.org/ finden Sie auchunterhttp://www.linux-on-laptops.com/. Hier finden Sie Informationenzu Notebooks und Handhelds.

SUSE unterhält eine deutschsprachige Mailingliste, die sich mit dem Thema Notebooksbefasst. Siehehttp://lists.suse.com/archive/suse-laptop/. In dieserListe diskutieren Benutzer alle Aspekte der mobilen Computernutzung mit SUSE Linux.Einige Beiträge sind auf Englisch, doch der größte Teil der archivierten Informationenliegt in deutscher Sprache vor.

Bei Problemen mit der Engergieverwaltung von SUSE Linux bei Notebooks solltenSie die Datei README unter /usr/share/doc/packages/powersave lesen.Dieses Verzeichnis enthält häufig kurz vor Veröffentlichung eingegangene Rückmel-dungen von Testern und Entwicklern und bietet so wertvolle Hinweise zur Problemlö-sung.

Mobile Computernutzung mit Linux 599

Page 600: Suse 10.1 Linux Reference De
Page 601: Suse 10.1 Linux Reference De

31PCMCIAPCMCIA wird oft im Zusammenhang mit Hardware an sich verwendet, obwohl demBegriff die Organisation zugrunde liegt, die die möglichen Typen von PC-Kartenstandardisiert hat, die PC Memory Card International Association. Anfangs schlossPCMCIA nur PC-Karten (die einen 16-Bit-Bus verwenden, z. B. ISA-Karte) ein, späterauch CardBus-Karten (die einen 32-Bit-Bus verwenden). Unter Linux wird eine breitePalette an PCMCIA-Hardware unterstützt. Linux schließt zudem Werkzeuge für diePCMCIA-Verwaltung ein.

PCMCIA-Karten werden hauptsächlich auf mobilen Computern zu verschiedenenZwecken genutzt. Beispiele:

• Ethernet- und Wireless LAN-Adapter

• Bluetooth-Karten

• Speicherkarten (Flash, SRAM usw.)

• Speicherkartenadapter (SD, MMC, SmartMedia, CompactFlash, MemoryStick)

• Modems

Die Kartenverwaltung wird zum Großteil im Hintergrund von udev und hotplug ausge-führt. Wenn ein Eingreifen des Benutzers erforderlich ist, verwenden Sie denpccardctl-Befehl. Hintergrundinformationen zu PCMCIA erhalten Sie inAbschnitt 31.2, „PCMCIA im Detail“ (S. 602). Genaue Informationen zumpccardctlBefehl erhalten Sie in Abschnitt 31.1, „Steuern der PCMCIA-Kartenmithilfe von pccardctl“ (S. 602).

PCMCIA 601

Page 602: Suse 10.1 Linux Reference De

31.1 Steuern der PCMCIA-Kartenmithilfe von pccardctl

Die Kartenverwaltung erfolgt normalerweise durch udev und hotplug, ohne dass derBenutzer eingreifen muss. pccardctl ermöglicht die manuelle Steuerung der Karte fürden Fall, dass der automatische Vorgang nicht fehlerfrei durchgeführt wird.

Im Folgenden finden Sie eine Liste der wichtigsten pccardctl-Befehle. Für dieseBefehle sind Root-Berechtigungen erforderlich:

pccardctl insertFalls die Karte nicht automatisch erkannt wurde, benachrichtigen Sie die Client-Treiber, dass die Karte soeben eingeschoben wurde.

pccardctl ejectGeben Sie die Karte manuell aus und benachrichtigen Sie die Client-Treiber, dassdie Karte ausgegeben wird. Trennen Sie die Stromverbindung für den Socket.Diese Option ist insbesondere dann hilfreich, wenn Sie auf Probleme mit suspendund resume stoßen. Siehe Beschreibung in Abschnitt 31.3.2, „Allgemeine Problemebei Suspend-Vorgängen mit PCMCIA“ (S. 608).

pccardctl suspendFahren Sie das System herunter und trennen Sie die Stromverbindung für denSocket, aber geben Sie die Karte nicht aus (Aufheben der Bindung der entsprechen-den Module).

pccardctl resumepccardctl resume stellen Sie die Stromverbindung für den Socket her undstellen Sie die Konfiguration wieder her, die vor dem suspend-Ereignis vorlag.

Weitere Informationen finden Sie auf der Manualpage zu pccardctl.

31.2 PCMCIA im DetailFolgene Abschnitte beschreiben, was auf Ihrem Linux-System geschieht, wenn einPCMCIA-Gerät an Ihren Computer angeschlossen wird. Die Komponenten interagieren

602 Referenz

Page 603: Suse 10.1 Linux Reference De

untereinander und es müssen viele Anforderungen erfüllt werden, damit das PCMCIA-Gerät unterstützt wird.

Im Folgenden wird der PCMCIA-Initialisierungsvorgang unter Linux grob dargestellt:

1. Die PCMCIA-Bridge (oder Socket) muss ordnungsgemäß wie in Abschnitt 31.2.1,„Bridge-Initialisierung“ (S. 603) beschrieben eingerichtet werden. Voraussetzun-gen:

• Passender Treiber für die Bridge

• Zusätzliche I/O- und Speicherbereiche für PC-Karten

2. Nachdem die Brigde ordnungsgemäß eingerichtet wurde, erkennt der Bridge-Treiber, dass eine Karte vorhanden ist, und löst deren Initialisierung gemäß derBeschreibung in Abschnitt 31.2.2, „Initialisierung der Karte“ (S. 604) aus:

a. Legen Sie den Kartentyp fest.

b. Geben Sie die richtige Spannung an.

c. Weisen Sie der Karte E/A- und Speicherbereiche und IRQ-Leitungen zu.

d. Lösen Sie die Karten- oder Geräteinitialisierung aus, indem Sie eine Bindungmit dem passenden Kartentreiber herstellen.

e. Bei einigen Karten muss die Card Information Structure (CIS) hochgeladenwerden.

3. Schließlich wird die Schnittstelle an sich eingerichtet und kann verwendet werden.Weitere Informationen hierzu finden Sie in Abschnitt 31.2.3, „Einrichtung derSchnittstelle“ (S. 606).

31.2.1 Bridge-InitialisierungDie meisten PCMCIA-Bridges sind PCI-Geräte und werden als solche behandelt. DerBridge-Initialisierungsvorgang kann wie folgt zusammengefasst werden:

1. Hotplug erstellt ein PCI-Ereignis.

PCMCIA 603

Page 604: Suse 10.1 Linux Reference De

2. udev ruft /sbin/hwup auf, um den Treiber zu laden. /sbin/hwup überprüft/etc/sysconfig/hardware hinsichtlich einer vorhandenen Gerätekonfi-guration. Falls eine passende Konfiguration gefunden wird, wird diese Konfigu-ration verwendet. Anderenfalls ruft /sbin/hwup modprobe mit der vomKernel bereitgestellten modalias-Zeichenkette auf, um das Treibermodul zuladen.

3. Neue hotplug-Ereignisse werden gesendet (eines pro PCMCIA-Socket)

4. Die folgenden Schritte werden ausgelassen, wenn nur CardBus-Karten verwendetwerden:

a. Die pcmcia_socket-Ereignisse lösen udev aus, um /sbin/hwupaufzurufen und das pcmcia-Kernelmodul zu laden.

b. Alle E/A- und Speicherbereiche, die in /etc/pcmcia/config.optsangegeben sind, werden dem Socket hinzugefügt.

c. Die Card Services im Kernel überprüfen diese Bereiche. Falls dieSpeicherbereiche in /etc/pcmcia/config.opts falsch sind, kanndieser Schritt Ihren Computer zum Absturz bringen. In Abschnitt 31.3.1,„Computer stürzt mit PCMCIA ab“ (S. 606) finden Sie Informationen zurFehlersuche und Behebung dieses Problems.

Nachdem diese Schritte erfolgreich abgeschlossen wurde, ist die Bridge vollständiginitialisiert. Anschließend wird die Karte selbst, wie im folgenden Abschnitt beschrieben,initialisiert.

31.2.2 Initialisierung der KarteDie Ereignisse, die durch das Einsetzen einer PCMCIA-Karte verursacht werden,können wie folgt zusammengefasst werden:

1. Ein hotplug-Ereignis tritt ein. Bei PC-Karten ist dies ein pcmcia-Ereignis. BeiCardBus-Karten ist dies ein pci-Ereignis.

2. Für sämtliche Ereignisse ruft udev /sbin/hwup auf, um ein Treibermodul zuladen. Der Modulname wird entweder in einer hwcfg*-Datei unter /etc/sysconfig/hardware oder über den Befehl modprobe modaliasangegeben.

604 Referenz

Page 605: Suse 10.1 Linux Reference De

3. Gegebenenfalls löst die Geräteinitialisierung ein Firmware-Hotplug-Ereignisaus. Dieses sucht nach Firmware und lädt diese.

4. Der Gerätetreiber registriert die Schnittstellen.

Nachdem diese Schritte abgeschlossen wurden, setzt das System die Einrichtung derSchnittstelle gemäß der Beschreibung im nächsten Abschnitt fort.

Falls es sich bei Ihrer Karte um eine PC-Karte handelt, benötigen Sie möglicherweisedie folgenden Parameter in /etc/sysconfig/pcmcia, damit die Karte vollständigunterstützt wird und fehlerfrei arbeitet:

PCMCIA_LOAD_CISDie Firmware einer PC-Karte wird alsCIS (Card Information Structure) bezeichnet.Sie enthält zusätzliche Implementierungsdetails zur Karte. hwup überprüft dieIntegrität der integrierten CIS der Karte und versucht, eine andere CIS von derFestplatte zu laden, falls sich herausstellt, dass die CIS der Karte beschädigt ist.Die Standardeinstellung ist yes. Um zu deaktivieren, dass die CIS von der Fest-platte geladen wird, legen Sie für diese Variable no fest.

PCMCIA_ALLOW_FUNC_MATCHLinux-Gerätetreiber enthalten eine Geräte-ID-Tabelle, die angibt, welche Gerätedie Treiber behandeln sollen. Das bedeutet, dass nur die Geräte, deren IDs demKernel bekannt sind, unterstützt werden. Um die Karten zu unterstützen, deren IDnicht aufgelistet ist, können Sie Function Matching verwenden. Demzufolge wirdder Treiber nicht anhand der ID, sondern anhand der Funktion der Karte ausgewählt(z. B. eine Netzwerkkarte) und wäre für sämtliche eingelegte PC-Karten zuständig,die diese Funktion haben (z. B. Netzwerkkarten). Die Standardeinstellung ist yes.Um den Funktionsabgleich zu deaktivieren, legen Sie für diese Variable no fest.

PCMCIA_COLDPLUG_REINSERTKarten, die vor dem Booten eingelegt werden, werden manchmal nicht erkannt.Um dies zu verhindern, geben Sie die Karte aus und legen Sie sie wieder ein perSoft Eject und Soft Insert), indem SiePCMCIA_COLDPLUG_REINSERT aufyessetzen. Die Standardeinstellung ist no.

PCMCIA 605

Page 606: Suse 10.1 Linux Reference De

31.2.3 Einrichtung der SchnittstelleJe nach Kartentyp werden verschiedene Schnittstellen registriert, nachdem die Initiali-sierung erfolgreich abgeschlossen wurde. Die Registrierung der Schnittstelle erfolgtdurch die hotplug-Funktion von udev. Genaue Informationen zu udev und hotplugerhalten Sie in Kapitel 12, Gerätemanagement über dynamischen Kernel mithilfe vonudev (S. 273).

31.3 FehlerbehebungIm Folgenden finden Sie eine Liste der bekanntesten Probleme, die gelegentlich mitPCMCIA auftreten. Weitere Informationen zu diesem Thema finden Sie in PCMCIAREADME (/usr/share/doc/packages/pcmciautils/README.SuSE).

31.3.1 Computer stürzt mit PCMCIA abIhr Computer stürtzt ab, wenn PCMCIA beim Booten gestartet wird. Um die Ursachefür den Absturz des Computers zu ermitteln, richten Sie den Computer, wie nachstehendbeschrieben, manuell ein. Wenn Sie PCMCIA sorgfältig manuell installieren, könnenSie den Schritt oder die Komponente, die den Absturz des Computers verursacht hat,eindeutig identifizieren. Sobald die Ursache erkannt wurde, können Sie den problema-tischen Schritt oder die Komponente umgehen.

Gehen Sie wie folgt vor, um PCMCIA manuell einzurichten:

1 Vermeiden Sie, dass PCMCIA beim Booten des Systems gestartet wird, undaktivieren Sie SysRq, um die Fehlersuche zu erleichtern, indem Sie folgendeOptionen an die Bootprompt anfügen:init=3 pcmcia=off sysrq=1

Weitere Informationen zu SysRq erhalten Sie in der Datei /usr/src/linux/Documentation/sysrq.txt.

2 Booten Sie das System in einer textbasierten Umgebung und melden Sie sich als„root“ an.

3 Fügen Sie dem Kernel die passenden PCMCIA-Module hinzu:

606 Referenz

Page 607: Suse 10.1 Linux Reference De

/sbin/modprobe yenta_socket/sbin/modprobe pcmcia

4 Starten Sie den PCMCIA-Socket:/sbin/pcmcia-socket-startupN

Ersetzen Sie N durch die Nummer des Socket. Wiederholen Sie diesen Schrittfür jeden Socket.

5 Falls der vorige Schritt den Computer zum Absturz brachte, wurden möglicher-weise die falschen E/A- oder Speicherbereiche in /etc/pcmcia/config.opts angegeben. Gehen Sie wie folgt vor, um dies zu vermeiden:

• Schließen Sie Bereiche in /ect/pcmcia/config.opts aus und versu-chen Sie die Socket-Einrichtung erneut.

• Fügen Sie die Bereiche manuell durch, wie nachfolgend beschrieben.

Nachdem Sie die passenden Bereiche erfolgreich manuell hinzugefügt haben,legen Sie sie permanent fest, indem Sie sie in /etc/pcmcia/config.opts einschließen.

6 Nachdem die Socket-Einrichtung erfolgreich abgeschlossen wurde, funktioniertdie Karteninitialisierung und die Schnittstelleneinrichtung wie in Abschnitt 31.2.2,„Initialisierung der Karte“ (S. 604) und Abschnitt 31.2.3, „Einrichtung derSchnittstelle“ (S. 606) beschrieben.

Gehen Sie (für jeden einzelnen Socket) wie folgt vor, um E/A-Bereiche manuell hinzu-zufügen:

1 Wechseln Sie zum Verzeichnis, in dem die Bereichskonfiguration enthalten ist(in diesem Fallpcmcia_socket0; muss für andere Socket-Nummern angepasstwerden):cd /sys/class/pcmcia_socket/pcmcia_socket0

2 Führen Sie den folgenden Befehl aus:echo begin - end > available_resources_io

PCMCIA 607

Page 608: Suse 10.1 Linux Reference De

Ersetzen Sie begin und end mit den Adressen, an denen der neue Bereichanfangen bzw. enden soll. Die richtigen Werte können nur durch Ausprobierenermittelt werden.

Manuelles Hinzufügen der folgenden Bereiche:echo 0x800 - 0x8ff > available_resources_ioecho 0xc00 - 0xcff > available_resources_io

entspricht der folgenden Zeile aus /etc/pcmcia/config.opts:include port 0x800-0x8ff, port 0xc00 0xcff

Dieselbe Vorgehensweise gilt für die Speicherbereiche unteravailable_resources_mem.

WICHTIG: Ermitteln fehlerhafter Standardeinstellungen

Wenn Sie einen fehlerhaften Bereich in der standardmäßigen Konfigurations-datei (/etc/pcmcia/config.opts), die mit diesem Produkt geliefert wurde,finden, reichen Sie diesbezüglich unter http://bugzilla.novell.comeinen Fehlerbericht ein, damit die Entwickler das Problem untersuchen können.

31.3.2 Allgemeine Probleme beiSuspend-Vorgängen mit PCMCIA

Schließen Sie, während Sie Suspend-Vorgänge am System ausführen, niemals Hardware-Komponenten an oder trennen diese vom System, während sich dieses im Suspend-Modus befindet. Anderenfalls kann das System nicht ordnungsgemäß wiederaufgenom-men werden.

Um PCMCIA-Karten während eines Suspend-Vorgangs automatisch auszugeben, gehenSie wie folgt vor:

1 Melden Sie sich als „root“ an.

2 Öffnen Sie die Datei /etc/powersave/sleep.

3 Legen Sie folgende Variablen fest:

608 Referenz

Page 609: Suse 10.1 Linux Reference De

SUSPEND2DISK_EJECT_PCMCIA="yes"SUSPEND2RAM_EJECT_PCMCIA="yes"STANDBY_EJECT_PCMCIA="yes"

4 Speichern Sie die Datei, um die Einstellungen anzuwenden.

Falls zusätzliche Module im Suspend-Modus ausgegeben werden müssen, gehen Siewie oben beschrieben vor und fügen Sie den folgenden Variablen die Modulnamenhinzu:UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""UNLOAD_MODULES_BEFORE_STANDBY=""

Allgemeine Informationen zum Powersave-Daemon erhalten Sie in Abschnitt 33.5,„Das powersave-Paket“ (S. 640).

31.3.3 Weitere InformationenAktuelle Informationen zu PCMCIA erhalten Sie in usr/share/doc/packages/pcmciautils/README.SuSE. Eine umfassende Übersicht über die PCMCIA-Hardware und deren Verwendungsbereiche finden Sie auf der offiziellen PCMCIA-Website (http://www.pcmcia.org/pccard.htm). In der Linux PCM-CIA/CF/CardBus Card Survey unter http://tuxmobil.org/pcmcia_linux.html können Sie überprüfen, ob eine bestimmte Karte oder ein Gerät im Allgemeinenunter Linux unterstützt wird.

PCMCIA 609

Page 610: Suse 10.1 Linux Reference De
Page 611: Suse 10.1 Linux Reference De

32Verwaltung derSystemkonfigurationsprofileMithilfe von SCPM (System Configuration Profile Management, Verwaltung der Sys-temkonfigurationsprofile) können Sie die Konfiguration Ihres Computers an verschie-dene Betriebsumgebungen bzw. Hardware-Konfigurationen anpassen. SCPM verwalteteinen Satz von Systemprofilen für die verschiedenen Szenarien. SCPM ermöglicht eineinfaches Umschalten zwischen Systemprofilen. Eine manuelle Neukonfiguration desSystems ist nicht erforderlich.

In einigen Fällen ist eine abgeänderte Systemkonfiguration erforderlich. Dies ist zumeistder Fall bei mobilen Computern, die an unterschiedlichen Standorten betrieben werden.Wenn ein Desktopsystem zeitweilig mit anderen Hardware-Komponenten als sonstbetrieben werden soll, bietet SCPM eine gute Lösung. Die Wiederherstellung derursprünglichen Systemkonfiguration sollte problemlos möglich sein und die Abänderungder Systemkonfiguration ist reproduzierbar. Mit SCPM kann jeder Teil der Systemkon-figuration in einem benutzerdefinierten Profil gespeichert werden.

Das Hauptanwendungsgebiet von SCPM ist die Netzwerkkonfiguration auf Laptops.Für unterschiedliche Netzwerkkonfigurationen sind häufig auch unterschiedliche Ein-stellungen für andere Dienste erforderlich, beispielsweise für E-Mail oder Proxys.Anschließend folgen andere Elemente, beispielsweise verschiedene Drucker zu Hauseund im Büro, eine angepasste X-Server-Konfiguration für den Multimedia-Projektorauf Konferenzen, spezielle Energiespareinstellungen für unterwegs oder eine andereZeitzone in Niederlassungen im Ausland.

Verwaltung der Systemkonfigurationsprofile 611

Page 612: Suse 10.1 Linux Reference De

32.1 TerminologieIm Folgenden werden einige Begriffe erläutert, die in der SCPM-Dokumentation undim YaST-Modul verwendet werden.

SystemkonfigurationBezieht sich auf die vollständige Konfiguration des Computers. Sie beinhaltet allegrundlegenden Einstellungen, beispielsweise die Verwendung von Festplattenpar-titionen, Netzwerkeinstellungen, Zeitzonenauswahl und Tastaturzuordnungen.

Profil oder SystemprofilEin Status, der gespeichert wurde und jederzeit wiederhergestellt werden kann.

Aktives ProfilBezieht sich auf das zuletzt ausgewählte Profil. Da die Konfiguration jederzeitgeändert werden kann, muss die aktuelle Systemkonfiguration nicht zwingenddiesem Profil entsprechen.

RessourceEin Element, das zur Systemkonfiguration beiträgt. Es kann sich hierbei um eineDatei oder einen Softlink mit Metadaten (beispielsweise dem Benutzer), Berechti-gungen oder der Zugriffszeit handeln. Außerdem kann es sich um einen System-dienst handeln, der in diesem Profil ausgeführt wird, in einem anderen jedochdeaktiviert ist.

RessourcengruppeJede Ressource gehört zu einer bestimmten Ressourcengruppe. Diese Gruppenenthalten alle Ressourcen, die logisch zusammengehören. Die meisten Gruppenenthalten einen Dienst und die zugehörigen Konfigurationsdateien. Eine Zusam-menstellung der von SCPM verwalteten Ressourcen ist sehr einfach, da dafür kei-nerlei Kenntnisse über die Konfigurationsdateien des gewünschten Diensts erfor-derlich sind. Im Lieferumfang von SCPM ist eine Auswahl vorkonfigurierter Res-sourcengruppen enthalten, die für die meisten Szenarien ausreichen dürften.

612 Referenz

Page 613: Suse 10.1 Linux Reference De

32.2 Einrichten von SCPMIn den folgenden Abschnitten werden Sie anhand eines praktischen Beispiels in dieSCPM-Konfiguration eingeführt: Ein mobiler Computer, der in mehreren verschiedenenNetzwerken betrieben wird. Aus diesem Szenario ergeben sich die folgenden wichtigstenHerausforderungen:

• Variierende Netzwerkumgebungen, wie beispielsweise drahtlose LANs zu Hauseund ein Ethernet am Arbeitsplatz

• Unterschiedliche Druckerkonfigurationen zu Hause bzw. am Arbeitsplatz

Damit SCPM aktiv ist und ausgeführt wird und Ihre sich ändernde Systemkonfigurationverwaltet, gehen Sie wie folgt vor:

1 Fügen Sie das Profil-Auswahl-Applet Ihrem Panel hinzu und konfigurieren Siees so, dass das Wechseln von Benutzern gemäß der Beschreibung inAbschnitt 32.3.1, „Konfigurieren des Profil-Auswahl-Panel-Applets“ (S. 614)möglich ist.

2 Konfigurieren Sie SCPM mithilfe des YaST-Profilverwaltungsmoduls gemäßder Beschreibung in Abschnitt 32.3.2, „Konfigurieren der grundlegenden SCPM-Einstellungen“ (S. 614).

3 Erstellen Sie ein Profil für die einzelnen verschiedenen Einrichtungen mithilfevon SUMF (SCPM Unified Management Frontend) gemäß der Beschreibung inAbschnitt 32.3.3, „Erstellen eines neuen Profils“ (S. 617).

4 Wechseln Sie zu dem für Ihre aktuelle Situation passenden Profil gemäß derBeschreibung in Abschnitt 32.3.4, „Profilwechsel“ (S. 618).

Falls Sie SCPM lieber über dessen Befehlszeilenschnittstelle steuern, finden Sie inAbschnitt 32.4, „Konfigurieren von SCPM über die Befehlszeile“ (S. 621) genauereInformationen.

Verwaltung der Systemkonfigurationsprofile 613

Page 614: Suse 10.1 Linux Reference De

32.3 Konfigurieren von SCPM übereine grafischeBenutzeroberfläche

Die folgenden Abschnitte bieten eine Einführung in die grafischen Werkzeuge, mitderen Hilfe Sie Ihre Profileinstellungen steuern können.

32.3.1 Konfigurieren desProfil-Auswahl-Panel-Applets

Bevor Sie die Profil-Auswahl zur Steuerung Ihrer Systemkonfiguration verwendenkönnen, konfigurieren Sie sie so, dass Sie automatisch bei der Anmeldung gestartetwird:

• Klicken Sie in GNOME mit der rechten Maustaste auf das Panel und wählen Sie„Profil-Auswahl“ in der Liste der verfügbaren Applets aus.

• Wählen Sie in KDE System → Desktop Applet → Profil-Auswahl, um die Profil-Auswahl Ihrem Panel hinzuzufügen.

32.3.2 Konfigurieren der grundlegendenSCPM-Einstellungen

Konfigurieren Sie das grundlegende Verhalten von SCPM über YaST.

1 Starten Sie YaST über das Hauptmenü und wählen Sie die YaST-Profilverwaltungaus.

2 Klicken Sie in Verwaltung der Systemkonfigurationsprofile auf Optionen undwählen Sie Aktiviert.

3 Legen Sie die Ausführlichkeit von SCPM fest, indem Sie Umfassende Verlaufs-meldungen anzeigen und/oder Fehlersuchmeldungen protokollieren auswählen.

614 Referenz

Page 615: Suse 10.1 Linux Reference De

4 Legen Sie den geeigneten Umschaltmodus für Ihre Einrichtung fest:

• Soll SCPM beim Wechseln in ein anderes Profil alle geänderten Ressourcenaufführen und diese Änderungen im aktiven Profil speichern? Wählen SieNormal oder Änderungen speichern.

• Soll SCPM beim Wechseln sämtliche geänderten Ressourcenkonfigurationenverwerfen? Wählen Sie Änderungen verwerfen aus.

5 Legen Sie den Boot-Modus fest und bestimmen Sie, ob Änderungen am aktuellenProfil gespeichert werden sollen oder ob Sie bei dem zum Zeitpunkt des Bootensausgelösten Profilwechsel gelöscht werden sollen.

6 Stellen Sie sicher, dass alle Ressourcengruppen, die Sie benötigen, durch dieaktive Auswahl, die im AbschnittRessourcengruppen angezeigt wird, abgedecktsind. Falls Sie zusätzliche Ressourcengruppen benötigen, passen Sie die Ressour-cen unter Ressourcen konfigurieren an. Detaillierte Informationen finden Sie inAbschnitt 32.3.6, „Konfigurieren von Ressourcengruppen“ (S. 619).

Im Fall des Beispielszenarios müssen Sie keine zusätzlichen Ressourcen konfi-gurieren, da die Drucker- und Netzwerkressourcen standardmäßig enthalten sind.

Abbildung 32.1 YaST: Grundlegende SCPM-Konfiguration

Verwaltung der Systemkonfigurationsprofile 615

Page 616: Suse 10.1 Linux Reference De

Gehen Sie wie folgt vor, um anderen Benutzern als dem Benutzer „root“ die Verwaltungvon Profilen zu gestatten:

1 Starten Sie YaST über das Hauptmenü und wählen Sie die YaST-Profilverwaltungaus.

2 Aktivieren Sie die Option Profilverwaltung für Nicht-root-Benutzer zulassen.Siehe Abbildung 32.2, „YaST: Konfigurieren von SCPM-Benutzern“ (S. 616).

3 Klicken Sie auf Configure Users (Benutzer konfigurieren).

4 Klicken Sie aufHinzufügen, um alle Benutzer hinzuzufügen, die Profile verwaltenkönnen sollten.

5 Geben Sie für jeden Benutzer an, ob er lediglich die Berechtigung zum Wechselnoder zusätzlich zum Ändern und Erstellen von Profilen haben soll.

6 Klicken Sie auf Übernehmen, um Ihre Einstellungen zu übernehmen, undschließen Sie YaST.

Abbildung 32.2 YaST: Konfigurieren von SCPM-Benutzern

616 Referenz

Page 617: Suse 10.1 Linux Reference De

32.3.3 Erstellen eines neuen ProfilsNachdem Sie SCPM aktiviert haben, verfügen Sie über ein Profil mit der Bezeichnungdefault, in dem Ihre aktuelle Systemkonfiguration enthalten ist. Erstellen Sie einzusätzliches Profil, dass die Anforderungen der anderen Einrichtung erfüllt.

Um basierend auf der aktuellen Systemkonfiguration ein neues Profil hinzuzufügen,gehen Sie wie folgt vor:

1 Klicken Sie mit der rechten Maustaste auf die Profil-Auswahl und wählen SieProfilverwaltung ausführen (SUMF).

2 Wählen Sie Profile → Hinzufügen.

3 Geben Sie den Namen des neuen Profils ein und klicken Sie auf OK.

4 Legen Sie fest, ob das neue Profil ein aktives Profil sein soll.

Falls Sie Ja ausgewählt haben, wechselt SCPM unmittelbar nach dessen Erstellungin das neue Profil.

Gehen Sie für das vorliegende Beispiel wie folgt vor:

1 Aktivieren Sie in Ihrer Einrichtung zu Hause SCPM.

2 Benennen Sie das Profil default in einen anschaulicheren Namen um, indemSie SUMF starten und Profile→ Bearbeiten auswählen und einen neuen Nameneingeben.

3 Starten Sie in Ihrer Einrichtung am Arbeitsplatz SUMF und erstellen Sie dasProfil für Ihre Systemumgebung am Arbeitsplatz.

Wenn Sie über alle benötigten Profile verfügen, können Sie in diese wechseln, wannimmer eine andere Systemeinrichtung erforderlich ist. Wie Sie zwischen Profilenwechseln, wird in Abschnitt 32.3.4, „Profilwechsel“ (S. 618) erläutert.

Verwaltung der Systemkonfigurationsprofile 617

Page 618: Suse 10.1 Linux Reference De

32.3.4 ProfilwechselEs gibt zwei verschiedene Möglichkeiten, Profile zu wechseln. Sie können entwederbeim Booten ein neues Profil auswählen oder die Profile im laufenden System wechseln.

Gehen Sie wie folgt vor, um ein Profil zu wechseln:

1 Drücken Sie, wenn der Boot-Bildschirm angezeigt wird, F2 , um das MenüAndere Optionen aufzurufen.

2 Drücken Sie F3 , um auf die Liste der verfügbaren Profile zuzugreifen.

3 Wählen Sie mithilfe der Pfeiltasten das passende Profil aus und betätigen Sie mitEingabe .

Das System wird mit der ausgewählten Konfiguration gebootet.

Um in einem laufenden System die Profile zu wechseln, gehen Sie folgendermaßenvor:

1 Stellen Sie sicher, dass Sie als Nicht-root-Benutzer zum Wechseln von Profilenberechtigt sind. Falls Sie die Berechtigung nicht haben, ziehen SieAbschnitt 32.3.2, „Konfigurieren der grundlegenden SCPM-Einstellungen“(S. 614) zurate.

2 Klicken Sie mit der linken Maustaste auf das Profil-Auswahl-Panel-Applet.

3 Wählen Sie das erforderliche Profil im nun angezeigten Menü mithilfe derPfeiltaste aus und betätigen Sie mit Eingabe .

SCPM prüft, ob geänderte Ressourcen vorhanden sind, und fordert Sie auf, denWechsel zu bestätigen. Falls vor dem Wechsel Änderungen an der Systemkonfi-guration vorgenommen wurden, fragt SCPM, ob Sie diese Änderungen beimWechsel in ein anderes Profil beibehalten oder verwerfen möchten.

618 Referenz

Page 619: Suse 10.1 Linux Reference De

32.3.5 Bearbeiten eines ProfilsUm vorhandene Profile an eine geänderte Umgebung anzupassen (z. B., wenn Sie dieDruckerkonfiguration Ihres Netzwerks zu Hause ändern möchten), gehen Sie wie folgtvor:

1 Wechseln Sie in das Profil, um es gemäß der Beschreibung in Abschnitt 32.3.4,„Profilwechsel“ (S. 618) anzupassen. Im hier verwendeten Beispiel würden Siedas Profil home auswählen.

2 Wecheln Sie die Ressourcen, die angepasst werden müssen, mithilfe des entspre-chenden YaST-Moduls. In diesem Beispiel führen Sie die YaST-Druckerkonfi-guration aus.

3 Nachdem die Konfigurationsänderungen übernommen wurden, fragt SCPM, obdiese Änderungen beim nächsten Profilwechsel dauerhaft in Ihr aktives Profilübernommen werden sollen.

TIPP: Erzwingen einer Profilaktualisierung

Wenn Sie eine Aktualisierung des aktiven Profils erzwingen möchten,klicken Sie im Profil-Auswahlmenü des Profil-Auswahl-Panel-Applets aufdas gewünschte Profil. Auf diese Weise werden Ihre Profile neu geladenund Sie werden gefragt, ob Sie die Konfigurationsänderungen übernehmenoder verwerfen möchten.

32.3.6 Konfigurieren vonRessourcengruppen

SCPM wird mit einem Satz vordefinierter Ressourcengruppen geliefert, die standard-mäßig in sämtlichen Profilen enthalten sind. Für einige Szenarios müssen jedochzusätzliche Ressourcen und Ressourcengruppen aufgenommen werden.

Gehen Sie wie folgt vor, um die Ressourcen(gruppen)konfiguration zu ändern:

1 Starten Sie YaST über das Hauptmenü und starten Sie die YaST-Profilverwaltung.

Verwaltung der Systemkonfigurationsprofile 619

Page 620: Suse 10.1 Linux Reference De

2 Klicken Sie im Dialogfeld Verwaltung der Systemkonfigurationsprofile aufRessourcen konfigurieren.

Alle auf Ihrem System verfügbaren Ressourcengruppen werden, wie in Abbil-dung 32.3, „Konfigurieren von Ressourcengruppen“ (S. 620) dargestellt, aufge-führt.

3 So fügen Sie eine Ressourcengruppe hinzu oder bearbeiten sie:

a Legen Sie Ressourcengruppe und Beschreibung fest oder bearbeiten Siedie Festlegungen.

b Geben Sie die geeigneten Ressourcen (Ressourcen, Dienste oder beides)ein und löschen Sie die nicht benötigten. Um den Status der ausgewähltenRessourcen zurückzusetzen, d. h. alle Änderungen daran zu verwerfen undzu den ursprünglichen Konfigurationswerten zurückzukehren, wählen Siedie Option Gruppe zurücksetzen.

c Klicken Sie auf OK, um die Ressourcenkonfiguration beizubehalten.

4 Klicken Sie auf OK, um die Änderungen am aktiven Profil zu speichern.

Abbildung 32.3 Konfigurieren von Ressourcengruppen

620 Referenz

Page 621: Suse 10.1 Linux Reference De

32.4 Konfigurieren von SCPM über dieBefehlszeile

In diesem Abschnitt wird die Befehlszeilenkonfiguration von SCPM eingeführt. Sieerfahren, wie sie gestartet, konfiguriert und bei der Arbeit mit Profilen verwendetwerden kann.

32.4.1 Starten von SCPM und Definieren vonRessourcengruppen

SCPM muss vor der Verwendung aktiviert werden. Aktivieren Sie SCPM mit scpmenable. Bei der ersten Ausführung wird SCPM initialisiert, was einige Sekundendauert. Sie können SCPM jederzeit mit scpm disable deaktivieren, um einenunbeabsichtigten Profilwechsel zu vermeiden. Bei einer anschließenden Reaktivierungwird die Initialisierung einfach wieder aufgenommen.

Standardmäßig verwaltet SCPM Netzwerk- und Druckereinstellungen sowie die Kon-figuration von X.Org. Zur Verwaltung spezieller Dienste oder Konfigurationsdateien,müssen Sie die entsprechenden Ressourcengruppen aktivieren. Eine Liste der vordefi-nierten Ressourcengruppen erhalten Sie mit scpm list_groups. Um nur die bereitsaktivierten Gruppen anzuzeigen, verwenden Sie scpm list_groups -a. GebenSie diese Befehle als root an der Befehlszeile aus.scpm list_groups -a

nis Network Information Service clientmail Mail subsystemntpd Network Time Protocol daemonxf86 X Server settingsautofs Automounter servicenetwork Basic network settingsprinter Printer settings

Mit scpm activate_group NAME bzw. scpm deactivate_group NAMEkönnen Sie eine Gruppe aktivieren bzw. deaktivieren. Ersetzen Sie NAME durch denentsprechenden Gruppennamen.

Verwaltung der Systemkonfigurationsprofile 621

Page 622: Suse 10.1 Linux Reference De

32.4.2 Erstellen und Verwalten von ProfilenEin Profil mit dem Namen default besteht bereits nach der Aktivierung von SCPM.Eine Liste aller verfügbaren Profile kann mit scpm list abgerufen werden. Dieseseine bestehende Profil ist gleichzeitig das aktive Profil, was mit scpm active über-prüft werden kann. Das Profil default ist eine Grundkonfiguration, aus der dieanderen Profile abgeleitet werden. Aus diesem Grund sollten zunächst alle Einstellungenvorgenommen werden, die in allen Profilen identisch sind. Speichern Sie anschließenddiese Änderungen mit scpm reload im aktiven Profil. Das Profil default kannkopiert und als Grundlage für neue Profile umbenannt werden.

Neue Profile können auf zwei verschiedene Weisen hinzugefügt werden. Wenn dasneue Profil (hier work genannt) auf dem Profil default beruhen soll, erstellen Siees mit dem Befehl scpm copy default work. Der Befehl scpm switchwork führt einen Wechsel zum neuen Profil durch, das anschließend bearbeitet werdenkann. Sie können die Systemkonfiguration für besondere Zwecke bearbeiten und dieÄnderungen in einem neuen Profil speichern. Mit dem Befehl scpm add workwirdein neues Profil erstellt, indem die aktuelle Systemkonfiguration im Profil workgespeichert und dieses als aktiv markiert wird. Durch Ausführung von scpm reloadwerden die Änderungen dann im Profil work gespeichert.

Profile können mit den Befehlen scpm rename x y und scpm delete zumbenannt bzw. gelöscht werden. Um beispielsweise work in project umzubenen-nen, geben Sie den Befehl scpm rename work project ein. Zum Löschen vonproject geben Sie scpm delete project ein. Das aktive Profil kann nichtgelöscht werden.

32.4.3 Wechseln zwischenKonfigurationsprofilen

Der Befehl scpm switch work führt einen Wechsel zu einem anderen Profil (indiesem Fall das Profil work) durch. Wechseln Sie zum aktiven Profil, um geänderteEinstellungen der Systemkonfiguration in das Profil aufzunehmen. Dies entspricht demBefehl scpm reload.

Beim Wechseln von Profilen überprüft SCPM zuerst, welche Ressourcen des aktivenProfils geändert wurden. Anschließend wird abgefragt, ob die Änderungen an den ein-

622 Referenz

Page 623: Suse 10.1 Linux Reference De

zelnen Ressourcen zum aktiven Profil hinzugefügt oder verworfen werden sollen. WennSie eine separate Auflistung der Ressourcen bevorzugen (wie in früheren Versionenvon SCPM), verwenden Sie den Befehl „switch“ mit dem Parameter-r:scpm switch-r work.scpm switch -r work

Checking for modified resources Checking for Resources to be started/shut down Checking for dependencies Restoring profile default

SCPM vergleicht anschließend die aktuelle Systemkonfiguration mit dem Profil, zudem gewechselt werden soll. In dieser Phase wertet SCPM aus, welche Systemdiensteaufgrund gegenseitiger Abhängigkeiten oder aufgrund von Änderungen in der Konfigu-ration angehalten oder neu gestartet werden müssen. Dies kommt einem teilweisenNeubooten gleich, das nur einen kleinen Teil des Systems betrifft, während der Restden Betrieb ohne Änderung fortsetzt. Nur an dieser Stelle werden die Systemdienstegestoppt, alle bearbeiteten Ressourcen, wie beispielsweise die Konfigurationsdateien,geschrieben und die Systemdienste neu gestartet.

32.4.4 Erweiterte ProfileinstellungenSie können nun eine Beschreibung für jedes Profil eingeben, das mit scpm listangezeigt wird. Beim aktiven Profil legen Sie sie mit scpm set description"text" fest. Bei Inaktiven Profilen müssen Sie den Namen des Profils angeben, bei-spielsweisescpm set description "text" work. Manchmal kann es sinnvollsein, weitere Aktionen durchzuführen, die nicht beim Profilwechsel von SCPM durch-geführt werden. Jedem Profil können bis zu vier ausführbare Dateien beigefügt werden.Sie werden in verschiedenen Stadien des Umschaltvorgangs aufgerufen. Bei diesenStadien handelt es sich um folgende:

prestopvor dem Stoppen der Dienste beim Verlassen des Profils

poststopnach dem Stoppen der Dienste beim Verlassen des Profils

prestartvor dem Starten der Dienste beim Aktivieren des Profils

Verwaltung der Systemkonfigurationsprofile 623

Page 624: Suse 10.1 Linux Reference De

poststartNach dem Starten der Dienste beim Aktivieren des Profils

Fügen Sie diese Aktionen mit dem Befehl set ein und durch Eingabe von scpm setprestop filename, scpm set poststop filename, scpm setprestart filename bzw. scpm set poststart filename. Die Skriptemüssen ausführbar sein und sich auf den richtigen Interpreter beziehen.

WARNUNG: Integrieren eines benutzerdefinierten Skripte

Weitere von SCPM auszuführende Skripte müssen für den Superuser (root)lesbar und ausführbar gemacht werden. Der Zugriff auf diese Dateien muss füralle anderen Benutzer blockiert werden. Geben Sie die Befehle chmod 700filename und chown root:root filename ein, um root exklusiveBerechtigungen für die Dateien zu erteilen.

Alle weiteren mit set eingegebenen Einstellungen können Sie mit get abfragen. DerBefehl scpm get poststart beispielsweise gibt den Namen des postart-Aufrufszurück. Wenn nichts beigefügt wurde, wird auch kein Element zurückgegeben. Siekönnen diese Einstellungen durch Überschreiben mit "" zurücksetzen. Der Befehlscpm set prestop "" entfernt das beigefügte Prästop-Programm.

Alle set- und get-Befehle können auf ein beliebiges Profil angewendet werden. Dieserfolgt auf die gleiche Weise wie das Hinzufügen von Kommentaren. Beispiele: scpmget prestop filename work oder scpm get prestop work.

32.5 FehlerbehebungIn diesem Abschnitt werden Probleme behandelt, die häufiger bei SCPM auftreten. Sieerfahren hier, wie diese Probleme auftreten und wie sie behoben werden können.

32.5.1 SCPM und NetworkManagerNetworkManager und SCPM haben gemeinsame Funktionen. Beide integrieren einenComputer in ein vorhandenes Netzwerk, ohne dass der Benutzer diese Transaktionsieht. NetworkManager arbeitet dynamisch und passt sich an jede neue Umgebung an.SCPM wird verwendet, um definierte Systemeinrichtungen wiederherzustellen.

624 Referenz

Page 625: Suse 10.1 Linux Reference De

Die parallele Verwendung von NetworkManager und SCPM funktioniert nicht ordnungs-gemäß, da NetworkManager keine Konfigurationen zur Verfügung stellt, die von SCPMwiederhergestellt werden können. SCPM eignet sich sehr gut für Benutzer, die reprodu-zierbare Einrichtungen benötigen. Private Benutzer, die immer wieder zwischen(drahtlosen) Netzwerken wechseln, sollten die Verwendung von NetworkManager inBetracht ziehen, falls die Netzwerkeinrichtung die einzige Komponente ist, die angepasstwerden muss.

Wenn Sie SCPM für die Netzwerkkonfigurationsverwaltung verwenden möchten,deaktivieren Sie NetworkManager.

32.5.2 Beendigung während desWechselvorgangs

Manchmal hält SCPM mitten in einem Wechselvorgangs die Arbeit an. Dies kann durcheinen äußeren Effekt verursacht worden sein, beispielsweise durch einen Benutzerab-bruch, einen Stromausfall oder sogar einen Fehler in SCPM selbst. Wenn dies geschieht,wird beim nächsten Start von SCPM eine Meldung angezeigt, die besagt, dass SCPMgesperrt ist. Dies dient der Systemsicherheit, da die in der Datenbank gespeichertenDaten möglicherweise nicht mit dem Systemzustand übereinstimmen. Führen Sie scpmrecover aus, um dieses Problem zu beheben. SCPM führt alle fehlenden Optionenaus der vorherigen Ausführung durch. Alternativ können Sie scpm recover -bverwenden. Mit diesem Befehl wird versucht alle bereits durchgeführten Vorgänge ausder vorherigen Ausführung rückgängig zu machen. Bei Verwendung der YaST-Profil-verwaltung erhalten Sie beim Start ein Wiederherstellungsdialogfeld, in dem alle obenbeschriebenen Befehle ausgeführt werden können.

32.6 Weitere InformationenDie aktuellste Dokumentation ist auf den SCPM-Informationsseiten (info scpm) verfüg-bar. Informationen für Entwickler sind unter/usr/share/doc/packages/scpmverfügbar.

Verwaltung der Systemkonfigurationsprofile 625

Page 626: Suse 10.1 Linux Reference De
Page 627: Suse 10.1 Linux Reference De

33EnergieverwaltungDie Energieverwaltung ist insbesondere bei Notebook-Computern von großer Wichtig-keit, sie ist jedoch auch für andere Systeme sinnvoll. Es sind zwei Technologien verfüg-bar: APM (Advanced Power Management, erweiterte Energieverwaltung) und ACPI(Advanced Configuration and Power Interface, erweiterte Konfigurations- und Energie-schnittstelle). Daneben ist es außerdem möglich, die CPU-Frequenzskalierung zusteuern, um Energie zu sparen oder den Geräuschpegel zu senken. Diese Optionenkönnen manuell oder über ein spezielles YaST-Modul konfiguriert werden.

Anders als bei APM, das früher nur auf Notebooks zur Energieverwaltung eingesetztwurde, steht das Hardware-Informations- und -Konfigurationswerkzeug ACPI auf allenmodernem Computern (Notebooks, Desktops und Servern) zur Verfügung. Für alleEnergieverwaltungstechnologien sind geeignete Hardware- und BIOS-Routinen erfor-derlich. Die meisten Notebooks und modernen Desktops und Server erfüllen dieseAnforderungen.

APM wurde bei vielen älteren Computern verwendet. Da APM größtenteils aus einemFunktionsset besteht, das im BIOS integriert ist, kann der Grad der APM-Unterstützungje nach Hardware variieren. Dies gilt noch mehr für ACPI, einem noch komplexerenWerkzeug. Daher ist es praktisch unmöglich eines der beiden Tools gegenüber demanderen zu empfehlen. Testen Sie einfach die verschiedenen Verfahren auf IhrerHardware und wählen Sie dann die Technologie, die von der Hardware am bestenunterstützt wird.

WICHTIG: Energieverwaltung für AMD64-Prozessoren

AMD64-Prozessoren mit 64-Bit-Kernel unterstützten nur ACPI.

Energieverwaltung 627

Page 628: Suse 10.1 Linux Reference De

33.1 EnergiesparfunktionenEnergiesparfunktionen sind nicht nur für die mobile Verwendung von Notebooks vonBedeutung, sondern auch für Desktop-Systeme. Die Hauptfunktionen und ihre Verwen-dung bei den Energieverwaltungssystemen APM und ACPI sind folgende:

StandbyBei diesem Betriebsmodus wird der Bildschirm ausgeschaltet. Bei einigen Compu-tern wird die Prozessorleistung gedrosselt. Diese Funktion ist nicht bei allen APM-Implementierungen verfügbar. Diese Funktion entspricht ACPI-Zustand S1 bzw.S2.

Suspend (in Speicher)In diesem Modus wird der gesamte Systemstatus in den RAM geschrieben.Anschließend wird das gesamte System mit Ausnahme des RAM in den Ruhezu-stand versetzt. In diesem Zustand verbraucht der Computer sehr wenig Energie.Der Vorteil dieses Zustands besteht darin, dass innerhalb weniger Sekunden dieArbeit nahtlos wieder aufgenommen werden kann, ohne dass ein Booten des Systemsoder ein Neustart der Anwendungen erforderlich ist. Geräte, die APM verwenden,können normalerweise durch Schließen des Deckels in den Suspend-Modus versetztund durch Öffnen des Deckels wieder aktiviert werden. Diese Funktion entsprichtACPI-Zustand S3. Die Unterstützung für diesen Zustand befindet sich noch in derEntwicklungsphase und hängt daher weitgehend von der Hardware ab.

Tiefschlaf (Suspend to Disk)In diesem Betriebsmodus wird der gesamte Systemstatus auf die Festplattegeschrieben und das System wird von der Energieversorgung getrennt. Es musseine Swap-Partition vorhanden sein, die mindestens die Größe des RAM hat, damitalle aktiven Daten geschrieben werden können. Die Reaktivierung von diesemZustand dauert ungefähr 30 bis 90 Sekunden. Der Zustand vor dem Suspend-Vor-gang wird wiederhergestellt. Einige Hersteller bieten Hybridvarianten dieses Modusan, beispielsweise RediSafe bei IBM Thinkpads. Der entsprechende ACPI-Zustandist S4. In Linux wird Suspend to Disk über Kernel-Routinen durchgeführt, die vonAPM und ACPI unabhängig sind.

Akku-ÜberwachungACPI und APM überprüfen den Ladezustand des Akkus und geben die entsprechen-den Informationen an. Außerdem koordinieren beide Systeme die bei Erreicheneines kritischen Ladezustands durchzuführenden Aktionen.

628 Referenz

Page 629: Suse 10.1 Linux Reference De

Automatisches AusschaltenNach dem Herunterfahren wird der Computer ausgeschaltet. Dies ist besonderswichtig, wenn der Computer automatisch heruntergefahren wird, kurz bevor derAkku leer ist.

Herunterfahren von SystemkomponentenDas Ausschalten der Festplatte ist der wichtigste Einzelaspekt des Energiesparpo-tentials des gesamten Systems. Je nach der Zuverlässigkeit des Gesamtsystems,kann die Festplatte für einige Zeit in den Ruhezustand versetzt werden. Das Risikoeines Datenverlusts steigt jedoch mit der Dauer der Ruhephase. Andere Komponen-ten, wie PCI-Geräte, die in einen bestimmten Energiesparmodus versetzt werdenkönnen, können (zumindest theoretisch) mithilfe von ACPI deaktiviert oder dauer-haft in der BIOS-Einrichtung deaktiviert werden.

Steuerung der ProzessorgeschwindigkeitIn Zusammenhang mit der CPU sind drei verschiedene Arten der Energieeinsparungmöglich: Frequenz- und Spannungsskalierung (auch als PowerNow! oder Speedstepbekannt), Drosselung und Versetzen des Prozessors in den Ruhezustand (C-Zustände). Je nach Betriebsmodus des Computers können diese Methoden auchkombiniert werden.

33.2 APMEinige der Stromsparfunktionen werden vom APM-BIOS selbst ausgeführt. Auf vielenNotebooks können Stand-by- und Suspend-Zustände ohne besondere Betriebssystem-funktion durch Tastenkombinationen oder Schließen des Deckels aktiviert werden. Umdiese Modi über einen Befehl zu aktivieren, müssen allerdings bestimmte Aktionenausgelöst werden, bevor das System in den Suspend-Modus versetzt wird. Zur Anzeigedes Akku-Ladezustands benötigen Sie spezielle Programmpakete und einen geeignetenKernel.

SUSE Linux-Kernels verfügen über integrierte APM-Unterstützung. APM wird jedochnur aktiviert, wenn ACPI nicht im BIOS implementiert ist und ein APM-BIOS ermitteltwird. Zur Aktivierung der APM-Unterstützung muss ACPI an der Boot-Eingabeauffor-derung mit acpi=off deaktiviert werden. Geben Sie cat /proc/apm ein, um zuüberprüfen, ob APM aktiv ist. Eine Ausgabe, die aus verschiedenen Nummern besteht,deutet darauf hin, dass alles in Ordnung ist. Es sollte nun möglich sein, den Computermit dem Befehl shutdown -h herunterzufahren.

Energieverwaltung 629

Page 630: Suse 10.1 Linux Reference De

BIOS-Implementationen, die nicht vollständig standardkompatibel sind, können Proble-me mit APM verursachen. Einige Probleme lassen sich durch spezielle Boot-Parameterumgehen. Alle Parameter werden an der Boot-Eingabeaufforderung in folgender Formeingegeben: apm=parameter. parameter ist entweder

on bzw. offAktiviert bzw. deaktiviert die APM-Unterstützung.

(no-)allow-intsLässt Interrupts während der Ausführung von BIOS-Funktionen zu.

(no-)broken-psrDie BIOS-Funktion „GetPowerStatus“ funktioniert nicht ordnungsgemäß.

(no-)realmode-power-offSetzt den Prozessor vor dem Herunterfahren auf den Real-Modus zurück.

(no-)debugProtokolliert APM-Ereignisse im Systemprotokoll.

(no-)power-offSchaltet Systemenergie nach dem Herunterfahren aus.

bounce-interval=nZeit in hundertstel Sekunden nach einem Suspend-Ereignis, während die weiterenSuspend-Ereignisse ignoriert werden.

idle-threshold=nProzentsatz der Systeminaktivität, bei dem die BIOS-Funktion idle ausgeführtwird (0 = immer, 100 = nie).

idle-period=nZeit in hunderstel Sekunden, nach der die Systemaktivität gemessen wird.

Der APM-Daemon (apmd) wird nicht mehr verwendet. Seine Funktionen werden vomneuen „powersaved“ übernommen, der auch ACPI unterstützt und viele andere Funk-tionen bietet.

630 Referenz

Page 631: Suse 10.1 Linux Reference De

33.3 ACPIACPI (Advanced Configuration and Power Interface, erweiterte Konfigurations- undEnergieschnittstelle) wurde entwickelt, um dem Betriebssystem die Einrichtung undSteuerung der einzelnen Hardware-Komponenten zu ermöglichen. ACPI ersetzt PnPund APM. Diese Schnittstelle bietet Informationen zu Akku, Netzteil, Temperatur,Ventilator und Systemereignissen wie dem Schließen des Deckels oder einem niedrigenAkkuladestand.

Das BIOS bietet Tabellen mit Informationen zu den einzelnen Komponenten undHardware-Zugriffsmethoden. Das Betriebssystem verwendet diese Informationen fürAufgaben wie das Zuweisen von Interrupts oder das Aktivieren bzw. Deaktivieren vonKomponenten. Da das Betriebssystem die in BIOS gespeicherten Befehle ausführt,hängt die Funktionalität von der BIOS-Implementierung ab. Die Tabellen, die ACPIerkennen und laden kann, werden in /var/log/boot.msg gemeldet. WeitereInformationen zur Fehlersuche bei ACPI-Problemen finden Sie in Abschnitt 33.3.4,„Fehlerbehebung“ (S. 637).

33.3.1 ACPI in AktionWenn der Kernel beim Booten des Systems ein ACPI BIOS entdeckt, wird ACPIautomatisch aktiviert und APM deaktiviert. Bei einigen älteren Computern kann derBootparameter acpi=force erforderlich sein. Der Computer muss ACPI 2.0 oderhöher unterstützen. Überprüfen Sie anhand der Boot-Meldungen unter /var/log/boot.msg, ob ACPI aktiviert wurde.

Anschließend muss eine Reihe von Modulen geladen werden. Dies erfolgt über dasStartskript des acpid-Skripts. Wenn eines dieser Module Probleme verursacht, kanndas betreffende Modul unter /etc/sysconfig/powersave/common aus demLade- bzw. Entladevorgang ausgeschlossen werden. Das Systemprotokoll (/var/log/messages) enthält die Meldungen der Module, denen Sie entnehmen können,welche Komponenten erkannt wurden.

/proc/acpi enthält nun eine Nummer der Dateien, die Informationen über denSystemzustand bieten oder zum Ändern einiger Zustände verwendet werden können.Einige Funktionen funktionieren noch nicht, da sie sich noch in der Entwicklungsphasebefinden, und die Unterstützung einiger Funktionen hängt weitgehend von der Imple-mentierung durch den Hersteller ab.

Energieverwaltung 631

Page 632: Suse 10.1 Linux Reference De

Alle Dateien (mit Ausnahme von dsdt und fadt) können mit cat gelesen werden.In einigen Dateien können die Einstellungen mit echo geändert werden, beispielsweiseecho X > file zur Angabe geeigneter Werte für X. Eine Möglichkeit für den ein-fachen Zugriff auf diese Werte ist der powersave-Befehl, der als Frontend für denPowersave-Daemon dient. Im Folgenden werden die wichtigsten Dateien beschrieben:

/proc/acpi/infoAllgemeine Informationen zu ACPI.

/proc/acpi/alarmHier können Sie angeben, wann das System aus einem Ruhezustand wieder aktiviertwerden soll. Zurzeit wird diese Funktion nicht vollständig unterstützt.

/proc/acpi/sleepBietet Informationen zu möglichen Ruhezuständen.

/proc/acpi/eventHier werden alle Ereignisse gemeldet und vom Powersave-Daemon (powersaved)verarbeitet. Wenn kein Daemon auf diese Datei zugreift, können Ereignisse, wieein kurzes Antippen des Netzschalters oder das Schließen des Deckels mit cat/proc/acpi/event gelesen werden (Beenden mit Strg + C ).

/proc/acpi/dsdt und /proc/acpi/fadtDiese Dateien enthalten die ACPI-Tabellen DSDT (Differentiated System Descrip-tion Table) und FADT (Fixed ACPI Description Table). Diese können mitacpidmp, acpidisasm und dmdecode gelesen werden. Diese Programmeund ihre Dokumentation befinden sich im Paket pmtools. Beispiel: acpidmpDSDT | acpidisasm.

/proc/acpi/ac_adapter/AC/stateZeigt an, ob das Netzteil angeschlossen ist.

/proc/acpi/battery/BAT*/{alarm,info,state}Detaillierte Informationen zum Ladezustand des Akkus. Der Ladezustand wirddurch einen Vergleich zwischen last full capacity (letzte volle Kapazität)aus info (Info) und remaining capacity (verbleibende Kapazität) ausstate (Zustand) ermittelt. Bequemer lässt sich der Ladezustand mit einem spezi-ellen Programm ermitteln, das in Abschnitt 33.3.3, „ACPI-Werkzeuge“ (S. 637)beschrieben werden. Der Ladezustand, bei dem ein Akku-Ereignis (z. B. Warnung,

632 Referenz

Page 633: Suse 10.1 Linux Reference De

niedrige oder kritische Kapazität) ausgelöst wird, kann unter alarm (Alarm)angegeben werden.

/proc/acpi/buttonDieses Verzeichnis enthält Informationen zu verschiedenen Schaltern.

/proc/acpi/fan/FAN/stateZeigt, ob der Ventilator zurzeit aktiv ist. Sie können den Ventilator manuell akti-vieren bzw. deaktivieren, indem Sie 0 (ein) bzw. 3 (aus) in diese Datei schreiben.Diese Einstellung wird jedoch sowohl vom ACPI-Code im Kernel als auch vonder Hardware (bzw. BIOS) überschrieben, wenn die Temperatur des Systems zuhoch wird.

/proc/acpi/processor/*Für jede CPU im System wird ein gesondertes Unterverzeichnis geführt.

/proc/acpi/processor/*/infoInformationen zu den Energiesparoptionen des Prozessors.

/proc/acpi/processor/*/powerInformationen zum aktuellen Prozessorzustand. Ein Sternchen neben C2 zeigt an,dass der Prozessor zurzeit nicht genutzt wird. Dies ist der häufigste Zustand, wieaus dem Wert usage (Nutzung) ersichtlich ist.

/proc/acpi/processor/*/throttlingHiermit kann die Drosselung der Prozessoruhr festgelegt werden. Normalerweiseist eine Drosselung in acht Stufen möglich. Dies hängt von der Frequenzsteuerungder CPU ab.

/proc/acpi/processor/*/limitWenn Leistung (obsolet) und Drosselung automatisch von einem Daemon gesteuertwerden, können hier die Obergrenzen angegeben werden. Einige der Grenzwertewerden durch das System bestimmt. Andere können vom Benutzer angepasstwerden.

/proc/acpi/thermal_zone/Für jede Thermalzone ist ein eigenes Unterverzeichnis vorhanden. Eine Thermal-zone ist ein Bereich mit ähnlichen thermischen Eigenschaften. Ihre Anzahl undBezeichnungen werden vom Hardware-Hersteller festgelegt. Viele der von ACPIgebotenen Möglichkeiten werden jedoch kaum implementiert. Stattdessen wird dieTemperatursteuerung üblicherweise dem BIOS überlassen. Das Betriebssystem

Energieverwaltung 633

Page 634: Suse 10.1 Linux Reference De

hat kaum Gelegenheit, einzugreifen, da die Lebensdauer der Hardware in Gefahrist. Daher weisen einige der Dateien nur einen theoretischen Wert auf.

/proc/acpi/thermal_zone/*/temperatureAktuelle Temperatur der thermalen Zone.

/proc/acpi/thermal_zone/*/stateDieser Status zeigt an, ob alles ok (OK) ist bzw. ob ACPI active (aktive) oderpassive (passive) Kühlung durchführt. Bei ACPI-unabhängiger Ventilatorsteue-rung ist dieser Zustand immer ok (OK)

/proc/acpi/thermal_zone/*/cooling_modeWählen Sie die von ACPI gesteuerte Kühlmethode aus. Wählen Sie einen passiven(weniger Leistung, sparsamer) oder aktiven (volle Leistung, Ventilatorgeräusche)Kühlmodus aus.

/proc/acpi/thermal_zone/*/trip_pointsAktiviert die Ermittlung von Temperaturgrenzen zur Auslösung spezieller Vorgänge,wie passiver bzw. aktiver Kühlung, Suspend-Modus (beim Zustand (hot (heiß))oder Herunterfahren (beim Zustand critical kritisch)). Die möglichen Aktionensind in der DSDT definiert (geräteabhängig). Folgende Schwellenwerte werden inder ACPI-Spezifikation festgelegt: critical (kritisch), hot (heiß), passive(passiv), active1 (aktiv1) und active2 (aktiv2). Auch wenn sie nicht alleimplementiert sind, müssen sie stets in dieser Reihenfolge in die Datei eingegebenwerden. Der Eintragecho 90:0:70:0:0 > trip_points setzt die Tempe-ratur für critical (kritisch) auf 90 und die Temperatur für passive (passiv)auf 70 Grad Celsius.

/proc/acpi/thermal_zone/*/polling_frequencyWenn der Wert in temperature bei Temperaturänderungen nicht automatischaktualisiert wird, können Sie hier auf einen anderen Erhebungsmodus umschalten.Der Befehl echo X >/proc/acpi/thermal_zone/*/polling_frequency führt zu einerAbfrage der Temperatur alle X Sekunden. Um die Erhebung zu deaktivieren, setzenSie X=0.

Keine dieser Einstellungen, Informationen und Ereignisse muss manuell bearbeitetwerden. Dies ist über den Powersave-Daemon (powersaved) und verschiedene Frontends,wie powersave, kpowersave und wmpowersave, möglich. Siehe Abschnitt 33.3.3,„ACPI-Werkzeuge“ (S. 637).

634 Referenz

Page 635: Suse 10.1 Linux Reference De

33.3.2 Steuern der CPU-LeistungMit der CPU sind Energieeinsparungen auf drei verschiedene Weisen möglich. Je nachBetriebsmodus des Computers können diese Methoden auch kombiniert werden.Energiesparen bedeutet auch, dass sich das System weniger erhitzt und die Ventilatorenseltener in Betrieb sind.

Frequenz- und SpannungsskalierungBei AMD und Intel läuft diese Technologie unter dem Namen PowerNow!bzw.Speedstep. Doch auch in die Prozessoren anderer Hersteller ist diese Techno-logie integriert. Taktfrequenz und Kernspannung der CPU werden gleichzeitigverringert, was zu mehr als linearen Energieeinsparungen führt. Eine Halbierungder Frequenz (halbe Leistung) führt also dazu, dass wesentlich weniger als dieHälfte der Energie verbraucht wird. Diese Technologie ist unabhängig von APModer ACPI. Es gibt zwei Hauptverfahren für die Skalierung der CPU-Frequenz,über den Kernel an sich oder über eine userspace-Anwendung. Aus diesem Grundgibt es verschiedene Kernel-Govenors, die in /sys/devices/system/cpu/cpu*/cpufreq/ festgelegt werden können.

userspace governorWenn der userspace govenor festgelegt wird, steuert der Kernel die CPU-Fre-quenz durch die Skalierung auf eine userspace-Anwendung (normalerweiseein Daemon). In SUSE Linux-Verteilungen besteht dieser Daemon impowersaved-Paket. Wenn diese Implementierung verwendet wird, wird dieCPU-Frequenz gemäß der aktuellen Systemlast angepasst. Standardmäßig wirdeine der Kernel-Implementierungen verwendet. Bei mancher Hardware oderin Bezug auf bestimte Prozessoren oder Treiber ist die userspace-Implementie-rung jedoch nach wie vor die einzige funktionierende Lösung.

ondemand governorEs handelt sich hierbei um die Kernel-Implementierung einer dynamischenCPU-Frequenz-Richtlinie und sollte auf den meisten Systemen funktionieren.Sobald eine hohe Systemlast vorliegt, wird die CPU-Frequenz sofort erhöht.Sie wird bei einer niedrigeren Systemlast herabgesetzt.

conservative governorDieser Regler ähnelt der ondemand-Implementierung, außer dass eine konser-vativere Richtlinie verwendet wird. Die Auslastung des Systems muss übereinen bestimmten Zeitraum hoch sein, damit die CPU-Frequenz erhöht wird.

Energieverwaltung 635

Page 636: Suse 10.1 Linux Reference De

powersave governorDie CPU-Frequenz wird statisch auf den niedrigsten möglichen Wert gesetzt.

performance governorDie CPU-Frequenz wird statisch auf den höchstmöglichen Wert gesetzt.

Drosseln der TaktfrequenzBei dieser Technologie wird ein bestimmter Prozentsatz der Taktsignalimpulse fürdie CPU ausgelassen. Bei einer Drosselung von 25 % wird jeder vierte Impulsausgelassen. Bei 87.5 % erreicht nur jeder achte Impuls den Prozessor. Die Ener-gieeinsparungen sind allerdings ein wenig geringer als linear. Normalerweise wirddie Drosselung nur verwendet, wenn keine Frequenzskalierung verfügbar ist oderwenn maximale Energieeinsparungen erzielt werden sollen. Auch diese Technologiemuss von einem speziellen Prozess gesteuert werden. Die Systemschnittstelle lautet/proc/acpi/processor/*/throttling.

Versetzen des Prozessors in den RuhezustandDas Betriebssystem versetzt den Prozessor immer dann in den Ruhezustand, wennkeine Arbeiten anstehen. In diesem Fall sendet das Betriebssystem den BefehlHalt an die CPU. Es gibt drei Zustände: C1, C2 und C3. Im Zustand mit derhöchsten Energieeinsparung, C3, wird sogar die Synchronisierung des Prozessor-Cache mit dem Hauptspeicher angehalten. Daher ist dieser Zustand nur möglich,wenn der Inhalt des Hauptspeichers von keinem anderen Gerät über Busmaster-Aktivitäten bearbeitet wird. Einige Treiber verhindern die Verwendung von C3.Der aktuelle Zustand wird unter /proc/acpi/processor/*/throttlingangezeigt.

Frequenzskalierung und Drosselung sind nur relevant, wenn der Prozessor belegt ist,da der sparsamste C-Zustand ohnehin gilt, wenn sich der Prozessor im Wartezustandbefindet. Wenn die CPU belegt ist, ist die Frequenzskalierung die empfohlene Energie-sparmethode. Häufig arbeitet der Prozessor nur im Teillast-Betrieb. In diesem Fall kanner mit einer niedrigeren Frequenz betrieben werden. Normalerweise ist eine dynamischeFrequenzskalierung, die von dem ondemand governor des Kernels oder einem Daemon(z. B. powersaved) gesteuert wird, der beste Ansatz. Eine statische Einstellung auf eineniedrige Frequenz ist sinnvoll bei Akkubetrieb oder wenn der Computer kühl odergeräuscharm arbeiten soll.

636 Referenz

Page 637: Suse 10.1 Linux Reference De

Drosselung sollte nur als letzter Ausweg verwendet werden, um die Betriebsdauer desAkkus trotz hoher Systemlast zu verlängern. Einige Systeme arbeiten bei zu hoherDrosselung jedoch nicht reibungslos. Außerdem hat die CPU-Drosselung keinen Sinn,wenn die CPU kaum ausgelastet ist.

Unter SUSE Linux werden diese Technologien vom Powersave-Daemon gesteuert. DieKonfiguration wird in Abschnitt 33.5, „Das powersave-Paket“ (S. 640) erläutert.

33.3.3 ACPI-WerkzeugeZu der Palette der mehr oder weniger umfassenden ACPI-Dienstprogramme gehörenWerkzeuge, die lediglich Informationen anzeigen, wie beispielsweise Akku-Ladezustandund Temperatur (acpi, klaptopdaemon, wmacpimon, usw.), Werkzeuge, die den Zugriffauf die Strukturen unter /proc/acpi ermöglichen oder Überwachungsänderungenerleichtern (akpi, acpiw, gtkacpiw), sowie Werkzeuge zum Bearbeiten der ACPI-Tabellen im BIOS (Paket pmtools).

33.3.4 FehlerbehebungEs gibt zwei verschiedene Arten von Problemen. Einerseits kann der ACPI-Code desKernel Fehler enthalten, die nicht rechtzeitig erkannt wurden. In diesem Fall wird eineLösung zum Herunterladen bereitgestellt. Häufiger jedoch werden die Probleme vomBIOS verursacht. Manchmal werden Abweichungen von der ACPI-Spezifikationabsichtlich in das BIOS integriert, um Fehler in der ACPI-Implementierung in anderenweit verbreiteten Betriebssystemen zu umgehen. Hardware-Komponenten, die ernsthafteFehler in der ACPI-Implementierung aufweisen, sind in einer Blacklist festgehalten,die verhindert, dass der Linux-Kernel ACPI für die betreffenden Komponenten verwen-det.

Der erste Schritt, der bei Problemen unternommen werden sollte, ist die Aktualisierungdes BIOS. Wenn der Computer sich überhaupt nicht booten lässt, kann eventuell einerder folgenden Boot-Parameter Abhilfe schaffen:

pci=noacpiACPI nicht zum Konfigurieren der PCI-Geräte verwenden.

Energieverwaltung 637

Page 638: Suse 10.1 Linux Reference De

acpi=oldbootNur eine einfache Ressourcenkonfiguration durchführen. ACPI nicht für andereZwecke verwenden.

acpi=offACPI deaktivieren.

WARNUNG: Probleme beim Booten ohne ACPI

Einige neuere Computer (insbesondere SMP- und AMD64-Systeme) benötigenACPI zur korrekten Konfiguration der Hardware. Bei diesen Computern kanndie Deaktivierung von ACPI zu Problemen führen.

Überwachen Sie nach dem Booten die Boot-Meldungen des Systems mit dem Befehldmesg | grep -2i acpi (oder alle Meldungen, da das Problem möglicherweisenicht durch ACPI verursacht wurde). Wenn bei der Analyse einer ACPI-Tabelle einFehler auftritt, kann die wichtigste Tabelle, DSDT, durch eine verbesserte Versionersetzt werden. In diesem Fall wird die fehlerhafte DSDT des BIOS ignoriert. DasVerfahren wird in Abschnitt 33.5.4, „Fehlerbehebung“ (S. 647) erläutert.

In der Kernel-Konfiguration gibt es einen Schalter zur Aktivierung der ACPI-Fehler-suchmeldungen. Wenn ein Kernel mit ACPI-Fehlersuche kompiliert und installiertwurde, können Experten, die nach einem Fehler suchen, mit detaillierten Informationenunterstützt werden.

Wenn Sie Probleme mit dem BIOS oder der Hardware feststellen, sollten Sie stetsKontakt mit den betreffenden Herstellern aufweisen. Insbesondere Hersteller, die nichtimmer Hilfe für Linux anbieten, sollten mit den Problemen konfrontiert werden. DieHersteller nehmen das Problem nur dann ernst, wenn sie feststellen, dass eine nennens-werte Zahl ihrer Kunden Linux verwendet.

Weitere InformationenWeitere Dokumentation und Hilfe zu ACPI:

• http://www.cpqlinux.com/acpi-howto.html (detailliertes ACPIHOWTO, enthält DSDT-Patches)

• http://www.intel.com/technology/iapc/acpi/faq.htm (ACPIFAQ @Intel)

638 Referenz

Page 639: Suse 10.1 Linux Reference De

• http://acpi.sourceforge.net/ (das ACPI4Linux-Projekt von Source-forge)

• http://www.poupinou.org/acpi/ (DSDT-Patches von Bruno Ducrot)

33.4 Ruhezustand für FestplatteIn Linux kann die Festplatte vollständig ausgeschaltet werden, wenn sie nicht benötigtwird, oder sie kann in einem energiesparenderen oder ruhigeren Modus betrieben werden.Bei moderenen Notebooks müssen die Festplatten nicht manuell ausgeschaltet werden,da sie automatisch in einen Sparbetriebsmodus geschaltet werden, wenn sie nichtbenötigt werden. Um die Energieeinsparungen zu maximieren, sollten Sie jedoch einigeder folgenden Verfahren ausprobieren. Die meisten Funktionen lassen sich mit power-saved und dem YaST-Energieverwaltungsmodul steuern. Letzteres wird inAbschnitt 33.6, „Das YaST Energieverwaltungsmodul“ (S. 650) genauer behandelt.

Mit der Anwendung hdparm können verschiedene Festplatteneinstellungen bearbeitetwerden. Die Option -y schaltet die Festplatte sofort in den Stand-by-Modus. -Y versetztsie in den Ruhezustand. hdparm -S x führt dazu, dass die Festplatte nach einenbestimmten Inaktivitätszeitraum abgeschaltet wird. Ersetzen Siexwie folgt:0 deaktiviertdiesen Mechanismus, was zu einem Dauerbetrieb der Festplatte führt. Werte von 1 bis240 werden mit 5 Sekunden multipliziert. Werte von 241 bis 251 entsprechen 1- bis11-mal 30 Minuten.

Die internen Energiesparoptionen der Festplatte lassen sich über die Option -B steuern.Wählen Sie einen Wert0 (maximale Energieeinsparung) bis255 (maximaler Durchsatz).Das Ergebnis hängt von der verwendeten Festplatte ab und ist schwer einzuschätzen.Die Geräuschentwicklung einer Festplatte können Sie mit der Option -M reduzieren.Wählen Sie einen Wert von 128 (ruhig) bis 254 (schnell).

Häufig ist es nicht so einfach, die Festplatte in den Ruhezustand zu versetzen. Bei Linuxführen zahlreiche Prozesse Schreibvorgänge auf der Festplatte durch, wodurch diesewiederholt aus dem Ruhezustand reaktiviert wird. Daher sollten Sie unbedingt verstehen,wie Linux mit Daten umgeht, die auf die Festplatte geschrieben werden müssen.Zunächst werden alle Daten im RAM-Puffer gespeichert. Dieser Puffer wird vomKernel-Aktualisierungs-Daemon (kupdated) überwacht. Wenn die Daten ein bestimmtesAlter erreichen oder wenn der Puffer bis zu einem bestimmten Grad gefüllt ist, wirdder Pufferinhalt auf die Festplatte übertragen. Die Puffergröße ist dynamisch und hängt

Energieverwaltung 639

Page 640: Suse 10.1 Linux Reference De

von der Größe des Arbeitsspeichers und von der Systemlast ab. Standardmäßig werdenfür kupdated kurze Intervalle festgelegt, um maximale Datenintegrität zu erreichen.Der Puffer wird alle 5 Sekunden überprüft und der bdflush-Daemon wird benachrichtigt,wenn Daten älter als 30 Sekunden sind oder der Puffer einen Füllstand von 30 % erreicht.Der bdflush-Daemon schreibt die Daten anschließend auf die Festplatte. Außerdemschreibt er unabhängig von kupdated, beispielsweise wenn der Puffer voll ist.

WARNUNG: Beeinträchtigung der Datenintegrität

Änderungen an den Einstellungen für den Kernel-Aktualisierungs-Daemongefährden die Datenintegrität.

Abgesehen von diesen Prozessen schreiben protokollierende Journaling-Dateisysteme,wie ReiserFS und Ext3, ihre Metadaten unabhängig von bdflush, was ebenfalls dasAbschalten der Festplatte verhindert. Um dies zu vermeiden, wurde eine spezielleKernel-Erweiterung für mobile Geräte entwickelt. Details finden Sie unter /usr/src/linux/Documentation/laptop-mode.txt.

Ein weiterer wichtiger Faktor ist die Art und Weise, wie sich die Programme verhalten.Gute Editoren beispielsweise schreiben regelmäßig verborgene Sicherungskopien deraktuell bearbeiteten Datei auf die Festplatte, wodurch die Festplatte wieder aktiviertwird. Derartige Funktionen können auf Kosten der Datenintegrität deaktiviert werden.

In dieser Verbindung verwendet der Mail-Daemon postfix die VariablePOSTFIX_LAPTOP. Wenn diese Variable auf yes (ja) gesetzt wird, greift postfixwesentlich seltener auf die Festplatte zu. Dies ist jedoch irrelevant, wenn das Intervallfür kupdated erhöht wurde.

33.5 Das powersave-PaketDas powersave-Paket enthält alle zuvor erwähnten Stromsparfunktionen. Aufgrundder allgemein wachsenden Forderung nach geringerem Energieverbrauch sind einigeder enthaltenen Funktionen auch auf Arbeitsstationen und Servern wichtig. Beispiels-weise der Suspend- oder Standby-Modus oder die CPU-Frequenzskalierung.

Dieses Paket enthält alle Energieverwaltungsfunktionen für Ihren Computer. Es unter-stützt Hardware, die ACPI, APM, IDE-Festplatten und PowerNow!- oder SpeedStep-Technologien verwendet. Die Funktionen der Pakete apmd, acpid, ospmd und

640 Referenz

Page 641: Suse 10.1 Linux Reference De

cpufreqd (jetzt cpuspeed) wurden im powersave-Paket zusammengeführt. DieDaemons aus diesen Paketen (mit Ausnahme von acpid, der als Multiplexer für acpi-Ereignisse fungiert) sollten nicht gleichzeitig mit dem powersave-Daemon ausgeführtwerden.

Selbst wenn Ihr System nicht alle oben aufgeführten Hardware-Elemente beinhaltet,sollten Sie den powersave-Daemon zur Steuerung der Energiesparfunktion verwenden.Da sich ACPI und APM gegenseitig ausschließen, können Sie nur eines dieser Systemeauf Ihrem Computer verwenden. Der Daemon erkennt automatisch etwaige Änderungenin der Hardware-Konfiguration.

33.5.1 Konfigurieren des powersave-PaketsDie Konfiguration von powersave wird an mehrere Dateien verteilt: Jede hier aufgelis-tete Konfigurationsoption enthält eine zusätzliche Dokumentation zur eigenen Funktio-nalität.

/etc/sysconfig/powersave/commonDiese Datei enthält allgemeine Einstellungen für den powersave-Daemon. DerUmfang der Fehlersuchmeldungen in /var/log/messages lässt sich beispiels-weise durch Heraufsetzen des Werts der Variablen DEBUG erhöhen.

/etc/sysconfig/powersave/eventsDer powersave-Daemon benötigt diese Datei zur Verarbeitung von Systemereignis-sen. Einem Ereignis können externe Aktionen oder vom Daemon selbst ausgeführteAktionen zugewiesen werden. Bei externen Aktionen versucht der Daemon eineausführbare Datei (normalerweise ein Bash-Skript) in/usr/lib/powersave/scripts/ auszuführen. Vordefinierte interne Aktionen:

• ignore

• throttle

• dethrottle

• suspend_to_disk

• suspend_to_ram

• standby

Energieverwaltung 641

Page 642: Suse 10.1 Linux Reference De

• do_suspend_to_disk

• do_suspend_to_ram

• do_standby

• notify

• screen_saver

• reread_cpu_capabilities

throttle verlangsamt den Prozessor um den inMAX_THROTTLING festgelegtenWert. Dieser Wert hängt vom aktuellen Schema ab. dethrottle setzt den Pro-zessor auf volle Leistung. suspend_to_disk, suspend_to_ram undstandby lösen das Systemereignis für einen Energiesparmodus aus. Diese dreiAktionen sind in der Regel für die Auslösung des Energiesparmodus zuständig,sie sollten jedoch stets mit bestimmten Systemereignissen verknüpft sein.

Das Verzeichnis /usr/lib/powersave/scripts enthält Skripts zum Ver-arbeiten von Ereignissen:

switch_vtHilfreich, wenn der Bildschirm nach einem Suspend- oder Stand-by-Vorgangverschoben ist.

wm_logoutSpeichert die Einstellungen und Protokolle aus GNOME, KDE oder anderenFenstermanagern.

wm_shutdownSpeichert die GNOME- bzw. KDE-Einstellungen und fährt das System herunter.

set_disk_settingsFührt die in /etc/sysconfig/powersave/disk vorgenommenenDatenträgereinstellungen aus.

Bei Festlegung der VariablenEVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_diskdo_suspend_to_disk" beispielsweise werden die beiden Skripts bzw.Aktionen in der angegebenen Reihenfolge verarbeitet, sobald der Benutzer

642 Referenz

Page 643: Suse 10.1 Linux Reference De

powersaved den Befehl für den Energiesparmodus Suspend to Disk erteilt.Der Daemon führt das externe Skript /usr/lib/powersave/scripts/prepare_suspend_to_disk aus. Nach der erfolgreichen Verarbeitung diesesSkripts führt der Daemon die interne Aktion do_suspend_to_disk aus undversetzt den Computer in den Energiesparmodus, nachdem kritische Module mit-hilfe des Skripts entladen und Dienste gestoppt wurden.

Die Aktionen für das durch einen Energiespar-Schalter ausgelöste Ereignis könnenwie in EVENT_BUTTON_SLEEP="notify suspend_to_disk" geändertwerden. In diesem Fall wird der Benutzer durch ein Popup-Fenster in X oder eineMeldung auf der Konsole über den Suspend-Vorgang informiert. Anschließendwird das Ereignis EVENT_GLOBAL_SUSPEND2DISK generiert, was zur Ausfüh-rung der erwähnten Aktionen und einem sicheren Suspend-Modus für das Systemführt. Die interne Aktion notify kann mithilfe der Variablen NOTIFY_METHODin /etc/sysconfig/powersave/common angepasst werden.

/etc/sysconfig/powersave/cpufreqEnthält Variablen für die Optimierung der dynamischen CPU-Frequenzeinstellungenund bestimmt, ob die userspace- oder die Kernel-Implementierung verwendetwerden soll.

/etc/sysconfig/powersave/batteryEnthält Grenzwerte für den Akku und andere akkuspezifische Einstellungen.

/etc/sysconfig/powersave/sleepIn dieser Datei können Sie die Energiesparmodi aktivieren und festlegen, welchekritischen Module vor einem Suspend- oder Stand-by-Ereignis entladen und welcheDienste angehalten werden sollen. Wenn der Betrieb des Systems wieder aufgenom-men wird, werden diese Module erneut geladen und die Dienste werden neu gest-artet. Es ist sogar möglich, einen ausgelösten Energiesparmodus zu verzögern,beispielsweise um Dateien zu speichern. Die Standardeinstellungen betreffen vorallem USB- und PCMCIA-Module. Fehler bei Suspend oder Stand-by werdennormalerweise von bestimmten Modulen verursacht. Weitere Informationen zurErmittlung des Fehlers finden Sie in Abschnitt 33.5.4, „Fehlerbehebung“ (S. 647).

/etc/sysconfig/powersave/thermalAktiviert Kühlung und Wärmesteuerung. Einzelheiten zu diesem Thema findenSie in der Datei /usr/share/doc/packages/powersave/README.thermal.

Energieverwaltung 643

Page 644: Suse 10.1 Linux Reference De

/etc/sysconfig/powersave/diskDiese Konfigurationsdatei steuert die Aktionen und Einstellungen, die in Bezugauf die Festplatte vorgenommen werden sollen.

/etc/sysconfig/powersave/scheme_*Dies sind die verschiedenen Schemata, die den Energieverbrauch an bestimmteBereitstellungsszenarien anpassen. Eine Anzahl von Schemata werden vorkonfigu-riert und können unverändert verwendet werden. Außerdem können hier benutzer-definierte Schemata gespeichert werden.

33.5.2 Konfigurieren von APM und ACPI

Suspend und Stand-byEs gibt drei grundlegende ACPI-Energiesparmodi und zwei APM-Energiesparmodi:

Suspend to Disk (ACPI S4, APM suspend)Speichert den gesamten Inhalt des Arbeitsspeichers auf die Festplatte. Der Computerwird vollständig ausgeschaltet und verbraucht keinerlei Energie. Dieser Energie-sparmodus ist standardmäßig aktiviert und sollte auf allen System funktionieren.

Suspend to RAM (ACPI S3, APM suspend)Speichert die Zustände aller Geräte im Hauptspeicher. Nur der Hauptspeicher ver-braucht weiterhin Energie. Dieser Energiesparmodus ist standardmäßig deaktiviert,da er nach wie vor Probleme auf einigen Systemen verursacht. Die Unterstützungwurde jedoch enorm erweitert.

Standby (ACPI S1, APM standby)Schaltet einige Geräte aus (herstellerabhängig).

Stellen Sie sicher, dass folgende Standardoptionen in der Datei /etc/sysconfig/powersave/events festgelegt sind, um die ordnungsgemäße Verarbeitung vonSuspend, Stand-by und Resume zu gewährleisten (Standardeinstellungen nach derInstallation von SUSE Linux):EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk screen_saver do_suspend_to_disk"EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram screen_saver do_suspend_to_ram"EVENT_GLOBAL_STANDBY= "prepare_standby screen_saver do_standby"

644 Referenz

Page 645: Suse 10.1 Linux Reference De

EVENT_GLOBAL_RESUME_SUSPEND2DISK= "restore_after_suspend_to_disk"EVENT_GLOBAL_RESUME_SUSPEND2RAM= "restore_after_suspend_to_ram"EVENT_GLOBAL_RESUME_STANDBY= "restore_after_standby"

Benutzerdefinierte Akku-LadezuständeIn der Datei /etc/sysconfig/powersave/battery können Sie drei Akku-Ladezustände (in Prozent) definieren, bei deren Erreichen Systemwarnungen oderbestimmte Aktionen ausgelöst werden.BATTERY_WARNING=12BATTERY_LOW=7BATTERY_CRITICAL=2

Die Aktionen bzw. Skripts, die ausgeführt werden sollen, wenn der Ladezustand unterdie angegebenen Grenzwerte fällt, werden in der Konfigurationsdatei /etc/sysconfig/powersave/events festgelegt. Die Standardaktionen für Schaltflä-chen können wie in Abschnitt 33.5.1, „Konfigurieren des powersave-Pakets“ (S. 641)beschrieben geändert werden.EVENT_BATTERY_NORMAL=„ignore“EVENT_BATTERY_WARNING="notify"EVENT_BATTERY_LOW="notify"EVENT_BATTERY_CRITICAL=„wm_shutdown“

Anpassen des Energieverbrauchs an unterschiedlicheBedingungenDas Systemverhalten kann an die Art der Stromversorgung angepasst werden. DerEnergieverbrauch des Systems sollte reduziert werden, wenn das System vom Stromnetzgetrennt und mit dem Akku betrieben wird. Ebenso sollte die Leistung automatischzunehmen, sobald das System an das Stromnetz angeschlossen wird. Die CPU-Frequenz,die Energiesparfunktion von IDE und eine Reihe anderer Parameter können geändertwerden.

Die Aktionen, die ausgeführt werden sollen, wenn der Computer vom Stromnetz getrenntbzw. wieder daran angeschlossen wird, werden in /etc/sysconfig/powersave/events festgelegt. Die zu verwendenden Schemata können in /etc/sysconfig/powersave/common ausgewählt werden:

Energieverwaltung 645

Page 646: Suse 10.1 Linux Reference De

AC_SCHEME="performance"BATTERY_SCHEME="powersave"

Die Schemata werden in Dateien im Verzeichnis /etc/sysconfig/powersavegespeichert. Für die Dateinamen wird das Formatschema_name-des-schemasverwendet. Das Beispiel bezieht sich auf zwei Schemata: scheme_performanceund scheme_powersave. performance, powersave, presentation undacoustic sind vorkonfiguriert. Mithilfe des in Abschnitt 33.6, „Das YaST Energie-verwaltungsmodul“ (S. 650) beschriebenen YaST-Modul für die Energieverwaltungkönnen bestehende Schemata bearbeitet, erstellt, gelöscht oder mit verschiedenenEnergieversorgungszuständen verknüpft werden.

33.5.3 Weitere ACPI-FunktionenBei Verwendung von ACPI können Sie festlegen, wie Ihr System auf ACPI-Schalter(Ein/Aus, Energiesparen, Deckel offen, Deckel geschlossen) reagieren soll. Die Aus-führung der Aktionen wird in/etc/sysconfig/powersave/events konfiguriert.In dieser Konfigurationsdatei finden Sie auch eine Erklärung der einzelnen Optionen.

EVENT_BUTTON_POWER=„wm_shutdown“EVENT_BUTTON_POWER=„wm_shutdown“ Wenn der Netzschalter gedrücktwird, reagiert das System mit Herunterfahren des jeweiligen Fenstermanagers(KDE, GNOME, fvwm usw.).

EVENT_BUTTON_SLEEP=„suspend_to_disk“Wenn der Energiespar-Schalter gedrückt wird, wird das System in den Modus„Suspend to Disk“ versetzt.

EVENT_BUTTON_LID_OPEN=„ignore“Das Öffnen des Deckels hat keine Wirkung.

EVENT_BUTTON_LID_CLOSED=„screen_saver“Beim Schließen des Deckels wird der Bildschirmschoner aktiviert.

EVENT_OTHER=„ignore“Dieses Ereignis tritt ein, wenn ein unbekanntes Ereignis vom Daemon erkannt wird.Unbekannte Ereignisse sind beispielsweise ACPI-Tastenkombinationen auf einigenComputern.

646 Referenz

Page 647: Suse 10.1 Linux Reference De

Eine weitere Drosselung der CPU-Leistung ist möglich, wenn die CPU-Last über einenbestimmten Zeitraum einen angegebenen Wert nicht übersteigt. Geben Sie die Lastgrenzein PROCESSOR_IDLE_LIMIT und den Wert für die Zeitüberschreitung inCPU_IDLE_TIMEOUT an. Wenn die CPU-Last länger als unterhalb des Grenzwertsbleibt, als für die Zeitüberschreitung festgelegt, wird das inEVENT_PROCESSOR_IDLEkonfigurierte Ereignis aktiviert. Wenn die CPU erneut belegt ist, wirdEVENT_PROCESSOR_BUSY ausgeführt.

33.5.4 FehlerbehebungAlle Fehler- und Alarmmeldungen werden in der Datei /var/log/messages pro-tokolliert. Wenn Sie die benötigten Informationen nicht finden können, erhöhen Siedie Ausführlichkeit der powersave-Meldungen mithilfe von DEBUG in der Datei /etc/sysconfig/powersave/common. Erhöhen Sie den Wert der Variablen auf 7 odersogar 15 und starten Sie den Daemon erneut. Mithilfe der detaillierteren Fehlermeldun-gen in/var/log/messages sollten Sie den Fehler leicht finden können. In folgendenAbschnitten werden die häufigsten Probleme mit powersave behandelt.

ACPI mit Hardware-Unterstützung aktiviert,bestimmte Funktionen sind jedoch nicht verfügbarBei Problemen mit ACPI können Sie mit dem Befehl dmesg|grep -i acpi dieAusgabe von dmesg nach ACPI-spezifischen Meldungen durchsuchen. Zur Behebungdes Problems kann eine BIOS-Aktualisierung erforderlich sein. Rufen Sie die HomepageIhres Notebookherstellers auf, suchen Sie nach einer aktualisierten BIOS-Version undinstallieren Sie sie. Bitten Sie den Hersteller, die aktuellsten ACPI-Spezifikationeneinzuhalten. Wenn der Fehler auch nach der BIOS-Aktualisierung noch besteht, gehenSie wie folgt vor, um die fehlerhafte DSDT-Tabelle im BIOS mit einer aktualisiertenDSDT zu ersetzen:

1 Laden Sie die DSDT für Ihr System von der Seite http://acpi.sourceforge.net/dsdt/tables herunter. Prüfen Sie, ob die Dateidekomprimiert und kompiliert ist. Dies wird durch die Dateierweiterung .aml(ACPI machine language) angezeigt. Wenn dies der Fall ist, fahren Sie mitSchritt 3 fort.

2 Wenn die Dateierweiterung der heruntergeladenen Tabelle .asl (ACPI SourceLanguage) lautet, kompilieren Sie sie mit iasl (Paket pmtools). Geben Sie den

Energieverwaltung 647

Page 648: Suse 10.1 Linux Reference De

Befehl iasl -sa file.asl ein. Die aktuellste Version von asl (Intel ACPICompiler) ist unter http://developer.intel.com/technology/iapc/acpi/downloads.htm verfügbar.

3 Kopieren Sie die Datei DSDT.aml an einen beliebigen Speicherort (/etc/DSDT.aml wird empfohlen). Bearbeiten Sie /etc/sysconfig/kernelund passen Sie den Pfad zur DSDT-Datei entsprechend an. Starten Siemkinitrd(Paket mkinitrd). Immer wenn Sie den Kernel installieren und mkinitrdverwenden, um initrd zu erstellen, wird die bearbeitete DSDT beim Bootendes Systems integriert und geladen.

CPU-Frequenzsteuerung funktioniert nichtRufen Sie die Kernel-Quelle (kernel-source) auf, um festzustellen, ob der verwen-dete Prozessor unterstützt wird. Möglicherweise ist ein spezielles Kernel-Modul bzw.eine Moduloption erforderlich, um die CPU-Frequenzsteuerung zu aktivieren. DieseInformationen erhalten Sie unter /usr/src/linux/Documentation/cpu-freq/*. Wenn ein spezielles Modul bzw. eine spezielle Moduloption erforderlichist, konfigurieren Sie diese(s) in der Datei /etc/sysconfig/powersave/cpufreq mithilfe der Variablen CPUFREQD_MODULE undCPUFREQD_MODULE_OPTS.

Suspend und Stand-by funktionieren nichtEs gibt mehrere Kernel-bezogene Probleme, die die Verwendung der Suspend- undStand-by-Ereignisse auf ACPI-Systemen verhindern:

• Zurzeit unterstützen Systeme mit mehr als 1 GB RAM keine Suspend-Ereignisse.

• Zurzeit unterstützen Multiprozessorsysteme und Systeme mit einem P4-Prozessor(mit Hyperthreading) keine Suspend-Ereignisse.

Der Fehler kann auch durch eine fehlerhafte DSDT-Implementierung (BIOS) verursachtworden sein. In diesem Fall müssen Sie eine neue DSDT installieren.

Bei ACPI- und APM-Systemen gilt Folgendes: Beim Versuch fehlerhafte Module zuentladen, reagiert das System nicht mehr oder das Suspend-Ereignis wird nicht ausgelöst.Dies kann auch dann passieren, wenn Sie keine Module entladen oder Dienste stoppen,die ein erfolgreiches Suspend-Ereignis verhindern. In beiden Fällen müssen Sie versu-

648 Referenz

Page 649: Suse 10.1 Linux Reference De

chen, das fehlerhafte Modul zu ermitteln, das den Energiesparmodus verhindert hat.Die vom powersave-Daemon in/var/log/suspend2ram.log und/var/log/suspend2disk.log erstellten Protokolldateien stellen hierfür eine große Hilfe dar.Wenn der Computer nicht in den Energiesparmodus eintritt, liegt die Ursache im zuletztentladenen Modul. Bearbeiten Sie die folgenden Einstellungen in/etc/sysconfig/powersave/sleep, um problematische Module vor einem Suspend- oder Stand-by-Ereignis zu entladen.UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""UNLOAD_MODULES_BEFORE_STANDBY=""SUSPEND2DISK_RESTART_SERVICES=""SUSPEND2RAM_RESTART_SERVICES=""STANDBY_RESTART_SERVICES=""

Wenn Sie Suspend- oder Stand-by-Ereignisse in veränderlichen Netzwerkumgebungenoder in Verbindung mit entfernt eingehängten Dateisystemen, wie Samba und NIS,verwenden, sollten Sie diese mithilfe von automounter einhängen oder die entsprechen-den Dienste, beispielsweise smbfs oder nfs in der oben angegebenen Variablenergänzen. Wenn eine Anwendung vor einem Suspend- oder Stand-by-Ereignis auf dasentfernt eingehängte Dateisystem zugreift, kann der Dienst nicht richtig gestoppt undkein ordnungsgemäßes Aushängen des Dateisystems durchgeführt werden. Wenn derBetrieb des Systems wieder aufgenommen wird, kann das Dateisystem beschädigt undein erneutes Einhängen erforderlich sein.

33.5.5 Weitere Informationen• /usr/share/doc/packages/powersave – Lokale Dokumentation zum

Powersave-Daemon

• http://powersave.sourceforge.net – Aktuelle Dokumentation zumPowersave-Daemon

• http://www.opensuse.org/Projects_Powersave – Projektseite inder openSUSE-Wiki

Energieverwaltung 649

Page 650: Suse 10.1 Linux Reference De

33.6 Das YaSTEnergieverwaltungsmodul

Das YaST-Energieverwaltungsmodul kann alle bereits beschriebenen Energieverwal-tungseinstellungen konfigurieren. Beim Start über das YaST-Kontrollzentrum mithilfevon System → Power-Management wird das erste Dialogfeld des Moduls geöffnet(siehe Abbildung 33.1, „Schemaauswahl“ (S. 650)).

Abbildung 33.1 Schemaauswahl

Dieses Dialogfeld dient zur Auswahl der Schemata für Akku- und Netzbetrieb. Um dieSchemata zu ergänzen oder zu ändern, klicken Sie auf Schemes bearbeiten. Dadurchwird ein Überblick über die vorhandenen Schemata geöffnet, ähnlich wie in Abbil-dung 33.2, „Überblick über vorhandene Schemata“ (S. 651) gezeigt.

650 Referenz

Page 651: Suse 10.1 Linux Reference De

Abbildung 33.2 Überblick über vorhandene Schemata

Wählen Sie in der Übersicht das zu ändernde Schema aus und klicken Sie aufBearbeiten.Um ein neues Schema zu erstellen, klicken Sie auf Hinzufügen. In beiden Fällen öffnetsich das in Abbildung 33.3, „Konfigurieren von Schemata“ (S. 651) gezeigte Dialogfeld.

Abbildung 33.3 Konfigurieren von Schemata

Energieverwaltung 651

Page 652: Suse 10.1 Linux Reference De

Geben Sie zunächst einen geeigneten Namen und eine Beschreibung für das neue bzw.bearbeitete Schema ein. Bestimmen Sie, ob und wie die CPU-Leistung für diesesSchema gesteuert werden soll. Legen Sie fest, ob und in welchem Umfang Frequenz-skalierung und Drosselung eingesetzt werden sollen. Legen Sie im anschließend ange-zeigten Dialogfeld für die Festplatte eine Stand-by-Strategie für höchstmögliche Leistungbzw. zum Energiesparen fest. Die Akustik-Strategie steuert den Geräuschpegel derFestplatte (nur von wenigen Festplatten unterstützt). Mithilfe der Kühlstrategie wirddie zu verwendende Kühlmethode bestimmt. Leider wird diese Art von Wärmesteuerungselten vom BIOS unterstützt. Lesen Sie /usr/share/doc/packages/powersave/powersave_manual.html#Thermal, um zu erfahren, wie Sieden Ventilator und passive Kühlmethoden einsetzen können.

Globale Energieverwaltungseinstellungen können außerdem über das Anfangsdialogfeldfestgelegt werden. Verwenden Sie dazu die OptionenAkku-Warnung, ACPI-Einstellun-gen oder Suspend aktivieren. Klicken Sie auf Akku-Warnung, um das Dialogfeld fürden Akku-Ladezustand aufzurufen, das Sie in Abbildung 33.4, „Akku-Ladezustand“(S. 652) sehen können.

Abbildung 33.4 Akku-Ladezustand

Das BIOS des Systems benachrichtigt das Betriebssystem jeweils, wenn der Ladezustandunter bestimmte, festlegbare Grenzwerte fällt. In diesem Dialogfeld können Sie dreiGrenzwerte festlegen:Kapazitätswarnung,Niedrige Kapazität undKritische Kapazität.Wenn der Ladezustand unter diese Grenzwerte fällt, werden bestimmte Aktionen aus-

652 Referenz

Page 653: Suse 10.1 Linux Reference De

gelöst. In der Regel lösen die ersten beiden Zustände lediglich eine Benachrichtigungan den Benutzer aus. Beim dritten, kritischen Ladezustand, wird das Herunterfahrenausgelöst, da die verbleibende Energie nicht für eine Fortsetzung des Systembetriebsausreicht. Wählen Sie geeignete Ladezustände und die gewünschten Aktionen aus undklicken Sie dann auf OK, um zum Startdialogfeld zurückzukehren.

Abbildung 33.5 ACPI-Einstellungen

Rufen Sie das Dialogfeld zur Konfiguration der ACPI-Schalter mithilfe von ACPI-Einstellungen auf. Siehe Abbildung 33.5, „ACPI-Einstellungen“ (S. 653). Die Einstel-lungen für die ACPI-Schalter legen fest, wie das System auf bestimmte Schalter reagierensoll. Konfigurieren Sie die Systemreaktion auf das Drücken des Netzschalters, desEnergiespar-Schalters und das Schließen des Notebookdeckels. Klicken Sie auf OK,um die Konfiguration abzuschließen und zum Startdialogfeld zurückzukehren.

Klicken Sie auf Suspend aktivieren, um ein Dialogfeld aufzurufen, in dem Sie festlegenkönnen, ob und wie die Benutzer dieses Systems die Suspend- bzw. Stand-by-Funktionverwenden dürfen. Durch Klicken aufOK gelangen Sie zurück in das Hauptdialogfeld.Klicken Sie erneut aufOK, um das Modul zu beenden und die festgelegten Energiever-waltungseinstellungen zu bestätigen.

Energieverwaltung 653

Page 654: Suse 10.1 Linux Reference De
Page 655: Suse 10.1 Linux Reference De

34Drahtlose KommunikationSie können Ihr Linux-System auf verschiedene Arten für die Kommunikation mitanderen Computern, Mobiltelefonen oder peripheren Geräten nutzen. Mit WLAN(Wirless LAN) können Notebooks in einem Netzwerk miteinander verbunden werden.Über Bluetooth können einzelne Systemkomponenten (Maus, Tastatur), periphereGeräte, Mobiltelefone, PDAs und einzelne Computer untereinander verbunden werden.IrDA wird in der Regel für die Kommunikation mit PDAs oder Mobiltelefonen verwen-det. In diesem Kapitel werden diese drei Technologien und ihre Konfiguration vorge-stellt.

34.1 Wireless LANWireless LANs sind zu einem unverzichtbaren Aspekt der mobilen Computernutzunggeworden. Heutzutage verfügen die meisten Notebooks über eingebaute WLAN-Karten.Standard 802.11 für die drahtlose Kommunikation mit WLAN-Karten wurde von derOrganisation IEEE erarbeitet. Ursprünglich sah dieser Standard eine maximale Übertra-gungsrate von 2 MBit/s vor. Inzwischen wurden jedoch mehrere Ergänzungen hinzuge-fügt, um die Datenrate zu erhöhen. Diese Ergänzungen definieren Details wie Modula-tion, Übertragungsleistung und Übertragungsraten:

Drahtlose Kommunikation 655

Page 656: Suse 10.1 Linux Reference De

Tabelle 34.1 Überblick über verschiedene WLAN-Standards

HinweisMaximale Über-tragungsrate(MBit/s)

Band (GHz)Name

Veraltet; praktisch keineEndgeräte verfügbar

22.4802.11

Weit verbreitet112.4802.11b

Weniger üblich545802.11a

Rückwärtskompatibel mit11b

542.4802.11g

Außerdem gibt es proprietäre Standards, beispielsweise die 802.11b-Variation vonTexas Instruments mit einer maximalen Übertragungsrate von 22 MBit/s (manchmalals 802.11b+ bezeichnet). Die Karten, die diesen Standard verwenden, erfreuen sichallerdings nur begrenzter Beliebtheit.

34.1.1 Hardware802.11-Karten werden von SUSE Linux nicht unterstützt. Die meisten Karten, die802.11a, 802.11b und 802.11g verwenden, werden unterstützt. Neuere Karten entspre-chen in der Regel dem Standard 802.11g, Karten, die 802.11b verwenden, sind jedochnoch immer erhältlich. Normalerweise werden Karten mit folgenden Chips unterstützt:

• Aironet 4500, 4800

• Atheros 5210, 5211, 5212

• Atmel at76c502, at76c503, at76c504, at76c506

• Intel PRO/Wireless 2100, 2200BG, 2915ABG

• Intersil Prism2/2.5/3

• Intersil PrismGT

656 Referenz

Page 657: Suse 10.1 Linux Reference De

• Lucent/Agere Hermes

• Ralink RT2400, RT2500

• Texas Instruments ACX100, ACX111

• ZyDAS zd1201

Außerdem wird eine Reihe älterer Karten unterstützt, die nur noch selten verwendetwerden und nicht mehr erhältlich sind. Eine umfassende Liste mit WLAN-Karten undden von ihnen verwendeten Chips sind auf der Website von AbsoluteValue Systemsunter http://www.linux-wlan.org/docs/wlan_adapters.html.gzverfügbar.http://wiki.uni-konstanz.de/wiki/bin/view/Wireless/ListeChipsatz bietet einen Überblick über die verschiedenen WLAN-Chips.

Einige Karten benötigen ein Firmware-Image, das bei der Initialisierung des Treibersin die Karte geladen werden muss. Dies ist der Fall bei Intersil PrismGT, Atmel undTIACX100 and ACX111. Die Firmware kann problemlos mit dem YaST-Online-Updateinstalliert werden. Die Firmware für Intel PRO/Wireless-Karten ist im Lieferumfangvon SUSE Linux enthalten und wird automatisch von YaST installiert, sobald eineKarte dieses Typs gefunden wurde. Weitere Informationen zu diesem Thema findenSie im installierten System unter /usr/share/doc/packages/wireless-tools/README.firmware.

Karten ohne native Linux-Unterstützung können durch Ausführung der Anwendungndiswrapper verwendet werden. ndiswrapper nutzt die Windows XP-Treiber, die imLieferumfang der meisten WLAN-Karten enthalten sind.

Führen Sie zum Einrichten von ndiswrapper die folgenden Schritte aus:

1 Installieren Sie das Paket ndiswrapper mithilfe von YaST.

2 Laden Sie den entsprechenden Windows XP-Treiber für Ihren drahtlosen Netz-werkadapter herunter. Verwenden Sie die in der Liste der unterstützten Kartenunterhttp://ndiswrapper.sourceforge.net/mediawiki/index.php/List angegebenen Treiber. Es kann zwar sein, dass nicht getesteteTreiber von der Installations-CD der Netzwerkkarte funktionieren, sie könnenjedoch unerwartete Probleme verursachen.

3 Entpacken Sie das Archiv. Jeder Treiber besteht aus einer Datei mit der Erweite-rung .inf und einer oder mehreren DLLs. Installieren Sie den Treiber als

Drahtlose Kommunikation 657

Page 658: Suse 10.1 Linux Reference De

Benutzer „root“ mit dem Befehl ndiswrapper -i driver_name.inf.Hiermit werden alle erforderlichen Dateien in das Verzeichnis /etc/ndiswrapper/ und die Konfigurationsdateien für die Karte erstellt.

4 Überprüfen Sie mit dem Befehl ndiswrapper -l, ob der Treiber ordnungs-gemäß installiert wurde.

5 Laden Sie das Modul mit dem Befehl modprobe ndiswrapper. ImSystemprotokoll /var/log/messages wird angegeben, ob der Vorgangerfolgreich ausgeführt wurde oder ob ein Fehler aufgetreten ist.

6 Bei ordnungsgemäßer Funktion können Sie den Befehl ndiswrapper -meingeben, um das Modul beim Systemstart zu laden.

7 Konfigurieren Sie den drahtlosen Netzwerkadapter in YaST überNetzwerkgeräte→ Netzwerkkarte. Wählen Sie für Gerätetyp die Option Drahtlos, fürKonfigurationsname die Option O und für Modulname die Option ndis-wrapper aus. Behalten Sie für alle anderen Felder die Standardeinstellungen bei.

Eine Beschreibung von ndiswrapper finden Sie unter/usr/share/doc/packages/ndiswrapper/README.SUSE, wenn das Paket ndiswrapper installiert wurde.Eingehendere Informationen zu ndiswrapper finden Sie auf der Website des Projektsunter http://ndiswrapper.sourceforge.net/support.html.

34.1.2 FunktionBei der Arbeit mit drahtlosen Netzwerken werden verschiedene Verfahren und Konfi-gurationen verwendet, um schnelle, qualitativ hochwertige und sichere Verbindungenherzustellen. Verschiedene Betriebstypen passen zu verschiedenen Einrichtungen. DieAuswahl der richtigen Authentifizierungsmethode kann sich schwierig gestalten. Dieverfügbaren Verschlüsselungsmethoden weisen unterschiedliche Vor- und Nachteileauf.

BetriebsmodusGrundsätzlich lassen sich drahtlose Netzwerke in verwaltete Netzwerke und Ad-hoc-Netzwerke unterteilen. Verwaltete Netzwerke weisen ein Verwaltungselement auf: denZugriffspunkt. In diesem Modus (auch als Infrastrukturmodus bezeichnet) laufen alleVerbindungen der WLAN-Stationen im Netzwerk über den Zugriffspunkt, der auch als

658 Referenz

Page 659: Suse 10.1 Linux Reference De

Verbindung zu einem Ethernet fungieren kann. Ad-hoc-Netzwerke weisen keinenZugriffspunkt auf. Die Stationen kommunizieren unmittelbar miteinander. Übertragungs-bereich und Anzahl der teilnehmenden Stationen sind in Ad-hoc-Netzwerken starkeingeschränkt. Daher ist ein Zugriffspunkt normalerweise effizienter. Es ist sogarmöglich, eine WLAN-Karte als Zugriffspunkt zu verwenden. Die meisten Kartenunterstützen diese Funktionen.

Da ein drahtloses Netzwerk wesentlich leichter abgehört und manipuliert werden kannals ein Kabelnetzwerk, beinhalten die verschiedenen Standards Authentifizierungs- undVerschlüsselungsmethoden. In der ursprünglichen Version von Standard IEEE 802.11werden diese Methoden unter dem Begriff WEP beschrieben. Da sich WEP jedoch alsunsicher herausgestellt hat (siehe „Sicherheit“ (S. 666)), hat die WLAN-Branche(gemeinsam unter dem Namen Wi-Fi Alliance) die neue Erweiterung WPA definiert,bei dem die Schwächen von WEP ausgemerzt sein sollen. Der spätere Standard IEEE802.11i (auch als WPA2 bezeichnet, da WPA auf einer Entwurfsfassung von 802.11iberuht) beinhaltet WPA sowie einige andere Authentifizierungs- und Verschlüsselungs-methoden.

AuthentifizierungUm sicherzugehen, dass nur authentifizierte Stationen eine Verbindung herstellenkönnen, werden in verwalteten Netzwerken verschiedene Authentifizierungsmechanis-men verwendet.

OffenEin offenes System ist ein System, bei dem keinerlei Authentifizierung erforderlichist. Jede Station kann dem Netzwerk beitreten. Dennoch kann WEP-Verschlüsselung(siehe „Verschlüsselung“ (S. 661)) verwendet werden.

Gemeinsamer Schlüssel (gemäß IEEE 802.11)In diesem Verfahren wird der WEP-Schlüssel zur Authentifizierung verwendet.Dieses Verfahren wird jedoch nicht empfohlen, da es den WEP-Schlüssel anfälligerfür Angriffe macht. Angreifer müssen lediglich lang genug die Kommunikationzwischen Station und Zugriffspunkt abhören. Während des Authentifizierungsvor-gangs tauschen beide Seiten dieselben Informationen aus, einmal in verschlüsselter,und einmal in unverschlüsselter Form. Dadurch kann der Schlüssel mit den geeig-neten Werkzeugen rekonstruiert werden. Da bei dieser Methode der WEP-Schlüsselfür Authentifizierung udn Verschlüsselung verwendet wird, wird die Sicherheitdes Netzwerks nicht erhöht. Eine Station, die über den richtigen WEP-Schlüsselverfügt, kann Authentifizierung, Verschlüsselung und Entschlüsselung durchführen.

Drahtlose Kommunikation 659

Page 660: Suse 10.1 Linux Reference De

Eine Station, die den Schlüssel nicht besitzt, kann keine empfangenden Paketeentschlüsseln. Sie kann also nicht kommunizieren, unabhängig davon, ob sie sichauthentifizieren musste.

WPA-PSK (gemäß IEEE 802.1x)WPA-PSK (PSK steht für „preshared key“) funktioniert ähnlich wie das Verfahrenmit gemeinsamen Schlüssel. Alle teilnehmenden Stationen sowie der Zugriffspunktbenötigen denselben Schlüssel. Der Schlüssel ist 256 Bit lang und wird normaler-weise als Passwortsatz eingegeben. Dieses System benötigt keine komplexeSchlüsselverwaltung wie WPA-EAP und ist besser für den privaten Gebrauchgeeignet. Daher wird WPA-PSK zuweilen als WPA „Home“ bezeichnet.

WPA-EAP (gemäß IEEE 802.1x)Eigentlich ist WPA-EAP kein Authentifizierungssystem, sondern ein Protokoll fürden Transport von Authentifizierungsinformationen. WPA-EAP dient zum Schutzdrahtloser Netzwerke in Unternehmen. Bei privaten Netzwerken wird es kaumverwendet. Aus diesem Grund wird WPA-EAP zuweilen als WPA „Enterprise“bezeichnet.

WPA-EAP benötigt einen Radius-Server zur Authentifizierung von Benutzern.EAP bietet drei verschiedene Verfahren zur Verbindungsherstellung und Authenti-fizierung beim Server: TLS (Transport Layer Security), TTLS (Tunneled TransportLayer Security) und PEAP (Protected Extensible Authentication Protocol). Kurzgesagt, funktionieren diese Optionen wie folgt:

EAP-TLSTLS-Authentifizierung beruht auf dem gegenseitigen Austausch von Zertifikatenfür Server und Client. Zuerst legt der Server sein Zertifikat dem Client vor,der es auswertet. Wenn das Zertifikat als gültig betrachtet wird, legt imGegenzug der Client sein eigenes Zertifikat dem Server vor. TLS ist zwarsicher, erfordert jedoch eine funktionierende Infrastruktur zur Zertifikatsver-waltung im Netzwerk. Diese Infrastruktur ist in privaten Netzwerken seltengegeben.

EAP-TTLS und PEAPTTLS und PEAP sind zweistufige Protokolle. In der ersten Stufe wird einesichere Verbindung hergestellt und in der zweiten werden die Daten zur Client-Authentifizierung ausgetauscht. Sie erfordern einen wesentlich geringerenZertifikatsverwaltungs-Overhead als TLS, wenn überhaupt.

660 Referenz

Page 661: Suse 10.1 Linux Reference De

VerschlüsselungEs gibt verschiedene Verschlüsselungsmethoden, mit denen sichergestellt werden soll,dass keine nicht autorisierten Personen die in einem drahtlosen Netzwerk ausgetauschtenDatenpakete lesen oder Zugriff auf das Netzwerk erlangen können:

WEP (in IEEE 802.11 definiert)Dieser Standard nutzt den Verschlüsselungsalgorithmus RC4, der ursprünglicheine Schlüssellänge von 40 Bit aufwies, später waren auch 104 Bit möglich. DieLänge wird häufig auch als 64 Bit bzw. 128 Bit angegeben, je nachdem, ob die24 Bit des Initialisierungsvektors mitgezählt werden. Dieser Standard weist jedocheigene Schwächen auf. Angriffe gegen von diesem System erstellte Schlüsselkönnen erfolgreich sein. Nichtsdestoweniger ist es besser, WEP zu verwenden, alsdas Netzwerk überhaupt nicht zu verschlüsseln.

TKIP (in WPA/IEEE 802.11i definiert)Dieses im WPA-Standard definierte Schlüsselverwaltungsprotokoll verwendetdenselben Verschlüsselungsalgorithmus wie WEP, weist jedoch nicht dessenSchwächen auf. Da für jedes Datenpaket ein neuer Schlüssel erstellt wird, sindAngriffe gegen diese Schlüssel vergebens. TKIP wird in Verbindung mit WPA-PSK eingesetzt.

CCMP (in IEEE 802.11i definiert)CCMP beschreibt die Schlüsselverwaltung. Normalerweise wird sie in Verbindungmit WPA-EAP verwendet, sie kann jedoch auch mit WPA-PSK eingesetzt werden.Die Verschlüsselung erfolgt gemäß AES und ist stärker als die RC4-Verschlüsselungdes WEP-Standards.

34.1.3 Konfiguration mit YaSTUm Ihre WLAN-Karte zu konfigurieren, starten Sie das YaST-Modul Netzwerkkarte.Hier können Sie auch angeben, ob YaST oder NetworkManager für die Verwaltungder Netzwerkkarte verwendet werden soll. Wenn Sie YaST auswählen, wählen Sieunter Konfiguration der Netzwerkadresse den Gerätetyp Drahtlos aus und klicken Sieauf Weiter. Nehmen Sie unter Konfiguration der drahtlosen Netzwerkkarte (sieheAbbildung 34.1, „YaST: Konfigurieren der WLAN-Karte“ (S. 662)) die Grundeinstel-lungen für den WLAN-Betrieb vor:

Drahtlose Kommunikation 661

Page 662: Suse 10.1 Linux Reference De

Abbildung 34.1 YaST: Konfigurieren der WLAN-Karte

BetriebsmodusEine Station kann in drei verschiedenen Modi in ein WLAN integriert werden. Dergeeignete Modus hängt von der Art des Netzwerks ab, in dem die Kommunikationerfolgen soll: Ad-hoc (Peer-to-Peer-Netzwerk ohne Zugriffspunkt), Verwaltet(Netzwerk wird über einen Zugriffspunkt verwaltet) oder Master (Ihre Netzwerk-karte sollte als Zugriffspunkt verwendet werden). Um einen der WPA-PSK- oderWPA-EAP-Modi zu verwenden, muss der Betriebsmodus auf Verwaltet gesetztsein.

Netzwerkname (ESSID)Alle Stationen in einem drahtlosen Netzwerk benötigen dieselbe ESSID zur Kom-munikation untereinander. Wenn nichts angegeben ist, wählt die Karte automatischeinen Zugriffspunkt aus, der möglicherweise von dem von Ihnen vorgesehenenabweicht.

AuthentifikationsmodusWählen Sie eine geeignete Authentifizierungsmethode für Ihr Netzwerk aus:Offen,Gemeinsamer Schlüssel, WPA-PSK oder WPA-EAP. Bei Auswahl der WPA-Authentifizierung, muss ein Netzwerkname festgelegt werden.

662 Referenz

Page 663: Suse 10.1 Linux Reference De

Einstellungen für ExpertenMit dieser Schaltfläche wird ein Dialogfeld für die detaillierte Konfiguration derWLAN-Verbindung geöffnet. Eine detaillierte Beschreibung dieses Dialogfeldsfinden Sie weiter unten.

Nach Abschluss der Grundeinstellungen kann die Station im WLAN bereitgestelltwerden.

WICHTIG: Sicherheit in drahtlosen Netzwerken.

Sie sollten unbedingt eine der unterstützten Authentifizierungs- und Verschlüs-selungsmethoden für den Schutz Ihres Netzwerks verwenden. Bei nicht ver-schlüsselten WLAN-Verbindungen können Dritte alle Netzwerkdaten abfangen.Selbst eine schwache Verschlüsselung (WEP) ist besser als gar keine. WeitereInformationen hierzu erhalten Sie in „Verschlüsselung“ (S. 661) und „Sicherheit“(S. 666).

Je nach der ausgewählten Authentifizierungsmethode werden Sie von YaST aufgefordert,eine Feinabstimmung der Einstellungen in einem anderen Dialogfeld vorzunehmen.Bei Offen ist keinerlei Konfigurierung erforderlich, da diese Einstellung unverschlüs-selten Betrieb ohne Authentifizierung implementiert.

WEP-SchlüsselLegen Sie die Art der Schlüsseleingabe fest. Zur Auswahl stehen Passwortsatz,ASCII und Hexadezimal. Bis zu vier verschiedene Schlüssel zur Verschlüsselungder übertragenen Daten sind zulässig. Klicken Sie auf Mehrere Schlüssel, um dasDialogfeld zur Schlüsselkonfiguration aufzurufen. Legen Sie die Länge desSchlüssels fest: 128 Bit oder 64 Bit. Die Standardeinstellung ist 128 Bit. Im Listen-bereich unten im Dialogfeld können bis zu vier verschiedene Schlüssel angegebenwerden, die Ihre Station für die Verschlüsselung verwenden soll. Wählen Sie AlsStandard festlegen, um einen davon als Standardschlüssel festzulegen. Wenn Siehier keine Auswahl treffen, verwendet YaST den als erstes eingegebenen Schlüsselals Standardschlüssel. Wenn der Standardschlüssel gelöscht wird, muss einer deranderen Schlüssel manuell als Standardschlüssel gekennzeichnet werden. KlickenSie auf Bearbeiten, um bestehende Listeneinträge zu bearbeiten oder neue Schlüsselzu erstellen. In diesem Fall werden Sie über ein Popup-Fenster dazu aufgefordert,einen Eingabetyp auszuwählen (Passwortsatz, ASCII oder Hexadezimal). GebenSie bei Verwendung von Passwortsatz ein Wort oder eine Zeichenkette ein, ausder ein Schlüssel mit der zuvor festgelegten Länge erstellt wird. ASCII erfordertdie Eingabe von 5 Zeichen für einen 64-Bit-Schlüssel und von 13 Zeichen für einen

Drahtlose Kommunikation 663

Page 664: Suse 10.1 Linux Reference De

128-Bit-Schlüssel. Bei Hexadezimal geben Sie 10 Zeichen für einen 64-Bit-Schlüssel bzw. 26 Zeichen für einen 128-Bit-Schlüssel in Hexadezimalnotationein.

WPA-PSKFür die Eingabe eines Schlüssels für WPA-PSK stehen die EingabemethodenPasswortsatz bzw. Hexadezimal zur Auswahl. Im Modus Passwortsatz muss dieEingabe 8 bis 63 Zeichen betragen. Im Modus Hexadezimal geben Sie 64 Zeichenein.

WPA-EAPGeben Sie den Berechtigungsnachweis ein, den Sie von Ihrem Netzwerkadminis-trator erhalten haben. Bei TLS müssen Sie das Client-Zertifikat und das Serverzer-tifikat angeben. Für TTLS und PEAP sind Identität und Passwort erforderlich.Serverzertifikat ist optional. YaST sucht nach allen Zertifikaten unter /etc/cert,daher müssen Sie die erhaltenen Zertifikate in diesem Verzeichnis speichern undden Zugriff auf diese Dateien auf 0600 (Lesen und Schreiben nur für Eigentümer).

Klicken Sie auf Erweiterte Einstellungen, um das Dialogfeld für die ErweiterteAuthentifizierung für die WPA-EAP-Einrichtung aufzurufen. Wählen Sie dieAuthentifizierungsmethode für die zweite Phase der EAP-TTLS- oder EAP-PEAP-Kommunikation aus. Wenn Sie im vorherigen Dialogfeld TTLS ausgewählt haben,geben Sie auto, MD5, GTC, CHAP, PAP, MSCHAPv1 oder MSCHAPv2 an. WennSie PEAP ausgewählt haben, geben Sie auto, MD5, GTC oder MSCHAPv2 an.PEAP-Version kann verwendet werden, um die Verwendung einer bestimmtenPEAP-Implementierung zu erzwingen, falls die automatisch festgelegte Einstellungfür Sie nicht funktioniert. Schließen Sie das Dialogfeld mit OK.

Klicken Sie auf Einstellungen für Experten, um das Dialogfeld für die Grundkonfigu-ration der WLAN-Verbindung zu verlassen und die Konfiguration für Experten einzu-geben. In diesem Dialogfeld sind folgende Optionen verfügbar:

KanalDie Spezifikation eines Kanals, über den die WLAN-Station arbeiten soll, ist nurin den Modi Ad-hoc und Master erforderlich. Im Modus Verwaltet durchsucht dieKarte automatisch die verfügbaren Kanäle nach Zugriffspunkten. Im Modus Ad-hocmüssen Sie einen der 12 angebotenen Kanäle für die Kommunikation zwischenIhrer Station und den anderen Stationen auswählen. Im ModusMastermüssen Siefestlegen, auf welchem Kanal Ihre Karte die Funktionen des Zugriffspunktsanbieten soll. Die Standardeinstellung für diese Option lautet Auto.

664 Referenz

Page 665: Suse 10.1 Linux Reference De

BitrateJe nach der Leistungsfähigkeit Ihres Netzwerks können Sie eine bestimmte Bitratefür die Übertragung von einem Punkt zum anderen festlegen. Bei der Standardein-stellung, Auto, versucht das System, die höchstmögliche Datenübertragungsratezu verwenden. Einige WLAN-Karten unterstützen die Festlegung von Bitratennicht.

ZugriffspunktIn einer Umgebung mit mehreren Zugriffspunkten kann einer davon durch Angabeder MAC-Adresse vorausgewählt werden.

Energieverwaltung verwendenWenn Sie Ihr Notebook unterwegs verwenden, sollten Sie die Akku-Betriebsdauermithilfe von Energiespartechnologien maximieren. Weitere Informationen überdie Energieverwaltung finden Sie in Kapitel 33, Energieverwaltung (S. 627).

34.1.4 Dienstprogrammehostap (Paket hostap) wird zum Betrieb einer WLAN-Karte als Zugriffspunkt ver-wendet. Weitere Informationen zu diesem Paket finden Sie auf der Homepage desProjekts (http://hostap.epitest.fi/).

kismet (Paket kismet) ist ein Werkzeug zur Netzwerkdiagnose, mit dem Sie denWLAN-Paketverkehr überwachen können. Auf diese Weise können Sie auch etwaigeVersuche einer unbefugten Benutzung des Netzwerks durch Dritte feststellen. WeitereInformationen finden Sie unter http://www.kismetwireless.net/ und aufder entsprechenden Handbuchseite.

34.1.5 Tipps und Tricks zur Einrichtung einesWLAN

Mit diesen Tipps können Sie Geschwindigkeit und Stabilität sowie SicherheitsaspekteIhres WLAN optimieren.

Drahtlose Kommunikation 665

Page 666: Suse 10.1 Linux Reference De

Stabilität und GeschwindigkeitLeistungsfähigkeit und Zuverlässigkeit eines drahtlosen Netzwerks hängen in ersterLinie davon ab, ob die teilnehmenden Stationen ein sauberes Signal von den anderenStationen empfangen. Hindernisse, wie beispielsweise Wände, schwächen das Signalerheblich ab. Je weiter die Signalstärke sinkt, desto langsamer wird die Übertragung.Während des Betriebs können Sie die Signalstärke mithilfe des Dienstprogrammsiwconfig auf der Befehlszeile (Feld Link-Qualität) oder mithilfe von KInternetin KDE überprüfen. Bei Problemen mit der Signalqualität sollten Sie versuchen, dieGeräte an einer anderen Position einzurichten oder die Antennen der Zugriffspunkteneu zu positionieren. Hilfsantennen, die den Empfang erheblich verbessern sind füreine Reihe von PCMCIA-WLAN-Karten erhältlich. Die vom Hersteller angegebeneRate, beispielsweise 54 MBit/s, ist ein Nennwert, der für das theoretische Maximumsteht. IN der Praxis beträgt der maximale Datendurchsatz nicht mehr als die Hälftedieses Werts.

SicherheitWenn Sie ein drahtloses Netzwerk einrichten möchten, sollten Sie bedenken, dass jeder,der sich innerhalb der Übertragungsreichweite befindet, problemlos auf das Netzwerkzugreifen kann, sofern keine Sicherheitsmaßnahmen implementiert sind. Daher solltenSie auf jeden Fall eine Verschlüsselungsmethode aktivieren. Alle WLAN-Karten undZugriffspunkte unterstützen WEP-Verschlüsselung. Dieses Verfahren bietet zwar keineabsolute Sicherheit, es stellt jedoch durchaus ein Hindernis für mögliche Angreifer dar.WEP ist für den privaten Gebrauch in der Regel ausreichend. WPA-PSK bietet nochgrößere Sicherheit, es ist jedoch in älteren Zugriffspunkten und Routern mit WLAN-Funktionen nicht implementiert. Auf einigen Geräten kann WPA mithilfe einer Firm-ware-Aktualisierung implementiert werden. Außerdem unterstützt Linux WPA nichtauf allen Hardware-Komponenten. Zum Zeitpunkt der Erstellung dieser Dokumentationfunktionierte WPA nur bei Karten mit folgenden Arten von Chips: Atheros, IntelPRO/Wireless oder Prism2/2.5/3. Bei Prism2/2.5/3 funktioniert WPA nur bei Verwen-dung des hostap-Treibers (siehe „Probleme mit Prism2-Karten“ (S. 667)). Wenn WPAnicht verfügbar ist, sollten Sie lieber WEP verwenden, als völlig auf Verschlüsselungzu verzichten. Bei Unternehmen mit erhöhten Sicherheitsanforderungen sollten draht-lose Netzwerke ausschließlich mit WPA betrieben werden.

666 Referenz

Page 667: Suse 10.1 Linux Reference De

34.1.6 FehlerbehebungWenn Ihre WLAN-Karte nicht reagiert, überprüfen Sie, ob Sie die benötigte Firmwareheruntergeladen haben. Informationen finden Sie in Abschnitt 34.1.1, „Hardware“(S. 656). In den folgenden Abschnitten werden einige bekannte Probleme behandelt.

Mehrere NetzwerkgeräteModerne Laptops verfügen normalerweise über eine Netzwerkkarte und eine WLAN-Karte. Wenn Sie beide Geräte mit DHCP (automatische Adresszuweisung) konfigurierthaben, können Probleme mit der Namenauflösung und dem Standard-Gateway auftreten.Dies können Sie daran erkennen, dass Sie dem Router ein Ping-Signal senden, jedochnicht das Internet verwenden können. In der Support-Datenbank unter http://portal.suse.com finden Sie einen Artikel zu diesem Thema. Sie finden den Artikel,wenn Sie „DHCP“ im Suchdialogfeld eingeben.

Probleme mit Prism2-KartenFür Geräte mit Prism2-Chips sind mehrere Treiber verfügbar. Die verschiedenen Kartenfunktionieren mit den einzelnen Treibern mehr oder weniger reibungslos. Bei diesenKarten ist WPA nur mit dem hostap-Treiber möglich. Wenn eine solche Karte nichteinwandfrei oder überhaupt nicht funktioniert oder Sie WPA verwenden möchten, lesenSie nach unter /usr/share/doc/packages/wireless-tools/README.prism2.

WPAWPA-Unterstützung ist bei SUSE Linux relativ neu und befindet sich noch in der Ent-wicklungsphase. Daher unterstützt YaST nicht die Konfiguration aller WPA-Authenti-fizierungsmethoden. Nicht alle WLAN-Karten und -Treiber unterstützen WPA. Beieinigen Karten ist zur Aktivierung von WPA eine Firmware-Aktualisierung erforderlich.Wenn Sie WPA verwenden möchten, lesen Sie /usr/share/doc/packages/wireless-tools/README.wpa.

Drahtlose Kommunikation 667

Page 668: Suse 10.1 Linux Reference De

34.1.7 Weitere InformationenAuf den Internetseiten von Jean Tourrilhes, dem Entwickler der Wireless Tools fürLinux finden Sie ein breites Spektrum an nützlichen Informationen zu drahtlosenNetzwerken. Siehehttp://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html.

34.2 BluetoothBluetooth ist eine drahtlose Technologie für den Anschluss verschiedener Geräte, wiebeispielsweise Mobiltelefone, PDAs, Notebooks oder Systemkomponenten wie Tastaturoder Maus. Der Name leitet sich vom dänischen König Harald Blauzahn (engl. NameHarold Bluetooth) ab, der mehrere sich bekriegende Fraktionen in Skandinavien einte.Das Bluetooth-Logo basiert auf den Runen für „H“ (sternähnlich) und „B“.

Bluetooth unterscheidet sich durch eine Reihe wichtiger Aspekte von IrDA. Zum einenmüssen sich die einzelnen Geräte nicht in optischer Reichweite voneinander befindenund zum anderen können mehrere Geräte zu einem Netzwerk zusammengeschlossenwerden. Die maximale Datenübertragungsrate beträgt allerdings nur 720 Kbps (in deraktuellen Version 1.2). Theoretisch ist mit Bluetooth sogar eine Kommunikation durchWände möglich. In der Praxis hängt dies jedoch von den Eigenschaften der Wand undder Geräteklasse ab. Es gibt drei Geräteklassen mit Übertragungsreichweiten zwischenzehn und hundert Metern.

34.2.1 GrundlagenIn den folgenden Abschnitten werden die Grundprinzipien umrissen, nach denenBluetooth funktioniert. Sie erfahren, welche Software-Anforderungen erfüllt seinmüssen, wie Bluetooth mit dem System interagiert und wie Bluetooth-Profile funktio-nieren.

SoftwareZur Verwendung von Bluetooth benötigen Sie einen Bluetooth-Adapter (eingebauterAdapter oder externes Gerät), Treiber sowie einen Bluetooth-Protokollstapel. Der Linux-Kernel weist bereits die wichtigsten Treiber für die Verwendung von Bluetooth auf.

668 Referenz

Page 669: Suse 10.1 Linux Reference De

Das Bluez-System wird als Protokollstapel verwendet. Um sicherzustellen, dass dieAnwendungen mit Bluetooth zusammenarbeiten, müssen die Basispaketebluez-libsund bluez-utils installiert sein. Diese Pakete enthalten mehrere benötigte Diensteund Dienstprogramme. Außerdem muss für einige Adapter, wie Broadcom bzw. AVMBlueFritz!, das Paket bluez-firmware installiert sein. Das Paket bluez-cupsermöglicht das Drucken über Bluetooth-Verbindungen. Für die Fehlersuche bei Proble-men mit Bluetooth-Verbindungen installieren Sie das Paket bluez-hcidump.

Allgemeines ZusammenspielBluetooth-Systeme bestehen aus vier miteinander verzahnten Schichten, die diegewünschte Funktionalität bereitstellen:

HardwareAdapter und geeigneter Treiber zur Unterstützung durch den Linux-Kernel.

KonfigurationsdateienDienen zur Steuerung des Bluetooth-Systems.

DaemonsDienste, die von den Konfigurationsdateien gesteuert werden und die Funktionalitätbereitstellen.

AnwendungenDurch die Anwendungen kann der Benutzer die von den Daemons bereitgestellteFunktionalität nutzen und steuern.

Beim Einstecken eines Bluetooth-Adapters wird der zugehörige Treiber in das Hotplug-System geladen. Nachdem der Treiber geladen wurde, überprüft das System die Konfi-gurationsdateien, um zu ermitteln, ob Bluetooth gestartet werden sollte. Wenn dies derFall ist, wird ermittelt, welche Dienste gestartet werden sollen. Auf der Grundlagedieser Informationen werden die entsprechenden Daemons gestartet. Bei der Installationwird nach Bluetooth-Adaptern gesucht. Wenn mindestens einer gefunden wird, wirdBluetooth aktiviert. Andernfalls wird das Bluetooth-System deaktiviert. Alle zu einemspäteren Zeitpunkt hinzugefügten Bluetooth-Geräte müssen manuell aktiviert werden.

Drahtlose Kommunikation 669

Page 670: Suse 10.1 Linux Reference De

ProfileIn Bluetooth werden die Dienste über Profile definiert, beispielsweise das Dateiübertra-gungsprofil, das Profil für grundlegende Druckvorgänge und das Profil für das persön-liche Netzwerk (Personal Area Network). Damit ein Gerät die Dienste eines anderenGerätes nutzen kann, müssen beide dasselbe Profil verstehen. Diese Information fehlthäufig auf der Verpackung und im Handbuch des Geräts. Leider halten sich einigeHersteller nicht streng an die Definitionen der einzelnen Profile. Dennoch funktioniertdie Kommunikation zwischen den Geräten normalerweise reibungslos.

Im folgenden Text sind die lokalen Geräte diejenigen, die physisch mit dem Computerverbunden sind. Alle anderen Geräte, auf die nur über drahtlose Verbindungen zugegrif-fen werden kann, werden als entfernte Geräte bezeichnet.

34.2.2 KonfigurationDieser Abschnitt bietet eine Einführung in die Bluetooth-Konfiguration. Sie erfahren,welche Konfigurationsdateien beteiligt sind, welche Werkzeuge benötigt werden undwie Bluetooth manuell mit YaST konfiguriert werden können.

Konfigurieren von Bluetooth mit YaSTVerwenden Sie das in Abbildung 34.2, „YaST Bluetooth-Konfiguration“ (S. 671) dar-gestellte YaST Bluetooth-Modul zur Konfiguration der Bluetooth-Unterstützung inIhrem System. Sobald Hotplug einen Bluetooth-Adapter im System erkennt (beispiels-weise während des Bootens oder wenn Sie einen Adapter einstecken), wird Bluetoothautomatisch mit den in diesen Modul konfigurierten Einstellungen gestartet.

670 Referenz

Page 671: Suse 10.1 Linux Reference De

Abbildung 34.2 YaST Bluetooth-Konfiguration

Ermitteln Sie im ersten Schritt der Konfiguration, ob Bluetooth-Dienste im Systemgestartet werden sollten. Wenn Sie die Bluetooth-Dienste aktiviert haben, können zweiElemente konfiguriert werden: Gerätename. Dies ist der Name, den andere Geräteanzeigen, wenn der Computer erkannt wurde. Es sind zwei Platzhalter verfügbar: %hsteht für den Hostnamen des Systems (z. B. nützlich, wenn der Hostname dynamischvon DHCP zugewiesen wird) und %d fügt die Schnittstellennummer ein (nur sinnvoll,wenn der Computer mehrere Bluetooth-Adapter aufweist). Wenn Sie beispielsweiseNotebook %h in das Feld eingeben und DHCP dem Computer den Namen unit123zuweist, erkennen andere entfernte Geräte den Computer als Notebook unit123.

Der Parameter Sicherheits-Manager bezieht sich auf das Verhalten des lokalen Systems,wenn ein entferntes Gerät versucht, eine Verbindung herzustellen. Der Unterschiedbesteht im Umgang mit der PIN-Nummer. Sie können entweder allen Geräten dieVerbindung ohne PIN gestatten oder festlegen, wie die richtige PIN gewählt wird,sofern eine erforderlich ist. Sie können eine PIN (in einer Konfigurationsdatei gespei-chert) in das entsprechende Eingabefeld eingeben. Wenn ein Gerät versucht, eine Ver-bindung herzustellen, verwendet es zuerst diese PIN. Wenn es damit nicht erfolgreichist, wird keine PIN verwendet. Größtmögliche Sicherheit erhalten Sie bei Auswahl vonBenutzer immer nach einer PIN fragen. Mit dieser Option können Sie verschiedenePINs für verschiedene (entfernte) Geräte verwenden.

Drahtlose Kommunikation 671

Page 672: Suse 10.1 Linux Reference De

Klicken Sie auf Erweiterte Daemon-Konfiguration, um das Dialogfeld zur Auswahlund Konfiguration der verfügbaren Dienste (in Bluetooth als Profile bezeichnet) aufzu-rufen. Alle verfügbaren Dienste werden in einer Liste angezeigt und können durchKlicken auf Aktivieren bzw. Deaktivieren aktiviert bzw. deaktiviert werden. KlickenSie auf Bearbeiten, um ein Dialogfeld zu öffnen, in dem zusätzliche Argumente fürden ausgewählten Dienst (Daemon) angegeben werden können. Nehmen Sie keineÄnderungen vor, es sei denn, Sie sind mit dem Dienst vertraut. Beenden Sie diesesDialogfeld nach Abschluss der Konfiguration der Daemons durch Klicken auf OK.

Klicken Sie im Hauptdialogfeld auf Sicherheitsoptionen, um das Sicherheitsdialogfeldaufzurufen und Verschlüsselung, Authentifizierung und Scaneinstellungen anzugeben.Beenden Sie anschließend das Sicherheitsdialogfeld, um zum Hauptdialogfeld zurück-zukehren. Nachdem Sie das Hauptdialogfeld mit Beenden geschlossen haben, ist dasBluetooth-System einsatzbereit.

Über das Hauptdialogfeld können Sie außerdem das DialogfeldGeräte- und Dienstklas-sen aufrufen. Bluetooth-Geräte untergliedern sich in verschiedene Geräteklassen.Wählen Sie in diesem Dialogfeld die richtige Klasse für Ihren Computer aus, beispiels-weiseDesktop oder Laptop. Die Geräteklasse ist nicht sonderlich wichtig. Die ebenfallshier festgelegte Dienstklasse jedoch durchaus. Manchmal lassen entfernte Bluetooth-Geräte, wie beispielsweise Mobiltelefone, bestimmte Funktionen nur dann zu, wenndie richtige Dienstklasse auf dem System festgelegt wurde. Dies ist häufig bei Mobilte-lefonen der Fall, die die Übertragung von Dateien von dem oder auf den Computer nurzulassen, wenn sie eine Klasse mit der BezeichnungObjektübertragung ermittelt haben.Die Auswahl mehrerer Klassen ist zulässig. Allerdings ist es nicht sinnvoll, „nur zurSicherheit“ alle Klassen auszuwählen. Die Standardauswahl ist in den meisten Fällengeeignet.

Um mit Bluetooth ein Netzwerk einzurichten, aktivieren Sie PAND im DialogfeldErweiterte Daemon-Konfiguration und legen Sie mithilfe von Bearbeiten den Modusdes Daemon fest. Für eine funktionierende Bluetooth-Netzwerkverbindung muss einpand im Lauschen-Modus betrieben werden und die Gegenstelle im Suchmodus. Stan-dardmäßig liegt der Lauschen-Modus vor. Passen Sie das Verhalten des lokalen pandan. Konfigurieren Sie außerdem die SchnittstsellebnepX (X steht für die Gerätenummerim System) im YaST-Modul Netzwerkkarte.

672 Referenz

Page 673: Suse 10.1 Linux Reference De

Manuelle Konfiguration von BluetoothDie Konfigurationsdateien für die einzelnen Komponenten des Bluez-Systems befindensich im Verzeichnis /etc/bluetooth. Die einzige Ausnahme ist die Datei /etc/sysconfig/bluetooth, die zum Starten der Komponenten dient. Diese wird vomYaST-Modul bearbeitet.

Die im Folgenden beschriebenen Konfigurationsdateien können nur vom Benutzerroot bearbeitet werden. Zurzeit gibt es keine grafische Benutzerschnittstelle zumÄndern aller Einstellungen. Die wichtigsten Einstellungen können über das YaSTBluetooth-Modul festgelegt werden, wie in „Konfigurieren von Bluetooth mit YaST“(S. 670) beschrieben. Alle anderen Einstellungen sind nur für erfahrene Benutzer mitbesonderen Fällen von Interesse. Normalerweise sollten die Standardeinstellungenangemessen sein.

Eine PIN-Nummer bietet einen ersten Schutz gegen unerwünschte Verbindungen.Mobiltelefone fragen beim Herstellen des ersten Kontakts (bzw. beim Einrichten einesGerätekontakts auf dem Telefon) normalerweise die PIN ab. Damit zwei Geräte kom-munizieren können, müssen sie sich mit derselben PIN identifizieren. Auf dem Computerbefindet sich die PIN in der Datei /etc/bluetooth/pin.

WICHTIG: Sicherheit von Bluetooth-Verbindungen

Trotz der PINs ist die Übertragung zwischen zwei Geräten nicht unbedingt völligsicher. Standardmäßig ist die Authentifizierung und Verschlüsselung von Blue-tooth-Verbindungen deaktiviert. Die Aktivierung der Authentifizierung undVerschlüsselung kann zu Kommunikationsproblemen mit einigen Bluetooth-Geräten führen.

Verschiedene Einstellungen, beispielsweise Gerätenamen und Sicherheitsmodus, könnenin der Konfigurationsdatei /etc/bluetooth/hcid.conf geändert werden. Nor-malerweise sollten die Standardeinstellungen angemessen sein. Die Datei enthältKommentare, in denen die Optionen für die verschiedenen Einstellungen beschriebenwerden.

Zwei Abschnitte in der eingeschlossenen Datei heißen options und device. Dererste enthält allgemeine Informationen, die hcid zum Starten verwendet. Der zweiteenthält Einstellungen für einzelne lokale Bluetooth-Geräte.

Drahtlose Kommunikation 673

Page 674: Suse 10.1 Linux Reference De

Eine der wichtigsten Einstellungen im Abschnitt options ist security auto;.Wenn dieser Wert auf auto gesetzt ist, versucht hcid, die lokale PIN für eingehendeVerbindungen zu verwenden. Wenn dies nicht erfolgreich ist, wird auf none umge-schaltet und die Verbindung ohne PIN hergestellt. Um eine höhere Sicherheit zu errei-chen, sollte diese Standardeinstellung auf user gesetzt werden, um sicherzustellen,dass der Benutzer jedes Mal, wenn eine Verbindung hergestellt wird, eine PIN eingebenmuss.

Legen Sie den Namen, unter dem der Computer auf der anderen Seite angezeigt wird,im Abschnitt device fest. Die Geräteklasse, beispielsweiseDesktop, Laptop oderServer wird in diesem Abschnitt definiert. Authentifizierung und Verschlüsselungwerden ebenfalls hier aktiviert bzw. deaktiviert.

34.2.3 Systemkomponenten undDienstprogramme

Die Funktionsfähigkeit von Bluetooth hängt vom Zusammenspiel verschiedenerDienste ab. Es werden mindestens zwei Hintergrund-Daemons benötigt: hcid (HostController Interface Daemon), der als Schnittstelle für das Bluetooth-Gerät dient unddieses steuert, und sdpd (Service Discovery Protocol Daemon), mithilfe dessen einGerät herausfinden kann, welche Dienste der Host verfügbar macht. Wenn sie nichtautomatisch beim Systemstart aktiviert werden, können hcid und sdpd über den Befehlrcbluetooth start aktiviert werden. Dieser Befehl muss als root ausgeführtwerden.

In den folgenden Absätzen werden kurz die wichtigsten Shell-Werkzeuge beschrieben,die für die Arbeit mit Bluetooth verwendet werden können. Mittlerweile stehen zwarverschiedene grafische Komponenten für die Steuerung von Bluetooth zur Verfügung,aber dennoch kann es sich lohnen, einen Blick auf diese Programme zu werfen.

Einige der Befehle können nur als root ausgeführt werden. Dazu gehört der Befehll2ping device_address zum Testen der Verbindung mit einem entfernten Gerät.

hcitoolMit hcitool kann bestimmt werden, ob lokale und entfernte Geräte erkannt wurden. Mitdem Befehl hcitool dev werden die lokalen Geräte aufgeführt. Für jedes erkannte

674 Referenz

Page 675: Suse 10.1 Linux Reference De

lokale Gerät wird in der Ausgabe eine Zeile in der Form SchnittstellennameGeräteadresse erstellt.

Nach entfernten Geräten wird mit dem Befehl hcitool inq gesucht. Für jedeserkannte Gerät werden drei Werte zurückgegeben: Geräteadresse, Uhren-Offset undGeräteklasse. Die Geräteklasse ist wichtig, da andere Befehle sie zur Ermittlung desZielgeräts verwenden. Das Uhren-Offset dient hauptsächlich technischen Zwecken.Die Klasse gibt Geräte- und Diensttyp als Hexadezimalwert an.

Mit dem Befehl hcitool name Geräteadresse kann der Gerätename einesentfernten Geräts ermittelt werden. Bei einem entfernten Computer entsprechen Klasseund Gerätename den Informationen in der Datei /etc/bluetooth/hcid.conf.Lokale Geräteadressen führen zu einer Fehlerausgabe.

hciconfigDer Befehl /usr/sbin/hciconfig liefert weitere Informationen zum lokalenGerät. Wenn hciconfig ohne Argumente ausgeführt wird, werden in der AusgabeGeräteinformationen, beispielsweise Gerätenamen (hciX), physikalische Geräteadresse(12-stellige Nummer in der Form00:12:34:56:78) und Informationen zum Umfangder übertragenen Daten angezeigt.

hciconfig hci0 name zeigt den Namen an, der von Ihrem Computer zurückge-geben wird, wenn er Anforderungen von entfernten Geräten erhält. Mit hciconfigkönnen die Einstellungen des lokalen Geräts nicht nur abgefragt, sondern auch bearbeitetwerden. Mithciconfig hci0 name TEST beispielsweise wird der Name aufTESTgesetzt.

sdptoolMit dem Programm sdptool kann überprüft werden, welche Dienste von einembestimmten Gerät zur Verfügung gestellt werden. Der Befehl sdptool browseGeräteadresse gibt alle Dienste eines Geräts zurück. Mit dem Befehl sdptoolsearch Dienstcode wird nach einem bestimmten Dienst gesucht. Dieser Befehlscannt alle erreichbaren Geräte nach dem angeforderten Dienst. Wenn eines der Geräteden Dienst anbietet, gibt das Programm den vollständigen Dienstnamen, der vom Gerätzurückgegeben wurde, sowie eine kurze Beschreibung aus. Eine Liste aller möglichenDienstcodes lässt sich durch Eingabe von sdptool ohne Parameter anzeigen.

Drahtlose Kommunikation 675

Page 676: Suse 10.1 Linux Reference De

34.2.4 Grafische AnwendungenGeben Sie in Konqueror die URL bluetooth:/ ein, um lokale und entfernte Blue-tooth-Geräte aufzuführen. Durch Doppelklicken auf ein Gerät erhalten Sie einenÜberblick über die von dem betreffenden Gerät bereitgestellten Dienste. Wenn Sie mitder Maus über einen der angegebenen Dienste fahren, wird in der Statusleiste desBrowsers angezeigt, welches Profil für den Dienst verwendet wird. Wenn Sie auf einenDienst klicken, wird ein Dialogfeld geöffnet, in dem Sie den gewünschten Vorgangauswählen können: Speichern, den Dienst verwenden (dazu muss eine Anwendunggestartet werden) oder den Vorgang abbrechen. Aktivieren Sie das betreffende Kontroll-kästchen, wenn der Dialog nicht mehr angezeigt und immer die ausgewählte Aktiondurchgeführt werden soll. Für einige Dienste ist noch keine Unterstützung verfügbar.Für andere müssen gegebenenfalls zusätzliche Pakete installiert werden.

34.2.5 BeispieleIn diesem Abschnitt werden zwei typische Beispiele für mögliche Bluetooth-Szenarienbehandelt. Im ersten Beispiel wird gezeigt, wie über Bluetooth eine Netzwerkverbindungzwischen zwei Hosts eingerichtet werden kann. Im zweiten Beispiel wird eine Verbin-dung zwischen einem Computer und einem Mobiltelefon behandelt.

Netzwerkverbindung zwischen zwei HostsIm ersten Beispiel wird eine Netzwerkverbindung zwischen den Hosts H1 und H2eingerichtet. Diese beiden Hosts haben die Bluetooth-Geräteadressen baddr1 undbaddr2 (auf beiden Hosts mit dem Befehl hcitool dev bestimmt, wie obenbeschrieben). Die Hosts sollten mit den IP-Adressen 192.168.1.3 (H1) und192.168.1.4 (H2) identifiziert sein.

Die Bluetooth-Verbindung wird mithilfe von pand (Personal Area Networking Daemon)hergestellt. Die folgenden Befehle müssen vom Benutzer root ausgeführt werden.Die Beschreibung konzentriert sich auf die Bluetooth-spezifischen Aktionen und bietetkeine detaillierte Beschreibung des Netzwerkbefehls ip.

Geben Sie pand -s ein, um pand auf Host H1 zu starten. Anschließend kann aufHostH2 mit pand -c baddr1 eine Verbindung hergestellt werden. Wenn Sie aufeinem der Hostsip link show eingeben, um die verfügbaren Netzwerkschnittstellenaufzulisten, sollte die Ausgabe etwa folgenden Eintrag enthalten:

676 Referenz

Page 677: Suse 10.1 Linux Reference De

bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff

Statt 00:12:34:56:89:90 sollte die Ausgabe die lokale Geräteadresse baddr1 bzw.baddr2 enthalten. Nun muss diese Schnittstelle einer IP-Adresse zugewiesen und aktiviertwerden. Auf H1 kann dies über die folgenden beiden Befehle durchgeführt werden:ip addr add 192.168.1.3/24 dev bnep0ip link set bnep0 up

Auf H2:ip addr add 192.168.1.4/24 dev bnep0ip link set bnep0 up

Nun ist ein Zugriff auf H1 von H2 aus unter der IP-Adresse 192.168.1.3 möglich.Mit dem Befehl ssh 192.168.1.4 können Sie von H1 aus auf H2 zugreifen, vor-ausgesetztH2 führt einen sshd aus, der standardmäßig in SUSE Linux aktiviert ist. DieAusführung des Befehls ssh 192.168.1.4 ist auch als normaler Benutzer möglich.

Datenübertragung von Mobiltelefon auf ComputerDas zweite Beispiel zeigt, wie ein mit einem Mobiltelefon mit eingebauter Kameraerstelltes Foto (ohne zusätzliche Kosten für die Übertragung einer MMS) auf einenComputer übertragen werden kann. Die Menüstruktur kann sich zwar zwischen denverschiedenen Mobiltelefonen unterscheiden, das Verfahren ist jedoch normalerweiseziemlich ähnlich. Ziehen Sie gegebenenfalls das Handbuch Ihres Telefons zurate. Imvorliegenden Beispiel wird die Übertragung eines Fotos von einem Sony Ericsson-Mobiltelefon auf ein Notebook beschrieben. Der Dienst Obex-Push muss auf demComputer verfügbar sein und der Computer muss dem Mobiltelefon den Zugriffgestatten. Im ersten Schritt wird der Dienst auf dem Notebook verfügbar gemacht. Siebenötigen einen speziellen Dienst-Daemon, der auf dem Laptop ausgeführt wird, umDaten vom Telefon abzurufen. Wenn das Paket kbluetooth installiert ist, müssenSie keinen speziellen Daemon starten. Wenn kbluetooth nicht installiert ist, verwen-den Sie den opd-Daemon aus dem Paket bluez-utils. Starten Sie den Daemon mitfolgendem Befehl:opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp

Es werden zwei wichtige Parameter verwendet: --sdp registriert den Dienst mitsdpdund --path /tmp weist das Programm an, wo die empfangenen Daten gespeichertwerden sollen, in diesem Fall unter /tmp. Sie können auch jedes andere Verzeichnisangeben, für das Sie über Schreibzugriff verfügen.

Drahtlose Kommunikation 677

Page 678: Suse 10.1 Linux Reference De

Wenn Sie kbluetooth verwenden, werden Sie nach einem Verzeichnis gefragt, wenndas Foto auf dem Laptop empfangen wird.

Nun muss das Mobiltelefon den Computer kennen lernen. Öffnen Sie das MenüVerbin-dungen auf dem Telefon und wählen Sie Bluetooth. Klicken Sie, falls erforderlich, aufEinschalten und wählen Sie dann Eigene Geräte. Wählen Sie Neues Gerät und lassenSie das Telefon nach dem Notebook suchen. Wenn ein Gerät gefunden wurd, wird seinName im Display angezeigt. Wählen Sie das mit dem Notebook verknüpfte Gerät aus.Wenn eine PIN-Anfrage erfolgt, geben Sie die unter /etc/bluetooth/pin ange-gebene PIN ein. Nun erkennt das Telefon das Notebook und ist zum Datenaustauschbereit. Beenden Sie das aktuelle Menü und rufen Sie das Menü „Bilder“ auf. WählenSie das zu übertragende Bild aus und drücken SieMehr. Drücken Sie im nächsten Menüauf Senden, um einen Übertragungsmodus auszuwählen. Wählen Sie Via Bluetooth.Das Notebook sollte nun als Zielgerät aufgeführt sein. Wählen Sie das Notebook aus,um die Übertragung zu starten. Das Bild wird dann in dem über den Befehl opd ange-gebenen Verzeichnis gespeichert. Audiostücke können auf dieselbe Weise auf dasNotebook übertragen werden.

34.2.6 FehlerbehebungWenn Sie Schwierigkeiten bei der Herstellung einer Verbindung haben, sollten Sie diefolgende Liste abarbeiten. Bedenken Sie, dass der Fehler auf jeder der beiden Seiteneiner Verbindung liegen kann, zuweilen liegt sogar auf beiden Seiten ein Fehler vor.Rekonstruieren Sie das Problem nach Möglichkeit mit einem anderen Bluetooth-Gerät,um sicherzustellen, dass das Gerät nicht defekt ist.

Wird das lokale Gerät in der Ausgabe von hcitool dev aufgeführt?Wenn das lokale Gerät nicht in dieser Ausgabe aufgeführt ist, wurde entweder hcidnicht gestartet oder das Gerät wird nicht als Bluetooth-Gerät erkannt. Dies kannverschiedene Ursachen haben. Das Gerät könnte beschädigt sein oder der richtigeTreiber könnte fehlen. Notebooks mit integriertem Bluetooth haben häufig einenEin-/Aus-Schalter für drahtlose Geräte, wie WLAN- oder Bluetooth-Geräte.Überprüfen Sie im Handbuch Ihres Notebooks, ob Ihr Gerät einen solchen Schalteraufweist. Starten Sie das Bluetooth-System mit dem Befehl rcbluetoothrestart neu und überprüfen Sie, ob unter /var/log/messages Fehlergemeldet werden.

678 Referenz

Page 679: Suse 10.1 Linux Reference De

Benötigt Ihr Bluetooth-Adapter eine Firmware-Datei?Falls ja, installieren Sie bluez-bluefw und starten Sie das Bluetooth-Systemmit rcbluetooth restart neu.

Gibt die Ausgabe von hcitool inq andere Geräte zurück?Testen Sie diesen Befehl mehrmals. Die Verbindung weist möglicherweise Interfe-renzen auf, da das Bluetooth-Frequenzband auch von anderen Geräten verwendetwird.

Stimmen die PINs überein?Überprüfen Sie, ob die PIN-Nummer des Computers (unter /etc/bluetooth/pin) mit der des Zielgeräts übereinstimmt.

Kann das entfernte Gerät den Computer „sehen“?Versuchen Sie, die Verbindung vom Remote-Gerät aus herzustellen. ÜberprüfenSie, ob das Gerät den Computer sieht.

Kann eine Netzwerkverbindung hergestellt werden (siehe „Netzwerkverbindung zwi-schen zwei Hosts“ (S. 676))?

Die in „Netzwerkverbindung zwischen zwei Hosts“ (S. 676) beschriebene Einrich-tung funktioniert möglicherweise nicht. Dafür kann es mehrere Gründe geben.Beispielsweise unterstützt einer der beiden Computer möglicherweise nicht dasssh-Protokoll. Versuchen Sie es mit ping 192.168.1.3 oder ping192.168.1.4. Wenn dies funktioniert, überprüfen Sie, ob sshd aktiv ist. Einweiteres Problem könnte darin bestehen, dass eines der beiden Geräte bereitsNetzwerkeinstellungen aufweist, die mit der im Beispiel genannten Adresse192.168.1.X in Konflikt stehen. Versuchen Sie es in diesem Fall mit anderenAdressen, beispielsweise 10.123.1.2 und 10.123.1.3.

Wird das Notebook als Zielgerät angezeigt (siehe „Datenübertragung von Mobiltelefonauf Computer“ (S. 677))? Erkennt das mobile Gerät den Dienst Obex-Push auf demNotebook?

Wählen Sie unter Eigene Geräte das entsprechende Gerät aus und überprüfen Siedie Liste Dienste. Wenn Obex-Push auch nach der Aktualisierung der Liste nichtangezeigt wird, wird das Problem durch opd auf dem Notebook verursacht. Ist opdaktiv? Verfügen Sie über Schreibzugriff für das angegebene Verzeichnis?

Drahtlose Kommunikation 679

Page 680: Suse 10.1 Linux Reference De

Funktioniert das in „Datenübertragung von Mobiltelefon auf Computer“ (S. 677)beschriebene Szenario in der anderen Richtung?

Wenn das Paket obexftp installiert ist, kann bei einigen Geräten der Befehlobexftp -b Geräteadresse -B 10 -p Bild verwendet werden.Mehrere Modelle von Siemens und Sony Ericsson wurden getestet und für funkti-onsfähig befunden. Weitere Informationen finden Sie in der Dokumentation unter/usr/share/doc/packages/obexftp.

Wenn Sie das bluez-hcidump-Paket installiert haben, können Sie mithilfe vonhcidump -X überprüfen, was zwischen den Geräten versendet wird. Manchmal gibtdie Ausgabe einen Hinweis auf das Problem. Beachten Sie aber, dass nur teilweise„Klartext“ ausgegeben wird.

34.2.7 Weitere InformationenZusätzliche (kurz vor Veröffentlichung eingegangene) Dokumentation erhalten Sieunter /usr/share/doc/packages/bluez-utils/ (deutschsprachige undenglischsprachige Version verfügbar).

Einen umfassenden Überblick über die verschiedenen Anweisungen für Verwendungund Konfiguration von Bluetooth finden Sie unter http://www.holtmann.org/linux/bluetooth/. Weitere nützliche Informationen und Anweisungen:

• Offizielle Anleitungsseite für den in den Kernel integrierten Bluetooth-Protokoll-stapel: http://bluez.sourceforge.net/howto/index.html

• Verbindung mit PalmOS PDA: http://www.cs.ucl.ac.uk/staff/s.zachariadis/btpalmlinux.html

34.3 Infrarot-DatenübertragungIrDA (Infrared Data Association) ist ein Industriestandard für die kabellose Kommuni-kation über Infrarotlicht. Viele Notebooks sind heute mit einem IrDA-kompatiblenTransceiver ausgestattet, der die Kommunikation mit anderen Geräten, wie Druckern,Modems, LANs oder anderen Notebooks, ermöglicht. Die Übertragungsgeschwindigkeitreicht von 2400 bps bis 4 Mbps.

680 Referenz

Page 681: Suse 10.1 Linux Reference De

Es gibt zwei IrDA-Betriebsmodi. Im Standardmodus, SIR, wird über eine serielleSchnittstelle auf den Infrarot-Port zugegriffen. Dieser Modus funktioniert auf fast allenSystemen und ist für die meisten Anforderungen ausreichend. Für den schnellerenModus, FIR, ist ein besonderer Treiber für den IrDA-Chip erforderlich. Im FIR-Moduswerden aufgrund des Fehlens geeigneter Treiber nicht alle Chiptypen unterstützt. Dengewünschten IrDA-Modus legen Sie im BIOS Ihres Computers fest. Im BIOS wirdangezeigt, welche serielle Schnittstelle im SIR-Modus verwendet wird.

Informationen zu IrDA finden Sie im Dokument „IrDA how-to“ von Werner Heuserunterhttp://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html.Zusätzlich können Sie die Website des Linux IrDA-Projekts unter http://irda.sourceforge.net/ als Referenz verwenden.

34.3.1 SoftwareDie erforderlichen Kernel-Module sind im Kernel-Paket enthalten. Im Paket irda sinddie erforderlichen Hilfsanwendungen für die Unterstützung der Infrarotschnittstelleenthalten. Nach der Installation des Pakets finden Sie die entsprechende Dokumentationunter /usr/share/doc/packages/irda/README.

34.3.2 KonfigurationDer IrDA-Systemdienst wird beim Booten des Systems nicht automatisch gestartet.Zur Aktivierung verwenden Sie das YaST IrDA-Modul. In diesem Modul kann nureine Einstellung geändert werden: die serielle Schnittstelle des Infrarotgeräts. Im Test-fenster werden zwei Ausgaben angezeigt. Die eine ist die Ausgabe von irdadump,mit der alle gesendeten und empfangenen IrDA-Pakete protokolliert werden. DieseAusgabe sollte den Namen des Computers und den Namen aller Infrarotgeräte imÜbertragungsbereich enthalten. Im Abschnitt Abschnitt 34.3.4, „Fehlerbehebung“(S. 683) wird ein Beispiel für diese Meldungen angegeben. Alle Geräte, mit denen eineIrDA-Verbindung besteht, werden im unteren Bereich des Fensters aufgeführt.

IrDA nimmt sehr viel Batterieleistung in Anspruch, da im Abstand von wenigenSekunden ein Erkennungspaket zur Erkennung anderer peripherer Geräte gesendetwird. Aus diesem Grund sollte IrDA nur bei Bedarf gestartet werden, wenn Sie IhrGerät mit Batterie betreiben müssen. Geben Sie zum Aktivieren den Befehl rcirdastart und zum Deaktivieren rcirda stop ein. Alle erforderlichen Kernel-Modulewerden automatisch beim Aktivieren der Schnittstelle geladen.

Drahtlose Kommunikation 681

Page 682: Suse 10.1 Linux Reference De

In der Datei /etc/sysconfig/irda kann eine manuelle Konfiguration vorgenom-men werden. Die Datei enthält nur eine Variable, IRDA_PORT, mit der die im SIR-Modus zu verwendende Schnittstelle bestimmt wird.

34.3.3 VerwendungAn die Gerätedatei /dev/irlpt0 können Daten zum Drucken gesendet werden. DieGerätedatei/dev/irlpt0 fungiert genau wie die normale Kabelschnittstelle/dev/lp0 mit dem Unterschied, dass die Daten kabellos per Infrarot gesendet werden. ZumDrucken stellen Sie sicher, dass sich der Drucker in Sichtweite der Infrarotschnittstelledes Computers befindet und dass die Infrarotunterstützung gestartet wurde.

Ein Drucker, der über die Infrarotschnittstelle betrieben wird, kann mit dem YaST-Druckermodul konfiguriert werden. Da es nicht automatisch erkannt wird, konfigurierenSie es manuell, indem Sie aufAndere (nicht Erkannte) klicken. Wählen Sie im folgendenDialogfeld IrDA-Drucker aus. In der Regel ist irlpt0 die richtige Verbindung.Detaillierte Informationen zum Betrieb von Druckern unter Linux erhalten Sie inKapitel 11, Druckerbetrieb (S. 247).

Die Kommunikation mit anderen Hosts und Mobiltelefonen oder ähnlichen Gerätenerfolgt über die Gerätedatei /dev/ircomm0. Mit den Mobiltelefonen Siemens S25und Nokia 6210 kann beispielsweise über die Infrarotschnittstelle mit der Anwendungwvdial eine Verbindung zum Internet hergestellt werden. Auch die Synchronisierungvon Daten mit einem Palm Pilot ist möglich, vorausgesetzt, die Geräteeinstellungender entsprechenden Anwendung wurden auf /dev/ircomm0 gesetzt.

Wenn Sie möchten, können Sie nur Geräte adressieren, die den Drucker oder IrCOMM-Protokolle unterstützen. Auf Geräte, die das IROBEX-Protokoll unterstützen, wie der3Com Palm Pilot, kann mit speziellen Anwendungen wie irobexpalm und irobexreceivezugegriffen werden. Weitere Informationen hierzu erhalten Sie im Dokument IR-HOWTO (http://tldp.org/HOWTO/Infrared-HOWTO/). Die vom Gerätunterstützten Protokolle werden hinter dem Namen des Geräts in der Ausgabe vonirdadump in Klammern aufgeführt. Die Unterstüzung des IrLAN-Protokolls „stehtmomentan noch nicht zur Verfügung“.

682 Referenz

Page 683: Suse 10.1 Linux Reference De

34.3.4 FehlerbehebungFalls an den Infrarot-Port angeschlossene Geräte nicht reagieren, können Sie mit demBefehlirdadump (als Benutzerroot) überprüfen, ob das andere Gerät vom Computererkannt wird. Ein ähnliches Problem wie in Beispiel 34.1, „Ausgabe von irdadump“(S. 683) tritt häufig auf, wenn ein Canon BJC-80-Drucker sich in der Reichweite desComputers befindet:

Beispiel 34.1 Ausgabe von irdadump21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 hint=8804 [Printer IrCOMM ] (23) 21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth hint=0500 [ PnP Computer ] (21)

Überprüfen Sie die Konfiguration der Schnittstelle, wenn keine Ausgabe vorhanden istoder das andere Gerät nicht reagiert. Überprüfen Sie, ob die richtige Schnittstelle ver-wendet wird. Gelegentlich befindet sich die Infrarotschnittstelle in /dev/ttyS2 oder/dev/ttyS3 und manchmal wird ein anderer Interrupt als IRQ 3 verwendet. DieseEinstellungen können auf nahezu alle Notebooks im BIOS-Setup-Menü überprüft undgeändert werden.

Auch mithilfe einer einfachen Videokamera kann festgestellt werden, ob die Infrarot-LED leuchtet. Mit den meisten Videokameras kann Infrarotlicht aufgenommen werden,das für das menschliche Auge nicht sichtbar ist.

Drahtlose Kommunikation 683

Page 684: Suse 10.1 Linux Reference De
Page 685: Suse 10.1 Linux Reference De

IndexSymbole64-Bit-Linux, 189

Kernel-Spezifikationen, 192Laufzeitunterstützung, 189Software-Entwicklung, 190

AACLs, 155–168

Auswertungsalgorithmus, 166Auswirkungen, 164Berechtigungsbits, 160Definitionen, 158Masken, 162Standard, 158, 164Struktur, 158Umgang, 158Unterstützung, 167Zugriff, 158, 161

AdressenIP, 348

Aktualisierung, 71–74passwd und group, 72Probleme, 72Soundmixer, 87YaST, 73

Anwendungenentfernt

FreeNX, 311Netzwerk

entfernt, 311Apache, 485–529

Beenden, 503CGI-Skripts, 514Fehlerbehebung, 526Installieren, 486Konfigurieren, 487

Dateien, 488HTTP-Assistent von YaST, 496HTTP-Server-Konfiguration mitYaST, 501Manuell, 487–495Virtuelle Hosts, 491YaST, 496–503

Module, 505–513Externe Module, 511Installieren, 506Module entwickeln, 513Multiprocessing-Module, 510Verfügbare, 507

Schnellstart, 485Sicherheit, 524Squid, 582SSL, 517–524

Apache mit SSL konfigurieren, 523SSL-Zertifikat erstellen, 517

Starten, 503Weitere Informationen, 527

ArbeitsspeicherRAM, 238

AuthentifizierungKerberos, 88PAM, 325–333

BBash

.bashrc, 234

.profile, 234Profil, 233

Befehlechown, 78fonts-config, 302free, 238getfacl, 162grub, 212head, 78

Page 686: Suse 10.1 Linux Reference De

ldapadd, 470ldapdelete, 473ldapsearch, 472lp, 257nice, 78rpm, 94rpmbuild, 94scp, 122setfacl, 162sftp, 123slptool, 397smbpasswd, 563sort, 78ssh, 122ssh-agent, 125ssh-keygen, 125tail, 78

Benutzer/etc/passwd, 328, 475

BerechtigungenACLs, 155–168Dateiberechtigungen, 236

BildschirmAuflösung, 299

BIND, 408–420Bluetooth, 596, 668

hcitool, 674–675Netzwerk, 672opd, 677pand, 676sdptool, 675

BootenBootsektoren, 211–212Grafisch, 229GRUB, 211–232initramfs, 195initrd, 195Konfigurieren

YaST, 222–228

CCDs

Booten, 228chown, 78CJK, 242Codierung

ISO-8859-1, 244UTF-8, 78

commandsldapmodify, 472

Core-Dateien, 237cpuspeed, 640cron, 234CVS, 532, 541–544

DDateien

suchen, 237Synchronisieren, 531–552

CVS, 532, 541–544iFolder, 534mailsync, 533, 549–552rsync, 534Subversion, 533Unison, 532, 539–541

Verschlüsseln, 130Dateisysteme, 281–292

ACLs, 155–168Auswählen, 282Begriffe, 281Beschränkungen, 290cryptofs, 127Ext2, 283–284Ext3, 284–286LFS, 290Reiser4, 286–287ReiserFS, 282–283unterstützt, 289–290Verschlüsseln, 127

Page 687: Suse 10.1 Linux Reference De

XFS, 287–288Datensicherheit, 596Deinstallieren

GRUB, 228Linux, 228

deltarpm, 99DHCP, 439–449

dhcpd, 444–446Konfigurieren mit YaST, 440Pakete, 444Server, 444–446Zuweisung statischer Adressen, 447

Digitalkameras, 597DNS, 361

BIND, 408–420Domänen, 384Fehlersuche, 409Konfigurieren, 366, 399Mail Exchanger, 362Multicast, 77Namenserver, 384NIC, 362Optionen, 411Protokollierung, 413Reverse-Lookup, 418Sicherheit, 150Squid und, 571Starten, 409Terminologie, 399Top Level Domain, 362Weiterleitung, 409Zonen

Dateien, 415Domain Name System (Siehe DNS)Domänen

.local, 77DOS

Dateien freigeben, 553Drahtlose Verbindungen

Bluetooth, 668

Drucken, 247, 251–254Anschluss, 252Aus Anwendungen, 257Befehlszeile, 257CUPS, 258Drucken im Netzwerk, 266GDI-Drucker, 264Ghostscript-Treiber, 252IrDA, 682Konfigurieren mit YaST, 251kprinter, 258PPD-Datei, 252Samba, 554Testseite, 252Treiber, 252Verbindung, 252Warteschlangen, 252xpp, 258

EE-Mail

Synchronisieren, 533, 595mailsync, 549–552

EditorenEmacs, 239–240

Emacs, 239–240.emacs, 239default.el, 240

Energieverwaltung, 589, 627–649ACPI, 627, 631–639, 644Akku-Überwachung, 628APM, 627, 629–630, 644cpufrequency, 640cpuspeed, 640Ladezustand, 645powersave, 640Stand-by, 628Suspend, 628Tiefschlaf, 628

Page 688: Suse 10.1 Linux Reference De

YaST, 650Evolution, 598

FFernsteuerung von Computern

FreeNX, 311–324Firefox

Befehl zum Öffnen von URLs, 94Firewalls, 109

Paketfilter, 109, 114Squid and, 579SuSEfirewall2, 109, 114

Firewire (IEEE1394)Festplatten, 597

Flash-Laufwerke, 597FreeNX, 311–324

GGebietsschema

UTF-8, 78Grafik

3D, 307–3103Ddiag, 309Diagnose, 309Fehlersuche, 309Installationssupport für, 310SaX, 308testen, 309Treiber, 307Unterstützung für, 307

GLIDE, 307–310Karten

3D, 307–310Treiber, 300

OpenGL, 307–310testen, 309Treiber, 307

GRUB, 211–232Befehle, 212–222

Booten, 212Bootmenü, 214Bootpasswort, 221Bootsektoren, 212Deinstallieren, 228device.map, 213, 219Einschränkungen, 212Fehlerbehebung, 230Gerätenamen, 215GRUB Geom Error, 231grub.conf, 213, 220JFS und GRUB, 231Master Boot Record (MBR), 211menu.lst, 213–214Menü-Editor, 218Partitionsnamen, 215

HHardware

ISDN, 369hcitool, 674–675head, 78Hilfe

info-Seiten, 239Manualpages, 239X, 301

II18N, 242iFolder, 534info-Seiten, 239init, 197

inittab, 197Skripts, 200–205Skripts hinzufügen, 203

InstallationManuell, 88

Installationssupport3D-Grafikarten und, 310

Page 689: Suse 10.1 Linux Reference De

InstallierenGRUB, 212Pakete, 96

Internationalisierung, 242Internet

cinternet, 392DSL, 373Einwahl, 391–393ISDN, 369KInternet, 392qinternet, 392smpppd, 391–393TDSL, 375

IP-AdressenDynamische Zuweisung, 439IPv6, 351

Konfigurieren, 360Klassen, 349Masquerading, 112Privat, 351

IrDA, 596, 680–683anhalten, 681Fehlersuche, 683konfigurieren, 681starten, 681

KKarten

Grafik, 300Netzwerk, 363

KernelModule

modprobe.conf, 75Version 2.6, 75

KernelsBeschränkungen, 291Caches, 238

KonfigurationPAM, 89

Konfigurationsdateien, 382.bashrc, 234, 237.emacs, 239.mailsync, 550.profile, 234.xsession, 125acpi, 632Berechtigungen, 151crontab, 234csh.cshrc, 244dhclient.conf, 444dhcp, 383dhcpd.conf, 444Dienste, 557, 580Exportieren, 437–438group, 72grub.conf, 220gshadow, 79host.conf, 386HOSTNAME, 389Hosts, 362, 385ifcfg-*, 382inittab, 197–198, 200, 241inputrc, 241irda, 681Kernel, 195language, 242, 244logrotate.conf, 236menu.lst, 214modprobe.conf, 75modules.conf, 75named.conf, 409–420, 571Netzwerk, 383Netzwerke, 385nscd.conf, 389nsswitch.conf, 387, 474pam_unix2.conf, 474passwd, 72powersave, 631powersave.conf, 85

Page 690: Suse 10.1 Linux Reference De

Profil, 233, 237profile, 244resolv.conf, 239, 384, 409, 570Routen, 383Samba, 557slapd.conf, 464smb.conf, 557, 564smpppd-c.conf, 392smpppd.conf, 391squid.conf, 570, 572, 576, 579, 582, 584squidguard.conf, 584sshd_config, 126suseconfig, 209sysconfig, 207–209termcap, 241wireless, 383XF86Config, 89xorg.conf, 89, 295

Device, 299Monitor, 300Screen, 298

Konfigurieren, 207DNS, 366, 399Drucken, 251–254DSL, 373GRUB, 212, 220IPv6, 360IrDA, 681ISDN, 369Kabelmodem, 372Modems, 366Netzwerke, 363

Manuell, 378–390Routing, 366, 383Samba, 555–561

Clients, 561Squid, 572SSH, 121T-DSL, 375

KonsolenGrafische, 229umschalten, 240zuweisen, 241

Kontact, 598KPilot, 599KPowersave, 593KSysguard, 594

LL10N, 242LDAP, 457–484

ACLs, 465Benutzer verwalten, 482Gruppen verwalten, 482Hinzufügen von Daten, 469ldapadd, 469ldapdelete, 473ldapmodify, 471ldapsearch, 472Löschen von Daten, 473Serverkonfiguration, 464Suchen von Daten, 472Verzeichnisbaum, 460YaST

Module, 475Vorlagen, 475

YaST LDAP-Client, 473Zugriffssteuerung, 467Ändern von Daten, 471

LFS, 290Lightweight Directory Access Protocol(Siehe LDAP)Linux

Dateien mit anderen Betriebssystemengemeinsam nutzen, 553Deinstallieren, 228Netzwerke, 345

linuxrc

Page 691: Suse 10.1 Linux Reference De

Manuelle Installation, 88linuxthreads, 76locate, 237Logical Volume Manager (Siehe LVM)logrotate, 235Lokalisierung, 242LSB

Installieren von Paketen, 95LVM

YaST, 57

MManualpages, 239Masquerading, 112

Konfigurieren mit SuSEfirewall2, 114Master Boot Record (Siehe MBR)MBR, 211–212Mobilität, 589–599

Datensicherheit, 596Digitalkameras, 597externe Festplatten, 597Firewire (IEEE1394), 597Mobiltelefone, 598Notebooks, 589PDAs, 598USB, 597

Mobiltelefone, 598Modems

Kabel, 372YaST, 366

mountd, 438

NNamenserver (Siehe DNS)NAT (Siehe Masquerading)NetBIOS, 553Network Information Service (Siehe NIS)NetworkManager, 592Netzwerk-Dateisystem (Siehe NFS)

Netzwerke, 345Bluetooth, 596, 672Broadcast-Adresse, 351DHCP, 439DNS, 361drahtlos, 595IrDA, 596Konfigurationsdateien, 382–389Konfigurieren, 363–375, 378–390

IPv6, 360localhost, 351Netzmasken, 349Netzwerkbasisadresse, 350Routing, 348–349, 366SLP, 395TCP/IP, 345WLAN, 595YaST, 363

NFS, 433Berechtigungen, 437Clients, 433Einhängen, 434Exportieren, 436Importieren, 434Server, 435

nfsd, 438NGPT, 76nice, 78NIS, 423–431

Clients, 430Master, 423–430Slave, 423–430

Notebooks, 589–597, 601 (Siehe Laptops)Energieverwaltung, 589, 627–640Hardware, 589IrDA, 680–683NetworkManager, 592PCMCIA, 589SCPM, 590, 611SLP, 593

Page 692: Suse 10.1 Linux Reference De

Novell iFolder, 534NPTL, 76NSS, 387

Datenbanken, 387

Oopd, 677OpenLDAP (Siehe LDAP)OpenSSH (Siehe SSH)OS/2

Dateien freigeben, 553

PPakete

Deinstallieren, 96Installieren, 96Kompilieren, 103Kompilieren mit build, 105LSB, 95Paket-Manager, 94Prüfen, 95RPMs, 94

Paketfilter (Siehe Firewalls)PAM, 325–333

Konfiguration, 89pand, 676Partitionen

Partitionstabelle, 211Verschlüsseln, 128

PCMCIA, 589, 601IrDA, 680–683

PDAs, 598Pluggable Authentication Modules (SiehePAM)Ports

53, 411Durchsuchen, 581

PostgreSQLAktualisierung, 72

powersave, 640Konfigurieren, 641

Protokolldateien, 235boot.msg, 631Meldungen, 120, 409Squid, 571, 574, 581Unison, 541XFree86, 309

ProtokolleCIFS, 553IPv6, 351LDAP, 457SLP, 395SMB, 553

Proxies (Siehe Squid)Caches, 565Transparent, 578Vorteile, 565

QQuelle

Kompilieren, 103

RRAID

YaST, 65RFCs, 345Routing, 348, 366, 383–384

Masquerading, 112Netzmasken, 349Routen, 383Statisches, 383

RPM, 94–106Abfragen, 100Abhängigkeiten, 96Aktualisieren, 96Datenbank

Neu aufbauen, 97, 103Deinstallieren, 97

Page 693: Suse 10.1 Linux Reference De

deltarpm, 99Patches, 97Prüfen, 95rpmnew, 96rpmorig, 96rpmsave, 96Sicherheit, 152SRPMS, 104Werkzeuge, 106Überprüfen, 102

rpmbuild, 94rsync, 534, 547Runlevel, 198–200

Bearbeiten in YaST, 205Ändern, 200

SSamba, 553–564

Anmeldung, 562Berechtigungen, 560CIFS, 553Clients, 554, 561–562Drucken, 562Drucker, 554Freigaben, 554, 558Installieren, 555Konfigurieren, 555–561Namen, 553Server, 554–561Sicherheit, 560–561SMB, 553Starten, 555Stoppen, 555swat, 557TCP/IP, 553

Schriften, 302CID-keyed, 307TrueType, 301X11 Core, 302

Xft, 303SCPM, 611

Erweiterte Einstellungen, 623Notebooks, 590Profilwechsel, 622Ressourcengruppen, 621Starten, 621Verwalten von Profilen, 622

scriptsmodify_resolvconf, 239

sdptool, 675Service Location Protocol (Siehe SLP)SGML

Verzeichnisse, 81Sicherheit, 140–153

Angriffe, 149–150Berechtigungen, 144–145Booten, 142, 144DNS, 150Engineering, 141Firewalls, 109Intrusion Detection, 89Lokal, 142–146Netzwerk, 147–150Passwörter, 143–144Probleme melden, 153Programmfehler, 145, 148RPM-Signaturen, 152Samba, 560Serielle Terminals, 142Squid, 566SSH, 121–127tcpd, 153telnet, 121Tipps und Tricks, 150verschlüsseltes Dateisystem, 596Viren, 146Würmer, 150X und, 147

Skripts

Page 694: Suse 10.1 Linux Reference De

init.d, 197, 200–205, 390boot, 202boot.local, 203boot.setup, 203halt, 203Netzwerk, 390nfsserver, 390, 437portmap, 390Portmap, 437rc, 200–201, 203sendmail, 390Squid, 570xinetd, 390ypbind, 390ypserv, 390

irda, 681mkinitrd, 195modify_resolvconf, 384SuSEconfig, 207–209

Deaktivieren, 209SLP, 395, 593

Browser, 397Konqueror, 397Registrieren von Diensten, 395slptool, 397

SMB (Siehe Samba)smpd, 553Soft-RAID (Siehe RAID)Software

Kompilieren, 103sort, 78Sound

Mixer, 87spm, 103Squid, 565

ACLs, 576Apache, 582Berechtigungen, 570, 576Berichte, 585–586cachemgr.cgi, 581, 583

Caches, 565–566Beschädigt, 571Größe, 568

Calamaris, 585–586CPU, 569Deinstallation, 571DNS, 571Fehlersuche, 571Firewalls, 579Funktionen, 565Konfigurieren, 572Objektstatus, 567Protokolldateien, 571, 574, 581RAM, 569Sicherheit, 566squidGuard, 583Starten, 570Statistiken, 581, 583Stoppen, 570Systemvoraussetzungen, 568Transparente Proxies, 578, 581Verzeichnisse, 570Zugriffssteuerung, 582

SSH, 121–127Authentifizierungsmechanismen, 125Daemon, 123Schlüsselpaare, 123, 125scp, 122sftp, 123ssh, 122ssh-agent, 125–126ssh-keygen, 125sshd, 123X und, 126

Starten, 193subfs

Wechseldatenträger, 81Subversion, 533, 544SVN (Subversion), 533Synchronisieren von Daten, 595

Page 695: Suse 10.1 Linux Reference De

E-Mail, 595Evolution, 598Kontact, 598KPilot, 599

SystemAktualisierung, 71–74Beschränken der Ressourcennutzung,237Lokalisierung, 242

Systemüberwachung, 593KPowersave, 593KSysguard, 594

Ttail, 78Tastatur

Asiatische Zeichen, 242Layout, 241X-Tastaturerweiterung, 241XKB, 241Zuordnung, 241

Compose, 241Multikey, 241

TCP/IP, 345ICMP, 346IGMP, 346Pakete, 347–348Schichtmodell, 346TCP, 346UDP, 346

TEI-XSL-Stylesheetsneuer Speicherort, 93

Telefonanlage, 371Thread-Pakete

NPTL, 76Tripwire

durch AIDE ersetzt, 89

Uulimit, 237

Optionen, 237USB

Festplatten, 597Flash-Laufwerke, 597

UTF-8Codierung, 78

VVariablen

Umgebung, 242Verschlüsseln, 127–130

Dateien, 130Dateien mit vi, 130Erstellen von Partitionen, 128Partitionen, 128–129Wechselmedien, 130YaST, 128

WWechseldatenträger

subfs, 81whois, 362Windows

Dateien freigeben, 553WLAN, 595

XX

CID-keyed-Schriften, 307Hilfe, 301Optimierung, 295–301SaX2, 296Schriften, 301Schriftsysteme, 302Sicherheit, 147SSH und, 126Treiber, 300

Page 696: Suse 10.1 Linux Reference De

TrueType-Schriften, 301Virtueller Bildschirm, 299X11 Core-Schriften, 302xf86config, 296xft, 301Xft, 303Zeichensätze, 301

X Window-System (Siehe X)X-Tastaturerweiterung (Siehe Tastatur,XKB)X.Org, 295Xen, 335

Überblick, 335Xft, 303XKB (Siehe Tastatur, XKB)XML

Verzeichnisse, 81xorg.conf

Depth, 298Device, 298Display, 298Farbtiefe, 299Files, 296InputDevice, 296Modeline, 299Modelines, 297Modes, 299Modi, 297Monitor, 297–298ServerFlags, 296

YYaST

3D, 308Aktualisierung, 73Boot-Konfiguration, 222

Sicherheit, 227Standardsystem, 226Zeitlimit, 226

BootloaderFestplattenreihenfolge, 227Passwort, 227Speicherort, 225Typ, 223

DHCP, 440Drucken, 251–254DSL, 373Energieverwaltung, 650GRUB, 223ISDN, 369Kabelmodem, 372LDAP-Client, 473LILO, 223LVM, 57Modems, 366Netzwerkkarte, 363NIS-Clients, 430RAID, 65Runlevel, 205Samba

Clients, 561SLP-Browser, 397sysconfig-Editor, 207T-DSL, 375

YP (Siehe NIS)